@d4gger/design-system 3.0.1 → 4.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/README.md +19 -0
  2. package/dist/components/accordion.css +9 -2
  3. package/dist/components/alert/Alert.cjs +11 -7
  4. package/dist/components/alert/Alert.cjs.map +2 -2
  5. package/dist/components/alert/Alert.d.cts.map +1 -1
  6. package/dist/components/alert/Alert.d.mts.map +1 -1
  7. package/dist/components/alert/Alert.d.ts.map +1 -1
  8. package/dist/components/alert/Alert.js +12 -8
  9. package/dist/components/alert/Alert.js.map +2 -2
  10. package/dist/components/alert.css +13 -0
  11. package/dist/components/article-nodes.css +16 -1
  12. package/dist/components/articleNodes/ArticleNodes.cjs +46 -5
  13. package/dist/components/articleNodes/ArticleNodes.cjs.map +2 -2
  14. package/dist/components/articleNodes/ArticleNodes.d.cts +7 -3
  15. package/dist/components/articleNodes/ArticleNodes.d.cts.map +1 -1
  16. package/dist/components/articleNodes/ArticleNodes.d.mts +7 -3
  17. package/dist/components/articleNodes/ArticleNodes.d.mts.map +1 -1
  18. package/dist/components/articleNodes/ArticleNodes.d.ts +7 -3
  19. package/dist/components/articleNodes/ArticleNodes.d.ts.map +1 -1
  20. package/dist/components/articleNodes/ArticleNodes.js +46 -5
  21. package/dist/components/articleNodes/ArticleNodes.js.map +2 -2
  22. package/dist/components/articleNodes/articleExtensions.cjs +21 -4
  23. package/dist/components/articleNodes/articleExtensions.cjs.map +2 -2
  24. package/dist/components/articleNodes/articleExtensions.d.cts +8 -2
  25. package/dist/components/articleNodes/articleExtensions.d.cts.map +1 -1
  26. package/dist/components/articleNodes/articleExtensions.d.mts +8 -2
  27. package/dist/components/articleNodes/articleExtensions.d.mts.map +1 -1
  28. package/dist/components/articleNodes/articleExtensions.d.ts +8 -2
  29. package/dist/components/articleNodes/articleExtensions.d.ts.map +1 -1
  30. package/dist/components/articleNodes/articleExtensions.js +21 -4
  31. package/dist/components/articleNodes/articleExtensions.js.map +2 -2
  32. package/dist/components/articleNodes/articleNodeViews.cjs +154 -0
  33. package/dist/components/articleNodes/articleNodeViews.cjs.map +7 -0
  34. package/dist/components/articleNodes/articleNodeViews.d.cts +3 -0
  35. package/dist/components/articleNodes/articleNodeViews.d.cts.map +1 -0
  36. package/dist/components/articleNodes/articleNodeViews.d.mts +3 -0
  37. package/dist/components/articleNodes/articleNodeViews.d.mts.map +1 -0
  38. package/dist/components/articleNodes/articleNodeViews.d.ts +3 -0
  39. package/dist/components/articleNodes/articleNodeViews.d.ts.map +1 -0
  40. package/dist/components/articleNodes/articleNodeViews.js +124 -0
  41. package/dist/components/articleNodes/articleNodeViews.js.map +7 -0
  42. package/dist/components/articleNodes/articleNodes.props.cjs.map +1 -1
  43. package/dist/components/articleNodes/articleNodes.props.d.cts +25 -2
  44. package/dist/components/articleNodes/articleNodes.props.d.cts.map +1 -1
  45. package/dist/components/articleNodes/articleNodes.props.d.mts +25 -2
  46. package/dist/components/articleNodes/articleNodes.props.d.mts.map +1 -1
  47. package/dist/components/articleNodes/articleNodes.props.d.ts +25 -2
  48. package/dist/components/articleNodes/articleNodes.props.d.ts.map +1 -1
  49. package/dist/components/banner.css +5 -4
  50. package/dist/components/blockquote.css +7 -4
  51. package/dist/components/bottom-dock.css +132 -0
  52. package/dist/components/bottomDock/BottomDock.cjs +140 -0
  53. package/dist/components/bottomDock/BottomDock.cjs.map +7 -0
  54. package/dist/components/bottomDock/BottomDock.d.cts +25 -0
  55. package/dist/components/bottomDock/BottomDock.d.cts.map +1 -0
  56. package/dist/components/bottomDock/BottomDock.d.mts +25 -0
  57. package/dist/components/bottomDock/BottomDock.d.mts.map +1 -0
  58. package/dist/components/bottomDock/BottomDock.d.ts +25 -0
  59. package/dist/components/bottomDock/BottomDock.d.ts.map +1 -0
  60. package/dist/components/bottomDock/BottomDock.js +110 -0
  61. package/dist/components/bottomDock/BottomDock.js.map +7 -0
  62. package/dist/components/bottomDock/bottomDock.props.cjs +49 -0
  63. package/dist/components/bottomDock/bottomDock.props.cjs.map +7 -0
  64. package/dist/components/bottomDock/bottomDock.props.d.cts +29 -0
  65. package/dist/components/bottomDock/bottomDock.props.d.cts.map +1 -0
  66. package/dist/components/bottomDock/bottomDock.props.d.mts +29 -0
  67. package/dist/components/bottomDock/bottomDock.props.d.mts.map +1 -0
  68. package/dist/components/bottomDock/bottomDock.props.d.ts +29 -0
  69. package/dist/components/bottomDock/bottomDock.props.d.ts.map +1 -0
  70. package/dist/components/bottomDock/bottomDock.props.js +29 -0
  71. package/dist/components/bottomDock/bottomDock.props.js.map +7 -0
  72. package/dist/components/breadcrumb.css +24 -3
  73. package/dist/components/callout.css +20 -7
  74. package/dist/components/card.css +8 -0
  75. package/dist/components/code.css +29 -13
  76. package/dist/components/collapsible/Collapsible.cjs +4 -0
  77. package/dist/components/collapsible/Collapsible.cjs.map +2 -2
  78. package/dist/components/collapsible/Collapsible.d.cts.map +1 -1
  79. package/dist/components/collapsible/Collapsible.d.mts.map +1 -1
  80. package/dist/components/collapsible/Collapsible.d.ts.map +1 -1
  81. package/dist/components/collapsible/Collapsible.js +4 -0
  82. package/dist/components/collapsible/Collapsible.js.map +2 -2
  83. package/dist/components/collapsible.css +10 -1
  84. package/dist/components/command.css +0 -2
  85. package/dist/components/comment-thread.css +15 -7
  86. package/dist/components/commentThread/CommentThread.cjs +45 -17
  87. package/dist/components/commentThread/CommentThread.cjs.map +2 -2
  88. package/dist/components/commentThread/CommentThread.d.cts +6 -6
  89. package/dist/components/commentThread/CommentThread.d.cts.map +1 -1
  90. package/dist/components/commentThread/CommentThread.d.mts +6 -6
  91. package/dist/components/commentThread/CommentThread.d.mts.map +1 -1
  92. package/dist/components/commentThread/CommentThread.d.ts +6 -6
  93. package/dist/components/commentThread/CommentThread.d.ts.map +1 -1
  94. package/dist/components/commentThread/CommentThread.js +45 -17
  95. package/dist/components/commentThread/CommentThread.js.map +2 -2
  96. package/dist/components/commentThread/commentThread.props.cjs.map +1 -1
  97. package/dist/components/commentThread/commentThread.props.d.cts +24 -0
  98. package/dist/components/commentThread/commentThread.props.d.cts.map +1 -1
  99. package/dist/components/commentThread/commentThread.props.d.mts +24 -0
  100. package/dist/components/commentThread/commentThread.props.d.mts.map +1 -1
  101. package/dist/components/commentThread/commentThread.props.d.ts +24 -0
  102. package/dist/components/commentThread/commentThread.props.d.ts.map +1 -1
  103. package/dist/components/config-drawer.css +7 -3
  104. package/dist/components/configDrawer/ConfigDrawer.cjs +1 -1
  105. package/dist/components/configDrawer/ConfigDrawer.cjs.map +2 -2
  106. package/dist/components/configDrawer/ConfigDrawer.js +1 -1
  107. package/dist/components/configDrawer/ConfigDrawer.js.map +2 -2
  108. package/dist/components/context-menu.css +3 -1
  109. package/dist/components/contextMenu/ContextMenu.cjs +37 -6
  110. package/dist/components/contextMenu/ContextMenu.cjs.map +2 -2
  111. package/dist/components/contextMenu/ContextMenu.d.cts +1 -1
  112. package/dist/components/contextMenu/ContextMenu.d.cts.map +1 -1
  113. package/dist/components/contextMenu/ContextMenu.d.mts +1 -1
  114. package/dist/components/contextMenu/ContextMenu.d.mts.map +1 -1
  115. package/dist/components/contextMenu/ContextMenu.d.ts +1 -1
  116. package/dist/components/contextMenu/ContextMenu.d.ts.map +1 -1
  117. package/dist/components/contextMenu/ContextMenu.js +37 -6
  118. package/dist/components/contextMenu/ContextMenu.js.map +2 -2
  119. package/dist/components/drawer.css +23 -6
  120. package/dist/components/dropdownMenu/DropdownMenu.cjs +10 -5
  121. package/dist/components/dropdownMenu/DropdownMenu.cjs.map +2 -2
  122. package/dist/components/dropdownMenu/DropdownMenu.d.cts.map +1 -1
  123. package/dist/components/dropdownMenu/DropdownMenu.d.mts.map +1 -1
  124. package/dist/components/dropdownMenu/DropdownMenu.d.ts.map +1 -1
  125. package/dist/components/dropdownMenu/DropdownMenu.js +10 -5
  126. package/dist/components/dropdownMenu/DropdownMenu.js.map +2 -2
  127. package/dist/components/file-upload.css +36 -9
  128. package/dist/components/floating-panel.css +49 -18
  129. package/dist/components/floatingPanel/FloatingPanel.cjs +156 -58
  130. package/dist/components/floatingPanel/FloatingPanel.cjs.map +2 -2
  131. package/dist/components/floatingPanel/FloatingPanel.d.cts.map +1 -1
  132. package/dist/components/floatingPanel/FloatingPanel.d.mts.map +1 -1
  133. package/dist/components/floatingPanel/FloatingPanel.d.ts.map +1 -1
  134. package/dist/components/floatingPanel/FloatingPanel.js +156 -58
  135. package/dist/components/floatingPanel/FloatingPanel.js.map +2 -2
  136. package/dist/components/grid/Grid.cjs +24 -35
  137. package/dist/components/grid/Grid.cjs.map +2 -2
  138. package/dist/components/grid/Grid.d.cts.map +1 -1
  139. package/dist/components/grid/Grid.d.mts.map +1 -1
  140. package/dist/components/grid/Grid.d.ts.map +1 -1
  141. package/dist/components/grid/Grid.js +24 -35
  142. package/dist/components/grid/Grid.js.map +2 -2
  143. package/dist/components/heading/Heading.cjs +1 -8
  144. package/dist/components/heading/Heading.cjs.map +2 -2
  145. package/dist/components/heading/Heading.d.cts.map +1 -1
  146. package/dist/components/heading/Heading.d.mts.map +1 -1
  147. package/dist/components/heading/Heading.d.ts.map +1 -1
  148. package/dist/components/heading/Heading.js +1 -8
  149. package/dist/components/heading/Heading.js.map +2 -2
  150. package/dist/components/heading/heading.props.cjs +9 -9
  151. package/dist/components/heading/heading.props.cjs.map +2 -2
  152. package/dist/components/heading/heading.props.d.cts +42 -43
  153. package/dist/components/heading/heading.props.d.cts.map +1 -1
  154. package/dist/components/heading/heading.props.d.mts +42 -43
  155. package/dist/components/heading/heading.props.d.mts.map +1 -1
  156. package/dist/components/heading/heading.props.d.ts +42 -43
  157. package/dist/components/heading/heading.props.d.ts.map +1 -1
  158. package/dist/components/heading/heading.props.js +9 -9
  159. package/dist/components/heading/heading.props.js.map +2 -2
  160. package/dist/components/heading.css +127 -104
  161. package/dist/components/hover-card.css +5 -2
  162. package/dist/components/icon/Icon.cjs +3 -0
  163. package/dist/components/icon/Icon.cjs.map +2 -2
  164. package/dist/components/icon/Icon.d.cts +5 -1
  165. package/dist/components/icon/Icon.d.cts.map +1 -1
  166. package/dist/components/icon/Icon.d.mts +5 -1
  167. package/dist/components/icon/Icon.d.mts.map +1 -1
  168. package/dist/components/icon/Icon.d.ts +5 -1
  169. package/dist/components/icon/Icon.d.ts.map +1 -1
  170. package/dist/components/icon/Icon.js +4 -0
  171. package/dist/components/icon/Icon.js.map +2 -2
  172. package/dist/components/icon/icons.cjs +2 -0
  173. package/dist/components/icon/icons.cjs.map +2 -2
  174. package/dist/components/icon/icons.d.cts +5 -0
  175. package/dist/components/icon/icons.d.cts.map +1 -1
  176. package/dist/components/icon/icons.d.mts +5 -0
  177. package/dist/components/icon/icons.d.mts.map +1 -1
  178. package/dist/components/icon/icons.d.ts +5 -0
  179. package/dist/components/icon/icons.d.ts.map +1 -1
  180. package/dist/components/icon/icons.js +2 -0
  181. package/dist/components/icon/icons.js.map +2 -2
  182. package/dist/components/index.cjs +1 -0
  183. package/dist/components/index.cjs.map +2 -2
  184. package/dist/components/index.d.cts +1 -0
  185. package/dist/components/index.d.cts.map +1 -1
  186. package/dist/components/index.d.mts +1 -0
  187. package/dist/components/index.d.mts.map +1 -1
  188. package/dist/components/index.d.ts +1 -0
  189. package/dist/components/index.d.ts.map +1 -1
  190. package/dist/components/index.js +1 -0
  191. package/dist/components/index.js.map +2 -2
  192. package/dist/components/label.css +3 -0
  193. package/dist/components/link.css +33 -97
  194. package/dist/components/notification-center.css +49 -9
  195. package/dist/components/notificationCenter/NotificationCenter.cjs +21 -16
  196. package/dist/components/notificationCenter/NotificationCenter.cjs.map +2 -2
  197. package/dist/components/notificationCenter/NotificationCenter.d.cts.map +1 -1
  198. package/dist/components/notificationCenter/NotificationCenter.d.mts.map +1 -1
  199. package/dist/components/notificationCenter/NotificationCenter.d.ts.map +1 -1
  200. package/dist/components/notificationCenter/NotificationCenter.js +22 -17
  201. package/dist/components/notificationCenter/NotificationCenter.js.map +2 -2
  202. package/dist/components/pills/Pills.cjs +1 -1
  203. package/dist/components/pills/Pills.cjs.map +2 -2
  204. package/dist/components/pills/Pills.js +2 -2
  205. package/dist/components/pills/Pills.js.map +2 -2
  206. package/dist/components/pills.css +6 -0
  207. package/dist/components/popover.css +45 -6
  208. package/dist/components/prose.css +3 -3
  209. package/dist/components/qr-code.css +5 -2
  210. package/dist/components/qrCode/QrCode.cjs +14 -11
  211. package/dist/components/qrCode/QrCode.cjs.map +2 -2
  212. package/dist/components/qrCode/QrCode.d.cts.map +1 -1
  213. package/dist/components/qrCode/QrCode.d.mts.map +1 -1
  214. package/dist/components/qrCode/QrCode.d.ts.map +1 -1
  215. package/dist/components/qrCode/QrCode.js +14 -11
  216. package/dist/components/qrCode/QrCode.js.map +2 -2
  217. package/dist/components/resizable.css +20 -4
  218. package/dist/components/rich-text-editor.css +50 -14
  219. package/dist/components/richTextEditor/EditorTools.cjs +226 -0
  220. package/dist/components/richTextEditor/EditorTools.cjs.map +7 -0
  221. package/dist/components/richTextEditor/EditorTools.d.cts +22 -0
  222. package/dist/components/richTextEditor/EditorTools.d.cts.map +1 -0
  223. package/dist/components/richTextEditor/EditorTools.d.mts +22 -0
  224. package/dist/components/richTextEditor/EditorTools.d.mts.map +1 -0
  225. package/dist/components/richTextEditor/EditorTools.d.ts +22 -0
  226. package/dist/components/richTextEditor/EditorTools.d.ts.map +1 -0
  227. package/dist/components/richTextEditor/EditorTools.js +196 -0
  228. package/dist/components/richTextEditor/EditorTools.js.map +7 -0
  229. package/dist/components/richTextEditor/MentionSuggestions.cjs +96 -0
  230. package/dist/components/richTextEditor/MentionSuggestions.cjs.map +7 -0
  231. package/dist/components/richTextEditor/MentionSuggestions.d.cts +7 -0
  232. package/dist/components/richTextEditor/MentionSuggestions.d.cts.map +1 -0
  233. package/dist/components/richTextEditor/MentionSuggestions.d.mts +7 -0
  234. package/dist/components/richTextEditor/MentionSuggestions.d.mts.map +1 -0
  235. package/dist/components/richTextEditor/MentionSuggestions.d.ts +7 -0
  236. package/dist/components/richTextEditor/MentionSuggestions.d.ts.map +1 -0
  237. package/dist/components/richTextEditor/MentionSuggestions.js +66 -0
  238. package/dist/components/richTextEditor/MentionSuggestions.js.map +7 -0
  239. package/dist/components/richTextEditor/RichTextEditor.cjs +53 -206
  240. package/dist/components/richTextEditor/RichTextEditor.cjs.map +3 -3
  241. package/dist/components/richTextEditor/RichTextEditor.d.cts +17 -7
  242. package/dist/components/richTextEditor/RichTextEditor.d.cts.map +1 -1
  243. package/dist/components/richTextEditor/RichTextEditor.d.mts +17 -7
  244. package/dist/components/richTextEditor/RichTextEditor.d.mts.map +1 -1
  245. package/dist/components/richTextEditor/RichTextEditor.d.ts +17 -7
  246. package/dist/components/richTextEditor/RichTextEditor.d.ts.map +1 -1
  247. package/dist/components/richTextEditor/RichTextEditor.js +53 -206
  248. package/dist/components/richTextEditor/RichTextEditor.js.map +3 -3
  249. package/dist/components/richTextEditor/editorTokens.cjs +75 -0
  250. package/dist/components/richTextEditor/editorTokens.cjs.map +7 -0
  251. package/dist/components/richTextEditor/editorTokens.d.cts +21 -0
  252. package/dist/components/richTextEditor/editorTokens.d.cts.map +1 -0
  253. package/dist/components/richTextEditor/editorTokens.d.mts +21 -0
  254. package/dist/components/richTextEditor/editorTokens.d.mts.map +1 -0
  255. package/dist/components/richTextEditor/editorTokens.d.ts +21 -0
  256. package/dist/components/richTextEditor/editorTokens.d.ts.map +1 -0
  257. package/dist/components/richTextEditor/editorTokens.js +55 -0
  258. package/dist/components/richTextEditor/editorTokens.js.map +7 -0
  259. package/dist/components/scroll-area.css +12 -0
  260. package/dist/components/scrollArea/ScrollArea.cjs +12 -1
  261. package/dist/components/scrollArea/ScrollArea.cjs.map +2 -2
  262. package/dist/components/scrollArea/ScrollArea.d.cts.map +1 -1
  263. package/dist/components/scrollArea/ScrollArea.d.mts.map +1 -1
  264. package/dist/components/scrollArea/ScrollArea.d.ts.map +1 -1
  265. package/dist/components/scrollArea/ScrollArea.js +12 -1
  266. package/dist/components/scrollArea/ScrollArea.js.map +2 -2
  267. package/dist/components/segmentedControl/SegmentedControl.cjs +2 -2
  268. package/dist/components/segmentedControl/SegmentedControl.cjs.map +2 -2
  269. package/dist/components/segmentedControl/SegmentedControl.d.cts.map +1 -1
  270. package/dist/components/segmentedControl/SegmentedControl.d.mts.map +1 -1
  271. package/dist/components/segmentedControl/SegmentedControl.d.ts.map +1 -1
  272. package/dist/components/segmentedControl/SegmentedControl.js +2 -2
  273. package/dist/components/segmentedControl/SegmentedControl.js.map +2 -2
  274. package/dist/components/separator.css +3 -9
  275. package/dist/components/sidebar/Sidebar.cjs +12 -4
  276. package/dist/components/sidebar/Sidebar.cjs.map +2 -2
  277. package/dist/components/sidebar/Sidebar.d.cts +4 -1
  278. package/dist/components/sidebar/Sidebar.d.cts.map +1 -1
  279. package/dist/components/sidebar/Sidebar.d.mts +4 -1
  280. package/dist/components/sidebar/Sidebar.d.mts.map +1 -1
  281. package/dist/components/sidebar/Sidebar.d.ts +4 -1
  282. package/dist/components/sidebar/Sidebar.d.ts.map +1 -1
  283. package/dist/components/sidebar/Sidebar.js +12 -4
  284. package/dist/components/sidebar/Sidebar.js.map +2 -2
  285. package/dist/components/sidebar/sidebar.props.cjs +8 -1
  286. package/dist/components/sidebar/sidebar.props.cjs.map +2 -2
  287. package/dist/components/sidebar/sidebar.props.d.cts +9 -1
  288. package/dist/components/sidebar/sidebar.props.d.cts.map +1 -1
  289. package/dist/components/sidebar/sidebar.props.d.mts +9 -1
  290. package/dist/components/sidebar/sidebar.props.d.mts.map +1 -1
  291. package/dist/components/sidebar/sidebar.props.d.ts +9 -1
  292. package/dist/components/sidebar/sidebar.props.d.ts.map +1 -1
  293. package/dist/components/sidebar/sidebar.props.js +8 -1
  294. package/dist/components/sidebar/sidebar.props.js.map +2 -2
  295. package/dist/components/sidebar.css +28 -0
  296. package/dist/components/sonner.css +78 -16
  297. package/dist/components/stepper.css +23 -12
  298. package/dist/components/tab-nav.css +25 -13
  299. package/dist/components/tabNav/TabNav.cjs +1 -4
  300. package/dist/components/tabNav/TabNav.cjs.map +2 -2
  301. package/dist/components/tabNav/TabNav.d.cts.map +1 -1
  302. package/dist/components/tabNav/TabNav.d.mts.map +1 -1
  303. package/dist/components/tabNav/TabNav.d.ts.map +1 -1
  304. package/dist/components/tabNav/TabNav.js +1 -4
  305. package/dist/components/tabNav/TabNav.js.map +2 -2
  306. package/dist/components/table-of-contents.css +12 -2
  307. package/dist/components/tableOfContents/TableOfContents.cjs +11 -4
  308. package/dist/components/tableOfContents/TableOfContents.cjs.map +2 -2
  309. package/dist/components/tableOfContents/TableOfContents.d.cts.map +1 -1
  310. package/dist/components/tableOfContents/TableOfContents.d.mts.map +1 -1
  311. package/dist/components/tableOfContents/TableOfContents.d.ts.map +1 -1
  312. package/dist/components/tableOfContents/TableOfContents.js +11 -4
  313. package/dist/components/tableOfContents/TableOfContents.js.map +2 -2
  314. package/dist/components/tabs/Tabs.cjs +39 -54
  315. package/dist/components/tabs/Tabs.cjs.map +2 -2
  316. package/dist/components/tabs/Tabs.d.cts.map +1 -1
  317. package/dist/components/tabs/Tabs.d.mts.map +1 -1
  318. package/dist/components/tabs/Tabs.d.ts.map +1 -1
  319. package/dist/components/tabs/Tabs.js +39 -54
  320. package/dist/components/tabs/Tabs.js.map +2 -2
  321. package/dist/components/tabs.css +52 -7
  322. package/dist/components/text/text.props.cjs +9 -9
  323. package/dist/components/text/text.props.cjs.map +2 -2
  324. package/dist/components/text/text.props.d.cts +42 -43
  325. package/dist/components/text/text.props.d.cts.map +1 -1
  326. package/dist/components/text/text.props.d.mts +42 -43
  327. package/dist/components/text/text.props.d.mts.map +1 -1
  328. package/dist/components/text/text.props.d.ts +42 -43
  329. package/dist/components/text/text.props.d.ts.map +1 -1
  330. package/dist/components/text/text.props.js +9 -9
  331. package/dist/components/text/text.props.js.map +2 -2
  332. package/dist/components/text/typography.props.cjs +32 -0
  333. package/dist/components/text/typography.props.cjs.map +7 -0
  334. package/dist/components/text/typography.props.d.cts +3 -0
  335. package/dist/components/text/typography.props.d.cts.map +1 -0
  336. package/dist/components/text/typography.props.d.mts +3 -0
  337. package/dist/components/text/typography.props.d.mts.map +1 -0
  338. package/dist/components/text/typography.props.d.ts +3 -0
  339. package/dist/components/text/typography.props.d.ts.map +1 -0
  340. package/dist/components/text/typography.props.js +12 -0
  341. package/dist/components/text/typography.props.js.map +7 -0
  342. package/dist/components/text-field.css +1 -0
  343. package/dist/components/text.css +41 -6
  344. package/dist/components/theme-panel.css +6 -0
  345. package/dist/components/toast/Toast.cjs +3 -1
  346. package/dist/components/toast/Toast.cjs.map +2 -2
  347. package/dist/components/toast/Toast.d.cts.map +1 -1
  348. package/dist/components/toast/Toast.d.mts.map +1 -1
  349. package/dist/components/toast/Toast.d.ts.map +1 -1
  350. package/dist/components/toast/Toast.js +3 -1
  351. package/dist/components/toast/Toast.js.map +2 -2
  352. package/dist/components/toast.css +36 -36
  353. package/dist/components/toggle-tip.css +58 -9
  354. package/dist/components/toggleTip/ToggleTip.cjs +9 -5
  355. package/dist/components/toggleTip/ToggleTip.cjs.map +2 -2
  356. package/dist/components/toggleTip/ToggleTip.d.cts.map +1 -1
  357. package/dist/components/toggleTip/ToggleTip.d.mts.map +1 -1
  358. package/dist/components/toggleTip/ToggleTip.d.ts.map +1 -1
  359. package/dist/components/toggleTip/ToggleTip.js +9 -5
  360. package/dist/components/toggleTip/ToggleTip.js.map +2 -2
  361. package/dist/components/toolbar/Toolbar.cjs +10 -7
  362. package/dist/components/toolbar/Toolbar.cjs.map +2 -2
  363. package/dist/components/toolbar/Toolbar.js +10 -7
  364. package/dist/components/toolbar/Toolbar.js.map +2 -2
  365. package/dist/components/toolbar.css +58 -4
  366. package/dist/components/tooltip.css +9 -5
  367. package/dist/components/tree-view.css +17 -3
  368. package/dist/components/treeView/TreeView.cjs +76 -21
  369. package/dist/components/treeView/TreeView.cjs.map +2 -2
  370. package/dist/components/treeView/TreeView.d.cts.map +1 -1
  371. package/dist/components/treeView/TreeView.d.mts.map +1 -1
  372. package/dist/components/treeView/TreeView.d.ts.map +1 -1
  373. package/dist/components/treeView/TreeView.js +76 -21
  374. package/dist/components/treeView/TreeView.js.map +2 -2
  375. package/dist/components.css +1 -0
  376. package/dist/docs/README.md +1 -0
  377. package/dist/docs/component-contract.md +4 -3
  378. package/dist/docs/component-index.json +9 -1
  379. package/dist/docs/components/accordion.md +5 -36
  380. package/dist/docs/components/alert.md +17 -10
  381. package/dist/docs/components/article-nodes.md +59 -2
  382. package/dist/docs/components/aspect-ratio.md +3 -26
  383. package/dist/docs/components/banner.md +7 -7
  384. package/dist/docs/components/blockquote.md +15 -14
  385. package/dist/docs/components/bottom-dock.md +146 -0
  386. package/dist/docs/components/box.md +3 -34
  387. package/dist/docs/components/breadcrumb.md +13 -8
  388. package/dist/docs/components/callout.md +18 -7
  389. package/dist/docs/components/card.md +9 -2
  390. package/dist/docs/components/code.md +33 -220
  391. package/dist/docs/components/collapsible.md +11 -35
  392. package/dist/docs/components/command.md +2 -0
  393. package/dist/docs/components/comment-thread.md +51 -1
  394. package/dist/docs/components/config-drawer.md +72 -171
  395. package/dist/docs/components/container.md +2 -0
  396. package/dist/docs/components/context-menu.md +19 -5
  397. package/dist/docs/components/dialog.md +3 -1
  398. package/dist/docs/components/drawer.md +17 -6
  399. package/dist/docs/components/dropdown-menu.md +11 -2
  400. package/dist/docs/components/em.md +1 -1
  401. package/dist/docs/components/file-upload.md +13 -7
  402. package/dist/docs/components/floating-panel.md +79 -285
  403. package/dist/docs/components/form.md +4 -0
  404. package/dist/docs/components/grid.md +11 -60
  405. package/dist/docs/components/heading.md +35 -32
  406. package/dist/docs/components/hover-card.md +9 -1
  407. package/dist/docs/components/kbd.md +2 -0
  408. package/dist/docs/components/label.md +11 -9
  409. package/dist/docs/components/link.md +31 -209
  410. package/dist/docs/components/notification-center.md +24 -14
  411. package/dist/docs/components/page-header.md +2 -0
  412. package/dist/docs/components/pagination.md +4 -0
  413. package/dist/docs/components/pills.md +13 -4
  414. package/dist/docs/components/popover.md +10 -3
  415. package/dist/docs/components/prose.md +9 -0
  416. package/dist/docs/components/qr-code.md +12 -12
  417. package/dist/docs/components/quote.md +9 -4
  418. package/dist/docs/components/resizable.md +26 -18
  419. package/dist/docs/components/rich-text-editor.md +68 -18
  420. package/dist/docs/components/scroll-area.md +17 -9
  421. package/dist/docs/components/section.md +3 -38
  422. package/dist/docs/components/segmented-control.md +1 -1
  423. package/dist/docs/components/segmented-meter.md +9 -0
  424. package/dist/docs/components/separator.md +10 -46
  425. package/dist/docs/components/sidebar.md +17 -3
  426. package/dist/docs/components/sonner.md +25 -16
  427. package/dist/docs/components/stepper.md +8 -33
  428. package/dist/docs/components/strong.md +1 -1
  429. package/dist/docs/components/tab-nav.md +33 -96
  430. package/dist/docs/components/table-of-contents.md +8 -2
  431. package/dist/docs/components/tabs.md +19 -50
  432. package/dist/docs/components/text-field.md +1 -0
  433. package/dist/docs/components/text.md +34 -28
  434. package/dist/docs/components/theme-panel.md +3 -28
  435. package/dist/docs/components/theme.md +7 -3
  436. package/dist/docs/components/toast.md +27 -13
  437. package/dist/docs/components/toggle-tip.md +58 -241
  438. package/dist/docs/components/toolbar.md +16 -39
  439. package/dist/docs/components/tooltip.md +13 -7
  440. package/dist/docs/components/tree-view.md +22 -55
  441. package/dist/generated/tokens.cjs +1 -0
  442. package/dist/generated/tokens.cjs.map +2 -2
  443. package/dist/generated/tokens.d.cts.map +1 -1
  444. package/dist/generated/tokens.d.mts.map +1 -1
  445. package/dist/generated/tokens.d.ts.map +1 -1
  446. package/dist/generated/tokens.js +1 -0
  447. package/dist/generated/tokens.js.map +2 -2
  448. package/dist/styles.css +1632 -1300
  449. package/dist/tokens.css +344 -362
  450. package/package.json +1 -1
