@verbb/plugin-kit-react 1.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 (593) hide show
  1. package/CHANGELOG.md +5 -0
  2. package/LICENSE.md +21 -0
  3. package/README.md +31 -0
  4. package/dist/_virtual/_rolldown/runtime.js +34 -0
  5. package/dist/components/Button.d.ts +26 -0
  6. package/dist/components/Button.d.ts.map +1 -0
  7. package/dist/components/Button.js +148 -0
  8. package/dist/components/Button.js.map +1 -0
  9. package/dist/components/ButtonGroup.d.ts +11 -0
  10. package/dist/components/ButtonGroup.d.ts.map +1 -0
  11. package/dist/components/ButtonGroup.js +59 -0
  12. package/dist/components/ButtonGroup.js.map +1 -0
  13. package/dist/components/Calendar.d.ts +11 -0
  14. package/dist/components/Calendar.d.ts.map +1 -0
  15. package/dist/components/Calendar.js +133 -0
  16. package/dist/components/Calendar.js.map +1 -0
  17. package/dist/components/Checkbox.d.ts +5 -0
  18. package/dist/components/Checkbox.d.ts.map +1 -0
  19. package/dist/components/Checkbox.js +41 -0
  20. package/dist/components/Checkbox.js.map +1 -0
  21. package/dist/components/CheckboxInput.d.ts +14 -0
  22. package/dist/components/CheckboxInput.d.ts.map +1 -0
  23. package/dist/components/CheckboxInput.js +31 -0
  24. package/dist/components/CheckboxInput.js.map +1 -0
  25. package/dist/components/CheckboxSelect.d.ts +19 -0
  26. package/dist/components/CheckboxSelect.d.ts.map +1 -0
  27. package/dist/components/CheckboxSelect.js +63 -0
  28. package/dist/components/CheckboxSelect.js.map +1 -0
  29. package/dist/components/ColorInput.d.ts +14 -0
  30. package/dist/components/ColorInput.d.ts.map +1 -0
  31. package/dist/components/ColorInput.js +148 -0
  32. package/dist/components/ColorInput.js.map +1 -0
  33. package/dist/components/Combobox.d.ts +40 -0
  34. package/dist/components/Combobox.d.ts.map +1 -0
  35. package/dist/components/Combobox.js +393 -0
  36. package/dist/components/Combobox.js.map +1 -0
  37. package/dist/components/ComboboxInput.d.ts +28 -0
  38. package/dist/components/ComboboxInput.d.ts.map +1 -0
  39. package/dist/components/ComboboxInput.js +165 -0
  40. package/dist/components/ComboboxInput.js.map +1 -0
  41. package/dist/components/Command.d.ts +26 -0
  42. package/dist/components/Command.d.ts.map +1 -0
  43. package/dist/components/Command.js +94 -0
  44. package/dist/components/Command.js.map +1 -0
  45. package/dist/components/CopyButton.d.ts +9 -0
  46. package/dist/components/CopyButton.d.ts.map +1 -0
  47. package/dist/components/CopyButton.js +40 -0
  48. package/dist/components/CopyButton.js.map +1 -0
  49. package/dist/components/DatePicker.d.ts +9 -0
  50. package/dist/components/DatePicker.d.ts.map +1 -0
  51. package/dist/components/DatePicker.js +46 -0
  52. package/dist/components/DatePicker.js.map +1 -0
  53. package/dist/components/Dialog.d.ts +21 -0
  54. package/dist/components/Dialog.d.ts.map +1 -0
  55. package/dist/components/Dialog.js +179 -0
  56. package/dist/components/Dialog.js.map +1 -0
  57. package/dist/components/DropdownMenu.d.ts +47 -0
  58. package/dist/components/DropdownMenu.d.ts.map +1 -0
  59. package/dist/components/DropdownMenu.js +240 -0
  60. package/dist/components/DropdownMenu.js.map +1 -0
  61. package/dist/components/EditableTable.d.ts +28 -0
  62. package/dist/components/EditableTable.d.ts.map +1 -0
  63. package/dist/components/EditableTable.js +145 -0
  64. package/dist/components/EditableTable.js.map +1 -0
  65. package/dist/components/FadeIn.d.ts +12 -0
  66. package/dist/components/FadeIn.d.ts.map +1 -0
  67. package/dist/components/FadeIn.js +24 -0
  68. package/dist/components/FadeIn.js.map +1 -0
  69. package/dist/components/Input.d.ts +9 -0
  70. package/dist/components/Input.d.ts.map +1 -0
  71. package/dist/components/Input.js +43 -0
  72. package/dist/components/Input.js.map +1 -0
  73. package/dist/components/InputGroup.d.ts +20 -0
  74. package/dist/components/InputGroup.d.ts.map +1 -0
  75. package/dist/components/InputGroup.js +111 -0
  76. package/dist/components/InputGroup.js.map +1 -0
  77. package/dist/components/Label.d.ts +4 -0
  78. package/dist/components/Label.d.ts.map +1 -0
  79. package/dist/components/Label.js +15 -0
  80. package/dist/components/Label.js.map +1 -0
  81. package/dist/components/Lightswitch.d.ts +9 -0
  82. package/dist/components/Lightswitch.d.ts.map +1 -0
  83. package/dist/components/Lightswitch.js +56 -0
  84. package/dist/components/Lightswitch.js.map +1 -0
  85. package/dist/components/Markdown.d.ts +11 -0
  86. package/dist/components/Markdown.d.ts.map +1 -0
  87. package/dist/components/Markdown.js +46 -0
  88. package/dist/components/Markdown.js.map +1 -0
  89. package/dist/components/MenuButton.d.ts +40 -0
  90. package/dist/components/MenuButton.d.ts.map +1 -0
  91. package/dist/components/MenuButton.js +122 -0
  92. package/dist/components/MenuButton.js.map +1 -0
  93. package/dist/components/ModalTabs.d.ts +8 -0
  94. package/dist/components/ModalTabs.d.ts.map +1 -0
  95. package/dist/components/ModalTabs.js +37 -0
  96. package/dist/components/ModalTabs.js.map +1 -0
  97. package/dist/components/PaneTabs.d.ts +8 -0
  98. package/dist/components/PaneTabs.d.ts.map +1 -0
  99. package/dist/components/PaneTabs.js +37 -0
  100. package/dist/components/PaneTabs.js.map +1 -0
  101. package/dist/components/Popover.d.ts +12 -0
  102. package/dist/components/Popover.d.ts.map +1 -0
  103. package/dist/components/Popover.js +70 -0
  104. package/dist/components/Popover.js.map +1 -0
  105. package/dist/components/RadioGroup.d.ts +6 -0
  106. package/dist/components/RadioGroup.d.ts.map +1 -0
  107. package/dist/components/RadioGroup.js +34 -0
  108. package/dist/components/RadioGroup.js.map +1 -0
  109. package/dist/components/ScrollArea.d.ts +16 -0
  110. package/dist/components/ScrollArea.d.ts.map +1 -0
  111. package/dist/components/ScrollArea.js +47 -0
  112. package/dist/components/ScrollArea.js.map +1 -0
  113. package/dist/components/Select.d.ts +23 -0
  114. package/dist/components/Select.d.ts.map +1 -0
  115. package/dist/components/Select.js +205 -0
  116. package/dist/components/Select.js.map +1 -0
  117. package/dist/components/SelectInput.d.ts +33 -0
  118. package/dist/components/SelectInput.d.ts.map +1 -0
  119. package/dist/components/SelectInput.js +85 -0
  120. package/dist/components/SelectInput.js.map +1 -0
  121. package/dist/components/Separator.d.ts +4 -0
  122. package/dist/components/Separator.d.ts.map +1 -0
  123. package/dist/components/Separator.js +17 -0
  124. package/dist/components/Separator.js.map +1 -0
  125. package/dist/components/SlideUp.d.ts +12 -0
  126. package/dist/components/SlideUp.d.ts.map +1 -0
  127. package/dist/components/SlideUp.js +36 -0
  128. package/dist/components/SlideUp.js.map +1 -0
  129. package/dist/components/Slot.d.ts +6 -0
  130. package/dist/components/Slot.d.ts.map +1 -0
  131. package/dist/components/Slot.js +52 -0
  132. package/dist/components/Slot.js.map +1 -0
  133. package/dist/components/Spinner.d.ts +9 -0
  134. package/dist/components/Spinner.d.ts.map +1 -0
  135. package/dist/components/Spinner.js +43 -0
  136. package/dist/components/Spinner.js.map +1 -0
  137. package/dist/components/Status.d.ts +8 -0
  138. package/dist/components/Status.d.ts.map +1 -0
  139. package/dist/components/Status.js +55 -0
  140. package/dist/components/Status.js.map +1 -0
  141. package/dist/components/Table.d.ts +10 -0
  142. package/dist/components/Table.d.ts.map +1 -0
  143. package/dist/components/Table.js +64 -0
  144. package/dist/components/Table.js.map +1 -0
  145. package/dist/components/Tabs.d.ts +8 -0
  146. package/dist/components/Tabs.d.ts.map +1 -0
  147. package/dist/components/Tabs.js +37 -0
  148. package/dist/components/Tabs.js.map +1 -0
  149. package/dist/components/Textarea.d.ts +8 -0
  150. package/dist/components/Textarea.d.ts.map +1 -0
  151. package/dist/components/Textarea.js +26 -0
  152. package/dist/components/Textarea.js.map +1 -0
  153. package/dist/components/TimePicker.d.ts +9 -0
  154. package/dist/components/TimePicker.d.ts.map +1 -0
  155. package/dist/components/TimePicker.js +40 -0
  156. package/dist/components/TimePicker.js.map +1 -0
  157. package/dist/components/TiptapContent.d.ts +9 -0
  158. package/dist/components/TiptapContent.d.ts.map +1 -0
  159. package/dist/components/TiptapContent.js +24 -0
  160. package/dist/components/TiptapContent.js.map +1 -0
  161. package/dist/components/TiptapEditor.d.ts +41 -0
  162. package/dist/components/TiptapEditor.d.ts.map +1 -0
  163. package/dist/components/TiptapEditor.js +555 -0
  164. package/dist/components/TiptapEditor.js.map +1 -0
  165. package/dist/components/TiptapInput.d.ts +15 -0
  166. package/dist/components/TiptapInput.d.ts.map +1 -0
  167. package/dist/components/TiptapInput.js +138 -0
  168. package/dist/components/TiptapInput.js.map +1 -0
  169. package/dist/components/Toggle.d.ts +9 -0
  170. package/dist/components/Toggle.d.ts.map +1 -0
  171. package/dist/components/Toggle.js +48 -0
  172. package/dist/components/Toggle.js.map +1 -0
  173. package/dist/components/ToggleGroup.d.ts +11 -0
  174. package/dist/components/ToggleGroup.d.ts.map +1 -0
  175. package/dist/components/ToggleGroup.js +70 -0
  176. package/dist/components/ToggleGroup.js.map +1 -0
  177. package/dist/components/Tooltip.d.ts +9 -0
  178. package/dist/components/Tooltip.d.ts.map +1 -0
  179. package/dist/components/Tooltip.js +51 -0
  180. package/dist/components/Tooltip.js.map +1 -0
  181. package/dist/components/VirtualizedScrollArea.d.ts +25 -0
  182. package/dist/components/VirtualizedScrollArea.d.ts.map +1 -0
  183. package/dist/components/VirtualizedScrollArea.js +80 -0
  184. package/dist/components/VirtualizedScrollArea.js.map +1 -0
  185. package/dist/components/editable-table/RowDataCells.d.ts +3 -0
  186. package/dist/components/editable-table/RowDataCells.d.ts.map +1 -0
  187. package/dist/components/editable-table/RowDataCells.js +33 -0
  188. package/dist/components/editable-table/RowDataCells.js.map +1 -0
  189. package/dist/components/editable-table/TableCell.d.ts +13 -0
  190. package/dist/components/editable-table/TableCell.d.ts.map +1 -0
  191. package/dist/components/editable-table/TableCell.js +415 -0
  192. package/dist/components/editable-table/TableCell.js.map +1 -0
  193. package/dist/components/editable-table/TableRow.d.ts +3 -0
  194. package/dist/components/editable-table/TableRow.d.ts.map +1 -0
  195. package/dist/components/editable-table/TableRow.js +163 -0
  196. package/dist/components/editable-table/TableRow.js.map +1 -0
  197. package/dist/components/editable-table/helpers.d.ts +12 -0
  198. package/dist/components/editable-table/helpers.d.ts.map +1 -0
  199. package/dist/components/editable-table/helpers.js +23 -0
  200. package/dist/components/editable-table/helpers.js.map +1 -0
  201. package/dist/components/editable-table/index.d.ts +4 -0
  202. package/dist/components/editable-table/index.d.ts.map +1 -0
  203. package/dist/components/editable-table/index.js +4 -0
  204. package/dist/components/editable-table/types.d.ts +43 -0
  205. package/dist/components/editable-table/types.d.ts.map +1 -0
  206. package/dist/components/editable-table/types.js +0 -0
  207. package/dist/components/editable-table/useEditableTableCellChange.d.ts +17 -0
  208. package/dist/components/editable-table/useEditableTableCellChange.d.ts.map +1 -0
  209. package/dist/components/editable-table/useEditableTableCellChange.js +152 -0
  210. package/dist/components/editable-table/useEditableTableCellChange.js.map +1 -0
  211. package/dist/components/editable-table/useEditableTableDnd.d.ts +18 -0
  212. package/dist/components/editable-table/useEditableTableDnd.d.ts.map +1 -0
  213. package/dist/components/editable-table/useEditableTableDnd.js +55 -0
  214. package/dist/components/editable-table/useEditableTableDnd.js.map +1 -0
  215. package/dist/components/editable-table/useEditableTableRows.d.ts +17 -0
  216. package/dist/components/editable-table/useEditableTableRows.d.ts.map +1 -0
  217. package/dist/components/editable-table/useEditableTableRows.js +108 -0
  218. package/dist/components/editable-table/useEditableTableRows.js.map +1 -0
  219. package/dist/components/index.d.ts +45 -0
  220. package/dist/components/index.d.ts.map +1 -0
  221. package/dist/components/index.js +45 -0
  222. package/dist/components/tiptap/InlineVariablePickerPopover.d.ts +24 -0
  223. package/dist/components/tiptap/InlineVariablePickerPopover.d.ts.map +1 -0
  224. package/dist/components/tiptap/InlineVariablePickerPopover.js +63 -0
  225. package/dist/components/tiptap/InlineVariablePickerPopover.js.map +1 -0
  226. package/dist/components/tiptap/InsertLinkDialog.d.ts +14 -0
  227. package/dist/components/tiptap/InsertLinkDialog.d.ts.map +1 -0
  228. package/dist/components/tiptap/InsertLinkDialog.js +145 -0
  229. package/dist/components/tiptap/InsertLinkDialog.js.map +1 -0
  230. package/dist/components/tiptap/LinkBubbleMenu.d.ts +10 -0
  231. package/dist/components/tiptap/LinkBubbleMenu.d.ts.map +1 -0
  232. package/dist/components/tiptap/LinkBubbleMenu.js +106 -0
  233. package/dist/components/tiptap/LinkBubbleMenu.js.map +1 -0
  234. package/dist/components/tiptap/LinkDropdown.d.ts +53 -0
  235. package/dist/components/tiptap/LinkDropdown.d.ts.map +1 -0
  236. package/dist/components/tiptap/LinkDropdown.js +155 -0
  237. package/dist/components/tiptap/LinkDropdown.js.map +1 -0
  238. package/dist/components/tiptap/VariableCommandList.d.ts +37 -0
  239. package/dist/components/tiptap/VariableCommandList.d.ts.map +1 -0
  240. package/dist/components/tiptap/VariableCommandList.js +166 -0
  241. package/dist/components/tiptap/VariableCommandList.js.map +1 -0
  242. package/dist/components/tiptap/VariableDropdown.d.ts +33 -0
  243. package/dist/components/tiptap/VariableDropdown.d.ts.map +1 -0
  244. package/dist/components/tiptap/VariableDropdown.js +121 -0
  245. package/dist/components/tiptap/VariableDropdown.js.map +1 -0
  246. package/dist/components/tiptap/VariablePickerContext.d.ts +38 -0
  247. package/dist/components/tiptap/VariablePickerContext.d.ts.map +1 -0
  248. package/dist/components/tiptap/VariablePickerContext.js +30 -0
  249. package/dist/components/tiptap/VariablePickerContext.js.map +1 -0
  250. package/dist/components/tiptap/VariableTag.d.ts +6 -0
  251. package/dist/components/tiptap/VariableTag.d.ts.map +1 -0
  252. package/dist/components/tiptap/VariableTag.js +153 -0
  253. package/dist/components/tiptap/VariableTag.js.map +1 -0
  254. package/dist/components/tiptap/VariableTagView.d.ts +3 -0
  255. package/dist/components/tiptap/VariableTagView.d.ts.map +1 -0
  256. package/dist/components/tiptap/VariableTagView.js +445 -0
  257. package/dist/components/tiptap/VariableTagView.js.map +1 -0
  258. package/dist/components/tiptap/VariableTransformControls.d.ts +37 -0
  259. package/dist/components/tiptap/VariableTransformControls.d.ts.map +1 -0
  260. package/dist/components/tiptap/VariableTransformControls.js +157 -0
  261. package/dist/components/tiptap/VariableTransformControls.js.map +1 -0
  262. package/dist/components/tiptap/editorConfig.d.ts +15 -0
  263. package/dist/components/tiptap/editorConfig.d.ts.map +1 -0
  264. package/dist/components/tiptap/editorConfig.js +191 -0
  265. package/dist/components/tiptap/editorConfig.js.map +1 -0
  266. package/dist/components/tiptap/useInlineVariablePicker.d.ts +34 -0
  267. package/dist/components/tiptap/useInlineVariablePicker.d.ts.map +1 -0
  268. package/dist/components/tiptap/useInlineVariablePicker.js +240 -0
  269. package/dist/components/tiptap/useInlineVariablePicker.js.map +1 -0
  270. package/dist/components/tiptap/useVariablePicker.d.ts +28 -0
  271. package/dist/components/tiptap/useVariablePicker.d.ts.map +1 -0
  272. package/dist/components/tiptap/useVariablePicker.js +122 -0
  273. package/dist/components/tiptap/useVariablePicker.js.map +1 -0
  274. package/dist/components/tiptap/variablePickerUtils.d.ts +11 -0
  275. package/dist/components/tiptap/variablePickerUtils.d.ts.map +1 -0
  276. package/dist/components/tiptap/variablePickerUtils.js +63 -0
  277. package/dist/components/tiptap/variablePickerUtils.js.map +1 -0
  278. package/dist/components/tiptap/variableSerialization.d.ts +49 -0
  279. package/dist/components/tiptap/variableSerialization.d.ts.map +1 -0
  280. package/dist/components/tiptap/variableSerialization.js +250 -0
  281. package/dist/components/tiptap/variableSerialization.js.map +1 -0
  282. package/dist/css/core.css +288 -0
  283. package/dist/css/style.css +295 -0
  284. package/dist/forms/Field.d.ts +37 -0
  285. package/dist/forms/Field.d.ts.map +1 -0
  286. package/dist/forms/Field.js +159 -0
  287. package/dist/forms/Field.js.map +1 -0
  288. package/dist/forms/SchemaFormEngine.d.ts +23 -0
  289. package/dist/forms/SchemaFormEngine.d.ts.map +1 -0
  290. package/dist/forms/SchemaFormEngine.js +444 -0
  291. package/dist/forms/SchemaFormEngine.js.map +1 -0
  292. package/dist/forms/components/FieldWrap.d.ts +11 -0
  293. package/dist/forms/components/FieldWrap.d.ts.map +1 -0
  294. package/dist/forms/components/FieldWrap.js +84 -0
  295. package/dist/forms/components/FieldWrap.js.map +1 -0
  296. package/dist/forms/components/ModalTabs.d.ts +21 -0
  297. package/dist/forms/components/ModalTabs.d.ts.map +1 -0
  298. package/dist/forms/components/ModalTabs.js +84 -0
  299. package/dist/forms/components/ModalTabs.js.map +1 -0
  300. package/dist/forms/components/index.d.ts +3 -0
  301. package/dist/forms/components/index.d.ts.map +1 -0
  302. package/dist/forms/components/index.js +3 -0
  303. package/dist/forms/contexts/VariableCategoriesContext.d.ts +17 -0
  304. package/dist/forms/contexts/VariableCategoriesContext.d.ts.map +1 -0
  305. package/dist/forms/contexts/VariableCategoriesContext.js +18 -0
  306. package/dist/forms/contexts/VariableCategoriesContext.js.map +1 -0
  307. package/dist/forms/engine/FormStateStore.d.ts +24 -0
  308. package/dist/forms/engine/FormStateStore.d.ts.map +1 -0
  309. package/dist/forms/engine/FormStateStore.js +97 -0
  310. package/dist/forms/engine/FormStateStore.js.map +1 -0
  311. package/dist/forms/engine/SchemaIndex.d.ts +33 -0
  312. package/dist/forms/engine/SchemaIndex.d.ts.map +1 -0
  313. package/dist/forms/engine/SchemaIndex.js +21 -0
  314. package/dist/forms/engine/SchemaIndex.js.map +1 -0
  315. package/dist/forms/engine/ValidationEngine.d.ts +13 -0
  316. package/dist/forms/engine/ValidationEngine.d.ts.map +1 -0
  317. package/dist/forms/engine/ValidationEngine.js +155 -0
  318. package/dist/forms/engine/ValidationEngine.js.map +1 -0
  319. package/dist/forms/engine/buildGroupedMessage.d.ts +2 -0
  320. package/dist/forms/engine/buildGroupedMessage.d.ts.map +1 -0
  321. package/dist/forms/engine/buildGroupedMessage.js +20 -0
  322. package/dist/forms/engine/buildGroupedMessage.js.map +1 -0
  323. package/dist/forms/engine/context.d.ts +60 -0
  324. package/dist/forms/engine/context.d.ts.map +1 -0
  325. package/dist/forms/engine/context.js +12 -0
  326. package/dist/forms/engine/context.js.map +1 -0
  327. package/dist/forms/engine/rules/email.d.ts +2 -0
  328. package/dist/forms/engine/rules/email.d.ts.map +1 -0
  329. package/dist/forms/engine/rules/email.js +11 -0
  330. package/dist/forms/engine/rules/email.js.map +1 -0
  331. package/dist/forms/engine/rules/emailOrVariable.d.ts +2 -0
  332. package/dist/forms/engine/rules/emailOrVariable.d.ts.map +1 -0
  333. package/dist/forms/engine/rules/emailOrVariable.js +13 -0
  334. package/dist/forms/engine/rules/emailOrVariable.js.map +1 -0
  335. package/dist/forms/engine/rules/handle.d.ts +2 -0
  336. package/dist/forms/engine/rules/handle.d.ts.map +1 -0
  337. package/dist/forms/engine/rules/handle.js +12 -0
  338. package/dist/forms/engine/rules/handle.js.map +1 -0
  339. package/dist/forms/engine/rules/index.d.ts +9 -0
  340. package/dist/forms/engine/rules/index.d.ts.map +1 -0
  341. package/dist/forms/engine/rules/index.js +35 -0
  342. package/dist/forms/engine/rules/index.js.map +1 -0
  343. package/dist/forms/engine/rules/max.d.ts +2 -0
  344. package/dist/forms/engine/rules/max.d.ts.map +1 -0
  345. package/dist/forms/engine/rules/max.js +16 -0
  346. package/dist/forms/engine/rules/max.js.map +1 -0
  347. package/dist/forms/engine/rules/min.d.ts +2 -0
  348. package/dist/forms/engine/rules/min.d.ts.map +1 -0
  349. package/dist/forms/engine/rules/min.js +16 -0
  350. package/dist/forms/engine/rules/min.js.map +1 -0
  351. package/dist/forms/engine/rules/required.d.ts +2 -0
  352. package/dist/forms/engine/rules/required.d.ts.map +1 -0
  353. package/dist/forms/engine/rules/required.js +11 -0
  354. package/dist/forms/engine/rules/required.js.map +1 -0
  355. package/dist/forms/engine/rules/uniqueHandle.d.ts +9 -0
  356. package/dist/forms/engine/rules/uniqueHandle.d.ts.map +1 -0
  357. package/dist/forms/engine/rules/uniqueHandle.js +95 -0
  358. package/dist/forms/engine/rules/uniqueHandle.js.map +1 -0
  359. package/dist/forms/engine/rules/utils.d.ts +3 -0
  360. package/dist/forms/engine/rules/utils.d.ts.map +1 -0
  361. package/dist/forms/engine/rules/utils.js +21 -0
  362. package/dist/forms/engine/rules/utils.js.map +1 -0
  363. package/dist/forms/fields/CalculationsField.d.ts +24 -0
  364. package/dist/forms/fields/CalculationsField.d.ts.map +1 -0
  365. package/dist/forms/fields/CalculationsField.js +215 -0
  366. package/dist/forms/fields/CalculationsField.js.map +1 -0
  367. package/dist/forms/fields/CalculationsToolbar.d.ts +17 -0
  368. package/dist/forms/fields/CalculationsToolbar.d.ts.map +1 -0
  369. package/dist/forms/fields/CalculationsToolbar.js +130 -0
  370. package/dist/forms/fields/CalculationsToolbar.js.map +1 -0
  371. package/dist/forms/fields/CheckboxSelectField.d.ts +19 -0
  372. package/dist/forms/fields/CheckboxSelectField.d.ts.map +1 -0
  373. package/dist/forms/fields/CheckboxSelectField.js +30 -0
  374. package/dist/forms/fields/CheckboxSelectField.js.map +1 -0
  375. package/dist/forms/fields/ColorField.d.ts +15 -0
  376. package/dist/forms/fields/ColorField.d.ts.map +1 -0
  377. package/dist/forms/fields/ColorField.js +30 -0
  378. package/dist/forms/fields/ColorField.js.map +1 -0
  379. package/dist/forms/fields/ComboboxField.d.ts +23 -0
  380. package/dist/forms/fields/ComboboxField.d.ts.map +1 -0
  381. package/dist/forms/fields/ComboboxField.js +38 -0
  382. package/dist/forms/fields/ComboboxField.js.map +1 -0
  383. package/dist/forms/fields/DateTimeField.d.ts +14 -0
  384. package/dist/forms/fields/DateTimeField.d.ts.map +1 -0
  385. package/dist/forms/fields/DateTimeField.js +53 -0
  386. package/dist/forms/fields/DateTimeField.js.map +1 -0
  387. package/dist/forms/fields/EditableTableField.d.ts +22 -0
  388. package/dist/forms/fields/EditableTableField.d.ts.map +1 -0
  389. package/dist/forms/fields/EditableTableField.js +37 -0
  390. package/dist/forms/fields/EditableTableField.js.map +1 -0
  391. package/dist/forms/fields/ElementSelectField.d.ts +20 -0
  392. package/dist/forms/fields/ElementSelectField.d.ts.map +1 -0
  393. package/dist/forms/fields/ElementSelectField.js +215 -0
  394. package/dist/forms/fields/ElementSelectField.js.map +1 -0
  395. package/dist/forms/fields/GroupField.d.ts +19 -0
  396. package/dist/forms/fields/GroupField.d.ts.map +1 -0
  397. package/dist/forms/fields/GroupField.js +50 -0
  398. package/dist/forms/fields/GroupField.js.map +1 -0
  399. package/dist/forms/fields/HandleField.d.ts +20 -0
  400. package/dist/forms/fields/HandleField.d.ts.map +1 -0
  401. package/dist/forms/fields/HandleField.js +70 -0
  402. package/dist/forms/fields/HandleField.js.map +1 -0
  403. package/dist/forms/fields/LightswitchField.d.ts +14 -0
  404. package/dist/forms/fields/LightswitchField.d.ts.map +1 -0
  405. package/dist/forms/fields/LightswitchField.js +29 -0
  406. package/dist/forms/fields/LightswitchField.js.map +1 -0
  407. package/dist/forms/fields/ListField.d.ts +17 -0
  408. package/dist/forms/fields/ListField.d.ts.map +1 -0
  409. package/dist/forms/fields/ListField.js +51 -0
  410. package/dist/forms/fields/ListField.js.map +1 -0
  411. package/dist/forms/fields/NumberField.d.ts +17 -0
  412. package/dist/forms/fields/NumberField.d.ts.map +1 -0
  413. package/dist/forms/fields/NumberField.js +33 -0
  414. package/dist/forms/fields/NumberField.js.map +1 -0
  415. package/dist/forms/fields/RadioGroupField.d.ts +25 -0
  416. package/dist/forms/fields/RadioGroupField.d.ts.map +1 -0
  417. package/dist/forms/fields/RadioGroupField.js +102 -0
  418. package/dist/forms/fields/RadioGroupField.js.map +1 -0
  419. package/dist/forms/fields/RichTextField.d.ts +23 -0
  420. package/dist/forms/fields/RichTextField.d.ts.map +1 -0
  421. package/dist/forms/fields/RichTextField.js +50 -0
  422. package/dist/forms/fields/RichTextField.js.map +1 -0
  423. package/dist/forms/fields/SelectField.d.ts +25 -0
  424. package/dist/forms/fields/SelectField.d.ts.map +1 -0
  425. package/dist/forms/fields/SelectField.js +73 -0
  426. package/dist/forms/fields/SelectField.js.map +1 -0
  427. package/dist/forms/fields/StaticTableField.d.ts +34 -0
  428. package/dist/forms/fields/StaticTableField.d.ts.map +1 -0
  429. package/dist/forms/fields/StaticTableField.js +128 -0
  430. package/dist/forms/fields/StaticTableField.js.map +1 -0
  431. package/dist/forms/fields/TextField.d.ts +16 -0
  432. package/dist/forms/fields/TextField.d.ts.map +1 -0
  433. package/dist/forms/fields/TextField.js +31 -0
  434. package/dist/forms/fields/TextField.js.map +1 -0
  435. package/dist/forms/fields/TextareaField.d.ts +17 -0
  436. package/dist/forms/fields/TextareaField.d.ts.map +1 -0
  437. package/dist/forms/fields/TextareaField.js +32 -0
  438. package/dist/forms/fields/TextareaField.js.map +1 -0
  439. package/dist/forms/fields/VariablePickerField.d.ts +21 -0
  440. package/dist/forms/fields/VariablePickerField.d.ts.map +1 -0
  441. package/dist/forms/fields/VariablePickerField.js +49 -0
  442. package/dist/forms/fields/VariablePickerField.js.map +1 -0
  443. package/dist/forms/index.d.ts +8 -0
  444. package/dist/forms/index.d.ts.map +1 -0
  445. package/dist/forms/index.js +10 -0
  446. package/dist/forms/registry.d.ts +8 -0
  447. package/dist/forms/registry.d.ts.map +1 -0
  448. package/dist/forms/registry.js +76 -0
  449. package/dist/forms/registry.js.map +1 -0
  450. package/dist/forms/store/element-store.d.ts +11 -0
  451. package/dist/forms/store/element-store.d.ts.map +1 -0
  452. package/dist/forms/store/element-store.js +41 -0
  453. package/dist/forms/store/element-store.js.map +1 -0
  454. package/dist/forms/useEditableTableFieldBinding.d.ts +13 -0
  455. package/dist/forms/useEditableTableFieldBinding.d.ts.map +1 -0
  456. package/dist/forms/useEditableTableFieldBinding.js +91 -0
  457. package/dist/forms/useEditableTableFieldBinding.js.map +1 -0
  458. package/dist/forms/useEngineField.d.ts +9 -0
  459. package/dist/forms/useEngineField.d.ts.map +1 -0
  460. package/dist/forms/useEngineField.js +32 -0
  461. package/dist/forms/useEngineField.js.map +1 -0
  462. package/dist/hooks/index.d.ts +3 -0
  463. package/dist/hooks/index.d.ts.map +1 -0
  464. package/dist/hooks/index.js +3 -0
  465. package/dist/hooks/useKeyboardShortcuts.d.ts +14 -0
  466. package/dist/hooks/useKeyboardShortcuts.d.ts.map +1 -0
  467. package/dist/hooks/useKeyboardShortcuts.js +67 -0
  468. package/dist/hooks/useKeyboardShortcuts.js.map +1 -0
  469. package/dist/hooks/useTranslation.d.ts +3 -0
  470. package/dist/hooks/useTranslation.d.ts.map +1 -0
  471. package/dist/hooks/useTranslation.js +12 -0
  472. package/dist/hooks/useTranslation.js.map +1 -0
  473. package/dist/index.d.ts +2 -0
  474. package/dist/index.d.ts.map +1 -0
  475. package/dist/index.js +2 -0
  476. package/dist/node_modules/@babel/runtime/helpers/arrayLikeToArray.js +15 -0
  477. package/dist/node_modules/@babel/runtime/helpers/arrayLikeToArray.js.map +1 -0
  478. package/dist/node_modules/@babel/runtime/helpers/arrayWithoutHoles.js +15 -0
  479. package/dist/node_modules/@babel/runtime/helpers/arrayWithoutHoles.js.map +1 -0
  480. package/dist/node_modules/@babel/runtime/helpers/classCallCheck.js +13 -0
  481. package/dist/node_modules/@babel/runtime/helpers/classCallCheck.js.map +1 -0
  482. package/dist/node_modules/@babel/runtime/helpers/createClass.js +21 -0
  483. package/dist/node_modules/@babel/runtime/helpers/createClass.js.map +1 -0
  484. package/dist/node_modules/@babel/runtime/helpers/defineProperty.js +20 -0
  485. package/dist/node_modules/@babel/runtime/helpers/defineProperty.js.map +1 -0
  486. package/dist/node_modules/@babel/runtime/helpers/interopRequireDefault.js +13 -0
  487. package/dist/node_modules/@babel/runtime/helpers/interopRequireDefault.js.map +1 -0
  488. package/dist/node_modules/@babel/runtime/helpers/iterableToArray.js +13 -0
  489. package/dist/node_modules/@babel/runtime/helpers/iterableToArray.js.map +1 -0
  490. package/dist/node_modules/@babel/runtime/helpers/nonIterableSpread.js +13 -0
  491. package/dist/node_modules/@babel/runtime/helpers/nonIterableSpread.js.map +1 -0
  492. package/dist/node_modules/@babel/runtime/helpers/toConsumableArray.js +21 -0
  493. package/dist/node_modules/@babel/runtime/helpers/toConsumableArray.js.map +1 -0
  494. package/dist/node_modules/@babel/runtime/helpers/toPrimitive.js +22 -0
  495. package/dist/node_modules/@babel/runtime/helpers/toPrimitive.js.map +1 -0
  496. package/dist/node_modules/@babel/runtime/helpers/toPropertyKey.js +18 -0
  497. package/dist/node_modules/@babel/runtime/helpers/toPropertyKey.js.map +1 -0
  498. package/dist/node_modules/@babel/runtime/helpers/typeof.js +18 -0
  499. package/dist/node_modules/@babel/runtime/helpers/typeof.js.map +1 -0
  500. package/dist/node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js +19 -0
  501. package/dist/node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js.map +1 -0
  502. package/dist/node_modules/jexl/dist/Expression.js +84 -0
  503. package/dist/node_modules/jexl/dist/Expression.js.map +1 -0
  504. package/dist/node_modules/jexl/dist/Jexl.js +165 -0
  505. package/dist/node_modules/jexl/dist/Jexl.js.map +1 -0
  506. package/dist/node_modules/jexl/dist/Lexer.js +152 -0
  507. package/dist/node_modules/jexl/dist/Lexer.js.map +1 -0
  508. package/dist/node_modules/jexl/dist/PromiseSync.js +87 -0
  509. package/dist/node_modules/jexl/dist/PromiseSync.js.map +1 -0
  510. package/dist/node_modules/jexl/dist/evaluator/Evaluator.js +98 -0
  511. package/dist/node_modules/jexl/dist/evaluator/Evaluator.js.map +1 -0
  512. package/dist/node_modules/jexl/dist/evaluator/handlers.js +162 -0
  513. package/dist/node_modules/jexl/dist/evaluator/handlers.js.map +1 -0
  514. package/dist/node_modules/jexl/dist/grammar.js +195 -0
  515. package/dist/node_modules/jexl/dist/grammar.js.map +1 -0
  516. package/dist/node_modules/jexl/dist/parser/Parser.js +135 -0
  517. package/dist/node_modules/jexl/dist/parser/Parser.js.map +1 -0
  518. package/dist/node_modules/jexl/dist/parser/handlers.js +205 -0
  519. package/dist/node_modules/jexl/dist/parser/handlers.js.map +1 -0
  520. package/dist/node_modules/jexl/dist/parser/states.js +158 -0
  521. package/dist/node_modules/jexl/dist/parser/states.js.map +1 -0
  522. package/dist/types/global.d.d.ts +1 -0
  523. package/dist/types/global.d.js +0 -0
  524. package/dist/utils/classes.d.ts +18 -0
  525. package/dist/utils/classes.d.ts.map +1 -0
  526. package/dist/utils/classes.js +25 -0
  527. package/dist/utils/classes.js.map +1 -0
  528. package/dist/utils/config.d.ts +14 -0
  529. package/dist/utils/config.d.ts.map +1 -0
  530. package/dist/utils/config.js +16 -0
  531. package/dist/utils/config.js.map +1 -0
  532. package/dist/utils/craftHostBridge.d.ts +16 -0
  533. package/dist/utils/craftHostBridge.d.ts.map +1 -0
  534. package/dist/utils/craftHostBridge.js +28 -0
  535. package/dist/utils/craftHostBridge.js.map +1 -0
  536. package/dist/utils/handle.d.ts +10 -0
  537. package/dist/utils/handle.d.ts.map +1 -0
  538. package/dist/utils/handle.js +51 -0
  539. package/dist/utils/handle.js.map +1 -0
  540. package/dist/utils/hostBridge.d.ts +40 -0
  541. package/dist/utils/hostBridge.d.ts.map +1 -0
  542. package/dist/utils/hostBridge.js +35 -0
  543. package/dist/utils/hostBridge.js.map +1 -0
  544. package/dist/utils/index.d.ts +18 -0
  545. package/dist/utils/index.d.ts.map +1 -0
  546. package/dist/utils/index.js +66 -0
  547. package/dist/utils/index.js.map +1 -0
  548. package/dist/utils/portal.d.ts +17 -0
  549. package/dist/utils/portal.d.ts.map +1 -0
  550. package/dist/utils/portal.js +51 -0
  551. package/dist/utils/portal.js.map +1 -0
  552. package/dist/utils/schema.d.ts +17 -0
  553. package/dist/utils/schema.d.ts.map +1 -0
  554. package/dist/utils/schema.js +56 -0
  555. package/dist/utils/schema.js.map +1 -0
  556. package/dist/utils/schemaFieldNames.d.ts +2 -0
  557. package/dist/utils/schemaFieldNames.d.ts.map +1 -0
  558. package/dist/utils/schemaFieldNames.js +16 -0
  559. package/dist/utils/schemaFieldNames.js.map +1 -0
  560. package/dist/utils/schemaIndex.d.ts +6 -0
  561. package/dist/utils/schemaIndex.d.ts.map +1 -0
  562. package/dist/utils/schemaIndex.js +31 -0
  563. package/dist/utils/schemaIndex.js.map +1 -0
  564. package/dist/utils/schemaIndexCache.d.ts +6 -0
  565. package/dist/utils/schemaIndexCache.d.ts.map +1 -0
  566. package/dist/utils/schemaIndexCache.js +32 -0
  567. package/dist/utils/schemaIndexCache.js.map +1 -0
  568. package/dist/utils/schemaNormalize.d.ts +13 -0
  569. package/dist/utils/schemaNormalize.d.ts.map +1 -0
  570. package/dist/utils/schemaNormalize.js +17 -0
  571. package/dist/utils/schemaNormalize.js.map +1 -0
  572. package/dist/utils/store.d.ts +7 -0
  573. package/dist/utils/store.d.ts.map +1 -0
  574. package/dist/utils/store.js +6 -0
  575. package/dist/utils/store.js.map +1 -0
  576. package/dist/utils/timeOptions.d.ts +6 -0
  577. package/dist/utils/timeOptions.d.ts.map +1 -0
  578. package/dist/utils/timeOptions.js +42 -0
  579. package/dist/utils/timeOptions.js.map +1 -0
  580. package/dist/utils/tiptap.d.ts +13 -0
  581. package/dist/utils/tiptap.d.ts.map +1 -0
  582. package/dist/utils/tiptap.js +39 -0
  583. package/dist/utils/tiptap.js.map +1 -0
  584. package/dist/utils/translation.d.ts +5 -0
  585. package/dist/utils/translation.d.ts.map +1 -0
  586. package/dist/utils/translation.js +21 -0
  587. package/dist/utils/translation.js.map +1 -0
  588. package/dist/utils/validation.d.ts +4 -0
  589. package/dist/utils/validation.d.ts.map +1 -0
  590. package/dist/utils/validation.js +253 -0
  591. package/dist/utils/validation.js.map +1 -0
  592. package/package.json +167 -0
  593. package/vite-dev.mjs +56 -0
