@onesy/ui-react 1.0.130 → 1.0.132

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 (712) hide show
  1. package/Accordion/Accordion.d.ts +2 -2
  2. package/Accordion/Accordion.js +342 -242
  3. package/Accordion/index.js +12 -7
  4. package/AdvancedTextField/AdvancedTextField.d.ts +1 -1
  5. package/AdvancedTextField/AdvancedTextField.js +165 -157
  6. package/AdvancedTextField/index.js +12 -7
  7. package/Append/Append.d.ts +3 -3
  8. package/Append/Append.js +502 -519
  9. package/Append/index.js +12 -7
  10. package/AreaChart/AreaChart.d.ts +1 -1
  11. package/AreaChart/AreaChart.js +53 -40
  12. package/AreaChart/index.js +12 -7
  13. package/AreaChartItem/AreaChartItem.d.ts +1 -1
  14. package/AreaChartItem/AreaChartItem.js +325 -237
  15. package/AreaChartItem/index.js +12 -7
  16. package/AudioPlayer/AudioPlayer.d.ts +1 -1
  17. package/AudioPlayer/AudioPlayer.js +683 -466
  18. package/AudioPlayer/index.js +12 -7
  19. package/AudioRecorder/AudioRecorder.d.ts +1 -1
  20. package/AudioRecorder/AudioRecorder.js +359 -259
  21. package/AudioRecorder/index.js +12 -7
  22. package/AutoComplete/AutoComplete.d.ts +3 -3
  23. package/AutoComplete/AutoComplete.js +693 -568
  24. package/AutoComplete/index.js +12 -7
  25. package/AutoCompleteCountry/AutoCompleteCountry.d.ts +1 -1
  26. package/AutoCompleteCountry/AutoCompleteCountry.js +99 -62
  27. package/AutoCompleteCountry/index.js +12 -7
  28. package/AutoCompleteCurrency/AutoCompleteCurrency.d.ts +1 -1
  29. package/AutoCompleteCurrency/AutoCompleteCurrency.js +73 -61
  30. package/AutoCompleteCurrency/index.js +12 -7
  31. package/Avatar/Avatar.d.ts +1 -1
  32. package/Avatar/Avatar.js +113 -86
  33. package/Avatar/index.js +12 -7
  34. package/AvatarGroup/AvatarGroup.d.ts +1 -1
  35. package/AvatarGroup/AvatarGroup.js +104 -87
  36. package/AvatarGroup/index.js +12 -7
  37. package/Backdrop/Backdrop.d.ts +1 -1
  38. package/Backdrop/Backdrop.js +160 -139
  39. package/Backdrop/index.js +12 -7
  40. package/Badge/Badge.d.ts +1 -1
  41. package/Badge/Badge.js +116 -96
  42. package/Badge/index.js +12 -7
  43. package/Banner/Banner.d.ts +1 -1
  44. package/Banner/Banner.js +126 -85
  45. package/Banner/index.js +12 -7
  46. package/BottomAppBar/BottomAppBar.d.ts +1 -1
  47. package/BottomAppBar/BottomAppBar.js +89 -60
  48. package/BottomAppBar/index.js +12 -7
  49. package/BottomSheet/BottomSheet.d.ts +1 -1
  50. package/BottomSheet/BottomSheet.js +66 -59
  51. package/BottomSheet/index.js +12 -7
  52. package/Box/Box.d.ts +1 -1
  53. package/Box/Box.js +43 -35
  54. package/Box/index.js +12 -7
  55. package/Breadcrumbs/Breadcrumbs.d.ts +1 -1
  56. package/Breadcrumbs/Breadcrumbs.js +168 -144
  57. package/Breadcrumbs/index.js +12 -7
  58. package/BubbleChart/BubbleChart.d.ts +1 -1
  59. package/BubbleChart/BubbleChart.js +261 -132
  60. package/BubbleChart/index.js +12 -7
  61. package/BubbleChartItem/BubbleChartItem.d.ts +1 -1
  62. package/BubbleChartItem/BubbleChartItem.js +228 -161
  63. package/BubbleChartItem/index.js +12 -7
  64. package/Button/Button.d.ts +1 -1
  65. package/Button/Button.js +488 -467
  66. package/Button/index.js +12 -7
  67. package/Buttons/Buttons.d.ts +1 -1
  68. package/Buttons/Buttons.js +343 -294
  69. package/Buttons/index.js +12 -7
  70. package/Calendar/Calendar.d.ts +3 -3
  71. package/Calendar/Calendar.js +715 -452
  72. package/Calendar/index.js +12 -7
  73. package/CalendarAvailability/CalendarAvailability.d.ts +2 -2
  74. package/CalendarAvailability/CalendarAvailability.js +709 -388
  75. package/CalendarAvailability/index.js +12 -7
  76. package/CalendarMenu/CalendarMenu.d.ts +1 -1
  77. package/CalendarMenu/CalendarMenu.js +430 -303
  78. package/CalendarMenu/index.js +12 -7
  79. package/CalendarMonth/CalendarMonth.d.ts +5 -5
  80. package/CalendarMonth/CalendarMonth.js +537 -498
  81. package/CalendarMonth/index.js +12 -7
  82. package/CalendarViews/CalendarViews.d.ts +2 -2
  83. package/CalendarViews/CalendarViews.js +403 -254
  84. package/CalendarViews/index.js +12 -7
  85. package/CalendarWeek/CalendarWeek.d.ts +1 -1
  86. package/CalendarWeek/CalendarWeek.js +536 -395
  87. package/CalendarWeek/index.js +12 -7
  88. package/Card/Card.d.ts +1 -1
  89. package/Card/Card.js +133 -101
  90. package/Card/index.js +12 -7
  91. package/CardButton/CardButton.d.ts +1 -1
  92. package/CardButton/CardButton.js +78 -58
  93. package/CardButton/index.js +12 -7
  94. package/CardFooter/CardFooter.d.ts +1 -1
  95. package/CardFooter/CardFooter.js +58 -39
  96. package/CardFooter/index.js +12 -7
  97. package/CardHeader/CardHeader.d.ts +1 -1
  98. package/CardHeader/CardHeader.js +61 -44
  99. package/CardHeader/index.js +12 -7
  100. package/CardImage/CardImage.d.ts +1 -1
  101. package/CardImage/CardImage.js +80 -67
  102. package/CardImage/index.js +12 -7
  103. package/CardMain/CardMain.d.ts +1 -1
  104. package/CardMain/CardMain.js +53 -39
  105. package/CardMain/index.js +12 -7
  106. package/Carousel/Carousel.d.ts +4 -4
  107. package/Carousel/Carousel.js +1025 -913
  108. package/Carousel/index.js +12 -7
  109. package/Chart/Chart.d.ts +4 -4
  110. package/Chart/Chart.js +1325 -1174
  111. package/Chart/index.js +12 -7
  112. package/Checkbox/Checkbox.d.ts +1 -1
  113. package/Checkbox/Checkbox.js +339 -325
  114. package/Checkbox/index.js +12 -7
  115. package/Chip/Chip.d.ts +1 -1
  116. package/Chip/Chip.js +131 -102
  117. package/Chip/index.js +12 -7
  118. package/Chips/Chips.d.ts +1 -1
  119. package/Chips/Chips.js +121 -94
  120. package/Chips/index.js +12 -7
  121. package/ClickListener/ClickListener.d.ts +1 -1
  122. package/ClickListener/ClickListener.js +86 -89
  123. package/ClickListener/index.js +12 -7
  124. package/Clock/Clock.d.ts +5 -5
  125. package/Clock/Clock.js +470 -417
  126. package/Clock/index.js +12 -7
  127. package/ColorTextField/ColorTextField.d.ts +1 -1
  128. package/ColorTextField/ColorTextField.js +234 -171
  129. package/ColorTextField/index.js +12 -7
  130. package/ColumnChart/ColumnChart.d.ts +1 -1
  131. package/ColumnChart/ColumnChart.js +63 -46
  132. package/ColumnChart/index.js +12 -7
  133. package/ColumnChartItem/ColumnChartItem.d.ts +1 -1
  134. package/ColumnChartItem/ColumnChartItem.js +208 -149
  135. package/ColumnChartItem/index.js +12 -7
  136. package/Confirm/Confirm.d.ts +4 -4
  137. package/Confirm/Confirm.js +184 -129
  138. package/Confirm/Context.js +9 -7
  139. package/Confirm/index.js +32 -13
  140. package/Confirm/useConfirm.js +11 -10
  141. package/Container/Container.d.ts +1 -1
  142. package/Container/Container.js +154 -133
  143. package/Container/index.js +12 -7
  144. package/CookieBanner/CookieBanner.d.ts +1 -1
  145. package/CookieBanner/CookieBanner.js +142 -76
  146. package/CookieBanner/index.js +12 -7
  147. package/Countdown/Countdown.d.ts +1 -1
  148. package/Countdown/Countdown.js +403 -255
  149. package/Countdown/index.js +12 -7
  150. package/DatePicker/DatePicker.d.ts +1 -1
  151. package/DatePicker/DatePicker.js +802 -547
  152. package/DatePicker/index.js +12 -7
  153. package/DateRangePicker/DateRangePicker.d.ts +1 -1
  154. package/DateRangePicker/DateRangePicker.js +44 -37
  155. package/DateRangePicker/index.js +12 -7
  156. package/DateTimePicker/DateTimePicker.d.ts +2 -2
  157. package/DateTimePicker/DateTimePicker.js +672 -459
  158. package/DateTimePicker/index.js +12 -7
  159. package/DateTimeRangePicker/DateTimeRangePicker.d.ts +1 -1
  160. package/DateTimeRangePicker/DateTimeRangePicker.js +44 -37
  161. package/DateTimeRangePicker/index.js +12 -7
  162. package/Divider/Divider.d.ts +1 -1
  163. package/Divider/Divider.js +198 -185
  164. package/Divider/index.js +12 -7
  165. package/DonutChart/DonutChart.d.ts +1 -1
  166. package/DonutChart/DonutChart.js +49 -42
  167. package/DonutChart/index.js +12 -7
  168. package/DragAndDropList/DragAndDropList.d.ts +1 -1
  169. package/DragAndDropList/DragAndDropList.js +160 -156
  170. package/DragAndDropList/index.js +12 -7
  171. package/Drawing/Drawing.d.ts +2 -2
  172. package/Drawing/Drawing.js +850 -523
  173. package/Drawing/index.js +12 -7
  174. package/DropZone/DropZone.d.ts +1 -1
  175. package/DropZone/DropZone.js +239 -201
  176. package/DropZone/index.js +12 -7
  177. package/Emojis/Emojis.d.ts +3 -3
  178. package/Emojis/Emojis.js +409 -317
  179. package/Emojis/emojis_list.js +7279 -9250
  180. package/Emojis/index.js +19 -9
  181. package/Expand/Expand.d.ts +1 -1
  182. package/Expand/Expand.js +201 -149
  183. package/Expand/index.js +12 -7
  184. package/Fab/Fab.d.ts +1 -1
  185. package/Fab/Fab.js +46 -26
  186. package/Fab/index.js +12 -7
  187. package/Fade/Fade.d.ts +1 -1
  188. package/Fade/Fade.js +131 -101
  189. package/Fade/index.js +12 -7
  190. package/FileChoose/FileChoose.d.ts +2 -2
  191. package/FileChoose/FileChoose.js +218 -150
  192. package/FileChoose/index.js +12 -7
  193. package/Focus/Focus.d.ts +1 -1
  194. package/Focus/Focus.js +87 -88
  195. package/Focus/index.js +12 -7
  196. package/Form/Form.d.ts +1 -1
  197. package/Form/Form.js +194 -120
  198. package/Form/index.js +12 -7
  199. package/FormRow/FormRow.d.ts +1 -1
  200. package/FormRow/FormRow.js +123 -78
  201. package/FormRow/index.js +12 -7
  202. package/Forms/Forms.d.ts +1 -1
  203. package/Forms/Forms.js +55 -41
  204. package/Forms/index.js +12 -7
  205. package/Frame/Frame.d.ts +1 -1
  206. package/Frame/Frame.js +212 -150
  207. package/Frame/index.js +12 -7
  208. package/Grid/Grid.d.ts +2 -2
  209. package/Grid/Grid.js +231 -166
  210. package/Grid/index.js +12 -7
  211. package/Grow/Grow.d.ts +1 -1
  212. package/Grow/Grow.js +137 -109
  213. package/Grow/index.js +12 -7
  214. package/HTMLCanvas/HTMLCanvas.d.ts +2 -2
  215. package/HTMLCanvas/HTMLCanvas.js +752 -542
  216. package/HTMLCanvas/index.js +23 -21
  217. package/IFrame/IFrame.d.ts +1 -1
  218. package/IFrame/IFrame.js +122 -104
  219. package/IFrame/index.js +12 -7
  220. package/Icon/Icon.d.ts +1 -1
  221. package/Icon/Icon.js +112 -95
  222. package/Icon/index.js +23 -21
  223. package/IconButton/IconButton.d.ts +1 -1
  224. package/IconButton/IconButton.js +49 -37
  225. package/IconButton/index.js +12 -7
  226. package/Image/Image.d.ts +1 -1
  227. package/Image/Image.js +285 -252
  228. package/Image/index.js +12 -7
  229. package/ImageCrop/ImageCrop.d.ts +2 -2
  230. package/ImageCrop/ImageCrop.js +1073 -1048
  231. package/ImageCrop/index.js +12 -7
  232. package/ImageEdit/ImageEdit.d.ts +2 -2
  233. package/ImageEdit/ImageEdit.js +1088 -783
  234. package/ImageEdit/index.js +12 -7
  235. package/ImageGallery/ImageGallery.d.ts +1 -1
  236. package/ImageGallery/ImageGallery.js +518 -473
  237. package/ImageGallery/index.js +12 -7
  238. package/ImageList/ImageList.d.ts +1 -1
  239. package/ImageList/ImageList.js +136 -129
  240. package/ImageList/index.js +12 -7
  241. package/ImageListItem/ImageListItem.d.ts +1 -1
  242. package/ImageListItem/ImageListItem.js +101 -87
  243. package/ImageListItem/index.js +12 -7
  244. package/ImageListItemBox/ImageListItemBox.d.ts +1 -1
  245. package/ImageListItemBox/ImageListItemBox.js +61 -50
  246. package/ImageListItemBox/index.js +12 -7
  247. package/Info/Info.d.ts +1 -1
  248. package/Info/Info.js +99 -63
  249. package/Info/index.js +12 -7
  250. package/Interaction/Interaction.d.ts +2 -2
  251. package/Interaction/Interaction.js +405 -345
  252. package/Interaction/index.js +12 -7
  253. package/Keyframes/Context.js +9 -7
  254. package/Keyframes/Keyframes.d.ts +3 -3
  255. package/Keyframes/Keyframes.js +189 -174
  256. package/Keyframes/index.js +41 -25
  257. package/Keyframes/useKeyframes.js +11 -10
  258. package/Label/Label.d.ts +1 -1
  259. package/Label/Label.js +177 -151
  260. package/Label/index.js +12 -7
  261. package/Labels/Labels.d.ts +1 -1
  262. package/Labels/Labels.js +126 -98
  263. package/Labels/index.js +12 -7
  264. package/Line/Line.d.ts +6 -6
  265. package/Line/Line.js +296 -174
  266. package/Line/index.js +12 -7
  267. package/LineChart/LineChart.d.ts +1 -1
  268. package/LineChart/LineChart.js +57 -40
  269. package/LineChart/index.js +12 -7
  270. package/LineChartItem/LineChartItem.d.ts +1 -1
  271. package/LineChartItem/LineChartItem.js +239 -177
  272. package/LineChartItem/index.js +12 -7
  273. package/LinearMeter/LinearMeter.d.ts +1 -1
  274. package/LinearMeter/LinearMeter.js +453 -377
  275. package/LinearMeter/index.js +12 -7
  276. package/LinearProgress/LinearProgress.d.ts +1 -1
  277. package/LinearProgress/LinearProgress.js +324 -255
  278. package/LinearProgress/index.js +12 -7
  279. package/Link/Link.d.ts +1 -1
  280. package/Link/Link.js +182 -127
  281. package/Link/index.js +12 -7
  282. package/Links/Links.d.ts +2 -2
  283. package/Links/Links.js +277 -156
  284. package/Links/index.js +12 -7
  285. package/List/List.d.ts +1 -1
  286. package/List/List.js +148 -113
  287. package/List/index.js +12 -7
  288. package/ListItem/ListItem.d.ts +1 -1
  289. package/ListItem/ListItem.js +388 -362
  290. package/ListItem/index.js +12 -7
  291. package/ListSubheader/ListSubheader.d.ts +1 -1
  292. package/ListSubheader/ListSubheader.js +52 -44
  293. package/ListSubheader/index.js +12 -7
  294. package/MainProgress/Context.js +9 -7
  295. package/MainProgress/MainProgress.d.ts +3 -3
  296. package/MainProgress/MainProgress.js +193 -161
  297. package/MainProgress/index.js +32 -13
  298. package/MainProgress/useMainProgress.js +11 -10
  299. package/Markdown/Markdown.d.ts +1 -1
  300. package/Markdown/Markdown.js +676 -704
  301. package/Markdown/index.js +12 -7
  302. package/Masonry/Masonry.d.ts +1 -1
  303. package/Masonry/Masonry.js +207 -181
  304. package/Masonry/index.js +12 -7
  305. package/Medias/Medias.d.ts +3 -3
  306. package/Medias/Medias.js +436 -398
  307. package/Medias/index.js +12 -7
  308. package/Menu/Menu.d.ts +1 -1
  309. package/Menu/Menu.js +278 -243
  310. package/Menu/index.js +12 -7
  311. package/MenuDesktop/MenuDesktop.d.ts +3 -3
  312. package/MenuDesktop/MenuDesktop.js +496 -419
  313. package/MenuDesktop/index.js +12 -7
  314. package/MenuItem/MenuItem.d.ts +1 -1
  315. package/MenuItem/MenuItem.js +286 -231
  316. package/MenuItem/index.js +12 -7
  317. package/Meta/Meta.d.ts +1 -1
  318. package/Meta/Meta.js +78 -54
  319. package/Meta/index.js +12 -7
  320. package/Modal/Modal.d.ts +1 -1
  321. package/Modal/Modal.js +333 -272
  322. package/Modal/index.js +12 -7
  323. package/ModalFooter/ModalFooter.d.ts +1 -1
  324. package/ModalFooter/ModalFooter.js +50 -39
  325. package/ModalFooter/index.js +12 -7
  326. package/ModalHeader/ModalHeader.d.ts +1 -1
  327. package/ModalHeader/ModalHeader.js +51 -39
  328. package/ModalHeader/index.js +12 -7
  329. package/ModalIcon/ModalIcon.d.ts +1 -1
  330. package/ModalIcon/ModalIcon.js +29 -23
  331. package/ModalIcon/index.js +12 -7
  332. package/ModalMain/ModalMain.d.ts +1 -1
  333. package/ModalMain/ModalMain.js +50 -41
  334. package/ModalMain/index.js +12 -7
  335. package/ModalText/ModalText.d.ts +1 -1
  336. package/ModalText/ModalText.js +47 -37
  337. package/ModalText/index.js +12 -7
  338. package/ModalTitle/ModalTitle.d.ts +1 -1
  339. package/ModalTitle/ModalTitle.js +47 -37
  340. package/ModalTitle/index.js +12 -7
  341. package/MoreOptions/MoreOptions.d.ts +1 -1
  342. package/MoreOptions/MoreOptions.js +72 -52
  343. package/MoreOptions/index.js +12 -7
  344. package/Move/Move.d.ts +1 -1
  345. package/Move/Move.js +166 -141
  346. package/Move/index.js +12 -7
  347. package/NavigationBar/NavigationBar.d.ts +2 -2
  348. package/NavigationBar/NavigationBar.js +133 -109
  349. package/NavigationBar/index.js +12 -7
  350. package/NavigationDrawer/NavigationDrawer.d.ts +1 -1
  351. package/NavigationDrawer/NavigationDrawer.js +241 -211
  352. package/NavigationDrawer/index.js +12 -7
  353. package/NavigationItem/NavigationItem.d.ts +2 -2
  354. package/NavigationItem/NavigationItem.js +293 -262
  355. package/NavigationItem/index.js +12 -7
  356. package/NavigationRail/NavigationRail.d.ts +1 -1
  357. package/NavigationRail/NavigationRail.js +187 -150
  358. package/NavigationRail/index.js +12 -7
  359. package/NotFound/NotFound.d.ts +1 -1
  360. package/NotFound/NotFound.js +89 -66
  361. package/NotFound/index.js +12 -7
  362. package/NumericTextField/NumericTextField.d.ts +1 -1
  363. package/NumericTextField/NumericTextField.js +217 -212
  364. package/NumericTextField/index.js +12 -7
  365. package/Page/Page.d.ts +2 -2
  366. package/Page/Page.js +131 -67
  367. package/Page/index.js +12 -7
  368. package/PageTransition/PageTransition.d.ts +1 -1
  369. package/PageTransition/PageTransition.js +112 -102
  370. package/PageTransition/index.js +12 -7
  371. package/Pagination/Pagination.d.ts +1 -1
  372. package/Pagination/Pagination.js +153 -98
  373. package/Pagination/index.js +12 -7
  374. package/PaginationItem/PaginationItem.d.ts +1 -1
  375. package/PaginationItem/PaginationItem.js +85 -65
  376. package/PaginationItem/index.js +12 -7
  377. package/Parallax/Parallax.d.ts +2 -2
  378. package/Parallax/Parallax.js +138 -145
  379. package/Parallax/index.js +12 -7
  380. package/Path/Path.d.ts +1 -1
  381. package/Path/Path.js +40 -35
  382. package/Path/index.js +12 -7
  383. package/PieChart/PieChart.d.ts +1 -1
  384. package/PieChart/PieChart.js +382 -267
  385. package/PieChart/index.js +12 -7
  386. package/Placeholder/Placeholder.d.ts +1 -1
  387. package/Placeholder/Placeholder.js +125 -117
  388. package/Placeholder/index.js +12 -7
  389. package/Portal/Portal.d.ts +1 -1
  390. package/Portal/Portal.js +37 -38
  391. package/Portal/index.js +12 -7
  392. package/Properties/Properties.d.ts +2 -2
  393. package/Properties/Properties.js +85 -64
  394. package/Properties/index.js +12 -7
  395. package/Property/Property.d.ts +1 -1
  396. package/Property/Property.js +120 -108
  397. package/Property/index.js +12 -7
  398. package/Radio/Radio.d.ts +1 -1
  399. package/Radio/Radio.js +211 -181
  400. package/Radio/index.js +12 -7
  401. package/Radios/Radios.d.ts +1 -1
  402. package/Radios/Radios.js +124 -92
  403. package/Radios/index.js +12 -7
  404. package/Rating/Rating.d.ts +1 -1
  405. package/Rating/Rating.js +353 -360
  406. package/Rating/index.js +12 -7
  407. package/Reset/Reset.d.ts +1 -1
  408. package/Reset/Reset.js +19 -24
  409. package/Reset/index.js +12 -7
  410. package/Reveal/Reveal.d.ts +1 -1
  411. package/Reveal/Reveal.js +98 -89
  412. package/Reveal/index.js +12 -7
  413. package/RichTextEditor/RichTextEditor.d.ts +1 -1
  414. package/RichTextEditor/RichTextEditor.js +1764 -972
  415. package/RichTextEditor/index.js +12 -7
  416. package/RoundMeter/RoundMeter.d.ts +1 -1
  417. package/RoundMeter/RoundMeter.js +629 -537
  418. package/RoundMeter/index.js +12 -7
  419. package/RoundProgress/RoundProgress.d.ts +1 -1
  420. package/RoundProgress/RoundProgress.js +233 -174
  421. package/RoundProgress/index.js +12 -7
  422. package/ScatterChart/ScatterChart.d.ts +1 -1
  423. package/ScatterChart/ScatterChart.js +53 -40
  424. package/ScatterChart/index.js +12 -7
  425. package/ScatterChartItem/ScatterChartItem.d.ts +1 -1
  426. package/ScatterChartItem/ScatterChartItem.js +214 -153
  427. package/ScatterChartItem/index.js +12 -7
  428. package/ScreenCapture/ScreenCapture.d.ts +2 -2
  429. package/ScreenCapture/ScreenCapture.js +427 -335
  430. package/ScreenCapture/index.js +12 -7
  431. package/Section/Section.d.ts +2 -2
  432. package/Section/Section.js +380 -319
  433. package/Section/index.js +12 -7
  434. package/SectionAction/SectionAction.d.ts +1 -1
  435. package/SectionAction/SectionAction.js +72 -61
  436. package/SectionAction/index.js +12 -7
  437. package/SectionBoxes/SectionBoxes.d.ts +2 -2
  438. package/SectionBoxes/SectionBoxes.js +240 -208
  439. package/SectionBoxes/index.js +12 -7
  440. package/SectionCards/SectionCards.d.ts +2 -2
  441. package/SectionCards/SectionCards.js +256 -217
  442. package/SectionCards/index.js +12 -7
  443. package/SectionCarousel/SectionCarousel.d.ts +2 -2
  444. package/SectionCarousel/SectionCarousel.js +284 -242
  445. package/SectionCarousel/index.js +12 -7
  446. package/SectionContact/SectionContact.d.ts +1 -1
  447. package/SectionContact/SectionContact.js +174 -116
  448. package/SectionContact/index.js +12 -7
  449. package/SectionImageGallery/SectionImageGallery.d.ts +1 -1
  450. package/SectionImageGallery/SectionImageGallery.js +64 -51
  451. package/SectionImageGallery/index.js +12 -7
  452. package/SectionLogos/SectionLogos.d.ts +1 -1
  453. package/SectionLogos/SectionLogos.js +123 -109
  454. package/SectionLogos/index.js +12 -7
  455. package/SectionMedia/SectionMedia.d.ts +1 -1
  456. package/SectionMedia/SectionMedia.js +170 -152
  457. package/SectionMedia/index.js +12 -7
  458. package/SectionReviews/SectionReviews.d.ts +2 -2
  459. package/SectionReviews/SectionReviews.js +170 -129
  460. package/SectionReviews/index.js +12 -7
  461. package/SectionTextMedia/SectionTextMedia.d.ts +1 -1
  462. package/SectionTextMedia/SectionTextMedia.js +187 -142
  463. package/SectionTextMedia/index.js +12 -7
  464. package/SectionTimeline/SectionTimeline.d.ts +2 -2
  465. package/SectionTimeline/SectionTimeline.js +126 -95
  466. package/SectionTimeline/index.js +12 -7
  467. package/SectionWatch/SectionWatch.d.ts +1 -1
  468. package/SectionWatch/SectionWatch.js +65 -53
  469. package/SectionWatch/index.js +12 -7
  470. package/Select/Select.d.ts +1 -1
  471. package/Select/Select.js +517 -406
  472. package/Select/index.js +12 -7
  473. package/Share/Share.d.ts +1 -1
  474. package/Share/Share.js +458 -319
  475. package/Share/index.js +12 -7
  476. package/Slide/Slide.d.ts +1 -1
  477. package/Slide/Slide.js +184 -140
  478. package/Slide/index.js +12 -7
  479. package/Slider/Slider.d.ts +2 -2
  480. package/Slider/Slider.js +927 -837
  481. package/Slider/index.js +12 -7
  482. package/SmartTextField/SmartTextField.d.ts +1 -1
  483. package/SmartTextField/SmartTextField.js +1406 -1014
  484. package/SmartTextField/index.js +12 -7
  485. package/Snackbar/Snackbar.d.ts +1 -1
  486. package/Snackbar/Snackbar.js +227 -185
  487. package/Snackbar/index.js +12 -7
  488. package/Snackbars/Context.d.ts +1 -1
  489. package/Snackbars/Context.js +9 -7
  490. package/Snackbars/Snackbars.d.ts +2 -2
  491. package/Snackbars/Snackbars.js +234 -210
  492. package/Snackbars/index.js +32 -13
  493. package/Snackbars/useSnackbars.js +11 -10
  494. package/Space/Space.d.ts +1 -1
  495. package/Space/Space.js +1683 -968
  496. package/Space/index.js +23 -21
  497. package/SpeechToText/SpeechToText.d.ts +1 -1
  498. package/SpeechToText/SpeechToText.js +207 -172
  499. package/SpeechToText/index.js +12 -7
  500. package/SpeedDial/SpeedDial.d.ts +1 -1
  501. package/SpeedDial/SpeedDial.js +434 -398
  502. package/SpeedDial/index.js +12 -7
  503. package/SpeedDialItem/SpeedDialItem.d.ts +1 -1
  504. package/SpeedDialItem/SpeedDialItem.js +89 -63
  505. package/SpeedDialItem/index.js +12 -7
  506. package/SpyScroll/SpyScroll.d.ts +1 -1
  507. package/SpyScroll/SpyScroll.js +154 -142
  508. package/SpyScroll/index.js +12 -7
  509. package/Step/Step.d.ts +1 -1
  510. package/Step/Step.js +181 -127
  511. package/Step/index.js +12 -7
  512. package/Stepper/Stepper.d.ts +1 -1
  513. package/Stepper/Stepper.js +159 -139
  514. package/Stepper/index.js +12 -7
  515. package/Surface/Surface.d.ts +1 -1
  516. package/Surface/Surface.js +760 -798
  517. package/Surface/index.js +12 -7
  518. package/Switch/Switch.d.ts +1 -1
  519. package/Switch/Switch.js +688 -532
  520. package/Switch/index.js +12 -7
  521. package/Tab/Tab.d.ts +1 -1
  522. package/Tab/Tab.js +185 -150
  523. package/Tab/index.js +12 -7
  524. package/Table/Table.d.ts +1 -1
  525. package/Table/Table.js +100 -77
  526. package/Table/index.js +12 -7
  527. package/TableBody/TableBody.d.ts +1 -1
  528. package/TableBody/TableBody.js +76 -63
  529. package/TableBody/index.js +12 -7
  530. package/TableCell/TableCell.d.ts +2 -2
  531. package/TableCell/TableCell.js +258 -220
  532. package/TableCell/index.js +12 -7
  533. package/TableFooter/TableFooter.d.ts +1 -1
  534. package/TableFooter/TableFooter.js +60 -48
  535. package/TableFooter/index.js +12 -7
  536. package/TableHead/TableHead.d.ts +1 -1
  537. package/TableHead/TableHead.js +139 -120
  538. package/TableHead/index.js +12 -7
  539. package/TableHeader/TableHeader.d.ts +1 -1
  540. package/TableHeader/TableHeader.js +65 -50
  541. package/TableHeader/index.js +12 -7
  542. package/TablePagination/TablePagination.d.ts +1 -1
  543. package/TablePagination/TablePagination.js +171 -98
  544. package/TablePagination/index.js +12 -7
  545. package/TableRow/TableRow.d.ts +1 -1
  546. package/TableRow/TableRow.js +77 -64
  547. package/TableRow/index.js +12 -7
  548. package/Tabs/Tabs.d.ts +1 -1
  549. package/Tabs/Tabs.js +425 -377
  550. package/Tabs/index.js +12 -7
  551. package/Text/Text.d.ts +1 -1
  552. package/Text/Text.js +131 -113
  553. package/Text/index.js +12 -7
  554. package/TextField/TextField.d.ts +1 -1
  555. package/TextField/TextField.js +940 -879
  556. package/TextField/index.js +12 -7
  557. package/TextToSpeech/TextToSpeech.d.ts +1 -1
  558. package/TextToSpeech/TextToSpeech.js +176 -153
  559. package/TextToSpeech/index.js +12 -7
  560. package/TimePicker/TimePicker.d.ts +3 -3
  561. package/TimePicker/TimePicker.js +985 -718
  562. package/TimePicker/index.js +12 -7
  563. package/TimeRangePicker/TimeRangePicker.d.ts +1 -1
  564. package/TimeRangePicker/TimeRangePicker.js +44 -37
  565. package/TimeRangePicker/index.js +12 -7
  566. package/Timeline/Timeline.d.ts +1 -1
  567. package/Timeline/Timeline.js +54 -42
  568. package/Timeline/index.js +12 -7
  569. package/TimelineItem/TimelineItem.d.ts +1 -1
  570. package/TimelineItem/TimelineItem.js +144 -147
  571. package/TimelineItem/index.js +12 -7
  572. package/Timer/Timer.d.ts +1 -1
  573. package/Timer/Timer.js +321 -204
  574. package/Timer/index.js +12 -7
  575. package/ToggleButton/ToggleButton.d.ts +1 -1
  576. package/ToggleButton/ToggleButton.js +67 -58
  577. package/ToggleButton/index.js +12 -7
  578. package/ToggleButtons/ToggleButtons.d.ts +1 -1
  579. package/ToggleButtons/ToggleButtons.js +46 -37
  580. package/ToggleButtons/index.js +12 -7
  581. package/Tooltip/Tooltip.d.ts +1 -1
  582. package/Tooltip/Tooltip.js +489 -454
  583. package/Tooltip/index.js +12 -7
  584. package/TopAppBar/TopAppBar.d.ts +1 -1
  585. package/TopAppBar/TopAppBar.js +237 -197
  586. package/TopAppBar/index.js +12 -7
  587. package/Transition/Context.js +9 -7
  588. package/Transition/Transition.d.ts +3 -3
  589. package/Transition/Transition.js +321 -339
  590. package/Transition/index.js +41 -25
  591. package/Transition/useTransition.js +11 -10
  592. package/Transitions/Transitions.d.ts +2 -2
  593. package/Transitions/Transitions.js +215 -179
  594. package/Transitions/index.js +12 -7
  595. package/Tree/Tree.d.ts +1 -1
  596. package/Tree/Tree.js +375 -312
  597. package/Tree/index.js +12 -7
  598. package/Type/Type.d.ts +1 -1
  599. package/Type/Type.js +251 -152
  600. package/Type/index.js +12 -7
  601. package/VideoPlayer/VideoPlayer.d.ts +1 -1
  602. package/VideoPlayer/VideoPlayer.js +866 -656
  603. package/VideoPlayer/index.js +12 -7
  604. package/ViewSplit/ViewSplit.d.ts +1 -1
  605. package/ViewSplit/ViewSplit.js +413 -387
  606. package/ViewSplit/index.js +12 -7
  607. package/Watch/Watch.d.ts +1 -1
  608. package/Watch/Watch.js +436 -290
  609. package/Watch/index.js +12 -7
  610. package/Weather/Weather.d.ts +4 -4
  611. package/Weather/Weather.js +294 -247
  612. package/Weather/index.js +12 -7
  613. package/Whiteboard/Whiteboard.d.ts +5 -5
  614. package/Whiteboard/Whiteboard.js +1392 -1292
  615. package/Whiteboard/index.js +12 -7
  616. package/Widgets/Context.js +9 -7
  617. package/Widgets/Widgets.d.ts +2 -2
  618. package/Widgets/Widgets.js +220 -168
  619. package/Widgets/index.js +32 -13
  620. package/Widgets/useWidgets.js +11 -10
  621. package/WindowSplit/WindowSplit.d.ts +1 -1
  622. package/WindowSplit/WindowSplit.js +381 -336
  623. package/WindowSplit/index.js +12 -7
  624. package/Zoom/Zoom.d.ts +1 -1
  625. package/Zoom/Zoom.js +126 -99
  626. package/Zoom/index.js +12 -7
  627. package/esm/Append/Append.js +6 -8
  628. package/esm/AutoComplete/AutoComplete.js +8 -20
  629. package/esm/Breadcrumbs/Breadcrumbs.js +1 -3
  630. package/esm/Buttons/Buttons.js +8 -33
  631. package/esm/Calendar/Calendar.js +74 -80
  632. package/esm/CalendarAvailability/CalendarAvailability.js +1 -2
  633. package/esm/CalendarMenu/CalendarMenu.js +2 -2
  634. package/esm/CalendarMonth/CalendarMonth.js +65 -68
  635. package/esm/CalendarWeek/CalendarWeek.js +3 -7
  636. package/esm/Carousel/Carousel.js +4 -12
  637. package/esm/Chart/Chart.js +19 -25
  638. package/esm/Clock/Clock.js +5 -8
  639. package/esm/Confirm/Confirm.js +1 -2
  640. package/esm/DatePicker/DatePicker.js +8 -13
  641. package/esm/DateTimePicker/DateTimePicker.js +6 -9
  642. package/esm/Drawing/Drawing.js +1 -6
  643. package/esm/Expand/Expand.js +1 -2
  644. package/esm/Fade/Fade.js +1 -2
  645. package/esm/Focus/Focus.js +1 -2
  646. package/esm/Grow/Grow.js +1 -2
  647. package/esm/HTMLCanvas/HTMLCanvas.js +2 -5
  648. package/esm/ImageCrop/ImageCrop.js +2 -5
  649. package/esm/ImageEdit/ImageEdit.js +5 -12
  650. package/esm/ImageGallery/ImageGallery.js +1 -2
  651. package/esm/Interaction/Interaction.js +1 -2
  652. package/esm/Keyframes/Keyframes.js +1 -2
  653. package/esm/LinearMeter/LinearMeter.js +77 -80
  654. package/esm/Markdown/Markdown.js +41 -144
  655. package/esm/MenuDesktop/MenuDesktop.js +5 -6
  656. package/esm/Rating/Rating.js +2 -4
  657. package/esm/RichTextEditor/RichTextEditor.js +36 -50
  658. package/esm/RoundMeter/RoundMeter.js +70 -73
  659. package/esm/ScreenCapture/ScreenCapture.js +2 -5
  660. package/esm/Select/Select.js +5 -9
  661. package/esm/Share/Share.js +4 -5
  662. package/esm/Slide/Slide.js +2 -4
  663. package/esm/Slider/Slider.js +3 -6
  664. package/esm/SmartTextField/SmartTextField.js +2 -4
  665. package/esm/Snackbar/Snackbar.js +1 -2
  666. package/esm/Snackbars/Snackbars.js +3 -3
  667. package/esm/Space/Space.js +3 -6
  668. package/esm/Switch/Switch.js +1 -2
  669. package/esm/Tabs/Tabs.js +1 -2
  670. package/esm/TimePicker/TimePicker.js +27 -38
  671. package/esm/Timer/Timer.js +3 -4
  672. package/esm/Tooltip/Tooltip.js +1 -2
  673. package/esm/ViewSplit/ViewSplit.js +1 -2
  674. package/esm/Watch/Watch.js +4 -5
  675. package/esm/Weather/Weather.js +14 -17
  676. package/esm/Whiteboard/Whiteboard.js +1 -4
  677. package/esm/WindowSplit/WindowSplit.js +1 -2
  678. package/esm/Zoom/Zoom.js +1 -2
  679. package/esm/index.js +1 -1
  680. package/esm/useForm/useForm.js +1 -4
  681. package/esm/useLocation/useLocation.js +1 -2
  682. package/esm/useSwipe/useSwipe.js +1 -2
  683. package/esm/utils.js +3 -11
  684. package/index.js +4052 -660
  685. package/package.json +3 -3
  686. package/types.d.ts +27 -27
  687. package/types.js +4 -1
  688. package/useForm/index.js +25 -11
  689. package/useForm/useForm.d.ts +2 -2
  690. package/useForm/useForm.js +203 -174
  691. package/useForm/validate.d.ts +12 -12
  692. package/useForm/validate.js +215 -203
  693. package/useLocation/index.js +12 -7
  694. package/useLocation/useLocation.d.ts +1 -1
  695. package/useLocation/useLocation.js +54 -49
  696. package/useMediaQuery/index.js +12 -7
  697. package/useMediaQuery/useMediaQuery.d.ts +1 -1
  698. package/useMediaQuery/useMediaQuery.js +44 -43
  699. package/useQuery/index.js +12 -7
  700. package/useQuery/useQuery.js +14 -10
  701. package/useScroll/index.js +12 -7
  702. package/useScroll/useScroll.d.ts +2 -2
  703. package/useScroll/useScroll.js +61 -56
  704. package/useSubscription/index.js +12 -7
  705. package/useSubscription/useSubscription.js +35 -35
  706. package/useSwipe/index.js +12 -7
  707. package/useSwipe/useSwipe.d.ts +2 -2
  708. package/useSwipe/useSwipe.js +157 -131
  709. package/useVisible/index.js +12 -7
  710. package/useVisible/useVisible.d.ts +2 -2
  711. package/useVisible/useVisible.js +86 -76
  712. package/utils.js +1224 -1362