@@ -0,0 +1,66 @@
1
+ import * as React from "react";
2
+ import { Button } from "../button/Button.js";
3
+ import { jsx, jsxs } from "react/jsx-runtime";
4
+ function MentionSuggestions({ editor, mentions }) {
5
+ const [query, setQuery] = React.useState(null);
6
+ const [active, setActive] = React.useState(0);
7
+ const matches = mentions.filter((person) => person.label.toLowerCase().includes(query?.text.toLowerCase() ?? ""));
8
+ const activeIndex = Math.min(active, Math.max(0, matches.length - 1));
9
+ const state = React.useRef({ query, active, matches });
10
+ state.current = { query, active: activeIndex, matches };
11
+ React.useEffect(() => {
12
+ const update = () => {
13
+ const selection = editor.state.selection;
14
+ if (!selection.empty || !editor.isEditable) {
15
+ setQuery(null);
16
+ return;
17
+ }
18
+ const before = selection.$from.parent.textBetween(0, selection.$from.parentOffset, "", "\uFFFC");
19
+ const match = before.match(/(?:^|\s)@([^@\s]*)$/);
20
+ setQuery(match ? { text: match[1], from: selection.from - match[1].length - 1, to: selection.from } : null);
21
+ setActive(0);
22
+ };
23
+ const keydown = (event) => {
24
+ const current = state.current;
25
+ if (!current.query) return;
26
+ if (event.key === "Escape") {
27
+ event.preventDefault();
28
+ event.stopPropagation();
29
+ setQuery(null);
30
+ }
31
+ if (event.key === "ArrowDown" || event.key === "ArrowUp") {
32
+ event.preventDefault();
33
+ event.stopPropagation();
34
+ setActive((index) => Math.max(0, Math.min(current.matches.length - 1, index + (event.key === "ArrowDown" ? 1 : -1))));
35
+ }
36
+ if (event.key === "Enter" && current.matches.length) {
37
+ event.preventDefault();
38
+ event.stopPropagation();
39
+ editor.chain().focus().insertContentAt({ from: current.query.from, to: current.query.to }, [{ type: "dsxMention", attrs: { userId: current.matches[current.active]?.id } }, { type: "text", text: " " }]).run();
40
+ setQuery(null);
41
+ }
42
+ };
43
+ editor.on("transaction", update);
44
+ editor.view.dom.addEventListener("keydown", keydown, true);
45
+ return () => {
46
+ editor.off("transaction", update);
47
+ editor.view.dom.removeEventListener("keydown", keydown, true);
48
+ };
49
+ }, [editor]);
50
+ if (!query) return null;
51
+ return /* @__PURE__ */ jsxs("div", { className: "dsx-editor-tools__suggestions", role: "group", "aria-label": "Mention suggestions", children: [
52
+ /* @__PURE__ */ jsxs("span", { children: [
53
+ "People matching @",
54
+ query.text
55
+ ] }),
56
+ matches.map((person, index) => /* @__PURE__ */ jsx(Button, { type: "button", size: "lg", variant: activeIndex === index ? "secondary" : "ghost", onMouseDown: (event) => event.preventDefault(), onClick: () => {
57
+ editor.chain().focus().insertContentAt({ from: query.from, to: query.to }, [{ type: "dsxMention", attrs: { userId: person.id } }, { type: "text", text: " " }]).run();
58
+ setQuery(null);
59
+ }, children: person.label }, person.id)),
60
+ !matches.length ? /* @__PURE__ */ jsx("span", { role: "status", children: "No matching people" }) : null
61
+ ] });
62
+ }
63
+ export {
64
+ MentionSuggestions
65
+ };
66
+ //# sourceMappingURL=MentionSuggestions.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/components/richTextEditor/MentionSuggestions.tsx"],
4
+ "sourcesContent": ["import * as React from 'react'\nimport type { Editor } from '@tiptap/react'\nimport type { EditorMention } from './editorTokens'\nimport { Button } from '../button/Button'\n\nexport function MentionSuggestions({ editor, mentions }: { editor: Editor; mentions: readonly EditorMention[] }) {\n const [query, setQuery] = React.useState<{ text: string; from: number; to: number } | null>(null)\n const [active, setActive] = React.useState(0)\n const matches = mentions.filter(person => person.label.toLowerCase().includes(query?.text.toLowerCase() ?? ''))\n const activeIndex = Math.min(active, Math.max(0, matches.length - 1))\n const state = React.useRef({ query, active, matches })\n state.current = { query, active: activeIndex, matches }\n React.useEffect(() => {\n const update = () => {\n const selection = editor.state.selection\n if (!selection.empty || !editor.isEditable) { setQuery(null); return }\n const before = selection.$from.parent.textBetween(0, selection.$from.parentOffset, '', '\\ufffc')\n const match = before.match(/(?:^|\\s)@([^@\\s]*)$/)\n setQuery(match ? { text: match[1], from: selection.from - match[1].length - 1, to: selection.from } : null)\n setActive(0)\n }\n const keydown = (event: KeyboardEvent) => {\n const current = state.current\n if (!current.query) return\n if (event.key === 'Escape') { event.preventDefault(); event.stopPropagation(); setQuery(null) }\n if (event.key === 'ArrowDown' || event.key === 'ArrowUp') { event.preventDefault(); event.stopPropagation(); setActive(index => Math.max(0, Math.min(current.matches.length - 1, index + (event.key === 'ArrowDown' ? 1 : -1)))) }\n if (event.key === 'Enter' && current.matches.length) {\n event.preventDefault(); event.stopPropagation()\n editor.chain().focus().insertContentAt({ from: current.query.from, to: current.query.to }, [{ type: 'dsxMention', attrs: { userId: current.matches[current.active]?.id } }, { type: 'text', text: ' ' }]).run()\n setQuery(null)\n }\n }\n editor.on('transaction', update)\n editor.view.dom.addEventListener('keydown', keydown, true)\n return () => { editor.off('transaction', update); editor.view.dom.removeEventListener('keydown', keydown, true) }\n }, [editor])\n if (!query) return null\n return <div className=\"dsx-editor-tools__suggestions\" role=\"group\" aria-label=\"Mention suggestions\">\n <span>People matching @{query.text}</span>\n {matches.map((person, index) => <Button type=\"button\" key={person.id} size=\"lg\" variant={activeIndex === index ? 'secondary' : 'ghost'} onMouseDown={event => event.preventDefault()} onClick={() => { editor.chain().focus().insertContentAt({ from: query.from, to: query.to }, [{ type: 'dsxMention', attrs: { userId: person.id } }, { type: 'text', text: ' ' }]).run(); setQuery(null) }}>{person.label}</Button>)}\n {!matches.length ? <span role=\"status\">No matching people</span> : null}\n </div>\n}\n"],
5
+ "mappings": "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",
6
+ "names": []
7
+ }
@@ -34,7 +34,10 @@ __export(RichTextEditor_exports, {
34
34
  RichTextEditorRoot: () => RichTextEditorRoot,
35
35
  RichTextEditorShell: () => RichTextEditorShell,
36
36
  RichTextEditorToolbar: () => RichTextEditorToolbar,
37
- createRichTextEditorExtensions: () => createRichTextEditorExtensions
37
+ RichTextEditorToolbarButton: () => RichTextEditorToolbarButton,
38
+ createMentionExtension: () => import_editorTokens2.createMentionExtension,
39
+ createRichTextEditorExtensions: () => createRichTextEditorExtensions,
40
+ createVariableExtension: () => import_editorTokens2.createVariableExtension
38
41
  });