@@ -0,0 +1,555 @@
1
+ import { cn } from "../utils/classes.js";
2
+ import "../utils/index.js";
3
+ import { useTranslation } from "../hooks/useTranslation.js";
4
+ import "../hooks/index.js";
5
+ import { Tooltip, TooltipContent, TooltipTrigger } from "./Tooltip.js";
6
+ import { VariableDropdown } from "./tiptap/VariableDropdown.js";
7
+ import { LinkDropdown } from "./tiptap/LinkDropdown.js";
8
+ import { VariablePickerProvider } from "./tiptap/VariablePickerContext.js";
9
+ import { InlineVariablePickerPopover } from "./tiptap/InlineVariablePickerPopover.js";
10
+ import { useInlineVariablePicker } from "./tiptap/useInlineVariablePicker.js";
11
+ import { LinkBubbleMenu } from "./tiptap/LinkBubbleMenu.js";
12
+ import { InsertLinkDialog } from "./tiptap/InsertLinkDialog.js";
13
+ import { createTiptapExtensions, getFatalTiptapContentError, normalizeContentArray, valueToContent } from "./tiptap/editorConfig.js";
14
+ import "./index.js";
15
+ import { Button } from "./Button.js";
16
+ import { useCallback, useEffect, useMemo, useRef, useState } from "react";
17
+ import { getMarkRange } from "@tiptap/core";
18
+ import { jsx, jsxs } from "react/jsx-runtime";
19
+ import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
20
+ import { faAlignCenter, faAlignJustify, faAlignLeft, faAlignRight, faArrowRotateLeft, faArrowRotateRight, faBold, faBracketsCurly, faCode, faH1, faH2, faH3, faH4, faH5, faH6, faHighlighter, faItalic, faListOl, faListUl, faMinus, faQuoteRight, faStrikethrough, faSubscript, faSuperscript, faTextSlash, faTriangleExclamation, faUnderline } from "@fortawesome/pro-solid-svg-icons";
21
+ import { EditorContent, EditorContext, useEditor } from "@tiptap/react";
22
+ import { faFileDashedLine, faTable } from "@fortawesome/pro-regular-svg-icons";
23
+ //#region src/components/TiptapEditor.tsx
24
+ var MenuBar = ({ editor, buttons = ["bold", "italic"], linkOptions, linkSelectorStorageKeyPrefix, variableCategories = {}, variableCategoryLabels, variableCategoryOrder, variablePickerOpen, onVariablePickerOpenChange, openInsertLinkDialog }) => {
25
+ const t = useTranslation();
26
+ if (!editor) return null;
27
+ const hasAnyVariables = Object.values(variableCategories ?? {}).some((items) => {
28
+ return Array.isArray(items) && items.length > 0;
29
+ });
30
+ const visibleButtons = buttons.filter((buttonName) => {
31
+ if (buttonName === "variableTag") return hasAnyVariables;
32
+ return true;
33
+ });
34
+ const buttonConfig = {
35
+ bold: {
36
+ icon: FontAwesomeIcon,
37
+ iconProp: faBold,
38
+ title: t("Bold"),
39
+ action: () => {
40
+ return editor.chain().focus().toggleBold().run();
41
+ },
42
+ isActive: () => {
43
+ return editor.isActive("bold");
44
+ }
45
+ },
46
+ italic: {
47
+ icon: FontAwesomeIcon,
48
+ iconProp: faItalic,
49
+ title: t("Italic"),
50
+ action: () => {
51
+ return editor.chain().focus().toggleItalic().run();
52
+ },
53
+ isActive: () => {
54
+ return editor.isActive("italic");
55
+ }
56
+ },
57
+ underline: {
58
+ icon: FontAwesomeIcon,
59
+ iconProp: faUnderline,
60
+ title: t("Underline"),
61
+ action: () => {
62
+ return editor.chain().focus().toggleUnderline().run();
63
+ },
64
+ isActive: () => {
65
+ return editor.isActive("underline");
66
+ }
67
+ },
68
+ strikethrough: {
69
+ icon: FontAwesomeIcon,
70
+ iconProp: faStrikethrough,
71
+ title: t("Strikethrough"),
72
+ action: () => {
73
+ return editor.chain().focus().toggleStrike().run();
74
+ },
75
+ isActive: () => {
76
+ return editor.isActive("strike");
77
+ }
78
+ },
79
+ subscript: {
80
+ icon: FontAwesomeIcon,
81
+ iconProp: faSubscript,
82
+ title: t("Subscript"),
83
+ action: () => {
84
+ return editor.chain().focus().toggleSubscript().run();
85
+ },
86
+ isActive: () => {
87
+ return editor.isActive("subscript");
88
+ }
89
+ },
90
+ superscript: {
91
+ icon: FontAwesomeIcon,
92
+ iconProp: faSuperscript,
93
+ title: t("Superscript"),
94
+ action: () => {
95
+ return editor.chain().focus().toggleSuperscript().run();
96
+ },
97
+ isActive: () => {
98
+ return editor.isActive("superscript");
99
+ }
100
+ },
101
+ "unordered-list": {
102
+ icon: FontAwesomeIcon,
103
+ iconProp: faListUl,
104
+ title: t("Bullet List"),
105
+ action: () => {
106
+ return editor.chain().focus().toggleBulletList().run();
107
+ },
108
+ isActive: () => {
109
+ return editor.isActive("bulletList");
110
+ }
111
+ },
112
+ "ordered-list": {
113
+ icon: FontAwesomeIcon,
114
+ iconProp: faListOl,
115
+ title: t("Ordered List"),
116
+ action: () => {
117
+ return editor.chain().focus().toggleOrderedList().run();
118
+ },
119
+ isActive: () => {
120
+ return editor.isActive("orderedList");
121
+ }
122
+ },
123
+ blockquote: {
124
+ icon: FontAwesomeIcon,
125
+ iconProp: faQuoteRight,
126
+ title: t("Blockquote"),
127
+ action: () => {
128
+ return editor.chain().focus().toggleBlockquote().run();
129
+ },
130
+ isActive: () => {
131
+ return editor.isActive("blockquote");
132
+ }
133
+ },
134
+ highlight: {
135
+ icon: FontAwesomeIcon,
136
+ iconProp: faHighlighter,
137
+ title: t("Highlight"),
138
+ action: () => {
139
+ return editor.chain().focus().toggleHighlight().run();
140
+ },
141
+ isActive: () => {
142
+ return editor.isActive("highlight");
143
+ }
144
+ },
145
+ code: {
146
+ icon: FontAwesomeIcon,
147
+ iconProp: faBracketsCurly,
148
+ title: t("Inline Code"),
149
+ action: () => {
150
+ return editor.chain().focus().toggleCode().run();
151
+ },
152
+ isActive: () => {
153
+ return editor.isActive("code");
154
+ }
155
+ },
156
+ "code-block": {
157
+ icon: FontAwesomeIcon,
158
+ iconProp: faCode,
159
+ title: t("Code Block"),
160
+ action: () => {
161
+ return editor.chain().focus().toggleCodeBlock().run();
162
+ },
163
+ isActive: () => {
164
+ return editor.isActive("codeBlock");
165
+ }
166
+ },
167
+ hr: {
168
+ icon: FontAwesomeIcon,
169
+ iconProp: faMinus,
170
+ title: t("Horizontal Rule"),
171
+ action: () => {
172
+ return editor.chain().focus().setHorizontalRule().run();
173
+ }
174
+ },
175
+ "line-break": {
176
+ icon: FontAwesomeIcon,
177
+ iconProp: faFileDashedLine,
178
+ title: t("Line Break"),
179
+ action: () => {
180
+ return editor.chain().focus().setHardBreak().run();
181
+ }
182
+ },
183
+ "align-left": {
184
+ icon: FontAwesomeIcon,
185
+ iconProp: faAlignLeft,
186
+ title: t("Align Left"),
187
+ action: () => {
188
+ return editor.chain().focus().setTextAlign("left").run();
189
+ },
190
+ isActive: () => {
191
+ return editor.isActive({ textAlign: "left" });
192
+ }
193
+ },
194
+ "align-center": {
195
+ icon: FontAwesomeIcon,
196
+ iconProp: faAlignCenter,
197
+ title: t("Align Center"),
198
+ action: () => {
199
+ return editor.chain().focus().setTextAlign("center").run();
200
+ },
201
+ isActive: () => {
202
+ return editor.isActive({ textAlign: "center" });
203
+ }
204
+ },
205
+ "align-right": {
206
+ icon: FontAwesomeIcon,
207
+ iconProp: faAlignRight,
208
+ title: t("Align Right"),
209
+ action: () => {
210
+ return editor.chain().focus().setTextAlign("right").run();
211
+ },
212
+ isActive: () => {
213
+ return editor.isActive({ textAlign: "right" });
214
+ }
215
+ },
216
+ "align-justify": {
217
+ icon: FontAwesomeIcon,
218
+ iconProp: faAlignJustify,
219
+ title: t("Justify"),
220
+ action: () => {
221
+ return editor.chain().focus().setTextAlign("justify").run();
222
+ },
223
+ isActive: () => {
224
+ return editor.isActive({ textAlign: "justify" });
225
+ }
226
+ },
227
+ "clear-format": {
228
+ icon: FontAwesomeIcon,
229
+ iconProp: faTextSlash,
230
+ title: t("Clear Format"),
231
+ action: () => {
232
+ return editor.chain().focus().clearNodes().unsetAllMarks().run();
233
+ }
234
+ },
235
+ undo: {
236
+ icon: FontAwesomeIcon,
237
+ iconProp: faArrowRotateLeft,
238
+ title: t("Undo"),
239
+ action: () => {
240
+ return editor.chain().focus().undo().run();
241
+ }
242
+ },
243
+ redo: {
244
+ icon: FontAwesomeIcon,
245
+ iconProp: faArrowRotateRight,
246
+ title: t("Redo"),
247
+ action: () => {
248
+ return editor.chain().focus().redo().run();
249
+ }
250
+ },
251
+ link: {
252
+ title: t("Link"),
253
+ isActive: () => {
254
+ return editor.isActive("link");
255
+ },
256
+ isDropdown: true
257
+ },
258
+ table: {
259
+ icon: FontAwesomeIcon,
260
+ iconProp: faTable,
261
+ title: t("Insert Table"),
262
+ action: () => {
263
+ return editor.chain().focus().insertTable({
264
+ rows: 3,
265
+ cols: 3,
266
+ withHeaderRow: true
267
+ }).run();
268
+ }
269
+ },
270
+ variableTag: {
271
+ title: t("Insert Variable"),
272
+ isActive: () => {
273
+ return editor.isActive("variableTag");
274
+ },
275
+ isDropdown: true
276
+ }
277
+ };
278
+ [
279
+ 1,
280
+ 2,
281
+ 3,
282
+ 4,
283
+ 5,
284
+ 6
285
+ ].forEach((level) => {
286
+ buttonConfig[`h${level}`] = {
287
+ icon: FontAwesomeIcon,
288
+ iconProp: {
289
+ 1: faH1,
290
+ 2: faH2,
291
+ 3: faH3,
292
+ 4: faH4,
293
+ 5: faH5,
294
+ 6: faH6
295
+ }[level],
296
+ title: t("Heading {level}", { level: String(level) }),
297
+ action: () => {
298
+ return editor.chain().focus().toggleHeading({ level }).run();
299
+ },
300
+ isActive: () => {
301
+ return editor.isActive("heading", { level });
302
+ }
303
+ };
304
+ });
305
+ const resolveIsActive = (config) => {
306
+ if (!config.isActive) return false;
307
+ return typeof config.isActive === "function" ? config.isActive() : config.isActive;
308
+ };
309
+ const renderedButtons = visibleButtons.map((buttonName) => {
310
+ const config = buttonConfig[buttonName];
311
+ if (!config) return null;
312
+ if (config.isDropdown && buttonName === "link") return /* @__PURE__ */ jsx(LinkDropdown, {
313
+ editor,
314
+ linkOptions,
315
+ linkSelectorStorageKeyPrefix,
316
+ openInsertLinkDialog,
317
+ title: config.title
318
+ }, buttonName);
319
+ if (config.isDropdown && buttonName === "variableTag") return /* @__PURE__ */ jsx(VariableDropdown, {
320
+ editor,
321
+ variableCategories,
322
+ variableCategoryLabels,
323
+ variableCategoryOrder,
324
+ title: config.title,
325
+ open: variablePickerOpen,
326
+ onOpenChange: onVariablePickerOpenChange
327
+ }, buttonName);
328
+ const Icon = config.icon;
329
+ return /* @__PURE__ */ jsxs(Tooltip, { children: [/* @__PURE__ */ jsx(TooltipTrigger, { render: /* @__PURE__ */ jsx(Button, {
330
+ variant: "transparent",
331
+ onClick: config.action,
332
+ className: cn("w-[32px] h-[32px]", "text-[#1c2e36]", "hover:bg-slate-100!", resolveIsActive(config) && "bg-slate-250! hover:bg-slate-250!"),
333
+ children: /* @__PURE__ */ jsx(Icon, {
334
+ icon: config.iconProp,
335
+ className: "size-4"
336
+ })
337
+ }) }), /* @__PURE__ */ jsx(TooltipContent, {
338
+ sideOffset: 4,
339
+ children: config.title
340
+ })] }, buttonName);
341
+ }).filter(Boolean);
342
+ if (renderedButtons.length === 0) return null;
343
+ return /* @__PURE__ */ jsx("div", {
344
+ className: cn("flex flex-wrap relative z-10 gap-1 px-[8px] py-[4px]", "border-b border-[rgba(96,125,159,0.4)] bg-white", "shadow-[0_2px_3px_rgba(49,49,93,.07)]"),
345
+ children: renderedButtons
346
+ });
347
+ };
348
+ var TiptapEditor = ({ value = "", onChange, buttons = ["bold", "italic"], tableOptions = [], linkOptions, linkSelectorStorageKeyPrefix, variableCategories = {}, variableCategoryLabels, variableCategoryOrder, variableTransformerRegistry, variablePickerTriggerCharacters = ["@"], toolbarContent, rows, className, isInvalid, disabled = false, readOnly = false, invalidContentMessage, ...props }) => {
349
+ useTranslation();
350
+ const wrapperRef = useRef(null);
351
+ const handleKeyDownRef = useRef(null);
352
+ const extensions = useMemo(() => {
353
+ return createTiptapExtensions({ trailingCursorText: "⁠" });
354
+ }, []);
355
+ const [isVariablePickerOpen, setIsVariablePickerOpen] = useState(false);
356
+ const hasAnyVariables = useMemo(() => {
357
+ return Object.values(variableCategories || {}).some((variables) => {
358
+ return Array.isArray(variables) && variables.length > 0;
359
+ });
360
+ }, [variableCategories]);
361
+ const editorContent = useMemo(() => {
362
+ return valueToContent(value, { trailingCursorText: "⁠" });
363
+ }, [value]);
364
+ const contentError = useMemo(() => {
365
+ const detectedError = getFatalTiptapContentError(value);
366
+ return detectedError ? invalidContentMessage || detectedError : "";
367
+ }, [invalidContentMessage, value]);
368
+ const serializeContent = (content) => {
369
+ return normalizeContentArray(content);
370
+ };
371
+ const editor = useEditor({
372
+ extensions,
373
+ content: contentError ? null : editorContent,
374
+ editable: !disabled && !readOnly,
375
+ editorProps: { handleKeyDown: (view, event) => {
376
+ return handleKeyDownRef.current?.(view, event) ?? false;
377
+ } },
378
+ onUpdate: ({ editor }) => {
379
+ if (onChange) onChange(serializeContent(editor.getJSON().content));
380
+ }
381
+ });
382
+ const inlinePicker = useInlineVariablePicker(editor, {
383
+ variableCategories,
384
+ variableCategoryLabels,
385
+ variableCategoryOrder,
386
+ variablePickerTriggerCharacters,
387
+ disabled,
388
+ readOnly,
389
+ wrapperRef,
390
+ onOpenDropdown: () => {
391
+ return setIsVariablePickerOpen(true);
392
+ }
393
+ });
394
+ useEffect(() => {
395
+ handleKeyDownRef.current = inlinePicker.handleKeyDown;
396
+ }, [inlinePicker.handleKeyDown]);
397
+ const [insertLinkDialogOpen, setInsertLinkDialogOpen] = useState(false);
398
+ const [insertLinkInitialValues, setInsertLinkInitialValues] = useState();
399
+ const editorMinHeight = useMemo(() => {
400
+ return `${Math.max(1, Number(rows || 0)) * 24 + 32}px`;
401
+ }, [rows]);
402
+ useEffect(() => {
403
+ if (!editor?.view?.dom) return;
404
+ editor.view.dom.style.minHeight = editorMinHeight;
405
+ }, [editor, editorMinHeight]);
406
+ const openInsertLinkDialog = useCallback((initial) => {
407
+ if (initial) {
408
+ const openInNewTab = editor?.isActive("link") ? editor.getAttributes("link").target === "_blank" : false;
409
+ setInsertLinkInitialValues({
410
+ ...initial,
411
+ openInNewTab
412
+ });
413
+ } else setInsertLinkInitialValues(void 0);
414
+ setInsertLinkDialogOpen(true);
415
+ }, [editor]);
416
+ const insertLink = useCallback((params) => {
417
+ if (!editor) return;
418
+ const { url, text, openInNewTab, from: fromParam, to: toParam } = params;
419
+ const chain = editor.chain().focus();
420
+ const linkAttrs = { href: url };
421
+ if (openInNewTab) linkAttrs.target = "_blank";
422
+ const content = {
423
+ type: "text",
424
+ text: text.trim() || url,
425
+ marks: [{
426
+ type: "link",
427
+ attrs: linkAttrs
428
+ }]
429
+ };
430
+ if (typeof fromParam === "number" && typeof toParam === "number" && fromParam !== toParam) chain.insertContentAt({
431
+ from: fromParam,
432
+ to: toParam
433
+ }, [content]).run();
434
+ else {
435
+ const { from, to } = editor.state.selection;
436
+ if (editor.state.doc.textBetween(from, to, " ")) chain.extendMarkRange("link").setLink(linkAttrs).run();
437
+ else chain.insertContent([content]).run();
438
+ }
439
+ }, [editor]);
440
+ useEffect(() => {
441
+ if (editor) {
442
+ const newContent = contentError ? null : editorContent;
443
+ const currentContent = editor.getJSON();
444
+ if (JSON.stringify(newContent) !== JSON.stringify(currentContent)) editor.commands.setContent(newContent);
445
+ }
446
+ }, [
447
+ contentError,
448
+ editor,
449
+ editorContent
450
+ ]);
451
+ const handleLinkBubbleEdit = useCallback(() => {
452
+ if (!editor) return;
453
+ const { href } = editor.getAttributes("link");
454
+ const { state } = editor;
455
+ const linkType = state.schema.marks.link;
456
+ const range = getMarkRange(state.selection.$from, linkType);
457
+ const from = range?.from ?? state.selection.from;
458
+ const to = range?.to ?? state.selection.to;
459
+ openInsertLinkDialog({
460
+ url: href,
461
+ text: editor.state.doc.textBetween(from, to, " "),
462
+ from,
463
+ to
464
+ });
465
+ }, [editor, openInsertLinkDialog]);
466
+ return /* @__PURE__ */ jsx("div", {
467
+ className: cn("border border-[rgba(96,125,159,0.4)] rounded-sm overflow-hidden", isInvalid && ["border-rose-600!", "[focus-visible:shadow-[0_0_0_1px_var(--color-rose-600),0_0_4px_0_hsl(from_var(--color-rose-600)_h_s_l/0.7)]!"], className),
468
+ children: /* @__PURE__ */ jsxs(VariablePickerProvider, {
469
+ variableCategories,
470
+ variableCategoryLabels,
471
+ variableCategoryOrder,
472
+ variableTransformerRegistry,
473
+ children: [/* @__PURE__ */ jsxs(EditorContext.Provider, {
474
+ value: { editor },
475
+ children: [
476
+ toolbarContent ? toolbarContent({
477
+ editor,
478
+ variableCategories,
479
+ variableCategoryLabels,
480
+ variableCategoryOrder,
481
+ variablePickerOpen: isVariablePickerOpen,
482
+ onVariablePickerOpenChange: setIsVariablePickerOpen
483
+ }) : /* @__PURE__ */ jsx(MenuBar, {
484
+ editor,
485
+ buttons,
486
+ tableOptions,
487
+ linkOptions,
488
+ linkSelectorStorageKeyPrefix,
489
+ variableCategories,
490
+ variableCategoryLabels,
491
+ variableCategoryOrder,
492
+ variablePickerOpen: isVariablePickerOpen,
493
+ onVariablePickerOpenChange: setIsVariablePickerOpen,
494
+ openInsertLinkDialog
495
+ }),
496
+ /* @__PURE__ */ jsxs("div", {
497
+ ref: wrapperRef,
498
+ className: "relative",
499
+ children: [
500
+ contentError && /* @__PURE__ */ jsxs("div", {
501
+ className: "flex items-start gap-2 border-b border-rose-200 bg-rose-50 px-4 py-2 text-sm text-rose-800",
502
+ children: [/* @__PURE__ */ jsx(FontAwesomeIcon, {
503
+ icon: faTriangleExclamation,
504
+ className: "mt-0.5 size-3.5 shrink-0"
505
+ }), /* @__PURE__ */ jsx("p", { children: contentError })]
506
+ }),
507
+ /* @__PURE__ */ jsx(EditorContent, {
508
+ editor,
509
+ className: cn("[&_.ProseMirror]:outline-none", "[&_.ProseMirror]:min-h-8", "[&_.ProseMirror]:p-4", "[&_.ProseMirror]:bg-[#fbfcfe]", "[&_.ProseMirror]:shadow-none", "[&_.ProseMirror]:whitespace-pre-wrap", "[&_.ProseMirror_p]:m-0 [&_.ProseMirror_p]:mb-2", "[&_.ProseMirror_p:last-child]:mb-0", "[&_.ProseMirror_h1]:text-xl [&_.ProseMirror_h1]:font-bold [&_.ProseMirror_h1]:mb-2", "[&_.ProseMirror_h2]:text-lg [&_.ProseMirror_h2]:font-semibold [&_.ProseMirror_h2]:mb-2", "[&_.ProseMirror_ul]:list-disc [&_.ProseMirror_ul]:pl-5 [&_.ProseMirror_ul]:mb-2", "[&_.ProseMirror_ol]:list-decimal [&_.ProseMirror_ol]:pl-5 [&_.ProseMirror_ol]:mb-2", "[&_.ProseMirror_li]:mb-1", "[&_.ProseMirror_hr]:border-slate-300 [&_.ProseMirror_hr]:my-4", "[&_.ProseMirror_code]:bg-slate-100 [&_.ProseMirror_code]:px-1 [&_.ProseMirror_code]:py-0.5 [&_.ProseMirror_code]:rounded [&_.ProseMirror_code]:text-sm", "[&_.ProseMirror_pre]:bg-slate-100 [&_.ProseMirror_pre]:p-3 [&_.ProseMirror_pre]:rounded [&_.ProseMirror_pre]:overflow-x-auto [&_.ProseMirror_pre]:mb-2", "[&_.ProseMirror_blockquote]:border-l-4 [&_.ProseMirror_blockquote]:border-slate-300 [&_.ProseMirror_blockquote]:pl-4 [&_.ProseMirror_blockquote]:italic [&_.ProseMirror_blockquote]:text-slate-600 [&_.ProseMirror_blockquote]:mb-2", "[&_.ProseMirror_table]:border-collapse [&_.ProseMirror_table]:w-full [&_.ProseMirror_table]:mb-2", "[&_.ProseMirror_th]:border [&_.ProseMirror_th]:border-slate-300 [&_.ProseMirror_th]:px-3 [&_.ProseMirror_th]:py-2 [&_.ProseMirror_th]:bg-slate-100 [&_.ProseMirror_th]:text-left", "[&_.ProseMirror_td]:border [&_.ProseMirror_td]:border-slate-300 [&_.ProseMirror_td]:px-3 [&_.ProseMirror_td]:py-2", "[&_.ProseMirror_a]:text-blue-600 [&_.ProseMirror_a]:underline [&_.ProseMirror_a]:cursor-pointer"),
510
+ ...props
511
+ }),
512
+ hasAnyVariables && !readOnly && /* @__PURE__ */ jsx(InlineVariablePickerPopover, {
513
+ open: inlinePicker.state.open,
514
+ onOpenChange: (open) => {
515
+ if (!open) inlinePicker.closePicker();
516
+ },
517
+ position: {
518
+ top: inlinePicker.state.top,
519
+ left: inlinePicker.state.left
520
+ },
521
+ isChildMode: inlinePicker.filteredVariables.isChildMode,
522
+ query: inlinePicker.state.query,
523
+ onQueryChange: inlinePicker.setQuery,
524
+ filteredVariables: inlinePicker.filteredVariables,
525
+ onSelect: inlinePicker.handleSelect,
526
+ onBack: inlinePicker.goBack
527
+ })
528
+ ]
529
+ }),
530
+ buttons.includes("link") && editor && /* @__PURE__ */ jsx(LinkBubbleMenu, {
531
+ editor,
532
+ onEdit: handleLinkBubbleEdit,
533
+ dialogOpen: insertLinkDialogOpen
534
+ })
535
+ ]
536
+ }), /* @__PURE__ */ jsx(InsertLinkDialog, {
537
+ open: insertLinkDialogOpen,
538
+ onOpenChange: setInsertLinkDialogOpen,
539
+ initialValues: insertLinkInitialValues,
540
+ onInsert: (values) => {
541
+ insertLink({
542
+ ...values,
543
+ from: insertLinkInitialValues?.from,
544
+ to: insertLinkInitialValues?.to
545
+ });
546
+ setInsertLinkDialogOpen(false);
547
+ }
548
+ })]
549
+ })
550
+ });
551
+ };
552
+ //#endregion
553
+ export { TiptapEditor };
554
+
555
+ //# sourceMappingURL=TiptapEditor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TiptapEditor.js","names":[],"sources":["../../src/components/TiptapEditor.tsx"],"sourcesContent":["import {\n useEffect, useCallback, useMemo, useRef, useState,\n} from 'react';\nimport type { ReactNode } from 'react';\nimport { useEditor, EditorContent, EditorContext } from '@tiptap/react';\nimport { getMarkRange, type Editor as TiptapEditorInstance } from '@tiptap/core';\n\nimport { Button } from '@verbb/plugin-kit-react/components';\nimport { LinkDropdown } from './tiptap/LinkDropdown';\nimport type { LinkOptions, LinkOptionsInput } from './tiptap/LinkDropdown';\nimport { VariableDropdown } from './tiptap/VariableDropdown';\nimport type { VariableOption, VariableCategories } from './tiptap/VariableDropdown';\nimport type { VariableTransformerRegistry } from './tiptap/VariablePickerContext';\nimport { VariablePickerProvider } from './tiptap/VariablePickerContext';\nimport { InlineVariablePickerPopover } from './tiptap/InlineVariablePickerPopover';\nimport { useInlineVariablePicker } from './tiptap/useInlineVariablePicker';\n\nexport type {\n LinkOptions, LinkOptionsInput, VariableOption, VariableCategories,\n};\nimport { LinkBubbleMenu } from './tiptap/LinkBubbleMenu';\nimport { InsertLinkDialog } from './tiptap/InsertLinkDialog';\n\nimport {\n createTiptapExtensions,\n getFatalTiptapContentError,\n normalizeContentArray,\n valueToContent,\n} from './tiptap/editorConfig';\n\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\n\nimport {\n faAlignCenter,\n faAlignJustify,\n faAlignLeft,\n faAlignRight,\n faArrowRotateLeft,\n faArrowRotateRight,\n faBold,\n faBracketsCurly,\n faCode,\n faH1,\n faH2,\n faH3,\n faH4,\n faH5,\n faH6,\n faHighlighter,\n faItalic,\n faListOl,\n faListUl,\n faMinus,\n faQuoteRight,\n faStrikethrough,\n faSubscript,\n faSuperscript,\n faTriangleExclamation,\n\n faUnderline,\n faTextSlash,\n} from '@fortawesome/pro-solid-svg-icons';\n\nimport {\n faFileDashedLine,\n faTable,\n} from '@fortawesome/pro-regular-svg-icons';\n\nimport { cn } from '@verbb/plugin-kit-react/utils';\nimport { useTranslation } from '@verbb/plugin-kit-react/hooks';\nimport { Tooltip, TooltipContent, TooltipTrigger } from '@verbb/plugin-kit-react/components/Tooltip';\n\nconst MenuBar = ({\n editor,\n buttons = ['bold', 'italic'],\n linkOptions,\n linkSelectorStorageKeyPrefix,\n variableCategories = {},\n variableCategoryLabels,\n variableCategoryOrder,\n variablePickerOpen,\n onVariablePickerOpenChange,\n openInsertLinkDialog,\n}: {\n editor: TiptapEditorInstance | null | undefined;\n buttons?: string[];\n linkOptions?: LinkOptionsInput;\n linkSelectorStorageKeyPrefix?: string;\n variableCategories?: VariableCategories;\n variableCategoryLabels?: Record<string, string>;\n variableCategoryOrder?: string[];\n variablePickerOpen?: boolean;\n onVariablePickerOpenChange?: (open: boolean) => void;\n openInsertLinkDialog?: (initial?: { url?: string; text?: string; from?: number; to?: number }) => void;\n}) => {\n const t = useTranslation();\n\n if (!editor) {\n return null;\n }\n\n const hasAnyVariables = Object.values(variableCategories ?? {}).some(\n items => {\n return Array.isArray(items) && items.length > 0;\n },\n );\n\n const visibleButtons = buttons.filter((buttonName) => {\n if (buttonName === 'variableTag') {\n return hasAnyVariables;\n }\n\n return true;\n });\n\n const buttonConfig = {\n bold: {\n icon: FontAwesomeIcon,\n iconProp: faBold,\n title: t('Bold'),\n action: () => { return editor.chain().focus().toggleBold().run(); },\n isActive: () => { return editor.isActive('bold'); },\n },\n italic: {\n icon: FontAwesomeIcon,\n iconProp: faItalic,\n title: t('Italic'),\n action: () => { return editor.chain().focus().toggleItalic().run(); },\n isActive: () => { return editor.isActive('italic'); },\n },\n underline: {\n icon: FontAwesomeIcon,\n iconProp: faUnderline,\n title: t('Underline'),\n action: () => { return editor.chain().focus().toggleUnderline().run(); },\n isActive: () => { return editor.isActive('underline'); },\n },\n strikethrough: {\n icon: FontAwesomeIcon,\n iconProp: faStrikethrough,\n title: t('Strikethrough'),\n action: () => { return editor.chain().focus().toggleStrike().run(); },\n isActive: () => { return editor.isActive('strike'); },\n },\n subscript: {\n icon: FontAwesomeIcon,\n iconProp: faSubscript,\n title: t('Subscript'),\n action: () => { return editor.chain().focus().toggleSubscript().run(); },\n isActive: () => { return editor.isActive('subscript'); },\n },\n superscript: {\n icon: FontAwesomeIcon,\n iconProp: faSuperscript,\n title: t('Superscript'),\n action: () => { return editor.chain().focus().toggleSuperscript().run(); },\n isActive: () => { return editor.isActive('superscript'); },\n },\n 'unordered-list': {\n icon: FontAwesomeIcon,\n iconProp: faListUl,\n title: t('Bullet List'),\n action: () => { return editor.chain().focus().toggleBulletList().run(); },\n isActive: () => { return editor.isActive('bulletList'); },\n },\n 'ordered-list': {\n icon: FontAwesomeIcon,\n iconProp: faListOl,\n title: t('Ordered List'),\n action: () => { return editor.chain().focus().toggleOrderedList().run(); },\n isActive: () => { return editor.isActive('orderedList'); },\n },\n blockquote: {\n icon: FontAwesomeIcon,\n iconProp: faQuoteRight,\n title: t('Blockquote'),\n action: () => { return editor.chain().focus().toggleBlockquote().run(); },\n isActive: () => { return editor.isActive('blockquote'); },\n },\n highlight: {\n icon: FontAwesomeIcon,\n iconProp: faHighlighter,\n title: t('Highlight'),\n action: () => { return editor.chain().focus().toggleHighlight().run(); },\n isActive: () => { return editor.isActive('highlight'); },\n },\n code: {\n icon: FontAwesomeIcon,\n iconProp: faBracketsCurly,\n title: t('Inline Code'),\n action: () => { return editor.chain().focus().toggleCode().run(); },\n isActive: () => { return editor.isActive('code'); },\n },\n 'code-block': {\n icon: FontAwesomeIcon,\n iconProp: faCode,\n title: t('Code Block'),\n action: () => { return editor.chain().focus().toggleCodeBlock().run(); },\n isActive: () => { return editor.isActive('codeBlock'); },\n },\n hr: {\n icon: FontAwesomeIcon,\n iconProp: faMinus,\n title: t('Horizontal Rule'),\n action: () => { return editor.chain().focus().setHorizontalRule().run(); },\n },\n 'line-break': {\n icon: FontAwesomeIcon,\n iconProp: faFileDashedLine,\n title: t('Line Break'),\n action: () => { return editor.chain().focus().setHardBreak().run(); },\n },\n 'align-left': {\n icon: FontAwesomeIcon,\n iconProp: faAlignLeft,\n title: t('Align Left'),\n action: () => { return editor.chain().focus().setTextAlign('left').run(); },\n isActive: () => { return editor.isActive({ textAlign: 'left' }); },\n },\n 'align-center': {\n icon: FontAwesomeIcon,\n iconProp: faAlignCenter,\n title: t('Align Center'),\n action: () => { return editor.chain().focus().setTextAlign('center').run(); },\n isActive: () => { return editor.isActive({ textAlign: 'center' }); },\n },\n 'align-right': {\n icon: FontAwesomeIcon,\n iconProp: faAlignRight,\n title: t('Align Right'),\n action: () => { return editor.chain().focus().setTextAlign('right').run(); },\n isActive: () => { return editor.isActive({ textAlign: 'right' }); },\n },\n 'align-justify': {\n icon: FontAwesomeIcon,\n iconProp: faAlignJustify,\n title: t('Justify'),\n action: () => { return editor.chain().focus().setTextAlign('justify').run(); },\n isActive: () => { return editor.isActive({ textAlign: 'justify' }); },\n },\n 'clear-format': {\n icon: FontAwesomeIcon,\n iconProp: faTextSlash,\n title: t('Clear Format'),\n action: () => { return editor.chain().focus().clearNodes().unsetAllMarks().run(); },\n },\n undo: {\n icon: FontAwesomeIcon,\n iconProp: faArrowRotateLeft,\n title: t('Undo'),\n action: () => { return editor.chain().focus().undo().run(); },\n },\n redo: {\n icon: FontAwesomeIcon,\n iconProp: faArrowRotateRight,\n title: t('Redo'),\n action: () => { return editor.chain().focus().redo().run(); },\n },\n link: {\n title: t('Link'),\n isActive: () => { return editor.isActive('link'); },\n isDropdown: true,\n },\n table: {\n icon: FontAwesomeIcon,\n iconProp: faTable,\n title: t('Insert Table'),\n action: () => { return editor.chain().focus().insertTable({ rows: 3, cols: 3, withHeaderRow: true }).run(); },\n },\n variableTag: {\n title: t('Insert Variable'),\n isActive: () => { return editor.isActive('variableTag'); },\n isDropdown: true,\n },\n };\n\n // Add heading levels h1–h6\n [1, 2, 3, 4, 5, 6].forEach((level) => {\n buttonConfig[`h${level}`] = {\n icon: FontAwesomeIcon,\n iconProp: {\n 1: faH1,\n 2: faH2,\n 3: faH3,\n 4: faH4,\n 5: faH5,\n 6: faH6,\n }[level],\n title: t('Heading {level}', { level: String(level) }),\n action: () => { return editor.chain().focus().toggleHeading({ level }).run(); },\n isActive: () => { return editor.isActive('heading', { level }); },\n };\n });\n\n const resolveIsActive = (config) => {\n if (!config.isActive) {\n return false;\n }\n return typeof config.isActive === 'function' ? config.isActive() : config.isActive;\n };\n\n const renderedButtons = visibleButtons\n .map((buttonName) => {\n const config = buttonConfig[buttonName];\n\n if (!config) { return null; }\n\n if (config.isDropdown && buttonName === 'link') {\n return (\n <LinkDropdown\n key={buttonName}\n editor={editor}\n linkOptions={linkOptions}\n linkSelectorStorageKeyPrefix={linkSelectorStorageKeyPrefix}\n openInsertLinkDialog={openInsertLinkDialog!}\n title={config.title}\n />\n );\n }\n\n if (config.isDropdown && buttonName === 'variableTag') {\n return (\n <VariableDropdown\n key={buttonName}\n editor={editor}\n variableCategories={variableCategories}\n variableCategoryLabels={variableCategoryLabels}\n variableCategoryOrder={variableCategoryOrder}\n title={config.title}\n open={variablePickerOpen}\n onOpenChange={onVariablePickerOpenChange}\n />\n );\n }\n\n const Icon = config.icon;\n\n return (\n <Tooltip key={buttonName}>\n <TooltipTrigger\n render={\n <Button\n variant=\"transparent\"\n onClick={config.action}\n className={cn(\n 'w-[32px] h-[32px]',\n 'text-[#1c2e36]',\n 'hover:bg-slate-100!',\n resolveIsActive(config) && 'bg-slate-250! hover:bg-slate-250!',\n )}\n >\n <Icon icon={config.iconProp} className=\"size-4\" />\n </Button>\n }\n />\n <TooltipContent sideOffset={4}>{config.title}</TooltipContent>\n </Tooltip>\n );\n })\n .filter(Boolean);\n\n if (renderedButtons.length === 0) {\n return null;\n }\n\n return (\n <div className={cn(\n 'flex flex-wrap relative z-10 gap-1 px-[8px] py-[4px]',\n 'border-b border-[rgba(96,125,159,0.4)] bg-white',\n 'shadow-[0_2px_3px_rgba(49,49,93,.07)]',\n )}>\n {renderedButtons}\n </div>\n );\n};\n\ntype TiptapEditorProps = {\n value?: unknown;\n onChange?: (value: unknown) => void;\n placeholder?: string;\n buttons?: string[];\n tableOptions?: Array<{ rows?: number; cols?: number; withHeaderRow?: boolean }>;\n linkOptions?: LinkOptionsInput;\n linkSelectorStorageKeyPrefix?: string;\n variableCategories?: VariableCategories;\n variableCategoryLabels?: Record<string, string>;\n variableCategoryOrder?: string[];\n variableTransformerRegistry?: VariableTransformerRegistry;\n variablePickerTriggerCharacters?: string[];\n toolbarContent?: (params: {\n editor: TiptapEditorInstance | null;\n variableCategories: VariableCategories;\n variableCategoryLabels?: Record<string, string>;\n variableCategoryOrder?: string[];\n variablePickerOpen: boolean;\n onVariablePickerOpenChange: (open: boolean) => void;\n }) => ReactNode;\n rows?: number;\n className?: string;\n isInvalid?: boolean;\n disabled?: boolean;\n readOnly?: boolean;\n invalidContentMessage?: string;\n [key: string]: unknown;\n};\n\nexport const TiptapEditor = ({\n value = '',\n onChange,\n buttons = ['bold', 'italic'],\n tableOptions = [],\n linkOptions,\n linkSelectorStorageKeyPrefix,\n variableCategories = {},\n variableCategoryLabels,\n variableCategoryOrder,\n variableTransformerRegistry,\n variablePickerTriggerCharacters = ['@'],\n toolbarContent,\n rows,\n className,\n isInvalid,\n disabled = false,\n readOnly = false,\n invalidContentMessage,\n ...props\n}: TiptapEditorProps) => {\n // Ensure value is a string and handle null/undefined\n // const safeValue = value || '';\n const t = useTranslation();\n\n const wrapperRef = useRef<HTMLDivElement | null>(null);\n const handleKeyDownRef = useRef<import('./tiptap/useInlineVariablePicker').InlineVariablePickerHandleKeyDown | null>(null);\n\n const extensions = useMemo(() => {\n return createTiptapExtensions({ trailingCursorText: '\\u2060' });\n }, []);\n const [isVariablePickerOpen, setIsVariablePickerOpen] = useState(false);\n const hasAnyVariables = useMemo(() => {\n return Object.values(variableCategories || {}).some((variables) => {\n return Array.isArray(variables) && variables.length > 0;\n });\n }, [variableCategories]);\n const editorContent = useMemo(() => {\n return valueToContent(value, { trailingCursorText: '\\u2060' });\n }, [value]);\n const contentError = useMemo(() => {\n const detectedError = getFatalTiptapContentError(value);\n return detectedError ? (invalidContentMessage || detectedError) : '';\n }, [invalidContentMessage, value]);\n\n const serializeContent = (content: unknown) => {\n return normalizeContentArray(content);\n };\n\n const editor = useEditor({\n extensions,\n content: contentError ? null : editorContent,\n editable: !disabled && !readOnly,\n editorProps: {\n handleKeyDown: (view, event) => {\n return handleKeyDownRef.current?.(view, event) ?? false;\n },\n },\n onUpdate: ({ editor }) => {\n if (onChange) {\n onChange(serializeContent(editor.getJSON().content));\n }\n },\n });\n\n const inlinePicker = useInlineVariablePicker(editor, {\n variableCategories,\n variableCategoryLabels,\n variableCategoryOrder,\n variablePickerTriggerCharacters,\n disabled,\n readOnly,\n wrapperRef,\n onOpenDropdown: () => {\n return setIsVariablePickerOpen(true);\n },\n });\n\n useEffect(() => {\n handleKeyDownRef.current = inlinePicker.handleKeyDown;\n }, [inlinePicker.handleKeyDown]);\n\n const [insertLinkDialogOpen, setInsertLinkDialogOpen] = useState(false);\n const [insertLinkInitialValues, setInsertLinkInitialValues] = useState<{ url?: string; text?: string; openInNewTab?: boolean; from?: number; to?: number } | undefined>();\n const editorMinHeight = useMemo(() => {\n const normalizedRows = Math.max(1, Number(rows || 0));\n const lineHeight = 24;\n const verticalPadding = 32;\n\n return `${(normalizedRows * lineHeight) + verticalPadding}px`;\n }, [rows]);\n\n useEffect(() => {\n if (!editor?.view?.dom) {\n return;\n }\n\n editor.view.dom.style.minHeight = editorMinHeight;\n }, [editor, editorMinHeight]);\n\n const openInsertLinkDialog = useCallback((initial?: { url?: string; text?: string; from?: number; to?: number }) => {\n if (initial) {\n const openInNewTab = editor?.isActive('link') ? editor.getAttributes('link').target === '_blank' : false;\n setInsertLinkInitialValues({ ...initial, openInNewTab });\n } else {\n setInsertLinkInitialValues(undefined);\n }\n setInsertLinkDialogOpen(true);\n }, [editor]);\n\n const insertLink = useCallback(\n (params: { url: string; text: string; openInNewTab: boolean; from?: number; to?: number }) => {\n if (!editor) { return; }\n const {\n url, text, openInNewTab, from: fromParam, to: toParam,\n } = params;\n const chain = editor.chain().focus();\n const linkAttrs: { href: string; target?: string | null } = { href: url };\n if (openInNewTab) {\n linkAttrs.target = '_blank';\n }\n\n const content = {\n type: 'text',\n text: text.trim() || url,\n marks: [{ type: 'link', attrs: linkAttrs }],\n };\n\n if (typeof fromParam === 'number' && typeof toParam === 'number' && fromParam !== toParam) {\n chain.insertContentAt({ from: fromParam, to: toParam }, [content]).run();\n } else {\n const { from, to } = editor.state.selection;\n const selectedText = editor.state.doc.textBetween(from, to, ' ');\n if (selectedText) {\n chain.extendMarkRange('link').setLink(linkAttrs).run();\n } else {\n chain.insertContent([content]).run();\n }\n }\n },\n [editor],\n );\n\n // Watch for value changes and update editor content\n useEffect(() => {\n if (editor) {\n const newContent = contentError ? null : editorContent;\n const currentContent = editor.getJSON();\n\n // Only update if content has actually changed\n if (JSON.stringify(newContent) !== JSON.stringify(currentContent)) {\n editor.commands.setContent(newContent);\n }\n }\n }, [contentError, editor, editorContent]);\n\n const handleLinkBubbleEdit = useCallback(() => {\n if (!editor) { return; }\n const { href } = editor.getAttributes('link');\n const { state } = editor;\n const linkType = state.schema.marks.link;\n const range = getMarkRange(state.selection.$from, linkType);\n const from = range?.from ?? state.selection.from;\n const to = range?.to ?? state.selection.to;\n const text = editor.state.doc.textBetween(from, to, ' ');\n openInsertLinkDialog({\n url: href, text, from, to,\n });\n }, [editor, openInsertLinkDialog]);\n\n return (\n <div className={cn(\n 'border border-[rgba(96,125,159,0.4)] rounded-sm overflow-hidden',\n isInvalid && [\n 'border-rose-600!',\n '[focus-visible:shadow-[0_0_0_1px_var(--color-rose-600),0_0_4px_0_hsl(from_var(--color-rose-600)_h_s_l/0.7)]!',\n ],\n className,\n )}>\n <VariablePickerProvider\n variableCategories={variableCategories}\n variableCategoryLabels={variableCategoryLabels}\n variableCategoryOrder={variableCategoryOrder}\n variableTransformerRegistry={variableTransformerRegistry}\n >\n <EditorContext.Provider value={{ editor }}>\n {toolbarContent ? (\n toolbarContent({\n editor,\n variableCategories,\n variableCategoryLabels,\n variableCategoryOrder,\n variablePickerOpen: isVariablePickerOpen,\n onVariablePickerOpenChange: setIsVariablePickerOpen,\n })\n ) : (\n <MenuBar\n editor={editor}\n buttons={buttons}\n tableOptions={tableOptions}\n linkOptions={linkOptions}\n linkSelectorStorageKeyPrefix={linkSelectorStorageKeyPrefix}\n variableCategories={variableCategories}\n variableCategoryLabels={variableCategoryLabels}\n variableCategoryOrder={variableCategoryOrder}\n variablePickerOpen={isVariablePickerOpen}\n onVariablePickerOpenChange={setIsVariablePickerOpen}\n openInsertLinkDialog={openInsertLinkDialog}\n />\n )}\n\n <div ref={wrapperRef} className=\"relative\">\n {contentError && (\n <div className=\"flex items-start gap-2 border-b border-rose-200 bg-rose-50 px-4 py-2 text-sm text-rose-800\">\n <FontAwesomeIcon icon={faTriangleExclamation} className=\"mt-0.5 size-3.5 shrink-0\" />\n <p>{contentError}</p>\n </div>\n )}\n\n <EditorContent\n editor={editor}\n className={cn(\n '[&_.ProseMirror]:outline-none',\n '[&_.ProseMirror]:min-h-8',\n '[&_.ProseMirror]:p-4',\n '[&_.ProseMirror]:bg-[#fbfcfe]',\n '[&_.ProseMirror]:shadow-none',\n '[&_.ProseMirror]:whitespace-pre-wrap',\n '[&_.ProseMirror_p]:m-0 [&_.ProseMirror_p]:mb-2',\n '[&_.ProseMirror_p:last-child]:mb-0',\n '[&_.ProseMirror_h1]:text-xl [&_.ProseMirror_h1]:font-bold [&_.ProseMirror_h1]:mb-2',\n '[&_.ProseMirror_h2]:text-lg [&_.ProseMirror_h2]:font-semibold [&_.ProseMirror_h2]:mb-2',\n '[&_.ProseMirror_ul]:list-disc [&_.ProseMirror_ul]:pl-5 [&_.ProseMirror_ul]:mb-2',\n '[&_.ProseMirror_ol]:list-decimal [&_.ProseMirror_ol]:pl-5 [&_.ProseMirror_ol]:mb-2',\n '[&_.ProseMirror_li]:mb-1',\n '[&_.ProseMirror_hr]:border-slate-300 [&_.ProseMirror_hr]:my-4',\n '[&_.ProseMirror_code]:bg-slate-100 [&_.ProseMirror_code]:px-1 [&_.ProseMirror_code]:py-0.5 [&_.ProseMirror_code]:rounded [&_.ProseMirror_code]:text-sm',\n '[&_.ProseMirror_pre]:bg-slate-100 [&_.ProseMirror_pre]:p-3 [&_.ProseMirror_pre]:rounded [&_.ProseMirror_pre]:overflow-x-auto [&_.ProseMirror_pre]:mb-2',\n '[&_.ProseMirror_blockquote]:border-l-4 [&_.ProseMirror_blockquote]:border-slate-300 [&_.ProseMirror_blockquote]:pl-4 [&_.ProseMirror_blockquote]:italic [&_.ProseMirror_blockquote]:text-slate-600 [&_.ProseMirror_blockquote]:mb-2',\n '[&_.ProseMirror_table]:border-collapse [&_.ProseMirror_table]:w-full [&_.ProseMirror_table]:mb-2',\n '[&_.ProseMirror_th]:border [&_.ProseMirror_th]:border-slate-300 [&_.ProseMirror_th]:px-3 [&_.ProseMirror_th]:py-2 [&_.ProseMirror_th]:bg-slate-100 [&_.ProseMirror_th]:text-left',\n '[&_.ProseMirror_td]:border [&_.ProseMirror_td]:border-slate-300 [&_.ProseMirror_td]:px-3 [&_.ProseMirror_td]:py-2',\n '[&_.ProseMirror_a]:text-blue-600 [&_.ProseMirror_a]:underline [&_.ProseMirror_a]:cursor-pointer',\n )}\n {...props}\n />\n\n {hasAnyVariables && !readOnly && (\n <InlineVariablePickerPopover\n open={inlinePicker.state.open}\n onOpenChange={(open) => {\n if (!open) {\n inlinePicker.closePicker();\n }\n }}\n position={{ top: inlinePicker.state.top, left: inlinePicker.state.left }}\n isChildMode={inlinePicker.filteredVariables.isChildMode}\n query={inlinePicker.state.query}\n onQueryChange={inlinePicker.setQuery}\n filteredVariables={inlinePicker.filteredVariables}\n onSelect={inlinePicker.handleSelect}\n onBack={inlinePicker.goBack}\n />\n )}\n </div>\n\n {buttons.includes('link') && editor && (\n <LinkBubbleMenu\n editor={editor}\n onEdit={handleLinkBubbleEdit}\n dialogOpen={insertLinkDialogOpen}\n />\n )}\n </EditorContext.Provider>\n\n <InsertLinkDialog\n open={insertLinkDialogOpen}\n onOpenChange={setInsertLinkDialogOpen}\n initialValues={insertLinkInitialValues}\n onInsert={(values) => {\n insertLink({\n ...values,\n from: insertLinkInitialValues?.from,\n to: insertLinkInitialValues?.to,\n });\n setInsertLinkDialogOpen(false);\n }}\n />\n </VariablePickerProvider>\n </div >\n );\n};\n"],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ export declare const TiptapInput: ({ value, onChange, className, isInvalid, disabled, readOnly, variableCategories, variableCategoryLabels, variableCategoryOrder, variableTransformerRegistry, variablePickerTriggerCharacters, ...props }: {
2
+ [x: string]: any;
3
+ value?: string | undefined;
4
+ onChange: any;
5
+ className: any;
6
+ isInvalid: any;
7
+ disabled?: boolean | undefined;
8
+ readOnly?: boolean | undefined;
9
+ variableCategories?: {} | undefined;
10
+ variableCategoryLabels: any;
11
+ variableCategoryOrder: any;
12
+ variableTransformerRegistry: any;
13
+ variablePickerTriggerCharacters?: string[] | undefined;
14
+ }) => import("react/jsx-runtime").JSX.Element;
15
+ //# sourceMappingURL=TiptapInput.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TiptapInput.d.ts","sourceRoot":"","sources":["../../src/components/TiptapInput.tsx"],"names":[],"mappings":"AAyBA,eAAO,MAAM,WAAW,GAAI;;;;;;;;;;;;;CAa3B,4CAgJA,CAAC"}