@multiplatform.one/rich-text 6.0.0

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 (450) hide show
  1. package/LICENSE +201 -0
  2. package/dist/cjs/RichEditor.cjs +132 -0
  3. package/dist/cjs/RichEditor.native.js +120 -0
  4. package/dist/cjs/RichEditor.native.js.map +1 -0
  5. package/dist/cjs/RichEditor.stories.cjs +327 -0
  6. package/dist/cjs/RichEditor.stories.native.js +342 -0
  7. package/dist/cjs/RichEditor.stories.native.js.map +1 -0
  8. package/dist/cjs/RichTextEditor/index.cjs +148 -0
  9. package/dist/cjs/RichTextEditor/index.native.js +160 -0
  10. package/dist/cjs/RichTextEditor/index.native.js.map +1 -0
  11. package/dist/cjs/constants.cjs +135 -0
  12. package/dist/cjs/constants.native.js +138 -0
  13. package/dist/cjs/constants.native.js.map +1 -0
  14. package/dist/cjs/context.cjs +33 -0
  15. package/dist/cjs/context.native.js +36 -0
  16. package/dist/cjs/context.native.js.map +1 -0
  17. package/dist/cjs/editor/BlockDragHandle.cjs +137 -0
  18. package/dist/cjs/editor/BlockDragHandle.native.js +142 -0
  19. package/dist/cjs/editor/BlockDragHandle.native.js.map +1 -0
  20. package/dist/cjs/editor/MarkdownPaste.cjs +65 -0
  21. package/dist/cjs/editor/MarkdownPaste.native.js +68 -0
  22. package/dist/cjs/editor/MarkdownPaste.native.js.map +1 -0
  23. package/dist/cjs/editor/SlashCommands.cjs +369 -0
  24. package/dist/cjs/editor/SlashCommands.native.js +424 -0
  25. package/dist/cjs/editor/SlashCommands.native.js.map +1 -0
  26. package/dist/cjs/editor/TentapEditor.native.js +242 -0
  27. package/dist/cjs/editor/TentapEditor.native.js.map +1 -0
  28. package/dist/cjs/editor/TiptapEditor.cjs +578 -0
  29. package/dist/cjs/editor/TiptapEditor.native.js +661 -0
  30. package/dist/cjs/editor/TiptapEditor.native.js.map +1 -0
  31. package/dist/cjs/editor/editorStyles.cjs +272 -0
  32. package/dist/cjs/editor/editorStyles.native.js +276 -0
  33. package/dist/cjs/editor/editorStyles.native.js.map +1 -0
  34. package/dist/cjs/editor/index.cjs +33 -0
  35. package/dist/cjs/editor/index.native.js +36 -0
  36. package/dist/cjs/editor/index.native.js.map +1 -0
  37. package/dist/cjs/editor/types.cjs +54 -0
  38. package/dist/cjs/editor/types.native.js +57 -0
  39. package/dist/cjs/editor/types.native.js.map +1 -0
  40. package/dist/cjs/editor/useEditorState.cjs +129 -0
  41. package/dist/cjs/editor/useEditorState.native.js +135 -0
  42. package/dist/cjs/editor/useEditorState.native.js.map +1 -0
  43. package/dist/cjs/index.cjs +30 -0
  44. package/dist/cjs/index.native.js +33 -0
  45. package/dist/cjs/index.native.js.map +1 -0
  46. package/dist/cjs/styled.cjs +173 -0
  47. package/dist/cjs/styled.native.js +185 -0
  48. package/dist/cjs/styled.native.js.map +1 -0
  49. package/dist/cjs/toolbar/BubbleToolbar.cjs +130 -0
  50. package/dist/cjs/toolbar/BubbleToolbar.native.js +159 -0
  51. package/dist/cjs/toolbar/BubbleToolbar.native.js.map +1 -0
  52. package/dist/cjs/toolbar/CodeBlockBubble.cjs +211 -0
  53. package/dist/cjs/toolbar/CodeBlockBubble.native.js +228 -0
  54. package/dist/cjs/toolbar/CodeBlockBubble.native.js.map +1 -0
  55. package/dist/cjs/toolbar/ColorPicker.cjs +217 -0
  56. package/dist/cjs/toolbar/ColorPicker.native.js +234 -0
  57. package/dist/cjs/toolbar/ColorPicker.native.js.map +1 -0
  58. package/dist/cjs/toolbar/FixedToolbar.cjs +221 -0
  59. package/dist/cjs/toolbar/FixedToolbar.native.js +322 -0
  60. package/dist/cjs/toolbar/FixedToolbar.native.js.map +1 -0
  61. package/dist/cjs/toolbar/HeadingPicker.cjs +158 -0
  62. package/dist/cjs/toolbar/HeadingPicker.native.js +167 -0
  63. package/dist/cjs/toolbar/HeadingPicker.native.js.map +1 -0
  64. package/dist/cjs/toolbar/ImageBubble.cjs +156 -0
  65. package/dist/cjs/toolbar/ImageBubble.native.js +165 -0
  66. package/dist/cjs/toolbar/ImageBubble.native.js.map +1 -0
  67. package/dist/cjs/toolbar/ImageDialog.cjs +115 -0
  68. package/dist/cjs/toolbar/ImageDialog.native.js +122 -0
  69. package/dist/cjs/toolbar/ImageDialog.native.js.map +1 -0
  70. package/dist/cjs/toolbar/LinkBubble.cjs +195 -0
  71. package/dist/cjs/toolbar/LinkBubble.native.js +204 -0
  72. package/dist/cjs/toolbar/LinkBubble.native.js.map +1 -0
  73. package/dist/cjs/toolbar/LinkDialog.cjs +138 -0
  74. package/dist/cjs/toolbar/LinkDialog.native.js +146 -0
  75. package/dist/cjs/toolbar/LinkDialog.native.js.map +1 -0
  76. package/dist/cjs/toolbar/ListPicker.cjs +117 -0
  77. package/dist/cjs/toolbar/ListPicker.native.js +124 -0
  78. package/dist/cjs/toolbar/ListPicker.native.js.map +1 -0
  79. package/dist/cjs/toolbar/MoreDropdown.cjs +201 -0
  80. package/dist/cjs/toolbar/MoreDropdown.native.js +224 -0
  81. package/dist/cjs/toolbar/MoreDropdown.native.js.map +1 -0
  82. package/dist/cjs/toolbar/ResizeHandle.cjs +105 -0
  83. package/dist/cjs/toolbar/ResizeHandle.native.js +109 -0
  84. package/dist/cjs/toolbar/ResizeHandle.native.js.map +1 -0
  85. package/dist/cjs/toolbar/StatusBar.cjs +91 -0
  86. package/dist/cjs/toolbar/StatusBar.native.js +100 -0
  87. package/dist/cjs/toolbar/StatusBar.native.js.map +1 -0
  88. package/dist/cjs/toolbar/TableBubble.cjs +232 -0
  89. package/dist/cjs/toolbar/TableBubble.native.js +273 -0
  90. package/dist/cjs/toolbar/TableBubble.native.js.map +1 -0
  91. package/dist/cjs/toolbar/ToolbarButton.cjs +105 -0
  92. package/dist/cjs/toolbar/ToolbarButton.native.js +97 -0
  93. package/dist/cjs/toolbar/ToolbarButton.native.js.map +1 -0
  94. package/dist/cjs/toolbar/ToolbarGroup.cjs +41 -0
  95. package/dist/cjs/toolbar/ToolbarGroup.native.js +45 -0
  96. package/dist/cjs/toolbar/ToolbarGroup.native.js.map +1 -0
  97. package/dist/cjs/toolbar/icons.cjs +601 -0
  98. package/dist/cjs/toolbar/icons.native.js +165 -0
  99. package/dist/cjs/toolbar/icons.native.js.map +1 -0
  100. package/dist/cjs/toolbar/shortcuts.cjs +62 -0
  101. package/dist/cjs/toolbar/shortcuts.native.js +66 -0
  102. package/dist/cjs/toolbar/shortcuts.native.js.map +1 -0
  103. package/dist/cjs/toolbar/useHorizontalScroll.cjs +250 -0
  104. package/dist/cjs/toolbar/useHorizontalScroll.native.js +260 -0
  105. package/dist/cjs/toolbar/useHorizontalScroll.native.js.map +1 -0
  106. package/dist/cjs/types.cjs +56 -0
  107. package/dist/cjs/types.native.js +59 -0
  108. package/dist/cjs/types.native.js.map +1 -0
  109. package/dist/esm/RichEditor.mjs +107 -0
  110. package/dist/esm/RichEditor.mjs.map +1 -0
  111. package/dist/esm/RichEditor.native.js +92 -0
  112. package/dist/esm/RichEditor.native.js.map +1 -0
  113. package/dist/esm/RichEditor.stories.mjs +291 -0
  114. package/dist/esm/RichEditor.stories.mjs.map +1 -0
  115. package/dist/esm/RichEditor.stories.native.js +303 -0
  116. package/dist/esm/RichEditor.stories.native.js.map +1 -0
  117. package/dist/esm/RichTextEditor/index.mjs +123 -0
  118. package/dist/esm/RichTextEditor/index.mjs.map +1 -0
  119. package/dist/esm/RichTextEditor/index.native.js +132 -0
  120. package/dist/esm/RichTextEditor/index.native.js.map +1 -0
  121. package/dist/esm/constants.mjs +108 -0
  122. package/dist/esm/constants.mjs.map +1 -0
  123. package/dist/esm/constants.native.js +108 -0
  124. package/dist/esm/constants.native.js.map +1 -0
  125. package/dist/esm/context.mjs +8 -0
  126. package/dist/esm/context.mjs.map +1 -0
  127. package/dist/esm/context.native.js +8 -0
  128. package/dist/esm/context.native.js.map +1 -0
  129. package/dist/esm/editor/BlockDragHandle.mjs +112 -0
  130. package/dist/esm/editor/BlockDragHandle.mjs.map +1 -0
  131. package/dist/esm/editor/BlockDragHandle.native.js +114 -0
  132. package/dist/esm/editor/BlockDragHandle.native.js.map +1 -0
  133. package/dist/esm/editor/MarkdownPaste.mjs +40 -0
  134. package/dist/esm/editor/MarkdownPaste.mjs.map +1 -0
  135. package/dist/esm/editor/MarkdownPaste.native.js +40 -0
  136. package/dist/esm/editor/MarkdownPaste.native.js.map +1 -0
  137. package/dist/esm/editor/SlashCommands.mjs +333 -0
  138. package/dist/esm/editor/SlashCommands.mjs.map +1 -0
  139. package/dist/esm/editor/SlashCommands.native.js +385 -0
  140. package/dist/esm/editor/SlashCommands.native.js.map +1 -0
  141. package/dist/esm/editor/TentapEditor.native.js +214 -0
  142. package/dist/esm/editor/TentapEditor.native.js.map +1 -0
  143. package/dist/esm/editor/TiptapEditor.mjs +542 -0
  144. package/dist/esm/editor/TiptapEditor.mjs.map +1 -0
  145. package/dist/esm/editor/TiptapEditor.native.js +622 -0
  146. package/dist/esm/editor/TiptapEditor.native.js.map +1 -0
  147. package/dist/esm/editor/editorStyles.mjs +247 -0
  148. package/dist/esm/editor/editorStyles.mjs.map +1 -0
  149. package/dist/esm/editor/editorStyles.native.js +248 -0
  150. package/dist/esm/editor/editorStyles.native.js.map +1 -0
  151. package/dist/esm/editor/index.mjs +5 -0
  152. package/dist/esm/editor/index.mjs.map +1 -0
  153. package/dist/esm/editor/index.native.js +5 -0
  154. package/dist/esm/editor/index.native.js.map +1 -0
  155. package/dist/esm/editor/types.mjs +29 -0
  156. package/dist/esm/editor/types.mjs.map +1 -0
  157. package/dist/esm/editor/types.native.js +29 -0
  158. package/dist/esm/editor/types.native.js.map +1 -0
  159. package/dist/esm/editor/useEditorState.mjs +102 -0
  160. package/dist/esm/editor/useEditorState.mjs.map +1 -0
  161. package/dist/esm/editor/useEditorState.native.js +105 -0
  162. package/dist/esm/editor/useEditorState.native.js.map +1 -0
  163. package/dist/esm/index.mjs +4 -0
  164. package/dist/esm/index.mjs.map +1 -0
  165. package/dist/esm/index.native.js +4 -0
  166. package/dist/esm/index.native.js.map +1 -0
  167. package/dist/esm/styled.mjs +144 -0
  168. package/dist/esm/styled.mjs.map +1 -0
  169. package/dist/esm/styled.native.js +153 -0
  170. package/dist/esm/styled.native.js.map +1 -0
  171. package/dist/esm/toolbar/BubbleToolbar.mjs +105 -0
  172. package/dist/esm/toolbar/BubbleToolbar.mjs.map +1 -0
  173. package/dist/esm/toolbar/BubbleToolbar.native.js +131 -0
  174. package/dist/esm/toolbar/BubbleToolbar.native.js.map +1 -0
  175. package/dist/esm/toolbar/CodeBlockBubble.mjs +186 -0
  176. package/dist/esm/toolbar/CodeBlockBubble.mjs.map +1 -0
  177. package/dist/esm/toolbar/CodeBlockBubble.native.js +200 -0
  178. package/dist/esm/toolbar/CodeBlockBubble.native.js.map +1 -0
  179. package/dist/esm/toolbar/ColorPicker.mjs +191 -0
  180. package/dist/esm/toolbar/ColorPicker.mjs.map +1 -0
  181. package/dist/esm/toolbar/ColorPicker.native.js +205 -0
  182. package/dist/esm/toolbar/ColorPicker.native.js.map +1 -0
  183. package/dist/esm/toolbar/FixedToolbar.mjs +196 -0
  184. package/dist/esm/toolbar/FixedToolbar.mjs.map +1 -0
  185. package/dist/esm/toolbar/FixedToolbar.native.js +294 -0
  186. package/dist/esm/toolbar/FixedToolbar.native.js.map +1 -0
  187. package/dist/esm/toolbar/HeadingPicker.mjs +133 -0
  188. package/dist/esm/toolbar/HeadingPicker.mjs.map +1 -0
  189. package/dist/esm/toolbar/HeadingPicker.native.js +139 -0
  190. package/dist/esm/toolbar/HeadingPicker.native.js.map +1 -0
  191. package/dist/esm/toolbar/ImageBubble.mjs +131 -0
  192. package/dist/esm/toolbar/ImageBubble.mjs.map +1 -0
  193. package/dist/esm/toolbar/ImageBubble.native.js +137 -0
  194. package/dist/esm/toolbar/ImageBubble.native.js.map +1 -0
  195. package/dist/esm/toolbar/ImageDialog.mjs +90 -0
  196. package/dist/esm/toolbar/ImageDialog.mjs.map +1 -0
  197. package/dist/esm/toolbar/ImageDialog.native.js +94 -0
  198. package/dist/esm/toolbar/ImageDialog.native.js.map +1 -0
  199. package/dist/esm/toolbar/LinkBubble.mjs +170 -0
  200. package/dist/esm/toolbar/LinkBubble.mjs.map +1 -0
  201. package/dist/esm/toolbar/LinkBubble.native.js +176 -0
  202. package/dist/esm/toolbar/LinkBubble.native.js.map +1 -0
  203. package/dist/esm/toolbar/LinkDialog.mjs +112 -0
  204. package/dist/esm/toolbar/LinkDialog.mjs.map +1 -0
  205. package/dist/esm/toolbar/LinkDialog.native.js +117 -0
  206. package/dist/esm/toolbar/LinkDialog.native.js.map +1 -0
  207. package/dist/esm/toolbar/ListPicker.mjs +92 -0
  208. package/dist/esm/toolbar/ListPicker.mjs.map +1 -0
  209. package/dist/esm/toolbar/ListPicker.native.js +96 -0
  210. package/dist/esm/toolbar/ListPicker.native.js.map +1 -0
  211. package/dist/esm/toolbar/MoreDropdown.mjs +176 -0
  212. package/dist/esm/toolbar/MoreDropdown.mjs.map +1 -0
  213. package/dist/esm/toolbar/MoreDropdown.native.js +196 -0
  214. package/dist/esm/toolbar/MoreDropdown.native.js.map +1 -0
  215. package/dist/esm/toolbar/ResizeHandle.mjs +80 -0
  216. package/dist/esm/toolbar/ResizeHandle.mjs.map +1 -0
  217. package/dist/esm/toolbar/ResizeHandle.native.js +81 -0
  218. package/dist/esm/toolbar/ResizeHandle.native.js.map +1 -0
  219. package/dist/esm/toolbar/StatusBar.mjs +66 -0
  220. package/dist/esm/toolbar/StatusBar.mjs.map +1 -0
  221. package/dist/esm/toolbar/StatusBar.native.js +72 -0
  222. package/dist/esm/toolbar/StatusBar.native.js.map +1 -0
  223. package/dist/esm/toolbar/TableBubble.mjs +207 -0
  224. package/dist/esm/toolbar/TableBubble.mjs.map +1 -0
  225. package/dist/esm/toolbar/TableBubble.native.js +245 -0
  226. package/dist/esm/toolbar/TableBubble.native.js.map +1 -0
  227. package/dist/esm/toolbar/ToolbarButton.mjs +79 -0
  228. package/dist/esm/toolbar/ToolbarButton.mjs.map +1 -0
  229. package/dist/esm/toolbar/ToolbarButton.native.js +68 -0
  230. package/dist/esm/toolbar/ToolbarButton.native.js.map +1 -0
  231. package/dist/esm/toolbar/ToolbarGroup.mjs +16 -0
  232. package/dist/esm/toolbar/ToolbarGroup.mjs.map +1 -0
  233. package/dist/esm/toolbar/ToolbarGroup.native.js +17 -0
  234. package/dist/esm/toolbar/ToolbarGroup.native.js.map +1 -0
  235. package/dist/esm/toolbar/icons.mjs +554 -0
  236. package/dist/esm/toolbar/icons.mjs.map +1 -0
  237. package/dist/esm/toolbar/icons.native.js +115 -0
  238. package/dist/esm/toolbar/icons.native.js.map +1 -0
  239. package/dist/esm/toolbar/shortcuts.mjs +36 -0
  240. package/dist/esm/toolbar/shortcuts.mjs.map +1 -0
  241. package/dist/esm/toolbar/shortcuts.native.js +37 -0
  242. package/dist/esm/toolbar/shortcuts.native.js.map +1 -0
  243. package/dist/esm/toolbar/useHorizontalScroll.mjs +223 -0
  244. package/dist/esm/toolbar/useHorizontalScroll.mjs.map +1 -0
  245. package/dist/esm/toolbar/useHorizontalScroll.native.js +230 -0
  246. package/dist/esm/toolbar/useHorizontalScroll.native.js.map +1 -0
  247. package/dist/esm/types.mjs +31 -0
  248. package/dist/esm/types.mjs.map +1 -0
  249. package/dist/esm/types.native.js +31 -0
  250. package/dist/esm/types.native.js.map +1 -0
  251. package/dist/jsx/RichEditor.mjs +107 -0
  252. package/dist/jsx/RichEditor.mjs.map +1 -0
  253. package/dist/jsx/RichEditor.native.js +120 -0
  254. package/dist/jsx/RichEditor.native.js.map +1 -0
  255. package/dist/jsx/RichEditor.stories.mjs +291 -0
  256. package/dist/jsx/RichEditor.stories.mjs.map +1 -0
  257. package/dist/jsx/RichEditor.stories.native.js +342 -0
  258. package/dist/jsx/RichEditor.stories.native.js.map +1 -0
  259. package/dist/jsx/RichTextEditor/index.mjs +123 -0
  260. package/dist/jsx/RichTextEditor/index.mjs.map +1 -0
  261. package/dist/jsx/RichTextEditor/index.native.js +160 -0
  262. package/dist/jsx/RichTextEditor/index.native.js.map +1 -0
  263. package/dist/jsx/constants.mjs +108 -0
  264. package/dist/jsx/constants.mjs.map +1 -0
  265. package/dist/jsx/constants.native.js +138 -0
  266. package/dist/jsx/constants.native.js.map +1 -0
  267. package/dist/jsx/context.mjs +8 -0
  268. package/dist/jsx/context.mjs.map +1 -0
  269. package/dist/jsx/context.native.js +36 -0
  270. package/dist/jsx/context.native.js.map +1 -0
  271. package/dist/jsx/editor/BlockDragHandle.mjs +112 -0
  272. package/dist/jsx/editor/BlockDragHandle.mjs.map +1 -0
  273. package/dist/jsx/editor/BlockDragHandle.native.js +142 -0
  274. package/dist/jsx/editor/BlockDragHandle.native.js.map +1 -0
  275. package/dist/jsx/editor/MarkdownPaste.mjs +40 -0
  276. package/dist/jsx/editor/MarkdownPaste.mjs.map +1 -0
  277. package/dist/jsx/editor/MarkdownPaste.native.js +68 -0
  278. package/dist/jsx/editor/MarkdownPaste.native.js.map +1 -0
  279. package/dist/jsx/editor/SlashCommands.mjs +333 -0
  280. package/dist/jsx/editor/SlashCommands.mjs.map +1 -0
  281. package/dist/jsx/editor/SlashCommands.native.js +424 -0
  282. package/dist/jsx/editor/SlashCommands.native.js.map +1 -0
  283. package/dist/jsx/editor/TentapEditor.native.js +242 -0
  284. package/dist/jsx/editor/TentapEditor.native.js.map +1 -0
  285. package/dist/jsx/editor/TiptapEditor.mjs +542 -0
  286. package/dist/jsx/editor/TiptapEditor.mjs.map +1 -0
  287. package/dist/jsx/editor/TiptapEditor.native.js +661 -0
  288. package/dist/jsx/editor/TiptapEditor.native.js.map +1 -0
  289. package/dist/jsx/editor/editorStyles.mjs +247 -0
  290. package/dist/jsx/editor/editorStyles.mjs.map +1 -0
  291. package/dist/jsx/editor/editorStyles.native.js +276 -0
  292. package/dist/jsx/editor/editorStyles.native.js.map +1 -0
  293. package/dist/jsx/editor/index.mjs +5 -0
  294. package/dist/jsx/editor/index.mjs.map +1 -0
  295. package/dist/jsx/editor/index.native.js +36 -0
  296. package/dist/jsx/editor/index.native.js.map +1 -0
  297. package/dist/jsx/editor/types.mjs +29 -0
  298. package/dist/jsx/editor/types.mjs.map +1 -0
  299. package/dist/jsx/editor/types.native.js +57 -0
  300. package/dist/jsx/editor/types.native.js.map +1 -0
  301. package/dist/jsx/editor/useEditorState.mjs +102 -0
  302. package/dist/jsx/editor/useEditorState.mjs.map +1 -0
  303. package/dist/jsx/editor/useEditorState.native.js +135 -0
  304. package/dist/jsx/editor/useEditorState.native.js.map +1 -0
  305. package/dist/jsx/index.js +4 -0
  306. package/dist/jsx/index.js.map +1 -0
  307. package/dist/jsx/index.mjs +4 -0
  308. package/dist/jsx/index.mjs.map +1 -0
  309. package/dist/jsx/index.native.js +33 -0
  310. package/dist/jsx/index.native.js.map +1 -0
  311. package/dist/jsx/styled.mjs +144 -0
  312. package/dist/jsx/styled.mjs.map +1 -0
  313. package/dist/jsx/styled.native.js +185 -0
  314. package/dist/jsx/styled.native.js.map +1 -0
  315. package/dist/jsx/toolbar/BubbleToolbar.mjs +105 -0
  316. package/dist/jsx/toolbar/BubbleToolbar.mjs.map +1 -0
  317. package/dist/jsx/toolbar/BubbleToolbar.native.js +159 -0
  318. package/dist/jsx/toolbar/BubbleToolbar.native.js.map +1 -0
  319. package/dist/jsx/toolbar/CodeBlockBubble.mjs +186 -0
  320. package/dist/jsx/toolbar/CodeBlockBubble.mjs.map +1 -0
  321. package/dist/jsx/toolbar/CodeBlockBubble.native.js +228 -0
  322. package/dist/jsx/toolbar/CodeBlockBubble.native.js.map +1 -0
  323. package/dist/jsx/toolbar/ColorPicker.mjs +191 -0
  324. package/dist/jsx/toolbar/ColorPicker.mjs.map +1 -0
  325. package/dist/jsx/toolbar/ColorPicker.native.js +234 -0
  326. package/dist/jsx/toolbar/ColorPicker.native.js.map +1 -0
  327. package/dist/jsx/toolbar/FixedToolbar.mjs +196 -0
  328. package/dist/jsx/toolbar/FixedToolbar.mjs.map +1 -0
  329. package/dist/jsx/toolbar/FixedToolbar.native.js +322 -0
  330. package/dist/jsx/toolbar/FixedToolbar.native.js.map +1 -0
  331. package/dist/jsx/toolbar/HeadingPicker.mjs +133 -0
  332. package/dist/jsx/toolbar/HeadingPicker.mjs.map +1 -0
  333. package/dist/jsx/toolbar/HeadingPicker.native.js +167 -0
  334. package/dist/jsx/toolbar/HeadingPicker.native.js.map +1 -0
  335. package/dist/jsx/toolbar/ImageBubble.mjs +131 -0
  336. package/dist/jsx/toolbar/ImageBubble.mjs.map +1 -0
  337. package/dist/jsx/toolbar/ImageBubble.native.js +165 -0
  338. package/dist/jsx/toolbar/ImageBubble.native.js.map +1 -0
  339. package/dist/jsx/toolbar/ImageDialog.mjs +90 -0
  340. package/dist/jsx/toolbar/ImageDialog.mjs.map +1 -0
  341. package/dist/jsx/toolbar/ImageDialog.native.js +122 -0
  342. package/dist/jsx/toolbar/ImageDialog.native.js.map +1 -0
  343. package/dist/jsx/toolbar/LinkBubble.mjs +170 -0
  344. package/dist/jsx/toolbar/LinkBubble.mjs.map +1 -0
  345. package/dist/jsx/toolbar/LinkBubble.native.js +204 -0
  346. package/dist/jsx/toolbar/LinkBubble.native.js.map +1 -0
  347. package/dist/jsx/toolbar/LinkDialog.mjs +112 -0
  348. package/dist/jsx/toolbar/LinkDialog.mjs.map +1 -0
  349. package/dist/jsx/toolbar/LinkDialog.native.js +146 -0
  350. package/dist/jsx/toolbar/LinkDialog.native.js.map +1 -0
  351. package/dist/jsx/toolbar/ListPicker.mjs +92 -0
  352. package/dist/jsx/toolbar/ListPicker.mjs.map +1 -0
  353. package/dist/jsx/toolbar/ListPicker.native.js +124 -0
  354. package/dist/jsx/toolbar/ListPicker.native.js.map +1 -0
  355. package/dist/jsx/toolbar/MoreDropdown.mjs +176 -0
  356. package/dist/jsx/toolbar/MoreDropdown.mjs.map +1 -0
  357. package/dist/jsx/toolbar/MoreDropdown.native.js +224 -0
  358. package/dist/jsx/toolbar/MoreDropdown.native.js.map +1 -0
  359. package/dist/jsx/toolbar/ResizeHandle.mjs +80 -0
  360. package/dist/jsx/toolbar/ResizeHandle.mjs.map +1 -0
  361. package/dist/jsx/toolbar/ResizeHandle.native.js +109 -0
  362. package/dist/jsx/toolbar/ResizeHandle.native.js.map +1 -0
  363. package/dist/jsx/toolbar/StatusBar.mjs +66 -0
  364. package/dist/jsx/toolbar/StatusBar.mjs.map +1 -0
  365. package/dist/jsx/toolbar/StatusBar.native.js +100 -0
  366. package/dist/jsx/toolbar/StatusBar.native.js.map +1 -0
  367. package/dist/jsx/toolbar/TableBubble.mjs +207 -0
  368. package/dist/jsx/toolbar/TableBubble.mjs.map +1 -0
  369. package/dist/jsx/toolbar/TableBubble.native.js +273 -0
  370. package/dist/jsx/toolbar/TableBubble.native.js.map +1 -0
  371. package/dist/jsx/toolbar/ToolbarButton.mjs +79 -0
  372. package/dist/jsx/toolbar/ToolbarButton.mjs.map +1 -0
  373. package/dist/jsx/toolbar/ToolbarButton.native.js +97 -0
  374. package/dist/jsx/toolbar/ToolbarButton.native.js.map +1 -0
  375. package/dist/jsx/toolbar/ToolbarGroup.mjs +16 -0
  376. package/dist/jsx/toolbar/ToolbarGroup.mjs.map +1 -0
  377. package/dist/jsx/toolbar/ToolbarGroup.native.js +45 -0
  378. package/dist/jsx/toolbar/ToolbarGroup.native.js.map +1 -0
  379. package/dist/jsx/toolbar/icons.mjs +554 -0
  380. package/dist/jsx/toolbar/icons.mjs.map +1 -0
  381. package/dist/jsx/toolbar/icons.native.js +165 -0
  382. package/dist/jsx/toolbar/icons.native.js.map +1 -0
  383. package/dist/jsx/toolbar/shortcuts.mjs +36 -0
  384. package/dist/jsx/toolbar/shortcuts.mjs.map +1 -0
  385. package/dist/jsx/toolbar/shortcuts.native.js +66 -0
  386. package/dist/jsx/toolbar/shortcuts.native.js.map +1 -0
  387. package/dist/jsx/toolbar/useHorizontalScroll.mjs +223 -0
  388. package/dist/jsx/toolbar/useHorizontalScroll.mjs.map +1 -0
  389. package/dist/jsx/toolbar/useHorizontalScroll.native.js +260 -0
  390. package/dist/jsx/toolbar/useHorizontalScroll.native.js.map +1 -0
  391. package/dist/jsx/types.mjs +31 -0
  392. package/dist/jsx/types.mjs.map +1 -0
  393. package/dist/jsx/types.native.js +59 -0
  394. package/dist/jsx/types.native.js.map +1 -0
  395. package/package.json +117 -0
  396. package/src/RichEditor.native.tsx +161 -0
  397. package/src/RichEditor.stories.tsx +324 -0
  398. package/src/RichEditor.tsx +185 -0
  399. package/src/RichTextEditor/index.tsx +245 -0
  400. package/src/RichTextEditor/richTextEditor.spec.tsx +239 -0
  401. package/src/constants.ts +100 -0
  402. package/src/context.spec.ts +9 -0
  403. package/src/context.ts +16 -0
  404. package/src/editor/BlockDragHandle.ts +141 -0
  405. package/src/editor/MarkdownPaste.ts +50 -0
  406. package/src/editor/SlashCommands.tsx +357 -0
  407. package/src/editor/TentapEditor.native.tsx +269 -0
  408. package/src/editor/TiptapEditor.tsx +616 -0
  409. package/src/editor/editorStyles.spec.ts +24 -0
  410. package/src/editor/editorStyles.ts +260 -0
  411. package/src/editor/index.ts +10 -0
  412. package/src/editor/tentapEditor.spec.ts +125 -0
  413. package/src/editor/tiptapEditor.spec.tsx +169 -0
  414. package/src/editor/types.ts +142 -0
  415. package/src/editor/useEditorState.spec.ts +93 -0
  416. package/src/editor/useEditorState.ts +125 -0
  417. package/src/exports.spec.ts +128 -0
  418. package/src/index.ts +13 -0
  419. package/src/integration.spec.tsx +430 -0
  420. package/src/richEditor.spec.tsx +169 -0
  421. package/src/styled.spec.tsx +42 -0
  422. package/src/styled.ts +177 -0
  423. package/src/toolbar/BubbleToolbar.tsx +151 -0
  424. package/src/toolbar/CodeBlockBubble.tsx +141 -0
  425. package/src/toolbar/ColorPicker.tsx +211 -0
  426. package/src/toolbar/FixedToolbar.native.tsx +381 -0
  427. package/src/toolbar/FixedToolbar.tsx +252 -0
  428. package/src/toolbar/HeadingPicker.tsx +169 -0
  429. package/src/toolbar/ImageBubble.tsx +126 -0
  430. package/src/toolbar/ImageDialog.tsx +93 -0
  431. package/src/toolbar/LinkBubble.tsx +166 -0
  432. package/src/toolbar/LinkDialog.tsx +124 -0
  433. package/src/toolbar/ListPicker.tsx +121 -0
  434. package/src/toolbar/MoreDropdown.tsx +185 -0
  435. package/src/toolbar/ResizeHandle.tsx +80 -0
  436. package/src/toolbar/StatusBar.tsx +76 -0
  437. package/src/toolbar/TableBubble.tsx +197 -0
  438. package/src/toolbar/ToolbarButton.native.tsx +105 -0
  439. package/src/toolbar/ToolbarButton.tsx +114 -0
  440. package/src/toolbar/ToolbarGroup.tsx +38 -0
  441. package/src/toolbar/bubbleToolbar.spec.tsx +93 -0
  442. package/src/toolbar/fixedToolbar.spec.tsx +127 -0
  443. package/src/toolbar/icons.native.tsx +112 -0
  444. package/src/toolbar/icons.tsx +417 -0
  445. package/src/toolbar/shortcuts.ts +42 -0
  446. package/src/toolbar/toolbarPrimitives.spec.tsx +118 -0
  447. package/src/toolbar/toolbarSubComponents.spec.tsx +115 -0
  448. package/src/toolbar/useHorizontalScroll.tsx +270 -0
  449. package/src/types.spec.ts +102 -0
  450. package/src/types.ts +217 -0
