@liveblocks/react-ui 2.25.0-aiprivatebeta0 → 2.25.0-aiprivatebeta10

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 (273) hide show
  1. package/dist/_private/index.cjs +18 -10
  2. package/dist/_private/index.cjs.map +1 -1
  3. package/dist/_private/index.d.cts +204 -172
  4. package/dist/_private/index.d.ts +204 -172
  5. package/dist/_private/index.js +12 -5
  6. package/dist/_private/index.js.map +1 -1
  7. package/dist/components/AiChat.cjs +185 -0
  8. package/dist/components/AiChat.cjs.map +1 -0
  9. package/dist/components/AiChat.js +183 -0
  10. package/dist/components/AiChat.js.map +1 -0
  11. package/dist/components/AiTool.cjs +164 -0
  12. package/dist/components/AiTool.cjs.map +1 -0
  13. package/dist/components/AiTool.js +162 -0
  14. package/dist/components/AiTool.js.map +1 -0
  15. package/dist/components/Comment.cjs +7 -5
  16. package/dist/components/Comment.cjs.map +1 -1
  17. package/dist/components/Comment.js +7 -5
  18. package/dist/components/Comment.js.map +1 -1
  19. package/dist/components/Composer.cjs +1 -2
  20. package/dist/components/Composer.cjs.map +1 -1
  21. package/dist/components/Composer.js +1 -2
  22. package/dist/components/Composer.js.map +1 -1
  23. package/dist/components/InboxNotificationList.cjs +11 -3
  24. package/dist/components/InboxNotificationList.cjs.map +1 -1
  25. package/dist/components/InboxNotificationList.js +12 -4
  26. package/dist/components/InboxNotificationList.js.map +1 -1
  27. package/dist/components/Thread.cjs +3 -3
  28. package/dist/components/Thread.cjs.map +1 -1
  29. package/dist/components/Thread.js +3 -3
  30. package/dist/components/Thread.js.map +1 -1
  31. package/dist/components/internal/AiChatAssistantMessage.cjs +74 -291
  32. package/dist/components/internal/AiChatAssistantMessage.cjs.map +1 -1
  33. package/dist/components/internal/AiChatAssistantMessage.js +76 -293
  34. package/dist/components/internal/AiChatAssistantMessage.js.map +1 -1
  35. package/dist/components/internal/AiChatComposer.cjs +58 -282
  36. package/dist/components/internal/AiChatComposer.cjs.map +1 -1
  37. package/dist/components/internal/AiChatComposer.js +63 -283
  38. package/dist/components/internal/AiChatComposer.js.map +1 -1
  39. package/dist/components/internal/AiChatUserMessage.cjs +26 -169
  40. package/dist/components/internal/AiChatUserMessage.cjs.map +1 -1
  41. package/dist/components/internal/AiChatUserMessage.js +28 -171
  42. package/dist/components/internal/AiChatUserMessage.js.map +1 -1
  43. package/dist/components/internal/Button.cjs.map +1 -1
  44. package/dist/components/internal/Button.js.map +1 -1
  45. package/dist/components/internal/CodeBlock.cjs +72 -0
  46. package/dist/components/internal/CodeBlock.cjs.map +1 -0
  47. package/dist/components/internal/CodeBlock.js +70 -0
  48. package/dist/components/internal/CodeBlock.js.map +1 -0
  49. package/dist/components/internal/Emoji.cjs +12 -4
  50. package/dist/components/internal/Emoji.cjs.map +1 -1
  51. package/dist/components/internal/Emoji.js +12 -4
  52. package/dist/components/internal/Emoji.js.map +1 -1
  53. package/dist/components/internal/Prose.cjs +37 -0
  54. package/dist/components/internal/Prose.cjs.map +1 -0
  55. package/dist/components/internal/Prose.js +35 -0
  56. package/dist/components/internal/Prose.js.map +1 -0
  57. package/dist/constants.cjs +2 -0
  58. package/dist/constants.cjs.map +1 -1
  59. package/dist/constants.js +2 -1
  60. package/dist/constants.js.map +1 -1
  61. package/dist/icon.cjs +6 -0
  62. package/dist/icon.cjs.map +1 -1
  63. package/dist/icon.js +3 -0
  64. package/dist/icon.js.map +1 -1
  65. package/dist/icons/{Resolve.cjs → CheckCircle.cjs} +3 -3
  66. package/dist/icons/CheckCircle.cjs.map +1 -0
  67. package/dist/icons/{Resolve.js → CheckCircle.js} +3 -3
  68. package/dist/icons/CheckCircle.js.map +1 -0
  69. package/dist/icons/{Resolved.cjs → CheckCircleFill.cjs} +3 -3
  70. package/dist/icons/CheckCircleFill.cjs.map +1 -0
  71. package/dist/icons/{Resolved.js → CheckCircleFill.js} +3 -3
  72. package/dist/icons/CheckCircleFill.js.map +1 -0
  73. package/dist/icons/Copy.cjs +8 -9
  74. package/dist/icons/Copy.cjs.map +1 -1
  75. package/dist/icons/Copy.js +8 -9
  76. package/dist/icons/Copy.js.map +1 -1
  77. package/dist/icons/Retry.cjs +21 -0
  78. package/dist/icons/Retry.cjs.map +1 -0
  79. package/dist/icons/Retry.js +19 -0
  80. package/dist/icons/Retry.js.map +1 -0
  81. package/dist/icons/index.cjs +8 -4
  82. package/dist/icons/index.cjs.map +1 -1
  83. package/dist/icons/index.js +4 -2
  84. package/dist/icons/index.js.map +1 -1
  85. package/dist/index.cjs +3 -1
  86. package/dist/index.cjs.map +1 -1
  87. package/dist/index.d.cts +102 -43
  88. package/dist/index.d.ts +102 -43
  89. package/dist/index.js +2 -1
  90. package/dist/index.js.map +1 -1
  91. package/dist/overrides.cjs +6 -12
  92. package/dist/overrides.cjs.map +1 -1
  93. package/dist/overrides.js +6 -12
  94. package/dist/overrides.js.map +1 -1
  95. package/dist/primitives/AiChatComposer/index.cjs +202 -0
  96. package/dist/primitives/AiChatComposer/index.cjs.map +1 -0
  97. package/dist/primitives/AiChatComposer/index.js +195 -0
  98. package/dist/primitives/AiChatComposer/index.js.map +1 -0
  99. package/dist/primitives/AiMessage/contexts.cjs +18 -0
  100. package/dist/primitives/AiMessage/contexts.cjs.map +1 -0
  101. package/dist/primitives/AiMessage/contexts.js +15 -0
  102. package/dist/primitives/AiMessage/contexts.js.map +1 -0
  103. package/dist/primitives/AiMessage/index.cjs +134 -0
  104. package/dist/primitives/AiMessage/index.cjs.map +1 -0
  105. package/dist/primitives/AiMessage/index.js +132 -0
  106. package/dist/primitives/AiMessage/index.js.map +1 -0
  107. package/dist/primitives/Collapsible/index.cjs +127 -0
  108. package/dist/primitives/Collapsible/index.cjs.map +1 -0
  109. package/dist/primitives/Collapsible/index.js +123 -0
  110. package/dist/primitives/Collapsible/index.js.map +1 -0
  111. package/dist/primitives/Comment/index.cjs +2 -2
  112. package/dist/primitives/Comment/index.cjs.map +1 -1
  113. package/dist/primitives/Comment/index.js +1 -1
  114. package/dist/primitives/Comment/index.js.map +1 -1
  115. package/dist/primitives/Composer/index.cjs +19 -14
  116. package/dist/primitives/Composer/index.cjs.map +1 -1
  117. package/dist/primitives/Composer/index.js +18 -13
  118. package/dist/primitives/Composer/index.js.map +1 -1
  119. package/dist/{slate → primitives/Composer/slate}/plugins/auto-formatting.cjs +3 -3
  120. package/dist/primitives/Composer/slate/plugins/auto-formatting.cjs.map +1 -0
  121. package/dist/{slate → primitives/Composer/slate}/plugins/auto-formatting.js +3 -3
  122. package/dist/primitives/Composer/slate/plugins/auto-formatting.js.map +1 -0
  123. package/dist/{slate → primitives/Composer/slate}/plugins/auto-links.cjs +7 -2
  124. package/dist/primitives/Composer/slate/plugins/auto-links.cjs.map +1 -0
  125. package/dist/{slate → primitives/Composer/slate}/plugins/auto-links.js +8 -3
  126. package/dist/primitives/Composer/slate/plugins/auto-links.js.map +1 -0
  127. package/dist/{slate → primitives/Composer/slate}/plugins/custom-links.cjs +8 -3
  128. package/dist/primitives/Composer/slate/plugins/custom-links.cjs.map +1 -0
  129. package/dist/{slate → primitives/Composer/slate}/plugins/custom-links.js +9 -4
  130. package/dist/primitives/Composer/slate/plugins/custom-links.js.map +1 -0
  131. package/dist/{slate → primitives/Composer/slate}/plugins/mentions.cjs +9 -10
  132. package/dist/primitives/Composer/slate/plugins/mentions.cjs.map +1 -0
  133. package/dist/{slate → primitives/Composer/slate}/plugins/mentions.js +6 -6
  134. package/dist/primitives/Composer/slate/plugins/mentions.js.map +1 -0
  135. package/dist/{slate → primitives/Composer/slate}/plugins/paste.cjs +1 -1
  136. package/dist/primitives/Composer/slate/plugins/paste.cjs.map +1 -0
  137. package/dist/{slate → primitives/Composer/slate}/plugins/paste.js +1 -1
  138. package/dist/primitives/Composer/slate/plugins/paste.js.map +1 -0
  139. package/dist/primitives/Composer/utils.cjs +4 -4
  140. package/dist/primitives/Composer/utils.cjs.map +1 -1
  141. package/dist/primitives/Composer/utils.js +4 -4
  142. package/dist/primitives/Composer/utils.js.map +1 -1
  143. package/dist/primitives/{internal/Markdown.cjs → Markdown.cjs} +150 -83
  144. package/dist/primitives/Markdown.cjs.map +1 -0
  145. package/dist/primitives/{internal/Markdown.js → Markdown.js} +151 -83
  146. package/dist/primitives/Markdown.js.map +1 -0
  147. package/dist/primitives/index.cjs +4 -9
  148. package/dist/primitives/index.cjs.map +1 -1
  149. package/dist/primitives/index.d.cts +4 -110
  150. package/dist/primitives/index.d.ts +4 -110
  151. package/dist/primitives/index.js +0 -1
  152. package/dist/primitives/index.js.map +1 -1
  153. package/dist/primitives/slate/plugins/empty-clear-formatting.cjs.map +1 -0
  154. package/dist/primitives/slate/plugins/empty-clear-formatting.js.map +1 -0
  155. package/dist/{slate → primitives/slate}/plugins/normalize.cjs +0 -5
  156. package/dist/primitives/slate/plugins/normalize.cjs.map +1 -0
  157. package/dist/{slate → primitives/slate}/plugins/normalize.js +0 -5
  158. package/dist/primitives/slate/plugins/normalize.js.map +1 -0
  159. package/dist/primitives/slate/utils/get-character.cjs.map +1 -0
  160. package/dist/primitives/slate/utils/get-character.js.map +1 -0
  161. package/dist/primitives/slate/utils/get-dom-range.cjs.map +1 -0
  162. package/dist/primitives/slate/utils/get-dom-range.js.map +1 -0
  163. package/dist/primitives/slate/utils/get-match-range.cjs.map +1 -0
  164. package/dist/primitives/slate/utils/get-match-range.js.map +1 -0
  165. package/dist/primitives/slate/utils/is-empty-string.cjs.map +1 -0
  166. package/dist/primitives/slate/utils/is-empty-string.js.map +1 -0
  167. package/dist/primitives/slate/utils/is-empty.cjs.map +1 -0
  168. package/dist/primitives/slate/utils/is-empty.js.map +1 -0
  169. package/dist/primitives/slate/utils/is-text.cjs.map +1 -0
  170. package/dist/primitives/slate/utils/is-text.js.map +1 -0
  171. package/dist/primitives/slate/utils/is-whitespace-character.cjs.map +1 -0
  172. package/dist/primitives/slate/utils/is-whitespace-character.js.map +1 -0
  173. package/dist/{slate → primitives/slate}/utils/marks.cjs +9 -9
  174. package/dist/primitives/slate/utils/marks.cjs.map +1 -0
  175. package/dist/{slate → primitives/slate}/utils/marks.js +9 -9
  176. package/dist/primitives/slate/utils/marks.js.map +1 -0
  177. package/dist/primitives/slate/utils/selection-contains-inlines.cjs.map +1 -0
  178. package/dist/primitives/slate/utils/selection-contains-inlines.js.map +1 -0
  179. package/dist/utils/ErrorBoundary.cjs +48 -0
  180. package/dist/utils/ErrorBoundary.cjs.map +1 -0
  181. package/dist/utils/ErrorBoundary.js +45 -0
  182. package/dist/utils/ErrorBoundary.js.map +1 -0
  183. package/dist/utils/use-visible.cjs +63 -45
  184. package/dist/utils/use-visible.cjs.map +1 -1
  185. package/dist/utils/use-visible.js +64 -46
  186. package/dist/utils/use-visible.js.map +1 -1
  187. package/dist/version.cjs +1 -1
  188. package/dist/version.cjs.map +1 -1
  189. package/dist/version.js +1 -1
  190. package/dist/version.js.map +1 -1
  191. package/package.json +18 -6
  192. package/src/styles/constants.css +1 -1
  193. package/src/styles/dark/index.css +7 -3
  194. package/src/styles/index.css +640 -307
  195. package/src/styles/utils.css +8 -3
  196. package/styles/dark/attributes.css +1 -1
  197. package/styles/dark/attributes.css.map +1 -1
  198. package/styles/dark/media-query.css +1 -1
  199. package/styles/dark/media-query.css.map +1 -1
  200. package/styles.css +1 -1
  201. package/styles.css.map +1 -1
  202. package/dist/components/AiChat/AiChat.cjs +0 -200
  203. package/dist/components/AiChat/AiChat.cjs.map +0 -1
  204. package/dist/components/AiChat/AiChat.js +0 -198
  205. package/dist/components/AiChat/AiChat.js.map +0 -1
  206. package/dist/icons/Resolve.cjs.map +0 -1
  207. package/dist/icons/Resolve.js.map +0 -1
  208. package/dist/icons/Resolved.cjs.map +0 -1
  209. package/dist/icons/Resolved.js.map +0 -1
  210. package/dist/primitives/Chat/Composer/index.cjs +0 -323
  211. package/dist/primitives/Chat/Composer/index.cjs.map +0 -1
  212. package/dist/primitives/Chat/Composer/index.js +0 -315
  213. package/dist/primitives/Chat/Composer/index.js.map +0 -1
  214. package/dist/primitives/internal/Collapsible.cjs +0 -99
  215. package/dist/primitives/internal/Collapsible.cjs.map +0 -1
  216. package/dist/primitives/internal/Collapsible.js +0 -95
  217. package/dist/primitives/internal/Collapsible.js.map +0 -1
  218. package/dist/primitives/internal/Emoji.cjs +0 -32
  219. package/dist/primitives/internal/Emoji.cjs.map +0 -1
  220. package/dist/primitives/internal/Emoji.js +0 -30
  221. package/dist/primitives/internal/Emoji.js.map +0 -1
  222. package/dist/primitives/internal/Markdown.cjs.map +0 -1
  223. package/dist/primitives/internal/Markdown.js.map +0 -1
  224. package/dist/slate/plugins/auto-formatting.cjs.map +0 -1
  225. package/dist/slate/plugins/auto-formatting.js.map +0 -1
  226. package/dist/slate/plugins/auto-links.cjs.map +0 -1
  227. package/dist/slate/plugins/auto-links.js.map +0 -1
  228. package/dist/slate/plugins/custom-links.cjs.map +0 -1
  229. package/dist/slate/plugins/custom-links.js.map +0 -1
  230. package/dist/slate/plugins/empty-clear-formatting.cjs.map +0 -1
  231. package/dist/slate/plugins/empty-clear-formatting.js.map +0 -1
  232. package/dist/slate/plugins/mentions.cjs.map +0 -1
  233. package/dist/slate/plugins/mentions.js.map +0 -1
  234. package/dist/slate/plugins/normalize.cjs.map +0 -1
  235. package/dist/slate/plugins/normalize.js.map +0 -1
  236. package/dist/slate/plugins/paste.cjs.map +0 -1
  237. package/dist/slate/plugins/paste.js.map +0 -1
  238. package/dist/slate/utils/get-character.cjs.map +0 -1
  239. package/dist/slate/utils/get-character.js.map +0 -1
  240. package/dist/slate/utils/get-dom-range.cjs.map +0 -1
  241. package/dist/slate/utils/get-dom-range.js.map +0 -1
  242. package/dist/slate/utils/get-match-range.cjs.map +0 -1
  243. package/dist/slate/utils/get-match-range.js.map +0 -1
  244. package/dist/slate/utils/is-empty-string.cjs.map +0 -1
  245. package/dist/slate/utils/is-empty-string.js.map +0 -1
  246. package/dist/slate/utils/is-empty.cjs.map +0 -1
  247. package/dist/slate/utils/is-empty.js.map +0 -1
  248. package/dist/slate/utils/is-text.cjs.map +0 -1
  249. package/dist/slate/utils/is-text.js.map +0 -1
  250. package/dist/slate/utils/is-whitespace-character.cjs.map +0 -1
  251. package/dist/slate/utils/is-whitespace-character.js.map +0 -1
  252. package/dist/slate/utils/marks.cjs.map +0 -1
  253. package/dist/slate/utils/marks.js.map +0 -1
  254. package/dist/slate/utils/selection-contains-inlines.cjs.map +0 -1
  255. package/dist/slate/utils/selection-contains-inlines.js.map +0 -1
  256. /package/dist/{slate → primitives/slate}/plugins/empty-clear-formatting.cjs +0 -0
  257. /package/dist/{slate → primitives/slate}/plugins/empty-clear-formatting.js +0 -0
  258. /package/dist/{slate → primitives/slate}/utils/get-character.cjs +0 -0
  259. /package/dist/{slate → primitives/slate}/utils/get-character.js +0 -0
  260. /package/dist/{slate → primitives/slate}/utils/get-dom-range.cjs +0 -0
  261. /package/dist/{slate → primitives/slate}/utils/get-dom-range.js +0 -0
  262. /package/dist/{slate → primitives/slate}/utils/get-match-range.cjs +0 -0
  263. /package/dist/{slate → primitives/slate}/utils/get-match-range.js +0 -0
  264. /package/dist/{slate → primitives/slate}/utils/is-empty-string.cjs +0 -0
  265. /package/dist/{slate → primitives/slate}/utils/is-empty-string.js +0 -0
  266. /package/dist/{slate → primitives/slate}/utils/is-empty.cjs +0 -0
  267. /package/dist/{slate → primitives/slate}/utils/is-empty.js +0 -0
  268. /package/dist/{slate → primitives/slate}/utils/is-text.cjs +0 -0
  269. /package/dist/{slate → primitives/slate}/utils/is-text.js +0 -0
  270. /package/dist/{slate → primitives/slate}/utils/is-whitespace-character.cjs +0 -0
  271. /package/dist/{slate → primitives/slate}/utils/is-whitespace-character.js +0 -0
  272. /package/dist/{slate → primitives/slate}/utils/selection-contains-inlines.cjs +0 -0
  273. /package/dist/{slate → primitives/slate}/utils/selection-contains-inlines.js +0 -0
