@antscorp/antsomi-ui 1.3.7-beta.7 → 1.3.7-beta.70

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 (405) hide show
  1. package/README.md +78 -78
  2. package/es/__mocks__/1000_city.json +802 -802
  3. package/es/__mocks__/sql-query.json +56 -56
  4. package/es/assets/css/main.scss +8 -8
  5. package/es/assets/images/feedback.svg +3 -3
  6. package/es/assets/svg/mobile-frame.svg +3 -3
  7. package/es/assets/svg/warning-icon.svg +5 -5
  8. package/es/components/atoms/Alert/Alert.js +28 -28
  9. package/es/components/atoms/ContentEditable/styled.js +16 -16
  10. package/es/components/atoms/DividerPure/styled.js +35 -35
  11. package/es/components/atoms/Eyedropper/styled.js +39 -39
  12. package/es/components/atoms/Icon/index.js +19 -19
  13. package/es/components/atoms/Iframe/Iframe.js +18 -18
  14. package/es/components/atoms/Input/Input.js +3 -1
  15. package/es/components/atoms/Input/styled.js +104 -104
  16. package/es/components/atoms/InputDynamic/InputDynamic.js +3 -3
  17. package/es/components/atoms/InputDynamic/styled.js +284 -284
  18. package/es/components/atoms/MobileBrandingBar/styled.js +21 -21
  19. package/es/components/atoms/MobileFrame/styled.js +30 -30
  20. package/es/components/atoms/MobileFrameV2/styled.js +42 -42
  21. package/es/components/atoms/MobileFrameV3/styled.js +31 -31
  22. package/es/components/atoms/NotificationStatus/styled.js +10 -10
  23. package/es/components/atoms/PreviewTabs/styled.js +69 -69
  24. package/es/components/atoms/Radio/index.js +16 -16
  25. package/es/components/atoms/ReactIframe/ReactIframe.js +5 -5
  26. package/es/components/atoms/ReactIframe/styled.js +9 -9
  27. package/es/components/atoms/RequiredLabel/styled.js +3 -3
  28. package/es/components/atoms/ScrollBox/index.js +5 -5
  29. package/es/components/atoms/Scrollbars/styled.js +21 -21
  30. package/es/components/atoms/SelectAssociatedTag/styled.js +51 -51
  31. package/es/components/atoms/SlideBar/styled.js +194 -194
  32. package/es/components/atoms/Slider/styled.js +31 -31
  33. package/es/components/atoms/Space/Space.js +4 -4
  34. package/es/components/atoms/Spin/styled.js +11 -11
  35. package/es/components/atoms/Steps/styled.js +244 -244
  36. package/es/components/atoms/Switch/styled.js +56 -56
  37. package/es/components/atoms/Tag/Tag.js +10 -10
  38. package/es/components/atoms/Text/styled.js +34 -34
  39. package/es/components/icons/DomainManagementIcon.js +1 -1
  40. package/es/components/icons/LazyIcon/LazyIcon.d.ts +2 -0
  41. package/es/components/icons/LazyIcon/LazyIcon.js +2 -0
  42. package/es/components/icons/LoadingIcon.js +33 -33
  43. package/es/components/icons/QRCodeManagementIcon.d.ts +3 -0
  44. package/es/components/icons/QRCodeManagementIcon.js +7 -0
  45. package/es/components/icons/QRSetDashboardIcon.d.ts +3 -0
  46. package/es/components/icons/QRSetDashboardIcon.js +7 -0
  47. package/es/components/icons/document/styled.js +43 -43
  48. package/es/components/icons/index.d.ts +2 -0
  49. package/es/components/icons/index.js +2 -0
  50. package/es/components/index.scss +2 -2
  51. package/es/components/molecules/AccessDenied/styled.js +28 -28
  52. package/es/components/molecules/AccountSelection/styled.js +110 -110
  53. package/es/components/molecules/AddDynamicContent/AddDynamicContent.js +28 -2
  54. package/es/components/molecules/AddDynamicContent/components/DisplayFormat/DisplayFormat.d.ts +1 -0
  55. package/es/components/molecules/AddDynamicContent/constants.d.ts +2 -0
  56. package/es/components/molecules/AddDynamicContent/constants.js +2 -0
  57. package/es/components/molecules/AddDynamicContent/styled.js +23 -23
  58. package/es/components/molecules/AlignSetting/styled.js +4 -4
  59. package/es/components/molecules/ApplyPopupContent/styled.js +32 -32
  60. package/es/components/molecules/CalendarSelection/components/AutoUpdateTo/styled.js +8 -8
  61. package/es/components/molecules/CalendarSelection/components/CustomPicker/styled.js +79 -79
  62. package/es/components/molecules/CalendarSelection/components/Footer/styled.js +4 -4
  63. package/es/components/molecules/CalendarSelection/components/RangePicker/styled.js +21 -21
  64. package/es/components/molecules/CalendarSelection/components/RangeSelectOptions/components/Option/Option.js +26 -26
  65. package/es/components/molecules/CalendarSelection/components/RangeSelectOptions/styled.js +30 -30
  66. package/es/components/molecules/CalendarSelection/components/TimeRangeDisplay/styled.js +26 -26
  67. package/es/components/molecules/CalendarSelection/styled.js +8 -8
  68. package/es/components/molecules/CaptureScreen/components/CommentBox/styled.js +119 -119
  69. package/es/components/molecules/CaptureScreen/components/Cursor/styled.js +67 -67
  70. package/es/components/molecules/CaptureScreen/styled.js +240 -240
  71. package/es/components/molecules/ChartTab/components/styled.js +24 -24
  72. package/es/components/molecules/ChartTab/styled.js +20 -20
  73. package/es/components/molecules/ChatBox/AntsomiAI.js +8 -8
  74. package/es/components/molecules/ChatBox/ChatBoxInsight/QuestionItem.js +9 -9
  75. package/es/components/molecules/ChatBox/ChatBoxInsight/styled.js +365 -365
  76. package/es/components/molecules/ChatBox/styled.js +324 -324
  77. package/es/components/molecules/CodeStructure/styled.js +5 -5
  78. package/es/components/molecules/ColorPicker/ChromePicker/styled.js +10 -10
  79. package/es/components/molecules/ColorPicker/CustomPicker/styled.js +89 -89
  80. package/es/components/molecules/ColorPicker/SketchPicker/styled.js +5 -5
  81. package/es/components/molecules/ColorPicker/index.d.ts +2 -0
  82. package/es/components/molecules/ColorPicker/index.js +8 -3
  83. package/es/components/molecules/ColorPicker/styled.js +7 -7
  84. package/es/components/molecules/ColorSetting/styled.js +39 -39
  85. package/es/components/molecules/DatePicker/components/AdvancedPicker/styled.js +110 -110
  86. package/es/components/molecules/DatePickerV2/styled.js +6 -6
  87. package/es/components/molecules/DisplayFormat/styled.js +12 -12
  88. package/es/components/molecules/DrawerDetail/components/ToggleDrawerSizeButton.js +24 -24
  89. package/es/components/molecules/DrawerDetail/styled.js +109 -109
  90. package/es/components/molecules/Dropdown/style.scss +11 -11
  91. package/es/components/molecules/Dropdown/styled.js +28 -28
  92. package/es/components/molecules/EdgeSetting/styled.js +10 -10
  93. package/es/components/molecules/EditableName/styled.js +70 -70
  94. package/es/components/molecules/EditingList/styled.js +29 -29
  95. package/es/components/molecules/EditingListV2/components/List/List.js +9 -9
  96. package/es/components/molecules/EditorTab/styled.js +156 -156
  97. package/es/components/molecules/EmojiCollections/styled.js +22 -22
  98. package/es/components/molecules/EmojiPopover/EmojiPopover.d.ts +1 -0
  99. package/es/components/molecules/EmojiPopover/EmojiPopover.js +2 -2
  100. package/es/components/molecules/EmojiPopover/styled.d.ts +2 -2
  101. package/es/components/molecules/EmojiPopover/styled.js +5 -5
  102. package/es/components/molecules/EmptyData/styled.js +53 -53
  103. package/es/components/molecules/EyedropperButton/styled.js +19 -19
  104. package/es/components/molecules/FontSizeInput/index.scss +15 -15
  105. package/es/components/molecules/FontSizeInput/styled.js +31 -31
  106. package/es/components/molecules/GradientSetting/styled.js +57 -57
  107. package/es/components/molecules/HeaderV2/HeaderV2.d.ts +1 -1
  108. package/es/components/molecules/HeaderV2/styled.js +70 -70
  109. package/es/components/molecules/IconSelection/styled.js +69 -69
  110. package/es/components/molecules/ImageEditor/components/ModalShortcut.js +21 -21
  111. package/es/components/molecules/ImageEditor/styled.js +5 -5
  112. package/es/components/molecules/ImagePreview/styled.js +3 -3
  113. package/es/components/molecules/InputNumberWithUnit/styled.js +14 -14
  114. package/es/components/molecules/InputSearch/styled.js +41 -41
  115. package/es/components/molecules/InputSelectAttribute/styled.js +22 -22
  116. package/es/components/molecules/ItemNotFound/styled.js +26 -26
  117. package/es/components/molecules/MatchAnySelect/components/ExtendValuePopup.js +8 -8
  118. package/es/components/molecules/MatchAnySelect/styled.js +247 -247
  119. package/es/components/molecules/Modal/Modal.js +7 -1
  120. package/es/components/molecules/Modal/styled.js +63 -63
  121. package/es/components/molecules/ModalSelect/styled.js +152 -152
  122. package/es/components/molecules/ModalV2/styled.js +27 -27
  123. package/es/components/molecules/PopupDraggable/styled.js +57 -57
  124. package/es/components/molecules/PreviewModal/styled.js +26 -26
  125. package/es/components/molecules/ProcessLoading/styled.js +2 -2
  126. package/es/components/molecules/QuillEditor/CustomToolbar.js +3165 -3165
  127. package/es/components/molecules/QuillEditor/EditorToolbar.js +7 -7
  128. package/es/components/molecules/QuillEditor/styled.js +25 -25
  129. package/es/components/molecules/RadioGroup/styled.js +9 -9
  130. package/es/components/molecules/RequestAccess/styled.js +38 -38
  131. package/es/components/molecules/ResizeGrid/components/Cell/styled.js +77 -77
  132. package/es/components/molecules/ResizeGrid/styled.js +50 -50
  133. package/es/components/molecules/RichMenu/RichMenuBlock/RichMenuCell/styled.js +118 -118
  134. package/es/components/molecules/RichMenu/RichMenuBlock/styled.js +13 -13
  135. package/es/components/molecules/RichMenu/RichMenuChatBar/TypingChat/styled.js +40 -40
  136. package/es/components/molecules/RichMenu/RichMenuChatBar/styled.js +27 -27
  137. package/es/components/molecules/RichMenu/RichMenuMobileView/RichMenuMobileView.js +2 -2
  138. package/es/components/molecules/RichMenu/RichMenuMobileView/styled.js +38 -38
  139. package/es/components/molecules/SearchPopover/SearchPopover.js +2 -2
  140. package/es/components/molecules/SearchPopover/components/PopoverSelect/styled.js +36 -36
  141. package/es/components/molecules/SearchPopover/components/PopoverSelect/styles.scss +7 -7
  142. package/es/components/molecules/SearchPopover/styled.d.ts +12 -1
  143. package/es/components/molecules/SearchPopover/styled.js +32 -33
  144. package/es/components/molecules/SearchPopover/types.d.ts +4 -3
  145. package/es/components/molecules/Select/Select.js +3 -3
  146. package/es/components/molecules/Select/styled.d.ts +3 -1
  147. package/es/components/molecules/Select/styled.js +76 -32
  148. package/es/components/molecules/SelectAccount/styled.js +147 -147
  149. package/es/components/molecules/SelectEventAttribute/styled.js +8 -8
  150. package/es/components/molecules/SelectMulti/styled.js +62 -62
  151. package/es/components/molecules/SelectV2/styled.js +124 -124
  152. package/es/components/molecules/SettingWrapper/styled.js +12 -12
  153. package/es/components/molecules/ShareAccess/ShareAccess.d.ts +2 -1
  154. package/es/components/molecules/ShareAccess/ShareAccess.js +12 -9
  155. package/es/components/molecules/ShareAccess/components/GeneralAccess/styled.js +56 -56
  156. package/es/components/molecules/ShareAccess/components/LayoutContent/LayoutContent.js +5 -5
  157. package/es/components/molecules/ShareAccess/components/LayoutContent/styled.js +5 -5
  158. package/es/components/molecules/ShareAccess/components/ModalTransferOwnerShip/styled.js +15 -15
  159. package/es/components/molecules/ShareAccess/components/PeopleAccess/PeopleAccess.js +2 -2
  160. package/es/components/molecules/ShareAccess/components/PeopleAccess/styled.js +63 -63
  161. package/es/components/molecules/ShareAccess/components/SearchUser/styled.js +31 -31
  162. package/es/components/molecules/ShareAccess/hooks/useShareAccess.d.ts +2 -1
  163. package/es/components/molecules/ShareAccess/index.d.ts +1 -0
  164. package/es/components/molecules/ShareAccess/reducer.d.ts +1 -1
  165. package/es/components/molecules/ShareAccess/reducer.js +7 -4
  166. package/es/components/molecules/ShareAccess/types.d.ts +22 -0
  167. package/es/components/molecules/ShareAccess/utils.d.ts +3 -1
  168. package/es/components/molecules/ShareAccess/utils.js +35 -2
  169. package/es/components/molecules/SliderWithInputNumber/styled.js +2 -2
  170. package/es/components/molecules/Tabs/Tabs.js +11 -11
  171. package/es/components/molecules/TagifyInput/TagifyInput.js +98 -77
  172. package/es/components/molecules/TagifyInput/styled.js +37 -37
  173. package/es/components/molecules/TagifyInput/types.d.ts +14 -8
  174. package/es/components/molecules/TagifyInput/utils.d.ts +6 -1
  175. package/es/components/molecules/TagifyInput/utils.js +32 -13
  176. package/es/components/molecules/TagifyInput/utils.style.js +208 -208
  177. package/es/components/molecules/TemplateSaveAs/components/Category/Category.js +5 -5
  178. package/es/components/molecules/TemplateSaveAs/components/ImageSlider/styled.js +276 -276
  179. package/es/components/molecules/TemplateSaveAs/styled.js +134 -134
  180. package/es/components/molecules/ThumbnailCard/styled.js +92 -92
  181. package/es/components/molecules/Tree/styled.js +38 -38
  182. package/es/components/molecules/UnsubscribePreferences/styled.js +7 -7
  183. package/es/components/molecules/UnsubscribePreview/components/styled.js +53 -53
  184. package/es/components/molecules/UnsubscribePreview/styled.js +48 -48
  185. package/es/components/molecules/UploadImage/styled.js +114 -114
  186. package/es/components/molecules/VirtualizedMenu/VirtualizedMenu.d.ts +1 -0
  187. package/es/components/molecules/VirtualizedMenu/components/Item/Item.js +3 -7
  188. package/es/components/molecules/VirtualizedMenu/components/MenuInline/MenuInline.d.ts +10 -10
  189. package/es/components/molecules/VirtualizedMenu/components/MenuInline/MenuInline.js +46 -327
  190. package/es/components/molecules/VirtualizedMenu/components/MenuInline/hooks/index.d.ts +9 -0
  191. package/es/components/molecules/VirtualizedMenu/components/MenuInline/hooks/index.js +5 -0
  192. package/es/components/molecules/VirtualizedMenu/components/MenuInline/hooks/useFocusManagement.d.ts +23 -0
  193. package/es/components/molecules/VirtualizedMenu/components/MenuInline/hooks/useFocusManagement.js +81 -0
  194. package/es/components/molecules/VirtualizedMenu/components/MenuInline/hooks/useItemInteraction.d.ts +24 -0
  195. package/es/components/molecules/VirtualizedMenu/components/MenuInline/hooks/useItemInteraction.js +32 -0
  196. package/es/components/molecules/VirtualizedMenu/components/MenuInline/hooks/useKeyboardNavigation.d.ts +26 -0
  197. package/es/components/molecules/VirtualizedMenu/components/MenuInline/hooks/useKeyboardNavigation.js +93 -0
  198. package/es/components/molecules/VirtualizedMenu/components/MenuInline/hooks/useTreeState.d.ts +24 -0
  199. package/es/components/molecules/VirtualizedMenu/components/MenuInline/hooks/useTreeState.js +94 -0
  200. package/es/components/molecules/VirtualizedMenu/components/MenuInline/hooks/useVisibleItems.d.ts +7 -0
  201. package/es/components/molecules/VirtualizedMenu/components/MenuInline/hooks/useVisibleItems.js +132 -0
  202. package/es/components/molecules/VirtualizedMenu/styled.js +103 -92
  203. package/es/components/molecules/VirtualizedMenu/types.d.ts +1 -0
  204. package/es/components/molecules/VirtualizedMenu/utils.d.ts +1 -0
  205. package/es/components/molecules/VirtualizedMenu/utils.js +1 -0
  206. package/es/components/molecules/index.d.ts +1 -0
  207. package/es/components/molecules/index.scss +1 -1
  208. package/es/components/organism/AccountProfile/components/AccountSetting/components/EditableInput/styles.js +98 -98
  209. package/es/components/organism/AccountProfile/components/AccountSetting/components/LanguageSelector/styles.js +18 -18
  210. package/es/components/organism/AccountProfile/components/AccountSetting/styled.js +543 -543
  211. package/es/components/organism/AccountProfile/components/AccountSetting/styles.scss +39 -39
  212. package/es/components/organism/AccountSharing/AccountSharing.d.ts +1 -0
  213. package/es/components/organism/AccountSharing/AccountSharing.js +17 -33
  214. package/es/components/organism/AccountSharing/styled.js +346 -346
  215. package/es/components/organism/ActivityTimeline/ActivityTimeline.js +3 -3
  216. package/es/components/organism/ActivityTimeline/__mocks__/event_tracking.json +1290 -1290
  217. package/es/components/organism/ActivityTimeline/__mocks__/timeline.json +1896 -1896
  218. package/es/components/organism/ActivityTimeline/components/ActionHistory/styled.js +28 -28
  219. package/es/components/organism/ActivityTimeline/components/CardMember/styled.js +60 -60
  220. package/es/components/organism/ActivityTimeline/components/ItemGroupEvent/styled.js +4 -4
  221. package/es/components/organism/ActivityTimeline/components/List/styled.js +77 -77
  222. package/es/components/organism/ActivityTimeline/components/ListItem/styled.js +37 -37
  223. package/es/components/organism/ActivityTimeline/components/ProductCard/styled.js +92 -92
  224. package/es/components/organism/ActivityTimeline/components/Redeem/styled.js +7 -7
  225. package/es/components/organism/ActivityTimeline/components/Slide/styled.js +20 -20
  226. package/es/components/organism/ActivityTimeline/components/TimeLineTitle/styled.js +7 -7
  227. package/es/components/organism/ActivityTimeline/components/TimelineSection/styled.js +69 -69
  228. package/es/components/organism/ActivityTimeline/constants.d.ts +9 -9
  229. package/es/components/organism/ActivityTimeline/constants.js +3 -3
  230. package/es/components/organism/ActivityTimeline/index.d.ts +530 -1
  231. package/es/components/organism/ActivityTimeline/index.js +9 -1
  232. package/es/components/organism/ActivityTimeline/styled.js +43 -43
  233. package/es/components/organism/ActivityTimeline/utils.js +186 -15
  234. package/es/components/organism/AlgorithmsSetting/styled.js +35 -35
  235. package/es/components/organism/BasicLogin/components/ChooseMethod/styled.js +19 -19
  236. package/es/components/organism/BasicLogin/components/LoginWithEmail/styled.js +3 -3
  237. package/es/components/organism/BasicLogin/components/LoginWithGG/styled.js +3 -3
  238. package/es/components/organism/BasicLogin/components/SignIn/styled.js +8 -8
  239. package/es/components/organism/BasicLogin/components/WidgetLayout/styled.js +18 -18
  240. package/es/components/organism/BasicLogin/styled.js +107 -107
  241. package/es/components/organism/ContentSources/styled.js +50 -50
  242. package/es/components/organism/DataTable/components/AddButton/index.js +8 -8
  243. package/es/components/organism/DataTable/components/ModifyColumn/styled.js +18 -18
  244. package/es/components/organism/DataTable/components/Pagination/styled.js +26 -26
  245. package/es/components/organism/DataTable/components/Table/styled.js +135 -135
  246. package/es/components/organism/DataTable/components/Toolbar/SearchPopover.js +17 -17
  247. package/es/components/organism/DataTable/components/Toolbar/styled.js +70 -70
  248. package/es/components/organism/DataTable/styled/index.js +84 -84
  249. package/es/components/organism/Filter/components/FilterCondition/styled.js +34 -34
  250. package/es/components/organism/Filter/styled.js +109 -109
  251. package/es/components/organism/FilterSetting/components/common/InputArray/styled.js +5 -5
  252. package/es/components/organism/FilterSetting/components/common/InputOrSelect/index.js +63 -63
  253. package/es/components/organism/FilterSetting/components/common/InputSelectMulti/ColumnSuggestion/index.js +31 -31
  254. package/es/components/organism/FilterSetting/components/common/InputSelectMulti/Tree/index.js +22 -22
  255. package/es/components/organism/FilterSetting/components/common/InputSelectMulti/index.js +55 -55
  256. package/es/components/organism/FilterSetting/styled.js +19 -19
  257. package/es/components/organism/GenerativeInsights/styled.js +55 -55
  258. package/es/components/organism/Help/styled.js +267 -267
  259. package/es/components/organism/LeftMenu/LeftMenu.js +6 -6
  260. package/es/components/organism/LeftMenu/components/HomeMenu/styled.js +39 -39
  261. package/es/components/organism/LeftMenu/components/common/ChildMenu/components/MenuItemImage/styled.js +16 -16
  262. package/es/components/organism/LeftMenu/components/common/ChildMenu/styled.js +156 -156
  263. package/es/components/organism/LeftMenu/hooks/usePermission.js +1 -1
  264. package/es/components/organism/LeftMenu/styled.js +216 -214
  265. package/es/components/organism/LeftMenu/types/index.d.ts +7 -0
  266. package/es/components/organism/LeftMenu/utils/index.js +1 -1
  267. package/es/components/organism/Login/Login.js +19 -36
  268. package/es/components/organism/Login/components/ChooseMethod/styled.js +19 -19
  269. package/es/components/organism/Login/components/ForgotPassword/styled.js +8 -8
  270. package/es/components/organism/Login/components/LoginSelectPortal/Item/styled.js +31 -31
  271. package/es/components/organism/Login/components/LoginSelectPortal/styled.js +3 -3
  272. package/es/components/organism/Login/components/LoginWithEmail/styled.js +3 -3
  273. package/es/components/organism/Login/components/LoginWithGG/styled.js +3 -3
  274. package/es/components/organism/Login/components/SetupGGAuthenticator/styled.js +7 -7
  275. package/es/components/organism/Login/components/SignIn/SignIn.js +2 -2
  276. package/es/components/organism/Login/components/SignIn/styled.js +8 -8
  277. package/es/components/organism/Login/components/VerifyAccount/styled.js +13 -13
  278. package/es/components/organism/Login/components/WidgetLayout/styled.js +18 -18
  279. package/es/components/organism/Login/styled.js +115 -115
  280. package/es/components/organism/Login/types/index.d.ts +2 -0
  281. package/es/components/organism/Menu/styled.js +6 -6
  282. package/es/components/organism/ModifyColumnModal/styled.js +132 -132
  283. package/es/components/organism/Notification/styled.js +155 -155
  284. package/es/components/organism/PreviewCollections/Messages/SkeletonMessage/styled.js +14 -14
  285. package/es/components/organism/PreviewCollections/WhatsappMessage/CarouselMessage/styled.js +63 -63
  286. package/es/components/organism/PreviewCollections/constants.js +50 -50
  287. package/es/components/organism/PreviewCollections/styled.js +16 -16
  288. package/es/components/organism/PreviewTemplateModal/components/Banner/styled.js +78 -78
  289. package/es/components/organism/PreviewTemplateModal/components/Information/styled.js +52 -52
  290. package/es/components/organism/PreviewTemplateModal/components/SimilarTemplate/styled.js +18 -18
  291. package/es/components/organism/PreviewTemplateModal/components/ThumbnailSlider/styled.js +77 -77
  292. package/es/components/organism/PreviewTemplateModal/styled.js +21 -21
  293. package/es/components/organism/SQLGeneration/components/styled.js +354 -354
  294. package/es/components/organism/SQLGeneration/index.scss +1 -1
  295. package/es/components/organism/SQLGeneration/integrations/AceEditor/index.scss +4 -4
  296. package/es/components/organism/Table/CrossTabTable/components/CustomCell/styled.js +11 -11
  297. package/es/components/organism/Table/CrossTabTable/styled.js +11 -11
  298. package/es/components/organism/Table/ExplorePivotTable/components/CustomCell/styled.js +17 -17
  299. package/es/components/organism/Table/ExplorePivotTable/styled.js +11 -11
  300. package/es/components/organism/TextEditor/TextEditor.d.ts +9 -2
  301. package/es/components/organism/TextEditor/TextEditor.js +203 -42
  302. package/es/components/organism/TextEditor/__mocks__/text-contennt.js +44 -44
  303. package/es/components/organism/TextEditor/constants.d.ts +9 -0
  304. package/es/components/organism/TextEditor/constants.js +66 -0
  305. package/es/components/organism/TextEditor/extensions/BubbleMenu/bubble-menu-plugin.d.ts +6 -128
  306. package/es/components/organism/TextEditor/extensions/BubbleMenu/bubble-menu-plugin.js +7 -292
  307. package/es/components/organism/TextEditor/extensions/BubbleMenu/bubble-menu.d.ts +1 -1
  308. package/es/components/organism/TextEditor/extensions/BubbleMenu/bubble-menu.js +4 -0
  309. package/es/components/organism/TextEditor/extensions/Link.js +33 -14
  310. package/es/components/organism/TextEditor/extensions/ListItem.d.ts +10 -0
  311. package/es/components/organism/TextEditor/extensions/ListItem.js +93 -0
  312. package/es/components/organism/TextEditor/extensions/SmartTag.d.ts +5 -6
  313. package/es/components/organism/TextEditor/extensions/SmartTag.js +96 -4
  314. package/es/components/organism/TextEditor/hooks/useColorSet.js +7 -0
  315. package/es/components/organism/TextEditor/hooks/useMarkTracking.js +2 -1
  316. package/es/components/organism/TextEditor/index.d.ts +7 -5
  317. package/es/components/organism/TextEditor/index.scss +65 -68
  318. package/es/components/organism/TextEditor/provider.d.ts +1 -0
  319. package/es/components/organism/TextEditor/provider.js +6 -3
  320. package/es/components/organism/TextEditor/store.d.ts +11 -4
  321. package/es/components/organism/TextEditor/store.js +22 -2
  322. package/es/components/organism/TextEditor/stories/WithOldDynAndLink/froala-legacy-format.settings.json +95 -0
  323. package/es/components/organism/TextEditor/stories/WithOldDynAndLink/shared.d.ts +111 -0
  324. package/es/components/organism/TextEditor/stories/WithOldDynAndLink/shared.js +82 -0
  325. package/es/components/organism/TextEditor/stories/shared.d.ts +64 -0
  326. package/es/components/organism/TextEditor/stories/shared.js +57 -0
  327. package/es/components/organism/TextEditor/styled.d.ts +1 -1
  328. package/es/components/organism/TextEditor/styled.js +54 -53
  329. package/es/components/organism/TextEditor/types.d.ts +161 -11
  330. package/es/components/organism/TextEditor/types.js +1 -0
  331. package/es/components/organism/TextEditor/ui/BubbleMenu/BubbleMenu.d.ts +2 -1
  332. package/es/components/organism/TextEditor/ui/BubbleMenu/BubbleMenu.js +80 -51
  333. package/es/components/organism/TextEditor/ui/Button/Button.js +22 -22
  334. package/es/components/organism/TextEditor/ui/DropdownButton/DropdownButton.js +13 -13
  335. package/es/components/organism/TextEditor/ui/Emoji/EmojiList.js +1 -1
  336. package/es/components/organism/TextEditor/ui/Emoji/suggestion.d.ts +1 -1
  337. package/es/components/organism/TextEditor/ui/Emoji/suggestion.js +2 -2
  338. package/es/components/organism/TextEditor/ui/FontPopover/FontPopover.js +12 -2
  339. package/es/components/organism/TextEditor/ui/FontPopover/styled.js +32 -32
  340. package/es/components/organism/TextEditor/ui/LinkInsertForm/LinkInsertForm.d.ts +16 -0
  341. package/es/components/organism/TextEditor/ui/LinkInsertForm/LinkInsertForm.js +61 -0
  342. package/es/components/organism/TextEditor/ui/LinkInsertForm/index.d.ts +2 -0
  343. package/es/components/organism/TextEditor/ui/LinkInsertForm/index.js +1 -0
  344. package/es/components/organism/TextEditor/ui/LinkPopover/LinkPopover.d.ts +9 -0
  345. package/es/components/organism/TextEditor/ui/LinkPopover/LinkPopover.js +126 -0
  346. package/es/components/organism/TextEditor/ui/LinkPopover/index.d.ts +2 -0
  347. package/es/components/organism/TextEditor/ui/LinkPopover/index.js +1 -0
  348. package/es/components/organism/TextEditor/ui/Popover/Popover.js +1 -1
  349. package/es/components/organism/TextEditor/ui/SplitButtonDropdown/styled.js +54 -54
  350. package/es/components/organism/TextEditor/ui/TextAlignSelect/TextAlignSelect.js +10 -12
  351. package/es/components/organism/TextEditor/ui/Toolbar/{Toolbar.d.ts → FormattingToolbar.d.ts} +3 -4
  352. package/es/components/organism/TextEditor/ui/Toolbar/FormattingToolbar.js +90 -0
  353. package/es/components/organism/TextEditor/ui/Toolbar/LinkPreviewToolbar.d.ts +10 -0
  354. package/es/components/organism/TextEditor/ui/Toolbar/LinkPreviewToolbar.js +39 -0
  355. package/es/components/organism/TextEditor/ui/Toolbar/actions/EmojiAction.js +4 -3
  356. package/es/components/organism/TextEditor/ui/Toolbar/actions/FontFamilyAction.d.ts +1 -0
  357. package/es/components/organism/TextEditor/ui/Toolbar/actions/FontFamilyAction.js +2 -2
  358. package/es/components/organism/TextEditor/ui/Toolbar/actions/FontSizeAction.js +17 -12
  359. package/es/components/organism/TextEditor/ui/Toolbar/index.d.ts +2 -1
  360. package/es/components/organism/TextEditor/ui/Toolbar/index.js +2 -1
  361. package/es/components/organism/TextEditor/utils/documentState.d.ts +14 -0
  362. package/es/components/organism/TextEditor/utils/documentState.js +25 -0
  363. package/es/components/organism/TextEditor/utils/htmlProcessing.js +60 -0
  364. package/es/components/organism/TextEditor/utils/link.d.ts +10 -1
  365. package/es/components/organism/TextEditor/utils/link.js +161 -7
  366. package/es/components/organism/TextEditor/utils/menu.js +2 -1
  367. package/es/components/organism/TextEditor/utils/selection.js +3 -2
  368. package/es/components/organism/TextEditor/utils/smartTag.js +2 -1
  369. package/es/components/organism/TicketEditor/styled.js +860 -860
  370. package/es/components/organism/TicketEditorV2/styled.js +839 -839
  371. package/es/components/organism/index.d.ts +1 -1
  372. package/es/components/organism/index.scss +2 -2
  373. package/es/components/template/Layout/Layout.js +10 -10
  374. package/es/components/template/Layout/components/RecommendationWorkspace/components/MenuMapping/components/OldLeftMenu/styled.js +73 -73
  375. package/es/components/template/Layout/components/RecommendationWorkspace/components/MenuMapping/styled.js +39 -39
  376. package/es/components/template/Layout/components/RecommendationWorkspace/components/RecommendationImage/styled.js +61 -61
  377. package/es/components/template/Layout/components/RecommendationWorkspace/styled.js +16 -16
  378. package/es/components/template/Layout/styled.js +84 -84
  379. package/es/components/template/TemplateListing/Loadable.d.ts +1 -0
  380. package/es/components/template/TemplateListing/components/BlankTemplate/styled.js +21 -21
  381. package/es/components/template/TemplateListing/components/CategoryListing/styled.js +123 -123
  382. package/es/components/template/TemplateListing/components/Empty/styled.js +20 -20
  383. package/es/components/template/TemplateListing/stories/demo/styled.js +4 -4
  384. package/es/components/template/TemplateListing/styled/index.js +40 -40
  385. package/es/hooks/index.d.ts +1 -1
  386. package/es/hooks/index.js +1 -1
  387. package/es/providers/ConfigProvider/ConfigProvider.d.ts +4 -0
  388. package/es/providers/ConfigProvider/ConfigProvider.js +2 -3
  389. package/es/providers/ConfigProvider/GlobalStyle.d.ts +2 -2
  390. package/es/providers/ConfigProvider/GlobalStyle.js +1252 -1249
  391. package/es/services/MediaTemplateDesign/UploadFile/index.js +4 -4
  392. package/es/styled/common.js +51 -51
  393. package/es/tests/styled.js +4 -4
  394. package/es/utils/common.d.ts +1 -1
  395. package/es/utils/common.js +3 -3
  396. package/es/utils/cookie.js +2 -1
  397. package/es/utils/crossSubdomainCookieOptions.d.ts +14 -0
  398. package/es/utils/crossSubdomainCookieOptions.js +12 -0
  399. package/es/utils/variables.js +7 -7
  400. package/package.json +282 -286
  401. package/es/components/organism/TextEditor/ui/BubbleToolbar/BubbleToolbar.d.ts +0 -1
  402. package/es/components/organism/TextEditor/ui/BubbleToolbar/BubbleToolbar.js +0 -1
  403. package/es/components/organism/TextEditor/ui/BubbleToolbar/index.d.ts +0 -0
  404. package/es/components/organism/TextEditor/ui/BubbleToolbar/index.js +0 -1
  405. package/es/components/organism/TextEditor/ui/Toolbar/Toolbar.js +0 -39
