@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,146 @@
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 LinkDialog_exports = {};
26
+ __export(LinkDialog_exports, {
27
+ LinkDialog: () => LinkDialog,
28
+ normalizeUrl: () => normalizeUrl
29
+ });
30
+ module.exports = __toCommonJS(LinkDialog_exports);
31
+ var import_jsx_runtime = require("react/jsx-runtime");
32
+ var import_react = require("react");
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
+ var import_icons = require("./icons.native.js");
38
+ var import_shortcuts = require("./shortcuts.native.js");
39
+ function normalizeUrl(url) {
40
+ var trimmed = url.trim();
41
+ if (!trimmed) return trimmed;
42
+ if (/^https?:\/\//i.test(trimmed)) return trimmed;
43
+ if (/^mailto:/i.test(trimmed)) return trimmed;
44
+ if (/^tel:/i.test(trimmed)) return trimmed;
45
+ return `https://${trimmed}`;
46
+ }
47
+ function LinkDialog(param) {
48
+ var {
49
+ editorRef,
50
+ state,
51
+ disabled
52
+ } = param;
53
+ var {
54
+ knobProps
55
+ } = (0, import_theme.useResolvedKnobs)();
56
+ var [open, setOpen] = (0, import_react.useState)(false);
57
+ var [linkUrl, setLinkUrl] = (0, import_react.useState)("");
58
+ var handleSubmit = (0, import_react.useCallback)(function () {
59
+ var normalized = normalizeUrl(linkUrl);
60
+ if (normalized) {
61
+ var _editorRef_current;
62
+ (_editorRef_current = editorRef.current) === null || _editorRef_current === void 0 ? void 0 : _editorRef_current.executeCommand("link", {
63
+ href: normalized
64
+ });
65
+ }
66
+ setLinkUrl("");
67
+ setOpen(false);
68
+ }, [linkUrl, editorRef]);
69
+ var handleRemove = (0, import_react.useCallback)(function () {
70
+ var _editorRef_current;
71
+ (_editorRef_current = editorRef.current) === null || _editorRef_current === void 0 ? void 0 : _editorRef_current.executeCommand("link", {
72
+ href: null
73
+ });
74
+ setOpen(false);
75
+ }, [editorRef]);
76
+ return /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_tamagui.Popover, {
77
+ open,
78
+ onOpenChange: setOpen,
79
+ placement: "bottom",
80
+ children: [/* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.Popover.Trigger, {
81
+ asChild: true,
82
+ children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_ToolbarButton.ToolbarButton, {
83
+ active: state.isLink,
84
+ disabled,
85
+ onPress: function onPress() {
86
+ return setOpen(true);
87
+ },
88
+ "aria-label": "Link",
89
+ tooltip: import_shortcuts.SHORTCUTS.link,
90
+ children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_icons.LinkIcon, {})
91
+ })
92
+ }), /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_tamagui.Popover.Content, {
93
+ ...knobProps.panelPadding,
94
+ backgroundColor: "$background",
95
+ borderWidth: 1,
96
+ borderColor: "$borderColor",
97
+ borderRadius: knobProps.borderRadius.borderRadius,
98
+ elevation: knobProps.elevation,
99
+ enterStyle: {
100
+ opacity: 0,
101
+ y: -5
102
+ },
103
+ exitStyle: {
104
+ opacity: 0,
105
+ y: -5
106
+ },
107
+ children: [/* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.Popover.Arrow, {
108
+ borderColor: "$borderColor",
109
+ backgroundColor: "$background"
110
+ }), /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_tamagui.YStack, {
111
+ gap: "$2",
112
+ minWidth: 250,
113
+ children: [/* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.Text, {
114
+ fontSize: knobProps.sizeToken,
115
+ fontWeight: "600",
116
+ children: state.isLink ? "Edit Link" : "Add Link"
117
+ }), /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.Input, {
118
+ size: "$3",
119
+ placeholder: "https://example.com",
120
+ value: linkUrl,
121
+ onChangeText: setLinkUrl,
122
+ onSubmitEditing: handleSubmit,
123
+ autoFocus: true
124
+ }), /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_tamagui.XStack, {
125
+ gap: "$2",
126
+ justifyContent: "flex-end",
127
+ children: [state.isLink && /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_forms.Button, {
128
+ size: "$2",
129
+ theme: "red",
130
+ onPress: handleRemove,
131
+ "aria-label": "Remove link",
132
+ children: "Remove"
133
+ }), /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_forms.Button, {
134
+ size: "$2",
135
+ theme: "active",
136
+ onPress: handleSubmit,
137
+ disabled: !linkUrl.trim(),
138
+ "aria-label": state.isLink ? "Update link" : "Add link",
139
+ children: state.isLink ? "Update" : "Add"
140
+ })]
141
+ })]
142
+ })]
143
+ })]
144
+ });
145
+ }
146
+ //# sourceMappingURL=LinkDialog.native.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","LinkDialog_exports","__export","LinkDialog","normalizeUrl","module","exports","import_jsx_runtime","require","import_react","import_theme","import_tamagui","import_forms","import_ToolbarButton","import_icons","import_shortcuts","url","trimmed","trim","test","param","editorRef","state","disabled","knobProps","useResolvedKnobs","open","setOpen","useState","linkUrl","setLinkUrl","handleSubmit","useCallback","normalized","_editorRef_current","current","executeCommand","href","handleRemove","jsxs","Popover","onOpenChange","placement","children","jsx","Trigger","asChild","ToolbarButton","active","isLink","onPress","tooltip","SHORTCUTS","link","LinkIcon","Content","panelPadding","backgroundColor","borderWidth","borderColor","borderRadius","elevation","enterStyle","opacity","y","exitStyle","Arrow","YStack","gap","minWidth","Text","fontSize","sizeToken","fontWeight"],"sources":["../../../src/toolbar/LinkDialog.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,117 @@
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 ListPicker_exports = {};
24
+ __export(ListPicker_exports, {
25
+ ListPicker: () => ListPicker
26
+ });
27
+ module.exports = __toCommonJS(ListPicker_exports);
28
+ var import_react = require("react");
29
+ var import_theme = require("@multiplatform.one/theme");
30
+ var import_tamagui = require("tamagui");
31
+ var import_styled = require("../styled.cjs");
32
+ var import_ToolbarButton = require("./ToolbarButton.cjs");
33
+ var import_icons = require("./icons.cjs");
34
+ var import_jsx_runtime = require("react/jsx-runtime");
35
+ const LIST_OPTIONS = [{
36
+ label: "Bullet List",
37
+ command: "bulletList",
38
+ stateKey: "isBulletList",
39
+ icon: import_icons.BulletListIcon
40
+ }, {
41
+ label: "Ordered List",
42
+ command: "orderedList",
43
+ stateKey: "isOrderedList",
44
+ icon: import_icons.OrderedListIcon
45
+ }, {
46
+ label: "Task List",
47
+ command: "taskList",
48
+ stateKey: "isTaskList",
49
+ icon: import_icons.TaskListIcon
50
+ }];
51
+ function getActiveListIcon(state) {
52
+ if (state.isOrderedList) return import_icons.OrderedListIcon;
53
+ if (state.isTaskList) return import_icons.TaskListIcon;
54
+ return import_icons.BulletListIcon;
55
+ }
56
+ function isAnyListActive(state) {
57
+ return state.isBulletList || state.isOrderedList || state.isTaskList;
58
+ }
59
+ function ListPicker({
60
+ editorRef,
61
+ state,
62
+ disabled
63
+ }) {
64
+ const {
65
+ knobProps
66
+ } = (0, import_theme.useResolvedKnobs)();
67
+ const [open, setOpen] = (0, import_react.useState)(false);
68
+ const ActiveIcon = getActiveListIcon(state);
69
+ return /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_tamagui.Popover, {
70
+ open,
71
+ onOpenChange: setOpen,
72
+ placement: "bottom-start",
73
+ children: [/* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.Popover.Trigger, {
74
+ asChild: true,
75
+ children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_ToolbarButton.ToolbarDropdownButton, {
76
+ active: isAnyListActive(state),
77
+ disabled,
78
+ onPress: () => setOpen(true),
79
+ "aria-label": "Lists",
80
+ children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(ActiveIcon, {})
81
+ })
82
+ }), /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.Popover.Content, {
83
+ ...knobProps.panelPadding,
84
+ backgroundColor: "$background",
85
+ borderWidth: 1,
86
+ borderColor: "$borderColor",
87
+ borderRadius: knobProps.borderRadius.borderRadius,
88
+ elevation: knobProps.elevation,
89
+ enterStyle: {
90
+ opacity: 0,
91
+ y: -5
92
+ },
93
+ exitStyle: {
94
+ opacity: 0,
95
+ y: -5
96
+ },
97
+ children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.YStack, {
98
+ gap: "$1",
99
+ minWidth: 150,
100
+ children: LIST_OPTIONS.map(option => {
101
+ const Icon = option.icon;
102
+ return /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_styled.DropdownMenuItemFrame, {
103
+ active: state[option.stateKey],
104
+ onPress: () => {
105
+ editorRef.current?.executeCommand(option.command);
106
+ setOpen(false);
107
+ },
108
+ "aria-label": option.label,
109
+ children: [/* @__PURE__ */(0, import_jsx_runtime.jsx)(Icon, {}), /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.Text, {
110
+ children: option.label
111
+ })]
112
+ }, option.command);
113
+ })
114
+ })
115
+ })]
116
+ });
117
+ }
@@ -0,0 +1,124 @@
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 ListPicker_exports = {};
26
+ __export(ListPicker_exports, {
27
+ ListPicker: () => ListPicker
28
+ });
29
+ module.exports = __toCommonJS(ListPicker_exports);
30
+ var import_jsx_runtime = require("react/jsx-runtime");
31
+ var import_react = require("react");
32
+ var import_theme = require("@multiplatform.one/theme");
33
+ var import_tamagui = require("tamagui");
34
+ var import_styled = require("../styled.native.js");
35
+ var import_ToolbarButton = require("./ToolbarButton.native.js");
36
+ var import_icons = require("./icons.native.js");
37
+ var LIST_OPTIONS = [{
38
+ label: "Bullet List",
39
+ command: "bulletList",
40
+ stateKey: "isBulletList",
41
+ icon: import_icons.BulletListIcon
42
+ }, {
43
+ label: "Ordered List",
44
+ command: "orderedList",
45
+ stateKey: "isOrderedList",
46
+ icon: import_icons.OrderedListIcon
47
+ }, {
48
+ label: "Task List",
49
+ command: "taskList",
50
+ stateKey: "isTaskList",
51
+ icon: import_icons.TaskListIcon
52
+ }];
53
+ function getActiveListIcon(state) {
54
+ if (state.isOrderedList) return import_icons.OrderedListIcon;
55
+ if (state.isTaskList) return import_icons.TaskListIcon;
56
+ return import_icons.BulletListIcon;
57
+ }
58
+ function isAnyListActive(state) {
59
+ return state.isBulletList || state.isOrderedList || state.isTaskList;
60
+ }
61
+ function ListPicker(param) {
62
+ var {
63
+ editorRef,
64
+ state,
65
+ disabled
66
+ } = param;
67
+ var {
68
+ knobProps
69
+ } = (0, import_theme.useResolvedKnobs)();
70
+ var [open, setOpen] = (0, import_react.useState)(false);
71
+ var ActiveIcon = getActiveListIcon(state);
72
+ return /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_tamagui.Popover, {
73
+ open,
74
+ onOpenChange: setOpen,
75
+ placement: "bottom-start",
76
+ children: [/* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.Popover.Trigger, {
77
+ asChild: true,
78
+ children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_ToolbarButton.ToolbarDropdownButton, {
79
+ active: isAnyListActive(state),
80
+ disabled,
81
+ onPress: function onPress() {
82
+ return setOpen(true);
83
+ },
84
+ "aria-label": "Lists",
85
+ children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(ActiveIcon, {})
86
+ })
87
+ }), /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.Popover.Content, {
88
+ ...knobProps.panelPadding,
89
+ backgroundColor: "$background",
90
+ borderWidth: 1,
91
+ borderColor: "$borderColor",
92
+ borderRadius: knobProps.borderRadius.borderRadius,
93
+ elevation: knobProps.elevation,
94
+ enterStyle: {
95
+ opacity: 0,
96
+ y: -5
97
+ },
98
+ exitStyle: {
99
+ opacity: 0,
100
+ y: -5
101
+ },
102
+ children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.YStack, {
103
+ gap: "$1",
104
+ minWidth: 150,
105
+ children: LIST_OPTIONS.map(function (option) {
106
+ var Icon = option.icon;
107
+ return /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_styled.DropdownMenuItemFrame, {
108
+ active: state[option.stateKey],
109
+ onPress: function onPress() {
110
+ var _editorRef_current;
111
+ (_editorRef_current = editorRef.current) === null || _editorRef_current === void 0 ? void 0 : _editorRef_current.executeCommand(option.command);
112
+ setOpen(false);
113
+ },
114
+ "aria-label": option.label,
115
+ children: [/* @__PURE__ */(0, import_jsx_runtime.jsx)(Icon, {}), /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.Text, {
116
+ children: option.label
117
+ })]
118
+ }, option.command);
119
+ })
120
+ })
121
+ })]
122
+ });
123
+ }
124
+ //# sourceMappingURL=ListPicker.native.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","ListPicker_exports","__export","ListPicker","module","exports","import_jsx_runtime","require","import_react","import_theme","import_tamagui","import_styled","import_ToolbarButton","import_icons","LIST_OPTIONS","label","command","stateKey","icon","BulletListIcon","OrderedListIcon","TaskListIcon","getActiveListIcon","state","isOrderedList","isTaskList","isAnyListActive","isBulletList","param","editorRef","disabled","knobProps","useResolvedKnobs","open","setOpen","useState","ActiveIcon","jsxs","Popover","onOpenChange","placement","children","jsx","Trigger","asChild","ToolbarDropdownButton","active","onPress","Content","panelPadding","backgroundColor","borderWidth","borderColor","borderRadius","elevation","enterStyle","opacity","y","exitStyle","YStack","gap","minWidth","map","option","Icon","DropdownMenuItemFrame","_editorRef_current","current","executeCommand"],"sources":["../../../src/toolbar/ListPicker.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,201 @@
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 MoreDropdown_exports = {};
24
+ __export(MoreDropdown_exports, {
25
+ MoreDropdown: () => MoreDropdown
26
+ });
27
+ module.exports = __toCommonJS(MoreDropdown_exports);
28
+ var import_react = require("react");
29
+ var import_theme = require("@multiplatform.one/theme");
30
+ var import_tamagui = require("tamagui");
31
+ var import_styled = require("../styled.cjs");
32
+ var import_ToolbarButton = require("./ToolbarButton.cjs");
33
+ var import_icons = require("./icons.cjs");
34
+ var import_shortcuts = require("./shortcuts.cjs");
35
+ var import_jsx_runtime = require("react/jsx-runtime");
36
+ const INLINE_ITEMS = [{
37
+ label: import_shortcuts.SHORTCUTS.subscript,
38
+ command: "subscript",
39
+ icon: import_icons.SubscriptIcon,
40
+ isActive: s => s.isSubscript
41
+ }, {
42
+ label: import_shortcuts.SHORTCUTS.superscript,
43
+ command: "superscript",
44
+ icon: import_icons.SuperscriptIcon,
45
+ isActive: s => s.isSuperscript
46
+ }];
47
+ const ALIGN_ITEMS = [{
48
+ label: import_shortcuts.SHORTCUTS.alignLeft,
49
+ command: "alignLeft",
50
+ icon: import_icons.AlignLeftIcon,
51
+ isActive: s => s.textAlign === "left"
52
+ }, {
53
+ label: import_shortcuts.SHORTCUTS.alignCenter,
54
+ command: "alignCenter",
55
+ icon: import_icons.AlignCenterIcon,
56
+ isActive: s => s.textAlign === "center"
57
+ }, {
58
+ label: import_shortcuts.SHORTCUTS.alignRight,
59
+ command: "alignRight",
60
+ icon: import_icons.AlignRightIcon,
61
+ isActive: s => s.textAlign === "right"
62
+ }, {
63
+ label: import_shortcuts.SHORTCUTS.alignJustify,
64
+ command: "alignJustify",
65
+ icon: import_icons.AlignJustifyIcon,
66
+ isActive: s => s.textAlign === "justify"
67
+ }];
68
+ const BLOCK_ITEMS = [{
69
+ label: import_shortcuts.SHORTCUTS.horizontalRule,
70
+ command: "horizontalRule",
71
+ icon: import_icons.HorizontalRuleIcon
72
+ }, {
73
+ label: import_shortcuts.SHORTCUTS.clearFormatting,
74
+ command: "clearFormatting",
75
+ icon: import_icons.ClearFormattingIcon
76
+ }];
77
+ function MoreIcon() {
78
+ return /* @__PURE__ */(0, import_jsx_runtime.jsxs)("svg", {
79
+ width: "16",
80
+ height: "16",
81
+ viewBox: "0 0 24 24",
82
+ fill: "currentColor",
83
+ stroke: "none",
84
+ children: [/* @__PURE__ */(0, import_jsx_runtime.jsx)("circle", {
85
+ cx: "5",
86
+ cy: "12",
87
+ r: "2"
88
+ }), /* @__PURE__ */(0, import_jsx_runtime.jsx)("circle", {
89
+ cx: "12",
90
+ cy: "12",
91
+ r: "2"
92
+ }), /* @__PURE__ */(0, import_jsx_runtime.jsx)("circle", {
93
+ cx: "19",
94
+ cy: "12",
95
+ r: "2"
96
+ })]
97
+ });
98
+ }
99
+ function preventFocusTheft(e) {
100
+ e.preventDefault();
101
+ }
102
+ function ItemSection({
103
+ items,
104
+ state,
105
+ onSelect
106
+ }) {
107
+ return /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_jsx_runtime.Fragment, {
108
+ children: items.map(item => {
109
+ const Icon = item.icon;
110
+ return /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_styled.DropdownMenuItemFrame, {
111
+ active: item.isActive?.(state),
112
+ onMouseDown: preventFocusTheft,
113
+ onPress: () => onSelect(item.command, item.payload),
114
+ "aria-label": item.label,
115
+ children: [/* @__PURE__ */(0, import_jsx_runtime.jsx)(Icon, {}), /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.Text, {
116
+ fontSize: 13,
117
+ children: item.label
118
+ })]
119
+ }, item.command);
120
+ })
121
+ });
122
+ }
123
+ function MoreDropdown({
124
+ editorRef,
125
+ state,
126
+ disabled
127
+ }) {
128
+ const {
129
+ knobProps
130
+ } = (0, import_theme.useResolvedKnobs)();
131
+ const [open, setOpen] = (0, import_react.useState)(false);
132
+ const handleSelect = (command, payload) => {
133
+ editorRef.current?.executeCommand(command, payload);
134
+ if (command === "horizontalRule" || command === "clearFormatting") {
135
+ setOpen(false);
136
+ }
137
+ };
138
+ return /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_tamagui.Popover, {
139
+ open,
140
+ onOpenChange: setOpen,
141
+ placement: "bottom-end",
142
+ children: [/* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.Popover.Trigger, {
143
+ asChild: true,
144
+ children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_ToolbarButton.ToolbarButton, {
145
+ disabled,
146
+ onPress: () => setOpen(true),
147
+ "aria-label": "More formatting options",
148
+ tooltip: "More",
149
+ children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(MoreIcon, {})
150
+ })
151
+ }), /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.Popover.Content, {
152
+ ...knobProps.panelPadding,
153
+ backgroundColor: "$background",
154
+ borderWidth: 1,
155
+ borderColor: "$borderColor",
156
+ borderRadius: knobProps.borderRadius.borderRadius,
157
+ elevation: knobProps.elevation,
158
+ enterStyle: {
159
+ opacity: 0,
160
+ y: -5
161
+ },
162
+ exitStyle: {
163
+ opacity: 0,
164
+ y: -5
165
+ },
166
+ children: /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_tamagui.YStack, {
167
+ gap: "$1",
168
+ minWidth: 200,
169
+ children: [/* @__PURE__ */(0, import_jsx_runtime.jsx)(ItemSection, {
170
+ items: INLINE_ITEMS,
171
+ state,
172
+ onSelect: handleSelect
173
+ }), /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.XStack, {
174
+ paddingVertical: "$1",
175
+ children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_styled.ToolbarSeparatorFrame, {
176
+ vertical: false,
177
+ width: "100%",
178
+ height: 1,
179
+ marginHorizontal: 0
180
+ })
181
+ }), /* @__PURE__ */(0, import_jsx_runtime.jsx)(ItemSection, {
182
+ items: ALIGN_ITEMS,
183
+ state,
184
+ onSelect: handleSelect
185
+ }), /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.XStack, {
186
+ paddingVertical: "$1",
187
+ children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_styled.ToolbarSeparatorFrame, {
188
+ vertical: false,
189
+ width: "100%",
190
+ height: 1,
191
+ marginHorizontal: 0
192
+ })
193
+ }), /* @__PURE__ */(0, import_jsx_runtime.jsx)(ItemSection, {
194
+ items: BLOCK_ITEMS,
195
+ state,
196
+ onSelect: handleSelect
197
+ })]
198
+ })
199
+ })]
200
+ });
201
+ }