@@ -0,0 +1,195 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __export = (target, all) => {
6
+ for (var name in all) __defProp(target, name, {
7
+ get: all[name],
8
+ enumerable: true
9
+ });
10
+ };
11
+ var __copyProps = (to, from, except, desc) => {
12
+ if (from && typeof from === "object" || typeof from === "function") {
13
+ for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
14
+ get: () => from[key],
15
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
16
+ });
17
+ }
18
+ return to;
19
+ };
20
+ var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
21
+ value: true
22
+ }), mod);
23
+ var LinkBubble_exports = {};
24
+ __export(LinkBubble_exports, {
25
+ LinkBubble: () => LinkBubble
26
+ });
27
+ module.exports = __toCommonJS(LinkBubble_exports);
28
+ var import_react = require("react");
29
+ var import_menus = require("@tiptap/react/menus");
30
+ var import_theme = require("@multiplatform.one/theme");
31
+ var import_tamagui = require("tamagui");
32
+ var import_forms = require("@multiplatform.one/forms");
33
+ var import_ToolbarButton = require("./ToolbarButton.cjs");
34
+ var import_jsx_runtime = require("react/jsx-runtime");
35
+ function ExternalLinkIcon() {
36
+ return /* @__PURE__ */(0, import_jsx_runtime.jsxs)("svg", {
37
+ width: "14",
38
+ height: "14",
39
+ viewBox: "0 0 24 24",
40
+ fill: "none",
41
+ stroke: "currentColor",
42
+ strokeWidth: "2",
43
+ children: [/* @__PURE__ */(0, import_jsx_runtime.jsx)("path", {
44
+ d: "M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"
45
+ }), /* @__PURE__ */(0, import_jsx_runtime.jsx)("polyline", {
46
+ points: "15 3 21 3 21 9"
47
+ }), /* @__PURE__ */(0, import_jsx_runtime.jsx)("line", {
48
+ x1: "10",
49
+ y1: "14",
50
+ x2: "21",
51
+ y2: "3"
52
+ })]
53
+ });
54
+ }
55
+ function UnlinkIcon() {
56
+ return /* @__PURE__ */(0, import_jsx_runtime.jsxs)("svg", {
57
+ width: "14",
58
+ height: "14",
59
+ viewBox: "0 0 24 24",
60
+ fill: "none",
61
+ stroke: "currentColor",
62
+ strokeWidth: "2",
63
+ children: [/* @__PURE__ */(0, import_jsx_runtime.jsx)("path", {
64
+ d: "M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"
65
+ }), /* @__PURE__ */(0, import_jsx_runtime.jsx)("path", {
66
+ d: "M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"
67
+ }), /* @__PURE__ */(0, import_jsx_runtime.jsx)("line", {
68
+ x1: "2",
69
+ y1: "2",
70
+ x2: "22",
71
+ y2: "22",
72
+ strokeWidth: "2"
73
+ })]
74
+ });
75
+ }
76
+ function EditIcon() {
77
+ return /* @__PURE__ */(0, import_jsx_runtime.jsxs)("svg", {
78
+ width: "14",
79
+ height: "14",
80
+ viewBox: "0 0 24 24",
81
+ fill: "none",
82
+ stroke: "currentColor",
83
+ strokeWidth: "2",
84
+ children: [/* @__PURE__ */(0, import_jsx_runtime.jsx)("path", {
85
+ d: "M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7"
86
+ }), /* @__PURE__ */(0, import_jsx_runtime.jsx)("path", {
87
+ d: "M18.5 2.5a2.12 2.12 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z"
88
+ })]
89
+ });
90
+ }
91
+ function LinkBubble({
92
+ editor
93
+ }) {
94
+ const {
95
+ knobProps
96
+ } = (0, import_theme.useResolvedKnobs)();
97
+ const [editing, setEditing] = (0, import_react.useState)(false);
98
+ const [editUrl, setEditUrl] = (0, import_react.useState)("");
99
+ const handleEdit = (0, import_react.useCallback)(() => {
100
+ if (!editor) return;
101
+ const attrs = editor.getAttributes("link");
102
+ setEditUrl(attrs.href || "");
103
+ setEditing(true);
104
+ }, [editor]);
105
+ const handleSave = (0, import_react.useCallback)(() => {
106
+ if (!editor) return;
107
+ const trimmed = editUrl.trim();
108
+ if (trimmed) {
109
+ editor.chain().focus().extendMarkRange("link").setLink({
110
+ href: trimmed
111
+ }).run();
112
+ }
113
+ setEditing(false);
114
+ }, [editor, editUrl]);
115
+ const handleUnlink = (0, import_react.useCallback)(() => {
116
+ if (!editor) return;
117
+ editor.chain().focus().extendMarkRange("link").unsetLink().run();
118
+ setEditing(false);
119
+ }, [editor]);
120
+ if (!editor) return null;
121
+ return /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_menus.BubbleMenu, {
122
+ editor,
123
+ shouldShow: ({
124
+ editor: e
125
+ }) => e.isActive("link"),
126
+ children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.XStack, {
127
+ backgroundColor: "$background",
128
+ borderWidth: 1,
129
+ borderColor: "$borderColor",
130
+ borderRadius: knobProps.borderRadius.borderRadius,
131
+ padding: "$1.5",
132
+ gap: "$1.5",
133
+ alignItems: "center",
134
+ elevation: knobProps.elevation,
135
+ children: editing ? /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_tamagui.YStack, {
136
+ gap: "$1.5",
137
+ children: [/* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.Input, {
138
+ size: "$2",
139
+ placeholder: "https://example.com",
140
+ value: editUrl,
141
+ onChangeText: setEditUrl,
142
+ onSubmitEditing: handleSave,
143
+ autoFocus: true,
144
+ minWidth: 220
145
+ }), /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_tamagui.XStack, {
146
+ gap: "$1",
147
+ justifyContent: "flex-end",
148
+ children: [/* @__PURE__ */(0, import_jsx_runtime.jsx)(import_forms.Button, {
149
+ size: "$2",
150
+ onPress: () => setEditing(false),
151
+ "aria-label": "Cancel",
152
+ children: "Cancel"
153
+ }), /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_forms.Button, {
154
+ size: "$2",
155
+ theme: "active",
156
+ onPress: handleSave,
157
+ "aria-label": "Save link",
158
+ children: "Save"
159
+ })]
160
+ })]
161
+ }) : /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, {
162
+ children: [/* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.Text, {
163
+ fontSize: 12,
164
+ color: "$blue10",
165
+ maxWidth: 200,
166
+ numberOfLines: 1,
167
+ cursor: "pointer",
168
+ onPress: () => {
169
+ const href = editor.getAttributes("link").href;
170
+ if (href) window.open(href, "_blank", "noopener,noreferrer");
171
+ },
172
+ children: editor.getAttributes("link").href || "No URL"
173
+ }), /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_ToolbarButton.ToolbarButton, {
174
+ onPress: () => {
175
+ const href = editor.getAttributes("link").href;
176
+ if (href) window.open(href, "_blank", "noopener,noreferrer");
177
+ },
178
+ "aria-label": "Open link",
179
+ tooltip: "Open link",
180
+ children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(ExternalLinkIcon, {})
181
+ }), /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_ToolbarButton.ToolbarButton, {
182
+ onPress: handleEdit,
183
+ "aria-label": "Edit link",
184
+ tooltip: "Edit link",
185
+ children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(EditIcon, {})
186
+ }), /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_ToolbarButton.ToolbarButton, {
187
+ onPress: handleUnlink,
188
+ "aria-label": "Remove link",
189
+ tooltip: "Unlink",
190
+ children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(UnlinkIcon, {})
191
+ })]
192
+ })
193
+ })
194
+ });
195
+ }
@@ -0,0 +1,204 @@
1
+ "use strict";
2
+
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __export = (target, all) => {
8
+ for (var name in all) __defProp(target, name, {
9
+ get: all[name],
10
+ enumerable: true
11
+ });
12
+ };
13
+ var __copyProps = (to, from, except, desc) => {
14
+ if (from && typeof from === "object" || typeof from === "function") {
15
+ for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
16
+ get: () => from[key],
17
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
18
+ });
19
+ }
20
+ return to;
21
+ };
22
+ var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
23
+ value: true
24
+ }), mod);
25
+ var LinkBubble_exports = {};
26
+ __export(LinkBubble_exports, {
27
+ LinkBubble: () => LinkBubble
28
+ });
29
+ module.exports = __toCommonJS(LinkBubble_exports);
30
+ var import_jsx_runtime = require("react/jsx-runtime");
31
+ var import_react = require("react");
32
+ var import_menus = require("@tiptap/react/menus");
33
+ var import_theme = require("@multiplatform.one/theme");
34
+ var import_tamagui = require("tamagui");
35
+ var import_forms = require("@multiplatform.one/forms");
36
+ var import_ToolbarButton = require("./ToolbarButton.native.js");
37
+ function ExternalLinkIcon() {
38
+ return /* @__PURE__ */(0, import_jsx_runtime.jsxs)("svg", {
39
+ width: "14",
40
+ height: "14",
41
+ viewBox: "0 0 24 24",
42
+ fill: "none",
43
+ stroke: "currentColor",
44
+ strokeWidth: "2",
45
+ children: [/* @__PURE__ */(0, import_jsx_runtime.jsx)("path", {
46
+ d: "M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"
47
+ }), /* @__PURE__ */(0, import_jsx_runtime.jsx)("polyline", {
48
+ points: "15 3 21 3 21 9"
49
+ }), /* @__PURE__ */(0, import_jsx_runtime.jsx)("line", {
50
+ x1: "10",
51
+ y1: "14",
52
+ x2: "21",
53
+ y2: "3"
54
+ })]
55
+ });
56
+ }
57
+ function UnlinkIcon() {
58
+ return /* @__PURE__ */(0, import_jsx_runtime.jsxs)("svg", {
59
+ width: "14",
60
+ height: "14",
61
+ viewBox: "0 0 24 24",
62
+ fill: "none",
63
+ stroke: "currentColor",
64
+ strokeWidth: "2",
65
+ children: [/* @__PURE__ */(0, import_jsx_runtime.jsx)("path", {
66
+ d: "M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"
67
+ }), /* @__PURE__ */(0, import_jsx_runtime.jsx)("path", {
68
+ d: "M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"
69
+ }), /* @__PURE__ */(0, import_jsx_runtime.jsx)("line", {
70
+ x1: "2",
71
+ y1: "2",
72
+ x2: "22",
73
+ y2: "22",
74
+ strokeWidth: "2"
75
+ })]
76
+ });
77
+ }
78
+ function EditIcon() {
79
+ return /* @__PURE__ */(0, import_jsx_runtime.jsxs)("svg", {
80
+ width: "14",
81
+ height: "14",
82
+ viewBox: "0 0 24 24",
83
+ fill: "none",
84
+ stroke: "currentColor",
85
+ strokeWidth: "2",
86
+ children: [/* @__PURE__ */(0, import_jsx_runtime.jsx)("path", {
87
+ d: "M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7"
88
+ }), /* @__PURE__ */(0, import_jsx_runtime.jsx)("path", {
89
+ d: "M18.5 2.5a2.12 2.12 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z"
90
+ })]
91
+ });
92
+ }
93
+ function LinkBubble(param) {
94
+ var {
95
+ editor
96
+ } = param;
97
+ var {
98
+ knobProps
99
+ } = (0, import_theme.useResolvedKnobs)();
100
+ var [editing, setEditing] = (0, import_react.useState)(false);
101
+ var [editUrl, setEditUrl] = (0, import_react.useState)("");
102
+ var handleEdit = (0, import_react.useCallback)(function () {
103
+ if (!editor) return;
104
+ var attrs = editor.getAttributes("link");
105
+ setEditUrl(attrs.href || "");
106
+ setEditing(true);
107
+ }, [editor]);
108
+ var handleSave = (0, import_react.useCallback)(function () {
109
+ if (!editor) return;
110
+ var trimmed = editUrl.trim();
111
+ if (trimmed) {
112
+ editor.chain().focus().extendMarkRange("link").setLink({
113
+ href: trimmed
114
+ }).run();
115
+ }
116
+ setEditing(false);
117
+ }, [editor, editUrl]);
118
+ var handleUnlink = (0, import_react.useCallback)(function () {
119
+ if (!editor) return;
120
+ editor.chain().focus().extendMarkRange("link").unsetLink().run();
121
+ setEditing(false);
122
+ }, [editor]);
123
+ if (!editor) return null;
124
+ return /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_menus.BubbleMenu, {
125
+ editor,
126
+ shouldShow: function shouldShow(param2) {
127
+ var {
128
+ editor: e
129
+ } = param2;
130
+ return e.isActive("link");
131
+ },
132
+ children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.XStack, {
133
+ backgroundColor: "$background",
134
+ borderWidth: 1,
135
+ borderColor: "$borderColor",
136
+ borderRadius: knobProps.borderRadius.borderRadius,
137
+ padding: "$1.5",
138
+ gap: "$1.5",
139
+ alignItems: "center",
140
+ elevation: knobProps.elevation,
141
+ children: editing ? /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_tamagui.YStack, {
142
+ gap: "$1.5",
143
+ children: [/* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.Input, {
144
+ size: "$2",
145
+ placeholder: "https://example.com",
146
+ value: editUrl,
147
+ onChangeText: setEditUrl,
148
+ onSubmitEditing: handleSave,
149
+ autoFocus: true,
150
+ minWidth: 220
151
+ }), /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_tamagui.XStack, {
152
+ gap: "$1",
153
+ justifyContent: "flex-end",
154
+ children: [/* @__PURE__ */(0, import_jsx_runtime.jsx)(import_forms.Button, {
155
+ size: "$2",
156
+ onPress: function onPress() {
157
+ return setEditing(false);
158
+ },
159
+ "aria-label": "Cancel",
160
+ children: "Cancel"
161
+ }), /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_forms.Button, {
162
+ size: "$2",
163
+ theme: "active",
164
+ onPress: handleSave,
165
+ "aria-label": "Save link",
166
+ children: "Save"
167
+ })]
168
+ })]
169
+ }) : /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, {
170
+ children: [/* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.Text, {
171
+ fontSize: 12,
172
+ color: "$blue10",
173
+ maxWidth: 200,
174
+ numberOfLines: 1,
175
+ cursor: "pointer",
176
+ onPress: function onPress() {
177
+ var href = editor.getAttributes("link").href;
178
+ if (href) window.open(href, "_blank", "noopener,noreferrer");
179
+ },
180
+ children: editor.getAttributes("link").href || "No URL"
181
+ }), /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_ToolbarButton.ToolbarButton, {
182
+ onPress: function onPress() {
183
+ var href = editor.getAttributes("link").href;
184
+ if (href) window.open(href, "_blank", "noopener,noreferrer");
185
+ },
186
+ "aria-label": "Open link",
187
+ tooltip: "Open link",
188
+ children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(ExternalLinkIcon, {})
189
+ }), /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_ToolbarButton.ToolbarButton, {
190
+ onPress: handleEdit,
191
+ "aria-label": "Edit link",
192
+ tooltip: "Edit link",
193
+ children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(EditIcon, {})
194
+ }), /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_ToolbarButton.ToolbarButton, {
195
+ onPress: handleUnlink,
196
+ "aria-label": "Remove link",
197
+ tooltip: "Unlink",
198
+ children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(UnlinkIcon, {})
199
+ })]
200
+ })
201
+ })
202
+ });
203
+ }
204
+ //# sourceMappingURL=LinkBubble.native.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","LinkBubble_exports","__export","LinkBubble","module","exports","import_jsx_runtime","require","import_react","import_menus","import_theme","import_tamagui","import_forms","import_ToolbarButton","ExternalLinkIcon","jsxs","width","height","viewBox","fill","stroke","strokeWidth","children","jsx","d","points","x1","y1","x2","y2","UnlinkIcon","EditIcon","param","editor","knobProps","useResolvedKnobs","editing","setEditing","useState","editUrl","setEditUrl","handleEdit","useCallback","attrs","getAttributes","href","handleSave","trimmed","trim","chain","focus","extendMarkRange","setLink","run","handleUnlink","unsetLink","BubbleMenu","shouldShow","param2","e","isActive","XStack","backgroundColor","borderWidth","borderColor","borderRadius","padding","gap","alignItems","elevation","YStack","Input","size","placeholder","onChangeText","onSubmitEditing","autoFocus","minWidth","justifyContent","Button","onPress"],"sources":["../../../src/toolbar/LinkBubble.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,138 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __export = (target, all) => {
6
+ for (var name in all) __defProp(target, name, {
7
+ get: all[name],
8
+ enumerable: true
9
+ });
10
+ };
11
+ var __copyProps = (to, from, except, desc) => {
12
+ if (from && typeof from === "object" || typeof from === "function") {
13
+ for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
14
+ get: () => from[key],
15
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
16
+ });
17
+ }
18
+ return to;
19
+ };
20
+ var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
21
+ value: true
22
+ }), mod);
23
+ var LinkDialog_exports = {};
24
+ __export(LinkDialog_exports, {
25
+ LinkDialog: () => LinkDialog,
26
+ normalizeUrl: () => normalizeUrl
27
+ });
28
+ module.exports = __toCommonJS(LinkDialog_exports);
29
+ var import_react = require("react");
30
+ var import_theme = require("@multiplatform.one/theme");
31
+ var import_tamagui = require("tamagui");
32
+ var import_forms = require("@multiplatform.one/forms");
33
+ var import_ToolbarButton = require("./ToolbarButton.cjs");
34
+ var import_icons = require("./icons.cjs");
35
+ var import_shortcuts = require("./shortcuts.cjs");
36
+ var import_jsx_runtime = require("react/jsx-runtime");
37
+ function normalizeUrl(url) {
38
+ const trimmed = url.trim();
39
+ if (!trimmed) return trimmed;
40
+ if (/^https?:\/\//i.test(trimmed)) return trimmed;
41
+ if (/^mailto:/i.test(trimmed)) return trimmed;
42
+ if (/^tel:/i.test(trimmed)) return trimmed;
43
+ return `https://${trimmed}`;
44
+ }
45
+ function LinkDialog({
46
+ editorRef,
47
+ state,
48
+ disabled
49
+ }) {
50
+ const {
51
+ knobProps
52
+ } = (0, import_theme.useResolvedKnobs)();
53
+ const [open, setOpen] = (0, import_react.useState)(false);
54
+ const [linkUrl, setLinkUrl] = (0, import_react.useState)("");
55
+ const handleSubmit = (0, import_react.useCallback)(() => {
56
+ const normalized = normalizeUrl(linkUrl);
57
+ if (normalized) {
58
+ editorRef.current?.executeCommand("link", {
59
+ href: normalized
60
+ });
61
+ }
62
+ setLinkUrl("");
63
+ setOpen(false);
64
+ }, [linkUrl, editorRef]);
65
+ const handleRemove = (0, import_react.useCallback)(() => {
66
+ editorRef.current?.executeCommand("link", {
67
+ href: null
68
+ });
69
+ setOpen(false);
70
+ }, [editorRef]);
71
+ return /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_tamagui.Popover, {
72
+ open,
73
+ onOpenChange: setOpen,
74
+ placement: "bottom",
75
+ children: [/* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.Popover.Trigger, {
76
+ asChild: true,
77
+ children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_ToolbarButton.ToolbarButton, {
78
+ active: state.isLink,
79
+ disabled,
80
+ onPress: () => setOpen(true),
81
+ "aria-label": "Link",
82
+ tooltip: import_shortcuts.SHORTCUTS.link,
83
+ children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_icons.LinkIcon, {})
84
+ })
85
+ }), /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_tamagui.Popover.Content, {
86
+ ...knobProps.panelPadding,
87
+ backgroundColor: "$background",
88
+ borderWidth: 1,
89
+ borderColor: "$borderColor",
90
+ borderRadius: knobProps.borderRadius.borderRadius,
91
+ elevation: knobProps.elevation,
92
+ enterStyle: {
93
+ opacity: 0,
94
+ y: -5
95
+ },
96
+ exitStyle: {
97
+ opacity: 0,
98
+ y: -5
99
+ },
100
+ children: [/* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.Popover.Arrow, {
101
+ borderColor: "$borderColor",
102
+ backgroundColor: "$background"
103
+ }), /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_tamagui.YStack, {
104
+ gap: "$2",
105
+ minWidth: 250,
106
+ children: [/* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.Text, {
107
+ fontSize: knobProps.sizeToken,
108
+ fontWeight: "600",
109
+ children: state.isLink ? "Edit Link" : "Add Link"
110
+ }), /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.Input, {
111
+ size: "$3",
112
+ placeholder: "https://example.com",
113
+ value: linkUrl,
114
+ onChangeText: setLinkUrl,
115
+ onSubmitEditing: handleSubmit,
116
+ autoFocus: true
117
+ }), /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_tamagui.XStack, {
118
+ gap: "$2",
119
+ justifyContent: "flex-end",
120
+ children: [state.isLink && /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_forms.Button, {
121
+ size: "$2",
122
+ theme: "red",
123
+ onPress: handleRemove,
124
+ "aria-label": "Remove link",
125
+ children: "Remove"
126
+ }), /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_forms.Button, {
127
+ size: "$2",
128
+ theme: "active",
129
+ onPress: handleSubmit,
130
+ disabled: !linkUrl.trim(),
131
+ "aria-label": state.isLink ? "Update link" : "Add link",
132
+ children: state.isLink ? "Update" : "Add"
133
+ })]
134
+ })]
135
+ })]
136
+ })]
137
+ });
138
+ }