@@ -0,0 +1,123 @@
1
+ import { jsx } from 'react/jsx-runtime';
2
+ import { Slot } from '@radix-ui/react-slot';
3
+ import { createContext, forwardRef, useId, useContext, useRef, useEffect, useImperativeHandle } from 'react';
4
+ import { useControllableState } from '../../utils/use-controllable-state.js';
5
+
6
+ const COLLAPSIBLE_ROOT_NAME = "CollapsibleRoot";
7
+ const COLLAPSIBLE_TRIGGER_NAME = "CollapsibleTrigger";
8
+ const COLLAPSIBLE_CONTENT_NAME = "CollapsibleContent";
9
+ const CollapsibleContext = createContext(null);
10
+ const CollapsibleRoot = forwardRef(
11
+ ({
12
+ open: controlledOpen,
13
+ onOpenChange: controlledOnOpenChange,
14
+ defaultOpen,
15
+ disabled = false,
16
+ asChild,
17
+ ...props
18
+ }, forwardedRef) => {
19
+ const [isOpen, onOpenChange] = useControllableState(
20
+ controlledOpen === void 0 && defaultOpen === void 0 ? true : controlledOpen,
21
+ controlledOnOpenChange,
22
+ defaultOpen
23
+ );
24
+ const Component = asChild ? Slot : "div";
25
+ const id = useId();
26
+ return /* @__PURE__ */ jsx(CollapsibleContext.Provider, {
27
+ value: { open: isOpen, onOpenChange, disabled, contentId: id },
28
+ children: /* @__PURE__ */ jsx(Component, {
29
+ ...props,
30
+ ref: forwardedRef,
31
+ "data-state": isOpen ? "open" : "closed",
32
+ "data-disabled": disabled ? "" : void 0
33
+ })
34
+ });
35
+ }
36
+ );
37
+ const CollapsibleTrigger = forwardRef(
38
+ ({ onClick, asChild, ...props }, forwardedRef) => {
39
+ const Component = asChild ? Slot : "button";
40
+ const context = useContext(CollapsibleContext);
41
+ if (!context) {
42
+ throw new Error("Collapsible.Root is missing from the React tree.");
43
+ }
44
+ const { open, disabled, contentId, onOpenChange } = context;
45
+ return /* @__PURE__ */ jsx(Component, {
46
+ ...props,
47
+ ref: forwardedRef,
48
+ type: "button",
49
+ "aria-controls": contentId,
50
+ "aria-expanded": open || false,
51
+ "data-state": open ? "open" : "closed",
52
+ "data-disabled": disabled ? "" : void 0,
53
+ disabled,
54
+ onClick: (event) => {
55
+ onClick?.(event);
56
+ if (event.defaultPrevented)
57
+ return;
58
+ if (disabled)
59
+ return;
60
+ onOpenChange(!open);
61
+ }
62
+ });
63
+ }
64
+ );
65
+ const CollapsibleContent = forwardRef(
66
+ ({ asChild, ...props }, forwardedRef) => {
67
+ const Component = asChild ? Slot : "div";
68
+ const context = useContext(CollapsibleContext);
69
+ const divRef = useRef(null);
70
+ if (!context) {
71
+ throw new Error("Collapsible.Root is missing from the React tree.");
72
+ }
73
+ const { open, onOpenChange, disabled, contentId } = context;
74
+ useEffect(() => {
75
+ const element = divRef.current;
76
+ if (element === null)
77
+ return;
78
+ const isHiddenUntilFoundSupported = "onbeforematch" in document.body;
79
+ if (!isHiddenUntilFoundSupported)
80
+ return;
81
+ function handleBeforeMatch() {
82
+ onOpenChange(true);
83
+ }
84
+ element.addEventListener("beforematch", handleBeforeMatch);
85
+ return () => {
86
+ element.removeEventListener("beforematch", handleBeforeMatch);
87
+ };
88
+ }, [onOpenChange]);
89
+ useEffect(() => {
90
+ const element = divRef.current;
91
+ if (element === null)
92
+ return;
93
+ if (open)
94
+ return;
95
+ const isHiddenUntilFoundSupported = "onbeforematch" in document.body;
96
+ if (!isHiddenUntilFoundSupported)
97
+ return;
98
+ element.setAttribute("hidden", "until-found");
99
+ return () => {
100
+ element.removeAttribute("hidden");
101
+ };
102
+ }, [open]);
103
+ useImperativeHandle(forwardedRef, () => {
104
+ return divRef.current;
105
+ }, []);
106
+ return /* @__PURE__ */ jsx(Component, {
107
+ ...props,
108
+ ref: divRef,
109
+ "data-state": open ? "open" : "closed",
110
+ "data-disabled": disabled ? "" : void 0,
111
+ id: contentId,
112
+ hidden: !open
113
+ });
114
+ }
115
+ );
116
+ if (process.env.NODE_ENV !== "production") {
117
+ CollapsibleContent.displayName = COLLAPSIBLE_CONTENT_NAME;
118
+ CollapsibleRoot.displayName = COLLAPSIBLE_ROOT_NAME;
119
+ CollapsibleTrigger.displayName = COLLAPSIBLE_TRIGGER_NAME;
120
+ }
121
+
122
+ export { CollapsibleContent as Content, CollapsibleRoot as Root, CollapsibleTrigger as Trigger };
123
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../../src/primitives/Collapsible/index.tsx"],"sourcesContent":["import { Slot } from \"@radix-ui/react-slot\";\nimport {\n createContext,\n forwardRef,\n useContext,\n useEffect,\n useId,\n useImperativeHandle,\n useRef,\n} from \"react\";\n\nimport { useControllableState } from \"../../utils/use-controllable-state\";\nimport type { ContentProps, RootProps, TriggerProps } from \"./types\";\n\nconst COLLAPSIBLE_ROOT_NAME = \"CollapsibleRoot\";\nconst COLLAPSIBLE_TRIGGER_NAME = \"CollapsibleTrigger\";\nconst COLLAPSIBLE_CONTENT_NAME = \"CollapsibleContent\";\n\nconst CollapsibleContext = createContext<{\n open?: boolean;\n onOpenChange: (open: boolean) => void;\n disabled: boolean;\n contentId: string;\n} | null>(null);\n\n/* -------------------------------------------------------------------------------------------------\n * Root\n * -----------------------------------------------------------------------------------------------*/\n\nconst CollapsibleRoot = forwardRef<HTMLDivElement, RootProps>(\n (\n {\n open: controlledOpen,\n onOpenChange: controlledOnOpenChange,\n defaultOpen,\n disabled = false,\n asChild,\n ...props\n },\n forwardedRef\n ) => {\n const [isOpen, onOpenChange] = useControllableState(\n // If the collapsible is neither controlled nor uncontrolled, it defaults to controlled as open.\n controlledOpen === undefined && defaultOpen === undefined\n ? true\n : controlledOpen,\n controlledOnOpenChange,\n defaultOpen\n );\n const Component = asChild ? Slot : \"div\";\n const id = useId();\n\n return (\n <CollapsibleContext.Provider\n value={{ open: isOpen, onOpenChange, disabled, contentId: id }}\n >\n <Component\n {...props}\n ref={forwardedRef}\n data-state={isOpen ? \"open\" : \"closed\"}\n data-disabled={disabled ? \"\" : undefined}\n />\n </CollapsibleContext.Provider>\n );\n }\n);\n\n/* -------------------------------------------------------------------------------------------------\n * Trigger\n * -----------------------------------------------------------------------------------------------*/\n\nconst CollapsibleTrigger = forwardRef<HTMLButtonElement, TriggerProps>(\n ({ onClick, asChild, ...props }, forwardedRef) => {\n const Component = asChild ? Slot : \"button\";\n const context = useContext(CollapsibleContext);\n\n if (!context) {\n throw new Error(\"Collapsible.Root is missing from the React tree.\");\n }\n\n const { open, disabled, contentId, onOpenChange } = context;\n\n return (\n <Component\n {...props}\n ref={forwardedRef}\n type=\"button\"\n aria-controls={contentId}\n aria-expanded={open || false}\n data-state={open ? \"open\" : \"closed\"}\n data-disabled={disabled ? \"\" : undefined}\n disabled={disabled}\n onClick={(event) => {\n onClick?.(event);\n if (event.defaultPrevented) return;\n if (disabled) return;\n onOpenChange(!open);\n }}\n />\n );\n }\n);\n\n/* -------------------------------------------------------------------------------------------------\n * Content\n * -----------------------------------------------------------------------------------------------*/\n\nconst CollapsibleContent = forwardRef<HTMLDivElement, ContentProps>(\n ({ asChild, ...props }, forwardedRef) => {\n const Component = asChild ? Slot : \"div\";\n const context = useContext(CollapsibleContext);\n const divRef = useRef<HTMLDivElement>(null);\n\n if (!context) {\n throw new Error(\"Collapsible.Root is missing from the React tree.\");\n }\n\n const { open, onOpenChange, disabled, contentId } = context;\n\n useEffect(() => {\n const element = divRef.current;\n if (element === null) return;\n\n const isHiddenUntilFoundSupported = \"onbeforematch\" in document.body;\n if (!isHiddenUntilFoundSupported) return;\n\n function handleBeforeMatch() {\n onOpenChange(true);\n }\n\n // https://developer.chrome.com/articles/hidden-until-found/\n element.addEventListener(\"beforematch\", handleBeforeMatch);\n return () => {\n element.removeEventListener(\"beforematch\", handleBeforeMatch);\n };\n }, [onOpenChange]);\n\n // Passing `string` to `hidden` in JSX is not currently supported: https://github.com/facebook/react/issues/24740\n useEffect(() => {\n const element = divRef.current;\n if (element === null) return;\n\n if (open) return;\n\n const isHiddenUntilFoundSupported = \"onbeforematch\" in document.body;\n if (!isHiddenUntilFoundSupported) return;\n\n element.setAttribute(\"hidden\", \"until-found\");\n return () => {\n element.removeAttribute(\"hidden\");\n };\n }, [open]);\n\n useImperativeHandle<\n HTMLDivElement | null,\n HTMLDivElement | null\n >(forwardedRef, () => {\n return divRef.current;\n }, []);\n\n return (\n <Component\n {...props}\n ref={divRef}\n data-state={open ? \"open\" : \"closed\"}\n data-disabled={disabled ? \"\" : undefined}\n id={contentId}\n hidden={!open}\n />\n );\n }\n);\n\nif (process.env.NODE_ENV !== \"production\") {\n CollapsibleContent.displayName = COLLAPSIBLE_CONTENT_NAME;\n CollapsibleRoot.displayName = COLLAPSIBLE_ROOT_NAME;\n CollapsibleTrigger.displayName = COLLAPSIBLE_TRIGGER_NAME;\n}\n\n// NOTE: Every export from this file will be available publicly as Collapsible.*\nexport {\n CollapsibleContent as Content,\n CollapsibleRoot as Root,\n CollapsibleTrigger as Trigger,\n};\n"],"names":[],"mappings":"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"}
@@ -3,7 +3,7 @@
3
3
  var jsxRuntime = require('react/jsx-runtime');