@@ -1,998 +1,1790 @@
1
1
  "use strict";
2
- var __rest = (this && this.__rest) || function (s, e) {
3
- var t = {};
4
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
5
- t[p] = s[p];
6
- if (s != null && typeof Object.getOwnPropertySymbols === "function")
7
- for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
8
- if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
9
- t[p[i]] = s[p[i]];
10
- }
11
- return t;
12
- };
13
- var __importDefault = (this && this.__importDefault) || function (mod) {
14
- return (mod && mod.__esModule) ? mod : { "default": mod };
15
- };
16
- Object.defineProperty(exports, "__esModule", { value: true });
17
- const jsx_runtime_1 = require("react/jsx-runtime");
18
- const react_1 = __importDefault(require("react"));
19
- const utils_1 = require("@onesy/utils");
20
- const style_react_1 = require("@onesy/style-react");
21
- const IconMaterialFormatItalicW100_1 = __importDefault(require("@onesy/icons-material-rounded-react/IconMaterialFormatItalicW100"));
22
- const IconMaterialFormatUnderlinedW100_1 = __importDefault(require("@onesy/icons-material-rounded-react/IconMaterialFormatUnderlinedW100"));
23
- const IconMaterialFormatBoldW100_1 = __importDefault(require("@onesy/icons-material-rounded-react/IconMaterialFormatBoldW100"));
24
- const IconMaterialContentCopyW100_1 = __importDefault(require("@onesy/icons-material-rounded-react/IconMaterialContentCopyW100"));
25
- const IconMaterialContentCutW100_1 = __importDefault(require("@onesy/icons-material-rounded-react/IconMaterialContentCutW100"));
26
- const IconMaterialContentPasteW100_1 = __importDefault(require("@onesy/icons-material-rounded-react/IconMaterialContentPasteW100"));
27
- const IconMaterialFormatAlignLeftW100_1 = __importDefault(require("@onesy/icons-material-rounded-react/IconMaterialFormatAlignLeftW100"));
28
- const IconMaterialFormatAlignCenterW100_1 = __importDefault(require("@onesy/icons-material-rounded-react/IconMaterialFormatAlignCenterW100"));
29
- const IconMaterialFormatAlignRightW100_1 = __importDefault(require("@onesy/icons-material-rounded-react/IconMaterialFormatAlignRightW100"));
30
- const IconMaterialFormatAlignJustifyW100_1 = __importDefault(require("@onesy/icons-material-rounded-react/IconMaterialFormatAlignJustifyW100"));
31
- const IconMaterialStrikethroughSW100_1 = __importDefault(require("@onesy/icons-material-rounded-react/IconMaterialStrikethroughSW100"));
32
- const IconMaterialUndoW100_1 = __importDefault(require("@onesy/icons-material-rounded-react/IconMaterialUndoW100"));
33
- const IconMaterialRedoW100_1 = __importDefault(require("@onesy/icons-material-rounded-react/IconMaterialRedoW100"));
34
- const IconMaterialFormatClearW100_1 = __importDefault(require("@onesy/icons-material-rounded-react/IconMaterialFormatClearW100"));
35
- const IconMaterialSuperscriptW100_1 = __importDefault(require("@onesy/icons-material-rounded-react/IconMaterialSuperscriptW100"));
36
- const IconMaterialSubscriptW100_1 = __importDefault(require("@onesy/icons-material-rounded-react/IconMaterialSubscriptW100"));
37
- const IconMaterialFormatIndentIncreaseW100_1 = __importDefault(require("@onesy/icons-material-rounded-react/IconMaterialFormatIndentIncreaseW100"));
38
- const IconMaterialFormatIndentDecreaseW100_1 = __importDefault(require("@onesy/icons-material-rounded-react/IconMaterialFormatIndentDecreaseW100"));
39
- const IconMaterialFormatListNumberedW100_1 = __importDefault(require("@onesy/icons-material-rounded-react/IconMaterialFormatListNumberedW100"));
40
- const IconMaterialFormatListBulletedW100_1 = __importDefault(require("@onesy/icons-material-rounded-react/IconMaterialFormatListBulletedW100"));
41
- const IconMaterialHorizontalRuleW100_1 = __importDefault(require("@onesy/icons-material-rounded-react/IconMaterialHorizontalRuleW100"));
42
- const IconMaterialFormatColorTextW100_1 = __importDefault(require("@onesy/icons-material-rounded-react/IconMaterialFormatColorTextW100"));
43
- const IconMaterialFormatColorFillW100_1 = __importDefault(require("@onesy/icons-material-rounded-react/IconMaterialFormatColorFillW100"));
44
- const IconMaterialAddLinkW100_1 = __importDefault(require("@onesy/icons-material-rounded-react/IconMaterialAddLinkW100"));
45
- const IconMaterialLinkOffW100_1 = __importDefault(require("@onesy/icons-material-rounded-react/IconMaterialLinkOffW100"));
46
- const IconMaterialImageW100_1 = __importDefault(require("@onesy/icons-material-rounded-react/IconMaterialImageW100"));
47
- const IconMaterialFormatQuoteW100_1 = __importDefault(require("@onesy/icons-material-rounded-react/IconMaterialFormatQuoteW100"));
48
- const IconMaterialVideocamW100_1 = __importDefault(require("@onesy/icons-material-rounded-react/IconMaterialVideocamW100"));
49
- const IconMaterialPlayArrowW100_1 = __importDefault(require("@onesy/icons-material-rounded-react/IconMaterialPlayArrowW100"));
50
- const IconMaterialCodeW100_1 = __importDefault(require("@onesy/icons-material-rounded-react/IconMaterialCodeW100"));
51
- const IconMaterialDeleteSweepW100_1 = __importDefault(require("@onesy/icons-material-rounded-react/IconMaterialDeleteSweepW100"));
52
- const IconMaterialSelectAllW100_1 = __importDefault(require("@onesy/icons-material-rounded-react/IconMaterialSelectAllW100"));
53
- const IconMaterialPrintW100_1 = __importDefault(require("@onesy/icons-material-rounded-react/IconMaterialPrintW100"));
54
- const IconMaterialDownloadW100_1 = __importDefault(require("@onesy/icons-material-rounded-react/IconMaterialDownloadW100"));
55
- const IconMaterialTableW100_1 = __importDefault(require("@onesy/icons-material-rounded-react/IconMaterialTableW100"));
56
- const IconMaterialDrawW100_1 = __importDefault(require("@onesy/icons-material-rounded-react/IconMaterialDrawW100"));
57
- const Type_1 = __importDefault(require("../Type"));
58
- const Tooltip_1 = __importDefault(require("../Tooltip"));
59
- const Fade_1 = __importDefault(require("../Fade"));
60
- const Append_1 = __importDefault(require("../Append"));
61
- const Select_1 = __importDefault(require("../Select"));
62
- const Switch_1 = __importDefault(require("../Switch"));
63
- const Label_1 = __importDefault(require("../Label"));
64
- const NumericTextField_1 = __importDefault(require("../NumericTextField"));
65
- const ColorTextField_1 = __importDefault(require("../ColorTextField"));
66
- const ToggleButtons_1 = __importDefault(require("../ToggleButtons"));
67
- const ToggleButton_1 = __importDefault(require("../ToggleButton"));
68
- const Drawing_1 = __importDefault(require("../Drawing"));
69
- const Divider_1 = __importDefault(require("../Divider"));
70
- const ClickListener_1 = __importDefault(require("../ClickListener"));
71
- const TextField_1 = __importDefault(require("../TextField"));
72
- const Button_1 = __importDefault(require("../Button"));
73
- const Surface_1 = __importDefault(require("../Surface"));
74
- const ListItem_1 = __importDefault(require("../ListItem"));
75
- const Line_1 = __importDefault(require("../Line"));
76
- const utils_2 = require("../utils");
77
- const useStyle = (0, style_react_1.style)(theme => ({
78
- root: {
79
- width: '100%'
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.default = void 0;
8
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
10
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
+ var _react = _interopRequireDefault(require("react"));
12
+ var _utils = require("@onesy/utils");
13
+ var _styleReact = require("@onesy/style-react");
14
+ var _IconMaterialFormatItalicW = _interopRequireDefault(require("@onesy/icons-material-rounded-react/IconMaterialFormatItalicW100"));
15
+ var _IconMaterialFormatUnderlinedW = _interopRequireDefault(require("@onesy/icons-material-rounded-react/IconMaterialFormatUnderlinedW100"));
16
+ var _IconMaterialFormatBoldW = _interopRequireDefault(require("@onesy/icons-material-rounded-react/IconMaterialFormatBoldW100"));
17
+ var _IconMaterialContentCopyW = _interopRequireDefault(require("@onesy/icons-material-rounded-react/IconMaterialContentCopyW100"));
18
+ var _IconMaterialContentCutW = _interopRequireDefault(require("@onesy/icons-material-rounded-react/IconMaterialContentCutW100"));
19
+ var _IconMaterialContentPasteW = _interopRequireDefault(require("@onesy/icons-material-rounded-react/IconMaterialContentPasteW100"));
20
+ var _IconMaterialFormatAlignLeftW = _interopRequireDefault(require("@onesy/icons-material-rounded-react/IconMaterialFormatAlignLeftW100"));
21
+ var _IconMaterialFormatAlignCenterW = _interopRequireDefault(require("@onesy/icons-material-rounded-react/IconMaterialFormatAlignCenterW100"));
22
+ var _IconMaterialFormatAlignRightW = _interopRequireDefault(require("@onesy/icons-material-rounded-react/IconMaterialFormatAlignRightW100"));
23
+ var _IconMaterialFormatAlignJustifyW = _interopRequireDefault(require("@onesy/icons-material-rounded-react/IconMaterialFormatAlignJustifyW100"));
24
+ var _IconMaterialStrikethroughSW = _interopRequireDefault(require("@onesy/icons-material-rounded-react/IconMaterialStrikethroughSW100"));
25
+ var _IconMaterialUndoW = _interopRequireDefault(require("@onesy/icons-material-rounded-react/IconMaterialUndoW100"));
26
+ var _IconMaterialRedoW = _interopRequireDefault(require("@onesy/icons-material-rounded-react/IconMaterialRedoW100"));
27
+ var _IconMaterialFormatClearW = _interopRequireDefault(require("@onesy/icons-material-rounded-react/IconMaterialFormatClearW100"));
28
+ var _IconMaterialSuperscriptW = _interopRequireDefault(require("@onesy/icons-material-rounded-react/IconMaterialSuperscriptW100"));
29
+ var _IconMaterialSubscriptW = _interopRequireDefault(require("@onesy/icons-material-rounded-react/IconMaterialSubscriptW100"));
30
+ var _IconMaterialFormatIndentIncreaseW = _interopRequireDefault(require("@onesy/icons-material-rounded-react/IconMaterialFormatIndentIncreaseW100"));
31
+ var _IconMaterialFormatIndentDecreaseW = _interopRequireDefault(require("@onesy/icons-material-rounded-react/IconMaterialFormatIndentDecreaseW100"));
32
+ var _IconMaterialFormatListNumberedW = _interopRequireDefault(require("@onesy/icons-material-rounded-react/IconMaterialFormatListNumberedW100"));
33
+ var _IconMaterialFormatListBulletedW = _interopRequireDefault(require("@onesy/icons-material-rounded-react/IconMaterialFormatListBulletedW100"));
34
+ var _IconMaterialHorizontalRuleW = _interopRequireDefault(require("@onesy/icons-material-rounded-react/IconMaterialHorizontalRuleW100"));
35
+ var _IconMaterialFormatColorTextW = _interopRequireDefault(require("@onesy/icons-material-rounded-react/IconMaterialFormatColorTextW100"));
36
+ var _IconMaterialFormatColorFillW = _interopRequireDefault(require("@onesy/icons-material-rounded-react/IconMaterialFormatColorFillW100"));
37
+ var _IconMaterialAddLinkW = _interopRequireDefault(require("@onesy/icons-material-rounded-react/IconMaterialAddLinkW100"));
38
+ var _IconMaterialLinkOffW = _interopRequireDefault(require("@onesy/icons-material-rounded-react/IconMaterialLinkOffW100"));
39
+ var _IconMaterialImageW = _interopRequireDefault(require("@onesy/icons-material-rounded-react/IconMaterialImageW100"));
40
+ var _IconMaterialFormatQuoteW = _interopRequireDefault(require("@onesy/icons-material-rounded-react/IconMaterialFormatQuoteW100"));
41
+ var _IconMaterialVideocamW = _interopRequireDefault(require("@onesy/icons-material-rounded-react/IconMaterialVideocamW100"));
42
+ var _IconMaterialPlayArrowW = _interopRequireDefault(require("@onesy/icons-material-rounded-react/IconMaterialPlayArrowW100"));
43
+ var _IconMaterialCodeW = _interopRequireDefault(require("@onesy/icons-material-rounded-react/IconMaterialCodeW100"));
44
+ var _IconMaterialDeleteSweepW = _interopRequireDefault(require("@onesy/icons-material-rounded-react/IconMaterialDeleteSweepW100"));
45
+ var _IconMaterialSelectAllW = _interopRequireDefault(require("@onesy/icons-material-rounded-react/IconMaterialSelectAllW100"));
46
+ var _IconMaterialPrintW = _interopRequireDefault(require("@onesy/icons-material-rounded-react/IconMaterialPrintW100"));
47
+ var _IconMaterialDownloadW = _interopRequireDefault(require("@onesy/icons-material-rounded-react/IconMaterialDownloadW100"));
48
+ var _IconMaterialTableW = _interopRequireDefault(require("@onesy/icons-material-rounded-react/IconMaterialTableW100"));
49
+ var _IconMaterialDrawW = _interopRequireDefault(require("@onesy/icons-material-rounded-react/IconMaterialDrawW100"));
50
+ var _Type = _interopRequireDefault(require("../Type"));
51
+ var _Tooltip = _interopRequireDefault(require("../Tooltip"));
52
+ var _Fade = _interopRequireDefault(require("../Fade"));
53
+ var _Append = _interopRequireDefault(require("../Append"));
54
+ var _Select = _interopRequireDefault(require("../Select"));
55
+ var _Switch = _interopRequireDefault(require("../Switch"));
56
+ var _Label = _interopRequireDefault(require("../Label"));
57
+ var _NumericTextField = _interopRequireDefault(require("../NumericTextField"));
58
+ var _ColorTextField = _interopRequireDefault(require("../ColorTextField"));
59
+ var _ToggleButtons = _interopRequireDefault(require("../ToggleButtons"));
60
+ var _ToggleButton = _interopRequireDefault(require("../ToggleButton"));
61
+ var _Drawing = _interopRequireDefault(require("../Drawing"));
62
+ var _Divider = _interopRequireDefault(require("../Divider"));
63
+ var _ClickListener = _interopRequireDefault(require("../ClickListener"));
64
+ var _TextField = _interopRequireDefault(require("../TextField"));
65
+ var _Button = _interopRequireDefault(require("../Button"));
66
+ var _Surface = _interopRequireDefault(require("../Surface"));
67
+ var _ListItem = _interopRequireDefault(require("../ListItem"));
68
+ var _Line = _interopRequireDefault(require("../Line"));
69
+ var _utils2 = require("../utils");
70
+ const _excluded = ["tonal", "color", "version", "value", "onChange", "render", "miniMenu", "miniMenuInclude", "exclude", "updates", "actions", "fontFamilies", "addFontFamilies", "IconItalic", "IconUnderline", "IconBold", "IconStrikeLine", "IconColor", "IconBackground", "IconAlignLeft", "IconAlignCenter", "IconAlignRight", "IconAlignJustify", "IconIndent", "IconOutdent", "IconSuperscript", "IconSubscript", "IconListOrdered", "IconListUnordered", "IconHorizontalRule", "IconLinkAdd", "IconLinkRemove", "IconQuote", "IconImage", "IconVideo", "IconVideoYoutube", "IconTable", "IconCode", "IconDrawing", "IconCopy", "IconCut", "IconPaste", "IconDelete", "IconClear", "IconSelectAll", "IconSave", "IconPrint", "IconUndo", "IconRedo", "AppendProps", "ToolbarProps", "ToolbarUpdatesProps", "ToolbarActionsProps", "ToggleButtonProps", "ToggleButtonsProps", "DividerProps", "SelectProps", "ListItemProps", "TooltipProps", "MiniMenuProps", "DrawingProps", "IconProps", "ColorTextFieldProps", "Component", "className", "children"],
71
+ _excluded2 = ["open", "name", "children"],
72
+ _excluded3 = ["open", "element", "anchorElement", "onClose", "children"],
73
+ _excluded4 = ["color"],
74
+ _excluded5 = ["version", "onUpdate", "onClose"],
75
+ _excluded6 = ["label", "labelButton", "value", "onChange", "onClick", "InputComponent", "InputProps"];
76
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
77
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
78
+ const useStyle = (0, _styleReact.style)(theme => ({
79
+ root: {
80
+ width: '100%'
81
+ },
82
+ value: {
83
+ padding: theme.methods.space.value(2, 'px'),
84
+ whiteSpace: 'break-spaces',
85
+ '& p': _objectSpread({}, theme.typography.values.b2),
86
+ '& h1': _objectSpread({}, theme.typography.values.h1),
87
+ '& h2': _objectSpread({}, theme.typography.values.h2),
88
+ '& h3': _objectSpread({}, theme.typography.values.h3),
89
+ '& h4': _objectSpread({}, theme.typography.values.t1),
90
+ '& h5': _objectSpread({}, theme.typography.values.t2),
91
+ '& a': {
92
+ color: theme.palette.color.primary.main,
93
+ textDecoration: 'underline'
80
94
  },
81
- value: {
82
- padding: theme.methods.space.value(2, 'px'),
83
- whiteSpace: 'break-spaces',
84
- '& p': Object.assign({}, theme.typography.values.b2),
85
- '& h1': Object.assign({}, theme.typography.values.h1),
86
- '& h2': Object.assign({}, theme.typography.values.h2),
87
- '& h3': Object.assign({}, theme.typography.values.h3),
88
- '& h4': Object.assign({}, theme.typography.values.t1),
89
- '& h5': Object.assign({}, theme.typography.values.t2),
90
- '& a': {
91
- color: theme.palette.color.primary.main,
92
- textDecoration: 'underline'
93
- },
94
- '& blockquote': {
95
- margin: '16px 0',
96
- marginInlineStart: '16px',
97
- padding: `${theme.methods.space.value(2.5, 'px')} ${theme.methods.space.value(2, 'px')}`,
98
- borderInlineStart: `4px solid ${theme.methods.palette.color.colorToRgb(theme.palette.text.default.primary, theme.palette.light ? 0.04 : 0.2)}`,
99
- background: theme.methods.palette.color.colorToRgb(theme.palette.text.default.primary, theme.palette.light ? 0.02 : 0.14),
100
- '& > *': {
101
- margin: '0px'
102
- },
103
- '& > $blockquote': {
104
- marginBlock: '16px'
105
- }
106
- },
107
- '& iframe': {
108
- display: 'block',
109
- maxWidth: '100%',
110
- margin: '16px auto'
111
- },
112
- '& video': {
113
- display: 'block',
114
- margin: '16px auto'
115
- },
116
- '& code': {
117
- padding: `${theme.methods.space.value(0.25, 'px')} ${theme.methods.space.value(0.5, 'px')}`,
118
- borderRadius: theme.methods.shape.radius.value(0.5, 'px'),
119
- color: theme.palette.text.default.primary,
120
- background: theme.methods.palette.color.colorToRgb(theme.palette.text.default.primary, theme.palette.light ? 0.04 : 0.1)
121
- },
122
- '& pre': {
123
- margin: '16px 0',
124
- padding: theme.methods.space.value(2, 'px'),
125
- borderRadius: theme.methods.shape.radius.value(1, 'px'),
126
- color: theme.palette.text.default.primary,
127
- background: theme.methods.palette.color.colorToRgb(theme.palette.text.default.primary, theme.palette.light ? 0.04 : 0.1),
128
- '& code': {
129
- padding: '0px',
130
- background: 'transparent'
131
- }
132
- },
133
- '& table': {
134
- margin: '16px auto',
135
- borderCollapse: 'collapse',
136
- border: `1px solid ${theme.palette.light ? theme.palette.color.neutral[80] : theme.palette.color.neutral[30]}`,
137
- '& th, & td': Object.assign(Object.assign({}, theme.typography.values.b2), { height: '45px', padding: `${theme.methods.space.value(1.5, 'px')} ${theme.methods.space.value(2, 'px')}`, borderBottom: `1px solid ${theme.palette.light ? theme.palette.color.neutral[80] : theme.palette.color.neutral[30]}`, borderRight: `1px solid ${theme.palette.light ? theme.palette.color.neutral[80] : theme.palette.color.neutral[30]}` }),
138
- '& th': {
139
- fontWeight: 500,
140
- borderBottom: `1px solid ${theme.palette.light ? theme.palette.color.neutral[50] : theme.palette.color.neutral[50]}`
141
- }
142
- },
143
- '& .onesy-Drawing-svg': {
144
- display: 'block',
145
- margin: '16px auto',
146
- background: theme.palette.color.neutral[100]
147
- }
95
+ '& blockquote': {
96
+ margin: '16px 0',
97
+ marginInlineStart: '16px',
98
+ padding: `${theme.methods.space.value(2.5, 'px')} ${theme.methods.space.value(2, 'px')}`,
99
+ borderInlineStart: `4px solid ${theme.methods.palette.color.colorToRgb(theme.palette.text.default.primary, theme.palette.light ? 0.04 : 0.2)}`,
100
+ background: theme.methods.palette.color.colorToRgb(theme.palette.text.default.primary, theme.palette.light ? 0.02 : 0.14),
101
+ '& > *': {
102
+ margin: '0px'
103
+ },
104
+ '& > $blockquote': {
105
+ marginBlock: '16px'
106
+ }
148
107
  },
149
- toolbars: {
150
- width: '100%'
108
+ '& iframe': {
109
+ display: 'block',
110
+ maxWidth: '100%',
111
+ margin: '16px auto'
151
112
  },
152
- toolbar: {
153
- width: '100%',
154
- overflowX: 'auto',
155
- padding: theme.methods.space.value(1, 'px')
113
+ '& video': {
114
+ display: 'block',
115
+ margin: '16px auto'
156
116
  },
157
- divider: {
158
- '&.onesy-Divider-root': {
159
- margin: 0
160
- }
117
+ '& code': {
118
+ padding: `${theme.methods.space.value(0.25, 'px')} ${theme.methods.space.value(0.5, 'px')}`,
119
+ borderRadius: theme.methods.shape.radius.value(0.5, 'px'),
120
+ color: theme.palette.text.default.primary,
121
+ background: theme.methods.palette.color.colorToRgb(theme.palette.text.default.primary, theme.palette.light ? 0.04 : 0.1)
161
122
  },
162
- divider_middle: {
163
- '&.onesy-Divider-root': {
164
- opacity: theme.palette.light ? 0.07 : 0.24
165
- }
123
+ '& pre': {
124
+ margin: '16px 0',
125
+ padding: theme.methods.space.value(2, 'px'),
126
+ borderRadius: theme.methods.shape.radius.value(1, 'px'),
127
+ color: theme.palette.text.default.primary,
128
+ background: theme.methods.palette.color.colorToRgb(theme.palette.text.default.primary, theme.palette.light ? 0.04 : 0.1),
129
+ '& code': {
130
+ padding: '0px',
131
+ background: 'transparent'
132
+ }
166
133
  },
167
- divider_end: {
168
- '&.onesy-Divider-root': {
169
- opacity: theme.palette.light ? 0.14 : 0.4
170
- }
134
+ '& table': {
135
+ margin: '16px auto',
136
+ borderCollapse: 'collapse',
137
+ border: `1px solid ${theme.palette.light ? theme.palette.color.neutral[80] : theme.palette.color.neutral[30]}`,
138
+ '& th, & td': _objectSpread(_objectSpread({}, theme.typography.values.b2), {}, {
139
+ height: '45px',
140
+ padding: `${theme.methods.space.value(1.5, 'px')} ${theme.methods.space.value(2, 'px')}`,
141
+ borderBottom: `1px solid ${theme.palette.light ? theme.palette.color.neutral[80] : theme.palette.color.neutral[30]}`,
142
+ borderRight: `1px solid ${theme.palette.light ? theme.palette.color.neutral[80] : theme.palette.color.neutral[30]}`
143
+ }),
144
+ '& th': {
145
+ fontWeight: 500,
146
+ borderBottom: `1px solid ${theme.palette.light ? theme.palette.color.neutral[50] : theme.palette.color.neutral[50]}`
147
+ }
171
148
  },
172
- select: {
173
- '& .onesy-TextField-input-wrapper': {
174
- height: '40px',
175
- paddingBlock: theme.methods.space.value(1.25, 'px')
176
- },
177
- '& .onesy-Select-input': {
178
- '& > *': Object.assign(Object.assign({}, theme.typography.values.b2), { fontWeight: 400 })
179
- }
149
+ '& .onesy-Drawing-svg': {
150
+ display: 'block',
151
+ margin: '16px auto',
152
+ background: theme.palette.color.neutral[100]
153
+ }
154
+ },
155
+ toolbars: {
156
+ width: '100%'
157
+ },
158
+ toolbar: {
159
+ width: '100%',
160
+ overflowX: 'auto',
161
+ padding: theme.methods.space.value(1, 'px')
162
+ },
163
+ divider: {
164
+ '&.onesy-Divider-root': {
165
+ margin: 0
166
+ }
167
+ },
168
+ divider_middle: {
169
+ '&.onesy-Divider-root': {
170
+ opacity: theme.palette.light ? 0.07 : 0.24
171
+ }
172
+ },
173
+ divider_end: {
174
+ '&.onesy-Divider-root': {
175
+ opacity: theme.palette.light ? 0.14 : 0.4
176
+ }
177
+ },
178
+ select: {
179
+ '& .onesy-TextField-input-wrapper': {
180
+ height: '40px',
181
+ paddingBlock: theme.methods.space.value(1.25, 'px')
180
182
  },
181
- miniMenu: {
182
- padding: theme.methods.space.value(1.5, 'px'),
183
- borderRadius: theme.methods.shape.radius.value(140, 'px'),
184
- boxShadow: theme.shadows.values.default[2]
183
+ '& .onesy-Select-input': {
184
+ '& > *': _objectSpread(_objectSpread({}, theme.typography.values.b2), {}, {
185
+ fontWeight: 400
186
+ })
187
+ }
188
+ },
189
+ miniMenu: {
190
+ padding: theme.methods.space.value(1.5, 'px'),
191
+ borderRadius: theme.methods.shape.radius.value(140, 'px'),
192
+ boxShadow: theme.shadows.values.default[2]
193
+ },
194
+ palette: {
195
+ padding: theme.methods.space.value(1.5, 'px'),
196
+ borderRadius: theme.methods.shape.radius.value(1, 'px'),
197
+ boxShadow: theme.shadows.values.default[2]
198
+ },
199
+ paletteItem: {
200
+ position: 'relative',
201
+ width: '17px',
202
+ height: '17px',
203
+ cursor: 'pointer',
204
+ borderRadius: theme.methods.shape.radius.value(40, 'px'),
205
+ boxShadow: theme.shadows.values.default[1],
206
+ transition: theme.methods.transitions.make('box-shadow'),
207
+ '&:hover': {
208
+ boxShadow: theme.shadows.values.default[2]
209
+ }
210
+ },
211
+ textFieldColor: {
212
+ flex: '1 1 auto'
213
+ }
214
+ }), {
215
+ name: 'onesy-RichTextEditor'
216
+ });
217
+ const RichTextEditor = /*#__PURE__*/_react.default.forwardRef((props__, ref) => {
218
+ var _refs$root$current;
219
+ const theme = (0, _styleReact.useOnesyTheme)();
220
+ const l = theme.l;
221
+ const props = _react.default.useMemo(() => {
222
+ var _theme$ui, _theme$ui2;
223
+ return _objectSpread(_objectSpread(_objectSpread({}, theme === null || theme === void 0 || (_theme$ui = theme.ui) === null || _theme$ui === void 0 || (_theme$ui = _theme$ui.elements) === null || _theme$ui === void 0 || (_theme$ui = _theme$ui.all) === null || _theme$ui === void 0 || (_theme$ui = _theme$ui.props) === null || _theme$ui === void 0 ? void 0 : _theme$ui.default), theme === null || theme === void 0 || (_theme$ui2 = theme.ui) === null || _theme$ui2 === void 0 || (_theme$ui2 = _theme$ui2.elements) === null || _theme$ui2 === void 0 || (_theme$ui2 = _theme$ui2.onesyRichTextEditor) === null || _theme$ui2 === void 0 || (_theme$ui2 = _theme$ui2.props) === null || _theme$ui2 === void 0 ? void 0 : _theme$ui2.default), props__);
224
+ }, [props__]);
225
+ const Line = _react.default.useMemo(() => {
226
+ var _theme$elements;
227
+ return (theme === null || theme === void 0 || (_theme$elements = theme.elements) === null || _theme$elements === void 0 ? void 0 : _theme$elements.Line) || _Line.default;
228
+ }, [theme]);
229
+ const Type = _react.default.useMemo(() => {
230
+ var _theme$elements2;
231
+ return (theme === null || theme === void 0 || (_theme$elements2 = theme.elements) === null || _theme$elements2 === void 0 ? void 0 : _theme$elements2.Type) || _Type.default;
232
+ }, [theme]);
233
+ const Tooltip = _react.default.useMemo(() => {
234
+ var _theme$elements3;
235
+ return (theme === null || theme === void 0 || (_theme$elements3 = theme.elements) === null || _theme$elements3 === void 0 ? void 0 : _theme$elements3.Tooltip) || _Tooltip.default;
236
+ }, [theme]);
237
+ const Fade = _react.default.useMemo(() => {
238
+ var _theme$elements4;
239
+ return (theme === null || theme === void 0 || (_theme$elements4 = theme.elements) === null || _theme$elements4 === void 0 ? void 0 : _theme$elements4.Fade) || _Fade.default;
240
+ }, [theme]);
241
+ const Append = _react.default.useMemo(() => {
242
+ var _theme$elements5;
243
+ return (theme === null || theme === void 0 || (_theme$elements5 = theme.elements) === null || _theme$elements5 === void 0 ? void 0 : _theme$elements5.Append) || _Append.default;
244
+ }, [theme]);
245
+ const Select = _react.default.useMemo(() => {
246
+ var _theme$elements6;
247
+ return (theme === null || theme === void 0 || (_theme$elements6 = theme.elements) === null || _theme$elements6 === void 0 ? void 0 : _theme$elements6.Select) || _Select.default;
248
+ }, [theme]);
249
+ const Switch = _react.default.useMemo(() => {
250
+ var _theme$elements7;
251
+ return (theme === null || theme === void 0 || (_theme$elements7 = theme.elements) === null || _theme$elements7 === void 0 ? void 0 : _theme$elements7.Switch) || _Switch.default;
252
+ }, [theme]);
253
+ const Label = _react.default.useMemo(() => {
254
+ var _theme$elements8;
255
+ return (theme === null || theme === void 0 || (_theme$elements8 = theme.elements) === null || _theme$elements8 === void 0 ? void 0 : _theme$elements8.Label) || _Label.default;
256
+ }, [theme]);
257
+ const NumericTextField = _react.default.useMemo(() => {
258
+ var _theme$elements9;
259
+ return (theme === null || theme === void 0 || (_theme$elements9 = theme.elements) === null || _theme$elements9 === void 0 ? void 0 : _theme$elements9.NumericTextField) || _NumericTextField.default;
260
+ }, [theme]);
261
+ const ColorTextField = _react.default.useMemo(() => {
262
+ var _theme$elements0;
263
+ return (theme === null || theme === void 0 || (_theme$elements0 = theme.elements) === null || _theme$elements0 === void 0 ? void 0 : _theme$elements0.ColorTextField) || _ColorTextField.default;
264
+ }, [theme]);
265
+ const ToggleButton = _react.default.useMemo(() => {
266
+ var _theme$elements1;
267
+ return (theme === null || theme === void 0 || (_theme$elements1 = theme.elements) === null || _theme$elements1 === void 0 ? void 0 : _theme$elements1.ToggleButton) || _ToggleButton.default;
268
+ }, [theme]);
269
+ const ToggleButtons = _react.default.useMemo(() => {
270
+ var _theme$elements10;
271
+ return (theme === null || theme === void 0 || (_theme$elements10 = theme.elements) === null || _theme$elements10 === void 0 ? void 0 : _theme$elements10.ToggleButtons) || _ToggleButtons.default;
272
+ }, [theme]);
273
+ const Drawing = _react.default.useMemo(() => {
274
+ var _theme$elements11;
275
+ return (theme === null || theme === void 0 || (_theme$elements11 = theme.elements) === null || _theme$elements11 === void 0 ? void 0 : _theme$elements11.Drawing) || _Drawing.default;
276
+ }, [theme]);
277
+ const Divider = _react.default.useMemo(() => {
278
+ var _theme$elements12;
279
+ return (theme === null || theme === void 0 || (_theme$elements12 = theme.elements) === null || _theme$elements12 === void 0 ? void 0 : _theme$elements12.Divider) || _Divider.default;
280
+ }, [theme]);
281
+ const ClickListener = _react.default.useMemo(() => {
282
+ var _theme$elements13;
283
+ return (theme === null || theme === void 0 || (_theme$elements13 = theme.elements) === null || _theme$elements13 === void 0 ? void 0 : _theme$elements13.ClickListener) || _ClickListener.default;
284
+ }, [theme]);
285
+ const TextField = _react.default.useMemo(() => {
286
+ var _theme$elements14;
287
+ return (theme === null || theme === void 0 || (_theme$elements14 = theme.elements) === null || _theme$elements14 === void 0 ? void 0 : _theme$elements14.TextField) || _TextField.default;
288
+ }, [theme]);
289
+ const Surface = _react.default.useMemo(() => {
290
+ var _theme$elements15;
291
+ return (theme === null || theme === void 0 || (_theme$elements15 = theme.elements) === null || _theme$elements15 === void 0 ? void 0 : _theme$elements15.Surface) || _Surface.default;
292
+ }, [theme]);
293
+ const Button = _react.default.useMemo(() => {
294
+ var _theme$elements16;
295
+ return (theme === null || theme === void 0 || (_theme$elements16 = theme.elements) === null || _theme$elements16 === void 0 ? void 0 : _theme$elements16.Button) || _Button.default;
296
+ }, [theme]);
297
+ const ListItem = _react.default.useMemo(() => {
298
+ var _theme$elements17;
299
+ return (theme === null || theme === void 0 || (_theme$elements17 = theme.elements) === null || _theme$elements17 === void 0 ? void 0 : _theme$elements17.ListItem) || _ListItem.default;
300
+ }, [theme]);
301
+ const {
302
+ tonal = true,
303
+ color = 'default',
304
+ version = 'filled',
305
+ value,
306
+ onChange,
307
+ render,
308
+ miniMenu = true,
309
+ miniMenuInclude = ['italic', 'underline', 'bold', 'strike-line', 'font-color', 'font-background', 'align-left', 'align-center', 'align-right', 'align-justify', 'link-add', 'link-remove', 'clear'],
310
+ exclude,
311
+ updates = true,
312
+ actions = true,
313
+ fontFamilies = [{
314
+ label: 'Arial',
315
+ value: `Arial, sans-serif`
316
+ }, {
317
+ label: 'Verdana',
318
+ value: `Verdana, sans-serif`
319
+ }, {
320
+ label: 'Helvetica',
321
+ value: `Helvetica, sans-serif`
322
+ }, {
323
+ label: 'Georgia',
324
+ value: `Georgia, sans-serif`
325
+ }, {
326
+ label: 'Roboto',
327
+ value: `Roboto, sans-serif`
328
+ }, {
329
+ label: 'DM Sans',
330
+ value: `DM Sans, sans-serif`
331
+ }],
332
+ addFontFamilies = [],
333
+ // Update
334
+ IconItalic = _IconMaterialFormatItalicW.default,
335
+ IconUnderline = _IconMaterialFormatUnderlinedW.default,
336
+ IconBold = _IconMaterialFormatBoldW.default,
337
+ IconStrikeLine = _IconMaterialStrikethroughSW.default,
338
+ IconColor = _IconMaterialFormatColorTextW.default,
339
+ IconBackground = _IconMaterialFormatColorFillW.default,
340
+ IconAlignLeft = _IconMaterialFormatAlignLeftW.default,
341
+ IconAlignCenter = _IconMaterialFormatAlignCenterW.default,
342
+ IconAlignRight = _IconMaterialFormatAlignRightW.default,
343
+ IconAlignJustify = _IconMaterialFormatAlignJustifyW.default,
344
+ IconIndent = _IconMaterialFormatIndentIncreaseW.default,
345
+ IconOutdent = _IconMaterialFormatIndentDecreaseW.default,
346
+ IconSuperscript = _IconMaterialSuperscriptW.default,
347
+ IconSubscript = _IconMaterialSubscriptW.default,
348
+ IconListOrdered = _IconMaterialFormatListNumberedW.default,
349
+ IconListUnordered = _IconMaterialFormatListBulletedW.default,
350
+ IconHorizontalRule = _IconMaterialHorizontalRuleW.default,
351
+ IconLinkAdd = _IconMaterialAddLinkW.default,
352
+ IconLinkRemove = _IconMaterialLinkOffW.default,
353
+ IconQuote = _IconMaterialFormatQuoteW.default,
354
+ IconImage = _IconMaterialImageW.default,
355
+ IconVideo = _IconMaterialVideocamW.default,
356
+ IconVideoYoutube = _IconMaterialPlayArrowW.default,
357
+ IconTable = _IconMaterialTableW.default,
358
+ IconCode = _IconMaterialCodeW.default,
359
+ IconDrawing = _IconMaterialDrawW.default,
360
+ // Action
361
+ IconCopy = _IconMaterialContentCopyW.default,
362
+ IconCut = _IconMaterialContentCutW.default,
363
+ IconPaste = _IconMaterialContentPasteW.default,
364
+ IconDelete = _IconMaterialDeleteSweepW.default,
365
+ IconClear = _IconMaterialFormatClearW.default,
366
+ IconSelectAll = _IconMaterialSelectAllW.default,
367
+ IconSave = _IconMaterialDownloadW.default,
368
+ IconPrint = _IconMaterialPrintW.default,
369
+ IconUndo = _IconMaterialUndoW.default,
370
+ IconRedo = _IconMaterialRedoW.default,
371
+ AppendProps: AppendProps_,
372
+ ToolbarProps,
373
+ ToolbarUpdatesProps,
374
+ ToolbarActionsProps,
375
+ ToggleButtonProps: ToggleButtonProps_,
376
+ ToggleButtonsProps: ToggleButtonsProps_,
377
+ DividerProps: DividerProps_,
378
+ SelectProps: SelectProps_,
379
+ ListItemProps: ListItemProps_,
380
+ TooltipProps: TooltipProps_,
381
+ MiniMenuProps: MiniMenuProps_,
382
+ DrawingProps,
383
+ IconProps: IconProps_,
384
+ ColorTextFieldProps,
385
+ Component = 'div',
386
+ className,
387
+ children
388
+ } = props,
389
+ other = (0, _objectWithoutProperties2.default)(props, _excluded);
390
+ const {
391
+ classes
392
+ } = useStyle();
393
+ const [inputValues, setInputValues] = _react.default.useState({});
394
+ const [open, setOpen] = _react.default.useState({});
395
+ const [selected, setSelected] = _react.default.useState([]);
396
+ const [selection, setSelection] = _react.default.useState();
397
+ const refs = {
398
+ root: _react.default.useRef(null),
399
+ value: _react.default.useRef(null),
400
+ range: _react.default.useRef(null),
401
+ inputValues: _react.default.useRef(null),
402
+ open: _react.default.useRef(null),
403
+ props: _react.default.useRef(null),
404
+ selected: _react.default.useRef(null),
405
+ miniMenu: _react.default.useRef(null),
406
+ miniMenuInclude: _react.default.useRef(null),
407
+ miniMenuElements: {
408
+ color: _react.default.useRef(null),
409
+ colorPalette: _react.default.useRef(null),
410
+ background: _react.default.useRef(null),
411
+ backgroundPalette: _react.default.useRef(null),
412
+ linkAdd: _react.default.useRef(null),
413
+ linkAddInput: _react.default.useRef(null),
414
+ linkRemove: _react.default.useRef(null)
185
415
  },
186
- palette: {
187
- padding: theme.methods.space.value(1.5, 'px'),
188
- borderRadius: theme.methods.shape.radius.value(1, 'px'),
189
- boxShadow: theme.shadows.values.default[2]
416
+ elements: {
417
+ color: _react.default.useRef(null),
418
+ background: _react.default.useRef(null),
419
+ linkAdd: _react.default.useRef(null),
420
+ linkRemove: _react.default.useRef(null),
421
+ quote: _react.default.useRef(null),
422
+ image: _react.default.useRef(null),
423
+ video: _react.default.useRef(null),
424
+ videoYoutube: _react.default.useRef(null),
425
+ table: _react.default.useRef(null),
426
+ drawing: _react.default.useRef(null),
427
+ drawingSvg: _react.default.useRef(null),
428
+ drawingSize: _react.default.useRef(null),
429
+ drawingSelect: _react.default.useRef(null),
430
+ drawingPalette: _react.default.useRef(null),
431
+ code: _react.default.useRef(null)
190
432
  },
191
- paletteItem: {
192
- position: 'relative',
193
- width: '17px',
194
- height: '17px',
195
- cursor: 'pointer',
196
- borderRadius: theme.methods.shape.radius.value(40, 'px'),
197
- boxShadow: theme.shadows.values.default[1],
198
- transition: theme.methods.transitions.make('box-shadow'),
199
- '&:hover': {
200
- boxShadow: theme.shadows.values.default[2],
201
- }
433
+ rootDocument: _react.default.useRef(null),
434
+ rootWindow: _react.default.useRef(null)
435
+ };
436
+ refs.inputValues.current = inputValues;
437
+ refs.open.current = open;
438
+ refs.props.current = props;
439
+ refs.selected.current = selected;
440
+ refs.miniMenuInclude.current = miniMenuInclude;
441
+ const rootDocument = (0, _utils.isEnvironment)('browser') && (((_refs$root$current = refs.root.current) === null || _refs$root$current === void 0 ? void 0 : _refs$root$current.ownerDocument) || window.document);
442
+ const rootWindow = rootDocument && (rootDocument.defaultView || window);
443
+ refs.rootDocument.current = rootDocument;
444
+ refs.rootWindow.current = rootWindow;
445
+ _react.default.useEffect(() => {
446
+ // Add value as innerHTML
447
+ refs.value.current.innerHTML = value;
448
+ }, [value]);
449
+ _react.default.useEffect(() => {
450
+ var _selection_$anchorNod;
451
+ const selection_ = refs.rootWindow.current.getSelection();
452
+ if (selection_ && selection_.anchorNode && !((_selection_$anchorNod = selection_.anchorNode) !== null && _selection_$anchorNod !== void 0 && (_selection_$anchorNod = _selection_$anchorNod.className) !== null && _selection_$anchorNod !== void 0 && _selection_$anchorNod.includes('TextField'))) refs.range.current = selection_.getRangeAt(0);
453
+ }, [open]);
454
+ _react.default.useEffect(() => {
455
+ if (!selection) {
456
+ updateOpen('colorMiniMenu', false);
457
+ updateOpen('backgroundMiniMenu', false);
458
+ updateOpen('linkMiniMenu', false);
459
+ }
460
+ }, [selection]);
461
+ const query = command => {
462
+ return (0, _utils.parse)(refs.rootDocument.current.queryCommandValue(command));
463
+ };
464
+ const includesMinMenu = (...args) => args.some(item => refs.miniMenuInclude.current.includes(item));
465
+ const clear = (element = refs.value.current) => {
466
+ const children_ = Array.from(element.children);
467
+ const toRemove = [];
468
+ const other_ = [];
469
+ children_.forEach((item, index) => {
470
+ item.tagName === 'SPAN' && !item.innerHTML || item.tagName === 'BR' && index > 0 && children_[index - 1].tagName === 'SPAN' && !children_[index - 1].innerHTML ? toRemove.push(item) : other_.push(item);
471
+ });
472
+ toRemove.forEach(item => item.remove());
473
+ other_.forEach(item => clear(item));
474
+ };
475
+ const onUpdate = event => {
476
+ // Clear from empty element values
477
+ clear();
478
+ if ((0, _utils.is)('function', onChange)) onChange(event);
479
+ };
480
+ const updateInputValues = (property, itemValue) => {
481
+ setInputValues(values => _objectSpread(_objectSpread({}, values), {}, {
482
+ [property]: itemValue
483
+ }));
484
+ };
485
+ const updateOpen = (property, itemValue) => {
486
+ setOpen(values => _objectSpread(_objectSpread({}, values), {}, {
487
+ [property]: itemValue
488
+ }));
489
+ };
490
+ const paste = async () => {
491
+ const value_ = await navigator.clipboard.read();
492
+ if (value_) {
493
+ let values = '';
494
+ for (const item of Array.from(value_)) {
495
+ const valueItem = await item.getType('text/html');
496
+ values += await valueItem.text();
497
+ }
498
+ refs.rootDocument.current.execCommand('insertHTML', undefined, values);
499
+ }
500
+ };
501
+ const method = _react.default.useCallback(command => argument => {
502
+ switch (command) {
503
+ // updates
504
+ case 'italic':
505
+ refs.rootDocument.current.execCommand('italic');
506
+ if (query('italic')) setSelected(values => [...values, 'italic']);else setSelected(values => values.filter(item => item !== 'italic'));
507
+ break;
508
+ case 'underline':
509
+ refs.rootDocument.current.execCommand('underline');
510
+ if (query('underline')) setSelected(values => [...values, 'underline']);else setSelected(values => values.filter(item => item !== 'underline'));
511
+ break;
512
+ case 'bold':
513
+ refs.rootDocument.current.execCommand('bold');
514
+ if (query('bold')) setSelected(values => [...values, 'bold']);else setSelected(values => values.filter(item => item !== 'bold'));
515
+ break;
516
+ case 'strike-line':
517
+ refs.rootDocument.current.execCommand('strikeThrough');
518
+ if (query('strikeThrough')) setSelected(values => [...values, 'strike-line']);else setSelected(values => values.filter(item => item !== 'strike-line'));
519
+ break;
520
+ case 'align-left':
521
+ refs.rootDocument.current.execCommand('justifyLeft');
522
+ if (query('justifyLeft')) setSelected(values => [...values.filter(item => !item.includes('align')), 'align-left']);else setSelected(values => values.filter(item => item !== 'align-left'));
523
+ break;
524
+ case 'align-center':
525
+ refs.rootDocument.current.execCommand('justifyCenter');
526
+ if (query('justifyCenter')) setSelected(values => [...values.filter(item => !item.includes('align')), 'align-center']);else setSelected(values => values.filter(item => item !== 'align-center'));
527
+ break;
528
+ case 'align-right':
529
+ refs.rootDocument.current.execCommand('justifyRight');
530
+ if (query('justifyRight')) setSelected(values => [...values.filter(item => !item.includes('align')), 'align-right']);else setSelected(values => values.filter(item => item !== 'align-right'));
531
+ break;
532
+ case 'align-justify':
533
+ refs.rootDocument.current.execCommand('justifyFull');
534
+ if (query('justifyFull')) setSelected(values => [...values.filter(item => !item.includes('align')), 'align-justify']);else setSelected(values => values.filter(item => item !== 'align-justify'));
535
+ break;
536
+ case 'superscript':
537
+ refs.rootDocument.current.execCommand('superscript');
538
+ if (query('superscript')) setSelected(values => [...values, 'superscript']);else setSelected(values => values.filter(item => item !== 'superscript'));
539
+ break;
540
+ case 'subscript':
541
+ refs.rootDocument.current.execCommand('subscript');
542
+ if (query('subscript')) setSelected(values => [...values, 'subscript']);else setSelected(values => values.filter(item => item !== 'subscript'));
543
+ break;
544
+ case 'indent':
545
+ refs.rootDocument.current.execCommand('indent');
546
+ break;
547
+ case 'outdent':
548
+ refs.rootDocument.current.execCommand('outdent');
549
+ break;
550
+ case 'font-version':
551
+ refs.rootDocument.current.execCommand('formatBlock', undefined, argument);
552
+ break;
553
+ case 'font-family':
554
+ refs.rootDocument.current.execCommand('styleWithCSS', true);
555
+ refs.rootDocument.current.execCommand('fontName', undefined, argument);
556
+ refs.rootDocument.current.execCommand('styleWithCSS', false);
557
+ break;
558
+ case 'font-size':
559
+ refs.rootDocument.current.execCommand('styleWithCSS', true);
560
+ refs.rootDocument.current.execCommand('fontSize', undefined, argument);
561
+ refs.rootDocument.current.execCommand('styleWithCSS', false);
562
+ break;
563
+ case 'font-color':
564
+ refs.rootDocument.current.execCommand('styleWithCSS', true);
565
+ refs.rootDocument.current.execCommand('foreColor', undefined, argument);
566
+ refs.rootDocument.current.execCommand('styleWithCSS', false);
567
+ break;
568
+ case 'font-background':
569
+ refs.rootDocument.current.execCommand('styleWithCSS', true);
570
+ refs.rootDocument.current.execCommand('backColor', undefined, argument);
571
+ refs.rootDocument.current.execCommand('styleWithCSS', false);
572
+ break;
573
+ case 'list-ordered':
574
+ refs.rootDocument.current.execCommand('insertOrderedList');
575
+ if (query('insertOrderedList')) setSelected(values => [...values.filter(item => !item.includes('list')), 'list-ordered']);else setSelected(values => values.filter(item => item !== 'list-ordered'));
576
+ break;
577
+ case 'list-unordered':
578
+ refs.rootDocument.current.execCommand('insertUnorderedList');
579
+ if (query('insertUnorderedList')) setSelected(values => [...values.filter(item => !item.includes('list')), 'list-unordered']);else setSelected(values => values.filter(item => item !== 'list-unordered'));
580
+ break;
581
+ case 'horizontal-rule':
582
+ refs.rootDocument.current.execCommand('insertHorizontalRule');
583
+ break;
584
+ case 'link-add':
585
+ refs.rootDocument.current.execCommand('createLink', undefined, argument);
586
+ break;
587
+ case 'link-remove':
588
+ refs.rootDocument.current.execCommand('unlink');
589
+ break;
590
+ case 'image':
591
+ refs.rootDocument.current.execCommand('insertImage', undefined, argument);
592
+ break;
593
+ case 'html':
594
+ refs.rootDocument.current.execCommand('insertHTML', undefined, argument);
595
+ break;
596
+
597
+ // actions
598
+ case 'copy':
599
+ refs.rootDocument.current.execCommand('copy');
600
+ break;
601
+ case 'cut':
602
+ refs.rootDocument.current.execCommand('cut');
603
+ break;
604
+ case 'paste':
605
+ if (refs.rootDocument.current.queryCommandSupported('paste')) refs.rootDocument.current.execCommand('paste');else paste();
606
+ break;
607
+ case 'delete':
608
+ refs.rootDocument.current.execCommand('delete');
609
+ break;
610
+ case 'clear':
611
+ refs.rootDocument.current.execCommand('removeFormat');
612
+ break;
613
+ case 'select-all':
614
+ refs.rootDocument.current.execCommand('selectAll');
615
+ break;
616
+ case 'undo':
617
+ refs.rootDocument.current.execCommand('undo');
618
+ break;
619
+ case 'redo':
620
+ refs.rootDocument.current.execCommand('redo');
621
+ break;
622
+ default:
623
+ break;
624
+ }
625
+ }, []);
626
+ const includes = (...args) => !(0, _utils.is)('array', exclude) || args.some(item => !exclude.includes(item));
627
+
628
+ // italic, underline, bold
629
+ // updates toolbar
630
+ const updateOptions = ['font-family', 'font-version', 'font-size', 'font-color', 'font-background', 'italic', 'underline', 'bold', 'strike-line', 'align-left', 'align-center', 'align-right', 'align-justify', 'superscript', 'subscript', 'indent', 'outdent', 'list-ordered', 'list-unordered', 'horizontal-rule', 'link-add', 'link-remove', 'quote', 'image', 'video', 'video-youtube', 'table', 'drawing', 'code'];
631
+ const updates_ = updates && (!(0, _utils.is)('array', exclude) || includes(...updateOptions));
632
+
633
+ // copy, paste, cut
634
+ // action toolbar
635
+ const actions_ = actions && (!(0, _utils.is)('array', exclude) || includes('copy', 'paste', 'cut', 'clear', 'undo', 'redo', 'delete', 'select-all', 'save', 'print'));
636
+ const AppendProps = _objectSpread({
637
+ padding: [14, 14]
638
+ }, AppendProps_);
639
+ const DividerProps = _objectSpread({
640
+ color: 'inherit'
641
+ }, DividerProps_);
642
+ const TooltipProps = _objectSpread({
643
+ position: 'bottom',
644
+ interactive: false
645
+ }, TooltipProps_);
646
+ const ToggleButtonsProps = _objectSpread({
647
+ tonal,
648
+ color,
649
+ version: 'text',
650
+ border: false
651
+ }, ToggleButtonsProps_);
652
+ const ToggleButtonProps = _objectSpread({
653
+ size: 'small'
654
+ }, ToggleButtonProps_);
655
+ const MiniMenuProps = _objectSpread({
656
+ tonal,
657
+ color: refs.props.current.color !== undefined ? refs.props.current.color : 'themed'
658
+ }, MiniMenuProps_);
659
+ const SelectProps = _objectSpread({
660
+ tonal,
661
+ color: refs.props.current.color !== undefined ? refs.props.current.color : 'themed',
662
+ version: 'outlined',
663
+ size: 'small',
664
+ ListProps: {
665
+ tonal,
666
+ color: refs.props.current.color !== undefined ? refs.props.current.color : 'themed'
202
667
  },
203
- textFieldColor: {
204
- flex: '1 1 auto'
668
+ MenuProps: {
669
+ portal: true
205
670
  }
206
- }), { name: 'onesy-RichTextEditor' });
207
- const RichTextEditor = react_1.default.forwardRef((props__, ref) => {
208
- var _a;
209
- const theme = (0, style_react_1.useOnesyTheme)();
210
- const l = theme.l;
211
- const props = react_1.default.useMemo(() => { var _a, _b, _c, _d, _e, _f, _g, _h; return (Object.assign(Object.assign(Object.assign({}, (_d = (_c = (_b = (_a = theme === null || theme === void 0 ? void 0 : theme.ui) === null || _a === void 0 ? void 0 : _a.elements) === null || _b === void 0 ? void 0 : _b.all) === null || _c === void 0 ? void 0 : _c.props) === null || _d === void 0 ? void 0 : _d.default), (_h = (_g = (_f = (_e = theme === null || theme === void 0 ? void 0 : theme.ui) === null || _e === void 0 ? void 0 : _e.elements) === null || _f === void 0 ? void 0 : _f.onesyRichTextEditor) === null || _g === void 0 ? void 0 : _g.props) === null || _h === void 0 ? void 0 : _h.default), props__)); }, [props__]);
212
- const Line = react_1.default.useMemo(() => { var _a; return ((_a = theme === null || theme === void 0 ? void 0 : theme.elements) === null || _a === void 0 ? void 0 : _a.Line) || Line_1.default; }, [theme]);
213
- const Type = react_1.default.useMemo(() => { var _a; return ((_a = theme === null || theme === void 0 ? void 0 : theme.elements) === null || _a === void 0 ? void 0 : _a.Type) || Type_1.default; }, [theme]);
214
- const Tooltip = react_1.default.useMemo(() => { var _a; return ((_a = theme === null || theme === void 0 ? void 0 : theme.elements) === null || _a === void 0 ? void 0 : _a.Tooltip) || Tooltip_1.default; }, [theme]);
215
- const Fade = react_1.default.useMemo(() => { var _a; return ((_a = theme === null || theme === void 0 ? void 0 : theme.elements) === null || _a === void 0 ? void 0 : _a.Fade) || Fade_1.default; }, [theme]);
216
- const Append = react_1.default.useMemo(() => { var _a; return ((_a = theme === null || theme === void 0 ? void 0 : theme.elements) === null || _a === void 0 ? void 0 : _a.Append) || Append_1.default; }, [theme]);
217
- const Select = react_1.default.useMemo(() => { var _a; return ((_a = theme === null || theme === void 0 ? void 0 : theme.elements) === null || _a === void 0 ? void 0 : _a.Select) || Select_1.default; }, [theme]);
218
- const Switch = react_1.default.useMemo(() => { var _a; return ((_a = theme === null || theme === void 0 ? void 0 : theme.elements) === null || _a === void 0 ? void 0 : _a.Switch) || Switch_1.default; }, [theme]);
219
- const Label = react_1.default.useMemo(() => { var _a; return ((_a = theme === null || theme === void 0 ? void 0 : theme.elements) === null || _a === void 0 ? void 0 : _a.Label) || Label_1.default; }, [theme]);
220
- const NumericTextField = react_1.default.useMemo(() => { var _a; return ((_a = theme === null || theme === void 0 ? void 0 : theme.elements) === null || _a === void 0 ? void 0 : _a.NumericTextField) || NumericTextField_1.default; }, [theme]);
221
- const ColorTextField = react_1.default.useMemo(() => { var _a; return ((_a = theme === null || theme === void 0 ? void 0 : theme.elements) === null || _a === void 0 ? void 0 : _a.ColorTextField) || ColorTextField_1.default; }, [theme]);
222
- const ToggleButton = react_1.default.useMemo(() => { var _a; return ((_a = theme === null || theme === void 0 ? void 0 : theme.elements) === null || _a === void 0 ? void 0 : _a.ToggleButton) || ToggleButton_1.default; }, [theme]);
223
- const ToggleButtons = react_1.default.useMemo(() => { var _a; return ((_a = theme === null || theme === void 0 ? void 0 : theme.elements) === null || _a === void 0 ? void 0 : _a.ToggleButtons) || ToggleButtons_1.default; }, [theme]);
224
- const Drawing = react_1.default.useMemo(() => { var _a; return ((_a = theme === null || theme === void 0 ? void 0 : theme.elements) === null || _a === void 0 ? void 0 : _a.Drawing) || Drawing_1.default; }, [theme]);
225
- const Divider = react_1.default.useMemo(() => { var _a; return ((_a = theme === null || theme === void 0 ? void 0 : theme.elements) === null || _a === void 0 ? void 0 : _a.Divider) || Divider_1.default; }, [theme]);
226
- const ClickListener = react_1.default.useMemo(() => { var _a; return ((_a = theme === null || theme === void 0 ? void 0 : theme.elements) === null || _a === void 0 ? void 0 : _a.ClickListener) || ClickListener_1.default; }, [theme]);
227
- const TextField = react_1.default.useMemo(() => { var _a; return ((_a = theme === null || theme === void 0 ? void 0 : theme.elements) === null || _a === void 0 ? void 0 : _a.TextField) || TextField_1.default; }, [theme]);
228
- const Surface = react_1.default.useMemo(() => { var _a; return ((_a = theme === null || theme === void 0 ? void 0 : theme.elements) === null || _a === void 0 ? void 0 : _a.Surface) || Surface_1.default; }, [theme]);
229
- const Button = react_1.default.useMemo(() => { var _a; return ((_a = theme === null || theme === void 0 ? void 0 : theme.elements) === null || _a === void 0 ? void 0 : _a.Button) || Button_1.default; }, [theme]);
230
- const ListItem = react_1.default.useMemo(() => { var _a; return ((_a = theme === null || theme === void 0 ? void 0 : theme.elements) === null || _a === void 0 ? void 0 : _a.ListItem) || ListItem_1.default; }, [theme]);
231
- const { tonal = true, color = 'default', version = 'filled', value, onChange, render, miniMenu = true, miniMenuInclude = [
232
- 'italic',
233
- 'underline',
234
- 'bold',
235
- 'strike-line',
236
- 'font-color',
237
- 'font-background',
238
- 'align-left',
239
- 'align-center',
240
- 'align-right',
241
- 'align-justify',
242
- 'link-add',
243
- 'link-remove',
244
- 'clear'
245
- ], exclude, updates = true, actions = true, fontFamilies = [
246
- { label: 'Arial', value: `Arial, sans-serif` },
247
- { label: 'Verdana', value: `Verdana, sans-serif` },
248
- { label: 'Helvetica', value: `Helvetica, sans-serif` },
249
- { label: 'Georgia', value: `Georgia, sans-serif` },
250
- { label: 'Roboto', value: `Roboto, sans-serif` },
251
- { label: 'DM Sans', value: `DM Sans, sans-serif` }
252
- ], addFontFamilies = [],
253
- // Update
254
- IconItalic = IconMaterialFormatItalicW100_1.default, IconUnderline = IconMaterialFormatUnderlinedW100_1.default, IconBold = IconMaterialFormatBoldW100_1.default, IconStrikeLine = IconMaterialStrikethroughSW100_1.default, IconColor = IconMaterialFormatColorTextW100_1.default, IconBackground = IconMaterialFormatColorFillW100_1.default, IconAlignLeft = IconMaterialFormatAlignLeftW100_1.default, IconAlignCenter = IconMaterialFormatAlignCenterW100_1.default, IconAlignRight = IconMaterialFormatAlignRightW100_1.default, IconAlignJustify = IconMaterialFormatAlignJustifyW100_1.default, IconIndent = IconMaterialFormatIndentIncreaseW100_1.default, IconOutdent = IconMaterialFormatIndentDecreaseW100_1.default, IconSuperscript = IconMaterialSuperscriptW100_1.default, IconSubscript = IconMaterialSubscriptW100_1.default, IconListOrdered = IconMaterialFormatListNumberedW100_1.default, IconListUnordered = IconMaterialFormatListBulletedW100_1.default, IconHorizontalRule = IconMaterialHorizontalRuleW100_1.default, IconLinkAdd = IconMaterialAddLinkW100_1.default, IconLinkRemove = IconMaterialLinkOffW100_1.default, IconQuote = IconMaterialFormatQuoteW100_1.default, IconImage = IconMaterialImageW100_1.default, IconVideo = IconMaterialVideocamW100_1.default, IconVideoYoutube = IconMaterialPlayArrowW100_1.default, IconTable = IconMaterialTableW100_1.default, IconCode = IconMaterialCodeW100_1.default, IconDrawing = IconMaterialDrawW100_1.default,
255
- // Action
256
- IconCopy = IconMaterialContentCopyW100_1.default, IconCut = IconMaterialContentCutW100_1.default, IconPaste = IconMaterialContentPasteW100_1.default, IconDelete = IconMaterialDeleteSweepW100_1.default, IconClear = IconMaterialFormatClearW100_1.default, IconSelectAll = IconMaterialSelectAllW100_1.default, IconSave = IconMaterialDownloadW100_1.default, IconPrint = IconMaterialPrintW100_1.default, IconUndo = IconMaterialUndoW100_1.default, IconRedo = IconMaterialRedoW100_1.default, AppendProps: AppendProps_, ToolbarProps, ToolbarUpdatesProps, ToolbarActionsProps, ToggleButtonProps: ToggleButtonProps_, ToggleButtonsProps: ToggleButtonsProps_, DividerProps: DividerProps_, SelectProps: SelectProps_, ListItemProps: ListItemProps_, TooltipProps: TooltipProps_, MiniMenuProps: MiniMenuProps_, DrawingProps, IconProps: IconProps_, ColorTextFieldProps, Component = 'div', className, children } = props, other = __rest(props, ["tonal", "color", "version", "value", "onChange", "render", "miniMenu", "miniMenuInclude", "exclude", "updates", "actions", "fontFamilies", "addFontFamilies", "IconItalic", "IconUnderline", "IconBold", "IconStrikeLine", "IconColor", "IconBackground", "IconAlignLeft", "IconAlignCenter", "IconAlignRight", "IconAlignJustify", "IconIndent", "IconOutdent", "IconSuperscript", "IconSubscript", "IconListOrdered", "IconListUnordered", "IconHorizontalRule", "IconLinkAdd", "IconLinkRemove", "IconQuote", "IconImage", "IconVideo", "IconVideoYoutube", "IconTable", "IconCode", "IconDrawing", "IconCopy", "IconCut", "IconPaste", "IconDelete", "IconClear", "IconSelectAll", "IconSave", "IconPrint", "IconUndo", "IconRedo", "AppendProps", "ToolbarProps", "ToolbarUpdatesProps", "ToolbarActionsProps", "ToggleButtonProps", "ToggleButtonsProps", "DividerProps", "SelectProps", "ListItemProps", "TooltipProps", "MiniMenuProps", "DrawingProps", "IconProps", "ColorTextFieldProps", "Component", "className", "children"]);
257
- const { classes } = useStyle();
258
- const [inputValues, setInputValues] = react_1.default.useState({});
259
- const [open, setOpen] = react_1.default.useState({});
260
- const [selected, setSelected] = react_1.default.useState([]);
261
- const [selection, setSelection] = react_1.default.useState();
262
- const refs = {
263
- root: react_1.default.useRef(null),
264
- value: react_1.default.useRef(null),
265
- range: react_1.default.useRef(null),
266
- inputValues: react_1.default.useRef(null),
267
- open: react_1.default.useRef(null),
268
- props: react_1.default.useRef(null),
269
- selected: react_1.default.useRef(null),
270
- miniMenu: react_1.default.useRef(null),
271
- miniMenuInclude: react_1.default.useRef(null),
272
- miniMenuElements: {
273
- color: react_1.default.useRef(null),
274
- colorPalette: react_1.default.useRef(null),
275
- background: react_1.default.useRef(null),
276
- backgroundPalette: react_1.default.useRef(null),
277
- linkAdd: react_1.default.useRef(null),
278
- linkAddInput: react_1.default.useRef(null),
279
- linkRemove: react_1.default.useRef(null)
280
- },
281
- elements: {
282
- color: react_1.default.useRef(null),
283
- background: react_1.default.useRef(null),
284
- linkAdd: react_1.default.useRef(null),
285
- linkRemove: react_1.default.useRef(null),
286
- quote: react_1.default.useRef(null),
287
- image: react_1.default.useRef(null),
288
- video: react_1.default.useRef(null),
289
- videoYoutube: react_1.default.useRef(null),
290
- table: react_1.default.useRef(null),
291
- drawing: react_1.default.useRef(null),
292
- drawingSvg: react_1.default.useRef(null),
293
- drawingSize: react_1.default.useRef(null),
294
- drawingSelect: react_1.default.useRef(null),
295
- drawingPalette: react_1.default.useRef(null),
296
- code: react_1.default.useRef(null)
671
+ }, SelectProps_);
672
+ const ListItemProps = _objectSpread({
673
+ size: 'small',
674
+ PrimaryProps: {
675
+ style: {
676
+ fontFamily: 'inherit'
677
+ }
678
+ }
679
+ }, ListItemProps_);
680
+ const IconProps = _objectSpread({
681
+ size: 'small'
682
+ }, IconProps_);
683
+ const WrapperToggleButton = _react.default.useCallback(/*#__PURE__*/_react.default.forwardRef((props_, ref_) => {
684
+ const {
685
+ open: open_,
686
+ name,
687
+ children: children_
688
+ } = props_,
689
+ other_ = (0, _objectWithoutProperties2.default)(props_, _excluded2);
690
+ return /*#__PURE__*/_react.default.createElement(Tooltip, (0, _extends2.default)({
691
+ open: open_ !== undefined ? open_ : undefined,
692
+ name: name
693
+ }, TooltipProps), /*#__PURE__*/_react.default.cloneElement(children_, _objectSpread(_objectSpread({}, other_), children_.props)));
694
+ }), []);
695
+ const WrapperAppend = _react.default.useCallback(props_ => {
696
+ const {
697
+ open: open_,
698
+ element,
699
+ anchorElement,
700
+ onClose,
701
+ children: children_
702
+ } = props_,
703
+ other_ = (0, _objectWithoutProperties2.default)(props_, _excluded3);
704
+ return /*#__PURE__*/_react.default.createElement(Append, (0, _extends2.default)({
705
+ open: open_,
706
+ element: /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement(Fade, {
707
+ in: open_,
708
+ add: true
709
+ }, /*#__PURE__*/_react.default.cloneElement(element))),
710
+ anchorElement: anchorElement,
711
+ portal: true,
712
+ alignment: "center",
713
+ position: "bottom"
714
+ }, AppendProps), /*#__PURE__*/_react.default.cloneElement(children_, _objectSpread(_objectSpread({}, other_), children_.props)));
715
+ }, []);
716
+ const onMouseDown = _react.default.useCallback(() => {
717
+ var _selection_$anchorNod2;
718
+ const selection_ = refs.rootWindow.current.getSelection();
719
+ if (selection_.anchorNode && !((_selection_$anchorNod2 = selection_.anchorNode) !== null && _selection_$anchorNod2 !== void 0 && (_selection_$anchorNod2 = _selection_$anchorNod2.className) !== null && _selection_$anchorNod2 !== void 0 && _selection_$anchorNod2.includes('TextField'))) refs.range.current = selection_.getRangeAt(0);
720
+ }, []);
721
+ const onMouseUp = _react.default.useCallback(() => {
722
+ if (refs.range.current) {
723
+ const selection_ = refs.rootWindow.current.getSelection();
724
+ selection_.removeAllRanges();
725
+ selection_.addRange(refs.range.current);
726
+ }
727
+ }, []);
728
+ const PaletteItem = _react.default.useCallback(props_ => {
729
+ const {
730
+ color: color_
731
+ } = props_,
732
+ other_ = (0, _objectWithoutProperties2.default)(props_, _excluded4);
733
+ return /*#__PURE__*/_react.default.createElement("span", (0, _extends2.default)({
734
+ className: (0, _styleReact.classNames)([(0, _utils2.staticClassName)('RichTextEditor', theme) && ['onesy-RichTextEditor-palette-item'], classes.paletteItem]),
735
+ style: {
736
+ background: color_
737
+ }
738
+ }, other_));
739
+ }, []);
740
+ const Palette = _react.default.useCallback(/*#__PURE__*/_react.default.forwardRef((props_, ref_) => {
741
+ const {
742
+ version: version_,
743
+ onUpdate: onUpdate_,
744
+ onClose
745
+ } = props_,
746
+ other_ = (0, _objectWithoutProperties2.default)(props_, _excluded5);
747
+ return /*#__PURE__*/_react.default.createElement(Line, (0, _extends2.default)({
748
+ ref: ref_,
749
+ gap: 1,
750
+ direction: "column",
751
+ tonal: tonal,
752
+ color: refs.props.current.color !== undefined ? refs.props.current.color : 'themed',
753
+ Component: Surface,
754
+ className: (0, _styleReact.classNames)([(0, _utils2.staticClassName)('RichTextEditor', theme) && ['onesy-RichTextEditor-palette'], classes.palette])
755
+ }, other_), /*#__PURE__*/_react.default.createElement(Line, {
756
+ gap: 0.5,
757
+ onMouseUp: onMouseUp,
758
+ onMouseDown: onMouseDown
759
+ }, /*#__PURE__*/_react.default.createElement(Line, {
760
+ gap: 0.5,
761
+ direction: "row",
762
+ style: {
763
+ width: '100%'
764
+ }
765
+ }, /*#__PURE__*/_react.default.createElement(PaletteItem, {
766
+ color: "#000000",
767
+ onClick: () => {
768
+ onUpdate_('#000000');
769
+ onClose();
770
+ }
771
+ }), /*#__PURE__*/_react.default.createElement(PaletteItem, {
772
+ color: "#ffffff",
773
+ onClick: () => {
774
+ onUpdate_('#ffffff');
775
+ onClose();
776
+ }
777
+ })), Object.keys(_styleReact.colors).filter(item => !['black', 'white'].includes(item)).map((item, index) => /*#__PURE__*/_react.default.createElement(Line, {
778
+ key: index,
779
+ gap: 0.5,
780
+ direction: "row",
781
+ style: {
782
+ width: '100%'
783
+ }
784
+ }, Object.keys(_styleReact.colors[item]).map((item_, index_) => /*#__PURE__*/_react.default.createElement(PaletteItem, {
785
+ key: index_,
786
+ color: _styleReact.colors[item][item_],
787
+ onClick: () => {
788
+ if (refs.range.current) {
789
+ const selection_ = refs.rootWindow.current.getSelection();
790
+ selection_.removeAllRanges();
791
+ selection_.addRange(refs.range.current);
792
+ }
793
+ onUpdate_(_styleReact.colors[item][item_]);
794
+ onClose();
795
+ }
796
+ }))))), /*#__PURE__*/_react.default.createElement(Divider, null), /*#__PURE__*/_react.default.createElement(Line, {
797
+ gap: 0.5,
798
+ direction: "row",
799
+ align: "center",
800
+ style: {
801
+ width: '100%'
802
+ }
803
+ }, /*#__PURE__*/_react.default.createElement(ColorTextField, (0, _extends2.default)({
804
+ tonal: tonal,
805
+ color: color,
806
+ name: l('Custom color'),
807
+ version: "outlined",
808
+ size: "small",
809
+ value: refs.inputValues.current[version_],
810
+ onChange: valueNew => updateInputValues(version_, valueNew)
811
+ }, ColorTextFieldProps, {
812
+ className: (0, _styleReact.classNames)([(0, _utils2.staticClassName)('RichTextEditor', theme) && ['onesy-RichTextEditor-text-field-color'], ColorTextFieldProps === null || ColorTextFieldProps === void 0 ? void 0 : ColorTextFieldProps.className, classes.textFieldColor])
813
+ })), /*#__PURE__*/_react.default.createElement(Button, {
814
+ tonal: tonal,
815
+ color: "inherit",
816
+ version: "text",
817
+ size: "small",
818
+ onClick: () => {
819
+ if (refs.range.current) {
820
+ const selection_ = refs.rootWindow.current.getSelection();
821
+ selection_.removeAllRanges();
822
+ selection_.addRange(refs.range.current);
823
+ }
824
+ onUpdate_(refs.inputValues.current[version_]);
825
+ onClose();
826
+ }
827
+ }, "Apply")));
828
+ }), []);
829
+ const Input = _react.default.useCallback(/*#__PURE__*/_react.default.forwardRef((props_, ref_) => {
830
+ const {
831
+ label,
832
+ labelButton,
833
+ value: value__,
834
+ onChange: onChange__,
835
+ onClick,
836
+ InputComponent = TextField,
837
+ InputProps
838
+ } = props_,
839
+ other_ = (0, _objectWithoutProperties2.default)(props_, _excluded6);
840
+ return /*#__PURE__*/_react.default.createElement(Line, (0, _extends2.default)({
841
+ ref: ref_,
842
+ gap: 1,
843
+ direction: "column",
844
+ tonal: tonal,
845
+ color: refs.props.current.color !== undefined ? refs.props.current.color : 'themed',
846
+ Component: Surface,
847
+ className: (0, _styleReact.classNames)([(0, _utils2.staticClassName)('RichTextEditor', theme) && ['onesy-RichTextEditor-palette'], classes.palette])
848
+ }, other_), /*#__PURE__*/_react.default.createElement(Line, {
849
+ gap: 0.5,
850
+ direction: "row",
851
+ align: "center",
852
+ style: {
853
+ width: '100%'
854
+ }
855
+ }, /*#__PURE__*/_react.default.createElement(InputComponent, (0, _extends2.default)({
856
+ tonal: tonal,
857
+ color: color,
858
+ name: label,
859
+ version: "outlined",
860
+ size: "small",
861
+ value: value__,
862
+ onChange: onChange__,
863
+ className: (0, _styleReact.classNames)([(0, _utils2.staticClassName)('RichTextEditor', theme) && ['onesy-RichTextEditor-text-field-color'], classes.textFieldColor])
864
+ }, InputProps)), /*#__PURE__*/_react.default.createElement(Button, {
865
+ tonal: tonal,
866
+ color: "inherit",
867
+ version: "text",
868
+ size: "small",
869
+ onClick: onClick
870
+ }, labelButton)));
871
+ }), []);
872
+ const font_families = [...fontFamilies, ...addFontFamilies];
873
+ const font_sizes = [{
874
+ label: '11',
875
+ value: 1
876
+ }, {
877
+ label: '14',
878
+ value: 2
879
+ }, {
880
+ label: '16',
881
+ value: 3
882
+ }, {
883
+ label: '18',
884
+ value: 4
885
+ }, {
886
+ label: '24',
887
+ value: 5
888
+ }, {
889
+ label: '32',
890
+ value: 6
891
+ }, {
892
+ label: '48',
893
+ value: 7
894
+ }];
895
+ const font_versions = [{
896
+ label: /*#__PURE__*/_react.default.createElement(Type, {
897
+ version: "b2"
898
+ }, l('Normal text')),
899
+ value: 'p'
900
+ }, {
901
+ label: /*#__PURE__*/_react.default.createElement(Type, {
902
+ version: "h1"
903
+ }, l('Heading 1')),
904
+ value: 'h1'
905
+ }, {
906
+ label: /*#__PURE__*/_react.default.createElement(Type, {
907
+ version: "h2"
908
+ }, l('Heading 2')),
909
+ value: 'h2'
910
+ }, {
911
+ label: /*#__PURE__*/_react.default.createElement(Type, {
912
+ version: "h3"
913
+ }, l('Heading 3')),
914
+ value: 'h3'
915
+ }, {
916
+ label: /*#__PURE__*/_react.default.createElement(Type, {
917
+ version: "t1"
918
+ }, l('Heading 4')),
919
+ value: 'h4'
920
+ }, {
921
+ label: /*#__PURE__*/_react.default.createElement(Type, {
922
+ version: "t2"
923
+ }, l('Heading 5')),
924
+ value: 'h5'
925
+ }];
926
+ const queryValueUpdate = () => {
927
+ const selected_ = [];
928
+ const inputValues_ = _objectSpread({}, inputValues);
929
+ const updateOptionValues = [{
930
+ name: 'italic',
931
+ command: 'italic'
932
+ }, {
933
+ name: 'underline',
934
+ command: 'underline'
935
+ }, {
936
+ name: 'bold',
937
+ command: 'bold'
938
+ }, {
939
+ name: 'strike-line',
940
+ command: 'strikeThrough'
941
+ }, {
942
+ name: 'align-left',
943
+ command: 'justifyLeft'
944
+ }, {
945
+ name: 'align-center',
946
+ command: 'justifyCenter'
947
+ }, {
948
+ name: 'align-right',
949
+ command: 'justifyRight'
950
+ }, {
951
+ name: 'align-justify',
952
+ command: 'justifyFull'
953
+ }, {
954
+ name: 'superscript',
955
+ command: 'superscript'
956
+ }, {
957
+ name: 'subscript',
958
+ command: 'subscript'
959
+ }, {
960
+ name: 'list-ordered',
961
+ command: 'insertOrderedList'
962
+ }, {
963
+ name: 'list-unordered',
964
+ command: 'insertUnorderedList'
965
+ }];
966
+ updateOptionValues.forEach(item => {
967
+ if (query(item.command)) selected_.push(item.name);
968
+ });
969
+
970
+ // Font version
971
+ const fontVersion = query('formatBlock');
972
+ const fontVersionValue = font_versions.find(item_ => item_.value === fontVersion) || font_versions[0];
973
+ inputValues_['font-version'] = fontVersionValue === null || fontVersionValue === void 0 ? void 0 : fontVersionValue.value;
974
+
975
+ // Font family
976
+ const fontFamily = query('fontName');
977
+ const fontFamilyValue = font_families.find(item_ => fontFamily === null || fontFamily === void 0 ? void 0 : fontFamily.includes(item_.label)) || font_families.find(item_ => item_.label === 'DM Sans');
978
+ inputValues_['font-family'] = fontFamilyValue === null || fontFamilyValue === void 0 ? void 0 : fontFamilyValue.value;
979
+
980
+ // Font version
981
+ const fontSize = query('fontSize');
982
+ const fontSizeValue = font_sizes.find(item_ => item_.value === fontSize) || font_sizes.find(item_ => item_.label === '14');
983
+ inputValues_['font-size'] = fontSizeValue === null || fontSizeValue === void 0 ? void 0 : fontSizeValue.value;
984
+ setInputValues(inputValues_);
985
+ setSelected(selected_);
986
+ };
987
+ const onMouseUpValue = _react.default.useCallback(() => {
988
+ queryValueUpdate();
989
+ setTimeout(() => {
990
+ const selection_ = refs.rootWindow.current.getSelection();
991
+ if (!selection_.anchorNode || !refs.value.current.contains(selection_.anchorNode)) return setSelection('');
992
+ const rect = selection_.getRangeAt(0).getBoundingClientRect();
993
+ setSelection(Math.round(rect.width) ? rect : '');
994
+ });
995
+ }, []);
996
+ const onMouseDownValue = _react.default.useCallback(() => {
997
+ queryValueUpdate();
998
+ }, []);
999
+ const updateElements = {
1000
+ 'font-version': /*#__PURE__*/_react.default.createElement(Select, (0, _extends2.default)({
1001
+ name: l('Font Version'),
1002
+ valueDefault: font_versions.find(item => item.value.includes('p')).value,
1003
+ value: inputValues['font-version'],
1004
+ onChange: valueNew => {
1005
+ updateInputValues('font-version', valueNew);
1006
+ method('font-version')(valueNew);
1007
+ },
1008
+ onMouseUp: onMouseUp,
1009
+ onMouseDown: onMouseDown
1010
+ }, SelectProps, {
1011
+ className: (0, _styleReact.classNames)([(0, _utils2.staticClassName)('RichTextEditor', theme) && ['onesy-RichTextEditor-select'], SelectProps === null || SelectProps === void 0 ? void 0 : SelectProps.className, classes.select]),
1012
+ style: {
1013
+ minWidth: '150px'
1014
+ }
1015
+ }), font_versions.map(item => /*#__PURE__*/_react.default.createElement(ListItem, (0, _extends2.default)({
1016
+ key: item.value,
1017
+ primary: item.label,
1018
+ value: item.value,
1019
+ button: true
1020
+ }, ListItemProps)))),
1021
+ 'font-family': /*#__PURE__*/_react.default.createElement(Select, (0, _extends2.default)({
1022
+ name: l('Font Family'),
1023
+ valueDefault: font_families.find(item => item.label.includes('DM Sans')).value,
1024
+ value: inputValues['font-family'],
1025
+ onChange: valueNew => {
1026
+ updateInputValues('font-family', valueNew);
1027
+ method('font-family')(valueNew);
1028
+ },
1029
+ onMouseUp: onMouseUp,
1030
+ onMouseDown: onMouseDown
1031
+ }, SelectProps, {
1032
+ className: (0, _styleReact.classNames)([(0, _utils2.staticClassName)('RichTextEditor', theme) && ['onesy-RichTextEditor-select'], SelectProps === null || SelectProps === void 0 ? void 0 : SelectProps.className, classes.select]),
1033
+ style: {
1034
+ minWidth: '140px'
1035
+ }
1036
+ }), font_families.map(item => /*#__PURE__*/_react.default.createElement(ListItem, (0, _extends2.default)({
1037
+ key: item.value,
1038
+ primary: item.label,
1039
+ value: item.value,
1040
+ button: true,
1041
+ style: {
1042
+ fontFamily: item.value
1043
+ }
1044
+ }, ListItemProps)))),
1045
+ 'font-size': /*#__PURE__*/_react.default.createElement(Select, (0, _extends2.default)({
1046
+ name: l('Font Size'),
1047
+ valueDefault: +font_sizes.find(item => item.label.includes('14')).value,
1048
+ value: inputValues['font-size'],
1049
+ onChange: valueNew => {
1050
+ updateInputValues('font-size', +valueNew);
1051
+ method('font-size')(+valueNew);
1052
+ },
1053
+ onMouseUp: onMouseUp,
1054
+ onMouseDown: onMouseDown
1055
+ }, SelectProps, {
1056
+ className: (0, _styleReact.classNames)([(0, _utils2.staticClassName)('RichTextEditor', theme) && ['onesy-RichTextEditor-select'], SelectProps === null || SelectProps === void 0 ? void 0 : SelectProps.className, classes.select])
1057
+ }), font_sizes.map(item => /*#__PURE__*/_react.default.createElement(ListItem, (0, _extends2.default)({
1058
+ key: item.value,
1059
+ primary: item.label,
1060
+ value: item.value,
1061
+ button: true
1062
+ }, ListItemProps)))),
1063
+ 'italic': /*#__PURE__*/_react.default.createElement(WrapperToggleButton, {
1064
+ name: l('Italic')
1065
+ }, (0, _utils.is)('function', render) ? render('italic', ToggleButtonProps, refs.value.current, method) : /*#__PURE__*/_react.default.createElement(ToggleButton, (0, _extends2.default)({}, ToggleButtonProps, {
1066
+ selected: refs.selected.current.includes('italic'),
1067
+ onClick: method('italic')
1068
+ }), /*#__PURE__*/_react.default.createElement(IconItalic, IconProps))),
1069
+ 'underline': /*#__PURE__*/_react.default.createElement(WrapperToggleButton, {
1070
+ name: l('Underline')
1071
+ }, (0, _utils.is)('function', render) ? render('underline', ToggleButtonProps, refs.value.current, method) : /*#__PURE__*/_react.default.createElement(ToggleButton, (0, _extends2.default)({}, ToggleButtonProps, {
1072
+ selected: refs.selected.current.includes('underline'),
1073
+ onClick: method('underline')
1074
+ }), /*#__PURE__*/_react.default.createElement(IconUnderline, IconProps))),
1075
+ 'bold': /*#__PURE__*/_react.default.createElement(WrapperToggleButton, {
1076
+ name: l('Bold'),
1077
+ onClick: method('bold')
1078
+ }, (0, _utils.is)('function', render) ? render('bold', ToggleButtonProps, refs.value.current, method) : /*#__PURE__*/_react.default.createElement(ToggleButton, (0, _extends2.default)({}, ToggleButtonProps, {
1079
+ selected: refs.selected.current.includes('bold')
1080
+ }), /*#__PURE__*/_react.default.createElement(IconBold, IconProps))),
1081
+ 'strike-line': /*#__PURE__*/_react.default.createElement(WrapperToggleButton, {
1082
+ name: l('Strike Line'),
1083
+ onClick: method('strike-line')
1084
+ }, (0, _utils.is)('function', render) ? render('strike-line', ToggleButtonProps, refs.value.current, method) : /*#__PURE__*/_react.default.createElement(ToggleButton, (0, _extends2.default)({}, ToggleButtonProps, {
1085
+ selected: refs.selected.current.includes('strike-line')
1086
+ }), /*#__PURE__*/_react.default.createElement(IconStrikeLine, IconProps))),
1087
+ 'font-color': /*#__PURE__*/_react.default.createElement(WrapperAppend, {
1088
+ open: refs.open.current.color,
1089
+ anchorElement: refs.elements.color.current,
1090
+ element: /*#__PURE__*/_react.default.createElement(ClickListener, {
1091
+ onClickOutside: () => updateOpen('color', false),
1092
+ include: [refs.elements.color.current]
1093
+ }, /*#__PURE__*/_react.default.createElement(Palette, {
1094
+ version: "font-color",
1095
+ onClose: () => updateOpen('color', false),
1096
+ onUpdate: method('font-color')
1097
+ }))
1098
+ }, /*#__PURE__*/_react.default.createElement(WrapperToggleButton, {
1099
+ name: l('Text Color'),
1100
+ open: refs.open.current.color ? false : undefined
1101
+ }, (0, _utils.is)('function', render) ? render('font-color', ToggleButtonProps, refs.value.current, method) : /*#__PURE__*/_react.default.createElement(ToggleButton, (0, _extends2.default)({
1102
+ ref: refs.elements.color
1103
+ }, ToggleButtonProps, {
1104
+ selected: refs.open.current.color,
1105
+ onClick: () => updateOpen('color', !refs.open.current.color)
1106
+ }), /*#__PURE__*/_react.default.createElement(IconColor, IconProps)))),
1107
+ 'font-color-mini-menu': /*#__PURE__*/_react.default.createElement(WrapperAppend, {
1108
+ open: refs.open.current.colorMiniMenu,
1109
+ anchorElement: refs.miniMenuElements.color,
1110
+ element: /*#__PURE__*/_react.default.createElement(ClickListener, {
1111
+ onClickOutside: () => updateOpen('colorMiniMenu', false),
1112
+ include: [refs.miniMenuElements.color]
1113
+ }, /*#__PURE__*/_react.default.createElement(Palette, {
1114
+ ref: refs.miniMenuElements.colorPalette,
1115
+ version: "font-color",
1116
+ onClose: () => updateOpen('colorMiniMenu', false),
1117
+ onUpdate: method('font-color')
1118
+ }))
1119
+ }, /*#__PURE__*/_react.default.createElement(WrapperToggleButton, {
1120
+ name: l('Text Color'),
1121
+ open: refs.open.current.colorMiniMenu ? false : undefined
1122
+ }, (0, _utils.is)('function', render) ? render('font-color', ToggleButtonProps, refs.value.current, method) : /*#__PURE__*/_react.default.createElement(ToggleButton, (0, _extends2.default)({
1123
+ ref: refs.miniMenuElements.color
1124
+ }, ToggleButtonProps, {
1125
+ selected: refs.open.current.colorMiniMenu,
1126
+ onClick: () => updateOpen('colorMiniMenu', !refs.open.current.colorMiniMenu)
1127
+ }), /*#__PURE__*/_react.default.createElement(IconColor, IconProps)))),
1128
+ 'font-background': /*#__PURE__*/_react.default.createElement(WrapperAppend, {
1129
+ open: refs.open.current.background,
1130
+ anchorElement: refs.elements.background.current,
1131
+ element: /*#__PURE__*/_react.default.createElement(ClickListener, {
1132
+ onClickOutside: () => updateOpen('background', false),
1133
+ include: [refs.elements.background.current]
1134
+ }, /*#__PURE__*/_react.default.createElement(Palette, {
1135
+ version: "font-background",
1136
+ onClose: () => updateOpen('background', false),
1137
+ onUpdate: method('font-background')
1138
+ }))
1139
+ }, /*#__PURE__*/_react.default.createElement(WrapperToggleButton, {
1140
+ name: l('Background Color'),
1141
+ open: refs.open.current.background ? false : undefined
1142
+ }, (0, _utils.is)('function', render) ? render('font-background', ToggleButtonProps, refs.value.current, method) : /*#__PURE__*/_react.default.createElement(ToggleButton, (0, _extends2.default)({
1143
+ ref: refs.elements.background
1144
+ }, ToggleButtonProps, {
1145
+ selected: refs.open.current.background,
1146
+ onClick: () => updateOpen('background', !refs.open.current.background)
1147
+ }), /*#__PURE__*/_react.default.createElement(IconBackground, IconProps)))),
1148
+ 'font-background-mini-menu': /*#__PURE__*/_react.default.createElement(WrapperAppend, {
1149
+ open: refs.open.current.backgroundMiniMenu,
1150
+ anchorElement: refs.miniMenuElements.background,
1151
+ element: /*#__PURE__*/_react.default.createElement(ClickListener, {
1152
+ onClickOutside: () => updateOpen('backgroundMiniMenu', false),
1153
+ include: [refs.miniMenuElements.background]
1154
+ }, /*#__PURE__*/_react.default.createElement(Palette, {
1155
+ ref: refs.miniMenuElements.backgroundPalette,
1156
+ version: "font-background",
1157
+ onClose: () => updateOpen('backgroundMiniMenu', false),
1158
+ onUpdate: method('font-background')
1159
+ }))
1160
+ }, /*#__PURE__*/_react.default.createElement(WrapperToggleButton, {
1161
+ name: l('Text Color'),
1162
+ open: refs.open.current.backgroundMiniMenu ? false : undefined
1163
+ }, (0, _utils.is)('function', render) ? render('font-background', ToggleButtonProps, refs.value.current, method) : /*#__PURE__*/_react.default.createElement(ToggleButton, (0, _extends2.default)({
1164
+ ref: refs.miniMenuElements.background
1165
+ }, ToggleButtonProps, {
1166
+ selected: refs.open.current.backgroundMiniMenu,
1167
+ onClick: () => updateOpen('backgroundMiniMenu', !refs.open.current.backgroundMiniMenu)
1168
+ }), /*#__PURE__*/_react.default.createElement(IconBackground, IconProps)))),
1169
+ 'align-left': /*#__PURE__*/_react.default.createElement(WrapperToggleButton, {
1170
+ name: l('Align Left')
1171
+ }, (0, _utils.is)('function', render) ? render('align-left', ToggleButtonProps, refs.value.current, method) : /*#__PURE__*/_react.default.createElement(ToggleButton, (0, _extends2.default)({}, ToggleButtonProps, {
1172
+ selected: refs.selected.current.includes('align-left'),
1173
+ onClick: method('align-left')
1174
+ }), /*#__PURE__*/_react.default.createElement(IconAlignLeft, IconProps))),
1175
+ 'align-center': /*#__PURE__*/_react.default.createElement(WrapperToggleButton, {
1176
+ name: l('Align Center')
1177
+ }, (0, _utils.is)('function', render) ? render('align-center', ToggleButtonProps, refs.value.current, method) : /*#__PURE__*/_react.default.createElement(ToggleButton, (0, _extends2.default)({}, ToggleButtonProps, {
1178
+ selected: refs.selected.current.includes('align-center'),
1179
+ onClick: method('align-center')
1180
+ }), /*#__PURE__*/_react.default.createElement(IconAlignCenter, IconProps))),
1181
+ 'align-right': /*#__PURE__*/_react.default.createElement(WrapperToggleButton, {
1182
+ name: l('Align Right')
1183
+ }, (0, _utils.is)('function', render) ? render('align-right', ToggleButtonProps, refs.value.current, method) : /*#__PURE__*/_react.default.createElement(ToggleButton, (0, _extends2.default)({}, ToggleButtonProps, {
1184
+ selected: refs.selected.current.includes('align-right'),
1185
+ onClick: method('align-right')
1186
+ }), /*#__PURE__*/_react.default.createElement(IconAlignRight, IconProps))),
1187
+ 'align-justify': /*#__PURE__*/_react.default.createElement(WrapperToggleButton, {
1188
+ name: l('Align Justify')
1189
+ }, (0, _utils.is)('function', render) ? render('align-justify', ToggleButtonProps, refs.value.current, method) : /*#__PURE__*/_react.default.createElement(ToggleButton, (0, _extends2.default)({}, ToggleButtonProps, {
1190
+ selected: refs.selected.current.includes('align-justify'),
1191
+ onClick: method('align-justify')
1192
+ }), /*#__PURE__*/_react.default.createElement(IconAlignJustify, IconProps))),
1193
+ 'indent': /*#__PURE__*/_react.default.createElement(WrapperToggleButton, {
1194
+ name: l('Indent')
1195
+ }, (0, _utils.is)('function', render) ? render('indent', ToggleButtonProps, refs.value.current, method) : /*#__PURE__*/_react.default.createElement(ToggleButton, (0, _extends2.default)({}, ToggleButtonProps, {
1196
+ onClick: method('indent')
1197
+ }), /*#__PURE__*/_react.default.createElement(IconIndent, IconProps))),
1198
+ 'outdent': /*#__PURE__*/_react.default.createElement(WrapperToggleButton, {
1199
+ name: l('Outdent')
1200
+ }, (0, _utils.is)('function', render) ? render('outdent', ToggleButtonProps, refs.value.current, method) : /*#__PURE__*/_react.default.createElement(ToggleButton, (0, _extends2.default)({}, ToggleButtonProps, {
1201
+ onClick: method('outdent')
1202
+ }), /*#__PURE__*/_react.default.createElement(IconOutdent, IconProps))),
1203
+ 'superscript': /*#__PURE__*/_react.default.createElement(WrapperToggleButton, {
1204
+ name: l('Superscript')
1205
+ }, (0, _utils.is)('function', render) ? render('superscript', ToggleButtonProps, refs.value.current, method) : /*#__PURE__*/_react.default.createElement(ToggleButton, (0, _extends2.default)({}, ToggleButtonProps, {
1206
+ selected: refs.selected.current.includes('superscript'),
1207
+ onClick: method('superscript')
1208
+ }), /*#__PURE__*/_react.default.createElement(IconSuperscript, IconProps))),
1209
+ 'subscript': /*#__PURE__*/_react.default.createElement(WrapperToggleButton, {
1210
+ name: l('Subscript')
1211
+ }, (0, _utils.is)('function', render) ? render('subscript', ToggleButtonProps, refs.value.current, method) : /*#__PURE__*/_react.default.createElement(ToggleButton, (0, _extends2.default)({}, ToggleButtonProps, {
1212
+ selected: refs.selected.current.includes('subscript'),
1213
+ onClick: method('subscript')
1214
+ }), /*#__PURE__*/_react.default.createElement(IconSubscript, IconProps))),
1215
+ 'list-ordered': /*#__PURE__*/_react.default.createElement(WrapperToggleButton, {
1216
+ name: l('List Ordered')
1217
+ }, (0, _utils.is)('function', render) ? render('list-ordered', ToggleButtonProps, refs.value.current, method) : /*#__PURE__*/_react.default.createElement(ToggleButton, (0, _extends2.default)({}, ToggleButtonProps, {
1218
+ selected: refs.selected.current.includes('list-ordered'),
1219
+ onClick: method('list-ordered')
1220
+ }), /*#__PURE__*/_react.default.createElement(IconListOrdered, IconProps))),
1221
+ 'list-unordered': /*#__PURE__*/_react.default.createElement(WrapperToggleButton, {
1222
+ name: l('List Unordered')
1223
+ }, (0, _utils.is)('function', render) ? render('list-unordered', ToggleButtonProps, refs.value.current, method) : /*#__PURE__*/_react.default.createElement(ToggleButton, (0, _extends2.default)({}, ToggleButtonProps, {
1224
+ selected: refs.selected.current.includes('list-unordered'),
1225
+ onClick: method('list-unordered')
1226
+ }), /*#__PURE__*/_react.default.createElement(IconListUnordered, IconProps))),
1227
+ 'horizontal-rule': /*#__PURE__*/_react.default.createElement(WrapperToggleButton, {
1228
+ name: l('Insert Horizontal Rule'),
1229
+ onClick: method('horizontal-rule')
1230
+ }, (0, _utils.is)('function', render) ? render('horizontal-rule', ToggleButtonProps, refs.value.current, method) : /*#__PURE__*/_react.default.createElement(ToggleButton, ToggleButtonProps, /*#__PURE__*/_react.default.createElement(IconHorizontalRule, IconProps))),
1231
+ 'link-add': /*#__PURE__*/_react.default.createElement(WrapperAppend, {
1232
+ open: refs.open.current.link,
1233
+ anchorElement: refs.elements.linkAdd.current,
1234
+ element: /*#__PURE__*/_react.default.createElement(ClickListener, {
1235
+ onClickOutside: () => updateOpen('link', false),
1236
+ include: [refs.elements.linkAdd.current]
1237
+ }, /*#__PURE__*/_react.default.createElement(Input, {
1238
+ name: l('Link'),
1239
+ labelButton: l('Add'),
1240
+ value: refs.inputValues.current.link,
1241
+ onChange: valueNew => updateInputValues('link', valueNew),
1242
+ onClick: () => {
1243
+ if (refs.range.current) {
1244
+ const selection_ = refs.rootWindow.current.getSelection();
1245
+ selection_.removeAllRanges();
1246
+ selection_.addRange(refs.range.current);
1247
+ }
1248
+ method('link-add')(refs.inputValues.current.link);
1249
+ updateOpen('link', false);
1250
+ updateInputValues('link', '');
1251
+ }
1252
+ }))
1253
+ }, /*#__PURE__*/_react.default.createElement(WrapperToggleButton, {
1254
+ name: l('Insert Link'),
1255
+ open: refs.open.current.link ? false : undefined
1256
+ }, (0, _utils.is)('function', render) ? render('font-color', ToggleButtonProps, refs.value.current, method) : /*#__PURE__*/_react.default.createElement(ToggleButton, (0, _extends2.default)({
1257
+ ref: refs.elements.linkAdd
1258
+ }, ToggleButtonProps, {
1259
+ selected: refs.open.current.link,
1260
+ onClick: () => updateOpen('link', !refs.open.current.link)
1261
+ }), /*#__PURE__*/_react.default.createElement(IconLinkAdd, IconProps)))),
1262
+ 'link-add-mini-menu': /*#__PURE__*/_react.default.createElement(WrapperAppend, {
1263
+ open: refs.open.current.linkMiniMenu,
1264
+ anchorElement: refs.miniMenuElements.linkAdd,
1265
+ element: /*#__PURE__*/_react.default.createElement(ClickListener, {
1266
+ onClickOutside: () => updateOpen('linkMiniMenu', false),
1267
+ include: [refs.miniMenuElements.linkAdd]
1268
+ }, /*#__PURE__*/_react.default.createElement(Input, {
1269
+ ref: refs.miniMenuElements.linkAddInput,
1270
+ name: l('Link'),
1271
+ labelButton: l('Add'),
1272
+ value: refs.inputValues.current.link,
1273
+ onChange: valueNew => updateInputValues('link', valueNew),
1274
+ onClick: () => {
1275
+ if (refs.range.current) {
1276
+ const selection_ = refs.rootWindow.current.getSelection();
1277
+ selection_.removeAllRanges();
1278
+ selection_.addRange(refs.range.current);
1279
+ }
1280
+ method('link-add')(refs.inputValues.current.link);
1281
+ updateOpen('linkMiniMenu', false);
1282
+ updateInputValues('link', '');
1283
+ }
1284
+ }))
1285
+ }, /*#__PURE__*/_react.default.createElement(WrapperToggleButton, {
1286
+ name: l('Insert Link'),
1287
+ open: refs.open.current.linkMiniMenu ? false : undefined
1288
+ }, (0, _utils.is)('function', render) ? render('font-color', ToggleButtonProps, refs.value.current, method) : /*#__PURE__*/_react.default.createElement(ToggleButton, (0, _extends2.default)({
1289
+ ref: refs.miniMenuElements.linkAdd
1290
+ }, ToggleButtonProps, {
1291
+ selected: refs.open.current.linkMiniMenu,
1292
+ onClick: () => updateOpen('linkMiniMenu', !refs.open.current.linkMiniMenu)
1293
+ }), /*#__PURE__*/_react.default.createElement(IconLinkAdd, IconProps)))),
1294
+ 'link-remove': /*#__PURE__*/_react.default.createElement(WrapperToggleButton, {
1295
+ name: l('Remove Link')
1296
+ }, (0, _utils.is)('function', render) ? render('link-remove', ToggleButtonProps, refs.value.current, method) : /*#__PURE__*/_react.default.createElement(ToggleButton, (0, _extends2.default)({}, ToggleButtonProps, {
1297
+ onClick: method('link-remove')
1298
+ }), /*#__PURE__*/_react.default.createElement(IconLinkRemove, IconProps))),
1299
+ 'quote': /*#__PURE__*/_react.default.createElement(WrapperAppend, {
1300
+ open: refs.open.current.quote,
1301
+ anchorElement: refs.elements.quote.current,
1302
+ element: /*#__PURE__*/_react.default.createElement(ClickListener, {
1303
+ onClickOutside: () => updateOpen('quote', false),
1304
+ include: [refs.elements.quote.current]
1305
+ }, /*#__PURE__*/_react.default.createElement(Input, {
1306
+ name: l('Quote'),
1307
+ labelButton: l('Add'),
1308
+ value: refs.inputValues.current.quote,
1309
+ onChange: valueNew => updateInputValues('quote', valueNew),
1310
+ InputProps: {
1311
+ multiline: true
297
1312
  },
298
- rootDocument: react_1.default.useRef(null),
299
- rootWindow: react_1.default.useRef(null)
300
- };
301
- refs.inputValues.current = inputValues;
302
- refs.open.current = open;
303
- refs.props.current = props;
304
- refs.selected.current = selected;
305
- refs.miniMenuInclude.current = miniMenuInclude;
306
- const rootDocument = (0, utils_1.isEnvironment)('browser') && (((_a = refs.root.current) === null || _a === void 0 ? void 0 : _a.ownerDocument) || window.document);
307
- const rootWindow = rootDocument && (rootDocument.defaultView || window);
308
- refs.rootDocument.current = rootDocument;
309
- refs.rootWindow.current = rootWindow;
310
- react_1.default.useEffect(() => {
311
- // Add value as innerHTML
312
- refs.value.current.innerHTML = value;
313
- }, [value]);
314
- react_1.default.useEffect(() => {
315
- var _a, _b;
316
- const selection_ = refs.rootWindow.current.getSelection();
317
- if (selection_ &&
318
- selection_.anchorNode &&
319
- !((_b = (_a = selection_.anchorNode) === null || _a === void 0 ? void 0 : _a.className) === null || _b === void 0 ? void 0 : _b.includes('TextField')))
320
- refs.range.current = selection_.getRangeAt(0);
321
- }, [open]);
322
- react_1.default.useEffect(() => {
323
- if (!selection) {
324
- updateOpen('colorMiniMenu', false);
325
- updateOpen('backgroundMiniMenu', false);
326
- updateOpen('linkMiniMenu', false);
1313
+ onClick: () => {
1314
+ if (refs.range.current) {
1315
+ const selection_ = refs.rootWindow.current.getSelection();
1316
+ selection_.removeAllRanges();
1317
+ selection_.addRange(refs.range.current);
1318
+ }
1319
+ method('html')(`<blockquote>${refs.inputValues.current.quote}</blockquote>`);
1320
+ updateOpen('quote', false);
1321
+ updateInputValues('quote', '');
1322
+ }
1323
+ }))
1324
+ }, /*#__PURE__*/_react.default.createElement(WrapperToggleButton, {
1325
+ name: l('Insert Quote'),
1326
+ open: refs.open.current.quote ? false : undefined
1327
+ }, (0, _utils.is)('function', render) ? render('quote', ToggleButtonProps, refs.value.current, method) : /*#__PURE__*/_react.default.createElement(ToggleButton, (0, _extends2.default)({
1328
+ ref: refs.elements.quote
1329
+ }, ToggleButtonProps, {
1330
+ selected: refs.open.current.quote,
1331
+ onClick: () => updateOpen('quote', !refs.open.current.quote)
1332
+ }), /*#__PURE__*/_react.default.createElement(IconQuote, IconProps)))),
1333
+ 'table': /*#__PURE__*/_react.default.createElement(WrapperAppend, {
1334
+ open: refs.open.current.table,
1335
+ anchorElement: refs.elements.table.current,
1336
+ element: /*#__PURE__*/_react.default.createElement(ClickListener, {
1337
+ onClickOutside: () => updateOpen('table', false),
1338
+ include: [refs.elements.table.current]
1339
+ }, /*#__PURE__*/_react.default.createElement(Line, {
1340
+ gap: 1,
1341
+ tonal: tonal,
1342
+ color: refs.props.current.color !== undefined ? refs.props.current.color : 'themed',
1343
+ Component: Surface,
1344
+ className: (0, _styleReact.classNames)([(0, _utils2.staticClassName)('RichTextEditor', theme) && ['onesy-RichTextEditor-palette'], classes.palette])
1345
+ }, /*#__PURE__*/_react.default.createElement(Line, {
1346
+ gap: 1,
1347
+ direction: "row",
1348
+ align: "center",
1349
+ justify: "center"
1350
+ }, /*#__PURE__*/_react.default.createElement(NumericTextField, {
1351
+ name: l('Rows'),
1352
+ tonal: tonal,
1353
+ color: color,
1354
+ size: "small",
1355
+ version: "outlined",
1356
+ increment: false,
1357
+ decrement: false,
1358
+ value: refs.inputValues.current.tableRows,
1359
+ onChange: valueNew => updateInputValues('tableRows', valueNew)
1360
+ }), "\xD7", /*#__PURE__*/_react.default.createElement(NumericTextField, {
1361
+ name: l('Columns'),
1362
+ tonal: tonal,
1363
+ color: color,
1364
+ size: "small",
1365
+ version: "outlined",
1366
+ increment: false,
1367
+ decrement: false,
1368
+ value: refs.inputValues.current.tableColumns,
1369
+ onChange: valueNew => updateInputValues('tableColumns', valueNew)
1370
+ })), /*#__PURE__*/_react.default.createElement(Line, {
1371
+ gap: 1,
1372
+ direction: "row",
1373
+ align: "center",
1374
+ justify: "space-between",
1375
+ style: {
1376
+ width: '100%'
327
1377
  }
328
- }, [selection]);
329
- const query = (command) => {
330
- return (0, utils_1.parse)(refs.rootDocument.current.queryCommandValue(command));
331
- };
332
- const includesMinMenu = (...args) => args.some(item => refs.miniMenuInclude.current.includes(item));
333
- const clear = (element = refs.value.current) => {
334
- const children_ = Array.from(element.children);
335
- const toRemove = [];
336
- const other_ = [];
337
- children_.forEach((item, index) => {
338
- ((item.tagName === 'SPAN' && !item.innerHTML) ||
339
- (item.tagName === 'BR' && index > 0 && (children_[index - 1].tagName === 'SPAN' && !children_[index - 1].innerHTML))) ? toRemove.push(item) : other_.push(item);
340
- });
341
- toRemove.forEach((item) => item.remove());
342
- other_.forEach(item => clear(item));
343
- };
344
- const onUpdate = (event) => {
345
- // Clear from empty element values
346
- clear();
347
- if ((0, utils_1.is)('function', onChange))
348
- onChange(event);
349
- };
350
- const updateInputValues = (property, itemValue) => {
351
- setInputValues(values => (Object.assign(Object.assign({}, values), { [property]: itemValue })));
352
- };
353
- const updateOpen = (property, itemValue) => {
354
- setOpen(values => (Object.assign(Object.assign({}, values), { [property]: itemValue })));
355
- };
356
- const paste = async () => {
357
- const value_ = await navigator.clipboard.read();
358
- if (value_) {
359
- let values = '';
360
- for (const item of Array.from(value_)) {
361
- const valueItem = await item.getType('text/html');
362
- values += await valueItem.text();
1378
+ }, /*#__PURE__*/_react.default.createElement(Label, {
1379
+ size: "small"
1380
+ }, /*#__PURE__*/_react.default.createElement(Switch, {
1381
+ tonal: tonal,
1382
+ color: props.color !== undefined ? props.color : 'default',
1383
+ checked: refs.inputValues.current.tableHeader,
1384
+ onChange: valueNew => updateInputValues('tableHeader', valueNew)
1385
+ }), l('Header')), /*#__PURE__*/_react.default.createElement(Button, {
1386
+ tonal: tonal,
1387
+ color: "inherit",
1388
+ version: "text",
1389
+ size: "small",
1390
+ onClick: () => {
1391
+ if (refs.range.current) {
1392
+ const selection_ = refs.rootWindow.current.getSelection();
1393
+ selection_.removeAllRanges();
1394
+ selection_.addRange(refs.range.current);
1395
+ }
1396
+ let table = `<table>`;
1397
+ if (refs.inputValues.current.tableHeader && refs.inputValues.current.tableColumns > 0) {
1398
+ table += `<thead><tr>${'<th></th>'.repeat(refs.inputValues.current.tableColumns)}</tr></thead>`;
1399
+ }
1400
+ if (refs.inputValues.current.tableRows > 0 && refs.inputValues.current.tableColumns > 0) {
1401
+ table += `<tbody>`;
1402
+ for (let i = 0; i < refs.inputValues.current.tableRows; i++) {
1403
+ table += `<tr>${'<td></td>'.repeat(refs.inputValues.current.tableColumns)}</tr>`;
363
1404
  }
364
- refs.rootDocument.current.execCommand('insertHTML', undefined, values);
1405
+ table += `</tbody>`;
1406
+ }
1407
+ table += `</table>`;
1408
+ method('html')(table);
1409
+ updateOpen('table', false);
1410
+ updateInputValues('tableRows', '');
1411
+ updateInputValues('tableColumns', '');
1412
+ updateInputValues('tableHeader', '');
365
1413
  }
366
- };
367
- const method = react_1.default.useCallback((command) => (argument) => {
368
- switch (command) {
369
- // updates
370
- case 'italic':
371
- refs.rootDocument.current.execCommand('italic');
372
- if (query('italic'))
373
- setSelected(values => [...values, 'italic']);
374
- else
375
- setSelected(values => values.filter(item => item !== 'italic'));
376
- break;
377
- case 'underline':
378
- refs.rootDocument.current.execCommand('underline');
379
- if (query('underline'))
380
- setSelected(values => [...values, 'underline']);
381
- else
382
- setSelected(values => values.filter(item => item !== 'underline'));
383
- break;
384
- case 'bold':
385
- refs.rootDocument.current.execCommand('bold');
386
- if (query('bold'))
387
- setSelected(values => [...values, 'bold']);
388
- else
389
- setSelected(values => values.filter(item => item !== 'bold'));
390
- break;
391
- case 'strike-line':
392
- refs.rootDocument.current.execCommand('strikeThrough');
393
- if (query('strikeThrough'))
394
- setSelected(values => [...values, 'strike-line']);
395
- else
396
- setSelected(values => values.filter(item => item !== 'strike-line'));
397
- break;
398
- case 'align-left':
399
- refs.rootDocument.current.execCommand('justifyLeft');
400
- if (query('justifyLeft'))
401
- setSelected(values => [...values.filter(item => !item.includes('align')), 'align-left']);
402
- else
403
- setSelected(values => values.filter(item => item !== 'align-left'));
404
- break;
405
- case 'align-center':
406
- refs.rootDocument.current.execCommand('justifyCenter');
407
- if (query('justifyCenter'))
408
- setSelected(values => [...values.filter(item => !item.includes('align')), 'align-center']);
409
- else
410
- setSelected(values => values.filter(item => item !== 'align-center'));
411
- break;
412
- case 'align-right':
413
- refs.rootDocument.current.execCommand('justifyRight');
414
- if (query('justifyRight'))
415
- setSelected(values => [...values.filter(item => !item.includes('align')), 'align-right']);
416
- else
417
- setSelected(values => values.filter(item => item !== 'align-right'));
418
- break;
419
- case 'align-justify':
420
- refs.rootDocument.current.execCommand('justifyFull');
421
- if (query('justifyFull'))
422
- setSelected(values => [...values.filter(item => !item.includes('align')), 'align-justify']);
423
- else
424
- setSelected(values => values.filter(item => item !== 'align-justify'));
425
- break;
426
- case 'superscript':
427
- refs.rootDocument.current.execCommand('superscript');
428
- if (query('superscript'))
429
- setSelected(values => [...values, 'superscript']);
430
- else
431
- setSelected(values => values.filter(item => item !== 'superscript'));
432
- break;
433
- case 'subscript':
434
- refs.rootDocument.current.execCommand('subscript');
435
- if (query('subscript'))
436
- setSelected(values => [...values, 'subscript']);
437
- else
438
- setSelected(values => values.filter(item => item !== 'subscript'));
439
- break;
440
- case 'indent':
441
- refs.rootDocument.current.execCommand('indent');
442
- break;
443
- case 'outdent':
444
- refs.rootDocument.current.execCommand('outdent');
445
- break;
446
- case 'font-version':
447
- refs.rootDocument.current.execCommand('formatBlock', undefined, argument);
448
- break;
449
- case 'font-family':
450
- refs.rootDocument.current.execCommand('styleWithCSS', true);
451
- refs.rootDocument.current.execCommand('fontName', undefined, argument);
452
- refs.rootDocument.current.execCommand('styleWithCSS', false);
453
- break;
454
- case 'font-size':
455
- refs.rootDocument.current.execCommand('styleWithCSS', true);
456
- refs.rootDocument.current.execCommand('fontSize', undefined, argument);
457
- refs.rootDocument.current.execCommand('styleWithCSS', false);
458
- break;
459
- case 'font-color':
460
- refs.rootDocument.current.execCommand('styleWithCSS', true);
461
- refs.rootDocument.current.execCommand('foreColor', undefined, argument);
462
- refs.rootDocument.current.execCommand('styleWithCSS', false);
463
- break;
464
- case 'font-background':
465
- refs.rootDocument.current.execCommand('styleWithCSS', true);
466
- refs.rootDocument.current.execCommand('backColor', undefined, argument);
467
- refs.rootDocument.current.execCommand('styleWithCSS', false);
468
- break;
469
- case 'list-ordered':
470
- refs.rootDocument.current.execCommand('insertOrderedList');
471
- if (query('insertOrderedList'))
472
- setSelected(values => [...values.filter(item => !item.includes('list')), 'list-ordered']);
473
- else
474
- setSelected(values => values.filter(item => item !== 'list-ordered'));
475
- break;
476
- case 'list-unordered':
477
- refs.rootDocument.current.execCommand('insertUnorderedList');
478
- if (query('insertUnorderedList'))
479
- setSelected(values => [...values.filter(item => !item.includes('list')), 'list-unordered']);
480
- else
481
- setSelected(values => values.filter(item => item !== 'list-unordered'));
482
- break;
483
- case 'horizontal-rule':
484
- refs.rootDocument.current.execCommand('insertHorizontalRule');
485
- break;
486
- case 'link-add':
487
- refs.rootDocument.current.execCommand('createLink', undefined, argument);
488
- break;
489
- case 'link-remove':
490
- refs.rootDocument.current.execCommand('unlink');
491
- break;
492
- case 'image':
493
- refs.rootDocument.current.execCommand('insertImage', undefined, argument);
494
- break;
495
- case 'html':
496
- refs.rootDocument.current.execCommand('insertHTML', undefined, argument);
497
- break;
498
- // actions
499
- case 'copy':
500
- refs.rootDocument.current.execCommand('copy');
501
- break;
502
- case 'cut':
503
- refs.rootDocument.current.execCommand('cut');
504
- break;
505
- case 'paste':
506
- if (refs.rootDocument.current.queryCommandSupported('paste'))
507
- refs.rootDocument.current.execCommand('paste');
508
- else
509
- paste();
510
- break;
511
- case 'delete':
512
- refs.rootDocument.current.execCommand('delete');
513
- break;
514
- case 'clear':
515
- refs.rootDocument.current.execCommand('removeFormat');
516
- break;
517
- case 'select-all':
518
- refs.rootDocument.current.execCommand('selectAll');
519
- break;
520
- case 'undo':
521
- refs.rootDocument.current.execCommand('undo');
522
- break;
523
- case 'redo':
524
- refs.rootDocument.current.execCommand('redo');
525
- break;
526
- default:
527
- break;
1414
+ }, l('Add')))))
1415
+ }, /*#__PURE__*/_react.default.createElement(WrapperToggleButton, {
1416
+ name: l('Insert Table'),
1417
+ open: refs.open.current.table ? false : undefined
1418
+ }, (0, _utils.is)('function', render) ? render('table', ToggleButtonProps, refs.value.current, method) : /*#__PURE__*/_react.default.createElement(ToggleButton, (0, _extends2.default)({
1419
+ ref: refs.elements.table
1420
+ }, ToggleButtonProps, {
1421
+ selected: refs.open.current.table,
1422
+ onClick: () => updateOpen('table', !refs.open.current.table)
1423
+ }), /*#__PURE__*/_react.default.createElement(IconTable, IconProps)))),
1424
+ 'image': /*#__PURE__*/_react.default.createElement(WrapperAppend, {
1425
+ open: refs.open.current.image,
1426
+ anchorElement: refs.elements.image.current,
1427
+ element: /*#__PURE__*/_react.default.createElement(ClickListener, {
1428
+ onClickOutside: () => updateOpen('image', false),
1429
+ include: [refs.elements.image.current]
1430
+ }, /*#__PURE__*/_react.default.createElement(Input, {
1431
+ name: l('Image'),
1432
+ labelButton: l('Add'),
1433
+ value: refs.inputValues.current.image,
1434
+ onChange: valueNew => updateInputValues('image', valueNew),
1435
+ onClick: () => {
1436
+ if (refs.range.current) {
1437
+ const selection_ = refs.rootWindow.current.getSelection();
1438
+ selection_.removeAllRanges();
1439
+ selection_.addRange(refs.range.current);
1440
+ }
1441
+ method('image')(refs.inputValues.current.image);
1442
+ updateOpen('image', false);
1443
+ updateInputValues('image', '');
528
1444
  }
529
- }, []);
530
- const includes = (...args) => !(0, utils_1.is)('array', exclude) || args.some(item => !exclude.includes(item));
531
- // italic, underline, bold
532
- // updates toolbar
533
- const updateOptions = ['font-family', 'font-version', 'font-size', 'font-color', 'font-background', 'italic', 'underline', 'bold', 'strike-line', 'align-left', 'align-center', 'align-right', 'align-justify', 'superscript', 'subscript', 'indent', 'outdent', 'list-ordered', 'list-unordered', 'horizontal-rule', 'link-add', 'link-remove', 'quote', 'image', 'video', 'video-youtube', 'table', 'drawing', 'code'];
534
- const updates_ = updates && (!(0, utils_1.is)('array', exclude) || includes(...updateOptions));
535
- // copy, paste, cut
536
- // action toolbar
537
- const actions_ = actions && (!(0, utils_1.is)('array', exclude) || includes('copy', 'paste', 'cut', 'clear', 'undo', 'redo', 'delete', 'select-all', 'save', 'print'));
538
- const AppendProps = Object.assign({ padding: [14, 14] }, AppendProps_);
539
- const DividerProps = Object.assign({ color: 'inherit' }, DividerProps_);
540
- const TooltipProps = Object.assign({ position: 'bottom', interactive: false }, TooltipProps_);
541
- const ToggleButtonsProps = Object.assign({ tonal,
542
- color, version: 'text', border: false }, ToggleButtonsProps_);
543
- const ToggleButtonProps = Object.assign({ size: 'small' }, ToggleButtonProps_);
544
- const MiniMenuProps = Object.assign({ tonal, color: refs.props.current.color !== undefined ? refs.props.current.color : 'themed' }, MiniMenuProps_);
545
- const SelectProps = Object.assign({ tonal, color: refs.props.current.color !== undefined ? refs.props.current.color : 'themed', version: 'outlined', size: 'small', ListProps: {
546
- tonal,
547
- color: refs.props.current.color !== undefined ? refs.props.current.color : 'themed'
548
- }, MenuProps: {
549
- portal: true
550
- } }, SelectProps_);
551
- const ListItemProps = Object.assign({ size: 'small', PrimaryProps: {
552
- style: {
553
- fontFamily: 'inherit'
554
- }
555
- } }, ListItemProps_);
556
- const IconProps = Object.assign({ size: 'small' }, IconProps_);
557
- const WrapperToggleButton = react_1.default.useCallback(react_1.default.forwardRef((props_, ref_) => {
558
- const { open: open_, name, children: children_ } = props_, other_ = __rest(props_, ["open", "name", "children"]);
559
- return ((0, jsx_runtime_1.jsx)(Tooltip, Object.assign({ open: open_ !== undefined ? open_ : undefined, name: name }, TooltipProps, { children: react_1.default.cloneElement(children_, Object.assign(Object.assign({}, other_), children_.props)) })));
560
- }), []);
561
- const WrapperAppend = react_1.default.useCallback((props_) => {
562
- const { open: open_, element, anchorElement, onClose, children: children_ } = props_, other_ = __rest(props_, ["open", "element", "anchorElement", "onClose", "children"]);
563
- return ((0, jsx_runtime_1.jsx)(Append, Object.assign({ open: open_, element: ((0, jsx_runtime_1.jsx)("div", { children: (0, jsx_runtime_1.jsx)(Fade, Object.assign({ in: open_, add: true }, { children: react_1.default.cloneElement(element) })) })), anchorElement: anchorElement, portal: true, alignment: 'center', position: 'bottom' }, AppendProps, { children: react_1.default.cloneElement(children_, Object.assign(Object.assign({}, other_), children_.props)) })));
564
- }, []);
565
- const onMouseDown = react_1.default.useCallback(() => {
566
- var _a, _b;
567
- const selection_ = refs.rootWindow.current.getSelection();
568
- if (selection_.anchorNode &&
569
- !((_b = (_a = selection_.anchorNode) === null || _a === void 0 ? void 0 : _a.className) === null || _b === void 0 ? void 0 : _b.includes('TextField')))
570
- refs.range.current = selection_.getRangeAt(0);
571
- }, []);
572
- const onMouseUp = react_1.default.useCallback(() => {
573
- if (refs.range.current) {
1445
+ }))
1446
+ }, /*#__PURE__*/_react.default.createElement(WrapperToggleButton, {
1447
+ name: l('Insert Image'),
1448
+ open: refs.open.current.image ? false : undefined
1449
+ }, (0, _utils.is)('function', render) ? render('image', ToggleButtonProps, refs.value.current, method) : /*#__PURE__*/_react.default.createElement(ToggleButton, (0, _extends2.default)({
1450
+ ref: refs.elements.image
1451
+ }, ToggleButtonProps, {
1452
+ selected: refs.open.current.image,
1453
+ onClick: () => updateOpen('image', !refs.open.current.image)
1454
+ }), /*#__PURE__*/_react.default.createElement(IconImage, IconProps)))),
1455
+ 'video': /*#__PURE__*/_react.default.createElement(WrapperAppend, {
1456
+ open: refs.open.current.video,
1457
+ anchorElement: refs.elements.video.current,
1458
+ element: /*#__PURE__*/_react.default.createElement(ClickListener, {
1459
+ onClickOutside: () => updateOpen('video', false),
1460
+ include: [refs.elements.video.current]
1461
+ }, /*#__PURE__*/_react.default.createElement(Input, {
1462
+ name: l('Video'),
1463
+ labelButton: l('Add'),
1464
+ value: refs.inputValues.current.video,
1465
+ onChange: valueNew => updateInputValues('video', valueNew),
1466
+ onClick: () => {
1467
+ if (refs.range.current) {
574
1468
  const selection_ = refs.rootWindow.current.getSelection();
575
1469
  selection_.removeAllRanges();
576
1470
  selection_.addRange(refs.range.current);
1471
+ }
1472
+ method('html')(`<video controls><source src='${refs.inputValues.current.video}' /></video>`);
1473
+ updateOpen('video', false);
1474
+ updateInputValues('video', '');
577
1475
  }
578
- }, []);
579
- const PaletteItem = react_1.default.useCallback((props_) => {
580
- const { color: color_ } = props_, other_ = __rest(props_, ["color"]);
581
- return ((0, jsx_runtime_1.jsx)("span", Object.assign({ className: (0, style_react_1.classNames)([
582
- (0, utils_2.staticClassName)('RichTextEditor', theme) && [
583
- 'onesy-RichTextEditor-palette-item'
584
- ],
585
- classes.paletteItem
586
- ]), style: {
587
- background: color_
588
- } }, other_)));
589
- }, []);
590
- const Palette = react_1.default.useCallback(react_1.default.forwardRef((props_, ref_) => {
591
- const { version: version_, onUpdate: onUpdate_, onClose } = props_, other_ = __rest(props_, ["version", "onUpdate", "onClose"]);
592
- return ((0, jsx_runtime_1.jsxs)(Line, Object.assign({ ref: ref_, gap: 1, direction: 'column', tonal: tonal, color: refs.props.current.color !== undefined ? refs.props.current.color : 'themed', Component: Surface, className: (0, style_react_1.classNames)([
593
- (0, utils_2.staticClassName)('RichTextEditor', theme) && [
594
- 'onesy-RichTextEditor-palette'
595
- ],
596
- classes.palette
597
- ]) }, other_, { children: [(0, jsx_runtime_1.jsxs)(Line, Object.assign({ gap: 0.5, onMouseUp: onMouseUp, onMouseDown: onMouseDown }, { children: [(0, jsx_runtime_1.jsxs)(Line, Object.assign({ gap: 0.5, direction: 'row', style: {
598
- width: '100%'
599
- } }, { children: [(0, jsx_runtime_1.jsx)(PaletteItem, { color: '#000000', onClick: () => {
600
- onUpdate_('#000000');
601
- onClose();
602
- } }), (0, jsx_runtime_1.jsx)(PaletteItem, { color: '#ffffff', onClick: () => {
603
- onUpdate_('#ffffff');
604
- onClose();
605
- } })] })), Object.keys(style_react_1.colors).filter(item => !['black', 'white'].includes(item)).map((item, index) => ((0, jsx_runtime_1.jsx)(Line, Object.assign({ gap: 0.5, direction: 'row', style: {
606
- width: '100%'
607
- } }, { children: Object.keys(style_react_1.colors[item]).map((item_, index_) => ((0, jsx_runtime_1.jsx)(PaletteItem, { color: style_react_1.colors[item][item_], onClick: () => {
608
- if (refs.range.current) {
609
- const selection_ = refs.rootWindow.current.getSelection();
610
- selection_.removeAllRanges();
611
- selection_.addRange(refs.range.current);
612
- }
613
- onUpdate_(style_react_1.colors[item][item_]);
614
- onClose();
615
- } }, index_))) }), index)))] })), (0, jsx_runtime_1.jsx)(Divider, {}), (0, jsx_runtime_1.jsxs)(Line, Object.assign({ gap: 0.5, direction: 'row', align: 'center', style: {
616
- width: '100%'
617
- } }, { children: [(0, jsx_runtime_1.jsx)(ColorTextField, Object.assign({ tonal: tonal, color: color, name: l('Custom color'), version: 'outlined', size: 'small', value: refs.inputValues.current[version_], onChange: valueNew => updateInputValues(version_, valueNew) }, ColorTextFieldProps, { className: (0, style_react_1.classNames)([
618
- (0, utils_2.staticClassName)('RichTextEditor', theme) && [
619
- 'onesy-RichTextEditor-text-field-color'
620
- ],
621
- ColorTextFieldProps === null || ColorTextFieldProps === void 0 ? void 0 : ColorTextFieldProps.className,
622
- classes.textFieldColor
623
- ]) })), (0, jsx_runtime_1.jsx)(Button, Object.assign({ tonal: tonal, color: 'inherit', version: 'text', size: 'small', onClick: () => {
624
- if (refs.range.current) {
625
- const selection_ = refs.rootWindow.current.getSelection();
626
- selection_.removeAllRanges();
627
- selection_.addRange(refs.range.current);
628
- }
629
- onUpdate_(refs.inputValues.current[version_]);
630
- onClose();
631
- } }, { children: "Apply" }))] }))] })));
632
- }), []);
633
- const Input = react_1.default.useCallback(react_1.default.forwardRef((props_, ref_) => {
634
- const { label, labelButton, value: value__, onChange: onChange__, onClick, InputComponent = TextField, InputProps } = props_, other_ = __rest(props_, ["label", "labelButton", "value", "onChange", "onClick", "InputComponent", "InputProps"]);
635
- return ((0, jsx_runtime_1.jsx)(Line, Object.assign({ ref: ref_, gap: 1, direction: 'column', tonal: tonal, color: refs.props.current.color !== undefined ? refs.props.current.color : 'themed', Component: Surface, className: (0, style_react_1.classNames)([
636
- (0, utils_2.staticClassName)('RichTextEditor', theme) && [
637
- 'onesy-RichTextEditor-palette'
638
- ],
639
- classes.palette
640
- ]) }, other_, { children: (0, jsx_runtime_1.jsxs)(Line, Object.assign({ gap: 0.5, direction: 'row', align: 'center', style: {
641
- width: '100%'
642
- } }, { children: [(0, jsx_runtime_1.jsx)(InputComponent, Object.assign({ tonal: tonal, color: color, name: label, version: 'outlined', size: 'small', value: value__, onChange: onChange__, className: (0, style_react_1.classNames)([
643
- (0, utils_2.staticClassName)('RichTextEditor', theme) && [
644
- 'onesy-RichTextEditor-text-field-color'
645
- ],
646
- classes.textFieldColor
647
- ]) }, InputProps)), (0, jsx_runtime_1.jsx)(Button, Object.assign({ tonal: tonal, color: 'inherit', version: 'text', size: 'small', onClick: onClick }, { children: labelButton }))] })) })));
648
- }), []);
649
- const font_families = [
650
- ...fontFamilies,
651
- ...addFontFamilies
652
- ];
653
- const font_sizes = [
654
- { label: '11', value: 1 },
655
- { label: '14', value: 2 },
656
- { label: '16', value: 3 },
657
- { label: '18', value: 4 },
658
- { label: '24', value: 5 },
659
- { label: '32', value: 6 },
660
- { label: '48', value: 7 }
661
- ];
662
- const font_versions = [
663
- { label: (0, jsx_runtime_1.jsx)(Type, Object.assign({ version: 'b2' }, { children: l('Normal text') })), value: 'p' },
664
- { label: (0, jsx_runtime_1.jsx)(Type, Object.assign({ version: 'h1' }, { children: l('Heading 1') })), value: 'h1' },
665
- { label: (0, jsx_runtime_1.jsx)(Type, Object.assign({ version: 'h2' }, { children: l('Heading 2') })), value: 'h2' },
666
- { label: (0, jsx_runtime_1.jsx)(Type, Object.assign({ version: 'h3' }, { children: l('Heading 3') })), value: 'h3' },
667
- { label: (0, jsx_runtime_1.jsx)(Type, Object.assign({ version: 't1' }, { children: l('Heading 4') })), value: 'h4' },
668
- { label: (0, jsx_runtime_1.jsx)(Type, Object.assign({ version: 't2' }, { children: l('Heading 5') })), value: 'h5' }
669
- ];
670
- const queryValueUpdate = () => {
671
- const selected_ = [];
672
- const inputValues_ = Object.assign({}, inputValues);
673
- const updateOptionValues = [
674
- { name: 'italic', command: 'italic' },
675
- { name: 'underline', command: 'underline' },
676
- { name: 'bold', command: 'bold' },
677
- { name: 'strike-line', command: 'strikeThrough' },
678
- { name: 'align-left', command: 'justifyLeft' },
679
- { name: 'align-center', command: 'justifyCenter' },
680
- { name: 'align-right', command: 'justifyRight' },
681
- { name: 'align-justify', command: 'justifyFull' },
682
- { name: 'superscript', command: 'superscript' },
683
- { name: 'subscript', command: 'subscript' },
684
- { name: 'list-ordered', command: 'insertOrderedList' },
685
- { name: 'list-unordered', command: 'insertUnorderedList' }
686
- ];
687
- updateOptionValues.forEach(item => {
688
- if (query(item.command))
689
- selected_.push(item.name);
690
- });
691
- // Font version
692
- const fontVersion = query('formatBlock');
693
- const fontVersionValue = font_versions.find(item_ => item_.value === fontVersion) || font_versions[0];
694
- inputValues_['font-version'] = fontVersionValue === null || fontVersionValue === void 0 ? void 0 : fontVersionValue.value;
695
- // Font family
696
- const fontFamily = query('fontName');
697
- const fontFamilyValue = font_families.find(item_ => fontFamily === null || fontFamily === void 0 ? void 0 : fontFamily.includes(item_.label)) || font_families.find(item_ => item_.label === 'DM Sans');
698
- inputValues_['font-family'] = fontFamilyValue === null || fontFamilyValue === void 0 ? void 0 : fontFamilyValue.value;
699
- // Font version
700
- const fontSize = query('fontSize');
701
- const fontSizeValue = font_sizes.find(item_ => item_.value === fontSize) || font_sizes.find(item_ => item_.label === '14');
702
- inputValues_['font-size'] = fontSizeValue === null || fontSizeValue === void 0 ? void 0 : fontSizeValue.value;
703
- setInputValues(inputValues_);
704
- setSelected(selected_);
705
- };
706
- const onMouseUpValue = react_1.default.useCallback(() => {
707
- queryValueUpdate();
708
- setTimeout(() => {
1476
+ }))
1477
+ }, /*#__PURE__*/_react.default.createElement(WrapperToggleButton, {
1478
+ name: l('Insert Video'),
1479
+ open: refs.open.current.video ? false : undefined
1480
+ }, (0, _utils.is)('function', render) ? render('video', ToggleButtonProps, refs.value.current, method) : /*#__PURE__*/_react.default.createElement(ToggleButton, (0, _extends2.default)({
1481
+ ref: refs.elements.video
1482
+ }, ToggleButtonProps, {
1483
+ selected: refs.open.current.video,
1484
+ onClick: () => updateOpen('video', !refs.open.current.video)
1485
+ }), /*#__PURE__*/_react.default.createElement(IconVideo, IconProps)))),
1486
+ 'video-youtube': /*#__PURE__*/_react.default.createElement(WrapperAppend, {
1487
+ open: refs.open.current.videoYoutube,
1488
+ anchorElement: refs.elements.videoYoutube.current,
1489
+ element: /*#__PURE__*/_react.default.createElement(ClickListener, {
1490
+ onClickOutside: () => updateOpen('videoYoutube', false),
1491
+ include: [refs.elements.videoYoutube.current]
1492
+ }, /*#__PURE__*/_react.default.createElement(Input, {
1493
+ name: l('Youtube Video ID'),
1494
+ labelButton: l('Add'),
1495
+ value: refs.inputValues.current.videoYoutube,
1496
+ onChange: valueNew => updateInputValues('videoYoutube', valueNew),
1497
+ onClick: () => {
1498
+ if (refs.range.current) {
709
1499
  const selection_ = refs.rootWindow.current.getSelection();
710
- if (!selection_.anchorNode || !refs.value.current.contains(selection_.anchorNode))
711
- return setSelection('');
712
- const rect = selection_.getRangeAt(0).getBoundingClientRect();
713
- setSelection(Math.round(rect.width) ? rect : '');
714
- });
715
- }, []);
716
- const onMouseDownValue = react_1.default.useCallback(() => {
717
- queryValueUpdate();
718
- }, []);
719
- const updateElements = {
720
- 'font-version': ((0, jsx_runtime_1.jsx)(Select, Object.assign({ name: l('Font Version'), valueDefault: font_versions.find(item => item.value.includes('p')).value, value: inputValues['font-version'], onChange: (valueNew) => {
721
- updateInputValues('font-version', valueNew);
722
- method('font-version')(valueNew);
723
- }, onMouseUp: onMouseUp, onMouseDown: onMouseDown }, SelectProps, { className: (0, style_react_1.classNames)([
724
- (0, utils_2.staticClassName)('RichTextEditor', theme) && [
725
- 'onesy-RichTextEditor-select'
726
- ],
727
- SelectProps === null || SelectProps === void 0 ? void 0 : SelectProps.className,
728
- classes.select
729
- ]), style: {
730
- minWidth: '150px'
731
- } }, { children: font_versions.map(item => ((0, jsx_runtime_1.jsx)(ListItem, Object.assign({ primary: item.label, value: item.value, button: true }, ListItemProps), item.value))) }))),
732
- 'font-family': ((0, jsx_runtime_1.jsx)(Select, Object.assign({ name: l('Font Family'), valueDefault: font_families.find(item => item.label.includes('DM Sans')).value, value: inputValues['font-family'], onChange: (valueNew) => {
733
- updateInputValues('font-family', valueNew);
734
- method('font-family')(valueNew);
735
- }, onMouseUp: onMouseUp, onMouseDown: onMouseDown }, SelectProps, { className: (0, style_react_1.classNames)([
736
- (0, utils_2.staticClassName)('RichTextEditor', theme) && [
737
- 'onesy-RichTextEditor-select'
738
- ],
739
- SelectProps === null || SelectProps === void 0 ? void 0 : SelectProps.className,
740
- classes.select
741
- ]), style: {
742
- minWidth: '140px'
743
- } }, { children: font_families.map(item => ((0, jsx_runtime_1.jsx)(ListItem, Object.assign({ primary: item.label, value: item.value, button: true, style: {
744
- fontFamily: item.value
745
- } }, ListItemProps), item.value))) }))),
746
- 'font-size': ((0, jsx_runtime_1.jsx)(Select, Object.assign({ name: l('Font Size'), valueDefault: +font_sizes.find(item => item.label.includes('14')).value, value: inputValues['font-size'], onChange: (valueNew) => {
747
- updateInputValues('font-size', +valueNew);
748
- method('font-size')(+valueNew);
749
- }, onMouseUp: onMouseUp, onMouseDown: onMouseDown }, SelectProps, { className: (0, style_react_1.classNames)([
750
- (0, utils_2.staticClassName)('RichTextEditor', theme) && [
751
- 'onesy-RichTextEditor-select'
752
- ],
753
- SelectProps === null || SelectProps === void 0 ? void 0 : SelectProps.className,
754
- classes.select
755
- ]) }, { children: font_sizes.map(item => ((0, jsx_runtime_1.jsx)(ListItem, Object.assign({ primary: item.label, value: item.value, button: true }, ListItemProps), item.value))) }))),
756
- 'italic': ((0, jsx_runtime_1.jsx)(WrapperToggleButton, Object.assign({ name: l('Italic') }, { children: (0, utils_1.is)('function', render) ? render('italic', ToggleButtonProps, refs.value.current, method) : ((0, jsx_runtime_1.jsx)(ToggleButton, Object.assign({}, ToggleButtonProps, { selected: refs.selected.current.includes('italic'), onClick: method('italic') }, { children: (0, jsx_runtime_1.jsx)(IconItalic, Object.assign({}, IconProps)) }))) }))),
757
- 'underline': ((0, jsx_runtime_1.jsx)(WrapperToggleButton, Object.assign({ name: l('Underline') }, { children: (0, utils_1.is)('function', render) ? render('underline', ToggleButtonProps, refs.value.current, method) : ((0, jsx_runtime_1.jsx)(ToggleButton, Object.assign({}, ToggleButtonProps, { selected: refs.selected.current.includes('underline'), onClick: method('underline') }, { children: (0, jsx_runtime_1.jsx)(IconUnderline, Object.assign({}, IconProps)) }))) }))),
758
- 'bold': ((0, jsx_runtime_1.jsx)(WrapperToggleButton, Object.assign({ name: l('Bold'), onClick: method('bold') }, { children: (0, utils_1.is)('function', render) ? render('bold', ToggleButtonProps, refs.value.current, method) : ((0, jsx_runtime_1.jsx)(ToggleButton, Object.assign({}, ToggleButtonProps, { selected: refs.selected.current.includes('bold') }, { children: (0, jsx_runtime_1.jsx)(IconBold, Object.assign({}, IconProps)) }))) }))),
759
- 'strike-line': ((0, jsx_runtime_1.jsx)(WrapperToggleButton, Object.assign({ name: l('Strike Line'), onClick: method('strike-line') }, { children: (0, utils_1.is)('function', render) ? render('strike-line', ToggleButtonProps, refs.value.current, method) : ((0, jsx_runtime_1.jsx)(ToggleButton, Object.assign({}, ToggleButtonProps, { selected: refs.selected.current.includes('strike-line') }, { children: (0, jsx_runtime_1.jsx)(IconStrikeLine, Object.assign({}, IconProps)) }))) }))),
760
- 'font-color': ((0, jsx_runtime_1.jsx)(WrapperAppend, Object.assign({ open: refs.open.current.color, anchorElement: refs.elements.color.current, element: ((0, jsx_runtime_1.jsx)(ClickListener, Object.assign({ onClickOutside: () => updateOpen('color', false), include: [refs.elements.color.current] }, { children: (0, jsx_runtime_1.jsx)(Palette, { version: 'font-color', onClose: () => updateOpen('color', false), onUpdate: method('font-color') }) }))) }, { children: (0, jsx_runtime_1.jsx)(WrapperToggleButton, Object.assign({ name: l('Text Color'), open: refs.open.current.color ? false : undefined }, { children: (0, utils_1.is)('function', render) ? render('font-color', ToggleButtonProps, refs.value.current, method) : ((0, jsx_runtime_1.jsx)(ToggleButton, Object.assign({ ref: refs.elements.color }, ToggleButtonProps, { selected: refs.open.current.color, onClick: () => updateOpen('color', !refs.open.current.color) }, { children: (0, jsx_runtime_1.jsx)(IconColor, Object.assign({}, IconProps)) }))) })) }))),
761
- 'font-color-mini-menu': ((0, jsx_runtime_1.jsx)(WrapperAppend, Object.assign({ open: refs.open.current.colorMiniMenu, anchorElement: refs.miniMenuElements.color, element: ((0, jsx_runtime_1.jsx)(ClickListener, Object.assign({ onClickOutside: () => updateOpen('colorMiniMenu', false), include: [refs.miniMenuElements.color] }, { children: (0, jsx_runtime_1.jsx)(Palette, { ref: refs.miniMenuElements.colorPalette, version: 'font-color', onClose: () => updateOpen('colorMiniMenu', false), onUpdate: method('font-color') }) }))) }, { children: (0, jsx_runtime_1.jsx)(WrapperToggleButton, Object.assign({ name: l('Text Color'), open: refs.open.current.colorMiniMenu ? false : undefined }, { children: (0, utils_1.is)('function', render) ? render('font-color', ToggleButtonProps, refs.value.current, method) : ((0, jsx_runtime_1.jsx)(ToggleButton, Object.assign({ ref: refs.miniMenuElements.color }, ToggleButtonProps, { selected: refs.open.current.colorMiniMenu, onClick: () => updateOpen('colorMiniMenu', !refs.open.current.colorMiniMenu) }, { children: (0, jsx_runtime_1.jsx)(IconColor, Object.assign({}, IconProps)) }))) })) }))),
762
- 'font-background': ((0, jsx_runtime_1.jsx)(WrapperAppend, Object.assign({ open: refs.open.current.background, anchorElement: refs.elements.background.current, element: ((0, jsx_runtime_1.jsx)(ClickListener, Object.assign({ onClickOutside: () => updateOpen('background', false), include: [refs.elements.background.current] }, { children: (0, jsx_runtime_1.jsx)(Palette, { version: 'font-background', onClose: () => updateOpen('background', false), onUpdate: method('font-background') }) }))) }, { children: (0, jsx_runtime_1.jsx)(WrapperToggleButton, Object.assign({ name: l('Background Color'), open: refs.open.current.background ? false : undefined }, { children: (0, utils_1.is)('function', render) ? render('font-background', ToggleButtonProps, refs.value.current, method) : ((0, jsx_runtime_1.jsx)(ToggleButton, Object.assign({ ref: refs.elements.background }, ToggleButtonProps, { selected: refs.open.current.background, onClick: () => updateOpen('background', !refs.open.current.background) }, { children: (0, jsx_runtime_1.jsx)(IconBackground, Object.assign({}, IconProps)) }))) })) }))),
763
- 'font-background-mini-menu': ((0, jsx_runtime_1.jsx)(WrapperAppend, Object.assign({ open: refs.open.current.backgroundMiniMenu, anchorElement: refs.miniMenuElements.background, element: ((0, jsx_runtime_1.jsx)(ClickListener, Object.assign({ onClickOutside: () => updateOpen('backgroundMiniMenu', false), include: [refs.miniMenuElements.background] }, { children: (0, jsx_runtime_1.jsx)(Palette, { ref: refs.miniMenuElements.backgroundPalette, version: 'font-background', onClose: () => updateOpen('backgroundMiniMenu', false), onUpdate: method('font-background') }) }))) }, { children: (0, jsx_runtime_1.jsx)(WrapperToggleButton, Object.assign({ name: l('Text Color'), open: refs.open.current.backgroundMiniMenu ? false : undefined }, { children: (0, utils_1.is)('function', render) ? render('font-background', ToggleButtonProps, refs.value.current, method) : ((0, jsx_runtime_1.jsx)(ToggleButton, Object.assign({ ref: refs.miniMenuElements.background }, ToggleButtonProps, { selected: refs.open.current.backgroundMiniMenu, onClick: () => updateOpen('backgroundMiniMenu', !refs.open.current.backgroundMiniMenu) }, { children: (0, jsx_runtime_1.jsx)(IconBackground, Object.assign({}, IconProps)) }))) })) }))),
764
- 'align-left': ((0, jsx_runtime_1.jsx)(WrapperToggleButton, Object.assign({ name: l('Align Left') }, { children: (0, utils_1.is)('function', render) ? render('align-left', ToggleButtonProps, refs.value.current, method) : ((0, jsx_runtime_1.jsx)(ToggleButton, Object.assign({}, ToggleButtonProps, { selected: refs.selected.current.includes('align-left'), onClick: method('align-left') }, { children: (0, jsx_runtime_1.jsx)(IconAlignLeft, Object.assign({}, IconProps)) }))) }))),
765
- 'align-center': ((0, jsx_runtime_1.jsx)(WrapperToggleButton, Object.assign({ name: l('Align Center') }, { children: (0, utils_1.is)('function', render) ? render('align-center', ToggleButtonProps, refs.value.current, method) : ((0, jsx_runtime_1.jsx)(ToggleButton, Object.assign({}, ToggleButtonProps, { selected: refs.selected.current.includes('align-center'), onClick: method('align-center') }, { children: (0, jsx_runtime_1.jsx)(IconAlignCenter, Object.assign({}, IconProps)) }))) }))),
766
- 'align-right': ((0, jsx_runtime_1.jsx)(WrapperToggleButton, Object.assign({ name: l('Align Right') }, { children: (0, utils_1.is)('function', render) ? render('align-right', ToggleButtonProps, refs.value.current, method) : ((0, jsx_runtime_1.jsx)(ToggleButton, Object.assign({}, ToggleButtonProps, { selected: refs.selected.current.includes('align-right'), onClick: method('align-right') }, { children: (0, jsx_runtime_1.jsx)(IconAlignRight, Object.assign({}, IconProps)) }))) }))),
767
- 'align-justify': ((0, jsx_runtime_1.jsx)(WrapperToggleButton, Object.assign({ name: l('Align Justify') }, { children: (0, utils_1.is)('function', render) ? render('align-justify', ToggleButtonProps, refs.value.current, method) : ((0, jsx_runtime_1.jsx)(ToggleButton, Object.assign({}, ToggleButtonProps, { selected: refs.selected.current.includes('align-justify'), onClick: method('align-justify') }, { children: (0, jsx_runtime_1.jsx)(IconAlignJustify, Object.assign({}, IconProps)) }))) }))),
768
- 'indent': ((0, jsx_runtime_1.jsx)(WrapperToggleButton, Object.assign({ name: l('Indent') }, { children: (0, utils_1.is)('function', render) ? render('indent', ToggleButtonProps, refs.value.current, method) : ((0, jsx_runtime_1.jsx)(ToggleButton, Object.assign({}, ToggleButtonProps, { onClick: method('indent') }, { children: (0, jsx_runtime_1.jsx)(IconIndent, Object.assign({}, IconProps)) }))) }))),
769
- 'outdent': ((0, jsx_runtime_1.jsx)(WrapperToggleButton, Object.assign({ name: l('Outdent') }, { children: (0, utils_1.is)('function', render) ? render('outdent', ToggleButtonProps, refs.value.current, method) : ((0, jsx_runtime_1.jsx)(ToggleButton, Object.assign({}, ToggleButtonProps, { onClick: method('outdent') }, { children: (0, jsx_runtime_1.jsx)(IconOutdent, Object.assign({}, IconProps)) }))) }))),
770
- 'superscript': ((0, jsx_runtime_1.jsx)(WrapperToggleButton, Object.assign({ name: l('Superscript') }, { children: (0, utils_1.is)('function', render) ? render('superscript', ToggleButtonProps, refs.value.current, method) : ((0, jsx_runtime_1.jsx)(ToggleButton, Object.assign({}, ToggleButtonProps, { selected: refs.selected.current.includes('superscript'), onClick: method('superscript') }, { children: (0, jsx_runtime_1.jsx)(IconSuperscript, Object.assign({}, IconProps)) }))) }))),
771
- 'subscript': ((0, jsx_runtime_1.jsx)(WrapperToggleButton, Object.assign({ name: l('Subscript') }, { children: (0, utils_1.is)('function', render) ? render('subscript', ToggleButtonProps, refs.value.current, method) : ((0, jsx_runtime_1.jsx)(ToggleButton, Object.assign({}, ToggleButtonProps, { selected: refs.selected.current.includes('subscript'), onClick: method('subscript') }, { children: (0, jsx_runtime_1.jsx)(IconSubscript, Object.assign({}, IconProps)) }))) }))),
772
- 'list-ordered': ((0, jsx_runtime_1.jsx)(WrapperToggleButton, Object.assign({ name: l('List Ordered') }, { children: (0, utils_1.is)('function', render) ? render('list-ordered', ToggleButtonProps, refs.value.current, method) : ((0, jsx_runtime_1.jsx)(ToggleButton, Object.assign({}, ToggleButtonProps, { selected: refs.selected.current.includes('list-ordered'), onClick: method('list-ordered') }, { children: (0, jsx_runtime_1.jsx)(IconListOrdered, Object.assign({}, IconProps)) }))) }))),
773
- 'list-unordered': ((0, jsx_runtime_1.jsx)(WrapperToggleButton, Object.assign({ name: l('List Unordered') }, { children: (0, utils_1.is)('function', render) ? render('list-unordered', ToggleButtonProps, refs.value.current, method) : ((0, jsx_runtime_1.jsx)(ToggleButton, Object.assign({}, ToggleButtonProps, { selected: refs.selected.current.includes('list-unordered'), onClick: method('list-unordered') }, { children: (0, jsx_runtime_1.jsx)(IconListUnordered, Object.assign({}, IconProps)) }))) }))),
774
- 'horizontal-rule': ((0, jsx_runtime_1.jsx)(WrapperToggleButton, Object.assign({ name: l('Insert Horizontal Rule'), onClick: method('horizontal-rule') }, { children: (0, utils_1.is)('function', render) ? render('horizontal-rule', ToggleButtonProps, refs.value.current, method) : ((0, jsx_runtime_1.jsx)(ToggleButton, Object.assign({}, ToggleButtonProps, { children: (0, jsx_runtime_1.jsx)(IconHorizontalRule, Object.assign({}, IconProps)) }))) }))),
775
- 'link-add': ((0, jsx_runtime_1.jsx)(WrapperAppend, Object.assign({ open: refs.open.current.link, anchorElement: refs.elements.linkAdd.current, element: ((0, jsx_runtime_1.jsx)(ClickListener, Object.assign({ onClickOutside: () => updateOpen('link', false), include: [refs.elements.linkAdd.current] }, { children: (0, jsx_runtime_1.jsx)(Input, { name: l('Link'), labelButton: l('Add'), value: refs.inputValues.current.link, onChange: valueNew => updateInputValues('link', valueNew), onClick: () => {
776
- if (refs.range.current) {
777
- const selection_ = refs.rootWindow.current.getSelection();
778
- selection_.removeAllRanges();
779
- selection_.addRange(refs.range.current);
780
- }
781
- method('link-add')(refs.inputValues.current.link);
782
- updateOpen('link', false);
783
- updateInputValues('link', '');
784
- } }) }))) }, { children: (0, jsx_runtime_1.jsx)(WrapperToggleButton, Object.assign({ name: l('Insert Link'), open: refs.open.current.link ? false : undefined }, { children: (0, utils_1.is)('function', render) ? render('font-color', ToggleButtonProps, refs.value.current, method) : ((0, jsx_runtime_1.jsx)(ToggleButton, Object.assign({ ref: refs.elements.linkAdd }, ToggleButtonProps, { selected: refs.open.current.link, onClick: () => updateOpen('link', !refs.open.current.link) }, { children: (0, jsx_runtime_1.jsx)(IconLinkAdd, Object.assign({}, IconProps)) }))) })) }))),
785
- 'link-add-mini-menu': ((0, jsx_runtime_1.jsx)(WrapperAppend, Object.assign({ open: refs.open.current.linkMiniMenu, anchorElement: refs.miniMenuElements.linkAdd, element: ((0, jsx_runtime_1.jsx)(ClickListener, Object.assign({ onClickOutside: () => updateOpen('linkMiniMenu', false), include: [refs.miniMenuElements.linkAdd] }, { children: (0, jsx_runtime_1.jsx)(Input, { ref: refs.miniMenuElements.linkAddInput, name: l('Link'), labelButton: l('Add'), value: refs.inputValues.current.link, onChange: valueNew => updateInputValues('link', valueNew), onClick: () => {
786
- if (refs.range.current) {
787
- const selection_ = refs.rootWindow.current.getSelection();
788
- selection_.removeAllRanges();
789
- selection_.addRange(refs.range.current);
790
- }
791
- method('link-add')(refs.inputValues.current.link);
792
- updateOpen('linkMiniMenu', false);
793
- updateInputValues('link', '');
794
- } }) }))) }, { children: (0, jsx_runtime_1.jsx)(WrapperToggleButton, Object.assign({ name: l('Insert Link'), open: refs.open.current.linkMiniMenu ? false : undefined }, { children: (0, utils_1.is)('function', render) ? render('font-color', ToggleButtonProps, refs.value.current, method) : ((0, jsx_runtime_1.jsx)(ToggleButton, Object.assign({ ref: refs.miniMenuElements.linkAdd }, ToggleButtonProps, { selected: refs.open.current.linkMiniMenu, onClick: () => updateOpen('linkMiniMenu', !refs.open.current.linkMiniMenu) }, { children: (0, jsx_runtime_1.jsx)(IconLinkAdd, Object.assign({}, IconProps)) }))) })) }))),
795
- 'link-remove': ((0, jsx_runtime_1.jsx)(WrapperToggleButton, Object.assign({ name: l('Remove Link') }, { children: (0, utils_1.is)('function', render) ? render('link-remove', ToggleButtonProps, refs.value.current, method) : ((0, jsx_runtime_1.jsx)(ToggleButton, Object.assign({}, ToggleButtonProps, { onClick: method('link-remove') }, { children: (0, jsx_runtime_1.jsx)(IconLinkRemove, Object.assign({}, IconProps)) }))) }))),
796
- 'quote': ((0, jsx_runtime_1.jsx)(WrapperAppend, Object.assign({ open: refs.open.current.quote, anchorElement: refs.elements.quote.current, element: ((0, jsx_runtime_1.jsx)(ClickListener, Object.assign({ onClickOutside: () => updateOpen('quote', false), include: [refs.elements.quote.current] }, { children: (0, jsx_runtime_1.jsx)(Input, { name: l('Quote'), labelButton: l('Add'), value: refs.inputValues.current.quote, onChange: valueNew => updateInputValues('quote', valueNew), InputProps: {
797
- multiline: true
798
- }, onClick: () => {
799
- if (refs.range.current) {
800
- const selection_ = refs.rootWindow.current.getSelection();
801
- selection_.removeAllRanges();
802
- selection_.addRange(refs.range.current);
803
- }
804
- method('html')(`<blockquote>${refs.inputValues.current.quote}</blockquote>`);
805
- updateOpen('quote', false);
806
- updateInputValues('quote', '');
807
- } }) }))) }, { children: (0, jsx_runtime_1.jsx)(WrapperToggleButton, Object.assign({ name: l('Insert Quote'), open: refs.open.current.quote ? false : undefined }, { children: (0, utils_1.is)('function', render) ? render('quote', ToggleButtonProps, refs.value.current, method) : ((0, jsx_runtime_1.jsx)(ToggleButton, Object.assign({ ref: refs.elements.quote }, ToggleButtonProps, { selected: refs.open.current.quote, onClick: () => updateOpen('quote', !refs.open.current.quote) }, { children: (0, jsx_runtime_1.jsx)(IconQuote, Object.assign({}, IconProps)) }))) })) }))),
808
- 'table': ((0, jsx_runtime_1.jsx)(WrapperAppend, Object.assign({ open: refs.open.current.table, anchorElement: refs.elements.table.current, element: ((0, jsx_runtime_1.jsx)(ClickListener, Object.assign({ onClickOutside: () => updateOpen('table', false), include: [refs.elements.table.current] }, { children: (0, jsx_runtime_1.jsxs)(Line, Object.assign({ gap: 1, tonal: tonal, color: refs.props.current.color !== undefined ? refs.props.current.color : 'themed', Component: Surface, className: (0, style_react_1.classNames)([
809
- (0, utils_2.staticClassName)('RichTextEditor', theme) && [
810
- 'onesy-RichTextEditor-palette'
811
- ],
812
- classes.palette
813
- ]) }, { children: [(0, jsx_runtime_1.jsxs)(Line, Object.assign({ gap: 1, direction: 'row', align: 'center', justify: 'center' }, { children: [(0, jsx_runtime_1.jsx)(NumericTextField, { name: l('Rows'), tonal: tonal, color: color, size: 'small', version: 'outlined', increment: false, decrement: false, value: refs.inputValues.current.tableRows, onChange: valueNew => updateInputValues('tableRows', valueNew) }), "\u00D7", (0, jsx_runtime_1.jsx)(NumericTextField, { name: l('Columns'), tonal: tonal, color: color, size: 'small', version: 'outlined', increment: false, decrement: false, value: refs.inputValues.current.tableColumns, onChange: valueNew => updateInputValues('tableColumns', valueNew) })] })), (0, jsx_runtime_1.jsxs)(Line, Object.assign({ gap: 1, direction: 'row', align: 'center', justify: 'space-between', style: {
814
- width: '100%'
815
- } }, { children: [(0, jsx_runtime_1.jsxs)(Label, Object.assign({ size: 'small' }, { children: [(0, jsx_runtime_1.jsx)(Switch, { tonal: tonal, color: props.color !== undefined ? props.color : 'default', checked: refs.inputValues.current.tableHeader, onChange: valueNew => updateInputValues('tableHeader', valueNew) }), l('Header')] })), (0, jsx_runtime_1.jsx)(Button, Object.assign({ tonal: tonal, color: 'inherit', version: 'text', size: 'small', onClick: () => {
816
- if (refs.range.current) {
817
- const selection_ = refs.rootWindow.current.getSelection();
818
- selection_.removeAllRanges();
819
- selection_.addRange(refs.range.current);
820
- }
821
- let table = `<table>`;
822
- if (refs.inputValues.current.tableHeader && refs.inputValues.current.tableColumns > 0) {
823
- table += `<thead><tr>${'<th></th>'.repeat(refs.inputValues.current.tableColumns)}</tr></thead>`;
824
- }
825
- if (refs.inputValues.current.tableRows > 0 && refs.inputValues.current.tableColumns > 0) {
826
- table += `<tbody>`;
827
- for (let i = 0; i < refs.inputValues.current.tableRows; i++) {
828
- table += `<tr>${'<td></td>'.repeat(refs.inputValues.current.tableColumns)}</tr>`;
829
- }
830
- table += `</tbody>`;
831
- }
832
- table += `</table>`;
833
- method('html')(table);
834
- updateOpen('table', false);
835
- updateInputValues('tableRows', '');
836
- updateInputValues('tableColumns', '');
837
- updateInputValues('tableHeader', '');
838
- } }, { children: l('Add') }))] }))] })) }))) }, { children: (0, jsx_runtime_1.jsx)(WrapperToggleButton, Object.assign({ name: l('Insert Table'), open: refs.open.current.table ? false : undefined }, { children: (0, utils_1.is)('function', render) ? render('table', ToggleButtonProps, refs.value.current, method) : ((0, jsx_runtime_1.jsx)(ToggleButton, Object.assign({ ref: refs.elements.table }, ToggleButtonProps, { selected: refs.open.current.table, onClick: () => updateOpen('table', !refs.open.current.table) }, { children: (0, jsx_runtime_1.jsx)(IconTable, Object.assign({}, IconProps)) }))) })) }))),
839
- 'image': ((0, jsx_runtime_1.jsx)(WrapperAppend, Object.assign({ open: refs.open.current.image, anchorElement: refs.elements.image.current, element: ((0, jsx_runtime_1.jsx)(ClickListener, Object.assign({ onClickOutside: () => updateOpen('image', false), include: [refs.elements.image.current] }, { children: (0, jsx_runtime_1.jsx)(Input, { name: l('Image'), labelButton: l('Add'), value: refs.inputValues.current.image, onChange: valueNew => updateInputValues('image', valueNew), onClick: () => {
840
- if (refs.range.current) {
841
- const selection_ = refs.rootWindow.current.getSelection();
842
- selection_.removeAllRanges();
843
- selection_.addRange(refs.range.current);
844
- }
845
- method('image')(refs.inputValues.current.image);
846
- updateOpen('image', false);
847
- updateInputValues('image', '');
848
- } }) }))) }, { children: (0, jsx_runtime_1.jsx)(WrapperToggleButton, Object.assign({ name: l('Insert Image'), open: refs.open.current.image ? false : undefined }, { children: (0, utils_1.is)('function', render) ? render('image', ToggleButtonProps, refs.value.current, method) : ((0, jsx_runtime_1.jsx)(ToggleButton, Object.assign({ ref: refs.elements.image }, ToggleButtonProps, { selected: refs.open.current.image, onClick: () => updateOpen('image', !refs.open.current.image) }, { children: (0, jsx_runtime_1.jsx)(IconImage, Object.assign({}, IconProps)) }))) })) }))),
849
- 'video': ((0, jsx_runtime_1.jsx)(WrapperAppend, Object.assign({ open: refs.open.current.video, anchorElement: refs.elements.video.current, element: ((0, jsx_runtime_1.jsx)(ClickListener, Object.assign({ onClickOutside: () => updateOpen('video', false), include: [refs.elements.video.current] }, { children: (0, jsx_runtime_1.jsx)(Input, { name: l('Video'), labelButton: l('Add'), value: refs.inputValues.current.video, onChange: valueNew => updateInputValues('video', valueNew), onClick: () => {
850
- if (refs.range.current) {
851
- const selection_ = refs.rootWindow.current.getSelection();
852
- selection_.removeAllRanges();
853
- selection_.addRange(refs.range.current);
854
- }
855
- method('html')(`<video controls><source src='${refs.inputValues.current.video}' /></video>`);
856
- updateOpen('video', false);
857
- updateInputValues('video', '');
858
- } }) }))) }, { children: (0, jsx_runtime_1.jsx)(WrapperToggleButton, Object.assign({ name: l('Insert Video'), open: refs.open.current.video ? false : undefined }, { children: (0, utils_1.is)('function', render) ? render('video', ToggleButtonProps, refs.value.current, method) : ((0, jsx_runtime_1.jsx)(ToggleButton, Object.assign({ ref: refs.elements.video }, ToggleButtonProps, { selected: refs.open.current.video, onClick: () => updateOpen('video', !refs.open.current.video) }, { children: (0, jsx_runtime_1.jsx)(IconVideo, Object.assign({}, IconProps)) }))) })) }))),
859
- 'video-youtube': ((0, jsx_runtime_1.jsx)(WrapperAppend, Object.assign({ open: refs.open.current.videoYoutube, anchorElement: refs.elements.videoYoutube.current, element: ((0, jsx_runtime_1.jsx)(ClickListener, Object.assign({ onClickOutside: () => updateOpen('videoYoutube', false), include: [refs.elements.videoYoutube.current] }, { children: (0, jsx_runtime_1.jsx)(Input, { name: l('Youtube Video ID'), labelButton: l('Add'), value: refs.inputValues.current.videoYoutube, onChange: valueNew => updateInputValues('videoYoutube', valueNew), onClick: () => {
860
- if (refs.range.current) {
861
- const selection_ = refs.rootWindow.current.getSelection();
862
- selection_.removeAllRanges();
863
- selection_.addRange(refs.range.current);
864
- }
865
- method('html')(`<iframe width="560" height="315" src="https://www.youtube.com/embed/${refs.inputValues.current.videoYoutube}" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>`);
866
- updateOpen('videoYoutube', false);
867
- updateInputValues('videoYoutube', '');
868
- } }) }))) }, { children: (0, jsx_runtime_1.jsx)(WrapperToggleButton, Object.assign({ name: l('Insert Youtube Video'), open: refs.open.current.videoYoutube ? false : undefined }, { children: (0, utils_1.is)('function', render) ? render('videoYoutube', ToggleButtonProps, refs.value.current, method) : ((0, jsx_runtime_1.jsx)(ToggleButton, Object.assign({ ref: refs.elements.videoYoutube }, ToggleButtonProps, { selected: refs.open.current.videoYoutube, onClick: () => updateOpen('videoYoutube', !refs.open.current.videoYoutube) }, { children: (0, jsx_runtime_1.jsx)(IconVideoYoutube, Object.assign({}, IconProps)) }))) })) }))),
869
- 'drawing': ((0, jsx_runtime_1.jsx)(WrapperAppend, Object.assign({ open: refs.open.current.drawing, anchorElement: refs.elements.drawing.current, element: ((0, jsx_runtime_1.jsx)(ClickListener, Object.assign({ onClickOutside: () => updateOpen('drawing', false), include: [refs.elements.drawing, refs.elements.drawingSelect, refs.elements.drawingSelect.current, refs.elements.drawingPalette, refs.elements.drawingPalette.current, refs.elements.drawingSize, refs.elements.drawingSize.current], includeParentQueries: ['.onesy-Drawing-palette', '.onesy-Drawing-modal'], includeQueries: ['a[download]', 'svg', 'path'] }, { children: (0, jsx_runtime_1.jsxs)(Line, Object.assign({ gap: 2, tonal: tonal, color: refs.props.current.color !== undefined ? refs.props.current.color : 'themed', Component: Surface, className: (0, style_react_1.classNames)([
870
- (0, utils_2.staticClassName)('RichTextEditor', theme) && [
871
- 'onesy-RichTextEditor-palette'
872
- ],
873
- classes.palette
874
- ]) }, { children: [(0, jsx_runtime_1.jsx)(Drawing, Object.assign({ tonal: tonal, color: refs.props.current.color !== undefined ? refs.props.current.color : 'themed', version: version, svgRef: refs.elements.drawingSvg, SizeProps: {
875
- ref: refs.elements.drawingSize
876
- }, SelectProps: {
877
- MenuProps: Object.assign({ ListProps: {
878
- ref: refs.elements.drawingSelect
879
- } }, SelectProps === null || SelectProps === void 0 ? void 0 : SelectProps.MenuProps)
880
- }, PaletteProps: {
881
- ref: refs.elements.drawingPalette
882
- } }, DrawingProps)), (0, jsx_runtime_1.jsx)(Line, Object.assign({ gap: 1, direction: 'row', align: 'center', justify: 'flex-end', style: {
883
- width: '100%'
884
- } }, { children: (0, jsx_runtime_1.jsx)(Button, Object.assign({ tonal: tonal, color: 'inherit', version: 'text', size: 'small', onClick: () => {
885
- if (refs.range.current) {
886
- const selection_ = refs.rootWindow.current.getSelection();
887
- selection_.removeAllRanges();
888
- selection_.addRange(refs.range.current);
889
- }
890
- // Get svg html element
891
- // clone it, remove circle
892
- // and add it as outer html
893
- // to the rich text editor
894
- const svg = refs.elements.drawingSvg.current;
895
- const svgClone = svg.cloneNode(true);
896
- // Clean up
897
- svgClone.style.width = refs.inputValues.current.drawingWidth;
898
- svgClone.style.height = refs.inputValues.current.drawingHeight;
899
- svgClone.style.boxShadow = 'none';
900
- const pointers = Array.from(svgClone.querySelectorAll('.onesy-Drawing-pointer'));
901
- pointers.forEach(pointer => pointer.remove());
902
- const valueNew = svgClone.outerHTML;
903
- method('html')(valueNew);
904
- updateOpen('drawing', false);
905
- } }, { children: l('Add') })) }))] })) }))) }, { children: (0, jsx_runtime_1.jsx)(WrapperToggleButton, Object.assign({ name: l('Insert Drawing'), open: refs.open.current.drawing ? false : undefined }, { children: (0, utils_1.is)('function', render) ? render('drawing', ToggleButtonProps, refs.value.current, method) : ((0, jsx_runtime_1.jsx)(ToggleButton, Object.assign({ ref: refs.elements.drawing }, ToggleButtonProps, { selected: refs.open.current.drawing, onClick: () => updateOpen('drawing', !refs.open.current.drawing) }, { children: (0, jsx_runtime_1.jsx)(IconDrawing, Object.assign({}, IconProps)) }))) })) }))),
906
- 'code': ((0, jsx_runtime_1.jsx)(WrapperAppend, Object.assign({ open: refs.open.current.code, anchorElement: refs.elements.code.current, element: ((0, jsx_runtime_1.jsx)(ClickListener, Object.assign({ onClickOutside: () => updateOpen('code', false), include: [refs.elements.code.current] }, { children: (0, jsx_runtime_1.jsx)(Input, { name: l('Code'), labelButton: l('Add'), value: refs.inputValues.current.code, onChange: valueNew => updateInputValues('code', valueNew), InputProps: {
907
- multiline: true
908
- }, onClick: () => {
909
- if (refs.range.current) {
910
- const selection_ = refs.rootWindow.current.getSelection();
911
- selection_.removeAllRanges();
912
- selection_.addRange(refs.range.current);
913
- }
914
- method('html')(`<pre><code>${refs.inputValues.current.code}</code></pre>`);
915
- updateOpen('code', false);
916
- updateInputValues('code', '');
917
- } }) }))) }, { children: (0, jsx_runtime_1.jsx)(WrapperToggleButton, Object.assign({ name: l('Insert Code'), open: refs.open.current.code ? false : undefined }, { children: (0, utils_1.is)('function', render) ? render('code', ToggleButtonProps, refs.value.current, method) : ((0, jsx_runtime_1.jsx)(ToggleButton, Object.assign({ ref: refs.elements.code }, ToggleButtonProps, { selected: refs.open.current.code, onClick: () => updateOpen('code', !refs.open.current.code) }, { children: (0, jsx_runtime_1.jsx)(IconCode, Object.assign({}, IconProps)) }))) })) })))
918
- };
919
- const actionElements = {
920
- 'clear': ((0, jsx_runtime_1.jsx)(WrapperToggleButton, Object.assign({ name: l('Clear') }, { children: (0, utils_1.is)('function', render) ? render('clear', ToggleButtonProps, refs.value.current, method) : ((0, jsx_runtime_1.jsx)(ToggleButton, Object.assign({}, ToggleButtonProps, { onClick: method('clear') }, { children: (0, jsx_runtime_1.jsx)(IconClear, Object.assign({}, IconProps)) }))) })))
921
- };
922
- return ((0, jsx_runtime_1.jsxs)(Line, Object.assign({ ref: item => {
923
- if (ref) {
924
- if ((0, utils_1.is)('function', ref))
925
- ref(item);
926
- else
927
- ref.current = item;
1500
+ selection_.removeAllRanges();
1501
+ selection_.addRange(refs.range.current);
1502
+ }
1503
+ method('html')(`<iframe width="560" height="315" src="https://www.youtube.com/embed/${refs.inputValues.current.videoYoutube}" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>`);
1504
+ updateOpen('videoYoutube', false);
1505
+ updateInputValues('videoYoutube', '');
1506
+ }
1507
+ }))
1508
+ }, /*#__PURE__*/_react.default.createElement(WrapperToggleButton, {
1509
+ name: l('Insert Youtube Video'),
1510
+ open: refs.open.current.videoYoutube ? false : undefined
1511
+ }, (0, _utils.is)('function', render) ? render('videoYoutube', ToggleButtonProps, refs.value.current, method) : /*#__PURE__*/_react.default.createElement(ToggleButton, (0, _extends2.default)({
1512
+ ref: refs.elements.videoYoutube
1513
+ }, ToggleButtonProps, {
1514
+ selected: refs.open.current.videoYoutube,
1515
+ onClick: () => updateOpen('videoYoutube', !refs.open.current.videoYoutube)
1516
+ }), /*#__PURE__*/_react.default.createElement(IconVideoYoutube, IconProps)))),
1517
+ 'drawing': /*#__PURE__*/_react.default.createElement(WrapperAppend, {
1518
+ open: refs.open.current.drawing,
1519
+ anchorElement: refs.elements.drawing.current,
1520
+ element: /*#__PURE__*/_react.default.createElement(ClickListener, {
1521
+ onClickOutside: () => updateOpen('drawing', false),
1522
+ include: [refs.elements.drawing, refs.elements.drawingSelect, refs.elements.drawingSelect.current, refs.elements.drawingPalette, refs.elements.drawingPalette.current, refs.elements.drawingSize, refs.elements.drawingSize.current],
1523
+ includeParentQueries: ['.onesy-Drawing-palette', '.onesy-Drawing-modal'],
1524
+ includeQueries: ['a[download]', 'svg', 'path']
1525
+ }, /*#__PURE__*/_react.default.createElement(Line, {
1526
+ gap: 2,
1527
+ tonal: tonal,
1528
+ color: refs.props.current.color !== undefined ? refs.props.current.color : 'themed',
1529
+ Component: Surface,
1530
+ className: (0, _styleReact.classNames)([(0, _utils2.staticClassName)('RichTextEditor', theme) && ['onesy-RichTextEditor-palette'], classes.palette])
1531
+ }, /*#__PURE__*/_react.default.createElement(Drawing, (0, _extends2.default)({
1532
+ tonal: tonal,
1533
+ color: refs.props.current.color !== undefined ? refs.props.current.color : 'themed',
1534
+ version: version,
1535
+ svgRef: refs.elements.drawingSvg,
1536
+ SizeProps: {
1537
+ ref: refs.elements.drawingSize
1538
+ },
1539
+ SelectProps: {
1540
+ MenuProps: _objectSpread({
1541
+ ListProps: {
1542
+ ref: refs.elements.drawingSelect
928
1543
  }
929
- refs.root.current = item;
930
- }, gap: 0, Component: Component, className: (0, style_react_1.classNames)([
931
- (0, utils_2.staticClassName)('RichTextEditor', theme) && [
932
- 'onesy-RichTextEditor-root'
933
- ],
934
- className,
935
- classes.root
936
- ]) }, other, { children: [(updates || actions_) && ((0, jsx_runtime_1.jsxs)(Line, Object.assign({ tonal: tonal, color: color, version: version, gap: 0, direction: 'column', align: 'unset', justify: 'unset', Component: Surface }, ToolbarProps, { className: (0, style_react_1.classNames)([
937
- (0, utils_2.staticClassName)('RichTextEditor', theme) && [
938
- 'onesy-RichTextEditor-toolbars'
939
- ],
940
- ToolbarProps === null || ToolbarProps === void 0 ? void 0 : ToolbarProps.className,
941
- classes.toolbars
942
- ]) }, { children: [updates_ && ((0, jsx_runtime_1.jsxs)(Line, Object.assign({ gap: 2, direction: 'row', align: 'center', justify: 'flex-start', role: 'toolbar', "aria-label": l('Updates') }, ToolbarUpdatesProps, { className: (0, style_react_1.classNames)([
943
- (0, utils_2.staticClassName)('RichTextEditor', theme) && [
944
- 'onesy-RichTextEditor-toolbar'
945
- ],
946
- ToolbarUpdatesProps === null || ToolbarUpdatesProps === void 0 ? void 0 : ToolbarUpdatesProps.className,
947
- classes.toolbar,
948
- classes.toolbar_updates
949
- ]) }, { children: [includes('font-family', 'font-size', 'font-version') && ((0, jsx_runtime_1.jsxs)(Line, Object.assign({ gap: 1, direction: 'row', align: 'center', justify: 'flex-start' }, { children: [includes('font-version') && updateElements['font-version'], includes('font-family') && updateElements['font-family'], includes('font-size') && updateElements['font-size']] }))), includes('italic', 'underlined', 'bold', 'strike-line') && ((0, jsx_runtime_1.jsxs)(ToggleButtons, Object.assign({}, ToggleButtonsProps, { children: [includes('italic') && updateElements['italic'], includes('underline') && updateElements['underline'], includes('bold') && updateElements['bold'], includes('strike-line') && updateElements['strike-line']] }))), includes('font-color', 'font-background') && ((0, jsx_runtime_1.jsxs)(ToggleButtons, Object.assign({}, ToggleButtonsProps, { children: [includes('font-color') && updateElements['font-color'], includes('font-background') && updateElements['font-background']] }))), includes('align-left', 'align-center', 'align-right', 'align-justify') && ((0, jsx_runtime_1.jsxs)(ToggleButtons, Object.assign({}, ToggleButtonsProps, { children: [includes('align-left') && updateElements['align-left'], includes('align-center') && updateElements['align-center'], includes('align-right') && updateElements['align-right'], includes('align-justify') && updateElements['align-justify']] }))), includes('indent', 'outdent') && ((0, jsx_runtime_1.jsxs)(ToggleButtons, Object.assign({}, ToggleButtonsProps, { children: [includes('indent') && updateElements['indent'], includes('outdent') && updateElements['outdent']] }))), includes('superscript', 'subscript') && ((0, jsx_runtime_1.jsxs)(ToggleButtons, Object.assign({}, ToggleButtonsProps, { children: [includes('superscript') && updateElements['superscript'], includes('subscript') && updateElements['subscript']] }))), includes('list-ordered', 'list-unordered') && ((0, jsx_runtime_1.jsxs)(ToggleButtons, Object.assign({}, ToggleButtonsProps, { children: [includes('list-ordered') && updateElements['list-ordered'], includes('list-unordered') && updateElements['list-unordered']] }))), includes('horizontal-rule') && ((0, jsx_runtime_1.jsx)(ToggleButtons, Object.assign({}, ToggleButtonsProps, { children: includes('horizontal-rule') && updateElements['horizontal-rule'] }))), includes('link-add', 'link-remove') && ((0, jsx_runtime_1.jsxs)(ToggleButtons, Object.assign({}, ToggleButtonsProps, { children: [includes('link-add') && updateElements['link-add'], includes('link-remove') && updateElements['link-remove']] }))), includes('quote', 'image', 'video', 'video-youtube', 'table', 'drawing', 'code') && ((0, jsx_runtime_1.jsxs)(ToggleButtons, Object.assign({}, ToggleButtonsProps, { children: [includes('quote') && updateElements['quote'], includes('table') && updateElements['table'], includes('image') && updateElements['image'], includes('video') && updateElements['video'], includes('video-youtube') && updateElements['video-youtube'], includes('drawing') && updateElements['drawing'], includes('code') && updateElements['code']] })))] }))), (updates_ && actions_) && ((0, jsx_runtime_1.jsx)(Divider, Object.assign({}, DividerProps, { className: (0, style_react_1.classNames)([
950
- (0, utils_2.staticClassName)('RichTextEditor', theme) && [
951
- 'onesy-RichTextEditor-divider'
952
- ],
953
- DividerProps === null || DividerProps === void 0 ? void 0 : DividerProps.className,
954
- classes.divider,
955
- classes.divider_middle
956
- ]) }))), actions_ && ((0, jsx_runtime_1.jsx)(Line, Object.assign({ gap: 2, direction: 'row', align: 'center', justify: 'flex-start', role: 'toolbar', "aria-label": l('Actions') }, ToolbarActionsProps, { className: (0, style_react_1.classNames)([
957
- (0, utils_2.staticClassName)('RichTextEditor', theme) && [
958
- 'onesy-RichTextEditor-toolbar'
959
- ],
960
- ToolbarActionsProps === null || ToolbarActionsProps === void 0 ? void 0 : ToolbarActionsProps.className,
961
- classes.toolbar,
962
- classes.toolbar_actions
963
- ]) }, { children: (0, jsx_runtime_1.jsxs)(Line, Object.assign({ direction: 'row', align: 'center', justify: 'space-between', style: {
964
- width: '100%'
965
- } }, { children: [(0, jsx_runtime_1.jsx)(Line, Object.assign({ gap: 2, direction: 'row', align: 'center', justify: 'flex-start' }, { children: includes('copy', 'cut', 'paste', 'delete') && ((0, jsx_runtime_1.jsxs)(ToggleButtons, Object.assign({}, ToggleButtonsProps, { children: [includes('copy') && ((0, jsx_runtime_1.jsx)(WrapperToggleButton, Object.assign({ name: l('Copy') }, { children: (0, utils_1.is)('function', render) ? render('copy', ToggleButtonProps, refs.value.current, method) : ((0, jsx_runtime_1.jsx)(ToggleButton, Object.assign({}, ToggleButtonProps, { onClick: method('copy') }, { children: (0, jsx_runtime_1.jsx)(IconCopy, Object.assign({}, IconProps)) }))) }))), includes('cut') && ((0, jsx_runtime_1.jsx)(WrapperToggleButton, Object.assign({ name: l('Cut') }, { children: (0, utils_1.is)('function', render) ? render('cut', ToggleButtonProps, refs.value.current, method) : ((0, jsx_runtime_1.jsx)(ToggleButton, Object.assign({}, ToggleButtonProps, { onClick: method('cut') }, { children: (0, jsx_runtime_1.jsx)(IconCut, Object.assign({}, IconProps)) }))) }))), includes('paste') && ((0, jsx_runtime_1.jsx)(WrapperToggleButton, Object.assign({ name: l('Paste') }, { children: (0, utils_1.is)('function', render) ? render('paste', ToggleButtonProps, refs.value.current, method) : ((0, jsx_runtime_1.jsx)(ToggleButton, Object.assign({}, ToggleButtonProps, { onClick: method('paste') }, { children: (0, jsx_runtime_1.jsx)(IconPaste, Object.assign({}, IconProps)) }))) }))), includes('delete') && ((0, jsx_runtime_1.jsx)(WrapperToggleButton, Object.assign({ name: l('Delete') }, { children: (0, utils_1.is)('function', render) ? render('delete', ToggleButtonProps, refs.value.current, method) : ((0, jsx_runtime_1.jsx)(ToggleButton, Object.assign({}, ToggleButtonProps, { onClick: method('delete') }, { children: (0, jsx_runtime_1.jsx)(IconDelete, Object.assign({}, IconProps)) }))) })))] }))) })), (0, jsx_runtime_1.jsxs)(Line, Object.assign({ gap: 2, direction: 'row', align: 'center', justify: 'flex-start' }, { children: [includes('clear', 'select-all') && ((0, jsx_runtime_1.jsxs)(ToggleButtons, Object.assign({}, ToggleButtonsProps, { children: [includes('clear') && actionElements['clear'], includes('select-all') && ((0, jsx_runtime_1.jsx)(WrapperToggleButton, Object.assign({ name: l('Select All') }, { children: (0, utils_1.is)('function', render) ? render('select-all', ToggleButtonProps, refs.value.current, method) : ((0, jsx_runtime_1.jsx)(ToggleButton, Object.assign({}, ToggleButtonProps, { onClick: method('select-all') }, { children: (0, jsx_runtime_1.jsx)(IconSelectAll, Object.assign({}, IconProps)) }))) })))] }))), includes('undo', 'redo') && ((0, jsx_runtime_1.jsxs)(ToggleButtons, Object.assign({}, ToggleButtonsProps, { children: [includes('undo') && ((0, jsx_runtime_1.jsx)(WrapperToggleButton, Object.assign({ name: l('Undo') }, { children: (0, utils_1.is)('function', render) ? render('undo', ToggleButtonProps, refs.value.current, method) : ((0, jsx_runtime_1.jsx)(ToggleButton, Object.assign({}, ToggleButtonProps, { onClick: method('undo') }, { children: (0, jsx_runtime_1.jsx)(IconUndo, Object.assign({}, IconProps)) }))) }))), includes('redo') && ((0, jsx_runtime_1.jsx)(WrapperToggleButton, Object.assign({ name: l('Redo') }, { children: (0, utils_1.is)('function', render) ? render('redo', ToggleButtonProps, refs.value.current, method) : ((0, jsx_runtime_1.jsx)(ToggleButton, Object.assign({}, ToggleButtonProps, { onClick: method('redo') }, { children: (0, jsx_runtime_1.jsx)(IconRedo, Object.assign({}, IconProps)) }))) })))] }))), includes('save', 'print') && ((0, jsx_runtime_1.jsxs)(ToggleButtons, Object.assign({}, ToggleButtonsProps, { children: [includes('save') && ((0, jsx_runtime_1.jsx)(WrapperToggleButton, Object.assign({ name: l('Save') }, { children: (0, utils_1.is)('function', render) ? render('save', ToggleButtonProps, refs.value.current, method) : ((0, jsx_runtime_1.jsx)(ToggleButton, Object.assign({}, ToggleButtonProps, { onClick: () => (0, utils_2.save)(refs.value.current) }, { children: (0, jsx_runtime_1.jsx)(IconSave, Object.assign({}, IconProps)) }))) }))), includes('print') && ((0, jsx_runtime_1.jsx)(WrapperToggleButton, Object.assign({ name: l('Print') }, { children: (0, utils_1.is)('function', render) ? render('print', ToggleButtonProps, refs.value.current, method) : ((0, jsx_runtime_1.jsx)(ToggleButton, Object.assign({}, ToggleButtonProps, { onClick: () => (0, utils_2.print)(refs.value.current) }, { children: (0, jsx_runtime_1.jsx)(IconPrint, Object.assign({}, IconProps)) }))) })))] })))] }))] })) }))), (0, jsx_runtime_1.jsx)(Divider, Object.assign({}, DividerProps, { className: (0, style_react_1.classNames)([
966
- (0, utils_2.staticClassName)('RichTextEditor', theme) && [
967
- 'onesy-RichTextEditor-divider'
968
- ],
969
- DividerProps === null || DividerProps === void 0 ? void 0 : DividerProps.className,
970
- classes.divider,
971
- classes.divider_end
972
- ]) }))] }))), miniMenu && !!refs.miniMenuInclude.current.length && ((0, jsx_runtime_1.jsx)(Append, Object.assign({ open: selection, element: ({ ref: ref_, values, style }) => ((0, jsx_runtime_1.jsx)("div", Object.assign({ ref: item => {
973
- if (ref_) {
974
- if ((0, utils_1.is)('function', ref_))
975
- ref_(item);
976
- else
977
- ref_.current = item;
978
- refs.miniMenu.current = item;
979
- }
980
- }, style: Object.assign(Object.assign({}, (((values === null || values === void 0 ? void 0 : values.x) === 0 && (values === null || values === void 0 ? void 0 : values.y) === 0) ? {
981
- visibility: 'hidden'
982
- } : undefined)), style) }, { children: (0, jsx_runtime_1.jsx)(Fade, Object.assign({ in: !!selection, add: true }, { children: (0, jsx_runtime_1.jsx)(ClickListener, Object.assign({ onClickOutside: () => {
983
- setSelection('');
984
- }, include: [refs.miniMenu, refs.miniMenu.current, refs.miniMenuElements.colorPalette, refs.miniMenuElements.colorPalette.current, refs.miniMenuElements.backgroundPalette, refs.miniMenuElements.backgroundPalette.current, refs.miniMenuElements.linkAddInput, refs.miniMenuElements.linkAddInput.current] }, { children: (0, jsx_runtime_1.jsxs)(Line, Object.assign({ gap: 2, direction: 'row', align: 'center', justify: 'flex-start', role: 'toolbar', "aria-label": l('Mini menu'), Component: Surface }, MiniMenuProps, { className: (0, style_react_1.classNames)([
985
- (0, utils_2.staticClassName)('RichTextEditor', theme) && [
986
- 'onesy-RichTextEditor-mini-menu'
987
- ],
988
- MiniMenuProps === null || MiniMenuProps === void 0 ? void 0 : MiniMenuProps.className,
989
- classes.miniMenu
990
- ]) }, { children: [includesMinMenu('italic', 'underlined', 'bold', 'strike-line') && ((0, jsx_runtime_1.jsxs)(ToggleButtons, Object.assign({}, ToggleButtonsProps, { children: [includesMinMenu('italic') && updateElements['italic'], includesMinMenu('underline') && updateElements['underline'], includesMinMenu('bold') && updateElements['bold'], includesMinMenu('strike-line') && updateElements['strike-line']] }))), includesMinMenu('font-color', 'font-background') && ((0, jsx_runtime_1.jsxs)(ToggleButtons, Object.assign({}, ToggleButtonsProps, { children: [includesMinMenu('font-color') && updateElements['font-color-mini-menu'], includesMinMenu('font-background') && updateElements['font-background-mini-menu']] }))), includesMinMenu('align-left', 'align-center', 'align-right', 'align-justify') && ((0, jsx_runtime_1.jsxs)(ToggleButtons, Object.assign({}, ToggleButtonsProps, { children: [includesMinMenu('align-left') && updateElements['align-left'], includesMinMenu('align-center') && updateElements['align-center'], includesMinMenu('align-right') && updateElements['align-right'], includesMinMenu('align-justify') && updateElements['align-justify']] }))), includesMinMenu('link-add', 'link-remove') && ((0, jsx_runtime_1.jsxs)(ToggleButtons, Object.assign({}, ToggleButtonsProps, { children: [includesMinMenu('link-add') && updateElements['link-add-mini-menu'], includesMinMenu('link-remove') && updateElements['link-remove']] }))), includesMinMenu('clear') && ((0, jsx_runtime_1.jsx)(ToggleButtons, Object.assign({}, ToggleButtonsProps, { children: includesMinMenu('clear') && actionElements['clear'] })))] })) })) })) }))), anchor: selection, portal: true, alignment: 'center', position: 'bottom', clearOnClose: true }, AppendProps))), (0, jsx_runtime_1.jsx)(Surface, { ref: refs.value, color: 'default', onMouseUp: onMouseUpValue, onMouseDown: onMouseDownValue, onInput: onUpdate, contentEditable: true, className: (0, style_react_1.classNames)([
991
- (0, utils_2.staticClassName)('RichTextEditor', theme) && [
992
- 'onesy-RichTextEditor-value'
993
- ],
994
- classes.value
995
- ]) })] })));
1544
+ }, SelectProps === null || SelectProps === void 0 ? void 0 : SelectProps.MenuProps)
1545
+ },
1546
+ PaletteProps: {
1547
+ ref: refs.elements.drawingPalette
1548
+ }
1549
+ }, DrawingProps)), /*#__PURE__*/_react.default.createElement(Line, {
1550
+ gap: 1,
1551
+ direction: "row",
1552
+ align: "center",
1553
+ justify: "flex-end",
1554
+ style: {
1555
+ width: '100%'
1556
+ }
1557
+ }, /*#__PURE__*/_react.default.createElement(Button, {
1558
+ tonal: tonal,
1559
+ color: "inherit",
1560
+ version: "text",
1561
+ size: "small",
1562
+ onClick: () => {
1563
+ if (refs.range.current) {
1564
+ const selection_ = refs.rootWindow.current.getSelection();
1565
+ selection_.removeAllRanges();
1566
+ selection_.addRange(refs.range.current);
1567
+ }
1568
+
1569
+ // Get svg html element
1570
+ // clone it, remove circle
1571
+ // and add it as outer html
1572
+ // to the rich text editor
1573
+ const svg = refs.elements.drawingSvg.current;
1574
+ const svgClone = svg.cloneNode(true);
1575
+
1576
+ // Clean up
1577
+ svgClone.style.width = refs.inputValues.current.drawingWidth;
1578
+ svgClone.style.height = refs.inputValues.current.drawingHeight;
1579
+ svgClone.style.boxShadow = 'none';
1580
+ const pointers = Array.from(svgClone.querySelectorAll('.onesy-Drawing-pointer'));
1581
+ pointers.forEach(pointer => pointer.remove());
1582
+ const valueNew = svgClone.outerHTML;
1583
+ method('html')(valueNew);
1584
+ updateOpen('drawing', false);
1585
+ }
1586
+ }, l('Add')))))
1587
+ }, /*#__PURE__*/_react.default.createElement(WrapperToggleButton, {
1588
+ name: l('Insert Drawing'),
1589
+ open: refs.open.current.drawing ? false : undefined
1590
+ }, (0, _utils.is)('function', render) ? render('drawing', ToggleButtonProps, refs.value.current, method) : /*#__PURE__*/_react.default.createElement(ToggleButton, (0, _extends2.default)({
1591
+ ref: refs.elements.drawing
1592
+ }, ToggleButtonProps, {
1593
+ selected: refs.open.current.drawing,
1594
+ onClick: () => updateOpen('drawing', !refs.open.current.drawing)
1595
+ }), /*#__PURE__*/_react.default.createElement(IconDrawing, IconProps)))),
1596
+ 'code': /*#__PURE__*/_react.default.createElement(WrapperAppend, {
1597
+ open: refs.open.current.code,
1598
+ anchorElement: refs.elements.code.current,
1599
+ element: /*#__PURE__*/_react.default.createElement(ClickListener, {
1600
+ onClickOutside: () => updateOpen('code', false),
1601
+ include: [refs.elements.code.current]
1602
+ }, /*#__PURE__*/_react.default.createElement(Input, {
1603
+ name: l('Code'),
1604
+ labelButton: l('Add'),
1605
+ value: refs.inputValues.current.code,
1606
+ onChange: valueNew => updateInputValues('code', valueNew),
1607
+ InputProps: {
1608
+ multiline: true
1609
+ },
1610
+ onClick: () => {
1611
+ if (refs.range.current) {
1612
+ const selection_ = refs.rootWindow.current.getSelection();
1613
+ selection_.removeAllRanges();
1614
+ selection_.addRange(refs.range.current);
1615
+ }
1616
+ method('html')(`<pre><code>${refs.inputValues.current.code}</code></pre>`);
1617
+ updateOpen('code', false);
1618
+ updateInputValues('code', '');
1619
+ }
1620
+ }))
1621
+ }, /*#__PURE__*/_react.default.createElement(WrapperToggleButton, {
1622
+ name: l('Insert Code'),
1623
+ open: refs.open.current.code ? false : undefined
1624
+ }, (0, _utils.is)('function', render) ? render('code', ToggleButtonProps, refs.value.current, method) : /*#__PURE__*/_react.default.createElement(ToggleButton, (0, _extends2.default)({
1625
+ ref: refs.elements.code
1626
+ }, ToggleButtonProps, {
1627
+ selected: refs.open.current.code,
1628
+ onClick: () => updateOpen('code', !refs.open.current.code)
1629
+ }), /*#__PURE__*/_react.default.createElement(IconCode, IconProps))))
1630
+ };
1631
+ const actionElements = {
1632
+ 'clear': /*#__PURE__*/_react.default.createElement(WrapperToggleButton, {
1633
+ name: l('Clear')
1634
+ }, (0, _utils.is)('function', render) ? render('clear', ToggleButtonProps, refs.value.current, method) : /*#__PURE__*/_react.default.createElement(ToggleButton, (0, _extends2.default)({}, ToggleButtonProps, {
1635
+ onClick: method('clear')
1636
+ }), /*#__PURE__*/_react.default.createElement(IconClear, IconProps)))
1637
+ };
1638
+ return /*#__PURE__*/_react.default.createElement(Line, (0, _extends2.default)({
1639
+ ref: item => {
1640
+ if (ref) {
1641
+ if ((0, _utils.is)('function', ref)) ref(item);else ref.current = item;
1642
+ }
1643
+ refs.root.current = item;
1644
+ },
1645
+ gap: 0,
1646
+ Component: Component,
1647
+ className: (0, _styleReact.classNames)([(0, _utils2.staticClassName)('RichTextEditor', theme) && ['onesy-RichTextEditor-root'], className, classes.root])
1648
+ }, other), (updates || actions_) && /*#__PURE__*/_react.default.createElement(Line, (0, _extends2.default)({
1649
+ tonal: tonal,
1650
+ color: color,
1651
+ version: version,
1652
+ gap: 0,
1653
+ direction: "column",
1654
+ align: "unset",
1655
+ justify: "unset",
1656
+ Component: Surface
1657
+ }, ToolbarProps, {
1658
+ className: (0, _styleReact.classNames)([(0, _utils2.staticClassName)('RichTextEditor', theme) && ['onesy-RichTextEditor-toolbars'], ToolbarProps === null || ToolbarProps === void 0 ? void 0 : ToolbarProps.className, classes.toolbars])
1659
+ }), updates_ && /*#__PURE__*/_react.default.createElement(Line, (0, _extends2.default)({
1660
+ gap: 2,
1661
+ direction: "row",
1662
+ align: "center",
1663
+ justify: "flex-start",
1664
+ role: "toolbar",
1665
+ "aria-label": l('Updates')
1666
+ }, ToolbarUpdatesProps, {
1667
+ className: (0, _styleReact.classNames)([(0, _utils2.staticClassName)('RichTextEditor', theme) && ['onesy-RichTextEditor-toolbar'], ToolbarUpdatesProps === null || ToolbarUpdatesProps === void 0 ? void 0 : ToolbarUpdatesProps.className, classes.toolbar, classes.toolbar_updates])
1668
+ }), includes('font-family', 'font-size', 'font-version') && /*#__PURE__*/_react.default.createElement(Line, {
1669
+ gap: 1,
1670
+ direction: "row",
1671
+ align: "center",
1672
+ justify: "flex-start"
1673
+ }, includes('font-version') && updateElements['font-version'], includes('font-family') && updateElements['font-family'], includes('font-size') && updateElements['font-size']), includes('italic', 'underlined', 'bold', 'strike-line') && /*#__PURE__*/_react.default.createElement(ToggleButtons, ToggleButtonsProps, includes('italic') && updateElements['italic'], includes('underline') && updateElements['underline'], includes('bold') && updateElements['bold'], includes('strike-line') && updateElements['strike-line']), includes('font-color', 'font-background') && /*#__PURE__*/_react.default.createElement(ToggleButtons, ToggleButtonsProps, includes('font-color') && updateElements['font-color'], includes('font-background') && updateElements['font-background']), includes('align-left', 'align-center', 'align-right', 'align-justify') && /*#__PURE__*/_react.default.createElement(ToggleButtons, ToggleButtonsProps, includes('align-left') && updateElements['align-left'], includes('align-center') && updateElements['align-center'], includes('align-right') && updateElements['align-right'], includes('align-justify') && updateElements['align-justify']), includes('indent', 'outdent') && /*#__PURE__*/_react.default.createElement(ToggleButtons, ToggleButtonsProps, includes('indent') && updateElements['indent'], includes('outdent') && updateElements['outdent']), includes('superscript', 'subscript') && /*#__PURE__*/_react.default.createElement(ToggleButtons, ToggleButtonsProps, includes('superscript') && updateElements['superscript'], includes('subscript') && updateElements['subscript']), includes('list-ordered', 'list-unordered') && /*#__PURE__*/_react.default.createElement(ToggleButtons, ToggleButtonsProps, includes('list-ordered') && updateElements['list-ordered'], includes('list-unordered') && updateElements['list-unordered']), includes('horizontal-rule') && /*#__PURE__*/_react.default.createElement(ToggleButtons, ToggleButtonsProps, includes('horizontal-rule') && updateElements['horizontal-rule']), includes('link-add', 'link-remove') && /*#__PURE__*/_react.default.createElement(ToggleButtons, ToggleButtonsProps, includes('link-add') && updateElements['link-add'], includes('link-remove') && updateElements['link-remove']), includes('quote', 'image', 'video', 'video-youtube', 'table', 'drawing', 'code') && /*#__PURE__*/_react.default.createElement(ToggleButtons, ToggleButtonsProps, includes('quote') && updateElements['quote'], includes('table') && updateElements['table'], includes('image') && updateElements['image'], includes('video') && updateElements['video'], includes('video-youtube') && updateElements['video-youtube'], includes('drawing') && updateElements['drawing'], includes('code') && updateElements['code'])), updates_ && actions_ && /*#__PURE__*/_react.default.createElement(Divider, (0, _extends2.default)({}, DividerProps, {
1674
+ className: (0, _styleReact.classNames)([(0, _utils2.staticClassName)('RichTextEditor', theme) && ['onesy-RichTextEditor-divider'], DividerProps === null || DividerProps === void 0 ? void 0 : DividerProps.className, classes.divider, classes.divider_middle])
1675
+ })), actions_ && /*#__PURE__*/_react.default.createElement(Line, (0, _extends2.default)({
1676
+ gap: 2,
1677
+ direction: "row",
1678
+ align: "center",
1679
+ justify: "flex-start",
1680
+ role: "toolbar",
1681
+ "aria-label": l('Actions')
1682
+ }, ToolbarActionsProps, {
1683
+ className: (0, _styleReact.classNames)([(0, _utils2.staticClassName)('RichTextEditor', theme) && ['onesy-RichTextEditor-toolbar'], ToolbarActionsProps === null || ToolbarActionsProps === void 0 ? void 0 : ToolbarActionsProps.className, classes.toolbar, classes.toolbar_actions])
1684
+ }), /*#__PURE__*/_react.default.createElement(Line, {
1685
+ direction: "row",
1686
+ align: "center",
1687
+ justify: "space-between",
1688
+ style: {
1689
+ width: '100%'
1690
+ }
1691
+ }, /*#__PURE__*/_react.default.createElement(Line, {
1692
+ gap: 2,
1693
+ direction: "row",
1694
+ align: "center",
1695
+ justify: "flex-start"
1696
+ }, includes('copy', 'cut', 'paste', 'delete') && /*#__PURE__*/_react.default.createElement(ToggleButtons, ToggleButtonsProps, includes('copy') && /*#__PURE__*/_react.default.createElement(WrapperToggleButton, {
1697
+ name: l('Copy')
1698
+ }, (0, _utils.is)('function', render) ? render('copy', ToggleButtonProps, refs.value.current, method) : /*#__PURE__*/_react.default.createElement(ToggleButton, (0, _extends2.default)({}, ToggleButtonProps, {
1699
+ onClick: method('copy')
1700
+ }), /*#__PURE__*/_react.default.createElement(IconCopy, IconProps))), includes('cut') && /*#__PURE__*/_react.default.createElement(WrapperToggleButton, {
1701
+ name: l('Cut')
1702
+ }, (0, _utils.is)('function', render) ? render('cut', ToggleButtonProps, refs.value.current, method) : /*#__PURE__*/_react.default.createElement(ToggleButton, (0, _extends2.default)({}, ToggleButtonProps, {
1703
+ onClick: method('cut')
1704
+ }), /*#__PURE__*/_react.default.createElement(IconCut, IconProps))), includes('paste') && /*#__PURE__*/_react.default.createElement(WrapperToggleButton, {
1705
+ name: l('Paste')
1706
+ }, (0, _utils.is)('function', render) ? render('paste', ToggleButtonProps, refs.value.current, method) : /*#__PURE__*/_react.default.createElement(ToggleButton, (0, _extends2.default)({}, ToggleButtonProps, {
1707
+ onClick: method('paste')
1708
+ }), /*#__PURE__*/_react.default.createElement(IconPaste, IconProps))), includes('delete') && /*#__PURE__*/_react.default.createElement(WrapperToggleButton, {
1709
+ name: l('Delete')
1710
+ }, (0, _utils.is)('function', render) ? render('delete', ToggleButtonProps, refs.value.current, method) : /*#__PURE__*/_react.default.createElement(ToggleButton, (0, _extends2.default)({}, ToggleButtonProps, {
1711
+ onClick: method('delete')
1712
+ }), /*#__PURE__*/_react.default.createElement(IconDelete, IconProps))))), /*#__PURE__*/_react.default.createElement(Line, {
1713
+ gap: 2,
1714
+ direction: "row",
1715
+ align: "center",
1716
+ justify: "flex-start"
1717
+ }, includes('clear', 'select-all') && /*#__PURE__*/_react.default.createElement(ToggleButtons, ToggleButtonsProps, includes('clear') && actionElements['clear'], includes('select-all') && /*#__PURE__*/_react.default.createElement(WrapperToggleButton, {
1718
+ name: l('Select All')
1719
+ }, (0, _utils.is)('function', render) ? render('select-all', ToggleButtonProps, refs.value.current, method) : /*#__PURE__*/_react.default.createElement(ToggleButton, (0, _extends2.default)({}, ToggleButtonProps, {
1720
+ onClick: method('select-all')
1721
+ }), /*#__PURE__*/_react.default.createElement(IconSelectAll, IconProps)))), includes('undo', 'redo') && /*#__PURE__*/_react.default.createElement(ToggleButtons, ToggleButtonsProps, includes('undo') && /*#__PURE__*/_react.default.createElement(WrapperToggleButton, {
1722
+ name: l('Undo')
1723
+ }, (0, _utils.is)('function', render) ? render('undo', ToggleButtonProps, refs.value.current, method) : /*#__PURE__*/_react.default.createElement(ToggleButton, (0, _extends2.default)({}, ToggleButtonProps, {
1724
+ onClick: method('undo')
1725
+ }), /*#__PURE__*/_react.default.createElement(IconUndo, IconProps))), includes('redo') && /*#__PURE__*/_react.default.createElement(WrapperToggleButton, {
1726
+ name: l('Redo')
1727
+ }, (0, _utils.is)('function', render) ? render('redo', ToggleButtonProps, refs.value.current, method) : /*#__PURE__*/_react.default.createElement(ToggleButton, (0, _extends2.default)({}, ToggleButtonProps, {
1728
+ onClick: method('redo')
1729
+ }), /*#__PURE__*/_react.default.createElement(IconRedo, IconProps)))), includes('save', 'print') && /*#__PURE__*/_react.default.createElement(ToggleButtons, ToggleButtonsProps, includes('save') && /*#__PURE__*/_react.default.createElement(WrapperToggleButton, {
1730
+ name: l('Save')
1731
+ }, (0, _utils.is)('function', render) ? render('save', ToggleButtonProps, refs.value.current, method) : /*#__PURE__*/_react.default.createElement(ToggleButton, (0, _extends2.default)({}, ToggleButtonProps, {
1732
+ onClick: () => (0, _utils2.save)(refs.value.current)
1733
+ }), /*#__PURE__*/_react.default.createElement(IconSave, IconProps))), includes('print') && /*#__PURE__*/_react.default.createElement(WrapperToggleButton, {
1734
+ name: l('Print')
1735
+ }, (0, _utils.is)('function', render) ? render('print', ToggleButtonProps, refs.value.current, method) : /*#__PURE__*/_react.default.createElement(ToggleButton, (0, _extends2.default)({}, ToggleButtonProps, {
1736
+ onClick: () => (0, _utils2.print)(refs.value.current)
1737
+ }), /*#__PURE__*/_react.default.createElement(IconPrint, IconProps))))))), /*#__PURE__*/_react.default.createElement(Divider, (0, _extends2.default)({}, DividerProps, {
1738
+ className: (0, _styleReact.classNames)([(0, _utils2.staticClassName)('RichTextEditor', theme) && ['onesy-RichTextEditor-divider'], DividerProps === null || DividerProps === void 0 ? void 0 : DividerProps.className, classes.divider, classes.divider_end])
1739
+ }))), miniMenu && !!refs.miniMenuInclude.current.length && /*#__PURE__*/_react.default.createElement(Append, (0, _extends2.default)({
1740
+ open: selection,
1741
+ element: ({
1742
+ ref: ref_,
1743
+ values,
1744
+ style
1745
+ }) => /*#__PURE__*/_react.default.createElement("div", {
1746
+ ref: item => {
1747
+ if (ref_) {
1748
+ if ((0, _utils.is)('function', ref_)) ref_(item);else ref_.current = item;
1749
+ refs.miniMenu.current = item;
1750
+ }
1751
+ },
1752
+ style: _objectSpread(_objectSpread({}, (values === null || values === void 0 ? void 0 : values.x) === 0 && (values === null || values === void 0 ? void 0 : values.y) === 0 ? {
1753
+ visibility: 'hidden'
1754
+ } : undefined), style)
1755
+ }, /*#__PURE__*/_react.default.createElement(Fade, {
1756
+ in: !!selection,
1757
+ add: true
1758
+ }, /*#__PURE__*/_react.default.createElement(ClickListener, {
1759
+ onClickOutside: () => {
1760
+ setSelection('');
1761
+ },
1762
+ include: [refs.miniMenu, refs.miniMenu.current, refs.miniMenuElements.colorPalette, refs.miniMenuElements.colorPalette.current, refs.miniMenuElements.backgroundPalette, refs.miniMenuElements.backgroundPalette.current, refs.miniMenuElements.linkAddInput, refs.miniMenuElements.linkAddInput.current]
1763
+ }, /*#__PURE__*/_react.default.createElement(Line, (0, _extends2.default)({
1764
+ gap: 2,
1765
+ direction: "row",
1766
+ align: "center",
1767
+ justify: "flex-start",
1768
+ role: "toolbar",
1769
+ "aria-label": l('Mini menu'),
1770
+ Component: Surface
1771
+ }, MiniMenuProps, {
1772
+ className: (0, _styleReact.classNames)([(0, _utils2.staticClassName)('RichTextEditor', theme) && ['onesy-RichTextEditor-mini-menu'], MiniMenuProps === null || MiniMenuProps === void 0 ? void 0 : MiniMenuProps.className, classes.miniMenu])
1773
+ }), includesMinMenu('italic', 'underlined', 'bold', 'strike-line') && /*#__PURE__*/_react.default.createElement(ToggleButtons, ToggleButtonsProps, includesMinMenu('italic') && updateElements['italic'], includesMinMenu('underline') && updateElements['underline'], includesMinMenu('bold') && updateElements['bold'], includesMinMenu('strike-line') && updateElements['strike-line']), includesMinMenu('font-color', 'font-background') && /*#__PURE__*/_react.default.createElement(ToggleButtons, ToggleButtonsProps, includesMinMenu('font-color') && updateElements['font-color-mini-menu'], includesMinMenu('font-background') && updateElements['font-background-mini-menu']), includesMinMenu('align-left', 'align-center', 'align-right', 'align-justify') && /*#__PURE__*/_react.default.createElement(ToggleButtons, ToggleButtonsProps, includesMinMenu('align-left') && updateElements['align-left'], includesMinMenu('align-center') && updateElements['align-center'], includesMinMenu('align-right') && updateElements['align-right'], includesMinMenu('align-justify') && updateElements['align-justify']), includesMinMenu('link-add', 'link-remove') && /*#__PURE__*/_react.default.createElement(ToggleButtons, ToggleButtonsProps, includesMinMenu('link-add') && updateElements['link-add-mini-menu'], includesMinMenu('link-remove') && updateElements['link-remove']), includesMinMenu('clear') && /*#__PURE__*/_react.default.createElement(ToggleButtons, ToggleButtonsProps, includesMinMenu('clear') && actionElements['clear']))))),
1774
+ anchor: selection,
1775
+ portal: true,
1776
+ alignment: "center",
1777
+ position: "bottom",
1778
+ clearOnClose: true
1779
+ }, AppendProps)), /*#__PURE__*/_react.default.createElement(Surface, {
1780
+ ref: refs.value,
1781
+ color: "default",
1782
+ onMouseUp: onMouseUpValue,
1783
+ onMouseDown: onMouseDownValue,
1784
+ onInput: onUpdate,
1785
+ contentEditable: true,
1786
+ className: (0, _styleReact.classNames)([(0, _utils2.staticClassName)('RichTextEditor', theme) && ['onesy-RichTextEditor-value'], classes.value])
1787
+ }));
996
1788
  });
997
1789
  RichTextEditor.displayName = 'onesy-RichTextEditor';
998
- exports.default = RichTextEditor;
1790
+ var _default = exports.default = RichTextEditor;