39
42
  module.exports = __toCommonJS(RichTextEditor_exports);
40
43
  var React = __toESM(require("react"), 1);
@@ -45,17 +48,21 @@ var import_extractProps = require("../../_internal/helpers/extractProps");
45
48
  var import_richTextEditor = require("./richTextEditor.props");
46
49
  var import_Button = require("../button/Button");
47
50
  var import_Icon = require("../icon/Icon");
51
+ var import_Toolbar = require("../toolbar/Toolbar");
48
52
  var import_articleExtensions = require("../articleNodes/articleExtensions");
53
+ var import_EditorTools = require("./EditorTools");
54
+ var import_editorTokens = require("./editorTokens");
55
+ var import_editorTokens2 = require("./editorTokens");
49
56
  var import_jsx_runtime = require("react/jsx-runtime");
50
57
  const defaultRichTextEditorExtensions = [import_starter_kit.default];
51
58
  function createRichTextEditorExtensions(config = {}) {
52
59
  if (config.extensions) return config.extensions;
53
- return config.preset === "article" ? [import_starter_kit.default.configure({ codeBlock: false }), ...(0, import_articleExtensions.createArticleExtensions)()] : defaultRichTextEditorExtensions;
60
+ return [...config.preset === "article" ? [import_starter_kit.default.configure({ codeBlock: false }), ...(0, import_articleExtensions.createArticleExtensions)()] : defaultRichTextEditorExtensions, ...config.variables ? [(0, import_editorTokens.createVariableExtension)({ variables: config.variables })] : [], ...config.mentions ? [(0, import_editorTokens.createMentionExtension)({ mentions: config.mentions })] : []];
54
61
  }