4
4
  var reactSlot = require('@radix-ui/react-slot');
5
5
  var react = require('react');
6
- var mentions = require('../../slate/plugins/mentions.cjs');
6
+ var constants = require('../../constants.cjs');
7
7
  var utils = require('./utils.cjs');
8
8
 
9
9
  const COMMENT_MENTION_NAME = "CommentMention";
@@ -35,7 +35,7 @@ const defaultBodyComponents = {
35
35
  Mention: ({ userId }) => {
36
36
  return /* @__PURE__ */ jsxRuntime.jsxs(CommentMention, {
37
37
  children: [
38
- mentions.MENTION_CHARACTER,
38
+ constants.MENTION_CHARACTER,
39
39
  userId
40
40
  ]
41
41
  });
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","sources":["../../../src/primitives/Comment/index.tsx"],"sourcesContent":["import { Slot } from \"@radix-ui/react-slot\";\nimport type { ReactNode } from \"react\";\nimport { forwardRef, useMemo } from \"react\";\n\nimport { MENTION_CHARACTER } from \"../../slate/plugins/mentions\";\nimport type {\n CommentBodyComponents,\n CommentBodyProps,\n CommentLinkProps,\n CommentMentionProps,\n} from \"./types\";\nimport {\n isCommentBodyLink,\n isCommentBodyMention,\n toAbsoluteUrl,\n} from \"./utils\";\n\nconst COMMENT_MENTION_NAME = \"CommentMention\";\nconst COMMENT_BODY_NAME = \"CommentBody\";\nconst COMMENT_LINK_NAME = \"CommentLink\";\n\n/**\n * Displays mentions within `Comment.Body`.\n *\n * @example\n * <Comment.Mention>@{userId}</Comment.Mention>\n */\nconst CommentMention = forwardRef<HTMLSpanElement, CommentMentionProps>(\n ({ children, asChild, ...props }, forwardedRef) => {\n const Component = asChild ? Slot : \"span\";\n\n return (\n <Component {...props} ref={forwardedRef}>\n {children}\n </Component>\n );\n }\n);\n\n/**\n * Displays links within `Comment.Body`.\n *\n * @example\n * <Comment.Link href={href}>{children}</Comment.Link>\n */\nconst CommentLink = forwardRef<HTMLAnchorElement, CommentLinkProps>(\n ({ children, asChild, ...props }, forwardedRef) => {\n const Component = asChild ? Slot : \"a\";\n\n return (\n <Component\n target=\"_blank\"\n rel=\"noopener noreferrer nofollow\"\n {...props}\n ref={forwardedRef}\n >\n {children}\n </Component>\n );\n }\n);\n\nconst defaultBodyComponents: CommentBodyComponents = {\n Mention: ({ userId }) => {\n return (\n <CommentMention>\n {MENTION_CHARACTER}\n {userId}\n </CommentMention>\n );\n },\n Link: ({ href, children }) => {\n return <CommentLink href={href}>{children}</CommentLink>;\n },\n};\n\n/**\n * Displays a comment body.\n *\n * @example\n * <Comment.Body body={comment.body} />\n */\nconst CommentBody = forwardRef<HTMLDivElement, CommentBodyProps>(\n ({ body, components, style, asChild, ...props }, forwardedRef) => {\n const Component = asChild ? Slot : \"div\";\n const { Mention, Link } = useMemo(\n () => ({ ...defaultBodyComponents, ...components }),\n [components]\n );\n\n if (!body || !body?.content) {\n return null;\n }\n\n return (\n <Component\n {...props}\n style={{ whiteSpace: \"break-spaces\", ...style }}\n ref={forwardedRef}\n >\n {body.content.map((block, index) => {\n switch (block.type) {\n case \"paragraph\":\n return (\n <p key={index} style={{ minHeight: \"1lh\" }}>\n {block.children.map((inline, index) => {\n if (isCommentBodyMention(inline)) {\n return inline.id ? (\n <Mention userId={inline.id} key={index} />\n ) : null;\n }\n\n if (isCommentBodyLink(inline)) {\n const href = toAbsoluteUrl(inline.url) ?? inline.url;\n\n return (\n <Link href={href} key={index}>\n {inline.text ?? inline.url}\n </Link>\n );\n }\n\n // <code><s><em><strong>text</strong></s></em></code>\n let children: ReactNode = inline.text;\n\n if (inline.bold) {\n children = <strong key={index}>{children}</strong>;\n }\n\n if (inline.italic) {\n children = <em key={index}>{children}</em>;\n }\n\n if (inline.strikethrough) {\n children = <s key={index}>{children}</s>;\n }\n\n if (inline.code) {\n children = <code key={index}>{children}</code>;\n }\n\n return <span key={index}>{children}</span>;\n })}\n </p>\n );\n default:\n return null;\n }\n })}\n </Component>\n );\n }\n);\n\nif (process.env.NODE_ENV !== \"production\") {\n CommentBody.displayName = COMMENT_BODY_NAME;\n CommentMention.displayName = COMMENT_MENTION_NAME;\n CommentLink.displayName = COMMENT_LINK_NAME;\n}\n\n// NOTE: Every export from this file will be available publicly as Comment.*\nexport { CommentBody as Body, CommentLink as Link, CommentMention as Mention };\n"],"names":["forwardRef","Slot","jsx","jsxs","MENTION_CHARACTER","useMemo","index","isCommentBodyMention","isCommentBodyLink","toAbsoluteUrl"],"mappings":"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"}
1
+ {"version":3,"file":"index.cjs","sources":["../../../src/primitives/Comment/index.tsx"],"sourcesContent":["import { Slot } from \"@radix-ui/react-slot\";\nimport type { ReactNode } from \"react\";\nimport { forwardRef, useMemo } from \"react\";\n\nimport { MENTION_CHARACTER } from \"../../constants\";\nimport type {\n CommentBodyComponents,\n CommentBodyProps,\n CommentLinkProps,\n CommentMentionProps,\n} from \"./types\";\nimport {\n isCommentBodyLink,\n isCommentBodyMention,\n toAbsoluteUrl,\n} from \"./utils\";\n\nconst COMMENT_MENTION_NAME = \"CommentMention\";\nconst COMMENT_BODY_NAME = \"CommentBody\";\nconst COMMENT_LINK_NAME = \"CommentLink\";\n\n/**\n * Displays mentions within `Comment.Body`.\n *\n * @example\n * <Comment.Mention>@{userId}</Comment.Mention>\n */\nconst CommentMention = forwardRef<HTMLSpanElement, CommentMentionProps>(\n ({ children, asChild, ...props }, forwardedRef) => {\n const Component = asChild ? Slot : \"span\";\n\n return (\n <Component {...props} ref={forwardedRef}>\n {children}\n </Component>\n );\n }\n);\n\n/**\n * Displays links within `Comment.Body`.\n *\n * @example\n * <Comment.Link href={href}>{children}</Comment.Link>\n */\nconst CommentLink = forwardRef<HTMLAnchorElement, CommentLinkProps>(\n ({ children, asChild, ...props }, forwardedRef) => {\n const Component = asChild ? Slot : \"a\";\n\n return (\n <Component\n target=\"_blank\"\n rel=\"noopener noreferrer nofollow\"\n {...props}\n ref={forwardedRef}\n >\n {children}\n </Component>\n );\n }\n);\n\nconst defaultBodyComponents: CommentBodyComponents = {\n Mention: ({ userId }) => {\n return (\n <CommentMention>\n {MENTION_CHARACTER}\n {userId}\n </CommentMention>\n );\n },\n Link: ({ href, children }) => {\n return <CommentLink href={href}>{children}</CommentLink>;\n },\n};\n\n/**\n * Displays a comment body.\n *\n * @example\n * <Comment.Body body={comment.body} />\n */\nconst CommentBody = forwardRef<HTMLDivElement, CommentBodyProps>(\n ({ body, components, style, asChild, ...props }, forwardedRef) => {\n const Component = asChild ? Slot : \"div\";\n const { Mention, Link } = useMemo(\n () => ({ ...defaultBodyComponents, ...components }),\n [components]\n );\n\n if (!body || !body?.content) {\n return null;\n }\n\n return (\n <Component\n {...props}\n style={{ whiteSpace: \"break-spaces\", ...style }}\n ref={forwardedRef}\n >\n {body.content.map((block, index) => {\n switch (block.type) {\n case \"paragraph\":\n return (\n <p key={index} style={{ minHeight: \"1lh\" }}>\n {block.children.map((inline, index) => {\n if (isCommentBodyMention(inline)) {\n return inline.id ? (\n <Mention userId={inline.id} key={index} />\n ) : null;\n }\n\n if (isCommentBodyLink(inline)) {\n const href = toAbsoluteUrl(inline.url) ?? inline.url;\n\n return (\n <Link href={href} key={index}>\n {inline.text ?? inline.url}\n </Link>\n );\n }\n\n // <code><s><em><strong>text</strong></s></em></code>\n let children: ReactNode = inline.text;\n\n if (inline.bold) {\n children = <strong key={index}>{children}</strong>;\n }\n\n if (inline.italic) {\n children = <em key={index}>{children}</em>;\n }\n\n if (inline.strikethrough) {\n children = <s key={index}>{children}</s>;\n }\n\n if (inline.code) {\n children = <code key={index}>{children}</code>;\n }\n\n return <span key={index}>{children}</span>;\n })}\n </p>\n );\n default:\n return null;\n }\n })}\n </Component>\n );\n }\n);\n\nif (process.env.NODE_ENV !== \"production\") {\n CommentBody.displayName = COMMENT_BODY_NAME;\n CommentMention.displayName = COMMENT_MENTION_NAME;\n CommentLink.displayName = COMMENT_LINK_NAME;\n}\n\n// NOTE: Every export from this file will be available publicly as Comment.*\nexport { CommentBody as Body, CommentLink as Link, CommentMention as Mention };\n"],"names":["forwardRef","Slot","jsx","jsxs","MENTION_CHARACTER","useMemo","index","isCommentBodyMention","isCommentBodyLink","toAbsoluteUrl"],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { jsx, jsxs } from 'react/jsx-runtime';
2
2
  import { Slot } from '@radix-ui/react-slot';
3
3
  import { forwardRef, useMemo } from 'react';
4
- import { MENTION_CHARACTER } from '../../slate/plugins/mentions.js';
4
+ import { MENTION_CHARACTER } from '../../constants.js';
5
5
  import { isCommentBodyMention, isCommentBodyLink, toAbsoluteUrl } from './utils.js';
6
6
 
7
7
  const COMMENT_MENTION_NAME = "CommentMention";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../src/primitives/Comment/index.tsx"],"sourcesContent":["import { Slot } from \"@radix-ui/react-slot\";\nimport type { ReactNode } from \"react\";\nimport { forwardRef, useMemo } from \"react\";\n\nimport { MENTION_CHARACTER } from \"../../slate/plugins/mentions\";\nimport type {\n CommentBodyComponents,\n CommentBodyProps,\n CommentLinkProps,\n CommentMentionProps,\n} from \"./types\";\nimport {\n isCommentBodyLink,\n isCommentBodyMention,\n toAbsoluteUrl,\n} from \"./utils\";\n\nconst COMMENT_MENTION_NAME = \"CommentMention\";\nconst COMMENT_BODY_NAME = \"CommentBody\";\nconst COMMENT_LINK_NAME = \"CommentLink\";\n\n/**\n * Displays mentions within `Comment.Body`.\n *\n * @example\n * <Comment.Mention>@{userId}</Comment.Mention>\n */\nconst CommentMention = forwardRef<HTMLSpanElement, CommentMentionProps>(\n ({ children, asChild, ...props }, forwardedRef) => {\n const Component = asChild ? Slot : \"span\";\n\n return (\n <Component {...props} ref={forwardedRef}>\n {children}\n </Component>\n );\n }\n);\n\n/**\n * Displays links within `Comment.Body`.\n *\n * @example\n * <Comment.Link href={href}>{children}</Comment.Link>\n */\nconst CommentLink = forwardRef<HTMLAnchorElement, CommentLinkProps>(\n ({ children, asChild, ...props }, forwardedRef) => {\n const Component = asChild ? Slot : \"a\";\n\n return (\n <Component\n target=\"_blank\"\n rel=\"noopener noreferrer nofollow\"\n {...props}\n ref={forwardedRef}\n >\n {children}\n </Component>\n );\n }\n);\n\nconst defaultBodyComponents: CommentBodyComponents = {\n Mention: ({ userId }) => {\n return (\n <CommentMention>\n {MENTION_CHARACTER}\n {userId}\n </CommentMention>\n );\n },\n Link: ({ href, children }) => {\n return <CommentLink href={href}>{children}</CommentLink>;\n },\n};\n\n/**\n * Displays a comment body.\n *\n * @example\n * <Comment.Body body={comment.body} />\n */\nconst CommentBody = forwardRef<HTMLDivElement, CommentBodyProps>(\n ({ body, components, style, asChild, ...props }, forwardedRef) => {\n const Component = asChild ? Slot : \"div\";\n const { Mention, Link } = useMemo(\n () => ({ ...defaultBodyComponents, ...components }),\n [components]\n );\n\n if (!body || !body?.content) {\n return null;\n }\n\n return (\n <Component\n {...props}\n style={{ whiteSpace: \"break-spaces\", ...style }}\n ref={forwardedRef}\n >\n {body.content.map((block, index) => {\n switch (block.type) {\n case \"paragraph\":\n return (\n <p key={index} style={{ minHeight: \"1lh\" }}>\n {block.children.map((inline, index) => {\n if (isCommentBodyMention(inline)) {\n return inline.id ? (\n <Mention userId={inline.id} key={index} />\n ) : null;\n }\n\n if (isCommentBodyLink(inline)) {\n const href = toAbsoluteUrl(inline.url) ?? inline.url;\n\n return (\n <Link href={href} key={index}>\n {inline.text ?? inline.url}\n </Link>\n );\n }\n\n // <code><s><em><strong>text</strong></s></em></code>\n let children: ReactNode = inline.text;\n\n if (inline.bold) {\n children = <strong key={index}>{children}</strong>;\n }\n\n if (inline.italic) {\n children = <em key={index}>{children}</em>;\n }\n\n if (inline.strikethrough) {\n children = <s key={index}>{children}</s>;\n }\n\n if (inline.code) {\n children = <code key={index}>{children}</code>;\n }\n\n return <span key={index}>{children}</span>;\n })}\n </p>\n );\n default:\n return null;\n }\n })}\n </Component>\n );\n }\n);\n\nif (process.env.NODE_ENV !== \"production\") {\n CommentBody.displayName = COMMENT_BODY_NAME;\n CommentMention.displayName = COMMENT_MENTION_NAME;\n CommentLink.displayName = COMMENT_LINK_NAME;\n}\n\n// NOTE: Every export from this file will be available publicly as Comment.*\nexport { CommentBody as Body, CommentLink as Link, CommentMention as Mention };\n"],"names":["index"],"mappings":";;;;;;AAiBA,MAAM,oBAAuB,GAAA,gBAAA,CAAA;AAC7B,MAAM,iBAAoB,GAAA,aAAA,CAAA;AAC1B,MAAM,iBAAoB,GAAA,aAAA,CAAA;AAQ1B,MAAM,cAAiB,GAAA,UAAA;AAAA,EACrB,CAAC,EAAE,QAAA,EAAU,OAAY,EAAA,GAAA,KAAA,IAAS,YAAiB,KAAA;AACjD,IAAM,MAAA,SAAA,GAAY,UAAU,IAAO,GAAA,MAAA,CAAA;AAEnC,IAAA,uBACG,GAAA,CAAA,SAAA,EAAA;AAAA,MAAW,GAAG,KAAA;AAAA,MAAO,GAAK,EAAA,YAAA;AAAA,MACxB,QAAA;AAAA,KACH,CAAA,CAAA;AAAA,GAEJ;AACF,EAAA;AAQA,MAAM,WAAc,GAAA,UAAA;AAAA,EAClB,CAAC,EAAE,QAAA,EAAU,OAAY,EAAA,GAAA,KAAA,IAAS,YAAiB,KAAA;AACjD,IAAM,MAAA,SAAA,GAAY,UAAU,IAAO,GAAA,GAAA,CAAA;AAEnC,IAAA,uBACG,GAAA,CAAA,SAAA,EAAA;AAAA,MACC,MAAO,EAAA,QAAA;AAAA,MACP,GAAI,EAAA,8BAAA;AAAA,MACH,GAAG,KAAA;AAAA,MACJ,GAAK,EAAA,YAAA;AAAA,MAEJ,QAAA;AAAA,KACH,CAAA,CAAA;AAAA,GAEJ;AACF,EAAA;AAEA,MAAM,qBAA+C,GAAA;AAAA,EACnD,OAAS,EAAA,CAAC,EAAE,MAAA,EAAa,KAAA;AACvB,IAAA,uBACG,IAAA,CAAA,cAAA,EAAA;AAAA,MACE,QAAA,EAAA;AAAA,QAAA,iBAAA;AAAA,QACA,MAAA;AAAA,OAAA;AAAA,KACH,CAAA,CAAA;AAAA,GAEJ;AAAA,EACA,IAAM,EAAA,CAAC,EAAE,IAAA,EAAM,UAAe,KAAA;AAC5B,IAAA,uBAAQ,GAAA,CAAA,WAAA,EAAA;AAAA,MAAY,IAAA;AAAA,MAAa,QAAA;AAAA,KAAS,CAAA,CAAA;AAAA,GAC5C;AACF,CAAA,CAAA;AAQA,MAAM,WAAc,GAAA,UAAA;AAAA,EAClB,CAAC,EAAE,IAAM,EAAA,UAAA,EAAY,OAAO,OAAY,EAAA,GAAA,KAAA,IAAS,YAAiB,KAAA;AAChE,IAAM,MAAA,SAAA,GAAY,UAAU,IAAO,GAAA,KAAA,CAAA;AACnC,IAAM,MAAA,EAAE,OAAS,EAAA,IAAA,EAAS,GAAA,OAAA;AAAA,MACxB,OAAO,EAAE,GAAG,qBAAA,EAAuB,GAAG,UAAW,EAAA,CAAA;AAAA,MACjD,CAAC,UAAU,CAAA;AAAA,KACb,CAAA;AAEA,IAAA,IAAI,CAAC,IAAA,IAAQ,CAAC,IAAA,EAAM,OAAS,EAAA;AAC3B,MAAO,OAAA,IAAA,CAAA;AAAA,KACT;AAEA,IAAA,uBACG,GAAA,CAAA,SAAA,EAAA;AAAA,MACE,GAAG,KAAA;AAAA,MACJ,KAAO,EAAA,EAAE,UAAY,EAAA,cAAA,EAAgB,GAAG,KAAM,EAAA;AAAA,MAC9C,GAAK,EAAA,YAAA;AAAA,MAEJ,QAAK,EAAA,IAAA,CAAA,OAAA,CAAQ,GAAI,CAAA,CAAC,OAAO,KAAU,KAAA;AAClC,QAAA,QAAQ,MAAM,IAAM;AAAA,UAClB,KAAK,WAAA;AACH,YAAA,uBACG,GAAA,CAAA,GAAA,EAAA;AAAA,cAAc,KAAA,EAAO,EAAE,SAAA,EAAW,KAAM,EAAA;AAAA,cACtC,QAAM,EAAA,KAAA,CAAA,QAAA,CAAS,GAAI,CAAA,CAAC,QAAQA,MAAU,KAAA;AACrC,gBAAI,IAAA,oBAAA,CAAqB,MAAM,CAAG,EAAA;AAChC,kBAAO,OAAA,MAAA,CAAO,qBACX,GAAA,CAAA,OAAA,EAAA;AAAA,oBAAQ,QAAQ,MAAO,CAAA,EAAA;AAAA,mBAAA,EAASA,MAAO,CACtC,GAAA,IAAA,CAAA;AAAA,iBACN;AAEA,gBAAI,IAAA,iBAAA,CAAkB,MAAM,CAAG,EAAA;AAC7B,kBAAA,MAAM,IAAO,GAAA,aAAA,CAAc,MAAO,CAAA,GAAG,KAAK,MAAO,CAAA,GAAA,CAAA;AAEjD,kBAAA,uBACG,GAAA,CAAA,IAAA,EAAA;AAAA,oBAAK,IAAA;AAAA,oBACH,QAAA,EAAA,MAAA,CAAO,QAAQ,MAAO,CAAA,GAAA;AAAA,mBAAA,EADFA,MAEvB,CAAA,CAAA;AAAA,iBAEJ;AAGA,gBAAA,IAAI,WAAsB,MAAO,CAAA,IAAA,CAAA;AAEjC,gBAAA,IAAI,OAAO,IAAM,EAAA;AACf,kBAAA,QAAA,mBAAY,GAAA,CAAA,QAAA,EAAA;AAAA,oBAAoB,QAAA;AAAA,mBAAA,EAARA,MAAiB,CAAA,CAAA;AAAA,iBAC3C;AAEA,gBAAA,IAAI,OAAO,MAAQ,EAAA;AACjB,kBAAA,QAAA,mBAAY,GAAA,CAAA,IAAA,EAAA;AAAA,oBAAgB,QAAA;AAAA,mBAAA,EAARA,MAAiB,CAAA,CAAA;AAAA,iBACvC;AAEA,gBAAA,IAAI,OAAO,aAAe,EAAA;AACxB,kBAAA,QAAA,mBAAY,GAAA,CAAA,GAAA,EAAA;AAAA,oBAAe,QAAA;AAAA,mBAAA,EAARA,MAAiB,CAAA,CAAA;AAAA,iBACtC;AAEA,gBAAA,IAAI,OAAO,IAAM,EAAA;AACf,kBAAA,QAAA,mBAAY,GAAA,CAAA,MAAA,EAAA;AAAA,oBAAkB,QAAA;AAAA,mBAAA,EAARA,MAAiB,CAAA,CAAA;AAAA,iBACzC;AAEA,gBAAA,uBAAQ,GAAA,CAAA,MAAA,EAAA;AAAA,kBAAkB,QAAA;AAAA,iBAAA,EAARA,MAAiB,CAAA,CAAA;AAAA,eACpC,CAAA;AAAA,aAAA,EAtCK,KAuCR,CAAA,CAAA;AAAA,UAEJ;AACE,YAAO,OAAA,IAAA,CAAA;AAAA,SACX;AAAA,OACD,CAAA;AAAA,KACH,CAAA,CAAA;AAAA,GAEJ;AACF,EAAA;AAEA,IAAI,OAAA,CAAQ,GAAI,CAAA,QAAA,KAAa,YAAc,EAAA;AACzC,EAAA,WAAA,CAAY,WAAc,GAAA,iBAAA,CAAA;AAC1B,EAAA,cAAA,CAAe,WAAc,GAAA,oBAAA,CAAA;AAC7B,EAAA,WAAA,CAAY,WAAc,GAAA,iBAAA,CAAA;AAC5B;;;;"}