@@ -0,0 +1,93 @@
1
+ import { ListItem } from '@tiptap/extension-list-item';
2
+ /**
3
+ * Custom ListItem extension that extends the default TipTap ListItem
4
+ * with custom Backspace behavior to prevent merging paragraphs into lists
5
+ *
6
+ * This extension only overrides keyboard shortcuts while maintaining
7
+ * all other default ListItem functionality (HTML parsing, rendering, etc.)
8
+ *
9
+ * @see https://www.tiptap.dev/api/nodes/list-item
10
+ */
11
+ export const CustomListItem = ListItem.extend({
12
+ addOptions() {
13
+ return {
14
+ HTMLAttributes: {
15
+ style: 'line-height:normal;',
16
+ },
17
+ bulletListTypeName: 'customUnorderedList',
18
+ orderedListTypeName: 'customOrderedList',
19
+ };
20
+ },
21
+ addKeyboardShortcuts() {
22
+ return {
23
+ // Keep default keyboard shortcuts from parent ListItem
24
+ Enter: () => this.editor.commands.splitListItem(this.name),
25
+ Tab: () => this.editor.commands.sinkListItem(this.name),
26
+ 'Shift-Tab': () => this.editor.commands.liftListItem(this.name),
27
+ /**
28
+ * Custom Backspace handler to prevent merging empty paragraphs into lists
29
+ *
30
+ * Behavior:
31
+ * 1. Check if cursor is at the start of a paragraph
32
+ * 2. Check if the node before is a list (ordered or unordered)
33
+ * 3. If both conditions are true and paragraph is empty, delete the paragraph
34
+ * 4. Otherwise, use default backspace behavior
35
+ */
36
+ Backspace: () => {
37
+ const { state } = this.editor;
38
+ const { selection } = state;
39
+ const { $from, empty } = selection;
40
+ // Only handle if selection is empty (cursor position, not text selection)
41
+ if (!empty) {
42
+ return false;
43
+ }
44
+ // Check if cursor is at the start of current node
45
+ const isAtStart = $from.parentOffset === 0;
46
+ if (!isAtStart) {
47
+ return false;
48
+ }
49
+ // Get current node (should be a paragraph)
50
+ const currentNode = $from.parent;
51
+ // Only handle paragraphs
52
+ if (currentNode.type.name !== 'paragraph') {
53
+ return false;
54
+ }
55
+ // Get the index of current paragraph in its parent (usually doc)
56
+ const paragraphDepth = $from.depth;
57
+ const indexInParent = $from.index(paragraphDepth - 1);
58
+ // Check if there's a node before (index > 0)
59
+ if (indexInParent === 0) {
60
+ return false;
61
+ }
62
+ // Get parent node (usually doc) and the node before current paragraph
63
+ const parent = $from.node(paragraphDepth - 1);
64
+ const nodeBefore = parent.child(indexInParent - 1);
65
+ if (!nodeBefore) {
66
+ return false;
67
+ }
68
+ // Check if the node before is a list (ordered or unordered)
69
+ const isListBefore = nodeBefore.type.name === this.options.orderedListTypeName ||
70
+ nodeBefore.type.name === this.options.bulletListTypeName;
71
+ if (!isListBefore) {
72
+ return false;
73
+ }
74
+ // Check if current paragraph is empty
75
+ const isParagraphEmpty = currentNode.content.size === 0;
76
+ if (!isParagraphEmpty) {
77
+ // If paragraph has content, allow default backspace to handle
78
+ return false;
79
+ }
80
+ // Calculate the exact positions of the paragraph node
81
+ // We need to delete from the position before the paragraph open tag
82
+ // to the position after the paragraph close tag
83
+ const paragraphPos = $from.before();
84
+ const paragraphEndPos = $from.after();
85
+ // Delete the entire paragraph node using deleteRange
86
+ return this.editor.commands.deleteRange({
87
+ from: paragraphPos,
88
+ to: paragraphEndPos,
89
+ });
90
+ },
91
+ };
92
+ },
93
+ });
@@ -1,16 +1,15 @@
1
1
  import { Node } from '@tiptap/core';