55
62
  function isRichTextEditorContent(value) {
56
63
  return value === null || typeof value === "string" || typeof value === "object";
57
64
  }
58
- function renderRichTextEditorToolbar(toolbar, editor, disabled) {
65
+ function renderRichTextEditorToolbar(toolbar, editor, disabled, options) {
59
66
  if (toolbar === null) {
60
67
  return null;
61
68
  }
@@ -65,19 +72,23 @@ function renderRichTextEditorToolbar(toolbar, editor, disabled) {
65
72
  if (toolbar !== void 0) {
66
73
  return toolbar;
67
74
  }
68
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(RichTextEditorToolbar, { editor, disabled });
75
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(RichTextEditorToolbar, { editor, disabled, ...options });
69
76
  }
70
77
  function getRichTextEditorAttributes(editorOptions) {
71
78
  const attributes = editorOptions?.editorProps?.attributes;
72
- if (!attributes || typeof attributes === "function") {
73
- return {
74
- class: "dsx-rich-text-editor__prosemirror",
75
- "data-slot": "rich-text-editor-prosemirror"
79
+ if (typeof attributes === "function") {
80
+ return (state) => {
81
+ const resolved = attributes(state);
82
+ return {
83
+ ...resolved,
84
+ class: (0, import_classnames.default)("dsx-rich-text-editor__prosemirror", resolved.class),
85
+ "data-slot": "rich-text-editor-prosemirror"
86
+ };
76
87
  };
77
88
  }
78
89
  return {
79
90
  ...attributes,
80
- class: (0, import_classnames.default)("dsx-rich-text-editor__prosemirror", attributes.class),
91
+ class: (0, import_classnames.default)("dsx-rich-text-editor__prosemirror", attributes?.class),
81
92
  "data-slot": "rich-text-editor-prosemirror"
82
93
  };
83
94
  }
@@ -92,7 +103,7 @@ function getRichTextEditorStatus(editor) {
92
103
  return `${plainText.length} characters`;
93
104
  }
94
105
  const RichTextEditorShell = React.forwardRef(
95
- ({ className: propClassName, disabled = false, editor, placeholder, toolbar, ...props }, forwardedRef) => {
106
+ ({ className: propClassName, disabled = false, editor, placeholder, toolbar, tools, headingLevels, insertItems, variables, mentions, ...props }, forwardedRef) => {
96
107
  const {
97
108
  asChild: _asChild,
98
109
  className,
@@ -115,7 +126,7 @@ const RichTextEditorShell = React.forwardRef(
115
126
  "data-disabled": disabled ? "true" : void 0,
116
127
  "data-slot": "rich-text-editor",
117
128
  children: [
118
- renderRichTextEditorToolbar(toolbar, editor, disabled),
129
+ renderRichTextEditorToolbar(toolbar, editor, disabled, { tools, headingLevels, insertItems, variables, mentions }),
119
130
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)(RichTextEditorContent, { editor, placeholder, disabled }),
120
131
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "dsx-rich-text-editor__status", "data-slot": "rich-text-editor-status", children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { children: getRichTextEditorStatus(editor) }) })
121
132
  ]
@@ -134,7 +145,7 @@ const RichTextEditorToolbarButton = React.forwardRef(
134
145
  },
135
146
  import_richTextEditor.richTextEditorToolbarButtonPropDefs
136
147
  );
137
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
148
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_Toolbar.Toolbar.Button, { asChild: true, disabled: buttonProps.disabled, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
138
149
  import_Button.Button,
139
150
  {
140
151
  ...buttonProps,
@@ -147,200 +158,12 @@ const RichTextEditorToolbarButton = React.forwardRef(
147
158
  "data-slot": "rich-text-editor-toolbar-button",
148
159
  className: (0, import_classnames.default)("dsx-rich-text-editor__toolbar-button", className)
149
160
  }
150
- );
161
+ ) });
151
162
  }
152
163
  );
153
164
  RichTextEditorToolbarButton.displayName = "RichTextEditorToolbarButton";