1
+ {"version":3,"file":"index.js","sources":["../../../src/primitives/Comment/index.tsx"],"sourcesContent":["import { Slot } from \"@radix-ui/react-slot\";\nimport type { ReactNode } from \"react\";\nimport { forwardRef, useMemo } from \"react\";\n\nimport { MENTION_CHARACTER } from \"../../constants\";\nimport type {\n CommentBodyComponents,\n CommentBodyProps,\n CommentLinkProps,\n CommentMentionProps,\n} from \"./types\";\nimport {\n isCommentBodyLink,\n isCommentBodyMention,\n toAbsoluteUrl,\n} from \"./utils\";\n\nconst COMMENT_MENTION_NAME = \"CommentMention\";\nconst COMMENT_BODY_NAME = \"CommentBody\";\nconst COMMENT_LINK_NAME = \"CommentLink\";\n\n/**\n * Displays mentions within `Comment.Body`.\n *\n * @example\n * <Comment.Mention>@{userId}</Comment.Mention>\n */\nconst CommentMention = forwardRef<HTMLSpanElement, CommentMentionProps>(\n ({ children, asChild, ...props }, forwardedRef) => {\n const Component = asChild ? Slot : \"span\";\n\n return (\n <Component {...props} ref={forwardedRef}>\n {children}\n </Component>\n );\n }\n);\n\n/**\n * Displays links within `Comment.Body`.\n *\n * @example\n * <Comment.Link href={href}>{children}</Comment.Link>\n */\nconst CommentLink = forwardRef<HTMLAnchorElement, CommentLinkProps>(\n ({ children, asChild, ...props }, forwardedRef) => {\n const Component = asChild ? Slot : \"a\";\n\n return (\n <Component\n target=\"_blank\"\n rel=\"noopener noreferrer nofollow\"\n {...props}\n ref={forwardedRef}\n >\n {children}\n </Component>\n );\n }\n);\n\nconst defaultBodyComponents: CommentBodyComponents = {\n Mention: ({ userId }) => {\n return (\n <CommentMention>\n {MENTION_CHARACTER}\n {userId}\n </CommentMention>\n );\n },\n Link: ({ href, children }) => {\n return <CommentLink href={href}>{children}</CommentLink>;\n },\n};\n\n/**\n * Displays a comment body.\n *\n * @example\n * <Comment.Body body={comment.body} />\n */\nconst CommentBody = forwardRef<HTMLDivElement, CommentBodyProps>(\n ({ body, components, style, asChild, ...props }, forwardedRef) => {\n const Component = asChild ? Slot : \"div\";\n const { Mention, Link } = useMemo(\n () => ({ ...defaultBodyComponents, ...components }),\n [components]\n );\n\n if (!body || !body?.content) {\n return null;\n }\n\n return (\n <Component\n {...props}\n style={{ whiteSpace: \"break-spaces\", ...style }}\n ref={forwardedRef}\n >\n {body.content.map((block, index) => {\n switch (block.type) {\n case \"paragraph\":\n return (\n <p key={index} style={{ minHeight: \"1lh\" }}>\n {block.children.map((inline, index) => {\n if (isCommentBodyMention(inline)) {\n return inline.id ? (\n <Mention userId={inline.id} key={index} />\n ) : null;\n }\n\n if (isCommentBodyLink(inline)) {\n const href = toAbsoluteUrl(inline.url) ?? inline.url;\n\n return (\n <Link href={href} key={index}>\n {inline.text ?? inline.url}\n </Link>\n );\n }\n\n // <code><s><em><strong>text</strong></s></em></code>\n let children: ReactNode = inline.text;\n\n if (inline.bold) {\n children = <strong key={index}>{children}</strong>;\n }\n\n if (inline.italic) {\n children = <em key={index}>{children}</em>;\n }\n\n if (inline.strikethrough) {\n children = <s key={index}>{children}</s>;\n }\n\n if (inline.code) {\n children = <code key={index}>{children}</code>;\n }\n\n return <span key={index}>{children}</span>;\n })}\n </p>\n );\n default:\n return null;\n }\n })}\n </Component>\n );\n }\n);\n\nif (process.env.NODE_ENV !== \"production\") {\n CommentBody.displayName = COMMENT_BODY_NAME;\n CommentMention.displayName = COMMENT_MENTION_NAME;\n CommentLink.displayName = COMMENT_LINK_NAME;\n}\n\n// NOTE: Every export from this file will be available publicly as Comment.*\nexport { CommentBody as Body, CommentLink as Link, CommentMention as Mention };\n"],"names":["index"],"mappings":"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"}
@@ -12,16 +12,7 @@ var slate = require('slate');
12
12
  var slateHistory = require('slate-history');
