@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,1029 +1,1421 @@
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 IconMaterialFormatAlignLeftW100_1 = __importDefault(require("@onesy/icons-material-rounded-react/IconMaterialFormatAlignLeftW100"));
22
- const IconMaterialFormatAlignCenterW100_1 = __importDefault(require("@onesy/icons-material-rounded-react/IconMaterialFormatAlignCenterW100"));
23
- const IconMaterialFormatAlignRightW100_1 = __importDefault(require("@onesy/icons-material-rounded-react/IconMaterialFormatAlignRightW100"));
24
- const IconMaterialFormatAlignJustifyW100_1 = __importDefault(require("@onesy/icons-material-rounded-react/IconMaterialFormatAlignJustifyW100"));
25
- const IconMaterialFormatColorTextW100_1 = __importDefault(require("@onesy/icons-material-rounded-react/IconMaterialFormatColorTextW100"));
26
- const IconMaterialFormatColorFillW100_1 = __importDefault(require("@onesy/icons-material-rounded-react/IconMaterialFormatColorFillW100"));
27
- const IconMaterialFormatListNumberedW100_1 = __importDefault(require("@onesy/icons-material-rounded-react/IconMaterialFormatListNumberedW100"));
28
- const IconMaterialFormatListBulletedW100_1 = __importDefault(require("@onesy/icons-material-rounded-react/IconMaterialFormatListBulletedW100"));
29
- const IconMaterialSuperscriptW100_1 = __importDefault(require("@onesy/icons-material-rounded-react/IconMaterialSuperscriptW100"));
30
- const IconMaterialSubscriptW100_1 = __importDefault(require("@onesy/icons-material-rounded-react/IconMaterialSubscriptW100"));
31
- const IconMaterialFormatItalicW100_1 = __importDefault(require("@onesy/icons-material-rounded-react/IconMaterialFormatItalicW100"));
32
- const IconMaterialFormatUnderlinedW100_1 = __importDefault(require("@onesy/icons-material-rounded-react/IconMaterialFormatUnderlinedW100"));
33
- const IconMaterialStrikethroughSW100_1 = __importDefault(require("@onesy/icons-material-rounded-react/IconMaterialStrikethroughSW100"));
34
- const IconMaterialFormatBoldW100_1 = __importDefault(require("@onesy/icons-material-rounded-react/IconMaterialFormatBoldW100"));
35
- const IconMaterialAddLinkW100_1 = __importDefault(require("@onesy/icons-material-rounded-react/IconMaterialAddLinkW100"));
36
- const IconMaterialLinkOffW100_1 = __importDefault(require("@onesy/icons-material-rounded-react/IconMaterialLinkOffW100"));
37
- const IconMaterialFormatClearW100_1 = __importDefault(require("@onesy/icons-material-rounded-react/IconMaterialFormatClearW100"));
38
- const ColorTextField_1 = __importDefault(require("../ColorTextField"));
39
- const TextField_1 = __importDefault(require("../TextField/TextField"));
40
- const Line_1 = __importDefault(require("../Line"));
41
- const List_1 = __importDefault(require("../List"));
42
- const ListItem_1 = __importDefault(require("../ListItem"));
43
- const Avatar_1 = __importDefault(require("../Avatar"));
44
- const Type_1 = __importDefault(require("../Type"));
45
- const Surface_1 = __importDefault(require("../Surface"));
46
- const Button_1 = __importDefault(require("../Button"));
47
- const Append_1 = __importDefault(require("../Append"));
48
- const Fade_1 = __importDefault(require("../Fade"));
49
- const Tooltip_1 = __importDefault(require("../Tooltip"));
50
- const ToggleButton_1 = __importDefault(require("../ToggleButton"));
51
- const ClickListener_1 = __importDefault(require("../ClickListener"));
52
- const ToggleButtons_1 = __importDefault(require("../ToggleButtons"));
53
- const Menu_1 = __importDefault(require("../Menu"));
54
- const Divider_1 = __importDefault(require("../Divider"));
55
- const utils_2 = require("../utils");
56
- const useStyle = (0, style_react_1.style)(theme => ({
57
- root: {
58
- minHeight: '20px',
59
- width: '100%',
60
- '& .onesy-TextField-input': Object.assign({ wordBreak: 'break-word', color: theme.methods.palette.color.value('primary', 10) }, theme.typography.values.b2),
61
- '& ul, & ol': {
62
- listStylePosition: 'inside'
63
- }
64
- },
65
- root_type: {
66
- minHeight: '20px',
67
- width: '100%',
68
- cursor: 'text',
69
- '& .onesy-TextField-input': Object.assign({ wordBreak: 'break-word', color: theme.methods.palette.color.value('primary', 10) }, theme.typography.values.b2),
70
- '& ul, & ol': {
71
- listStylePosition: 'inside'
72
- }
73
- },
74
- menu: {
75
- width: '100vw',
76
- maxWidth: '240px',
77
- borderRadius: theme.methods.shape.radius.value(2.5),
78
- boxShadow: '0px 4px 32px 0px rgba(0, 0, 0, 0.04)',
79
- background: theme.palette.light ? theme.palette.color.neutral[99] : theme.palette.color.neutral[20]
80
- },
81
- list: {
82
- maxHeight: '240px',
83
- overflow: 'hidden auto'
84
- },
85
- textMiniMenuWrapper: {
86
- paddingBlock: theme.methods.space.value(1, 'px')
87
- },
88
- textMiniMenu: {
89
- padding: theme.methods.space.value(1.5, 'px'),
90
- borderRadius: theme.methods.shape.radius.value(140, 'px'),
91
- boxShadow: theme.shadows.values.default[2],
92
- maxWidth: 'calc(100vw - 24px)',
93
- rowGap: '4px'
94
- },
95
- textMiniMenuAdditionalMenu: {
96
- minWidth: 'clamp(140px, 90%, 250px)',
97
- zIndex: '1514',
98
- boxShadow: theme.shadows.values.default[2]
99
- },
100
- inputWrapper: {
101
- padding: theme.methods.space.value(1, 'px'),
102
- borderRadius: theme.methods.shape.radius.value(1, 'px'),
103
- boxShadow: theme.shadows.values.default[2]
104
- },
105
- singleLine: {
106
- whiteSpace: 'nowrap',
107
- overflow: 'hidden'
108
- },
109
- input: {
110
- '&.onesy-TextField-root': {
111
- flex: '1 1 auto !important'
112
- }
113
- },
114
- palette: {
115
- padding: theme.methods.space.value(1.5, 'px'),
116
- borderRadius: theme.methods.shape.radius.value(1, 'px'),
117
- boxShadow: theme.shadows.values.default[2]
118
- },
119
- paletteItem: {
120
- position: 'relative',
121
- width: '17px',
122
- height: '17px',
123
- cursor: 'pointer',
124
- borderRadius: theme.methods.shape.radius.value(40, 'px'),
125
- boxShadow: theme.shadows.values.default[1],
126
- transition: theme.methods.transitions.make('box-shadow'),
127
- '&:hover': {
128
- boxShadow: theme.shadows.values.default[2],
129
- }
130
- },
131
- textFieldColor: {
132
- '&.onesy-ColorTextField-root': {
133
- flex: '1 1 auto'
134
- }
135
- },
136
- helperText: {
137
- display: 'inline-flex',
138
- color: theme.palette.text.default.secondary,
139
- userSelect: 'none'
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 _IconMaterialFormatAlignLeftW = _interopRequireDefault(require("@onesy/icons-material-rounded-react/IconMaterialFormatAlignLeftW100"));
15
+ var _IconMaterialFormatAlignCenterW = _interopRequireDefault(require("@onesy/icons-material-rounded-react/IconMaterialFormatAlignCenterW100"));
16
+ var _IconMaterialFormatAlignRightW = _interopRequireDefault(require("@onesy/icons-material-rounded-react/IconMaterialFormatAlignRightW100"));
17
+ var _IconMaterialFormatAlignJustifyW = _interopRequireDefault(require("@onesy/icons-material-rounded-react/IconMaterialFormatAlignJustifyW100"));
18
+ var _IconMaterialFormatColorTextW = _interopRequireDefault(require("@onesy/icons-material-rounded-react/IconMaterialFormatColorTextW100"));
19
+ var _IconMaterialFormatColorFillW = _interopRequireDefault(require("@onesy/icons-material-rounded-react/IconMaterialFormatColorFillW100"));
20
+ var _IconMaterialFormatListNumberedW = _interopRequireDefault(require("@onesy/icons-material-rounded-react/IconMaterialFormatListNumberedW100"));
21
+ var _IconMaterialFormatListBulletedW = _interopRequireDefault(require("@onesy/icons-material-rounded-react/IconMaterialFormatListBulletedW100"));
22
+ var _IconMaterialSuperscriptW = _interopRequireDefault(require("@onesy/icons-material-rounded-react/IconMaterialSuperscriptW100"));
23
+ var _IconMaterialSubscriptW = _interopRequireDefault(require("@onesy/icons-material-rounded-react/IconMaterialSubscriptW100"));
24
+ var _IconMaterialFormatItalicW = _interopRequireDefault(require("@onesy/icons-material-rounded-react/IconMaterialFormatItalicW100"));
25
+ var _IconMaterialFormatUnderlinedW = _interopRequireDefault(require("@onesy/icons-material-rounded-react/IconMaterialFormatUnderlinedW100"));
26
+ var _IconMaterialStrikethroughSW = _interopRequireDefault(require("@onesy/icons-material-rounded-react/IconMaterialStrikethroughSW100"));
27
+ var _IconMaterialFormatBoldW = _interopRequireDefault(require("@onesy/icons-material-rounded-react/IconMaterialFormatBoldW100"));
28
+ var _IconMaterialAddLinkW = _interopRequireDefault(require("@onesy/icons-material-rounded-react/IconMaterialAddLinkW100"));
29
+ var _IconMaterialLinkOffW = _interopRequireDefault(require("@onesy/icons-material-rounded-react/IconMaterialLinkOffW100"));
30
+ var _IconMaterialFormatClearW = _interopRequireDefault(require("@onesy/icons-material-rounded-react/IconMaterialFormatClearW100"));
31
+ var _ColorTextField = _interopRequireDefault(require("../ColorTextField"));
32
+ var _TextField = _interopRequireDefault(require("../TextField/TextField"));
33
+ var _Line = _interopRequireDefault(require("../Line"));
34
+ var _List = _interopRequireDefault(require("../List"));
35
+ var _ListItem = _interopRequireDefault(require("../ListItem"));
36
+ var _Avatar = _interopRequireDefault(require("../Avatar"));
37
+ var _Type = _interopRequireDefault(require("../Type"));
38
+ var _Surface = _interopRequireDefault(require("../Surface"));
39
+ var _Button = _interopRequireDefault(require("../Button"));
40
+ var _Append = _interopRequireDefault(require("../Append"));
41
+ var _Fade = _interopRequireDefault(require("../Fade"));
42
+ var _Tooltip = _interopRequireDefault(require("../Tooltip"));
43
+ var _ToggleButton = _interopRequireDefault(require("../ToggleButton"));
44
+ var _ClickListener = _interopRequireDefault(require("../ClickListener"));
45
+ var _ToggleButtons = _interopRequireDefault(require("../ToggleButtons"));
46
+ var _Menu = _interopRequireDefault(require("../Menu"));
47
+ var _Divider = _interopRequireDefault(require("../Divider"));
48
+ var _utils2 = require("../utils");
49
+ const _excluded = ["tonal", "color", "version", "size", "valueDefault", "value", "inputProps", "onChange", "error", "name", "placeholder", "edit", "mention", "multiline", "onChangeMention", "optionsMention", "error", "helperText", "mentionLabel", "onKeyDown", "pasteText", "readOnly", "additional", "miniMenuExtended", "HelperTextProps", "ColorTextFieldProps", "className"],
50
+ _excluded2 = ["color"],
51
+ _excluded3 = ["version", "onUpdate", "onClose"],
52
+ _excluded4 = ["label", "labelButton", "value", "onChange", "onClick", "placeholder", "InputComponent", "InputProps"],
53
+ _excluded5 = ["open", "element", "anchorElement", "onClose", "children"],
54
+ _excluded6 = ["open", "name", "children"];
55
+ 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; }
56
+ 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; }
57
+ const useStyle = (0, _styleReact.style)(theme => ({
58
+ root: {
59
+ minHeight: '20px',
60
+ width: '100%',
61
+ '& .onesy-TextField-input': _objectSpread({
62
+ wordBreak: 'break-word',
63
+ color: theme.methods.palette.color.value('primary', 10)
64
+ }, theme.typography.values.b2),
65
+ '& ul, & ol': {
66
+ listStylePosition: 'inside'
67
+ }
68
+ },
69
+ root_type: {
70
+ minHeight: '20px',
71
+ width: '100%',
72
+ cursor: 'text',
73
+ '& .onesy-TextField-input': _objectSpread({
74
+ wordBreak: 'break-word',
75
+ color: theme.methods.palette.color.value('primary', 10)
76
+ }, theme.typography.values.b2),
77
+ '& ul, & ol': {
78
+ listStylePosition: 'inside'
79
+ }
80
+ },
81
+ menu: {
82
+ width: '100vw',
83
+ maxWidth: '240px',
84
+ borderRadius: theme.methods.shape.radius.value(2.5),
85
+ boxShadow: '0px 4px 32px 0px rgba(0, 0, 0, 0.04)',
86
+ background: theme.palette.light ? theme.palette.color.neutral[99] : theme.palette.color.neutral[20]
87
+ },
88
+ list: {
89
+ maxHeight: '240px',
90
+ overflow: 'hidden auto'
91
+ },
92
+ textMiniMenuWrapper: {
93
+ paddingBlock: theme.methods.space.value(1, 'px')
94
+ },
95
+ textMiniMenu: {
96
+ padding: theme.methods.space.value(1.5, 'px'),
97
+ borderRadius: theme.methods.shape.radius.value(140, 'px'),
98
+ boxShadow: theme.shadows.values.default[2],
99
+ maxWidth: 'calc(100vw - 24px)',
100
+ rowGap: '4px'
101
+ },
102
+ textMiniMenuAdditionalMenu: {
103
+ minWidth: 'clamp(140px, 90%, 250px)',
104
+ zIndex: '1514',
105
+ boxShadow: theme.shadows.values.default[2]
106
+ },
107
+ inputWrapper: {
108
+ padding: theme.methods.space.value(1, 'px'),
109
+ borderRadius: theme.methods.shape.radius.value(1, 'px'),
110
+ boxShadow: theme.shadows.values.default[2]
111
+ },
112
+ singleLine: {
113
+ whiteSpace: 'nowrap',
114
+ overflow: 'hidden'
115
+ },
116
+ input: {
117
+ '&.onesy-TextField-root': {
118
+ flex: '1 1 auto !important'
119
+ }
120
+ },
121
+ palette: {
122
+ padding: theme.methods.space.value(1.5, 'px'),
123
+ borderRadius: theme.methods.shape.radius.value(1, 'px'),
124
+ boxShadow: theme.shadows.values.default[2]
125
+ },
126
+ paletteItem: {
127
+ position: 'relative',
128
+ width: '17px',
129
+ height: '17px',
130
+ cursor: 'pointer',
131
+ borderRadius: theme.methods.shape.radius.value(40, 'px'),
132
+ boxShadow: theme.shadows.values.default[1],
133
+ transition: theme.methods.transitions.make('box-shadow'),
134
+ '&:hover': {
135
+ boxShadow: theme.shadows.values.default[2]
136
+ }
137
+ },
138
+ textFieldColor: {
139
+ '&.onesy-ColorTextField-root': {
140
+ flex: '1 1 auto'
141
+ }
142
+ },
143
+ helperText: {
144
+ display: 'inline-flex',
145
+ color: theme.palette.text.default.secondary,
146
+ userSelect: 'none'
147
+ },
148
+ error_color: {
149
+ color: [theme.palette.light ? theme.palette.color.error[40] : theme.palette.color.error[80], '!important']
150
+ },
151
+ error_hover_color: {
152
+ color: [theme.palette.light ? theme.palette.color.error[20] : theme.palette.color.error[90], '!important']
153
+ }
154
+ }), {
155
+ name: 'onesy-SmartTextField'
156
+ });
157
+ const SmartTextField = /*#__PURE__*/_react.default.forwardRef((props_, ref) => {
158
+ var _refs$root$current;
159
+ const theme = (0, _styleReact.useOnesyTheme)();
160
+ const l = theme.l;
161
+ const props = _react.default.useMemo(() => {
162
+ var _theme$ui, _theme$ui2;
163
+ 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.onesySmartTextField) === null || _theme$ui2 === void 0 || (_theme$ui2 = _theme$ui2.props) === null || _theme$ui2 === void 0 ? void 0 : _theme$ui2.default), props_);
164
+ }, [props_]);
165
+ const Line = _react.default.useMemo(() => {
166
+ var _theme$elements;
167
+ return (theme === null || theme === void 0 || (_theme$elements = theme.elements) === null || _theme$elements === void 0 ? void 0 : _theme$elements.Line) || _Line.default;
168
+ }, [theme]);
169
+ const TextField = _react.default.useMemo(() => {
170
+ var _theme$elements2;
171
+ return (theme === null || theme === void 0 || (_theme$elements2 = theme.elements) === null || _theme$elements2 === void 0 ? void 0 : _theme$elements2.TextField) || _TextField.default;
172
+ }, [theme]);
173
+ const List = _react.default.useMemo(() => {
174
+ var _theme$elements3;
175
+ return (theme === null || theme === void 0 || (_theme$elements3 = theme.elements) === null || _theme$elements3 === void 0 ? void 0 : _theme$elements3.List) || _List.default;
176
+ }, [theme]);
177
+ const ListItem = _react.default.useMemo(() => {
178
+ var _theme$elements4;
179
+ return (theme === null || theme === void 0 || (_theme$elements4 = theme.elements) === null || _theme$elements4 === void 0 ? void 0 : _theme$elements4.ListItem) || _ListItem.default;
180
+ }, [theme]);
181
+ const Avatar = _react.default.useMemo(() => {
182
+ var _theme$elements5;
183
+ return (theme === null || theme === void 0 || (_theme$elements5 = theme.elements) === null || _theme$elements5 === void 0 ? void 0 : _theme$elements5.Avatar) || _Avatar.default;
184
+ }, [theme]);
185
+ const Type = _react.default.useMemo(() => {
186
+ var _theme$elements6;
187
+ return (theme === null || theme === void 0 || (_theme$elements6 = theme.elements) === null || _theme$elements6 === void 0 ? void 0 : _theme$elements6.Type) || _Type.default;
188
+ }, [theme]);
189
+ const Surface = _react.default.useMemo(() => {
190
+ var _theme$elements7;
191
+ return (theme === null || theme === void 0 || (_theme$elements7 = theme.elements) === null || _theme$elements7 === void 0 ? void 0 : _theme$elements7.Surface) || _Surface.default;
192
+ }, [theme]);
193
+ const Button = _react.default.useMemo(() => {
194
+ var _theme$elements8;
195
+ return (theme === null || theme === void 0 || (_theme$elements8 = theme.elements) === null || _theme$elements8 === void 0 ? void 0 : _theme$elements8.Button) || _Button.default;
196
+ }, [theme]);
197
+ const Append = _react.default.useMemo(() => {
198
+ var _theme$elements9;
199
+ return (theme === null || theme === void 0 || (_theme$elements9 = theme.elements) === null || _theme$elements9 === void 0 ? void 0 : _theme$elements9.Append) || _Append.default;
200
+ }, [theme]);
201
+ const Fade = _react.default.useMemo(() => {
202
+ var _theme$elements0;
203
+ return (theme === null || theme === void 0 || (_theme$elements0 = theme.elements) === null || _theme$elements0 === void 0 ? void 0 : _theme$elements0.Fade) || _Fade.default;
204
+ }, [theme]);
205
+ const Tooltip = _react.default.useMemo(() => {
206
+ var _theme$elements1;
207
+ return (theme === null || theme === void 0 || (_theme$elements1 = theme.elements) === null || _theme$elements1 === void 0 ? void 0 : _theme$elements1.Tooltip) || _Tooltip.default;
208
+ }, [theme]);
209
+ const ToggleButton = _react.default.useMemo(() => {
210
+ var _theme$elements10;
211
+ return (theme === null || theme === void 0 || (_theme$elements10 = theme.elements) === null || _theme$elements10 === void 0 ? void 0 : _theme$elements10.ToggleButton) || _ToggleButton.default;
212
+ }, [theme]);
213
+ const ClickListener = _react.default.useMemo(() => {
214
+ var _theme$elements11;
215
+ return (theme === null || theme === void 0 || (_theme$elements11 = theme.elements) === null || _theme$elements11 === void 0 ? void 0 : _theme$elements11.ClickListener) || _ClickListener.default;
216
+ }, [theme]);
217
+ const ToggleButtons = _react.default.useMemo(() => {
218
+ var _theme$elements12;
219
+ return (theme === null || theme === void 0 || (_theme$elements12 = theme.elements) === null || _theme$elements12 === void 0 ? void 0 : _theme$elements12.ToggleButtons) || _ToggleButtons.default;
220
+ }, [theme]);
221
+ const Menu = _react.default.useMemo(() => {
222
+ var _theme$elements13;
223
+ return (theme === null || theme === void 0 || (_theme$elements13 = theme.elements) === null || _theme$elements13 === void 0 ? void 0 : _theme$elements13.Menu) || _Menu.default;
224
+ }, [theme]);
225
+ const Divider = _react.default.useMemo(() => {
226
+ var _theme$elements14;
227
+ return (theme === null || theme === void 0 || (_theme$elements14 = theme.elements) === null || _theme$elements14 === void 0 ? void 0 : _theme$elements14.Divider) || _Divider.default;
228
+ }, [theme]);
229
+ const ColorTextField = _react.default.useMemo(() => {
230
+ var _theme$elements15;
231
+ return (theme === null || theme === void 0 || (_theme$elements15 = theme.elements) === null || _theme$elements15 === void 0 ? void 0 : _theme$elements15.ColorTextField) || _ColorTextField.default;
232
+ }, [theme]);
233
+ const {
234
+ tonal = true,
235
+ color = 'default',
236
+ version = 'text',
237
+ size = 'regular',
238
+ valueDefault,
239
+ value: value_,
240
+ inputProps,
241
+ onChange,
242
+ error: error_,
243
+ name,
244
+ placeholder,
245
+ edit,
246
+ mention,
247
+ multiline,
248
+ onChangeMention,
249
+ optionsMention: optionsMention_,
250
+ error,
251
+ helperText,
252
+ mentionLabel,
253
+ onKeyDown: onKeyDown_,
254
+ pasteText = true,
255
+ readOnly,
256
+ additional,
257
+ miniMenuExtended,
258
+ HelperTextProps,
259
+ ColorTextFieldProps,
260
+ className
261
+ } = props,
262
+ other = (0, _objectWithoutProperties2.default)(props, _excluded);
263
+ const {
264
+ classes
265
+ } = useStyle();
266
+ const [value, setValue] = _react.default.useState(valueDefault || '');
267
+ const [openMenu, setOpenMenu] = _react.default.useState(false);
268
+ const [offset, setOffset] = _react.default.useState([0, 8]);
269
+ const [selectionMenu, setSelectionMenu] = _react.default.useState();
270
+ const [optionsMention, setOptionsMention] = _react.default.useState([]);
271
+ const [textSelection, setTextSelection] = _react.default.useState();
272
+ const [textSelected, setTextSelected] = _react.default.useState([]);
273
+ const [open, setOpen] = _react.default.useState({});
274
+ const [inputValues, setInputValues] = _react.default.useState({});
275
+ const refs = {
276
+ root: _react.default.useRef(null),
277
+ input: _react.default.useRef(null),
278
+ searchElement: _react.default.useRef(null),
279
+ error: _react.default.useRef(null),
280
+ search: _react.default.useRef(null),
281
+ open: _react.default.useRef(null),
282
+ openMenu: _react.default.useRef(null),
283
+ selectionMenu: _react.default.useRef(null),
284
+ caret: _react.default.useRef(null),
285
+ value: _react.default.useRef(null),
286
+ version: _react.default.useRef(version),
287
+ optionsMention: _react.default.useRef(optionsMention),
288
+ validateMeta: _react.default.useRef({}),
289
+ range: _react.default.useRef(null),
290
+ inputValues: _react.default.useRef(null),
291
+ miniMenu: _react.default.useRef(null),
292
+ miniMenuElements: {
293
+ color: _react.default.useRef(null),
294
+ colorPalette: _react.default.useRef(null),
295
+ background: _react.default.useRef(null),
296
+ backgroundPalette: _react.default.useRef(null),
297
+ linkAdd: _react.default.useRef(null),
298
+ linkAddInput: _react.default.useRef(null),
299
+ linkRemove: _react.default.useRef(null)
140
300
  },
141
- error_color: {
142
- color: [theme.palette.light ? theme.palette.color.error[40] : theme.palette.color.error[80], '!important']
301
+ elements: {
302
+ color: _react.default.useRef(null),
303
+ background: _react.default.useRef(null),
304
+ linkAdd: _react.default.useRef(null),
305
+ linkRemove: _react.default.useRef(null),
306
+ quote: _react.default.useRef(null),
307
+ image: _react.default.useRef(null),
308
+ video: _react.default.useRef(null),
309
+ videoYoutube: _react.default.useRef(null),
310
+ table: _react.default.useRef(null),
311
+ drawing: _react.default.useRef(null),
312
+ drawingSvg: _react.default.useRef(null),
313
+ drawingSize: _react.default.useRef(null),
314
+ drawingSelect: _react.default.useRef(null),
315
+ drawingPalette: _react.default.useRef(null),
316
+ code: _react.default.useRef(null)
143
317
  },
144
- error_hover_color: {
145
- color: [theme.palette.light ? theme.palette.color.error[20] : theme.palette.color.error[90], '!important']
318
+ textSelected: _react.default.useRef(null),
319
+ textSelection: _react.default.useRef(null),
320
+ rootDocument: _react.default.useRef(null),
321
+ rootWindow: _react.default.useRef(null),
322
+ edit: _react.default.useRef(edit),
323
+ multiline: _react.default.useRef(multiline),
324
+ readOnly: _react.default.useRef(readOnly),
325
+ onChange: _react.default.useRef(onChange),
326
+ props: _react.default.useRef(props)
327
+ };
328
+ refs.value.current = value;
329
+ refs.version.current = version;
330
+ refs.open.current = open;
331
+ refs.openMenu.current = openMenu;
332
+ refs.selectionMenu.current = selectionMenu;
333
+ refs.optionsMention.current = optionsMention;
334
+ refs.inputValues.current = inputValues;
335
+ refs.textSelected.current = textSelected;
336
+ refs.textSelection.current = textSelection;
337
+ refs.edit.current = edit;
338
+ refs.multiline.current = multiline;
339
+ refs.readOnly.current = readOnly;
340
+ refs.onChange.current = onChange;
341
+ refs.props.current = props;
342
+ 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);
343
+ const rootWindow = rootDocument && (rootDocument.defaultView || window);
344
+ refs.rootDocument.current = rootDocument;
345
+ refs.rootWindow.current = rootWindow;
346
+ const init = _react.default.useCallback(() => {
347
+ if (version === 'text') {
348
+ const valueNew = valueDefault || value || '';
349
+ if (refs.root.current) {
350
+ refs.root.current.innerHTML = valueNew;
351
+ }
146
352
  }
147
- }), { name: 'onesy-SmartTextField' });
148
- const SmartTextField = react_1.default.forwardRef((props_, ref) => {
149
- var _a;
150
- const theme = (0, style_react_1.useOnesyTheme)();
151
- const l = theme.l;
152
- 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.onesySmartTextField) === null || _g === void 0 ? void 0 : _g.props) === null || _h === void 0 ? void 0 : _h.default), props_)); }, [props_]);
153
- 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]);
154
- 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]);
155
- const List = react_1.default.useMemo(() => { var _a; return ((_a = theme === null || theme === void 0 ? void 0 : theme.elements) === null || _a === void 0 ? void 0 : _a.List) || List_1.default; }, [theme]);
156
- 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]);
157
- const Avatar = react_1.default.useMemo(() => { var _a; return ((_a = theme === null || theme === void 0 ? void 0 : theme.elements) === null || _a === void 0 ? void 0 : _a.Avatar) || Avatar_1.default; }, [theme]);
158
- 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]);
159
- 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]);
160
- 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]);
161
- 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]);
162
- 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]);
163
- 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]);
164
- 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]);
165
- 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]);
166
- 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]);
167
- const Menu = react_1.default.useMemo(() => { var _a; return ((_a = theme === null || theme === void 0 ? void 0 : theme.elements) === null || _a === void 0 ? void 0 : _a.Menu) || Menu_1.default; }, [theme]);
168
- 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]);
169
- 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]);
170
- const { tonal = true, color = 'default', version = 'text', size = 'regular', valueDefault, value: value_, inputProps, onChange, error: error_, name, placeholder, edit, mention, multiline, onChangeMention, optionsMention: optionsMention_, error, helperText, mentionLabel, onKeyDown: onKeyDown_, pasteText = true, readOnly, additional, miniMenuExtended, HelperTextProps, ColorTextFieldProps, className } = props, other = __rest(props, ["tonal", "color", "version", "size", "valueDefault", "value", "inputProps", "onChange", "error", "name", "placeholder", "edit", "mention", "multiline", "onChangeMention", "optionsMention", "error", "helperText", "mentionLabel", "onKeyDown", "pasteText", "readOnly", "additional", "miniMenuExtended", "HelperTextProps", "ColorTextFieldProps", "className"]);
171
- const { classes } = useStyle();
172
- const [value, setValue] = react_1.default.useState(valueDefault || '');
173
- const [openMenu, setOpenMenu] = react_1.default.useState(false);
174
- const [offset, setOffset] = react_1.default.useState([0, 8]);
175
- const [selectionMenu, setSelectionMenu] = react_1.default.useState();
176
- const [optionsMention, setOptionsMention] = react_1.default.useState([]);
177
- const [textSelection, setTextSelection] = react_1.default.useState();
178
- const [textSelected, setTextSelected] = react_1.default.useState([]);
179
- const [open, setOpen] = react_1.default.useState({});
180
- const [inputValues, setInputValues] = react_1.default.useState({});
181
- const refs = {
182
- root: react_1.default.useRef(null),
183
- input: react_1.default.useRef(null),
184
- searchElement: react_1.default.useRef(null),
185
- error: react_1.default.useRef(null),
186
- search: react_1.default.useRef(null),
187
- open: react_1.default.useRef(null),
188
- openMenu: react_1.default.useRef(null),
189
- selectionMenu: react_1.default.useRef(null),
190
- caret: react_1.default.useRef(null),
191
- value: react_1.default.useRef(null),
192
- version: react_1.default.useRef(version),
193
- optionsMention: react_1.default.useRef(optionsMention),
194
- validateMeta: react_1.default.useRef({}),
195
- range: react_1.default.useRef(null),
196
- inputValues: react_1.default.useRef(null),
197
- miniMenu: react_1.default.useRef(null),
198
- miniMenuElements: {
199
- color: react_1.default.useRef(null),
200
- colorPalette: react_1.default.useRef(null),
201
- background: react_1.default.useRef(null),
202
- backgroundPalette: react_1.default.useRef(null),
203
- linkAdd: react_1.default.useRef(null),
204
- linkAddInput: react_1.default.useRef(null),
205
- linkRemove: react_1.default.useRef(null)
206
- },
207
- elements: {
208
- color: react_1.default.useRef(null),
209
- background: react_1.default.useRef(null),
210
- linkAdd: react_1.default.useRef(null),
211
- linkRemove: react_1.default.useRef(null),
212
- quote: react_1.default.useRef(null),
213
- image: react_1.default.useRef(null),
214
- video: react_1.default.useRef(null),
215
- videoYoutube: react_1.default.useRef(null),
216
- table: react_1.default.useRef(null),
217
- drawing: react_1.default.useRef(null),
218
- drawingSvg: react_1.default.useRef(null),
219
- drawingSize: react_1.default.useRef(null),
220
- drawingSelect: react_1.default.useRef(null),
221
- drawingPalette: react_1.default.useRef(null),
222
- code: react_1.default.useRef(null)
223
- },
224
- textSelected: react_1.default.useRef(null),
225
- textSelection: react_1.default.useRef(null),
226
- rootDocument: react_1.default.useRef(null),
227
- rootWindow: react_1.default.useRef(null),
228
- edit: react_1.default.useRef(edit),
229
- multiline: react_1.default.useRef(multiline),
230
- readOnly: react_1.default.useRef(readOnly),
231
- onChange: react_1.default.useRef(onChange),
232
- props: react_1.default.useRef(props)
233
- };
234
- refs.value.current = value;
235
- refs.version.current = version;
236
- refs.open.current = open;
237
- refs.openMenu.current = openMenu;
238
- refs.selectionMenu.current = selectionMenu;
239
- refs.optionsMention.current = optionsMention;
240
- refs.inputValues.current = inputValues;
241
- refs.textSelected.current = textSelected;
242
- refs.textSelection.current = textSelection;
243
- refs.edit.current = edit;
244
- refs.multiline.current = multiline;
245
- refs.readOnly.current = readOnly;
246
- refs.onChange.current = onChange;
247
- refs.props.current = props;
248
- const rootDocument = (0, utils_1.isEnvironment)('browser') && (((_a = refs.root.current) === null || _a === void 0 ? void 0 : _a.ownerDocument) || window.document);
249
- const rootWindow = rootDocument && (rootDocument.defaultView || window);
250
- refs.rootDocument.current = rootDocument;
251
- refs.rootWindow.current = rootWindow;
252
- const init = react_1.default.useCallback(() => {
253
- if (version === 'text') {
254
- const valueNew = valueDefault || value || '';
255
- if (refs.root.current) {
256
- refs.root.current.innerHTML = valueNew;
257
- }
353
+ }, [version, value, valueDefault]);
354
+ _react.default.useEffect(() => {
355
+ // init
356
+ init();
357
+ }, []);
358
+ _react.default.useEffect(() => {
359
+ setOptionsMention([...(optionsMention_ || [])]);
360
+ }, [(0, _utils.hash)(optionsMention_)]);
361
+ _react.default.useEffect(() => {
362
+ const valuePrevious = (refs.root.current.innerHTML || '').replaceAll('&nbsp;', ' ');
363
+ const valueNew = (0, _utils.textToInnerHTML)(value_);
364
+ if (value_ !== undefined && valuePrevious !== valueNew) validate(!value_ ? '' : (0, _utils2.sanitize)(value_));
365
+ }, [value_]);
366
+
367
+ // Save selection to revive, use it on execComand
368
+ _react.default.useEffect(() => {
369
+ var _selection_$anchorNod;
370
+ const selection_ = refs.rootWindow.current.getSelection();
371
+ 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);
372
+ }, [open]);
373
+ const updateInputValues = (property, itemValue) => {
374
+ setInputValues(values => _objectSpread(_objectSpread({}, values), {}, {
375
+ [property]: itemValue
376
+ }));
377
+ };
378
+ const updateOpen = (property, itemValue) => {
379
+ setOpen(values => _objectSpread(_objectSpread({}, values), {}, {
380
+ [property]: itemValue
381
+ }));
382
+ };
383
+ const validateElement = _react.default.useCallback(element => {
384
+ if (element !== null && element !== void 0 && element.children) {
385
+ Array.from(element === null || element === void 0 ? void 0 : element.children).forEach(child => {
386
+ // Any tag
387
+ if (child.dataset.onesyVersion === 'mention-user') {
388
+ // Replace the child if label & textContent don't match
389
+ if (child.dataset.onesyLabel !== child.innerHTML) {
390
+ element.replaceChild(window.document.createTextNode(child.textContent), child);
391
+ refs.validateMeta.current.restore = true;
392
+ }
258
393
  }
259
- }, [version, value, valueDefault]);
260
- react_1.default.useEffect(() => {
261
- // init
262
- init();
263
- }, []);
264
- react_1.default.useEffect(() => {
265
- setOptionsMention([...(optionsMention_ || [])]);
266
- }, [(0, utils_1.hash)(optionsMention_)]);
267
- react_1.default.useEffect(() => {
268
- const valuePrevious = (refs.root.current.innerHTML || '').replaceAll('&nbsp;', ' ');
269
- const valueNew = (0, utils_1.textToInnerHTML)(value_);
270
- if (value_ !== undefined && valuePrevious !== valueNew)
271
- validate(!value_ ? '' : (0, utils_2.sanitize)(value_));
272
- }, [value_]);
273
- // Save selection to revive, use it on execComand
274
- react_1.default.useEffect(() => {
275
- var _a, _b;
276
- const selection_ = refs.rootWindow.current.getSelection();
277
- if (selection_ &&
278
- selection_.anchorNode &&
279
- !((_b = (_a = selection_.anchorNode) === null || _a === void 0 ? void 0 : _a.className) === null || _b === void 0 ? void 0 : _b.includes('TextField')))
280
- refs.range.current = selection_.getRangeAt(0);
281
- }, [open]);
282
- const updateInputValues = (property, itemValue) => {
283
- setInputValues((values) => (Object.assign(Object.assign({}, values), { [property]: itemValue })));
394
+ if (child !== null && child !== void 0 && child.children) validateElement(child);
395
+ });
396
+ }
397
+ }, []);
398
+ const validate = _react.default.useCallback((valueNew = undefined) => {
399
+ // Save caret position
400
+ refs.caret.current = _utils2.caret.save(refs.root.current);
401
+
402
+ // Update the root innerHTML
403
+ if (valueNew !== undefined) refs.root.current.innerHTML = valueNew;
404
+ refs.validateMeta.current.restore = false;
405
+
406
+ // Find all span onesy-mention children
407
+ // if they aren't valid, replace them with text node of their textContent
408
+ validateElement(refs.root.current);
409
+ if (refs.validateMeta.current.restore) _utils2.caret.restore(refs.root.current, refs.caret.current);
410
+ return refs.root.current.innerHTML;
411
+ }, []);
412
+ const getAtSearchData = _react.default.useCallback(() => {
413
+ if (refs.root.current) {
414
+ var _anchorNode, _range$commonAncestor, _anchorNode2;
415
+ const windowSelection = window.document.getSelection();
416
+ if (!(windowSelection && windowSelection.rangeCount > 0)) return;
417
+ const range = windowSelection === null || windowSelection === void 0 ? void 0 : windowSelection.getRangeAt(0);
418
+ if (!range) return;
419
+
420
+ // Only allow for text not in span user mention element
421
+ if (((_anchorNode = windowSelection.anchorNode) === null || _anchorNode === void 0 || (_anchorNode = _anchorNode.parentElement) === null || _anchorNode === void 0 || (_anchorNode = _anchorNode.dataset) === null || _anchorNode === void 0 ? void 0 : _anchorNode.onesyVersion) === 'mention-user') return '';
422
+
423
+ // Text
424
+ if (!['text', '#text'].includes(range === null || range === void 0 || (_range$commonAncestor = range.commonAncestorContainer) === null || _range$commonAncestor === void 0 ? void 0 : _range$commonAncestor.nodeName)) return '';
425
+ const text = ((_anchorNode2 = windowSelection.anchorNode) === null || _anchorNode2 === void 0 ? void 0 : _anchorNode2.textContent) || '';
426
+ const start = text.slice(0, range.endOffset).split('').reverse().join('');
427
+ let result = [];
428
+ for (const valueText of start) {
429
+ // All characters other than space, numbers
430
+ if (!!valueText.match(/[^<>\\/\n\r\t]/)) result.unshift(valueText);else break;
431
+ if (['@'].includes(valueText)) break;
432
+ }
433
+ result = result.includes('@') ? result.join('') : '';
434
+
435
+ // Allow 1 space only
436
+ if (result && result.match(/\s{2}/g)) return '';
437
+ return result;
438
+ }
439
+ }, []);
440
+ refs.search.current = getAtSearchData();
441
+ const onInput = _react.default.useCallback(event => {
442
+ if (refs.root.current) {
443
+ let valueInput = refs.root.current.innerHTML || '';
444
+ if (refs.root.current.textContent === '') {
445
+ valueInput = '';
446
+ refs.root.current.innerHTML = '';
447
+ }
448
+ if (!refs.multiline.current) {
449
+ const previous = valueInput;
450
+ valueInput = valueInput.replace(/\r?\n|\r/gm, '');
451
+ if (previous !== valueInput) refs.root.current.innerHTML = valueInput;
452
+ }
453
+ valueInput = (0, _utils.innerHTMLToText)(valueInput);
454
+ setValue(valueInput);
455
+ if ((0, _utils.is)('function', refs.onChange.current)) refs.onChange.current(valueInput, event);
456
+ }
457
+ }, []);
458
+ _react.default.useEffect(() => {
459
+ if (mention && refs.search.current !== undefined) onChangeMention === null || onChangeMention === void 0 || onChangeMention(refs.search.current, '@');
460
+ }, [mention, refs.search.current]);
461
+ _react.default.useEffect(() => {
462
+ const method = () => {
463
+ if (window.document.activeElement === refs.input.current) onInput();
284
464
  };
285
- const updateOpen = (property, itemValue) => {
286
- setOpen((values) => (Object.assign(Object.assign({}, values), { [property]: itemValue })));
465
+ window.document.addEventListener('selectionchange', method);
466
+ onChangeMention === null || onChangeMention === void 0 || onChangeMention(refs.search.current, '@');
467
+ return () => {
468
+ window.document.removeEventListener('selectionchange', method);
287
469
  };
288
- const validateElement = react_1.default.useCallback((element) => {
289
- if (element === null || element === void 0 ? void 0 : element.children) {
290
- Array.from(element === null || element === void 0 ? void 0 : element.children).forEach((child) => {
291
- // Any tag
292
- if (child.dataset.onesyVersion === 'mention-user') {
293
- // Replace the child if label & textContent don't match
294
- if (child.dataset.onesyLabel !== child.innerHTML) {
295
- element.replaceChild(window.document.createTextNode(child.textContent), child);
296
- refs.validateMeta.current.restore = true;
297
- }
298
- }
299
- if (child === null || child === void 0 ? void 0 : child.children)
300
- validateElement(child);
301
- });
302
- }
303
- }, []);
304
- const validate = react_1.default.useCallback((valueNew = undefined) => {
305
- // Save caret position
306
- refs.caret.current = utils_2.caret.save(refs.root.current);
307
- // Update the root innerHTML
308
- if (valueNew !== undefined)
309
- refs.root.current.innerHTML = valueNew;
310
- refs.validateMeta.current.restore = false;
311
- // Find all span onesy-mention children
312
- // if they aren't valid, replace them with text node of their textContent
313
- validateElement(refs.root.current);
314
- if (refs.validateMeta.current.restore)
315
- utils_2.caret.restore(refs.root.current, refs.caret.current);
316
- return refs.root.current.innerHTML;
317
- }, []);
318
- const getAtSearchData = react_1.default.useCallback(() => {
319
- var _a, _b, _c, _d, _e;
320
- if (refs.root.current) {
321
- const windowSelection = window.document.getSelection();
322
- if (!(windowSelection && windowSelection.rangeCount > 0))
323
- return;
324
- const range = windowSelection === null || windowSelection === void 0 ? void 0 : windowSelection.getRangeAt(0);
325
- if (!range)
326
- return;
327
- // Only allow for text not in span user mention element
328
- if (((_c = (_b = (_a = windowSelection.anchorNode) === null || _a === void 0 ? void 0 : _a.parentElement) === null || _b === void 0 ? void 0 : _b.dataset) === null || _c === void 0 ? void 0 : _c.onesyVersion) === 'mention-user')
329
- return '';
330
- // Text
331
- if (!['text', '#text'].includes((_d = range === null || range === void 0 ? void 0 : range.commonAncestorContainer) === null || _d === void 0 ? void 0 : _d.nodeName))
332
- return '';
333
- const text = ((_e = windowSelection.anchorNode) === null || _e === void 0 ? void 0 : _e.textContent) || '';
334
- const start = text.slice(0, range.endOffset).split('').reverse().join('');
335
- let result = [];
336
- for (const valueText of start) {
337
- // All characters other than space, numbers
338
- if (!!valueText.match(/[^<>\\/\n\r\t]/))
339
- result.unshift(valueText);
340
- else
341
- break;
342
- if (['@'].includes(valueText))
343
- break;
344
- }
345
- result = result.includes('@') ? result.join('') : '';
346
- // Allow 1 space only
347
- if (result && result.match(/\s{2}/g))
348
- return '';
349
- return result;
350
- }
351
- }, []);
352
- refs.search.current = getAtSearchData();
353
- const onInput = react_1.default.useCallback((event) => {
354
- if (refs.root.current) {
355
- let valueInput = refs.root.current.innerHTML || '';
356
- if (refs.root.current.textContent === '') {
357
- valueInput = '';
358
- refs.root.current.innerHTML = '';
359
- }
360
- if (!refs.multiline.current) {
361
- const previous = valueInput;
362
- valueInput = valueInput.replace(/\r?\n|\r/gm, '');
363
- if (previous !== valueInput)
364
- refs.root.current.innerHTML = valueInput;
365
- }
366
- valueInput = (0, utils_1.innerHTMLToText)(valueInput);
367
- setValue(valueInput);
368
- if ((0, utils_1.is)('function', refs.onChange.current))
369
- refs.onChange.current(valueInput, event);
370
- }
371
- }, []);
372
- react_1.default.useEffect(() => {
373
- if (mention && refs.search.current !== undefined)
374
- onChangeMention === null || onChangeMention === void 0 ? void 0 : onChangeMention(refs.search.current, '@');
375
- }, [mention, refs.search.current]);
376
- react_1.default.useEffect(() => {
377
- const method = () => {
378
- if (window.document.activeElement === refs.input.current)
379
- onInput();
380
- };
381
- window.document.addEventListener('selectionchange', method);
382
- onChangeMention === null || onChangeMention === void 0 ? void 0 : onChangeMention(refs.search.current, '@');
383
- return () => {
384
- window.document.removeEventListener('selectionchange', method);
385
- };
386
- }, []);
387
- const updateSelection = react_1.default.useCallback(() => {
388
- const windowSelection = window.document.getSelection();
389
- if (!(windowSelection && windowSelection.rangeCount > 0))
390
- return;
391
- const range = windowSelection === null || windowSelection === void 0 ? void 0 : windowSelection.getRangeAt(0);
392
- if (range)
393
- setSelectionMenu(range === null || range === void 0 ? void 0 : range.getBoundingClientRect());
394
- }, []);
395
- const onOpenSearch = react_1.default.useCallback(async () => {
396
- if (!refs.openMenu.current && !!refs.optionsMention.current.length) {
397
- // open
398
- setOpenMenu(true);
399
- // selection
400
- updateSelection();
401
- }
402
- }, []);
403
- const onCloseSearch = react_1.default.useCallback(() => {
404
- if (refs.openMenu.current) {
405
- setOpenMenu(false);
406
- setSelectionMenu(null);
407
- }
408
- }, []);
409
- const updateOffset = react_1.default.useCallback(() => {
410
- var _a;
411
- setOffset([-(((_a = refs.searchElement.current) === null || _a === void 0 ? void 0 : _a.clientWidth) || 0), 8]);
412
- }, []);
413
- const onFocus = react_1.default.useCallback(() => {
414
- // setFocus(true);
415
- }, []);
416
- const onBlur = react_1.default.useCallback(() => {
417
- // setFocus(false);
418
- }, []);
419
- const onKeyDown = react_1.default.useCallback((event) => {
420
- var _a;
421
- const windowSelection = window.getSelection();
422
- if (windowSelection) {
423
- // if (event.key === 'Enter') {
424
- // event.preventDefault();
425
- // const anchor = windowSelection.anchorNode as HTMLElement;
426
- // const element = anchor.parentElement;
427
- // const multiple = anchor.tagName === 'P' && anchor.children.length === 1 && anchor.children[0].tagName === 'BR';
428
- // window.document.execCommand('insertHTML', false, `<p><br /></p>`.repeat(multiple ? 2 : 1));
429
- // const range = new Range();
430
- // const rangeStartElement = ((multiple ? anchor : element) as any)?.nextElementSibling;
431
- // if (rangeStartElement) range.setStart(rangeStartElement, 0);
432
- // windowSelection.removeAllRanges();
433
- // windowSelection.addRange(range);
434
- // }
435
- if (event.key === 'ArrowRight') {
436
- // If in user mention span
437
- // move out of it with adding new empty space root node after the user mention span
438
- // only if caret is at the end of the span, & span is last child of it's parent
439
- if (!(windowSelection && windowSelection.rangeCount > 0))
440
- return;
441
- const range = windowSelection.getRangeAt(0);
442
- const caretElement = windowSelection.anchorNode.parentElement;
443
- const caretElementParent = caretElement.parentElement;
444
- const caretElementParentChildNodes = Array.from(caretElementParent.childNodes);
445
- if (((_a = caretElement === null || caretElement === void 0 ? void 0 : caretElement.dataset) === null || _a === void 0 ? void 0 : _a.onesyVersion) === 'mention-user' &&
446
- range.endOffset === windowSelection.anchorNode.textContent.length &&
447
- caretElementParentChildNodes[caretElementParentChildNodes.length - 1] === caretElement) {
448
- caretElementParent.insertBefore(window.document.createTextNode('\u00A0'), caretElement.nextElementSibling);
449
- }
450
- }
451
- }
452
- if (!refs.multiline.current) {
453
- if (event.key === 'Enter') {
454
- event.preventDefault();
455
- }
456
- }
457
- if (!refs.edit.current &&
458
- ((event.metaKey && (utils_2.keyboardStyleCommands.includes(event.key))) ||
459
- (event.ctrlKey && (utils_2.keyboardStyleCommands.includes(event.key))))) {
460
- event.preventDefault();
470
+ }, []);
471
+ const updateSelection = _react.default.useCallback(() => {
472
+ const windowSelection = window.document.getSelection();
473
+ if (!(windowSelection && windowSelection.rangeCount > 0)) return;
474
+ const range = windowSelection === null || windowSelection === void 0 ? void 0 : windowSelection.getRangeAt(0);
475
+ if (range) setSelectionMenu(range === null || range === void 0 ? void 0 : range.getBoundingClientRect());
476
+ }, []);
477
+ const onOpenSearch = _react.default.useCallback(async () => {
478
+ if (!refs.openMenu.current && !!refs.optionsMention.current.length) {
479
+ // open
480
+ setOpenMenu(true);
481
+
482
+ // selection
483
+ updateSelection();
484
+ }
485
+ }, []);
486
+ const onCloseSearch = _react.default.useCallback(() => {
487
+ if (refs.openMenu.current) {
488
+ setOpenMenu(false);
489
+ setSelectionMenu(null);
490
+ }
491
+ }, []);
492
+ const updateOffset = _react.default.useCallback(() => {
493
+ var _refs$searchElement$c;
494
+ setOffset([-(((_refs$searchElement$c = refs.searchElement.current) === null || _refs$searchElement$c === void 0 ? void 0 : _refs$searchElement$c.clientWidth) || 0), 8]);
495
+ }, []);
496
+ const onFocus = _react.default.useCallback(() => {
497
+ // setFocus(true);
498
+ }, []);
499
+ const onBlur = _react.default.useCallback(() => {
500
+ // setFocus(false);
501
+ }, []);
502
+ const onKeyDown = _react.default.useCallback(event => {
503
+ const windowSelection = window.getSelection();
504
+ if (windowSelection) {
505
+ // if (event.key === 'Enter') {
506
+ // event.preventDefault();
507
+
508
+ // const anchor = windowSelection.anchorNode as HTMLElement;
509
+ // const element = anchor.parentElement;
510
+
511
+ // const multiple = anchor.tagName === 'P' && anchor.children.length === 1 && anchor.children[0].tagName === 'BR';
512
+
513
+ // window.document.execCommand('insertHTML', false, `<p><br /></p>`.repeat(multiple ? 2 : 1));
514
+
515
+ // const range = new Range();
516
+
517
+ // const rangeStartElement = ((multiple ? anchor : element) as any)?.nextElementSibling;
518
+
519
+ // if (rangeStartElement) range.setStart(rangeStartElement, 0);
520
+
521
+ // windowSelection.removeAllRanges();
522
+ // windowSelection.addRange(range);
523
+ // }
524
+
525
+ if (event.key === 'ArrowRight') {
526
+ var _caretElement$dataset;
527
+ // If in user mention span
528
+ // move out of it with adding new empty space root node after the user mention span
529
+ // only if caret is at the end of the span, & span is last child of it's parent
530
+ if (!(windowSelection && windowSelection.rangeCount > 0)) return;
531
+ const range = windowSelection.getRangeAt(0);
532
+ const caretElement = windowSelection.anchorNode.parentElement;
533
+ const caretElementParent = caretElement.parentElement;
534
+ const caretElementParentChildNodes = Array.from(caretElementParent.childNodes);
535
+ if ((caretElement === null || caretElement === void 0 || (_caretElement$dataset = caretElement.dataset) === null || _caretElement$dataset === void 0 ? void 0 : _caretElement$dataset.onesyVersion) === 'mention-user' && range.endOffset === windowSelection.anchorNode.textContent.length && caretElementParentChildNodes[caretElementParentChildNodes.length - 1] === caretElement) {
536
+ caretElementParent.insertBefore(window.document.createTextNode('\u00A0'), caretElement.nextElementSibling);
461
537
  }
462
- if ((0, utils_1.is)('function', onKeyDown_))
463
- onKeyDown_(event);
464
- }, [onKeyDown_]);
465
- const onPaste = react_1.default.useCallback((event) => {
466
- // event.preventDefault();
467
- // const text = event.clipboardData?.getData('text/plain');
468
- // window.document.execCommand('insertText', false, text);
469
- }, []);
470
- const onPasteText = react_1.default.useCallback((event) => {
471
- var _a;
472
- event.preventDefault();
473
- const text = (_a = event.clipboardData) === null || _a === void 0 ? void 0 : _a.getData('text/plain');
474
- window.document.execCommand('insertText', false, text);
475
- }, []);
476
- const onDrop = react_1.default.useCallback((event) => {
538
+ }
539
+ }
540
+ if (!refs.multiline.current) {
541
+ if (event.key === 'Enter') {
477
542
  event.preventDefault();
478
- }, []);
479
- const addTag = react_1.default.useCallback((item, versionMention = 'user') => {
480
- // Save caret position
481
- refs.caret.current = utils_2.caret.save(refs.root.current);
482
- const itemName = item.name;
483
- const classesElement = ['onesy-mention'];
484
- // Query text node that equals selection anchorNode
485
- // and replace its textContent's search value with new span
486
- const windowSelection = window.document.getSelection();
487
- if (!(windowSelection && windowSelection.rangeCount > 0))
488
- return;
489
- const range = windowSelection === null || windowSelection === void 0 ? void 0 : windowSelection.getRangeAt(0);
490
- if (!range)
491
- return;
492
- const textNode = windowSelection.anchorNode;
493
- const textContent = textNode.textContent;
494
- // Bug fix
495
- // only be able to insert data within the input
496
- // if by accident selection went outside the input
497
- // basically do nothing with it
498
- if (refs.root.current.contains(textNode.parentElement)) {
499
- const end = range.endOffset;
500
- const start = end - refs.search.current.length;
501
- const pre = textContent.slice(0, start);
502
- const post = textContent.slice(end);
503
- // Insert before anchorNode pre, item mention, and post
504
- if (pre)
505
- textNode.parentElement.insertBefore(window.document.createTextNode(pre), windowSelection.anchorNode);
506
- const span = window.document.createElement('span');
507
- span.className = classesElement.join(' ');
508
- span.dataset.onesyLabel = `@${itemName}`;
509
- span.dataset.onesyVersion = `mention-${versionMention}`;
510
- span.dataset.onesyObject = `${versionMention}`;
511
- span.dataset.onesyId = item.id;
512
- span.innerHTML = `@${itemName}`;
513
- textNode.parentElement.insertBefore(span, windowSelection.anchorNode);
514
- // 1 space only following the item mention
515
- textNode.parentElement.insertBefore(window.document.createTextNode('\u00A0'), windowSelection.anchorNode);
516
- if (post)
517
- textNode.parentElement.insertBefore(window.document.createTextNode(post), windowSelection.anchorNode);
518
- // Remove the text node
519
- textNode.remove();
520
- // Invoke onChange method with new value
521
- const valueInput = (0, utils_1.innerHTMLToText)(refs.root.current.innerHTML);
522
- if ((0, utils_1.is)('function', refs.onChange.current))
523
- refs.onChange.current(valueInput, { target: refs.root.current });
524
- // Update the caret position to be outside the span mention
525
- // for amount of added characters + 1 space
526
- const added = `@${itemName}`.length - refs.search.current.length + 1;
527
- refs.caret.current.start = refs.caret.current.end += added;
528
- utils_2.caret.restore(refs.root.current, refs.caret.current);
529
- }
530
- // Close the search
531
- onCloseSearch();
532
- }, [onChange]);
533
- // If users response & not open, open
534
- // else if no users response & opened, close the search
535
- react_1.default.useEffect(() => {
536
- if (mention) {
537
- if (refs.openMenu.current && !optionsMention.length)
538
- onCloseSearch();
539
- else if (!refs.openMenu.current && refs.search.current && !!optionsMention.length)
540
- onOpenSearch();
541
- }
542
- }, [mention, optionsMention]);
543
- react_1.default.useEffect(() => {
544
- if (mention) {
545
- // Validate
546
- validate();
547
- // Update
548
- // open, selection & offset
549
- setTimeout(() => {
550
- refs.search.current ? onOpenSearch() : onCloseSearch();
551
- if (refs.openMenu.current)
552
- updateSelection();
553
- updateOffset();
554
- });
555
- }
556
- }, [mention, value]);
557
- react_1.default.useEffect(() => {
558
- // setError(error_);
559
- }, [error_]);
560
- const label = react_1.default.useCallback(() => ((0, utils_1.is)('function', mentionLabel) ? mentionLabel(optionsMention, { addTag }) :
561
- (0, jsx_runtime_1.jsx)(Line, Object.assign({ className: classes.menu }, { children: (0, jsx_runtime_1.jsx)(List, Object.assign({ size: 'small', className: classes.list }, { children: optionsMention === null || optionsMention === void 0 ? void 0 : optionsMention.map((item, index) => {
562
- var _a;
563
- return ((0, jsx_runtime_1.jsx)(ListItem, { start: ((0, jsx_runtime_1.jsx)(Avatar, Object.assign({ color: (0, utils_1.stringToColor)(item.name), size: 'small' }, { children: (_a = item.name) === null || _a === void 0 ? void 0 : _a.slice(0, 1) }))), primary: ((0, jsx_runtime_1.jsx)(Type, Object.assign({ version: 'l3' }, { children: item.name }))), onClick: () => addTag(item), button: true }, index));
564
- }) })) }))), [optionsMention]);
565
- const paste = async () => {
566
- const valueClipboard = await navigator.clipboard.read();
567
- if (valueClipboard) {
568
- let values = '';
569
- for (const item of Array.from(valueClipboard)) {
570
- const valueItem = await item.getType('text/html');
571
- values += await valueItem.text();
572
- }
573
- rootDocument.execCommand('insertHTML', undefined, values);
574
- }
575
- };
576
- const query = (command) => {
577
- return (0, utils_1.parse)(refs.rootDocument.current.queryCommandValue(command));
578
- };
579
- const textQueryUpdate = () => {
580
- const selected = [];
581
- const updateOptionValues = [
582
- { name: 'italic', command: 'italic' },
583
- { name: 'underline', command: 'underline' },
584
- { name: 'bold', command: 'bold' },
585
- { name: 'strike-line', command: 'strikeThrough' }
586
- ];
587
- updateOptionValues.forEach(item => {
588
- if (query(item.command))
589
- selected.push(item.name);
590
- });
591
- setTextSelected(selected);
592
- };
593
- const onMouseUp = react_1.default.useCallback(() => {
594
- if (!refs.edit.current)
595
- return;
543
+ }
544
+ }
545
+ if (!refs.edit.current && (event.metaKey && _utils2.keyboardStyleCommands.includes(event.key) || event.ctrlKey && _utils2.keyboardStyleCommands.includes(event.key))) {
546
+ event.preventDefault();
547
+ }
548
+ if ((0, _utils.is)('function', onKeyDown_)) onKeyDown_(event);
549
+ }, [onKeyDown_]);
550
+ const onPaste = _react.default.useCallback(event => {
551
+ // event.preventDefault();
552
+
553
+ // const text = event.clipboardData?.getData('text/plain');
554
+
555
+ // window.document.execCommand('insertText', false, text);
556
+ }, []);
557
+ const onPasteText = _react.default.useCallback(event => {
558
+ var _event$clipboardData;
559
+ event.preventDefault();
560
+ const text = (_event$clipboardData = event.clipboardData) === null || _event$clipboardData === void 0 ? void 0 : _event$clipboardData.getData('text/plain');
561
+ window.document.execCommand('insertText', false, text);
562
+ }, []);
563
+ const onDrop = _react.default.useCallback(event => {
564
+ event.preventDefault();
565
+ }, []);
566
+ const addTag = _react.default.useCallback((item, versionMention = 'user') => {
567
+ // Save caret position
568
+ refs.caret.current = _utils2.caret.save(refs.root.current);
569
+ const itemName = item.name;
570
+ const classesElement = ['onesy-mention'];
571
+
572
+ // Query text node that equals selection anchorNode
573
+ // and replace its textContent's search value with new span
574
+ const windowSelection = window.document.getSelection();
575
+ if (!(windowSelection && windowSelection.rangeCount > 0)) return;
576
+ const range = windowSelection === null || windowSelection === void 0 ? void 0 : windowSelection.getRangeAt(0);
577
+ if (!range) return;
578
+ const textNode = windowSelection.anchorNode;
579
+ const textContent = textNode.textContent;
580
+
581
+ // Bug fix
582
+ // only be able to insert data within the input
583
+ // if by accident selection went outside the input
584
+ // basically do nothing with it
585
+ if (refs.root.current.contains(textNode.parentElement)) {
586
+ const end = range.endOffset;
587
+ const start = end - refs.search.current.length;
588
+ const pre = textContent.slice(0, start);
589
+ const post = textContent.slice(end);
590
+
591
+ // Insert before anchorNode pre, item mention, and post
592
+ if (pre) textNode.parentElement.insertBefore(window.document.createTextNode(pre), windowSelection.anchorNode);
593
+ const span = window.document.createElement('span');
594
+ span.className = classesElement.join(' ');
595
+ span.dataset.onesyLabel = `@${itemName}`;
596
+ span.dataset.onesyVersion = `mention-${versionMention}`;
597
+ span.dataset.onesyObject = `${versionMention}`;
598
+ span.dataset.onesyId = item.id;
599
+ span.innerHTML = `@${itemName}`;
600
+ textNode.parentElement.insertBefore(span, windowSelection.anchorNode);
601
+
602
+ // 1 space only following the item mention
603
+ textNode.parentElement.insertBefore(window.document.createTextNode('\u00A0'), windowSelection.anchorNode);
604
+ if (post) textNode.parentElement.insertBefore(window.document.createTextNode(post), windowSelection.anchorNode);
605
+
606
+ // Remove the text node
607
+ textNode.remove();
608
+
609
+ // Invoke onChange method with new value
610
+ const valueInput = (0, _utils.innerHTMLToText)(refs.root.current.innerHTML);
611
+ if ((0, _utils.is)('function', refs.onChange.current)) refs.onChange.current(valueInput, {
612
+ target: refs.root.current
613
+ });
614
+
615
+ // Update the caret position to be outside the span mention
616
+ // for amount of added characters + 1 space
617
+ const added = `@${itemName}`.length - refs.search.current.length + 1;
618
+ refs.caret.current.start = refs.caret.current.end += added;
619
+ _utils2.caret.restore(refs.root.current, refs.caret.current);
620
+ }
621
+
622
+ // Close the search
623
+ onCloseSearch();
624
+ }, [onChange]);
625
+
626
+ // If users response & not open, open
627
+ // else if no users response & opened, close the search
628
+ _react.default.useEffect(() => {
629
+ if (mention) {
630
+ if (refs.openMenu.current && !optionsMention.length) onCloseSearch();else if (!refs.openMenu.current && refs.search.current && !!optionsMention.length) onOpenSearch();
631
+ }
632
+ }, [mention, optionsMention]);
633
+ _react.default.useEffect(() => {
634
+ if (mention) {
635
+ // Validate
636
+ validate();
637
+
638
+ // Update
639
+ // open, selection & offset
640
+ setTimeout(() => {
641
+ refs.search.current ? onOpenSearch() : onCloseSearch();
642
+ if (refs.openMenu.current) updateSelection();
643
+ updateOffset();
644
+ });
645
+ }
646
+ }, [mention, value]);
647
+ _react.default.useEffect(() => {
648
+ // setError(error_);
649
+ }, [error_]);
650
+ const label = _react.default.useCallback(() => (0, _utils.is)('function', mentionLabel) ? mentionLabel(optionsMention, {
651
+ addTag
652
+ }) : /*#__PURE__*/_react.default.createElement(Line, {
653
+ className: classes.menu
654
+ }, /*#__PURE__*/_react.default.createElement(List, {
655
+ size: "small",
656
+ className: classes.list
657
+ }, optionsMention === null || optionsMention === void 0 ? void 0 : optionsMention.map((item, index) => {
658
+ var _item$name;
659
+ return /*#__PURE__*/_react.default.createElement(ListItem, {
660
+ key: index,
661
+ start: /*#__PURE__*/_react.default.createElement(Avatar, {
662
+ color: (0, _utils.stringToColor)(item.name),
663
+ size: "small"
664
+ }, (_item$name = item.name) === null || _item$name === void 0 ? void 0 : _item$name.slice(0, 1)),
665
+ primary: /*#__PURE__*/_react.default.createElement(Type, {
666
+ version: "l3"
667
+ }, item.name),
668
+ onClick: () => addTag(item),
669
+ button: true
670
+ });
671
+ }))), [optionsMention]);
672
+ const paste = async () => {
673
+ const valueClipboard = await navigator.clipboard.read();
674
+ if (valueClipboard) {
675
+ let values = '';
676
+ for (const item of Array.from(valueClipboard)) {
677
+ const valueItem = await item.getType('text/html');
678
+ values += await valueItem.text();
679
+ }
680
+ rootDocument.execCommand('insertHTML', undefined, values);
681
+ }
682
+ };
683
+ const query = command => {
684
+ return (0, _utils.parse)(refs.rootDocument.current.queryCommandValue(command));
685
+ };
686
+ const textQueryUpdate = () => {
687
+ const selected = [];
688
+ const updateOptionValues = [{
689
+ name: 'italic',
690
+ command: 'italic'
691
+ }, {
692
+ name: 'underline',
693
+ command: 'underline'
694
+ }, {
695
+ name: 'bold',
696
+ command: 'bold'
697
+ }, {
698
+ name: 'strike-line',
699
+ command: 'strikeThrough'
700
+ }];
701
+ updateOptionValues.forEach(item => {
702
+ if (query(item.command)) selected.push(item.name);
703
+ });
704
+ setTextSelected(selected);
705
+ };
706
+ const onMouseUp = _react.default.useCallback(() => {
707
+ if (!refs.edit.current) return;
708
+ const selection_ = refs.rootWindow.current.getSelection();
709
+ if (!selection_) return;
710
+ if (!selection_.anchorNode || !refs.root.current.contains(selection_.anchorNode)) return setTextSelection(null);
711
+ setTimeout(() => {
712
+ var _selection_$anchorNod2;
713
+ const rect = selection_.getRangeAt(0).getBoundingClientRect();
714
+ setTextSelection(Math.round(rect.width) ? {
715
+ selection: rect,
716
+ element: (_selection_$anchorNod2 = selection_.anchorNode) === null || _selection_$anchorNod2 === void 0 ? void 0 : _selection_$anchorNod2.parentElement
717
+ } : null);
718
+ textQueryUpdate();
719
+ }, 140);
720
+ }, []);
721
+ const onMouseDown = _react.default.useCallback(() => {
722
+ if (!refs.edit.current) return;
723
+ textQueryUpdate();
724
+ }, []);
725
+ const onKeyUp = _react.default.useCallback(() => {
726
+ if (!refs.edit.current) return;
727
+ textQueryUpdate();
728
+ }, []);
729
+ const textMethod = _react.default.useCallback(command => argument => {
730
+ var _refs$textSelection$c;
731
+ switch (command) {
732
+ // updates
733
+ case 'italic':
734
+ refs.rootDocument.current.execCommand('italic');
735
+ if (query('italic')) setTextSelected(values => [...values, 'italic']);else setTextSelected(values => values.filter(item => item !== 'italic'));
736
+ break;
737
+ case 'underline':
738
+ refs.rootDocument.current.execCommand('underline');
739
+ if (query('underline')) setTextSelected(values => [...values, 'underline']);else setTextSelected(values => values.filter(item => item !== 'underline'));
740
+ break;
741
+ case 'bold':
742
+ refs.rootDocument.current.execCommand('bold');
743
+ if (query('bold')) setTextSelected(values => [...values, 'bold']);else setTextSelected(values => values.filter(item => item !== 'bold'));
744
+ break;
745
+ case 'strike-line':
746
+ refs.rootDocument.current.execCommand('strikeThrough');
747
+ if (query('strikeThrough')) setTextSelected(values => [...values, 'strike-line']);else setTextSelected(values => values.filter(item => item !== 'strike-line'));
748
+ break;
749
+ case 'align-left':
750
+ refs.rootDocument.current.execCommand('justifyLeft');
751
+ if (query('justifyLeft')) setTextSelected(values => [...values.filter(item => !item.includes('align')), 'align-left']);else setTextSelected(values => values.filter(item => item !== 'align-left'));
752
+ break;
753
+ case 'align-center':
754
+ refs.rootDocument.current.execCommand('justifyCenter');
755
+ if (query('justifyCenter')) setTextSelected(values => [...values.filter(item => !item.includes('align')), 'align-center']);else setTextSelected(values => values.filter(item => item !== 'align-center'));
756
+ break;
757
+ case 'align-right':
758
+ refs.rootDocument.current.execCommand('justifyRight');
759
+ if (query('justifyRight')) setTextSelected(values => [...values.filter(item => !item.includes('align')), 'align-right']);else setTextSelected(values => values.filter(item => item !== 'align-right'));
760
+ break;
761
+ case 'align-justify':
762
+ refs.rootDocument.current.execCommand('justifyFull');
763
+ if (query('justifyFull')) setTextSelected(values => [...values.filter(item => !item.includes('align')), 'align-justify']);else setTextSelected(values => values.filter(item => item !== 'align-justify'));
764
+ break;
765
+ case 'superscript':
766
+ refs.rootDocument.current.execCommand('superscript');
767
+ if (query('superscript')) setTextSelected(values => [...values, 'superscript']);else setTextSelected(values => values.filter(item => item !== 'superscript'));
768
+ break;
769
+ case 'subscript':
770
+ refs.rootDocument.current.execCommand('subscript');
771
+ if (query('subscript')) setTextSelected(values => [...values, 'subscript']);else setTextSelected(values => values.filter(item => item !== 'subscript'));
772
+ break;
773
+ case 'indent':
774
+ refs.rootDocument.current.execCommand('indent');
775
+ break;
776
+ case 'outdent':
777
+ refs.rootDocument.current.execCommand('outdent');
778
+ break;
779
+ case 'font-version':
780
+ refs.rootDocument.current.execCommand('formatBlock', undefined, argument);
781
+ break;
782
+ case 'font-family':
783
+ refs.rootDocument.current.execCommand('styleWithCSS', true);
784
+ refs.rootDocument.current.execCommand('fontName', undefined, argument);
785
+ refs.rootDocument.current.execCommand('styleWithCSS', false);
786
+ break;
787
+ case 'font-size':
788
+ refs.rootDocument.current.execCommand('styleWithCSS', true);
789
+ refs.rootDocument.current.execCommand('fontSize', undefined, argument);
790
+ refs.rootDocument.current.execCommand('styleWithCSS', false);
791
+ break;
792
+ case 'font-color':
793
+ refs.rootDocument.current.execCommand('styleWithCSS', true);
794
+ refs.rootDocument.current.execCommand('foreColor', undefined, argument);
795
+ refs.rootDocument.current.execCommand('styleWithCSS', false);
796
+ break;
797
+ case 'font-background':
798
+ refs.rootDocument.current.execCommand('styleWithCSS', true);
799
+ refs.rootDocument.current.execCommand('backColor', undefined, argument);
800
+ refs.rootDocument.current.execCommand('styleWithCSS', false);
801
+ break;
802
+ case 'list-ordered':
803
+ refs.rootDocument.current.execCommand('insertOrderedList');
804
+ if (query('insertOrderedList')) setTextSelected(values => [...values.filter(item => !item.includes('list')), 'list-ordered']);else setTextSelected(values => values.filter(item => item !== 'list-ordered'));
805
+ break;
806
+ case 'list-unordered':
807
+ refs.rootDocument.current.execCommand('insertUnorderedList');
808
+ if (query('insertUnorderedList')) setTextSelected(values => [...values.filter(item => !item.includes('list')), 'list-unordered']);else setTextSelected(values => values.filter(item => item !== 'list-unordered'));
809
+ break;
810
+ case 'horizontal-rule':
811
+ refs.rootDocument.current.execCommand('insertHorizontalRule');
812
+ break;
813
+ case 'link-add':
814
+ refs.rootDocument.current.execCommand('createLink', undefined, argument);
815
+ break;
816
+ case 'link-remove':
817
+ refs.rootDocument.current.execCommand('unlink');
818
+ break;
819
+ case 'image':
820
+ refs.rootDocument.current.execCommand('insertImage', undefined, argument);
821
+ break;
822
+ case 'html':
823
+ refs.rootDocument.current.execCommand('insertHTML', undefined, argument);
824
+ break;
825
+
826
+ // actions
827
+ case 'copy':
828
+ refs.rootDocument.current.execCommand('copy');
829
+ break;
830
+ case 'cut':
831
+ refs.rootDocument.current.execCommand('cut');
832
+ break;
833
+ case 'paste':
834
+ if (refs.rootDocument.current.queryCommandSupported('paste')) refs.rootDocument.current.execCommand('paste');else paste();
835
+ break;
836
+ case 'delete':
837
+ refs.rootDocument.current.execCommand('delete');
838
+ break;
839
+ case 'clear':
840
+ refs.rootDocument.current.execCommand('removeFormat');
841
+ break;
842
+ case 'select-all':
843
+ refs.rootDocument.current.execCommand('selectAll');
844
+ break;
845
+ case 'undo':
846
+ refs.rootDocument.current.execCommand('undo');
847
+ break;
848
+ case 'redo':
849
+ refs.rootDocument.current.execCommand('redo');
850
+ break;
851
+ default:
852
+ break;
853
+ }
854
+ const element = (_refs$textSelection$c = refs.textSelection.current) === null || _refs$textSelection$c === void 0 ? void 0 : _refs$textSelection$c.element;
855
+ if (element) {
856
+ let valueElement = element.innerHTML || '';
857
+ if (element.textContent === '') {
858
+ valueElement = '';
859
+ element.innerHTML = '';
860
+ }
861
+ if (valueElement) valueElement = (0, _utils.innerHTMLToText)(valueElement);
862
+ }
863
+ textQueryUpdate();
864
+ }, []);
865
+ const PaletteItem = _react.default.useCallback(propsItem => {
866
+ const {
867
+ color: color_
868
+ } = propsItem,
869
+ other_ = (0, _objectWithoutProperties2.default)(propsItem, _excluded2);
870
+ return /*#__PURE__*/_react.default.createElement("span", (0, _extends2.default)({
871
+ className: (0, _styleReact.classNames)([(0, _utils2.staticClassName)('RichTextEditor', theme) && ['onesy-RichTextEditor-palette-item'], classes.paletteItem]),
872
+ style: {
873
+ background: color_
874
+ }
875
+ }, other_));
876
+ }, []);
877
+ const Palette = _react.default.useCallback(/*#__PURE__*/_react.default.forwardRef((propsPalette, ref_) => {
878
+ const {
879
+ version: version_,
880
+ onUpdate: onUpdate_,
881
+ onClose
882
+ } = propsPalette,
883
+ other_ = (0, _objectWithoutProperties2.default)(propsPalette, _excluded3);
884
+ const onUpdateColor = itemColor => {
885
+ if (refs.range.current) {
596
886
  const selection_ = refs.rootWindow.current.getSelection();
597
- if (!selection_)
598
- return;
599
- if (!selection_.anchorNode || !refs.root.current.contains(selection_.anchorNode))
600
- return setTextSelection(null);
601
- setTimeout(() => {
602
- var _a;
603
- const rect = selection_.getRangeAt(0).getBoundingClientRect();
604
- setTextSelection(Math.round(rect.width) ? { selection: rect, element: (_a = selection_.anchorNode) === null || _a === void 0 ? void 0 : _a.parentElement } : null);
605
- textQueryUpdate();
606
- }, 140);
607
- }, []);
608
- const onMouseDown = react_1.default.useCallback(() => {
609
- if (!refs.edit.current)
610
- return;
611
- textQueryUpdate();
612
- }, []);
613
- const onKeyUp = react_1.default.useCallback(() => {
614
- if (!refs.edit.current)
615
- return;
616
- textQueryUpdate();
617
- }, []);
618
- const textMethod = react_1.default.useCallback((command) => (argument) => {
619
- var _a;
620
- switch (command) {
621
- // updates
622
- case 'italic':
623
- refs.rootDocument.current.execCommand('italic');
624
- if (query('italic'))
625
- setTextSelected(values => [...values, 'italic']);
626
- else
627
- setTextSelected(values => values.filter(item => item !== 'italic'));
628
- break;
629
- case 'underline':
630
- refs.rootDocument.current.execCommand('underline');
631
- if (query('underline'))
632
- setTextSelected(values => [...values, 'underline']);
633
- else
634
- setTextSelected(values => values.filter(item => item !== 'underline'));
635
- break;
636
- case 'bold':
637
- refs.rootDocument.current.execCommand('bold');
638
- if (query('bold'))
639
- setTextSelected(values => [...values, 'bold']);
640
- else
641
- setTextSelected(values => values.filter(item => item !== 'bold'));
642
- break;
643
- case 'strike-line':
644
- refs.rootDocument.current.execCommand('strikeThrough');
645
- if (query('strikeThrough'))
646
- setTextSelected(values => [...values, 'strike-line']);
647
- else
648
- setTextSelected(values => values.filter(item => item !== 'strike-line'));
649
- break;
650
- case 'align-left':
651
- refs.rootDocument.current.execCommand('justifyLeft');
652
- if (query('justifyLeft'))
653
- setTextSelected(values => [...values.filter(item => !item.includes('align')), 'align-left']);
654
- else
655
- setTextSelected(values => values.filter(item => item !== 'align-left'));
656
- break;
657
- case 'align-center':
658
- refs.rootDocument.current.execCommand('justifyCenter');
659
- if (query('justifyCenter'))
660
- setTextSelected(values => [...values.filter(item => !item.includes('align')), 'align-center']);
661
- else
662
- setTextSelected(values => values.filter(item => item !== 'align-center'));
663
- break;
664
- case 'align-right':
665
- refs.rootDocument.current.execCommand('justifyRight');
666
- if (query('justifyRight'))
667
- setTextSelected(values => [...values.filter(item => !item.includes('align')), 'align-right']);
668
- else
669
- setTextSelected(values => values.filter(item => item !== 'align-right'));
670
- break;
671
- case 'align-justify':
672
- refs.rootDocument.current.execCommand('justifyFull');
673
- if (query('justifyFull'))
674
- setTextSelected(values => [...values.filter(item => !item.includes('align')), 'align-justify']);
675
- else
676
- setTextSelected(values => values.filter(item => item !== 'align-justify'));
677
- break;
678
- case 'superscript':
679
- refs.rootDocument.current.execCommand('superscript');
680
- if (query('superscript'))
681
- setTextSelected(values => [...values, 'superscript']);
682
- else
683
- setTextSelected(values => values.filter(item => item !== 'superscript'));
684
- break;
685
- case 'subscript':
686
- refs.rootDocument.current.execCommand('subscript');
687
- if (query('subscript'))
688
- setTextSelected(values => [...values, 'subscript']);
689
- else
690
- setTextSelected(values => values.filter(item => item !== 'subscript'));
691
- break;
692
- case 'indent':
693
- refs.rootDocument.current.execCommand('indent');
694
- break;
695
- case 'outdent':
696
- refs.rootDocument.current.execCommand('outdent');
697
- break;
698
- case 'font-version':
699
- refs.rootDocument.current.execCommand('formatBlock', undefined, argument);
700
- break;
701
- case 'font-family':
702
- refs.rootDocument.current.execCommand('styleWithCSS', true);
703
- refs.rootDocument.current.execCommand('fontName', undefined, argument);
704
- refs.rootDocument.current.execCommand('styleWithCSS', false);
705
- break;
706
- case 'font-size':
707
- refs.rootDocument.current.execCommand('styleWithCSS', true);
708
- refs.rootDocument.current.execCommand('fontSize', undefined, argument);
709
- refs.rootDocument.current.execCommand('styleWithCSS', false);
710
- break;
711
- case 'font-color':
712
- refs.rootDocument.current.execCommand('styleWithCSS', true);
713
- refs.rootDocument.current.execCommand('foreColor', undefined, argument);
714
- refs.rootDocument.current.execCommand('styleWithCSS', false);
715
- break;
716
- case 'font-background':
717
- refs.rootDocument.current.execCommand('styleWithCSS', true);
718
- refs.rootDocument.current.execCommand('backColor', undefined, argument);
719
- refs.rootDocument.current.execCommand('styleWithCSS', false);
720
- break;
721
- case 'list-ordered':
722
- refs.rootDocument.current.execCommand('insertOrderedList');
723
- if (query('insertOrderedList'))
724
- setTextSelected(values => [...values.filter(item => !item.includes('list')), 'list-ordered']);
725
- else
726
- setTextSelected(values => values.filter(item => item !== 'list-ordered'));
727
- break;
728
- case 'list-unordered':
729
- refs.rootDocument.current.execCommand('insertUnorderedList');
730
- if (query('insertUnorderedList'))
731
- setTextSelected(values => [...values.filter(item => !item.includes('list')), 'list-unordered']);
732
- else
733
- setTextSelected(values => values.filter(item => item !== 'list-unordered'));
734
- break;
735
- case 'horizontal-rule':
736
- refs.rootDocument.current.execCommand('insertHorizontalRule');
737
- break;
738
- case 'link-add':
739
- refs.rootDocument.current.execCommand('createLink', undefined, argument);
740
- break;
741
- case 'link-remove':
742
- refs.rootDocument.current.execCommand('unlink');
743
- break;
744
- case 'image':
745
- refs.rootDocument.current.execCommand('insertImage', undefined, argument);
746
- break;
747
- case 'html':
748
- refs.rootDocument.current.execCommand('insertHTML', undefined, argument);
749
- break;
750
- // actions
751
- case 'copy':
752
- refs.rootDocument.current.execCommand('copy');
753
- break;
754
- case 'cut':
755
- refs.rootDocument.current.execCommand('cut');
756
- break;
757
- case 'paste':
758
- if (refs.rootDocument.current.queryCommandSupported('paste'))
759
- refs.rootDocument.current.execCommand('paste');
760
- else
761
- paste();
762
- break;
763
- case 'delete':
764
- refs.rootDocument.current.execCommand('delete');
765
- break;
766
- case 'clear':
767
- refs.rootDocument.current.execCommand('removeFormat');
768
- break;
769
- case 'select-all':
770
- refs.rootDocument.current.execCommand('selectAll');
771
- break;
772
- case 'undo':
773
- refs.rootDocument.current.execCommand('undo');
774
- break;
775
- case 'redo':
776
- refs.rootDocument.current.execCommand('redo');
777
- break;
778
- default:
779
- break;
887
+ selection_.removeAllRanges();
888
+ selection_.addRange(refs.range.current);
889
+ }
890
+ onUpdate_(itemColor);
891
+ onClose();
892
+ };
893
+ return /*#__PURE__*/_react.default.createElement(Line, (0, _extends2.default)({
894
+ ref: ref_,
895
+ gap: 1,
896
+ direction: "column",
897
+ tonal: tonal,
898
+ color: refs.props.current.color !== undefined ? refs.props.current.color : 'themed',
899
+ Component: Surface,
900
+ className: (0, _styleReact.classNames)([(0, _utils2.staticClassName)('RichTextEditor', theme) && ['onesy-RichTextEditor-palette'], classes.palette])
901
+ }, other_), /*#__PURE__*/_react.default.createElement(Line, {
902
+ gap: 0.5,
903
+ style: {
904
+ maxHeight: 136,
905
+ padding: '10px 10px 0',
906
+ overflow: 'hidden auto'
907
+ }
908
+ }, /*#__PURE__*/_react.default.createElement(Line, {
909
+ gap: 0.5,
910
+ direction: "row",
911
+ style: {
912
+ width: '100%'
913
+ }
914
+ }, /*#__PURE__*/_react.default.createElement(PaletteItem, {
915
+ color: "#000000",
916
+ onClick: () => {
917
+ onUpdateColor('#000000');
918
+ }
919
+ }), /*#__PURE__*/_react.default.createElement(PaletteItem, {
920
+ color: "#ffffff",
921
+ onClick: () => {
922
+ onUpdateColor('#ffffff');
923
+ }
924
+ })), Object.keys(_styleReact.colors).filter(item => !['black', 'white'].includes(item)).map((item, index) => /*#__PURE__*/_react.default.createElement(Line, {
925
+ key: index,
926
+ gap: 0.5,
927
+ direction: "row",
928
+ style: {
929
+ width: '100%'
930
+ }
931
+ }, Object.keys(_styleReact.colors[item]).map((item_, index_) => /*#__PURE__*/_react.default.createElement(PaletteItem, {
932
+ key: index_,
933
+ color: _styleReact.colors[item][item_],
934
+ onClick: () => {
935
+ onUpdateColor(_styleReact.colors[item][item_]);
936
+ }
937
+ }))))), /*#__PURE__*/_react.default.createElement(Divider, null), /*#__PURE__*/_react.default.createElement(Line, {
938
+ gap: 0.5,
939
+ direction: "row",
940
+ align: "center",
941
+ fullWidth: true,
942
+ style: {
943
+ padding: '0px 10px 10px'
944
+ }
945
+ }, /*#__PURE__*/_react.default.createElement(ColorTextField, (0, _extends2.default)({
946
+ tonal: tonal,
947
+ color: color,
948
+ name: l('Custom color'),
949
+ version: "outlined",
950
+ size: "small",
951
+ value: refs.inputValues.current[version_],
952
+ onChange: valueNew => updateInputValues(version_, valueNew)
953
+ }, ColorTextFieldProps, {
954
+ 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])
955
+ })), /*#__PURE__*/_react.default.createElement(Button, {
956
+ tonal: tonal,
957
+ color: "inherit",
958
+ version: "text",
959
+ size: "small",
960
+ onClick: () => {
961
+ if (refs.range.current) {
962
+ const selection_ = refs.rootWindow.current.getSelection();
963
+ selection_.removeAllRanges();
964
+ selection_.addRange(refs.range.current);
780
965
  }
781
- const element = (_a = refs.textSelection.current) === null || _a === void 0 ? void 0 : _a.element;
782
- if (element) {
783
- let valueElement = element.innerHTML || '';
784
- if (element.textContent === '') {
785
- valueElement = '';
786
- element.innerHTML = '';
787
- }
788
- if (valueElement)
789
- valueElement = (0, utils_1.innerHTMLToText)(valueElement);
966
+ onUpdate_(refs.inputValues.current[version_]);
967
+ onClose();
968
+ }
969
+ }, "Apply")));
970
+ }), []);
971
+ const AppendProps = {
972
+ padding: [14, 14]
973
+ };
974
+ const IconProps = {
975
+ size: 'small'
976
+ };
977
+ const TooltipProps = {
978
+ position: 'bottom',
979
+ interactive: false
980
+ };
981
+ const ToggleButtonsProps = {
982
+ tonal: false,
983
+ color: 'default',
984
+ version: 'text',
985
+ border: false
986
+ };
987
+ const ToggleButtonProps = {
988
+ size: 'small'
989
+ };
990
+ const Input = _react.default.useCallback(/*#__PURE__*/_react.default.forwardRef((propsInput, ref_) => {
991
+ const {
992
+ label: labelInput,
993
+ labelButton,
994
+ value: value__,
995
+ onChange: onChange__,
996
+ onClick,
997
+ placeholder: placeholderInputProps,
998
+ InputComponent = TextField,
999
+ InputProps
1000
+ } = propsInput,
1001
+ other_ = (0, _objectWithoutProperties2.default)(propsInput, _excluded4);
1002
+ return /*#__PURE__*/_react.default.createElement(Line, (0, _extends2.default)({
1003
+ ref: ref_,
1004
+ gap: 1,
1005
+ direction: "column",
1006
+ color: "themed",
1007
+ Component: Surface
1008
+ }, other_, {
1009
+ className: (0, _styleReact.classNames)([other_ === null || other_ === void 0 ? void 0 : other_.className, classes.inputWrapper])
1010
+ }), /*#__PURE__*/_react.default.createElement(Line, {
1011
+ gap: 0.5,
1012
+ direction: "row",
1013
+ align: "center",
1014
+ style: {
1015
+ width: '100%'
1016
+ }
1017
+ }, /*#__PURE__*/_react.default.createElement(InputComponent, (0, _extends2.default)({
1018
+ name: labelInput,
1019
+ version: "outlined",
1020
+ size: "small",
1021
+ valueDefault: value__,
1022
+ onChange: onChange__,
1023
+ placeholder: placeholderInputProps,
1024
+ flex: true
1025
+ }, InputProps, {
1026
+ style: {
1027
+ width: 'unset',
1028
+ flex: '1 1 auto'
1029
+ }
1030
+ })), /*#__PURE__*/_react.default.createElement(Button, {
1031
+ color: "inherit",
1032
+ version: "text",
1033
+ size: "small",
1034
+ onClick: onClick
1035
+ }, labelButton)));
1036
+ }), []);
1037
+ const WrapperAppend = _react.default.useCallback(propsWrapper => {
1038
+ const {
1039
+ open: open_,
1040
+ element,
1041
+ anchorElement,
1042
+ onClose,
1043
+ children: childrenWrapperAppend
1044
+ } = propsWrapper,
1045
+ other_ = (0, _objectWithoutProperties2.default)(propsWrapper, _excluded5);
1046
+ return /*#__PURE__*/_react.default.createElement(Append, (0, _extends2.default)({
1047
+ open: open_,
1048
+ element: /*#__PURE__*/_react.default.createElement("div", {
1049
+ className: (0, _styleReact.classNames)([(0, _utils2.staticClassName)('SmartTextField', theme) && ['onesy-SmartTextField-mini-menu-additional'], classes.textMiniMenuAdditionalMenu])
1050
+ }, /*#__PURE__*/_react.default.createElement(Fade, {
1051
+ in: open_,
1052
+ add: true
1053
+ }, /*#__PURE__*/_react.default.cloneElement(element))),
1054
+ anchorElement: anchorElement,
1055
+ portal: true,
1056
+ alignment: "center",
1057
+ position: "bottom"
1058
+ }, AppendProps), /*#__PURE__*/_react.default.cloneElement(childrenWrapperAppend, _objectSpread(_objectSpread({}, other_), childrenWrapperAppend.props)));
1059
+ }, []);
1060
+ const WrapperToggleButton = _react.default.useCallback(/*#__PURE__*/_react.default.forwardRef((propsWrapperToggleButton, ref_) => {
1061
+ const {
1062
+ open: open_,
1063
+ name: nameWrapperToogleButton,
1064
+ children: childrenWrapperToggleButton
1065
+ } = propsWrapperToggleButton,
1066
+ other_ = (0, _objectWithoutProperties2.default)(propsWrapperToggleButton, _excluded6);
1067
+ return /*#__PURE__*/_react.default.createElement(Tooltip, (0, _extends2.default)({
1068
+ open: open_ !== undefined ? open_ : undefined,
1069
+ name: nameWrapperToogleButton
1070
+ }, TooltipProps), /*#__PURE__*/_react.default.cloneElement(childrenWrapperToggleButton, _objectSpread(_objectSpread({}, other_), childrenWrapperToggleButton.props)));
1071
+ }), []);
1072
+ const updateElements = {
1073
+ 'italic': /*#__PURE__*/_react.default.createElement(WrapperToggleButton, {
1074
+ name: l('Italic')
1075
+ }, /*#__PURE__*/_react.default.createElement(ToggleButton, (0, _extends2.default)({}, ToggleButtonProps, {
1076
+ selected: refs.textSelected.current.includes('italic'),
1077
+ onClick: textMethod('italic')
1078
+ }), /*#__PURE__*/_react.default.createElement(_IconMaterialFormatItalicW.default, IconProps))),
1079
+ 'underline': /*#__PURE__*/_react.default.createElement(WrapperToggleButton, {
1080
+ name: l('Underline')
1081
+ }, /*#__PURE__*/_react.default.createElement(ToggleButton, (0, _extends2.default)({}, ToggleButtonProps, {
1082
+ selected: refs.textSelected.current.includes('underline'),
1083
+ onClick: textMethod('underline')
1084
+ }), /*#__PURE__*/_react.default.createElement(_IconMaterialFormatUnderlinedW.default, IconProps))),
1085
+ 'bold': /*#__PURE__*/_react.default.createElement(WrapperToggleButton, {
1086
+ name: l('Bold'),
1087
+ onClick: textMethod('bold')
1088
+ }, /*#__PURE__*/_react.default.createElement(ToggleButton, (0, _extends2.default)({}, ToggleButtonProps, {
1089
+ selected: refs.textSelected.current.includes('bold')
1090
+ }), /*#__PURE__*/_react.default.createElement(_IconMaterialFormatBoldW.default, IconProps))),
1091
+ 'superscript': /*#__PURE__*/_react.default.createElement(WrapperToggleButton, {
1092
+ name: l('Superscript'),
1093
+ onClick: textMethod('superscript')
1094
+ }, /*#__PURE__*/_react.default.createElement(ToggleButton, (0, _extends2.default)({}, ToggleButtonProps, {
1095
+ selected: refs.textSelected.current.includes('superscript')
1096
+ }), /*#__PURE__*/_react.default.createElement(_IconMaterialSuperscriptW.default, IconProps))),
1097
+ 'subscript': /*#__PURE__*/_react.default.createElement(WrapperToggleButton, {
1098
+ name: l('Subscript'),
1099
+ onClick: textMethod('subscript')
1100
+ }, /*#__PURE__*/_react.default.createElement(ToggleButton, (0, _extends2.default)({}, ToggleButtonProps, {
1101
+ selected: refs.textSelected.current.includes('subscript')
1102
+ }), /*#__PURE__*/_react.default.createElement(_IconMaterialSubscriptW.default, IconProps))),
1103
+ 'strike-line': /*#__PURE__*/_react.default.createElement(WrapperToggleButton, {
1104
+ name: l('Strike Line'),
1105
+ onClick: textMethod('strike-line')
1106
+ }, /*#__PURE__*/_react.default.createElement(ToggleButton, (0, _extends2.default)({}, ToggleButtonProps, {
1107
+ selected: refs.textSelected.current.includes('strike-line')
1108
+ }), /*#__PURE__*/_react.default.createElement(_IconMaterialStrikethroughSW.default, IconProps))),
1109
+ 'link-add': /*#__PURE__*/_react.default.createElement(WrapperAppend, {
1110
+ open: refs.open.current.linkMiniMenu,
1111
+ anchorElement: refs.miniMenuElements.linkAdd,
1112
+ element: /*#__PURE__*/_react.default.createElement(ClickListener, {
1113
+ onClickOutside: () => updateOpen('linkMiniMenu', false),
1114
+ include: [refs.miniMenuElements.linkAdd]
1115
+ }, /*#__PURE__*/_react.default.createElement(Input, {
1116
+ ref: refs.miniMenuElements.linkAddInput,
1117
+ name: l('Link'),
1118
+ labelButton: l('Add'),
1119
+ value: refs.inputValues.current.link,
1120
+ onChange: valueNew => updateInputValues('link', valueNew),
1121
+ placeholder: l('URL'),
1122
+ onClick: () => {
1123
+ if (refs.range.current) {
1124
+ const selection_ = refs.rootWindow.current.getSelection();
1125
+ if (!selection_) return;
1126
+ selection_.removeAllRanges();
1127
+ selection_.addRange(refs.range.current);
1128
+ }
1129
+ textMethod('link-add')(refs.inputValues.current.link);
1130
+ updateOpen('linkMiniMenu', false);
1131
+ updateInputValues('link', '');
1132
+ },
1133
+ className: classes.input
1134
+ }))
1135
+ }, /*#__PURE__*/_react.default.createElement(WrapperToggleButton, {
1136
+ name: l('Insert Link'),
1137
+ open: refs.open.current.linkMiniMenu ? false : undefined
1138
+ }, /*#__PURE__*/_react.default.createElement(ToggleButton, (0, _extends2.default)({
1139
+ ref: refs.miniMenuElements.linkAdd
1140
+ }, ToggleButtonProps, {
1141
+ selected: refs.open.current.linkMiniMenu,
1142
+ onClick: () => updateOpen('linkMiniMenu', !refs.open.current.linkMiniMenu)
1143
+ }), /*#__PURE__*/_react.default.createElement(_IconMaterialAddLinkW.default, IconProps)))),
1144
+ 'link-remove': /*#__PURE__*/_react.default.createElement(WrapperToggleButton, {
1145
+ name: l('Remove Link')
1146
+ }, /*#__PURE__*/_react.default.createElement(ToggleButton, (0, _extends2.default)({}, ToggleButtonProps, {
1147
+ onClick: textMethod('link-remove')
1148
+ }), /*#__PURE__*/_react.default.createElement(_IconMaterialLinkOffW.default, IconProps))),
1149
+ 'font-color': /*#__PURE__*/_react.default.createElement(WrapperAppend, {
1150
+ open: refs.open.current.color,
1151
+ anchorElement: refs.elements.color.current,
1152
+ element: /*#__PURE__*/_react.default.createElement(ClickListener, {
1153
+ onClickOutside: () => updateOpen('color', false),
1154
+ include: [refs.elements.color.current]
1155
+ }, /*#__PURE__*/_react.default.createElement(Palette, {
1156
+ version: "font-color",
1157
+ onClose: () => updateOpen('color', false),
1158
+ onUpdate: () => {
1159
+ if (refs.range.current) {
1160
+ const selection_ = refs.rootWindow.current.getSelection();
1161
+ selection_.removeAllRanges();
1162
+ selection_.addRange(refs.range.current);
1163
+ }
1164
+ textMethod('font-color');
790
1165
  }
791
- textQueryUpdate();
792
- }, []);
793
- const PaletteItem = react_1.default.useCallback((propsItem) => {
794
- const { color: color_ } = propsItem, other_ = __rest(propsItem, ["color"]);
795
- return ((0, jsx_runtime_1.jsx)("span", Object.assign({ className: (0, style_react_1.classNames)([
796
- (0, utils_2.staticClassName)('RichTextEditor', theme) && [
797
- 'onesy-RichTextEditor-palette-item'
798
- ],
799
- classes.paletteItem
800
- ]), style: {
801
- background: color_
802
- } }, other_)));
803
- }, []);
804
- const Palette = react_1.default.useCallback(react_1.default.forwardRef((propsPalette, ref_) => {
805
- const { version: version_, onUpdate: onUpdate_, onClose } = propsPalette, other_ = __rest(propsPalette, ["version", "onUpdate", "onClose"]);
806
- const onUpdateColor = itemColor => {
807
- if (refs.range.current) {
808
- const selection_ = refs.rootWindow.current.getSelection();
809
- selection_.removeAllRanges();
810
- selection_.addRange(refs.range.current);
811
- }
812
- onUpdate_(itemColor);
813
- onClose();
814
- };
815
- 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)([
816
- (0, utils_2.staticClassName)('RichTextEditor', theme) && [
817
- 'onesy-RichTextEditor-palette'
818
- ],
819
- classes.palette
820
- ]) }, other_, { children: [(0, jsx_runtime_1.jsxs)(Line, Object.assign({ gap: 0.5, style: {
821
- maxHeight: 136,
822
- padding: '10px 10px 0',
823
- overflow: 'hidden auto'
824
- } }, { children: [(0, jsx_runtime_1.jsxs)(Line, Object.assign({ gap: 0.5, direction: 'row', style: {
825
- width: '100%'
826
- } }, { children: [(0, jsx_runtime_1.jsx)(PaletteItem, { color: '#000000', onClick: () => {
827
- onUpdateColor('#000000');
828
- } }), (0, jsx_runtime_1.jsx)(PaletteItem, { color: '#ffffff', onClick: () => {
829
- onUpdateColor('#ffffff');
830
- } })] })), 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: {
831
- width: '100%'
832
- } }, { 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: () => {
833
- onUpdateColor(style_react_1.colors[item][item_]);
834
- } }, index_))) }), index)))] })), (0, jsx_runtime_1.jsx)(Divider, {}), (0, jsx_runtime_1.jsxs)(Line, Object.assign({ gap: 0.5, direction: 'row', align: 'center', fullWidth: true, style: {
835
- padding: '0px 10px 10px'
836
- } }, { 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)([
837
- (0, utils_2.staticClassName)('RichTextEditor', theme) && [
838
- 'onesy-RichTextEditor-text-field-color'
839
- ],
840
- ColorTextFieldProps === null || ColorTextFieldProps === void 0 ? void 0 : ColorTextFieldProps.className,
841
- classes.textFieldColor
842
- ]) })), (0, jsx_runtime_1.jsx)(Button, Object.assign({ tonal: tonal, color: 'inherit', version: 'text', size: 'small', onClick: () => {
843
- if (refs.range.current) {
844
- const selection_ = refs.rootWindow.current.getSelection();
845
- selection_.removeAllRanges();
846
- selection_.addRange(refs.range.current);
847
- }
848
- onUpdate_(refs.inputValues.current[version_]);
849
- onClose();
850
- } }, { children: "Apply" }))] }))] })));
851
- }), []);
852
- const AppendProps = {
853
- padding: [14, 14]
854
- };
855
- const IconProps = {
856
- size: 'small'
857
- };
858
- const TooltipProps = {
859
- position: 'bottom',
860
- interactive: false
861
- };
862
- const ToggleButtonsProps = {
863
- tonal: false,
864
- color: 'default',
865
- version: 'text',
866
- border: false
867
- };
868
- const ToggleButtonProps = {
869
- size: 'small'
870
- };
871
- const Input = react_1.default.useCallback(react_1.default.forwardRef((propsInput, ref_) => {
872
- const { label: labelInput, labelButton, value: value__, onChange: onChange__, onClick, placeholder: placeholderInputProps, InputComponent = TextField, InputProps } = propsInput, other_ = __rest(propsInput, ["label", "labelButton", "value", "onChange", "onClick", "placeholder", "InputComponent", "InputProps"]);
873
- return ((0, jsx_runtime_1.jsx)(Line, Object.assign({ ref: ref_, gap: 1, direction: 'column', color: 'themed', Component: Surface }, other_, { className: (0, style_react_1.classNames)([
874
- other_ === null || other_ === void 0 ? void 0 : other_.className,
875
- classes.inputWrapper
876
- ]) }, { children: (0, jsx_runtime_1.jsxs)(Line, Object.assign({ gap: 0.5, direction: 'row', align: 'center', style: {
877
- width: '100%'
878
- } }, { children: [(0, jsx_runtime_1.jsx)(InputComponent, Object.assign({ name: labelInput, version: 'outlined', size: 'small', valueDefault: value__, onChange: onChange__, placeholder: placeholderInputProps, flex: true }, InputProps, { style: {
879
- width: 'unset',
880
- flex: '1 1 auto'
881
- } })), (0, jsx_runtime_1.jsx)(Button, Object.assign({ color: 'inherit', version: 'text', size: 'small', onClick: onClick }, { children: labelButton }))] })) })));
882
- }), []);
883
- const WrapperAppend = react_1.default.useCallback((propsWrapper) => {
884
- const { open: open_, element, anchorElement, onClose, children: childrenWrapperAppend } = propsWrapper, other_ = __rest(propsWrapper, ["open", "element", "anchorElement", "onClose", "children"]);
885
- return ((0, jsx_runtime_1.jsx)(Append, Object.assign({ open: open_, element: ((0, jsx_runtime_1.jsx)("div", Object.assign({ className: (0, style_react_1.classNames)([
886
- (0, utils_2.staticClassName)('SmartTextField', theme) && [
887
- 'onesy-SmartTextField-mini-menu-additional'
888
- ],
889
- classes.textMiniMenuAdditionalMenu
890
- ]) }, { 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(childrenWrapperAppend, Object.assign(Object.assign({}, other_), childrenWrapperAppend.props)) })));
891
- }, []);
892
- const WrapperToggleButton = react_1.default.useCallback(react_1.default.forwardRef((propsWrapperToggleButton, ref_) => {
893
- const { open: open_, name: nameWrapperToogleButton, children: childrenWrapperToggleButton } = propsWrapperToggleButton, other_ = __rest(propsWrapperToggleButton, ["open", "name", "children"]);
894
- return ((0, jsx_runtime_1.jsx)(Tooltip, Object.assign({ open: open_ !== undefined ? open_ : undefined, name: nameWrapperToogleButton }, TooltipProps, { children: react_1.default.cloneElement(childrenWrapperToggleButton, Object.assign(Object.assign({}, other_), childrenWrapperToggleButton.props)) })));
895
- }), []);
896
- const updateElements = {
897
- 'italic': ((0, jsx_runtime_1.jsx)(WrapperToggleButton, Object.assign({ name: l('Italic') }, { children: (0, jsx_runtime_1.jsx)(ToggleButton, Object.assign({}, ToggleButtonProps, { selected: refs.textSelected.current.includes('italic'), onClick: textMethod('italic') }, { children: (0, jsx_runtime_1.jsx)(IconMaterialFormatItalicW100_1.default, Object.assign({}, IconProps)) })) }))),
898
- 'underline': ((0, jsx_runtime_1.jsx)(WrapperToggleButton, Object.assign({ name: l('Underline') }, { children: (0, jsx_runtime_1.jsx)(ToggleButton, Object.assign({}, ToggleButtonProps, { selected: refs.textSelected.current.includes('underline'), onClick: textMethod('underline') }, { children: (0, jsx_runtime_1.jsx)(IconMaterialFormatUnderlinedW100_1.default, Object.assign({}, IconProps)) })) }))),
899
- 'bold': ((0, jsx_runtime_1.jsx)(WrapperToggleButton, Object.assign({ name: l('Bold'), onClick: textMethod('bold') }, { children: (0, jsx_runtime_1.jsx)(ToggleButton, Object.assign({}, ToggleButtonProps, { selected: refs.textSelected.current.includes('bold') }, { children: (0, jsx_runtime_1.jsx)(IconMaterialFormatBoldW100_1.default, Object.assign({}, IconProps)) })) }))),
900
- 'superscript': ((0, jsx_runtime_1.jsx)(WrapperToggleButton, Object.assign({ name: l('Superscript'), onClick: textMethod('superscript') }, { children: (0, jsx_runtime_1.jsx)(ToggleButton, Object.assign({}, ToggleButtonProps, { selected: refs.textSelected.current.includes('superscript') }, { children: (0, jsx_runtime_1.jsx)(IconMaterialSuperscriptW100_1.default, Object.assign({}, IconProps)) })) }))),
901
- 'subscript': ((0, jsx_runtime_1.jsx)(WrapperToggleButton, Object.assign({ name: l('Subscript'), onClick: textMethod('subscript') }, { children: (0, jsx_runtime_1.jsx)(ToggleButton, Object.assign({}, ToggleButtonProps, { selected: refs.textSelected.current.includes('subscript') }, { children: (0, jsx_runtime_1.jsx)(IconMaterialSubscriptW100_1.default, Object.assign({}, IconProps)) })) }))),
902
- 'strike-line': ((0, jsx_runtime_1.jsx)(WrapperToggleButton, Object.assign({ name: l('Strike Line'), onClick: textMethod('strike-line') }, { children: (0, jsx_runtime_1.jsx)(ToggleButton, Object.assign({}, ToggleButtonProps, { selected: refs.textSelected.current.includes('strike-line') }, { children: (0, jsx_runtime_1.jsx)(IconMaterialStrikethroughSW100_1.default, Object.assign({}, IconProps)) })) }))),
903
- 'link-add': ((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), placeholder: l('URL'), onClick: () => {
904
- if (refs.range.current) {
905
- const selection_ = refs.rootWindow.current.getSelection();
906
- if (!selection_)
907
- return;
908
- selection_.removeAllRanges();
909
- selection_.addRange(refs.range.current);
910
- }
911
- textMethod('link-add')(refs.inputValues.current.link);
912
- updateOpen('linkMiniMenu', false);
913
- updateInputValues('link', '');
914
- }, className: classes.input }) }))) }, { children: (0, jsx_runtime_1.jsx)(WrapperToggleButton, Object.assign({ name: l('Insert Link'), open: refs.open.current.linkMiniMenu ? false : undefined }, { children: (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)(IconMaterialAddLinkW100_1.default, Object.assign({}, IconProps)) })) })) }))),
915
- 'link-remove': ((0, jsx_runtime_1.jsx)(WrapperToggleButton, Object.assign({ name: l('Remove Link') }, { children: (0, jsx_runtime_1.jsx)(ToggleButton, Object.assign({}, ToggleButtonProps, { onClick: textMethod('link-remove') }, { children: (0, jsx_runtime_1.jsx)(IconMaterialLinkOffW100_1.default, Object.assign({}, IconProps)) })) }))),
916
- '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: () => {
917
- if (refs.range.current) {
918
- const selection_ = refs.rootWindow.current.getSelection();
919
- selection_.removeAllRanges();
920
- selection_.addRange(refs.range.current);
921
- }
922
- textMethod('font-color');
923
- } }) }))) }, { children: (0, jsx_runtime_1.jsx)(WrapperToggleButton, Object.assign({ name: l('Text Color'), open: refs.open.current.color ? false : undefined }, { children: (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)(IconMaterialFormatColorTextW100_1.default, Object.assign({}, IconProps)) })) })) }))),
924
- '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: textMethod('font-color') }) }))) }, { children: (0, jsx_runtime_1.jsx)(WrapperToggleButton, Object.assign({ name: l('Text Color'), open: refs.open.current.colorMiniMenu ? false : undefined }, { children: (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)(IconMaterialFormatColorTextW100_1.default, Object.assign({}, IconProps)) })) })) }))),
925
- '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: textMethod('font-background') }) }))) }, { children: (0, jsx_runtime_1.jsx)(WrapperToggleButton, Object.assign({ name: l('Background Color'), open: refs.open.current.background ? false : undefined }, { children: (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)(IconMaterialFormatColorFillW100_1.default, Object.assign({}, IconProps)) })) })) }))),
926
- '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: textMethod('font-background') }) }))) }, { children: (0, jsx_runtime_1.jsx)(WrapperToggleButton, Object.assign({ name: l('Text Color'), open: refs.open.current.backgroundMiniMenu ? false : undefined }, { children: (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)(IconMaterialFormatColorFillW100_1.default, Object.assign({}, IconProps)) })) })) }))),
927
- 'align-left': ((0, jsx_runtime_1.jsx)(WrapperToggleButton, Object.assign({ name: l('Align Left') }, { children: (0, jsx_runtime_1.jsx)(ToggleButton, Object.assign({}, ToggleButtonProps, { selected: refs.textSelected.current.includes('align-left'), onClick: textMethod('align-left') }, { children: (0, jsx_runtime_1.jsx)(IconMaterialFormatAlignLeftW100_1.default, Object.assign({}, IconProps)) })) }))),
928
- 'align-center': ((0, jsx_runtime_1.jsx)(WrapperToggleButton, Object.assign({ name: l('Align Center') }, { children: (0, jsx_runtime_1.jsx)(ToggleButton, Object.assign({}, ToggleButtonProps, { selected: refs.textSelected.current.includes('align-center'), onClick: textMethod('align-center') }, { children: (0, jsx_runtime_1.jsx)(IconMaterialFormatAlignCenterW100_1.default, Object.assign({}, IconProps)) })) }))),
929
- 'align-right': ((0, jsx_runtime_1.jsx)(WrapperToggleButton, Object.assign({ name: l('Align Right') }, { children: (0, jsx_runtime_1.jsx)(ToggleButton, Object.assign({}, ToggleButtonProps, { selected: refs.textSelected.current.includes('align-right'), onClick: textMethod('align-right') }, { children: (0, jsx_runtime_1.jsx)(IconMaterialFormatAlignRightW100_1.default, Object.assign({}, IconProps)) })) }))),
930
- 'align-justify': ((0, jsx_runtime_1.jsx)(WrapperToggleButton, Object.assign({ name: l('Align Justify') }, { children: (0, jsx_runtime_1.jsx)(ToggleButton, Object.assign({}, ToggleButtonProps, { selected: refs.textSelected.current.includes('align-justify'), onClick: textMethod('align-justify') }, { children: (0, jsx_runtime_1.jsx)(IconMaterialFormatAlignJustifyW100_1.default, Object.assign({}, IconProps)) })) }))),
931
- 'list-ordered': ((0, jsx_runtime_1.jsx)(WrapperToggleButton, Object.assign({ name: l('List Ordered') }, { children: (0, jsx_runtime_1.jsx)(ToggleButton, Object.assign({}, ToggleButtonProps, { selected: refs.textSelected.current.includes('list-ordered'), onClick: textMethod('list-ordered') }, { children: (0, jsx_runtime_1.jsx)(IconMaterialFormatListNumberedW100_1.default, Object.assign({}, IconProps)) })) }))),
932
- 'list-unordered': ((0, jsx_runtime_1.jsx)(WrapperToggleButton, Object.assign({ name: l('List Unordered') }, { children: (0, jsx_runtime_1.jsx)(ToggleButton, Object.assign({}, ToggleButtonProps, { selected: refs.textSelected.current.includes('list-unordered'), onClick: textMethod('list-unordered') }, { children: (0, jsx_runtime_1.jsx)(IconMaterialFormatListBulletedW100_1.default, Object.assign({}, IconProps)) })) })))
933
- };
934
- const actionElements = {
935
- 'clear': ((0, jsx_runtime_1.jsx)(WrapperToggleButton, Object.assign({ name: l('Clear') }, { children: (0, jsx_runtime_1.jsx)(ToggleButton, Object.assign({}, ToggleButtonProps, { onClick: textMethod('clear') }, { children: (0, jsx_runtime_1.jsx)(IconMaterialFormatClearW100_1.default, Object.assign({}, IconProps)) })) })))
936
- };
937
- const miniMenu = react_1.default.useMemo(() => {
938
- return ((0, jsx_runtime_1.jsx)(Append, Object.assign({ open: !!textSelection, element: (body) => {
939
- const { ref: ref_, values, style: styleAppend } = body;
940
- return ((0, jsx_runtime_1.jsx)("div", Object.assign({ ref: item => {
941
- if (ref_) {
942
- if ((0, utils_1.is)('function', ref_))
943
- ref_(item);
944
- else
945
- ref_.current = item;
946
- refs.miniMenu.current = item;
947
- }
948
- }, style: Object.assign(Object.assign(Object.assign({}, (((values === null || values === void 0 ? void 0 : values.x) === 0 && (values === null || values === void 0 ? void 0 : values.y) === 0) ? {
949
- visibility: 'hidden'
950
- } : undefined)), styleAppend), { zIndex: 1500 }), className: (0, style_react_1.classNames)([
951
- (0, utils_2.staticClassName)('SmartTextField', theme) && [
952
- 'onesy-SmartTextField-mini-menu-wrapper'
953
- ],
954
- classes.textMiniMenuWrapper
955
- ]) }, { children: (0, jsx_runtime_1.jsx)(Fade, Object.assign({ in: !!textSelection, add: true }, { children: (0, jsx_runtime_1.jsx)(ClickListener, Object.assign({ onClickOutside: () => {
956
- setTextSelection(null);
957
- }, 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', wrap: 'wrap', role: 'toolbar', color: 'themed', "aria-label": l('Mini menu'), Component: Surface, className: (0, style_react_1.classNames)([
958
- classes.textMiniMenu
959
- ]) }, { children: [(0, jsx_runtime_1.jsxs)(ToggleButtons, Object.assign({}, ToggleButtonsProps, { children: [updateElements['italic'], updateElements['underline'], updateElements['bold'], updateElements['strike-line']] })), miniMenuExtended && ((0, jsx_runtime_1.jsxs)(ToggleButtons, Object.assign({}, ToggleButtonsProps, { children: [updateElements['align-left'], updateElements['align-center'], updateElements['align-right'], updateElements['align-justify']] }))), miniMenuExtended && ((0, jsx_runtime_1.jsxs)(ToggleButtons, Object.assign({}, ToggleButtonsProps, { children: [updateElements['font-color-mini-menu'], updateElements['font-background-mini-menu']] }))), miniMenuExtended && ((0, jsx_runtime_1.jsxs)(ToggleButtons, Object.assign({}, ToggleButtonsProps, { children: [updateElements['list-ordered'], updateElements['list-unordered']] }))), (0, jsx_runtime_1.jsxs)(ToggleButtons, Object.assign({}, ToggleButtonsProps, { children: [updateElements['superscript'], updateElements['subscript']] })), (0, jsx_runtime_1.jsxs)(ToggleButtons, Object.assign({}, ToggleButtonsProps, { children: [updateElements['link-add'], updateElements['link-remove']] })), (0, jsx_runtime_1.jsx)(ToggleButtons, Object.assign({}, ToggleButtonsProps, { children: actionElements['clear'] }))] })) })) })) })));
960
- }, parent: refs.root.current, anchor: textSelection === null || textSelection === void 0 ? void 0 : textSelection.selection, portal: true, alignment: 'center', position: 'bottom', clearOnClose: true }, AppendProps)));
961
- }, [open, textSelection, textSelected]);
962
- const menu = react_1.default.useMemo(() => {
963
- return ((0, jsx_runtime_1.jsx)(Menu, { open: openMenu, position: 'top', alignment: 'start', offset: offset, anchor: selectionMenu, onClose: onCloseSearch, label: label(), interactive: true }));
964
- }, [openMenu, optionsMention, selectionMenu, label]);
965
- let main = ((0, jsx_runtime_1.jsx)(TextField, Object.assign({ ref: (item) => {
966
- if (ref) {
967
- if ((0, utils_1.is)('function', ref))
968
- ref(item);
969
- else
970
- ref.current = item;
1166
+ }))
1167
+ }, /*#__PURE__*/_react.default.createElement(WrapperToggleButton, {
1168
+ name: l('Text Color'),
1169
+ open: refs.open.current.color ? false : undefined
1170
+ }, /*#__PURE__*/_react.default.createElement(ToggleButton, (0, _extends2.default)({
1171
+ ref: refs.elements.color
1172
+ }, ToggleButtonProps, {
1173
+ selected: refs.open.current.color,
1174
+ onClick: () => updateOpen('color', !refs.open.current.color)
1175
+ }), /*#__PURE__*/_react.default.createElement(_IconMaterialFormatColorTextW.default, IconProps)))),
1176
+ 'font-color-mini-menu': /*#__PURE__*/_react.default.createElement(WrapperAppend, {
1177
+ open: refs.open.current.colorMiniMenu,
1178
+ anchorElement: refs.miniMenuElements.color,
1179
+ element: /*#__PURE__*/_react.default.createElement(ClickListener, {
1180
+ onClickOutside: () => updateOpen('colorMiniMenu', false),
1181
+ include: [refs.miniMenuElements.color]
1182
+ }, /*#__PURE__*/_react.default.createElement(Palette, {
1183
+ ref: refs.miniMenuElements.colorPalette,
1184
+ version: "font-color",
1185
+ onClose: () => updateOpen('colorMiniMenu', false),
1186
+ onUpdate: textMethod('font-color')
1187
+ }))
1188
+ }, /*#__PURE__*/_react.default.createElement(WrapperToggleButton, {
1189
+ name: l('Text Color'),
1190
+ open: refs.open.current.colorMiniMenu ? false : undefined
1191
+ }, /*#__PURE__*/_react.default.createElement(ToggleButton, (0, _extends2.default)({
1192
+ ref: refs.miniMenuElements.color
1193
+ }, ToggleButtonProps, {
1194
+ selected: refs.open.current.colorMiniMenu,
1195
+ onClick: () => updateOpen('colorMiniMenu', !refs.open.current.colorMiniMenu)
1196
+ }), /*#__PURE__*/_react.default.createElement(_IconMaterialFormatColorTextW.default, IconProps)))),
1197
+ 'font-background': /*#__PURE__*/_react.default.createElement(WrapperAppend, {
1198
+ open: refs.open.current.background,
1199
+ anchorElement: refs.elements.background.current,
1200
+ element: /*#__PURE__*/_react.default.createElement(ClickListener, {
1201
+ onClickOutside: () => updateOpen('background', false),
1202
+ include: [refs.elements.background.current]
1203
+ }, /*#__PURE__*/_react.default.createElement(Palette, {
1204
+ version: "font-background",
1205
+ onClose: () => updateOpen('background', false),
1206
+ onUpdate: textMethod('font-background')
1207
+ }))
1208
+ }, /*#__PURE__*/_react.default.createElement(WrapperToggleButton, {
1209
+ name: l('Background Color'),
1210
+ open: refs.open.current.background ? false : undefined
1211
+ }, /*#__PURE__*/_react.default.createElement(ToggleButton, (0, _extends2.default)({
1212
+ ref: refs.elements.background
1213
+ }, ToggleButtonProps, {
1214
+ selected: refs.open.current.background,
1215
+ onClick: () => updateOpen('background', !refs.open.current.background)
1216
+ }), /*#__PURE__*/_react.default.createElement(_IconMaterialFormatColorFillW.default, IconProps)))),
1217
+ 'font-background-mini-menu': /*#__PURE__*/_react.default.createElement(WrapperAppend, {
1218
+ open: refs.open.current.backgroundMiniMenu,
1219
+ anchorElement: refs.miniMenuElements.background,
1220
+ element: /*#__PURE__*/_react.default.createElement(ClickListener, {
1221
+ onClickOutside: () => updateOpen('backgroundMiniMenu', false),
1222
+ include: [refs.miniMenuElements.background]
1223
+ }, /*#__PURE__*/_react.default.createElement(Palette, {
1224
+ ref: refs.miniMenuElements.backgroundPalette,
1225
+ version: "font-background",
1226
+ onClose: () => updateOpen('backgroundMiniMenu', false),
1227
+ onUpdate: textMethod('font-background')
1228
+ }))
1229
+ }, /*#__PURE__*/_react.default.createElement(WrapperToggleButton, {
1230
+ name: l('Text Color'),
1231
+ open: refs.open.current.backgroundMiniMenu ? false : undefined
1232
+ }, /*#__PURE__*/_react.default.createElement(ToggleButton, (0, _extends2.default)({
1233
+ ref: refs.miniMenuElements.background
1234
+ }, ToggleButtonProps, {
1235
+ selected: refs.open.current.backgroundMiniMenu,
1236
+ onClick: () => updateOpen('backgroundMiniMenu', !refs.open.current.backgroundMiniMenu)
1237
+ }), /*#__PURE__*/_react.default.createElement(_IconMaterialFormatColorFillW.default, IconProps)))),
1238
+ 'align-left': /*#__PURE__*/_react.default.createElement(WrapperToggleButton, {
1239
+ name: l('Align Left')
1240
+ }, /*#__PURE__*/_react.default.createElement(ToggleButton, (0, _extends2.default)({}, ToggleButtonProps, {
1241
+ selected: refs.textSelected.current.includes('align-left'),
1242
+ onClick: textMethod('align-left')
1243
+ }), /*#__PURE__*/_react.default.createElement(_IconMaterialFormatAlignLeftW.default, IconProps))),
1244
+ 'align-center': /*#__PURE__*/_react.default.createElement(WrapperToggleButton, {
1245
+ name: l('Align Center')
1246
+ }, /*#__PURE__*/_react.default.createElement(ToggleButton, (0, _extends2.default)({}, ToggleButtonProps, {
1247
+ selected: refs.textSelected.current.includes('align-center'),
1248
+ onClick: textMethod('align-center')
1249
+ }), /*#__PURE__*/_react.default.createElement(_IconMaterialFormatAlignCenterW.default, IconProps))),
1250
+ 'align-right': /*#__PURE__*/_react.default.createElement(WrapperToggleButton, {
1251
+ name: l('Align Right')
1252
+ }, /*#__PURE__*/_react.default.createElement(ToggleButton, (0, _extends2.default)({}, ToggleButtonProps, {
1253
+ selected: refs.textSelected.current.includes('align-right'),
1254
+ onClick: textMethod('align-right')
1255
+ }), /*#__PURE__*/_react.default.createElement(_IconMaterialFormatAlignRightW.default, IconProps))),
1256
+ 'align-justify': /*#__PURE__*/_react.default.createElement(WrapperToggleButton, {
1257
+ name: l('Align Justify')
1258
+ }, /*#__PURE__*/_react.default.createElement(ToggleButton, (0, _extends2.default)({}, ToggleButtonProps, {
1259
+ selected: refs.textSelected.current.includes('align-justify'),
1260
+ onClick: textMethod('align-justify')
1261
+ }), /*#__PURE__*/_react.default.createElement(_IconMaterialFormatAlignJustifyW.default, IconProps))),
1262
+ 'list-ordered': /*#__PURE__*/_react.default.createElement(WrapperToggleButton, {
1263
+ name: l('List Ordered')
1264
+ }, /*#__PURE__*/_react.default.createElement(ToggleButton, (0, _extends2.default)({}, ToggleButtonProps, {
1265
+ selected: refs.textSelected.current.includes('list-ordered'),
1266
+ onClick: textMethod('list-ordered')
1267
+ }), /*#__PURE__*/_react.default.createElement(_IconMaterialFormatListNumberedW.default, IconProps))),
1268
+ 'list-unordered': /*#__PURE__*/_react.default.createElement(WrapperToggleButton, {
1269
+ name: l('List Unordered')
1270
+ }, /*#__PURE__*/_react.default.createElement(ToggleButton, (0, _extends2.default)({}, ToggleButtonProps, {
1271
+ selected: refs.textSelected.current.includes('list-unordered'),
1272
+ onClick: textMethod('list-unordered')
1273
+ }), /*#__PURE__*/_react.default.createElement(_IconMaterialFormatListBulletedW.default, IconProps)))
1274
+ };
1275
+ const actionElements = {
1276
+ 'clear': /*#__PURE__*/_react.default.createElement(WrapperToggleButton, {
1277
+ name: l('Clear')
1278
+ }, /*#__PURE__*/_react.default.createElement(ToggleButton, (0, _extends2.default)({}, ToggleButtonProps, {
1279
+ onClick: textMethod('clear')
1280
+ }), /*#__PURE__*/_react.default.createElement(_IconMaterialFormatClearW.default, IconProps)))
1281
+ };
1282
+ const miniMenu = _react.default.useMemo(() => {
1283
+ return /*#__PURE__*/_react.default.createElement(Append, (0, _extends2.default)({
1284
+ open: !!textSelection,
1285
+ element: body => {
1286
+ const {
1287
+ ref: ref_,
1288
+ values,
1289
+ style: styleAppend
1290
+ } = body;
1291
+ return /*#__PURE__*/_react.default.createElement("div", {
1292
+ ref: item => {
1293
+ if (ref_) {
1294
+ if ((0, _utils.is)('function', ref_)) ref_(item);else ref_.current = item;
1295
+ refs.miniMenu.current = item;
971
1296
  }
972
- refs.root.current = item;
973
- }, color: color, tonal: tonal, version: 'text', size: size, minRows: 12, multiline: true, enabled: true, fullWidth: true, onInput: onInput, onKeyDown: onKeyDown, onKeyUp: onKeyUp, onFocus: onFocus, onBlur: onBlur, readOnly: readOnly, inputProps: Object.assign(Object.assign({ version: 'b2', contentEditable: true, spellCheck: false, onPaste: pasteText ? onPasteText : onPaste, onDrop,
974
- onMouseUp,
975
- onMouseDown, 'data-placeholder': placeholder !== undefined ? placeholder : name }, inputProps), { ref: (item) => {
976
- refs.input.current = item;
977
- if (inputProps === null || inputProps === void 0 ? void 0 : inputProps.ref) {
978
- if ((0, utils_1.is)('function', inputProps.ref))
979
- inputProps.ref(item);
980
- else
981
- inputProps.ref.current = item;
982
- }
983
- } }), InputComponent: Type, className: (0, style_react_1.classNames)([
984
- (0, utils_2.staticClassName)('SmartTextField', theme) && [
985
- 'onesy-SmartTextField-root',
986
- `onesy-SmartTextField-version-${version}`,
987
- `onesy-SmartTextField-size-${size}`
988
- ],
989
- className,
990
- classes.root
991
- ]) }, additional, other)));
992
- if (version === 'text')
993
- main = ((0, jsx_runtime_1.jsx)(Type, Object.assign({ ref: (item) => {
994
- if (ref) {
995
- if ((0, utils_1.is)('function', ref))
996
- ref(item);
997
- else
998
- ref.current = item;
999
- }
1000
- if (inputProps === null || inputProps === void 0 ? void 0 : inputProps.ref) {
1001
- if ((0, utils_1.is)('function', inputProps.ref))
1002
- inputProps.ref(item);
1003
- else
1004
- inputProps.ref.current = item;
1005
- }
1006
- refs.root.current = item;
1007
- refs.input.current = item;
1008
- }, color: color, tonal: tonal, onInput: onInput, onKeyDown: onKeyDown, onKeyUp: onKeyUp, onFocus: onFocus, onBlur: onBlur, onPaste: pasteText ? onPasteText : onPaste, onDrop: onDrop, onMouseUp: onMouseUp, onMouseDown: onMouseDown, spellCheck: false, "data-placeholder": placeholder !== undefined ? placeholder : name }, inputProps, { contentEditable: !readOnly, className: (0, style_react_1.classNames)([
1009
- (0, utils_2.staticClassName)('SmartTextField', theme) && [
1010
- 'onesy-SmartTextField-root',
1011
- `onesy-SmartTextField-version-${version}`,
1012
- `onesy-SmartTextField-size-${size}`
1013
- ],
1014
- className,
1015
- classes.root_type,
1016
- !multiline && classes.singleLine
1017
- ]) }, additional, other)));
1018
- return (0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [main, version === 'text' && (0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, { children: helperText && (0, utils_1.is)('string', helperText) ? ((0, jsx_runtime_1.jsx)(Type, Object.assign({ version: size === 'large' ? 'b1' : size === 'regular' ? 'b2' : 'b3' }, HelperTextProps, { className: (0, style_react_1.classNames)([
1019
- (0, utils_2.staticClassName)('SmartTextField', theme) && [
1020
- 'onesy-SmartTextField-helper-text',
1021
- error && 'onesy-SmartTextField-error'
1022
- ],
1023
- HelperTextProps === null || HelperTextProps === void 0 ? void 0 : HelperTextProps.className,
1024
- classes.helperText,
1025
- error && classes.error_color
1026
- ]) }, { children: (0, utils_1.textToInnerHTML)(helperText) }))) : helperText }), miniMenu, menu] });
1297
+ },
1298
+ style: _objectSpread(_objectSpread(_objectSpread({}, (values === null || values === void 0 ? void 0 : values.x) === 0 && (values === null || values === void 0 ? void 0 : values.y) === 0 ? {
1299
+ visibility: 'hidden'
1300
+ } : undefined), styleAppend), {}, {
1301
+ zIndex: 1500
1302
+ }),
1303
+ className: (0, _styleReact.classNames)([(0, _utils2.staticClassName)('SmartTextField', theme) && ['onesy-SmartTextField-mini-menu-wrapper'], classes.textMiniMenuWrapper])
1304
+ }, /*#__PURE__*/_react.default.createElement(Fade, {
1305
+ in: !!textSelection,
1306
+ add: true
1307
+ }, /*#__PURE__*/_react.default.createElement(ClickListener, {
1308
+ onClickOutside: () => {
1309
+ setTextSelection(null);
1310
+ },
1311
+ 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]
1312
+ }, /*#__PURE__*/_react.default.createElement(Line, {
1313
+ gap: 2,
1314
+ direction: "row",
1315
+ align: "center",
1316
+ justify: "flex-start",
1317
+ wrap: "wrap",
1318
+ role: "toolbar",
1319
+ color: "themed",
1320
+ "aria-label": l('Mini menu'),
1321
+ Component: Surface,
1322
+ className: (0, _styleReact.classNames)([classes.textMiniMenu])
1323
+ }, /*#__PURE__*/_react.default.createElement(ToggleButtons, ToggleButtonsProps, updateElements['italic'], updateElements['underline'], updateElements['bold'], updateElements['strike-line']), miniMenuExtended && /*#__PURE__*/_react.default.createElement(ToggleButtons, ToggleButtonsProps, updateElements['align-left'], updateElements['align-center'], updateElements['align-right'], updateElements['align-justify']), miniMenuExtended && /*#__PURE__*/_react.default.createElement(ToggleButtons, ToggleButtonsProps, updateElements['font-color-mini-menu'], updateElements['font-background-mini-menu']), miniMenuExtended && /*#__PURE__*/_react.default.createElement(ToggleButtons, ToggleButtonsProps, updateElements['list-ordered'], updateElements['list-unordered']), /*#__PURE__*/_react.default.createElement(ToggleButtons, ToggleButtonsProps, updateElements['superscript'], updateElements['subscript']), /*#__PURE__*/_react.default.createElement(ToggleButtons, ToggleButtonsProps, updateElements['link-add'], updateElements['link-remove']), /*#__PURE__*/_react.default.createElement(ToggleButtons, ToggleButtonsProps, actionElements['clear'])))));
1324
+ },
1325
+ parent: refs.root.current,
1326
+ anchor: textSelection === null || textSelection === void 0 ? void 0 : textSelection.selection,
1327
+ portal: true,
1328
+ alignment: "center",
1329
+ position: "bottom",
1330
+ clearOnClose: true
1331
+ }, AppendProps));
1332
+ }, [open, textSelection, textSelected]);
1333
+ const menu = _react.default.useMemo(() => {
1334
+ return /*#__PURE__*/_react.default.createElement(Menu, {
1335
+ open: openMenu,
1336
+ position: "top",
1337
+ alignment: "start",
1338
+ offset: offset,
1339
+ anchor: selectionMenu,
1340
+ onClose: onCloseSearch,
1341
+ label: label(),
1342
+ interactive: true
1343
+ });
1344
+ }, [openMenu, optionsMention, selectionMenu, label]);
1345
+ let main = /*#__PURE__*/_react.default.createElement(TextField, (0, _extends2.default)({
1346
+ ref: item => {
1347
+ if (ref) {
1348
+ if ((0, _utils.is)('function', ref)) ref(item);else ref.current = item;
1349
+ }
1350
+ refs.root.current = item;
1351
+ },
1352
+ color: color,
1353
+ tonal: tonal,
1354
+ version: "text",
1355
+ size: size,
1356
+ minRows: 12,
1357
+ multiline: true,
1358
+ enabled: true,
1359
+ fullWidth: true,
1360
+ onInput: onInput,
1361
+ onKeyDown: onKeyDown,
1362
+ onKeyUp: onKeyUp,
1363
+ onFocus: onFocus,
1364
+ onBlur: onBlur,
1365
+ readOnly: readOnly,
1366
+ inputProps: _objectSpread(_objectSpread({
1367
+ version: 'b2',
1368
+ contentEditable: true,
1369
+ spellCheck: false,
1370
+ onPaste: pasteText ? onPasteText : onPaste,
1371
+ onDrop,
1372
+ onMouseUp,
1373
+ onMouseDown,
1374
+ 'data-placeholder': placeholder !== undefined ? placeholder : name
1375
+ }, inputProps), {}, {
1376
+ ref: item => {
1377
+ refs.input.current = item;
1378
+ if (inputProps !== null && inputProps !== void 0 && inputProps.ref) {
1379
+ if ((0, _utils.is)('function', inputProps.ref)) inputProps.ref(item);else inputProps.ref.current = item;
1380
+ }
1381
+ }
1382
+ }),
1383
+ InputComponent: Type,
1384
+ className: (0, _styleReact.classNames)([(0, _utils2.staticClassName)('SmartTextField', theme) && ['onesy-SmartTextField-root', `onesy-SmartTextField-version-${version}`, `onesy-SmartTextField-size-${size}`], className, classes.root])
1385
+ }, additional, other));
1386
+ if (version === 'text') main = /*#__PURE__*/_react.default.createElement(Type, (0, _extends2.default)({
1387
+ ref: item => {
1388
+ if (ref) {
1389
+ if ((0, _utils.is)('function', ref)) ref(item);else ref.current = item;
1390
+ }
1391
+ if (inputProps !== null && inputProps !== void 0 && inputProps.ref) {
1392
+ if ((0, _utils.is)('function', inputProps.ref)) inputProps.ref(item);else inputProps.ref.current = item;
1393
+ }
1394
+ refs.root.current = item;
1395
+ refs.input.current = item;
1396
+ },
1397
+ color: color,
1398
+ tonal: tonal,
1399
+ onInput: onInput,
1400
+ onKeyDown: onKeyDown,
1401
+ onKeyUp: onKeyUp,
1402
+ onFocus: onFocus,
1403
+ onBlur: onBlur,
1404
+ onPaste: pasteText ? onPasteText : onPaste,
1405
+ onDrop: onDrop,
1406
+ onMouseUp: onMouseUp,
1407
+ onMouseDown: onMouseDown,
1408
+ spellCheck: false,
1409
+ "data-placeholder": placeholder !== undefined ? placeholder : name
1410
+ }, inputProps, {
1411
+ contentEditable: !readOnly,
1412
+ className: (0, _styleReact.classNames)([(0, _utils2.staticClassName)('SmartTextField', theme) && ['onesy-SmartTextField-root', `onesy-SmartTextField-version-${version}`, `onesy-SmartTextField-size-${size}`], className, classes.root_type, !multiline && classes.singleLine])
1413
+ }, additional, other));
1414
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, main, version === 'text' && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, helperText && (0, _utils.is)('string', helperText) ? /*#__PURE__*/_react.default.createElement(Type, (0, _extends2.default)({
1415
+ version: size === 'large' ? 'b1' : size === 'regular' ? 'b2' : 'b3'
1416
+ }, HelperTextProps, {
1417
+ className: (0, _styleReact.classNames)([(0, _utils2.staticClassName)('SmartTextField', theme) && ['onesy-SmartTextField-helper-text', error && 'onesy-SmartTextField-error'], HelperTextProps === null || HelperTextProps === void 0 ? void 0 : HelperTextProps.className, classes.helperText, error && classes.error_color])
1418
+ }), (0, _utils.textToInnerHTML)(helperText)) : helperText), miniMenu, menu);
1027
1419
  });
1028
1420
  SmartTextField.displayName = 'onesy-SmartTextField';
1029
- exports.default = SmartTextField;
1421
+ var _default = exports.default = SmartTextField;