2
2
  import { Attrs } from '@tiptap/pm/model';
3
- export type SmartTagAttrs = {
4
- id: string;
5
- } & Partial<{
6
- content: string;
7
- tag: string;
8
- }>;
9
3
  /**
10
4
  * Represents the options for the SmartTag node.
11
5
  */
12
6
  export interface SmartTagOptions {
13
7
  HTMLAttributes: Record<string, unknown>;
8
+ /**
9
+ * Custom function to generate unique IDs for smart tags
10
+ * If not provided, falls back to uniqid library
11
+ */
12
+ generateSmartTagId?: () => string;
14
13
  }
15
14
  /**
16
15
  * Represents the options for the SmartTag node.
@@ -1,4 +1,7 @@
1
- import { Node, mergeAttributes } from '@tiptap/core';
1
+ import { Node, getMarksBetween, mergeAttributes } from '@tiptap/core';
2
+ import { Plugin, PluginKey } from '@tiptap/pm/state';
3
+ import uniqid from 'uniqid';
4
+ import { isSmartTagNode } from '../types';
2
5
  export const EXTENSION_NAME = 'smartTag';
3
6
  /**
4
7
  * Represents a dynamic tag node in the editor.
@@ -12,6 +15,7 @@ export const SmartTag = Node.create({
12
15
  addOptions() {
13
16
  return {
14
17
  HTMLAttributes: {},
18
+ generateSmartTagId: () => uniqid(),
15
19
  };
16
20
  },
17
21
  addAttributes() {
@@ -29,6 +33,11 @@ export const SmartTag = Node.create({
29
33
  parseHTML: el => el.getAttribute('tag'),
30
34
  renderHTML: attrs => (attrs.tag ? { tag: attrs.tag } : null),
31
35
  },
36
+ // Transient attribute - not persisted to HTML, used for tracking paste operations
37
+ sourceId: {
38
+ default: null,
39
+ rendered: false, // Don't include in HTML output
40
+ },
32
41
  };
33
42
  },
34
43
  parseHTML() {
@@ -57,9 +66,10 @@ export const SmartTag = Node.create({
57
66
  addCommands() {
58
67
  return {
59
68
  setSmartTag: attrs => ({ chain, state }) => {
60
- const { selection, storedMarks } = state;
61
- const { $from } = selection;
62
- const marks = storedMarks || $from.marks();
69
+ const { selection } = state;
70
+ const { from, to } = selection;
71
+ // Get marks from inside the selection to capture boundary marks
72
+ const marks = getMarksBetween(from, to, state.doc).map(markRange => markRange.mark);
63
73
  const smartTagNode = this.type.create(attrs);
64
74
  const nodeWithMarks = marks.length > 0 ? smartTagNode.mark(marks) : smartTagNode;
65
75
  return chain()
@@ -99,4 +109,86 @@ export const SmartTag = Node.create({
99
109
  },
100
110
  };
101
111
  },
112
+ addProseMirrorPlugins() {
113
+ // Smart Tag Deduplication Plugin
114
+ // Responsibility: Set sourceId for pasted smart tags (for external component to handle cloning)
115
+ const deduplicationPlugin = new Plugin({
116
+ key: new PluginKey('smartTagDeduplication'),
117
+ appendTransaction: (transactions, oldState, newState) => {
118
+ // Only process if there was a paste or document change
119
+ const hasPaste = transactions.some(tr => tr.getMeta('paste'));
120
+ const hasDocChange = transactions.some(tr => tr.docChanged);
121
+ if (!hasPaste && !hasDocChange) {
122
+ return null;
123
+ }
124
+ // Build position mapping from oldState to newState
125
+ // This accounts for position shifts when pasting
126
+ const { mapping } = transactions[0];
127
+ // Build a map of existing smart tag IDs in oldState (before paste)
128
+ const oldStateIds = new Map();
129
+ oldState.doc.descendants((node, pos) => {
130
+ if (isSmartTagNode(node)) {
131
+ oldStateIds.set(node.attrs.id, { pos });
132
+ }
133
+ });
134
+ // Collect all smart tag IDs in newState (after paste)
135
+ const newStateIds = new Map();
136
+ newState.doc.descendants((node, pos) => {
137
+ if (isSmartTagNode(node)) {
138
+ const { id } = node.attrs;
139
+ if (!newStateIds.has(id)) {
140
+ newStateIds.set(id, []);
141
+ }
142
+ newStateIds.get(id).push({ pos, node });
143
+ }
144
+ });
145
+ // Find duplicates: IDs that appear multiple times in newState
146
+ const nodesToSetSourceId = new Map();
147
+ newStateIds.forEach((positions, id) => {
148
+ if (positions.length > 1) {
149
+ // This ID has duplicates
150
+ const oldInfo = oldStateIds.get(id);
151
+ if (oldInfo) {
152
+ // Map old position to new position accounting for document changes
153
+ const mappedPos = mapping.map(oldInfo.pos);
154
+ // Filter out the original node (by mapped position), keep only pasted nodes
155
+ const pastedNodes = positions.filter(({ pos }) => pos !== mappedPos);
156
+ if (pastedNodes.length > 0) {
157
+ nodesToSetSourceId.set(id, pastedNodes);
158
+ }
159
+ }
160
+ else {
161
+ // No original in oldState - all are new (e.g., paste multiple new smart tags)
162
+ // Pick first as "original", rest get sourceId
163
+ const [_first, ...rest] = positions;
164
+ if (rest.length > 0) {
165
+ nodesToSetSourceId.set(id, rest);
166
+ }
167
+ }
168
+ }
169
+ });
170
+ // If no duplicates found, no action needed
171
+ if (nodesToSetSourceId.size === 0) {
172
+ return null;
173
+ }
174
+ // Set sourceId for pasted nodes (do NOT generate new IDs)
175
+ // External component will handle ID generation and attrs cloning
176
+ const { tr } = newState;
177
+ let hasChanges = false;
178
+ nodesToSetSourceId.forEach((positions, sourceId) => {
179
+ positions.forEach(({ pos, node }) => {
180
+ // Only set sourceId, keep original ID
181
+ tr.setNodeMarkup(pos, undefined, {
182
+ ...node.attrs,
183
+ sourceId,
184
+ id: this.options.generateSmartTagId?.() || uniqid(),
185
+ });
186
+ hasChanges = true;
187
+ });
188
+ });
189
+ return hasChanges ? tr : null;
190
+ },
191
+ });
192
+ return [deduplicationPlugin];
193
+ },
102
194
  });
@@ -2,6 +2,7 @@ import { useBroadcastedLocalStorage, useDeepCompareEffect } from '@antscorp/ants
2
2
  import { useTextEditorStore } from '../provider';
3
3
  import { ANTSOMI_COMPONENT_PREFIX_CLS } from '@antscorp/antsomi-ui/es/constants';
4
4
  import { useCallback } from 'react';
5
+ import isEqual from 'react-fast-compare';
5
6
  export const useColorSet = () => {
6
7
  const colors = useTextEditorStore(s => s.colors);
7
8
  const setColors = useTextEditorStore(s => s.setColors);
@@ -9,9 +10,15 @@ export const useColorSet = () => {
9
10
  useDeepCompareEffect(() => {
10
11
  if (storageColors === undefined && colors !== undefined) {
11
12
  setStorageColors(colors);
13
+ return;
12
14
  }
13
15
  if (colors === undefined && storageColors !== undefined) {
14
16
  setColors(storageColors);
17
+ return;
18
+ }
19
+ // Sync store → localStorage when both defined but different
20
+ if (colors !== undefined && storageColors !== undefined && !isEqual(colors, storageColors)) {
21
+ setStorageColors(colors);
15
22
  }
16
23
  }, [colors, storageColors, setColors, setStorageColors]);
17
24
  const composeSetColors = useCallback((newColors) => {
@@ -1,4 +1,5 @@
1
1
  import { useCallback, useEffect, useState } from 'react';
2
+ import { textBetween } from '../utils';
2
3
  export function useMarkTracking(editor, options = {}) {
3
4
  const { maxSnapshots = 10, excludeMarks = ['link', 'smartTag'], debounceDelay = 500, autoCapture = true, } = options;
4
5
  const [snapshots, setSnapshots] = useState([]);
@@ -14,7 +15,7 @@ export function useMarkTracking(editor, options = {}) {
14
15
  marks,
15
16
  position: $from.pos,
16
17
  timestamp: Date.now(),
17
- textContent: editor.state.doc.textBetween(Math.max(0, $from.pos - 50), Math.min(editor.state.doc.content.size, $from.pos + 50)),
18
+ textContent: textBetween(editor.state, Math.max(0, $from.pos - 50), Math.min(editor.state.doc.content.size, $from.pos + 50)),
18
19
  };
19
20
  setSnapshots(prev => {
20
21
  const updated = [snapshot, ...prev];
@@ -1,14 +1,16 @@
1
1
  /// <reference types="react" />
2
2
  import { JSONContent } from '@tiptap/core';
3
- export type { TextEditorProps, TextEditorRef, TextEditorComponentsRender, LinkAttrs, FontConfig, } from './types';
3
+ export type { TextEditorProps, TextEditorAllProps, TextEditorRef, TextEditorWithProviderRef, TextEditorComponentsRender, LinkAttrs, FontConfig, } from './types';
4
4
  export { isLinkMark, isLinkMarkRange } from './types';
5
5
  export { CUSTOM_LINK_EXTENSION_NAME } from './constants';
6
6
  export type { JSONContent as TextEditorJSONContent };
7
7
  export { TextEditorProvider, type TextEditorProviderProps, type TextEditorProviderRefHandler, } from './provider';
8
- export declare const TextEditor: import("react").NamedExoticComponent<Omit<import("./types").TextEditorProps & import("react").RefAttributes<import("./types").TextEditorRef>, "ref"> & {
9
- ref?: ((instance: import("./types").TextEditorRef | null) => void) | import("react").RefObject<import("./types").TextEditorRef> | null | undefined;
10
- }> & {
11
- readonly type: import("react").ForwardRefExoticComponent<import("./types").TextEditorProps & import("react").RefAttributes<import("./types").TextEditorRef>>;
8
+ export declare const TextEditor: import("react").ForwardRefExoticComponent<import("./types").TextEditorProps & {
9
+ colors?: string[] | undefined;
10
+ onChangeColors?: ((colors: string[]) => void) | undefined;
11
+ } & import("react").RefAttributes<import("./types").TextEditorWithProviderRef>> & {
12
+ Provider: import("react").ForwardRefExoticComponent<import("./provider").TextEditorProviderProps & import("react").RefAttributes<import("./provider").TextEditorProviderRefHandler>>;
13
+ Internal: import("react").MemoExoticComponent<import("react").ForwardRefExoticComponent<import("./types").TextEditorProps & import("react").RefAttributes<import("./types").TextEditorRef>>>;
12
14
  } & {
13
15
  Utils: {
14
16
  htmlMinifyForEmail: (htmlEditorContent: string) => string;
@@ -1,68 +1,65 @@
1
- .antsomi-text-editor-bubble-menu {
2
- visibility: hidden;
3
- position: absolute;
4
- pointer-events: auto;
5
- z-index: 999;
6
- }
7
-
8
- .antsomi-text-editor-emoji-popover {
9
- position: absolute;
10
- width: 180px;
11
- z-index: 1000;
12
-
13
- .antsomi-text-editor-emoji-list {
14
- .antsomi-virtualize-menu-menu-inline {
15
- background-color: white;
16
- box-shadow: var(--antsomi-box-shadow-secondary);
17
- border-radius: 10px;
18
-
19
- .antsomi-virtualize-menu-item-label {
20
- display: flex;
21
- align-items: center;
22
- gap: 10px;
23
- }
24
- }
25
- }
26
- }
27
-
28
- .font-popover-overlay {
29
- padding: 0;
30
-
31
- .font-popover-item {
32
- width: 100%;
33
- height: 100%;
34
- cursor: pointer;
35
- padding-left: 10px;
36
- padding-right: 8px;
37
-
38
- &:hover,
39
- &.active {
40
- background-color: #f2f9ff;
41
- }
42
- }
43
- }
44
-
45
- .font-weight-popover {
46
- &.antsomi-popover {
47
- .antsomi-popover-inner {
48
- padding: 10px 0px;
49
-
50
- .font-weight-item {
51
- padding: 4px 10px;
52
- cursor: pointer;
53
-
54
- &:hover,
55
- &.active {
56
- background-color: #f2f9ff;
57
- }
58
- }
59
- }
60
- }
61
- }
62
-
63
- .antsomi-text-editor-bubble-menu {
64
- background-color: white;
65
- border-radius: 4px;
66
- padding: 15px;
67
- box-shadow: var(--antsomi-box-shadow-secondary);
68
- }
1
+ .antsomi-text-editor-bubble-menu {
2
+ visibility: hidden;
3
+ position: absolute;
4
+ pointer-events: auto;
5
+ z-index: 999;
6
+ background-color: white;
7
+ border-radius: 4px;
8
+ padding: 15px;
9
+ box-shadow: var(--antsomi-box-shadow-secondary);
10
+ }
11
+
12
+ .antsomi-text-editor-emoji-popover {
13
+ position: absolute;
14
+ width: 180px;
15
+ z-index: 1000;
16
+
17
+ .antsomi-text-editor-emoji-list {
18
+ .antsomi-virtualize-menu-menu-inline {
19
+ background-color: white;
20
+ box-shadow: var(--antsomi-box-shadow-secondary);
21
+ border-radius: 10px;
22
+
23
+ .antsomi-virtualize-menu-item-label {
24
+ display: flex;
25
+ align-items: center;
26
+ gap: 10px;
27
+ }
28
+ }
29
+ }
30
+ }
31
+
32
+ .font-popover-overlay {
33
+ padding: 0;
34
+
35
+ .font-popover-item {
36
+ width: 100%;
37
+ height: 100%;
38
+ cursor: pointer;
39
+ padding-left: 10px;
40
+ padding-right: 8px;
41
+
42
+ &:hover,
43
+ &.active {
44
+ background-color: #f2f9ff;
45
+ }
46
+ }
47
+ }
48
+
49
+ .font-weight-popover {
50
+ &.antsomi-popover {
51
+ .antsomi-popover-inner {
52
+ padding: 10px 0px;
53
+
54
+ .font-weight-item {
55
+ padding: 4px 10px;
56
+ cursor: pointer;
57
+
58
+ &:hover,
59
+ &.active {
60
+ background-color: #f2f9ff;
61
+ }
62
+ }
63
+ }
64
+ }
65
+ }
@@ -8,6 +8,7 @@ export interface TextEditorProviderRefHandler {
8
8
  }
9
9
  export interface TextEditorProviderProps {
10
10
  children: React.ReactNode | ((props: TextEditorStoreApi) => React.ReactNode);
11
+ colors?: string[];
11
12
  onChangeColors?: (colors: string[]) => void;
12
13
  }
13
14
  export declare const TextEditorProvider: import("react").ForwardRefExoticComponent<TextEditorProviderProps & import("react").RefAttributes<TextEditorProviderRefHandler>>;
@@ -5,10 +5,12 @@ import { useStore } from 'zustand';
5
5
  // Store
6
6
  import { createTextEditorStore } from './store';
7
7
  export const TextEditorStoreContext = createContext(null);
8
- export const TextEditorProvider = forwardRef(({ children, onChangeColors }, ref) => {
8
+ export const TextEditorProvider = forwardRef(({ children, colors, onChangeColors }, ref) => {
9
9
  const storeRef = useRef();
10
10
  if (!storeRef.current) {
11
- storeRef.current = createTextEditorStore();
11
+ storeRef.current = createTextEditorStore({
12
+ colors,
13
+ });
12
14
  }
13
15
  useEffect(() => {
14
16
  storeRef.current?.setState({
@@ -20,7 +22,8 @@ export const TextEditorProvider = forwardRef(({ children, onChangeColors }, ref)
20
22
  }, [onChangeColors]);
21
23
  useImperativeHandle(ref, () => ({
22
24
  updateColors: colors => {
23
- storeRef.current?.getState().setColors(colors);
25
+ // Use getInitialState to bypass the wrapped setColors and avoid triggering onChangeColors
26
+ storeRef.current?.getInitialState().setColors(colors);
24
27
  },
25
28
  }));
26
29
  return (_jsx(TextEditorStoreContext.Provider, { value: storeRef.current, children: typeof children === 'function' ? children(storeRef.current) : children }));
@@ -1,12 +1,19 @@
1
+ import type { LinkFormData, LinkFormState } from './types';
1
2
  export type TextEditorState = {
2
- bubbleMenuContainer: HTMLDivElement | null;
3
- isShowBubbleMenu: boolean;
3
+ bubbleMenuContainer: HTMLElement | null;
4
4
  colors?: string[];
5
+ /** Link form state for default link insert/edit UI */
6
+ linkFormState: LinkFormState;
5
7
  };