13
13
  var slateReact = require('slate-react');
14
14
  var config = require('../../config.cjs');
15
- var autoFormatting = require('../../slate/plugins/auto-formatting.cjs');
16
- var autoLinks = require('../../slate/plugins/auto-links.cjs');
17
- var customLinks = require('../../slate/plugins/custom-links.cjs');
18
- var emptyClearFormatting = require('../../slate/plugins/empty-clear-formatting.cjs');
19
- var mentions = require('../../slate/plugins/mentions.cjs');
20
- var normalize = require('../../slate/plugins/normalize.cjs');
21
- var paste = require('../../slate/plugins/paste.cjs');
22
- var getDomRange = require('../../slate/utils/get-dom-range.cjs');
23
- var isEmpty = require('../../slate/utils/is-empty.cjs');
24
- var marks = require('../../slate/utils/marks.cjs');
15
+ var constants = require('../../constants.cjs');
25
16
  var isKey = require('../../utils/is-key.cjs');
26
17
  var Persist = require('../../utils/Persist.cjs');
27
18
  var Portal = require('../../utils/Portal.cjs');
@@ -31,7 +22,17 @@ var useInitial = require('../../utils/use-initial.cjs');
31
22
  var useObservable = require('../../utils/use-observable.cjs');
32
23
  var useRefs = require('../../utils/use-refs.cjs');