154
165
  const RichTextEditorToolbar = React.forwardRef(
155
- ({ editor, disabled = false, className, ...props }, forwardedRef) => {
156
- const toolbarDisabled = disabled || !editor;
157
- return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
158
- "div",
159
- {
160
- ...props,
161
- ref: forwardedRef,
162
- className: (0, import_classnames.default)("dsx-rich-text-editor__toolbar", className),
163
- "data-disabled": toolbarDisabled ? "true" : void 0,
164
- "data-slot": "rich-text-editor-toolbar",
165
- role: "toolbar",
166
- "aria-label": "Formatting toolbar",
167
- children: [
168
- /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "dsx-rich-text-editor__toolbar-group", role: "group", "aria-label": "Text style", children: [
169
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { className: "dsx-rich-text-editor__toolbar-label", children: "Text" }),
170
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
171
- RichTextEditorToolbarButton,
172
- {
173
- disabled: toolbarDisabled,
174
- active: editor?.isActive("bold") ?? false,
175
- "aria-label": "Bold",
176
- onMouseDown: (event) => event.preventDefault(),
177
- onClick: () => editor?.chain().focus().toggleBold().run(),
178
- children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_Icon.Icon, { name: "bold", size: "sm" })
179
- }
180
- ),
181
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
182
- RichTextEditorToolbarButton,
183
- {
184
- disabled: toolbarDisabled,
185
- active: editor?.isActive("italic") ?? false,
186
- "aria-label": "Italic",
187
- onMouseDown: (event) => event.preventDefault(),
188
- onClick: () => editor?.chain().focus().toggleItalic().run(),
189
- children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_Icon.Icon, { name: "italic", size: "sm" })
190
- }
191
- ),
192
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
193
- RichTextEditorToolbarButton,
194
- {
195
- disabled: toolbarDisabled,
196
- active: editor?.isActive("strike") ?? false,
197
- "aria-label": "Strikethrough",
198
- onMouseDown: (event) => event.preventDefault(),
199
- onClick: () => editor?.chain().focus().toggleStrike().run(),
200
- children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_Icon.Icon, { name: "strikethrough", size: "sm" })
201
- }
202
- )
203
- ] }),
204
- /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "dsx-rich-text-editor__toolbar-group", role: "group", "aria-label": "Block style", children: [
205
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { className: "dsx-rich-text-editor__toolbar-label", children: "Blocks" }),
206
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
207
- RichTextEditorToolbarButton,
208
- {
209
- disabled: toolbarDisabled,
210
- active: editor?.isActive("heading", { level: 1 }) ?? false,
211
- "aria-label": "Heading 1",
212
- onMouseDown: (event) => event.preventDefault(),
213
- onClick: () => editor?.chain().focus().toggleHeading({ level: 1 }).run(),
214
- children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_Icon.Icon, { name: "heading-1", size: "sm" })
215
- }
216
- ),
217
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
218
- RichTextEditorToolbarButton,
219
- {
220
- disabled: toolbarDisabled,
221
- active: editor?.isActive("heading", { level: 2 }) ?? false,
222
- "aria-label": "Heading",
223
- onMouseDown: (event) => event.preventDefault(),
224
- onClick: () => editor?.chain().focus().toggleHeading({ level: 2 }).run(),
225
- children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_Icon.Icon, { name: "heading-2", size: "sm" })
226
- }
227
- ),
228
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
229
- RichTextEditorToolbarButton,
230
- {
231
- disabled: toolbarDisabled,
232
- active: editor?.isActive("heading", { level: 3 }) ?? false,
233
- "aria-label": "Subheading",
234
- onMouseDown: (event) => event.preventDefault(),
235
- onClick: () => editor?.chain().focus().toggleHeading({ level: 3 }).run(),
236
- children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_Icon.Icon, { name: "heading-3", size: "sm" })
237
- }
238
- ),
239
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
240
- RichTextEditorToolbarButton,
241
- {
242
- disabled: toolbarDisabled,
243
- active: editor?.isActive("bulletList") ?? false,
244
- "aria-label": "Bulleted list",
245
- onMouseDown: (event) => event.preventDefault(),
246
- onClick: () => editor?.chain().focus().toggleBulletList().run(),
247
- children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_Icon.Icon, { name: "list", size: "sm" })
248
- }
249
- ),
250
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
251
- RichTextEditorToolbarButton,
252
- {
253
- disabled: toolbarDisabled,
254
- active: editor?.isActive("orderedList") ?? false,
255
- "aria-label": "Numbered list",
256
- onMouseDown: (event) => event.preventDefault(),
257
- onClick: () => editor?.chain().focus().toggleOrderedList().run(),
258
- children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_Icon.Icon, { name: "list-ordered", size: "sm" })
259
- }
260
- ),
261
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
262
- RichTextEditorToolbarButton,
263
- {
264
- disabled: toolbarDisabled,
265
- active: editor?.isActive("blockquote") ?? false,
266
- "aria-label": "Quote block",
267
- onMouseDown: (event) => event.preventDefault(),
268
- onClick: () => editor?.chain().focus().toggleBlockquote().run(),
269
- children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_Icon.Icon, { name: "quote", size: "sm" })
270
- }
271
- ),
272
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
273
- RichTextEditorToolbarButton,
274
- {
275
- disabled: toolbarDisabled,
276
- active: editor?.isActive("codeBlock") ?? false,
277
- "aria-label": "Code block",
278
- onMouseDown: (event) => event.preventDefault(),
279
- onClick: () => editor?.chain().focus().toggleCodeBlock().run(),
280
- children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_Icon.Icon, { name: "code", size: "sm" })
281
- }
282
- )
283
- ] }),
284
- /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "dsx-rich-text-editor__toolbar-group", role: "group", "aria-label": "Insert", children: [
285
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { className: "dsx-rich-text-editor__toolbar-label", children: "Insert" }),
286
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
287
- RichTextEditorToolbarButton,
288
- {
289
- disabled: toolbarDisabled,
290
- active: editor?.isActive("link") ?? false,
291
- "aria-label": "Link",
292
- onMouseDown: (event) => event.preventDefault(),
293
- onClick: () => {
294
- if (!editor) return;
295
- if (editor.isActive("link")) {
296
- editor.chain().focus().unsetLink().run();
297
- return;
298
- }
299
- const url = window.prompt("URL");
300
- if (!url) return;
301
- editor.chain().focus().extendMarkRange("link").setLink({ href: url }).run();
302
- },
303
- children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_Icon.Icon, { name: "link", size: "sm" })
304
- }
305
- ),
306
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
307
- RichTextEditorToolbarButton,
308
- {
309
- disabled: toolbarDisabled,
310
- "aria-label": "Clear formatting",
311
- onMouseDown: (event) => event.preventDefault(),
312
- onClick: () => editor?.chain().focus().clearNodes().unsetAllMarks().run(),
313
- children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_Icon.Icon, { name: "eraser", size: "sm" })
314
- }
315
- )
316
- ] }),
317
- /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "dsx-rich-text-editor__toolbar-group", role: "group", "aria-label": "History", children: [
318
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { className: "dsx-rich-text-editor__toolbar-label", children: "History" }),
319
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
320
- RichTextEditorToolbarButton,
321
- {
322
- disabled: toolbarDisabled || !editor?.can().undo(),
323
- "aria-label": "Undo",
324
- onMouseDown: (event) => event.preventDefault(),
325
- onClick: () => editor?.chain().focus().undo().run(),
326
- children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_Icon.Icon, { name: "undo", size: "sm" })
327
- }
328
- ),
329
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
330
- RichTextEditorToolbarButton,
331
- {
332
- disabled: toolbarDisabled || !editor?.can().redo(),
333
- "aria-label": "Redo",
334
- onMouseDown: (event) => event.preventDefault(),
335
- onClick: () => editor?.chain().focus().redo().run(),
336
- children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_Icon.Icon, { name: "redo", size: "sm" })
337
- }
338
- )
339
- ] })
340
- ]
341
- }
342
- );
343
- }
166
+ ({ editor, disabled = false, className, tools, headingLevels, insertItems, variables, mentions, ...props }, forwardedRef) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_Toolbar.Toolbar, { asChild: true, dir: props.dir === "rtl" || props.dir === "ltr" ? props.dir : void 0, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { ...props, ref: forwardedRef, className: (0, import_classnames.default)("dsx-rich-text-editor__toolbar", className), "data-disabled": disabled || !editor ? "true" : void 0, "data-slot": "rich-text-editor-toolbar", "aria-label": "Formatting toolbar", children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_EditorTools.EditorTools, { editor, disabled: disabled || !editor, tools, headingLevels, insertItems, variables, mentions }) }) })
344
167
  );
345
168
  RichTextEditorToolbar.displayName = "RichTextEditorToolbar";
346
169
  const RichTextEditorContent = React.forwardRef(
@@ -388,6 +211,11 @@ const RichTextEditorRoot = React.forwardRef(
388
211
  preset = "basic",
389
212
  serialize,
390
213
  toolbar,
214
+ tools,
215
+ headingLevels,
216
+ insertItems,
217
+ variables,
218
+ mentions,
391
219
  ...props
392
220
  }, forwardedRef) => {
393
221
  const managedContent = isRichTextEditorContent(content) ? content : void 0;
@@ -399,12 +227,21 @@ const RichTextEditorRoot = React.forwardRef(
399
227
  onUpdateRef.current = onUpdate;
400
228
  serializeRef.current = serialize;
401
229
  });
230
+ const registryRef = React.useRef({ variables, mentions });
231
+ registryRef.current = { variables, mentions };
232
+ const hasVariables = variables !== void 0;
233
+ const hasMentions = mentions !== void 0;
234
+ const managedExtensions = React.useMemo(() => extensions ?? [
235
+ ...createRichTextEditorExtensions({ preset }),
236
+ ...hasVariables ? [(0, import_editorTokens.createVariableExtension)({ variables: () => registryRef.current.variables ?? [] })] : [],
237
+ ...hasMentions ? [(0, import_editorTokens.createMentionExtension)({ mentions: () => registryRef.current.mentions ?? [] })] : []
238
+ ], [extensions, preset, hasVariables, hasMentions]);
402
239
  const editor = (0, import_react.useEditor)(
403
240
  {
404
241
  ...editorOptions,
405
242
  content: managedContent,
406
243
  editable: !disabled,
407
- extensions: extensions ?? createRichTextEditorExtensions({ preset }),
244
+ extensions: managedExtensions,
408
245
  immediatelyRender: false,
409
246
  shouldRerenderOnTransaction: true,
410
247
  editorProps: {
@@ -416,8 +253,11 @@ const RichTextEditorRoot = React.forwardRef(
416
253
  onUpdateRef.current?.((serializeRef.current ?? ((editorInstance) => editorInstance.getHTML()))(currentEditor));
417
254
  }
418
255
  },
419
- [disabled, editorOptions, extensions, preset]
256
+ [editorOptions, managedExtensions]
420
257
  );
258
+ React.useEffect(() => {
259
+ if (editor && !editor.isDestroyed) editor.view.dispatch(editor.state.tr.setMeta("dsxRegistryRefresh", true));
260
+ }, [editor, variables, mentions]);
421
261
  React.useEffect(() => {
422
262
  editor?.setEditable(!disabled);
423
263
  }, [disabled, editor]);
@@ -447,15 +287,22 @@ const RichTextEditorRoot = React.forwardRef(
447
287
  disabled,
448
288
  editor,
449
289
  placeholder,
450
- toolbar
290
+ toolbar,
291
+ tools,
292
+ headingLevels,
293
+ insertItems,
294
+ variables,
295
+ mentions
451
296
  }
452
297
  );