6
8
  export type TextEditorActions = {
7
- setBubbleMenuContainer: (container: HTMLDivElement | null) => void;
8
- setIsShowBubbleMenu: (isShow: boolean) => void;
9
+ setBubbleMenuContainer: (container: HTMLElement | null) => void;
9
10
  setColors: (newColorSet: string[]) => void;
11
+ /** Show link form with initial data */
12
+ showLinkForm: (mode: 'insert' | 'edit', initialData: LinkFormData) => void;
13
+ /** Hide link form */
14
+ hideLinkForm: () => void;
15
+ /** Update link form data (partial update) */
16
+ updateLinkFormData: (data: Partial<LinkFormData>) => void;
10
17
  };
11
18
  export type TextEditorStore = TextEditorState & TextEditorActions;
12
19
  export declare const defaultTextEditorState: TextEditorState;
@@ -3,13 +3,12 @@ import isEqual from 'react-fast-compare';
3
3
  import { createStore } from 'zustand';
4
4
  export const defaultTextEditorState = {
5
5
  bubbleMenuContainer: null,
6
- isShowBubbleMenu: false,
6
+ linkFormState: null,
7
7
  };
8
8
  export const createTextEditorStore = (initState = {}) => createStore()((set, get) => ({
9
9
  ...defaultTextEditorState,
10
10
  ...initState,
11
11
  setBubbleMenuContainer: container => set(() => ({ bubbleMenuContainer: container })),
12
- setIsShowBubbleMenu: isShow => set(() => ({ isShowBubbleMenu: isShow })),
13
12
  setColors: newColors => {
14
13
  const currentColors = get().colors;
15
14
  if (isEqual(currentColors, newColors)) {
@@ -17,4 +16,25 @@ export const createTextEditorStore = (initState = {}) => createStore()((set, get
17
16
  }
18
17
  set(() => ({ colors: newColors }));
19
18
  },
19
+ showLinkForm: (mode, initialData) => set(() => ({
20
+ linkFormState: {
21
+ isVisible: true,
22
+ mode,
23
+ data: initialData,
24
+ },
25
+ })),
26
+ hideLinkForm: () => set(() => ({ linkFormState: null })),
27
+ updateLinkFormData: data => set(state => {
28
+ if (!state.linkFormState)
29
+ return state;
30
+ return {
31
+ linkFormState: {
32
+ ...state.linkFormState,
33
+ data: {
34
+ ...state.linkFormState.data,
35
+ ...data,
36
+ },
37
+ },
38
+ };
39
+ }),
20
40
  }));
@@ -0,0 +1,95 @@
1
+ {
2
+ "rawHTML": "<div class=\"fr-element fr-view\" dir=\"auto\" contenteditable=\"true\" aria-disabled=\"false\" spellcheck=\"true\"><p><span style=\"font-family: Montserrat; font-size: 22px; letter-spacing: 0px; color: #000000;\"><a data-link-id=\"j24jwuk2\" target=\"_blank\" href=\"https://ant.design/components/modal\"><span data-dynamic=\"true\" data-dynamic-id=\"i6fapgk6\" style=\"direction: unset; unicode-bidi: bidi-override; background-color: rgba(0, 199, 97, 0.2);\">Last modified by</span></a> Special <a data-link-id=\"rrd48wh5\" target=\"_blank\" href=\"https://ant.design\">Bonus <span data-dynamic=\"true\" data-dynamic-id=\"4ip5g3w4\" style=\"direction: unset; unicode-bidi: bidi-override; background-color: rgba(0, 199, 97, 0.2);\">Created date</span> Has</a> Been <span data-dynamic=\"true\" data-dynamic-id=\"vd3tmfc3\" style=\"direction: unset; unicode-bidi: bidi-override; background-color: rgba(0, 199, 97, 0.2);\"><a data-link-id=\"ir1h7e67\" target=\"_blank\" href=\"https://fireup.pro/news/goodbye-useeffect-exploring-use-in-react-19?ref=dailydev\">Name</a></span>&nbsp;Special <a data-link-id=\"rrd48wh5\" href=\"https://ant.design\" target=\"_blank\" id=\"isPasted\">Bonus</a>&nbsp;fasdfas&nbsp; sdfadf</span></p></div>",
3
+ "dynamic": {
4
+ "data": {
5
+ "4ip5g3w4": {
6
+ "type": "visitor-attribute",
7
+ "attribute": {
8
+ "label": "Created date",
9
+ "value": "date_created",
10
+ "status": 1,
11
+ "dataType": "datetime",
12
+ "disabled": false,
13
+ "datetimeFormatSettings": {
14
+ "type": "datetime",
15
+ "language": "en",
16
+ "hasDateFormat": true,
17
+ "hasTimeFormat": true,
18
+ "dateParseFormat": "MM/DD/YYYY",
19
+ "dateParseOption": "medium",
20
+ "timeParseFormat": "12hour",
21
+ "timeParseOption": "medium",
22
+ "dateFormatString": "MMM DD, YYYY h:mm:ss A"
23
+ }
24
+ },
25
+ "mappingKey": "lg5pk39o2qmxyc7oano5-4ip5g3w4",
26
+ "mappingFields": "visitor.date_created"
27
+ },
28
+ "i6fapgk6": {
29
+ "type": "event-attribute",
30
+ "event": "226539:17",
31
+ "source": [556657814],
32
+ "attribute": {
33
+ "type": 1,
34
+ "label": "Last modified by",
35
+ "value": "ad_zone.u_user_id",
36
+ "status": 1,
37
+ "children": [],
38
+ "dataType": "number",
39
+ "itemTypeId": -1013,
40
+ "itemTypeName": "ad_zone",
41
+ "propertyName": "u_user_id",
42
+ "eventPropertySyntax": "dims.ad_zone_id",
43
+ "numberFormatSettings": {
44
+ "type": "number",
45
+ "decimal": ".",
46
+ "grouping": ",",
47
+ "isCompact": false,
48
+ "prefixType": "code",
49
+ "currencyCode": "USD",
50
+ "decimalPlaces": 2
51
+ }
52
+ },
53
+ "mappingKey": "lg5pk39o2qmxyc7oano5-i6fapgk6",
54
+ "mappingFields": "event.ad_zone.u_user_id"
55
+ },
56
+ "vd3tmfc3": {
57
+ "type": "customer-attribute",
58
+ "attribute": {
59
+ "label": "Name",
60
+ "value": "name",
61
+ "status": 1,
62
+ "dataType": "string",
63
+ "disabled": false
64
+ },
65
+ "mappingKey": "lg5pk39o2qmxyc7oano5-vd3tmfc3",
66
+ "mappingFields": "customer.name"
67
+ }
68
+ },
69
+ "highlight": true,
70
+ "selectedId": ""
71
+ },
72
+ "link": {
73
+ "data": {
74
+ "ir1h7e67": {
75
+ "url": "https://fireup.pro/news/goodbye-useeffect-exploring-use-in-react-19?ref=dailydev",
76
+ "text": "Name",
77
+ "linkType": "static",
78
+ "openNewTab": true
79
+ },
80
+ "j24jwuk2": {
81
+ "url": "https://ant.design/components/modal",
82
+ "text": "Your",
83
+ "linkType": "static",
84
+ "openNewTab": true
85
+ },
86
+ "rrd48wh5": {
87
+ "url": "https://ant.design",
88
+ "text": "Bonus Offer Has",
89
+ "linkType": "static",
90
+ "openNewTab": true
91
+ }
92
+ },
93
+ "selectedId": ""
94
+ }
95
+ }