33
24
  var utils = require('../Comment/utils.cjs');
25
+ var emptyClearFormatting = require('../slate/plugins/empty-clear-formatting.cjs');
26
+ var normalize = require('../slate/plugins/normalize.cjs');
27
+ var getDomRange = require('../slate/utils/get-dom-range.cjs');
28
+ var isEmpty = require('../slate/utils/is-empty.cjs');
29
+ var marks = require('../slate/utils/marks.cjs');
34
30
  var contexts = require('./contexts.cjs');
31
+ var autoFormatting = require('./slate/plugins/auto-formatting.cjs');
32
+ var autoLinks = require('./slate/plugins/auto-links.cjs');
33
+ var customLinks = require('./slate/plugins/custom-links.cjs');
34
+ var mentions = require('./slate/plugins/mentions.cjs');
35
+ var paste = require('./slate/plugins/paste.cjs');
35
36
  var utils$1 = require('./utils.cjs');
36
37
 
37
38
  function _interopNamespaceDefault(e) {
@@ -376,7 +377,11 @@ function ComposerEditorElement({
376
377
  return null;
377
378
  }
378
379
  }
379
- function ComposerEditorLeaf({ attributes, children, leaf }) {
380
+ function ComposerEditorLeaf({
381
+ attributes,
382
+ children,
383
+ leaf
384
+ }) {
380
385
  if (leaf.bold) {
381
386
  children = /* @__PURE__ */ jsxRuntime.jsx("strong", {
382
387
  children
@@ -559,7 +564,7 @@ const defaultEditorComponents = {
559
564
  Mention: ({ userId }) => {
560
565
  return /* @__PURE__ */ jsxRuntime.jsxs(ComposerMention, {
561
566
  children: [
562
- mentions.MENTION_CHARACTER,
567
+ constants.MENTION_CHARACTER,
563
568
  userId
564
569
  ]
565
570
  });
@@ -909,7 +914,7 @@ const ComposerForm = react.forwardRef(
909
914
  const canSubmit = react.useMemo(() => {
910
915
  return !isEmpty$1 && !isUploadingAttachments;
911
916
  }, [isEmpty$1, isUploadingAttachments]);
912
- const [marks$1, setMarks] = react.useState(marks.getMarks);
917
+ const [marks$1, setMarks] = react.useState(marks.getComposerBodyMarks);
913
918
  const ref = react.useRef(null);
914
919
  const mergedRefs = useRefs.useRefs(forwardedRef, ref);
915
920
  const fileInputRef = react.useRef(null);
@@ -1093,7 +1098,7 @@ const ComposerForm = react.forwardRef(
1093
1098
  [editor]
1094
1099
  );
1095
1100
  useObservable.useObservable(onEditorChange, () => {
1096
- setMarks(marks.getMarks(editor));
1101
+ setMarks(marks.getComposerBodyMarks(editor));
1097
1102
  });
1098
1103
  return /* @__PURE__ */ jsxRuntime.jsx(contexts.ComposerEditorContext.Provider, {
1099
1104
  value: {