453
298
  }
454
299
  );
455
300
  RichTextEditorRoot.displayName = "RichTextEditor";
456
301
  const RichTextEditor = Object.assign(RichTextEditorRoot, {
302
+ Root: RichTextEditorRoot,
457
303
  Shell: RichTextEditorShell,
458
304
  Toolbar: RichTextEditorToolbar,
459
- Content: RichTextEditorContent
305
+ Content: RichTextEditorContent,
306
+ ToolbarButton: RichTextEditorToolbarButton
460
307
  });
461
308
  //# sourceMappingURL=RichTextEditor.cjs.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/components/richTextEditor/RichTextEditor.tsx"],
4
- "sourcesContent": ["'use client'\n\nimport * as React from 'react'\nimport classNames from 'classnames'\nimport { EditorContent, useEditor, type Content, type Editor, type UseEditorOptions } from '@tiptap/react'\nimport StarterKit from '@tiptap/starter-kit'\n\nimport { extractProps } from '../../_internal/helpers/extractProps'\nimport { richTextEditorContentPropDefs, richTextEditorPropDefs, richTextEditorToolbarButtonPropDefs } from './richTextEditor.props'\nimport { Button } from '../button/Button'\nimport { Icon } from '../icon/Icon'\nimport { createArticleExtensions } from '../articleNodes/articleExtensions'\n\nimport type { GetPropDefTypes } from '../../_internal/props/propDef'\n\ntype RichTextEditorOwnProps = GetPropDefTypes<typeof richTextEditorPropDefs>\ntype RichTextEditorContentOwnProps = GetPropDefTypes<typeof richTextEditorContentPropDefs>\ntype RichTextEditorToolbarButtonOwnProps = GetPropDefTypes<typeof richTextEditorToolbarButtonPropDefs>\n\ntype RichTextEditorManagedEditorOptions = Omit<UseEditorOptions, 'content' | 'editable' | 'extensions' | 'onUpdate'>\ntype RichTextEditorToolbarSlot = React.ReactNode | ((context: { disabled: boolean; editor: Editor | null }) => React.ReactNode)\n\nconst defaultRichTextEditorExtensions: NonNullable<UseEditorOptions['extensions']> = [StarterKit]\n\ntype RichTextEditorPreset = 'basic' | 'article'\ntype RichTextEditorExtensionConfig = { preset?: RichTextEditorPreset; extensions?: UseEditorOptions['extensions'] }\n\nfunction createRichTextEditorExtensions(config: RichTextEditorExtensionConfig = {}): NonNullable<UseEditorOptions['extensions']> {\n if (config.extensions) return config.extensions\n return config.preset === 'article' ? [StarterKit.configure({ codeBlock: false }), ...createArticleExtensions()] : defaultRichTextEditorExtensions\n}\n\nfunction isRichTextEditorContent(value: unknown): value is Content {\n return value === null || typeof value === 'string' || typeof value === 'object'\n}\n\nfunction renderRichTextEditorToolbar(toolbar: RichTextEditorToolbarSlot | null | undefined, editor: Editor | null, disabled: boolean) {\n if (toolbar === null) {\n return null\n }\n\n if (typeof toolbar === 'function') {\n return toolbar({ disabled, editor })\n }\n\n if (toolbar !== undefined) {\n return toolbar\n }\n\n return <RichTextEditorToolbar editor={editor} disabled={disabled} />\n}\n\nfunction getRichTextEditorAttributes(editorOptions?: RichTextEditorManagedEditorOptions) {\n const attributes = editorOptions?.editorProps?.attributes\n\n if (!attributes || typeof attributes === 'function') {\n return {\n class: 'dsx-rich-text-editor__prosemirror',\n 'data-slot': 'rich-text-editor-prosemirror',\n }\n }\n\n return {\n ...attributes,\n class: classNames('dsx-rich-text-editor__prosemirror', attributes.class),\n 'data-slot': 'rich-text-editor-prosemirror',\n }\n}\n\nfunction getRichTextEditorStatus(editor: Editor | null) {\n if (!editor) {\n return 'Editor loading'\n }\n\n const plainText = editor.getText().trim()\n\n if (plainText.length === 0) {\n return 'Ready to write'\n }\n\n return `${plainText.length} characters`\n}\n\ninterface RichTextEditorProps\n extends Omit<React.HTMLAttributes<HTMLDivElement>, 'content' | 'onUpdate'>,\n RichTextEditorOwnProps {\n content?: unknown\n editorOptions?: RichTextEditorManagedEditorOptions\n extensions?: UseEditorOptions['extensions']\n onEditorUpdate?: (editor: Editor) => void\n onUpdate?: (content: string) => void\n placeholder?: string\n preset?: RichTextEditorPreset\n serialize?: (editor: Editor) => string\n toolbar?: RichTextEditorToolbarSlot | null\n}\n\ninterface RichTextEditorShellProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'children'>, RichTextEditorOwnProps {\n editor: Editor | null\n placeholder?: string\n toolbar?: RichTextEditorToolbarSlot | null\n}\n\ninterface RichTextEditorToolbarProps extends React.HTMLAttributes<HTMLDivElement> {\n editor: Editor | null\n disabled?: boolean\n}\n\ninterface RichTextEditorContentProps\n extends Omit<React.HTMLAttributes<HTMLDivElement>, 'children'>,\n RichTextEditorContentOwnProps {\n editor: Editor | null\n placeholder?: string\n}\n\ninterface RichTextEditorToolbarButtonProps\n extends React.ButtonHTMLAttributes<HTMLButtonElement>,\n RichTextEditorToolbarButtonOwnProps {}\n\nconst RichTextEditorShell = React.forwardRef<HTMLDivElement, RichTextEditorShellProps>(\n ({ className: propClassName, disabled = false, editor, placeholder, toolbar, ...props }, forwardedRef) => {\n const {\n asChild: _asChild,\n className,\n ...editorProps\n } = extractProps(\n {\n ...props,\n className: propClassName,\n disabled,\n },\n richTextEditorPropDefs,\n )\n\n return (\n <div\n {...editorProps}\n ref={forwardedRef}\n className={classNames('dsx-rich-text-editor', className)}\n aria-disabled={disabled}\n data-disabled={disabled ? 'true' : undefined}\n data-slot=\"rich-text-editor\"\n >\n {renderRichTextEditorToolbar(toolbar, editor, disabled)}\n <RichTextEditorContent editor={editor} placeholder={placeholder} disabled={disabled} />\n <div className=\"dsx-rich-text-editor__status\" data-slot=\"rich-text-editor-status\">\n <span>{getRichTextEditorStatus(editor)}</span>\n </div>\n </div>\n )\n },\n)\nRichTextEditorShell.displayName = 'RichTextEditorShell'\n\nconst RichTextEditorToolbarButton = React.forwardRef<HTMLButtonElement, RichTextEditorToolbarButtonProps>(\n ({ active = false, className: propClassName, ...props }, forwardedRef) => {\n const { asChild, className, ...buttonProps } = extractProps(\n {\n ...props,\n className: propClassName,\n active,\n },\n richTextEditorToolbarButtonPropDefs,\n )\n\n return (\n <Button\n {...buttonProps}\n ref={forwardedRef}\n asChild={asChild}\n variant=\"ghost\"\n size=\"sm\"\n aria-pressed={active}\n data-active={active ? 'true' : undefined}\n data-slot=\"rich-text-editor-toolbar-button\"\n className={classNames('dsx-rich-text-editor__toolbar-button', className)}\n />\n )\n },\n)\nRichTextEditorToolbarButton.displayName = 'RichTextEditorToolbarButton'\n\nconst RichTextEditorToolbar = React.forwardRef<HTMLDivElement, RichTextEditorToolbarProps>(\n ({ editor, disabled = false, className, ...props }, forwardedRef) => {\n const toolbarDisabled = disabled || !editor\n\n return (\n <div\n {...props}\n ref={forwardedRef}\n className={classNames('dsx-rich-text-editor__toolbar', className)}\n data-disabled={toolbarDisabled ? 'true' : undefined}\n data-slot=\"rich-text-editor-toolbar\"\n role=\"toolbar\"\n aria-label=\"Formatting toolbar\"\n >\n <div className=\"dsx-rich-text-editor__toolbar-group\" role=\"group\" aria-label=\"Text style\">\n <span className=\"dsx-rich-text-editor__toolbar-label\">Text</span>\n <RichTextEditorToolbarButton\n disabled={toolbarDisabled}\n active={editor?.isActive('bold') ?? false}\n aria-label=\"Bold\"\n onMouseDown={(event) => event.preventDefault()}\n onClick={() => editor?.chain().focus().toggleBold().run()}\n >\n <Icon name=\"bold\" size=\"sm\" />\n </RichTextEditorToolbarButton>\n <RichTextEditorToolbarButton\n disabled={toolbarDisabled}\n active={editor?.isActive('italic') ?? false}\n aria-label=\"Italic\"\n onMouseDown={(event) => event.preventDefault()}\n onClick={() => editor?.chain().focus().toggleItalic().run()}\n >\n <Icon name=\"italic\" size=\"sm\" />\n </RichTextEditorToolbarButton>\n <RichTextEditorToolbarButton\n disabled={toolbarDisabled}\n active={editor?.isActive('strike') ?? false}\n aria-label=\"Strikethrough\"\n onMouseDown={(event) => event.preventDefault()}\n onClick={() => editor?.chain().focus().toggleStrike().run()}\n >\n <Icon name=\"strikethrough\" size=\"sm\" />\n </RichTextEditorToolbarButton>\n </div>\n <div className=\"dsx-rich-text-editor__toolbar-group\" role=\"group\" aria-label=\"Block style\">\n <span className=\"dsx-rich-text-editor__toolbar-label\">Blocks</span>\n <RichTextEditorToolbarButton\n disabled={toolbarDisabled}\n active={editor?.isActive('heading', { level: 1 }) ?? false}\n aria-label=\"Heading 1\"\n onMouseDown={(event) => event.preventDefault()}\n onClick={() => editor?.chain().focus().toggleHeading({ level: 1 }).run()}\n >\n <Icon name=\"heading-1\" size=\"sm\" />\n </RichTextEditorToolbarButton>\n <RichTextEditorToolbarButton\n disabled={toolbarDisabled}\n active={editor?.isActive('heading', { level: 2 }) ?? false}\n aria-label=\"Heading\"\n onMouseDown={(event) => event.preventDefault()}\n onClick={() => editor?.chain().focus().toggleHeading({ level: 2 }).run()}\n >\n <Icon name=\"heading-2\" size=\"sm\" />\n </RichTextEditorToolbarButton>\n <RichTextEditorToolbarButton\n disabled={toolbarDisabled}\n active={editor?.isActive('heading', { level: 3 }) ?? false}\n aria-label=\"Subheading\"\n onMouseDown={(event) => event.preventDefault()}\n onClick={() => editor?.chain().focus().toggleHeading({ level: 3 }).run()}\n >\n <Icon name=\"heading-3\" size=\"sm\" />\n </RichTextEditorToolbarButton>\n <RichTextEditorToolbarButton\n disabled={toolbarDisabled}\n active={editor?.isActive('bulletList') ?? false}\n aria-label=\"Bulleted list\"\n onMouseDown={(event) => event.preventDefault()}\n onClick={() => editor?.chain().focus().toggleBulletList().run()}\n >\n <Icon name=\"list\" size=\"sm\" />\n </RichTextEditorToolbarButton>\n <RichTextEditorToolbarButton\n disabled={toolbarDisabled}\n active={editor?.isActive('orderedList') ?? false}\n aria-label=\"Numbered list\"\n onMouseDown={(event) => event.preventDefault()}\n onClick={() => editor?.chain().focus().toggleOrderedList().run()}\n >\n <Icon name=\"list-ordered\" size=\"sm\" />\n </RichTextEditorToolbarButton>\n <RichTextEditorToolbarButton\n disabled={toolbarDisabled}\n active={editor?.isActive('blockquote') ?? false}\n aria-label=\"Quote block\"\n onMouseDown={(event) => event.preventDefault()}\n onClick={() => editor?.chain().focus().toggleBlockquote().run()}\n >\n <Icon name=\"quote\" size=\"sm\" />\n </RichTextEditorToolbarButton>\n <RichTextEditorToolbarButton\n disabled={toolbarDisabled}\n active={editor?.isActive('codeBlock') ?? false}\n aria-label=\"Code block\"\n onMouseDown={(event) => event.preventDefault()}\n onClick={() => editor?.chain().focus().toggleCodeBlock().run()}\n >\n <Icon name=\"code\" size=\"sm\" />\n </RichTextEditorToolbarButton>\n </div>\n <div className=\"dsx-rich-text-editor__toolbar-group\" role=\"group\" aria-label=\"Insert\">\n <span className=\"dsx-rich-text-editor__toolbar-label\">Insert</span>\n <RichTextEditorToolbarButton\n disabled={toolbarDisabled}\n active={editor?.isActive('link') ?? false}\n aria-label=\"Link\"\n onMouseDown={(event) => event.preventDefault()}\n onClick={() => {\n if (!editor) return\n if (editor.isActive('link')) {\n editor.chain().focus().unsetLink().run()\n return\n }\n const url = window.prompt('URL')\n if (!url) return\n editor.chain().focus().extendMarkRange('link').setLink({ href: url }).run()\n }}\n >\n <Icon name=\"link\" size=\"sm\" />\n </RichTextEditorToolbarButton>\n <RichTextEditorToolbarButton\n disabled={toolbarDisabled}\n aria-label=\"Clear formatting\"\n onMouseDown={(event) => event.preventDefault()}\n onClick={() => editor?.chain().focus().clearNodes().unsetAllMarks().run()}\n >\n <Icon name=\"eraser\" size=\"sm\" />\n </RichTextEditorToolbarButton>\n </div>\n <div className=\"dsx-rich-text-editor__toolbar-group\" role=\"group\" aria-label=\"History\">\n <span className=\"dsx-rich-text-editor__toolbar-label\">History</span>\n <RichTextEditorToolbarButton\n disabled={toolbarDisabled || !editor?.can().undo()}\n aria-label=\"Undo\"\n onMouseDown={(event) => event.preventDefault()}\n onClick={() => editor?.chain().focus().undo().run()}\n >\n <Icon name=\"undo\" size=\"sm\" />\n </RichTextEditorToolbarButton>\n <RichTextEditorToolbarButton\n disabled={toolbarDisabled || !editor?.can().redo()}\n aria-label=\"Redo\"\n onMouseDown={(event) => event.preventDefault()}\n onClick={() => editor?.chain().focus().redo().run()}\n >\n <Icon name=\"redo\" size=\"sm\" />\n </RichTextEditorToolbarButton>\n </div>\n </div>\n )\n },\n)\nRichTextEditorToolbar.displayName = 'RichTextEditorToolbar'\n\nconst RichTextEditorContent = React.forwardRef<HTMLDivElement, RichTextEditorContentProps>(\n ({ className: propClassName, disabled = false, editor, placeholder, ...props }, forwardedRef) => {\n const {\n asChild: _asChild,\n className,\n mode: _mode,\n ...contentProps\n } = extractProps(\n {\n ...props,\n className: propClassName,\n disabled,\n },\n richTextEditorContentPropDefs,\n )\n\n return (\n <div\n {...contentProps}\n ref={forwardedRef}\n className={classNames('dsx-rich-text-editor__area', className)}\n data-disabled={disabled ? 'true' : undefined}\n data-slot=\"rich-text-editor-area\"\n >\n {editor?.isEmpty && placeholder ? (\n <div className=\"dsx-rich-text-editor__placeholder\" data-slot=\"rich-text-editor-placeholder\">\n {placeholder}\n </div>\n ) : null}\n <EditorContent editor={editor} className=\"dsx-rich-text-editor__content\" data-slot=\"rich-text-editor-content\" />\n </div>\n )\n },\n)\nRichTextEditorContent.displayName = 'RichTextEditorContent'\n\nconst RichTextEditorRoot = React.forwardRef<HTMLDivElement, RichTextEditorProps>(\n (\n {\n className,\n content = '',\n disabled = false,\n editorOptions,\n extensions,\n onEditorUpdate,\n onUpdate,\n placeholder,\n preset = 'basic',\n serialize,\n toolbar,\n ...props\n },\n forwardedRef,\n ) => {\n const managedContent = isRichTextEditorContent(content) ? content : undefined\n\n const onEditorUpdateRef = React.useRef(onEditorUpdate)\n const onUpdateRef = React.useRef(onUpdate)\n const serializeRef = React.useRef(serialize)\n\n React.useEffect(() => {\n onEditorUpdateRef.current = onEditorUpdate\n onUpdateRef.current = onUpdate\n serializeRef.current = serialize\n })\n\n const editor = useEditor(\n {\n ...editorOptions,\n content: managedContent,\n editable: !disabled,\n extensions: extensions ?? createRichTextEditorExtensions({ preset }),\n immediatelyRender: false,\n shouldRerenderOnTransaction: true,\n editorProps: {\n ...editorOptions?.editorProps,\n attributes: getRichTextEditorAttributes(editorOptions),\n },\n onUpdate: ({ editor: currentEditor }) => {\n onEditorUpdateRef.current?.(currentEditor)\n onUpdateRef.current?.((serializeRef.current ?? ((editorInstance: Editor) => editorInstance.getHTML()))(currentEditor))\n },\n },\n [disabled, editorOptions, extensions, preset],\n )\n\n React.useEffect(() => {\n editor?.setEditable(!disabled)\n }, [disabled, editor])\n\n React.useEffect(() => {\n if (!editor) {\n return\n }\n\n if (managedContent === undefined) {\n return\n }\n\n if (typeof managedContent === 'string') {\n if (editor.getHTML() !== managedContent) {\n editor.commands.setContent(managedContent, { emitUpdate: false })\n }\n\n return\n }\n\n if (JSON.stringify(editor.getJSON()) !== JSON.stringify(managedContent)) {\n editor.commands.setContent(managedContent, { emitUpdate: false })\n }\n }, [editor, managedContent])\n\n return (\n <RichTextEditorShell\n {...props}\n ref={forwardedRef}\n className={className}\n disabled={disabled}\n editor={editor}\n placeholder={placeholder}\n toolbar={toolbar}\n />\n )\n },\n)\nRichTextEditorRoot.displayName = 'RichTextEditor'\n\nconst RichTextEditor: typeof RichTextEditorRoot & {\n Shell: typeof RichTextEditorShell\n Toolbar: typeof RichTextEditorToolbar\n Content: typeof RichTextEditorContent\n} = Object.assign(RichTextEditorRoot, {\n Shell: RichTextEditorShell,\n Toolbar: RichTextEditorToolbar,\n Content: RichTextEditorContent,\n})\n\nexport { RichTextEditor, RichTextEditorContent, RichTextEditorRoot, RichTextEditorShell, RichTextEditorToolbar, createRichTextEditorExtensions }\nexport type {\n RichTextEditorContentProps,\n RichTextEditorProps,\n RichTextEditorShellProps,\n RichTextEditorToolbarProps,\n RichTextEditorToolbarSlot,\n RichTextEditorPreset,\n RichTextEditorExtensionConfig,\n}\n"],
5
- "mappings": "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",
6
- "names": ["StarterKit", "classNames"]
4
+ "sourcesContent": ["'use client'\n\nimport * as React from 'react'\nimport classNames from 'classnames'\nimport { EditorContent, useEditor, type Content, type Editor, type UseEditorOptions } from '@tiptap/react'\nimport StarterKit from '@tiptap/starter-kit'\n\nimport { extractProps } from '../../_internal/helpers/extractProps'\nimport { richTextEditorContentPropDefs, richTextEditorPropDefs, richTextEditorToolbarButtonPropDefs } from './richTextEditor.props'\nimport { Button } from '../button/Button'\nimport { Icon } from '../icon/Icon'\nimport { Toolbar } from '../toolbar/Toolbar'\nimport { createArticleExtensions } from '../articleNodes/articleExtensions'\nimport { EditorTools, type EditorToolsOptions } from './EditorTools'\nimport { createVariableExtension, createMentionExtension } from './editorTokens'\n\nimport type { GetPropDefTypes } from '../../_internal/props/propDef'\n\ntype RichTextEditorOwnProps = GetPropDefTypes<typeof richTextEditorPropDefs>\ntype RichTextEditorContentOwnProps = GetPropDefTypes<typeof richTextEditorContentPropDefs>\ntype RichTextEditorToolbarButtonOwnProps = GetPropDefTypes<typeof richTextEditorToolbarButtonPropDefs>\n\ntype RichTextEditorManagedEditorOptions = Omit<UseEditorOptions, 'content' | 'editable' | 'extensions' | 'onUpdate'>\ntype RichTextEditorToolbarSlot = React.ReactNode | ((context: { disabled: boolean; editor: Editor | null }) => React.ReactNode)\n\nconst defaultRichTextEditorExtensions: NonNullable<UseEditorOptions['extensions']> = [StarterKit]\n\ntype RichTextEditorPreset = 'basic' | 'article'\ntype RichTextEditorExtensionConfig = Pick<EditorToolsOptions, 'variables' | 'mentions'> & { preset?: RichTextEditorPreset; extensions?: UseEditorOptions['extensions'] }\n\nfunction createRichTextEditorExtensions(config: RichTextEditorExtensionConfig = {}): NonNullable<UseEditorOptions['extensions']> {\n if (config.extensions) return config.extensions\n return [...(config.preset === 'article' ? [StarterKit.configure({ codeBlock: false }), ...createArticleExtensions()] : defaultRichTextEditorExtensions), ...(config.variables ? [createVariableExtension({ variables: config.variables })] : []), ...(config.mentions ? [createMentionExtension({ mentions: config.mentions })] : [])]\n}\n\nfunction isRichTextEditorContent(value: unknown): value is Content {\n return value === null || typeof value === 'string' || typeof value === 'object'\n}\n\nfunction renderRichTextEditorToolbar(toolbar: RichTextEditorToolbarSlot | null | undefined, editor: Editor | null, disabled: boolean, options: EditorToolsOptions) {\n if (toolbar === null) {\n return null\n }\n\n if (typeof toolbar === 'function') {\n return toolbar({ disabled, editor })\n }\n\n if (toolbar !== undefined) {\n return toolbar\n }\n\n return <RichTextEditorToolbar editor={editor} disabled={disabled} {...options} />\n}\n\nfunction getRichTextEditorAttributes(editorOptions?: RichTextEditorManagedEditorOptions): NonNullable<NonNullable<UseEditorOptions['editorProps']>['attributes']> {\n const attributes = editorOptions?.editorProps?.attributes\n if (typeof attributes === 'function') {\n return (state) => {\n const resolved = attributes(state)\n return {\n ...resolved,\n class: classNames('dsx-rich-text-editor__prosemirror', resolved.class),\n 'data-slot': 'rich-text-editor-prosemirror',\n }\n }\n }\n\n return {\n ...attributes,\n class: classNames('dsx-rich-text-editor__prosemirror', attributes?.class),\n 'data-slot': 'rich-text-editor-prosemirror',\n }\n}\n\nfunction getRichTextEditorStatus(editor: Editor | null) {\n if (!editor) {\n return 'Editor loading'\n }\n\n const plainText = editor.getText().trim()\n\n if (plainText.length === 0) {\n return 'Ready to write'\n }\n\n return `${plainText.length} characters`\n}\n\ninterface RichTextEditorProps\n extends Omit<React.HTMLAttributes<HTMLDivElement>, 'content' | 'onUpdate'>,\n RichTextEditorOwnProps, EditorToolsOptions {\n content?: unknown\n editorOptions?: RichTextEditorManagedEditorOptions\n extensions?: UseEditorOptions['extensions']\n onEditorUpdate?: (editor: Editor) => void\n onUpdate?: (content: string) => void\n placeholder?: string\n preset?: RichTextEditorPreset\n serialize?: (editor: Editor) => string\n toolbar?: RichTextEditorToolbarSlot | null\n}\n\ninterface RichTextEditorShellProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'children'>, RichTextEditorOwnProps, EditorToolsOptions {\n editor: Editor | null\n placeholder?: string\n toolbar?: RichTextEditorToolbarSlot | null\n}\n\ninterface RichTextEditorToolbarProps extends React.HTMLAttributes<HTMLDivElement>, EditorToolsOptions {\n editor: Editor | null\n disabled?: boolean\n}\n\ninterface RichTextEditorContentProps\n extends Omit<React.HTMLAttributes<HTMLDivElement>, 'children'>,\n RichTextEditorContentOwnProps {\n editor: Editor | null\n placeholder?: string\n}\n\ninterface RichTextEditorToolbarButtonProps\n extends React.ButtonHTMLAttributes<HTMLButtonElement>,\n RichTextEditorToolbarButtonOwnProps {}\n\nconst RichTextEditorShell = React.forwardRef<HTMLDivElement, RichTextEditorShellProps>(\n ({ className: propClassName, disabled = false, editor, placeholder, toolbar, tools, headingLevels, insertItems, variables, mentions, ...props }, forwardedRef) => {\n const {\n asChild: _asChild,\n className,\n ...editorProps\n } = extractProps(\n {\n ...props,\n className: propClassName,\n disabled,\n },\n richTextEditorPropDefs,\n )\n\n return (\n <div\n {...editorProps}\n ref={forwardedRef}\n className={classNames('dsx-rich-text-editor', className)}\n aria-disabled={disabled}\n data-disabled={disabled ? 'true' : undefined}\n data-slot=\"rich-text-editor\"\n >\n {renderRichTextEditorToolbar(toolbar, editor, disabled, { tools, headingLevels, insertItems, variables, mentions })}\n <RichTextEditorContent editor={editor} placeholder={placeholder} disabled={disabled} />\n <div className=\"dsx-rich-text-editor__status\" data-slot=\"rich-text-editor-status\">\n <span>{getRichTextEditorStatus(editor)}</span>\n </div>\n </div>\n )\n },\n)\nRichTextEditorShell.displayName = 'RichTextEditorShell'\n\nconst RichTextEditorToolbarButton = React.forwardRef<HTMLButtonElement, RichTextEditorToolbarButtonProps>(\n ({ active = false, className: propClassName, ...props }, forwardedRef) => {\n const { asChild, className, ...buttonProps } = extractProps(\n {\n ...props,\n className: propClassName,\n active,\n },\n richTextEditorToolbarButtonPropDefs,\n )\n\n return (\n <Toolbar.Button asChild disabled={buttonProps.disabled}>\n <Button\n {...buttonProps}\n ref={forwardedRef}\n asChild={asChild}\n variant=\"ghost\"\n size=\"sm\"\n aria-pressed={active}\n data-active={active ? 'true' : undefined}\n data-slot=\"rich-text-editor-toolbar-button\"\n className={classNames('dsx-rich-text-editor__toolbar-button', className)}\n />\n </Toolbar.Button>\n )\n },\n)\nRichTextEditorToolbarButton.displayName = 'RichTextEditorToolbarButton'\n\nconst RichTextEditorToolbar = React.forwardRef<HTMLDivElement, RichTextEditorToolbarProps>(\n ({ editor, disabled = false, className, tools, headingLevels, insertItems, variables, mentions, ...props }, forwardedRef) => (\n <Toolbar asChild dir={props.dir === 'rtl' || props.dir === 'ltr' ? props.dir : undefined}>\n <div {...props} ref={forwardedRef} className={classNames('dsx-rich-text-editor__toolbar', className)} data-disabled={disabled || !editor ? 'true' : undefined} data-slot=\"rich-text-editor-toolbar\" aria-label=\"Formatting toolbar\">\n <EditorTools editor={editor} disabled={disabled || !editor} tools={tools} headingLevels={headingLevels} insertItems={insertItems} variables={variables} mentions={mentions} />\n </div>\n </Toolbar>\n ),\n)\nRichTextEditorToolbar.displayName = 'RichTextEditorToolbar'\n\nconst RichTextEditorContent = React.forwardRef<HTMLDivElement, RichTextEditorContentProps>(\n ({ className: propClassName, disabled = false, editor, placeholder, ...props }, forwardedRef) => {\n const {\n asChild: _asChild,\n className,\n mode: _mode,\n ...contentProps\n } = extractProps(\n {\n ...props,\n className: propClassName,\n disabled,\n },\n richTextEditorContentPropDefs,\n )\n\n return (\n <div\n {...contentProps}\n ref={forwardedRef}\n className={classNames('dsx-rich-text-editor__area', className)}\n data-disabled={disabled ? 'true' : undefined}\n data-slot=\"rich-text-editor-area\"\n >\n {editor?.isEmpty && placeholder ? (\n <div className=\"dsx-rich-text-editor__placeholder\" data-slot=\"rich-text-editor-placeholder\">\n {placeholder}\n </div>\n ) : null}\n <EditorContent editor={editor} className=\"dsx-rich-text-editor__content\" data-slot=\"rich-text-editor-content\" />\n </div>\n )\n },\n)\nRichTextEditorContent.displayName = 'RichTextEditorContent'\n\nconst RichTextEditorRoot = React.forwardRef<HTMLDivElement, RichTextEditorProps>(\n (\n {\n className,\n content = '',\n disabled = false,\n editorOptions,\n extensions,\n onEditorUpdate,\n onUpdate,\n placeholder,\n preset = 'basic',\n serialize,\n toolbar, tools, headingLevels, insertItems, variables, mentions,\n ...props\n },\n forwardedRef,\n ) => {\n const managedContent = isRichTextEditorContent(content) ? content : undefined\n\n const onEditorUpdateRef = React.useRef(onEditorUpdate)\n const onUpdateRef = React.useRef(onUpdate)\n const serializeRef = React.useRef(serialize)\n\n React.useEffect(() => {\n onEditorUpdateRef.current = onEditorUpdate\n onUpdateRef.current = onUpdate\n serializeRef.current = serialize\n })\n\n const registryRef = React.useRef({ variables, mentions })\n registryRef.current = { variables, mentions }\n const hasVariables = variables !== undefined\n const hasMentions = mentions !== undefined\n const managedExtensions = React.useMemo(() => extensions ?? [\n ...createRichTextEditorExtensions({ preset }),\n ...(hasVariables ? [createVariableExtension({ variables: () => registryRef.current.variables ?? [] })] : []),\n ...(hasMentions ? [createMentionExtension({ mentions: () => registryRef.current.mentions ?? [] })] : []),\n ], [extensions, preset, hasVariables, hasMentions])\n\n const editor = useEditor(\n {\n ...editorOptions,\n content: managedContent,\n editable: !disabled,\n extensions: managedExtensions,\n immediatelyRender: false,\n shouldRerenderOnTransaction: true,\n editorProps: {\n ...editorOptions?.editorProps,\n attributes: getRichTextEditorAttributes(editorOptions),\n },\n onUpdate: ({ editor: currentEditor }) => {\n onEditorUpdateRef.current?.(currentEditor)\n onUpdateRef.current?.((serializeRef.current ?? ((editorInstance: Editor) => editorInstance.getHTML()))(currentEditor))\n },\n },\n [editorOptions, managedExtensions],\n )\n\n React.useEffect(() => {\n if (editor && !editor.isDestroyed) editor.view.dispatch(editor.state.tr.setMeta('dsxRegistryRefresh', true))\n }, [editor, variables, mentions])\n\n React.useEffect(() => {\n editor?.setEditable(!disabled)\n }, [disabled, editor])\n\n React.useEffect(() => {\n if (!editor) {\n return\n }\n\n if (managedContent === undefined) {\n return\n }\n\n if (typeof managedContent === 'string') {\n if (editor.getHTML() !== managedContent) {\n editor.commands.setContent(managedContent, { emitUpdate: false })\n }\n\n return\n }\n\n if (JSON.stringify(editor.getJSON()) !== JSON.stringify(managedContent)) {\n editor.commands.setContent(managedContent, { emitUpdate: false })\n }\n }, [editor, managedContent])\n\n return (\n <RichTextEditorShell\n {...props}\n ref={forwardedRef}\n className={className}\n disabled={disabled}\n editor={editor}\n placeholder={placeholder}\n toolbar={toolbar}\n tools={tools} headingLevels={headingLevels} insertItems={insertItems} variables={variables} mentions={mentions}\n />\n )\n },\n)\nRichTextEditorRoot.displayName = 'RichTextEditor'\n\nconst RichTextEditor: typeof RichTextEditorRoot & {\n Root: typeof RichTextEditorRoot\n Shell: typeof RichTextEditorShell\n Toolbar: typeof RichTextEditorToolbar\n Content: typeof RichTextEditorContent\n ToolbarButton: typeof RichTextEditorToolbarButton\n} = Object.assign(RichTextEditorRoot, {\n Root: RichTextEditorRoot,\n Shell: RichTextEditorShell,\n Toolbar: RichTextEditorToolbar,\n Content: RichTextEditorContent,\n ToolbarButton: RichTextEditorToolbarButton,\n})\n\nexport { RichTextEditor, RichTextEditorContent, RichTextEditorRoot, RichTextEditorShell, RichTextEditorToolbar, RichTextEditorToolbarButton, createRichTextEditorExtensions }\nexport type {\n RichTextEditorContentProps,\n RichTextEditorProps,\n RichTextEditorShellProps,\n RichTextEditorToolbarProps,\n RichTextEditorToolbarButtonProps,\n RichTextEditorToolbarSlot,\n RichTextEditorPreset,\n RichTextEditorExtensionConfig,\n}\n\nexport { createVariableExtension, createMentionExtension } from './editorTokens'\nexport type { EditorVariable, EditorMention } from './editorTokens'\nexport type { EditorTool, EditorInsertItem, EditorToolsOptions } from './EditorTools'\n"],
5
+ "mappings": "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",
6
+ "names": ["import_editorTokens", "StarterKit", "classNames"]
7
7
  }