@liveblocks/react-ui 1.12.0-initial1

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 (391) hide show
  1. package/README.md +65 -0
  2. package/dist/components/Comment.js +473 -0
  3. package/dist/components/Comment.js.map +1 -0
  4. package/dist/components/Comment.mjs +447 -0
  5. package/dist/components/Comment.mjs.map +1 -0
  6. package/dist/components/Composer.js +299 -0
  7. package/dist/components/Composer.js.map +1 -0
  8. package/dist/components/Composer.mjs +297 -0
  9. package/dist/components/Composer.mjs.map +1 -0
  10. package/dist/components/InboxNotification.js +374 -0
  11. package/dist/components/InboxNotification.js.map +1 -0
  12. package/dist/components/InboxNotification.mjs +372 -0
  13. package/dist/components/InboxNotification.mjs.map +1 -0
  14. package/dist/components/InboxNotificationList.js +19 -0
  15. package/dist/components/InboxNotificationList.js.map +1 -0
  16. package/dist/components/InboxNotificationList.mjs +17 -0
  17. package/dist/components/InboxNotificationList.mjs.map +1 -0
  18. package/dist/components/Thread.js +188 -0
  19. package/dist/components/Thread.js.map +1 -0
  20. package/dist/components/Thread.mjs +167 -0
  21. package/dist/components/Thread.mjs.map +1 -0
  22. package/dist/components/internal/Attribution.js +26 -0
  23. package/dist/components/internal/Attribution.js.map +1 -0
  24. package/dist/components/internal/Attribution.mjs +24 -0
  25. package/dist/components/internal/Attribution.mjs.map +1 -0
  26. package/dist/components/internal/Avatar.js +40 -0
  27. package/dist/components/internal/Avatar.js.map +1 -0
  28. package/dist/components/internal/Avatar.mjs +38 -0
  29. package/dist/components/internal/Avatar.mjs.map +1 -0
  30. package/dist/components/internal/Button.js +24 -0
  31. package/dist/components/internal/Button.js.map +1 -0
  32. package/dist/components/internal/Button.mjs +22 -0
  33. package/dist/components/internal/Button.mjs.map +1 -0
  34. package/dist/components/internal/Dropdown.js +72 -0
  35. package/dist/components/internal/Dropdown.js.map +1 -0
  36. package/dist/components/internal/Dropdown.mjs +47 -0
  37. package/dist/components/internal/Dropdown.mjs.map +1 -0
  38. package/dist/components/internal/Emoji.js +18 -0
  39. package/dist/components/internal/Emoji.js.map +1 -0
  40. package/dist/components/internal/Emoji.mjs +16 -0
  41. package/dist/components/internal/Emoji.mjs.map +1 -0
  42. package/dist/components/internal/EmojiPicker.js +186 -0
  43. package/dist/components/internal/EmojiPicker.js.map +1 -0
  44. package/dist/components/internal/EmojiPicker.mjs +162 -0
  45. package/dist/components/internal/EmojiPicker.mjs.map +1 -0
  46. package/dist/components/internal/Icon.js +28 -0
  47. package/dist/components/internal/Icon.js.map +1 -0
  48. package/dist/components/internal/Icon.mjs +24 -0
  49. package/dist/components/internal/Icon.mjs.map +1 -0
  50. package/dist/components/internal/InboxNotificationThread.js +116 -0
  51. package/dist/components/internal/InboxNotificationThread.js.map +1 -0
  52. package/dist/components/internal/InboxNotificationThread.mjs +112 -0
  53. package/dist/components/internal/InboxNotificationThread.mjs.map +1 -0
  54. package/dist/components/internal/List.js +34 -0
  55. package/dist/components/internal/List.js.map +1 -0
  56. package/dist/components/internal/List.mjs +32 -0
  57. package/dist/components/internal/List.mjs.map +1 -0
  58. package/dist/components/internal/Room.js +22 -0
  59. package/dist/components/internal/Room.js.map +1 -0
  60. package/dist/components/internal/Room.mjs +20 -0
  61. package/dist/components/internal/Room.mjs.map +1 -0
  62. package/dist/components/internal/Tooltip.js +91 -0
  63. package/dist/components/internal/Tooltip.js.map +1 -0
  64. package/dist/components/internal/Tooltip.mjs +65 -0
  65. package/dist/components/internal/Tooltip.mjs.map +1 -0
  66. package/dist/components/internal/User.js +41 -0
  67. package/dist/components/internal/User.js.map +1 -0
  68. package/dist/components/internal/User.mjs +39 -0
  69. package/dist/components/internal/User.mjs.map +1 -0
  70. package/dist/components.js +64 -0
  71. package/dist/components.js.map +1 -0
  72. package/dist/components.mjs +41 -0
  73. package/dist/components.mjs.map +1 -0
  74. package/dist/config.js +33 -0
  75. package/dist/config.js.map +1 -0
  76. package/dist/config.mjs +30 -0
  77. package/dist/config.mjs.map +1 -0
  78. package/dist/constants.js +10 -0
  79. package/dist/constants.js.map +1 -0
  80. package/dist/constants.mjs +6 -0
  81. package/dist/constants.mjs.map +1 -0
  82. package/dist/icons/ArrowDown.js +15 -0
  83. package/dist/icons/ArrowDown.js.map +1 -0
  84. package/dist/icons/ArrowDown.mjs +13 -0
  85. package/dist/icons/ArrowDown.mjs.map +1 -0
  86. package/dist/icons/Check.js +15 -0
  87. package/dist/icons/Check.js.map +1 -0
  88. package/dist/icons/Check.mjs +13 -0
  89. package/dist/icons/Check.mjs.map +1 -0
  90. package/dist/icons/Cross.js +17 -0
  91. package/dist/icons/Cross.js.map +1 -0
  92. package/dist/icons/Cross.mjs +15 -0
  93. package/dist/icons/Cross.mjs.map +1 -0
  94. package/dist/icons/Delete.js +15 -0
  95. package/dist/icons/Delete.js.map +1 -0
  96. package/dist/icons/Delete.mjs +13 -0
  97. package/dist/icons/Delete.mjs.map +1 -0
  98. package/dist/icons/Edit.js +15 -0
  99. package/dist/icons/Edit.js.map +1 -0
  100. package/dist/icons/Edit.mjs +13 -0
  101. package/dist/icons/Edit.mjs.map +1 -0
  102. package/dist/icons/Ellipsis.js +26 -0
  103. package/dist/icons/Ellipsis.js.map +1 -0
  104. package/dist/icons/Ellipsis.mjs +24 -0
  105. package/dist/icons/Ellipsis.mjs.map +1 -0
  106. package/dist/icons/Emoji.js +27 -0
  107. package/dist/icons/Emoji.js.map +1 -0
  108. package/dist/icons/Emoji.mjs +25 -0
  109. package/dist/icons/Emoji.mjs.map +1 -0
  110. package/dist/icons/EmojiAdd.js +29 -0
  111. package/dist/icons/EmojiAdd.js.map +1 -0
  112. package/dist/icons/EmojiAdd.mjs +27 -0
  113. package/dist/icons/EmojiAdd.mjs.map +1 -0
  114. package/dist/icons/Mention.js +17 -0
  115. package/dist/icons/Mention.js.map +1 -0
  116. package/dist/icons/Mention.mjs +15 -0
  117. package/dist/icons/Mention.mjs.map +1 -0
  118. package/dist/icons/Missing.js +19 -0
  119. package/dist/icons/Missing.js.map +1 -0
  120. package/dist/icons/Missing.mjs +17 -0
  121. package/dist/icons/Missing.mjs.map +1 -0
  122. package/dist/icons/Resolve.js +19 -0
  123. package/dist/icons/Resolve.js.map +1 -0
  124. package/dist/icons/Resolve.mjs +17 -0
  125. package/dist/icons/Resolve.mjs.map +1 -0
  126. package/dist/icons/Resolved.js +21 -0
  127. package/dist/icons/Resolved.js.map +1 -0
  128. package/dist/icons/Resolved.mjs +19 -0
  129. package/dist/icons/Resolved.mjs.map +1 -0
  130. package/dist/icons/Search.js +15 -0
  131. package/dist/icons/Search.js.map +1 -0
  132. package/dist/icons/Search.mjs +13 -0
  133. package/dist/icons/Search.mjs.map +1 -0
  134. package/dist/icons/Send.js +15 -0
  135. package/dist/icons/Send.js.map +1 -0
  136. package/dist/icons/Send.mjs +13 -0
  137. package/dist/icons/Send.mjs.map +1 -0
  138. package/dist/icons/Spinner.js +22 -0
  139. package/dist/icons/Spinner.js.map +1 -0
  140. package/dist/icons/Spinner.mjs +20 -0
  141. package/dist/icons/Spinner.mjs.map +1 -0
  142. package/dist/index.d.mts +476 -0
  143. package/dist/index.d.ts +476 -0
  144. package/dist/index.js +20 -0
  145. package/dist/index.js.map +1 -0
  146. package/dist/index.mjs +11 -0
  147. package/dist/index.mjs.map +1 -0
  148. package/dist/overrides.js +100 -0
  149. package/dist/overrides.js.map +1 -0
  150. package/dist/overrides.mjs +77 -0
  151. package/dist/overrides.mjs.map +1 -0
  152. package/dist/primitives/Comment/index.js +113 -0
  153. package/dist/primitives/Comment/index.js.map +1 -0
  154. package/dist/primitives/Comment/index.mjs +109 -0
  155. package/dist/primitives/Comment/index.mjs.map +1 -0
  156. package/dist/primitives/Comment/utils.js +25 -0
  157. package/dist/primitives/Comment/utils.js.map +1 -0
  158. package/dist/primitives/Comment/utils.mjs +20 -0
  159. package/dist/primitives/Comment/utils.mjs.map +1 -0
  160. package/dist/primitives/Composer/contexts.js +34 -0
  161. package/dist/primitives/Composer/contexts.js.map +1 -0
  162. package/dist/primitives/Composer/contexts.mjs +27 -0
  163. package/dist/primitives/Composer/contexts.mjs.map +1 -0
  164. package/dist/primitives/Composer/index.js +771 -0
  165. package/dist/primitives/Composer/index.js.map +1 -0
  166. package/dist/primitives/Composer/index.mjs +762 -0
  167. package/dist/primitives/Composer/index.mjs.map +1 -0
  168. package/dist/primitives/Composer/utils.js +102 -0
  169. package/dist/primitives/Composer/utils.js.map +1 -0
  170. package/dist/primitives/Composer/utils.mjs +93 -0
  171. package/dist/primitives/Composer/utils.mjs.map +1 -0
  172. package/dist/primitives/EmojiPicker/contexts.js +19 -0
  173. package/dist/primitives/EmojiPicker/contexts.js.map +1 -0
  174. package/dist/primitives/EmojiPicker/contexts.mjs +16 -0
  175. package/dist/primitives/EmojiPicker/contexts.mjs.map +1 -0
  176. package/dist/primitives/EmojiPicker/index.js +434 -0
  177. package/dist/primitives/EmojiPicker/index.js.map +1 -0
  178. package/dist/primitives/EmojiPicker/index.mjs +430 -0
  179. package/dist/primitives/EmojiPicker/index.mjs.map +1 -0
  180. package/dist/primitives/EmojiPicker/utils.js +329 -0
  181. package/dist/primitives/EmojiPicker/utils.js.map +1 -0
  182. package/dist/primitives/EmojiPicker/utils.mjs +325 -0
  183. package/dist/primitives/EmojiPicker/utils.mjs.map +1 -0
  184. package/dist/primitives/Timestamp.js +121 -0
  185. package/dist/primitives/Timestamp.js.map +1 -0
  186. package/dist/primitives/Timestamp.mjs +119 -0
  187. package/dist/primitives/Timestamp.mjs.map +1 -0
  188. package/dist/primitives/index.d.mts +502 -0
  189. package/dist/primitives/index.d.ts +502 -0
  190. package/dist/primitives/index.js +16 -0
  191. package/dist/primitives/index.js.map +1 -0
  192. package/dist/primitives/index.mjs +9 -0
  193. package/dist/primitives/index.mjs.map +1 -0
  194. package/dist/primitives/internal/Emoji.js +30 -0
  195. package/dist/primitives/internal/Emoji.js.map +1 -0
  196. package/dist/primitives/internal/Emoji.mjs +28 -0
  197. package/dist/primitives/internal/Emoji.mjs.map +1 -0
  198. package/dist/shared.js +21 -0
  199. package/dist/shared.js.map +1 -0
  200. package/dist/shared.mjs +19 -0
  201. package/dist/shared.mjs.map +1 -0
  202. package/dist/slate/plugins/auto-formatting.js +83 -0
  203. package/dist/slate/plugins/auto-formatting.js.map +1 -0
  204. package/dist/slate/plugins/auto-formatting.mjs +81 -0
  205. package/dist/slate/plugins/auto-formatting.mjs.map +1 -0
  206. package/dist/slate/plugins/auto-links.js +175 -0
  207. package/dist/slate/plugins/auto-links.js.map +1 -0
  208. package/dist/slate/plugins/auto-links.mjs +172 -0
  209. package/dist/slate/plugins/auto-links.mjs.map +1 -0
  210. package/dist/slate/plugins/empty-clear-formatting.js +18 -0
  211. package/dist/slate/plugins/empty-clear-formatting.js.map +1 -0
  212. package/dist/slate/plugins/empty-clear-formatting.mjs +16 -0
  213. package/dist/slate/plugins/empty-clear-formatting.mjs.map +1 -0
  214. package/dist/slate/plugins/mentions.js +112 -0
  215. package/dist/slate/plugins/mentions.js.map +1 -0
  216. package/dist/slate/plugins/mentions.mjs +105 -0
  217. package/dist/slate/plugins/mentions.mjs.map +1 -0
  218. package/dist/slate/utils/get-character.js +50 -0
  219. package/dist/slate/utils/get-character.js.map +1 -0
  220. package/dist/slate/utils/get-character.mjs +47 -0
  221. package/dist/slate/utils/get-character.mjs.map +1 -0
  222. package/dist/slate/utils/get-dom-range.js +17 -0
  223. package/dist/slate/utils/get-dom-range.js.map +1 -0
  224. package/dist/slate/utils/get-dom-range.mjs +15 -0
  225. package/dist/slate/utils/get-dom-range.mjs.map +1 -0
  226. package/dist/slate/utils/get-match-range.js +53 -0
  227. package/dist/slate/utils/get-match-range.js.map +1 -0
  228. package/dist/slate/utils/get-match-range.mjs +51 -0
  229. package/dist/slate/utils/get-match-range.mjs.map +1 -0
  230. package/dist/slate/utils/is-empty-string.js +8 -0
  231. package/dist/slate/utils/is-empty-string.js.map +1 -0
  232. package/dist/slate/utils/is-empty-string.mjs +6 -0
  233. package/dist/slate/utils/is-empty-string.mjs.map +1 -0
  234. package/dist/slate/utils/is-empty.js +10 -0
  235. package/dist/slate/utils/is-empty.js.map +1 -0
  236. package/dist/slate/utils/is-empty.mjs +8 -0
  237. package/dist/slate/utils/is-empty.mjs.map +1 -0
  238. package/dist/slate/utils/is-selection-collapsed.js +10 -0
  239. package/dist/slate/utils/is-selection-collapsed.js.map +1 -0
  240. package/dist/slate/utils/is-selection-collapsed.mjs +8 -0
  241. package/dist/slate/utils/is-selection-collapsed.mjs.map +1 -0
  242. package/dist/slate/utils/marks.js +43 -0
  243. package/dist/slate/utils/marks.js.map +1 -0
  244. package/dist/slate/utils/marks.mjs +38 -0
  245. package/dist/slate/utils/marks.mjs.map +1 -0
  246. package/dist/utils/Persist.js +85 -0
  247. package/dist/utils/Persist.js.map +1 -0
  248. package/dist/utils/Persist.mjs +81 -0
  249. package/dist/utils/Persist.mjs.map +1 -0
  250. package/dist/utils/Portal.js +27 -0
  251. package/dist/utils/Portal.js.map +1 -0
  252. package/dist/utils/Portal.mjs +25 -0
  253. package/dist/utils/Portal.mjs.map +1 -0
  254. package/dist/utils/capitalize.js +8 -0
  255. package/dist/utils/capitalize.js.map +1 -0
  256. package/dist/utils/capitalize.mjs +6 -0
  257. package/dist/utils/capitalize.mjs.map +1 -0
  258. package/dist/utils/chunk.js +12 -0
  259. package/dist/utils/chunk.js.map +1 -0
  260. package/dist/utils/chunk.mjs +10 -0
  261. package/dist/utils/chunk.mjs.map +1 -0
  262. package/dist/utils/clamp.js +8 -0
  263. package/dist/utils/clamp.js.map +1 -0
  264. package/dist/utils/clamp.mjs +6 -0
  265. package/dist/utils/clamp.mjs.map +1 -0
  266. package/dist/utils/class-names.js +8 -0
  267. package/dist/utils/class-names.js.map +1 -0
  268. package/dist/utils/class-names.mjs +6 -0
  269. package/dist/utils/class-names.mjs.map +1 -0
  270. package/dist/utils/exists.js +8 -0
  271. package/dist/utils/exists.js.map +1 -0
  272. package/dist/utils/exists.mjs +6 -0
  273. package/dist/utils/exists.mjs.map +1 -0
  274. package/dist/utils/find-last-index.js +15 -0
  275. package/dist/utils/find-last-index.js.map +1 -0
  276. package/dist/utils/find-last-index.mjs +13 -0
  277. package/dist/utils/find-last-index.mjs.map +1 -0
  278. package/dist/utils/flush-sync.js +12 -0
  279. package/dist/utils/flush-sync.js.map +1 -0
  280. package/dist/utils/flush-sync.mjs +10 -0
  281. package/dist/utils/flush-sync.mjs.map +1 -0
  282. package/dist/utils/get-initials.js +13 -0
  283. package/dist/utils/get-initials.js.map +1 -0
  284. package/dist/utils/get-initials.mjs +11 -0
  285. package/dist/utils/get-initials.mjs.map +1 -0
  286. package/dist/utils/intl.js +24 -0
  287. package/dist/utils/intl.js.map +1 -0
  288. package/dist/utils/intl.mjs +20 -0
  289. package/dist/utils/intl.mjs.map +1 -0
  290. package/dist/utils/is-apple.js +9 -0
  291. package/dist/utils/is-apple.js.map +1 -0
  292. package/dist/utils/is-apple.mjs +7 -0
  293. package/dist/utils/is-apple.mjs.map +1 -0
  294. package/dist/utils/is-key.js +26 -0
  295. package/dist/utils/is-key.js.map +1 -0
  296. package/dist/utils/is-key.mjs +24 -0
  297. package/dist/utils/is-key.mjs.map +1 -0
  298. package/dist/utils/memoize.js +19 -0
  299. package/dist/utils/memoize.js.map +1 -0
  300. package/dist/utils/memoize.mjs +17 -0
  301. package/dist/utils/memoize.mjs.map +1 -0
  302. package/dist/utils/pluralize.js +8 -0
  303. package/dist/utils/pluralize.js.map +1 -0
  304. package/dist/utils/pluralize.mjs +6 -0
  305. package/dist/utils/pluralize.mjs.map +1 -0
  306. package/dist/utils/request-idle-callback.js +15 -0
  307. package/dist/utils/request-idle-callback.js.map +1 -0
  308. package/dist/utils/request-idle-callback.mjs +12 -0
  309. package/dist/utils/request-idle-callback.mjs.map +1 -0
  310. package/dist/utils/request-submit.js +20 -0
  311. package/dist/utils/request-submit.js.map +1 -0
  312. package/dist/utils/request-submit.mjs +18 -0
  313. package/dist/utils/request-submit.mjs.map +1 -0
  314. package/dist/utils/url.js +22 -0
  315. package/dist/utils/url.js.map +1 -0
  316. package/dist/utils/url.mjs +20 -0
  317. package/dist/utils/url.mjs.map +1 -0
  318. package/dist/utils/use-controllable-state.js +34 -0
  319. package/dist/utils/use-controllable-state.js.map +1 -0
  320. package/dist/utils/use-controllable-state.mjs +32 -0
  321. package/dist/utils/use-controllable-state.mjs.map +1 -0
  322. package/dist/utils/use-id.js +29 -0
  323. package/dist/utils/use-id.js.map +1 -0
  324. package/dist/utils/use-id.mjs +27 -0
  325. package/dist/utils/use-id.mjs.map +1 -0
  326. package/dist/utils/use-index.js +32 -0
  327. package/dist/utils/use-index.js.map +1 -0
  328. package/dist/utils/use-index.mjs +30 -0
  329. package/dist/utils/use-index.mjs.map +1 -0
  330. package/dist/utils/use-initial.js +10 -0
  331. package/dist/utils/use-initial.js.map +1 -0
  332. package/dist/utils/use-initial.mjs +8 -0
  333. package/dist/utils/use-initial.mjs.map +1 -0
  334. package/dist/utils/use-interval.js +24 -0
  335. package/dist/utils/use-interval.js.map +1 -0
  336. package/dist/utils/use-interval.mjs +22 -0
  337. package/dist/utils/use-interval.mjs.map +1 -0
  338. package/dist/utils/use-latest.js +14 -0
  339. package/dist/utils/use-latest.js.map +1 -0
  340. package/dist/utils/use-latest.mjs +12 -0
  341. package/dist/utils/use-latest.mjs.map +1 -0
  342. package/dist/utils/use-layout-effect.js +8 -0
  343. package/dist/utils/use-layout-effect.js.map +1 -0
  344. package/dist/utils/use-layout-effect.mjs +6 -0
  345. package/dist/utils/use-layout-effect.mjs.map +1 -0
  346. package/dist/utils/use-refs.js +24 -0
  347. package/dist/utils/use-refs.js.map +1 -0
  348. package/dist/utils/use-refs.mjs +22 -0
  349. package/dist/utils/use-refs.mjs.map +1 -0
  350. package/dist/utils/use-rerender.js +14 -0
  351. package/dist/utils/use-rerender.js.map +1 -0
  352. package/dist/utils/use-rerender.mjs +12 -0
  353. package/dist/utils/use-rerender.mjs.map +1 -0
  354. package/dist/utils/use-transition.js +12 -0
  355. package/dist/utils/use-transition.js.map +1 -0
  356. package/dist/utils/use-transition.mjs +10 -0
  357. package/dist/utils/use-transition.mjs.map +1 -0
  358. package/dist/utils/use-visible.js +48 -0
  359. package/dist/utils/use-visible.js.map +1 -0
  360. package/dist/utils/use-visible.mjs +46 -0
  361. package/dist/utils/use-visible.mjs.map +1 -0
  362. package/dist/utils/visually-hidden.js +17 -0
  363. package/dist/utils/visually-hidden.js.map +1 -0
  364. package/dist/utils/visually-hidden.mjs +15 -0
  365. package/dist/utils/visually-hidden.mjs.map +1 -0
  366. package/dist/utils/wrap.js +9 -0
  367. package/dist/utils/wrap.js.map +1 -0
  368. package/dist/utils/wrap.mjs +7 -0
  369. package/dist/utils/wrap.mjs.map +1 -0
  370. package/dist/version.js +10 -0
  371. package/dist/version.js.map +1 -0
  372. package/dist/version.mjs +6 -0
  373. package/dist/version.mjs.map +1 -0
  374. package/package.json +142 -0
  375. package/primitives/README.md +5 -0
  376. package/primitives/package.json +4 -0
  377. package/src/styles/constants.css +17 -0
  378. package/src/styles/dark/attributes.css +8 -0
  379. package/src/styles/dark/index.css +29 -0
  380. package/src/styles/dark/media-query.css +7 -0
  381. package/src/styles/index.css +1437 -0
  382. package/src/styles/utils.css +36 -0
  383. package/styles/dark/attributes.css +1 -0
  384. package/styles/dark/attributes.css.d.ts +1 -0
  385. package/styles/dark/attributes.css.map +1 -0
  386. package/styles/dark/media-query.css +1 -0
  387. package/styles/dark/media-query.css.d.ts +1 -0
  388. package/styles/dark/media-query.css.map +1 -0
  389. package/styles.css +1 -0
  390. package/styles.css.d.ts +1 -0
  391. package/styles.css.map +1 -0
@@ -0,0 +1,476 @@
1
+ import { CommentData, CommentBody, BaseMetadata, InboxNotificationData, InboxNotificationThreadData, InboxNotificationCustomData, ThreadData } from '@liveblocks/core';
2
+ import React, { ReactNode, ComponentPropsWithoutRef, MouseEvent, ComponentType, FormEvent, RefAttributes, ComponentProps, PropsWithChildren } from 'react';
3
+
4
+ declare type Direction = "ltr" | "rtl";
5
+ declare type SlotProp = {
6
+ /**
7
+ * Replace the rendered element by the one passed as a child.
8
+ */
9
+ asChild?: boolean;
10
+ };
11
+ declare type ThreadMetadata = {
12
+ resolved?: boolean;
13
+ };
14
+
15
+ interface LocalizationOverrides {
16
+ locale: string;
17
+ dir: Direction;
18
+ }
19
+ interface GlobalOverrides {
20
+ USER_SELF: string;
21
+ USER_UNKNOWN: string;
22
+ LIST_REMAINING: (count: number) => string;
23
+ LIST_REMAINING_USERS: (count: number) => string;
24
+ LIST_REMAINING_COMMENTS: (count: number) => string;
25
+ EMOJI_PICKER_SEARCH_PLACEHOLDER: string;
26
+ EMOJI_PICKER_EMPTY: ReactNode;
27
+ EMOJI_PICKER_ERROR: (error: Error) => ReactNode;
28
+ }
29
+ interface CommentOverrides {
30
+ COMMENT_EDITED: ReactNode;
31
+ COMMENT_DELETED: ReactNode;
32
+ COMMENT_MORE: string;
33
+ COMMENT_EDIT: string;
34
+ COMMENT_EDIT_COMPOSER_PLACEHOLDER: string;
35
+ COMMENT_EDIT_COMPOSER_CANCEL: string;
36
+ COMMENT_EDIT_COMPOSER_SAVE: string;
37
+ COMMENT_DELETE: string;
38
+ COMMENT_ADD_REACTION: string;
39
+ COMMENT_REACTION_LIST: (list: ReactNode, emoji: string, count: number) => ReactNode;
40
+ COMMENT_REACTION_DESCRIPTION: (emoji: string, count: number) => string;
41
+ }
42
+ interface ComposerOverrides {
43
+ COMPOSER_INSERT_MENTION: string;
44
+ COMPOSER_INSERT_EMOJI: string;
45
+ COMPOSER_PLACEHOLDER: string;
46
+ COMPOSER_SEND: string;
47
+ }
48
+ interface ThreadOverrides {
49
+ THREAD_RESOLVE: string;
50
+ THREAD_UNRESOLVE: string;
51
+ THREAD_NEW_INDICATOR: string;
52
+ THREAD_NEW_INDICATOR_DESCRIPTION: string;
53
+ THREAD_COMPOSER_PLACEHOLDER: string;
54
+ THREAD_COMPOSER_SEND: string;
55
+ }
56
+ interface InboxNotificationOverrides {
57
+ INBOX_NOTIFICATION_MORE: string;
58
+ INBOX_NOTIFICATION_MARK_AS_READ: string;
59
+ INBOX_NOTIFICATION_THREAD_COMMENTS_LIST: (list: ReactNode, room: ReactNode | undefined, count: number) => ReactNode;
60
+ INBOX_NOTIFICATION_THREAD_MENTION: (user: ReactNode, room: ReactNode | undefined) => ReactNode;
61
+ }
62
+ declare type Overrides = LocalizationOverrides & GlobalOverrides & ComposerOverrides & CommentOverrides & ThreadOverrides & InboxNotificationOverrides;
63
+
64
+ interface CommentProps extends ComponentPropsWithoutRef<"div"> {
65
+ /**
66
+ * The comment to display.
67
+ */
68
+ comment: CommentData;
69
+ /**
70
+ * How to show or hide the actions.
71
+ */
72
+ showActions?: boolean | "hover";
73
+ /**
74
+ * Whether to show the comment if it was deleted. If set to `false`, it will render deleted comments as `null`.
75
+ */
76
+ showDeleted?: boolean;
77
+ /**
78
+ * Whether to show reactions.
79
+ */
80
+ showReactions?: boolean;
81
+ /**
82
+ * Whether to indent the comment's content.
83
+ */
84
+ indentContent?: boolean;
85
+ /**
86
+ * The event handler called when the comment is edited.
87
+ */
88
+ onCommentEdit?: (comment: CommentData) => void;
89
+ /**
90
+ * The event handler called when the comment is deleted.
91
+ */
92
+ onCommentDelete?: (comment: CommentData) => void;
93
+ /**
94
+ * The event handler called when clicking on the author.
95
+ */
96
+ onAuthorClick?: (userId: string, event: MouseEvent<HTMLElement>) => void;
97
+ /**
98
+ * The event handler called when clicking on a mention.
99
+ */
100
+ onMentionClick?: (userId: string, event: MouseEvent<HTMLElement>) => void;
101
+ /**
102
+ * Override the component's strings.
103
+ */
104
+ overrides?: Partial<GlobalOverrides & CommentOverrides & ComposerOverrides>;
105
+ }
106
+ /**
107
+ * Displays a single comment.
108
+ *
109
+ * @example
110
+ * <>
111
+ * {thread.comments.map((comment) => (
112
+ * <Comment key={comment.id} comment={comment} />
113
+ * ))}
114
+ * </>
115
+ */
116
+ declare const Comment: React.ForwardRefExoticComponent<CommentProps & React.RefAttributes<HTMLDivElement>>;
117
+
118
+ interface ComposerEditorMentionProps {
119
+ /**
120
+ * Whether the mention is selected.
121
+ */
122
+ isSelected: boolean;
123
+ /**
124
+ * The mention's user ID.
125
+ */
126
+ userId: string;
127
+ }
128
+ interface ComposerEditorLinkProps {
129
+ /**
130
+ * The link's absolute URL.
131
+ *
132
+ * @example "https://example.com"
133
+ */
134
+ href: string;
135
+ /**
136
+ * The link's content.
137
+ *
138
+ * @example "www.example.com", "a link", etc.
139
+ */
140
+ children: ReactNode;
141
+ }
142
+ declare type ComposerEditorMentionSuggestionsProps = {
143
+ /**
144
+ * The list of suggested user IDs.
145
+ */
146
+ userIds: string[];
147
+ /**
148
+ * The currently selected user ID.
149
+ */
150
+ selectedUserId?: string;
151
+ };
152
+ interface ComposerEditorComponents {
153
+ /**
154
+ * The component used to display mentions.
155
+ */
156
+ Mention: ComponentType<ComposerEditorMentionProps>;
157
+ /**
158
+ * The component used to display mention suggestions.
159
+ */
160
+ MentionSuggestions: ComponentType<ComposerEditorMentionSuggestionsProps>;
161
+ /**
162
+ * The component used to display links.
163
+ */
164
+ Link: ComponentType<ComposerEditorLinkProps>;
165
+ }
166
+ interface ComposerEditorProps extends Omit<ComponentPropsWithoutRef<"div">, "defaultValue"> {
167
+ /**
168
+ * The reading direction of the editor and related elements.
169
+ */
170
+ dir?: Direction;
171
+ /**
172
+ * The editor's initial value.
173
+ */
174
+ defaultValue?: CommentBody;
175
+ /**
176
+ * The text to display when the editor is empty.
177
+ */
178
+ placeholder?: string;
179
+ /**
180
+ * Whether the editor is disabled.
181
+ */
182
+ disabled?: boolean;
183
+ /**
184
+ * Whether to focus the editor on mount.
185
+ */
186
+ autoFocus?: boolean;
187
+ /**
188
+ * The components displayed within the editor.
189
+ */
190
+ components?: Partial<ComposerEditorComponents>;
191
+ }
192
+ interface ComposerSubmitComment {
193
+ /**
194
+ * The submitted comment's body.
195
+ */
196
+ body: CommentBody;
197
+ }
198
+
199
+ declare type ComposerCreateThreadProps<M extends BaseMetadata> = {
200
+ threadId?: never;
201
+ commentId?: never;
202
+ /**
203
+ * The metadata of the thread to create.
204
+ */
205
+ metadata?: M;
206
+ };
207
+ declare type ComposerCreateCommentProps = {
208
+ /**
209
+ * The ID of the thread to reply to.
210
+ */
211
+ threadId: string;
212
+ commentId?: never;
213
+ metadata?: never;
214
+ };
215
+ declare type ComposerEditCommentProps = {
216
+ /**
217
+ * The ID of the thread to edit a comment in.
218
+ */
219
+ threadId: string;
220
+ /**
221
+ * The ID of the comment to edit.
222
+ */
223
+ commentId: string;
224
+ metadata?: never;
225
+ };
226
+ declare type ComposerProps<M extends BaseMetadata = ThreadMetadata> = Omit<ComponentPropsWithoutRef<"form">, "defaultValue"> & (ComposerCreateThreadProps<M> | ComposerCreateCommentProps | ComposerEditCommentProps) & {
227
+ /**
228
+ * The event handler called when the composer is submitted.
229
+ */
230
+ onComposerSubmit?: (comment: ComposerSubmitComment, event: FormEvent<HTMLFormElement>) => Promise<void> | void;
231
+ /**
232
+ * The composer's initial value.
233
+ */
234
+ defaultValue?: ComposerEditorProps["defaultValue"];
235
+ /**
236
+ * Whether the composer is collapsed. Setting a value will make the composer controlled.
237
+ */
238
+ collapsed?: boolean;
239
+ /**
240
+ * The event handler called when the collapsed state of the composer changes.
241
+ */
242
+ onCollapsedChange?: (collapsed: boolean) => void;
243
+ /**
244
+ * Whether the composer is initially collapsed. Setting a value will make the composer uncontrolled.
245
+ */
246
+ defaultCollapsed?: boolean;
247
+ /**
248
+ * Whether the composer is disabled.
249
+ */
250
+ disabled?: ComposerEditorProps["disabled"];
251
+ /**
252
+ * Whether to focus the composer on mount.
253
+ */
254
+ autoFocus?: ComposerEditorProps["autoFocus"];
255
+ /**
256
+ * Override the component's strings.
257
+ */
258
+ overrides?: Partial<GlobalOverrides & ComposerOverrides>;
259
+ };
260
+ /**
261
+ * Displays a composer to create comments.
262
+ *
263
+ * @example
264
+ * <Composer />
265
+ */
266
+ declare const Composer: <M extends BaseMetadata = ThreadMetadata>(props: ComposerProps<M> & RefAttributes<HTMLFormElement>) => JSX.Element;
267
+
268
+ interface GlobalComponents {
269
+ Anchor: ComponentType<ComponentPropsWithoutRef<"a">> | "a";
270
+ }
271
+ declare type Components = GlobalComponents;
272
+
273
+ interface AvatarProps extends ComponentProps<"div"> {
274
+ /**
275
+ * The user ID to display the avatar for.
276
+ */
277
+ userId: string;
278
+ }
279
+
280
+ declare type Optional<T, K extends keyof T> = Pick<Partial<T>, K> & Omit<T, K>;
281
+ declare type ComponentTypeWithRef<T extends keyof JSX.IntrinsicElements, P> = ComponentType<P & Pick<ComponentProps<T>, "ref">>;
282
+ declare type InboxNotificationKinds = Record<`$${string}`, ComponentTypeWithRef<"a", Optional<InboxNotificationCustomProps, "title" | "children">>> & {
283
+ thread: ComponentTypeWithRef<"a", InboxNotificationThreadProps>;
284
+ };
285
+ interface InboxNotificationSharedProps {
286
+ /**
287
+ * How to show or hide the actions.
288
+ */
289
+ showActions?: boolean | "hover";
290
+ }
291
+ interface InboxNotificationProps extends Omit<ComponentPropsWithoutRef<"a">, "title">, InboxNotificationSharedProps {
292
+ /**
293
+ * The inbox notification to display.
294
+ */
295
+ inboxNotification: InboxNotificationData;
296
+ /**
297
+ * Override specific kinds of inbox notifications.
298
+ */
299
+ kinds?: Partial<InboxNotificationKinds>;
300
+ /**
301
+ * Override the component's strings.
302
+ */
303
+ overrides?: Partial<GlobalOverrides & InboxNotificationOverrides & CommentOverrides>;
304
+ /**
305
+ * Override the component's components.
306
+ */
307
+ components?: Partial<GlobalComponents>;
308
+ }
309
+ interface InboxNotificationThreadProps extends Omit<InboxNotificationProps, "kinds" | "children">, InboxNotificationSharedProps {
310
+ /**
311
+ * The inbox notification to display.
312
+ */
313
+ inboxNotification: InboxNotificationThreadData;
314
+ /**
315
+ * Whether to show the room name in the title.
316
+ */
317
+ showRoomName?: boolean;
318
+ }
319
+ interface InboxNotificationCustomProps extends Omit<InboxNotificationProps, "kinds">, InboxNotificationSharedProps, SlotProp {
320
+ /**
321
+ * The inbox notification to display.
322
+ */
323
+ inboxNotification: InboxNotificationCustomData;
324
+ /**
325
+ * The inbox notification's content.
326
+ */
327
+ children: ReactNode;
328
+ /**
329
+ * The inbox notification's title.
330
+ */
331
+ title: ReactNode;
332
+ /**
333
+ * The inbox notification's aside content.
334
+ * Can be combined with `InboxNotification.Icon` or `InboxNotification.Avatar` to easily follow default styles.
335
+ */
336
+ aside?: ReactNode;
337
+ /**
338
+ * Whether to mark the inbox notification as read when clicked.
339
+ */
340
+ markAsReadOnClick?: boolean;
341
+ }
342
+ declare type InboxNotificationIconProps = ComponentProps<"div">;
343
+ declare type InboxNotificationAvatarProps = AvatarProps;
344
+ declare function InboxNotificationIcon({ className, ...props }: InboxNotificationIconProps): React.JSX.Element;
345
+ declare function InboxNotificationAvatar({ className, ...props }: InboxNotificationAvatarProps): React.JSX.Element;
346
+ /**
347
+ * Displays a single inbox notification.
348
+ *
349
+ * @example
350
+ * <>
351
+ * {inboxNotifications.map((inboxNotification) => (
352
+ * <InboxNotification
353
+ * key={inboxNotification.id}
354
+ * inboxNotification={inboxNotification}
355
+ * href={`/rooms/${inboxNotification.roomId}`
356
+ * />
357
+ * ))}
358
+ * </>
359
+ */
360
+ declare const InboxNotification: React.ForwardRefExoticComponent<InboxNotificationProps & React.RefAttributes<HTMLAnchorElement>> & {
361
+ Thread: React.ForwardRefExoticComponent<InboxNotificationThreadProps & React.RefAttributes<HTMLAnchorElement>>;
362
+ Custom: React.ForwardRefExoticComponent<InboxNotificationCustomProps & React.RefAttributes<HTMLAnchorElement>>;
363
+ Icon: typeof InboxNotificationIcon;
364
+ Avatar: typeof InboxNotificationAvatar;
365
+ };
366
+
367
+ declare type InboxNotificationListProps = ComponentPropsWithoutRef<"ol">;
368
+ /**
369
+ * Displays inbox notifications as a list.
370
+ *
371
+ * @example
372
+ * <InboxNotificationList>
373
+ * {inboxNotifications.map((inboxNotification) => (
374
+ * <InboxNotification key={inboxNotification.id} inboxNotification={inboxNotification} />
375
+ * ))}
376
+ * </InboxNotificationList>
377
+ */
378
+ declare const InboxNotificationList: React.ForwardRefExoticComponent<Omit<React.DetailedHTMLProps<React.OlHTMLAttributes<HTMLOListElement>, HTMLOListElement>, "ref"> & React.RefAttributes<HTMLOListElement>>;
379
+
380
+ interface ThreadProps<M extends BaseMetadata = ThreadMetadata> extends ComponentPropsWithoutRef<"div"> {
381
+ /**
382
+ * The thread to display.
383
+ */
384
+ thread: ThreadData<M>;
385
+ /**
386
+ * How to show or hide the composer to reply to the thread.
387
+ */
388
+ showComposer?: boolean | "collapsed";
389
+ /**
390
+ * Whether to show the action to resolve the thread.
391
+ */
392
+ showResolveAction?: boolean;
393
+ /**
394
+ * How to show or hide the actions.
395
+ */
396
+ showActions?: CommentProps["showActions"];
397
+ /**
398
+ * Whether to show reactions.
399
+ */
400
+ showReactions?: CommentProps["showReactions"];
401
+ /**
402
+ * Whether to indent the comments' content.
403
+ */
404
+ indentCommentContent?: CommentProps["indentContent"];
405
+ /**
406
+ * Whether to show deleted comments.
407
+ */
408
+ showDeletedComments?: CommentProps["showDeleted"];
409
+ /**
410
+ * The event handler called when changing the resolved status.
411
+ */
412
+ onResolvedChange?: (resolved: boolean) => void;
413
+ /**
414
+ * The event handler called when a comment is edited.
415
+ */
416
+ onCommentEdit?: CommentProps["onCommentEdit"];
417
+ /**
418
+ * The event handler called when a comment is deleted.
419
+ */
420
+ onCommentDelete?: CommentProps["onCommentDelete"];
421
+ /**
422
+ * The event handler called when the thread is deleted.
423
+ * A thread is deleted when all its comments are deleted.
424
+ */
425
+ onThreadDelete?: (thread: ThreadData<M>) => void;
426
+ /**
427
+ * The event handler called when clicking on a comment's author.
428
+ */
429
+ onAuthorClick?: CommentProps["onAuthorClick"];
430
+ /**
431
+ * The event handler called when clicking on a mention.
432
+ */
433
+ onMentionClick?: CommentProps["onMentionClick"];
434
+ /**
435
+ * Override the component's strings.
436
+ */
437
+ overrides?: Partial<GlobalOverrides & ThreadOverrides & CommentOverrides & ComposerOverrides>;
438
+ }
439
+ /**
440
+ * Displays a thread of comments, with a composer to reply
441
+ * to it.
442
+ *
443
+ * @example
444
+ * <>
445
+ * {threads.map((thread) => (
446
+ * <Thread key={thread.id} thread={thread} />
447
+ * ))}
448
+ * </>
449
+ */
450
+ declare const Thread: <M extends BaseMetadata = ThreadMetadata>(props: ThreadProps<M> & RefAttributes<HTMLDivElement>) => JSX.Element;
451
+
452
+ declare type LiveblocksUIConfigProps = PropsWithChildren<{
453
+ /**
454
+ * Override the components' strings.
455
+ */
456
+ overrides?: Partial<Overrides>;
457
+ /**
458
+ * Override the components' components.
459
+ */
460
+ components?: Partial<Components>;
461
+ /**
462
+ * The container to render the portal into.
463
+ */
464
+ portalContainer?: HTMLElement;
465
+ }>;
466
+ /**
467
+ * Set configuration options for all components.
468
+ *
469
+ * @example
470
+ * <LiveblocksUIConfig overrides={{ locale: "fr", USER_UNKNOWN: "Anonyme", ... }}>
471
+ * <App />
472
+ * </LiveblocksUIConfig>
473
+ */
474
+ declare function LiveblocksUIConfig({ overrides, components, portalContainer, children, }: LiveblocksUIConfigProps): React.JSX.Element;
475
+
476
+ export { Comment, CommentProps, Composer, ComposerProps, ComposerSubmitComment, InboxNotification, InboxNotificationAvatarProps, InboxNotificationCustomProps, InboxNotificationIconProps, InboxNotificationList, InboxNotificationListProps, InboxNotificationProps, InboxNotificationThreadProps, LiveblocksUIConfig, Thread, ThreadProps };
package/dist/index.js ADDED
@@ -0,0 +1,20 @@
1
+ 'use strict';
2
+
3
+ var core = require('@liveblocks/core');
4
+ var version = require('./version.js');
5
+ var Comment = require('./components/Comment.js');
6
+ var Composer = require('./components/Composer.js');
7
+ var InboxNotification = require('./components/InboxNotification.js');
8
+ var InboxNotificationList = require('./components/InboxNotificationList.js');
9
+ var Thread = require('./components/Thread.js');
10
+ var config = require('./config.js');
11
+
12
+ core.detectDupes(version.PKG_NAME, version.PKG_VERSION, version.PKG_FORMAT);
13
+
14
+ exports.Comment = Comment.Comment;
15
+ exports.Composer = Composer.Composer;
16
+ exports.InboxNotification = InboxNotification.InboxNotification;
17
+ exports.InboxNotificationList = InboxNotificationList.InboxNotificationList;
18
+ exports.Thread = Thread.Thread;
19
+ exports.LiveblocksUIConfig = config.LiveblocksUIConfig;
20
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../src/index.ts"],"sourcesContent":["import { detectDupes } from \"@liveblocks/core\";\n\nimport { PKG_FORMAT, PKG_NAME, PKG_VERSION } from \"./version\";\n\ndetectDupes(PKG_NAME, PKG_VERSION, PKG_FORMAT);\n\nexport type { CommentProps } from \"./components/Comment\";\nexport { Comment } from \"./components/Comment\";\nexport type { ComposerProps } from \"./components/Composer\";\nexport { Composer } from \"./components/Composer\";\nexport type {\n InboxNotificationAvatarProps,\n InboxNotificationCustomProps,\n InboxNotificationIconProps,\n InboxNotificationProps,\n InboxNotificationThreadProps,\n} from \"./components/InboxNotification\";\nexport { InboxNotification } from \"./components/InboxNotification\";\nexport type { InboxNotificationListProps } from \"./components/InboxNotificationList\";\nexport { InboxNotificationList } from \"./components/InboxNotificationList\";\nexport type { ThreadProps } from \"./components/Thread\";\nexport { Thread } from \"./components/Thread\";\nexport { LiveblocksUIConfig } from \"./config\";\nexport type { ComposerSubmitComment } from \"./primitives\";\n"],"names":["detectDupes","PKG_NAME","PKG_VERSION","PKG_FORMAT"],"mappings":";;;;;;;;;;;AAIAA,gBAAY,CAAAC,gBAAA,EAAUC,qBAAaC,kBAAU,CAAA;;;;;;;;;"}
package/dist/index.mjs ADDED
@@ -0,0 +1,11 @@
1
+ import { detectDupes } from '@liveblocks/core';
2
+ import { PKG_NAME, PKG_VERSION, PKG_FORMAT } from './version.mjs';
3
+ export { Comment } from './components/Comment.mjs';
4
+ export { Composer } from './components/Composer.mjs';
5
+ export { InboxNotification } from './components/InboxNotification.mjs';
6
+ export { InboxNotificationList } from './components/InboxNotificationList.mjs';
7
+ export { Thread } from './components/Thread.mjs';
8
+ export { LiveblocksUIConfig } from './config.mjs';
9
+
10
+ detectDupes(PKG_NAME, PKG_VERSION, PKG_FORMAT);
11
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","sources":["../src/index.ts"],"sourcesContent":["import { detectDupes } from \"@liveblocks/core\";\n\nimport { PKG_FORMAT, PKG_NAME, PKG_VERSION } from \"./version\";\n\ndetectDupes(PKG_NAME, PKG_VERSION, PKG_FORMAT);\n\nexport type { CommentProps } from \"./components/Comment\";\nexport { Comment } from \"./components/Comment\";\nexport type { ComposerProps } from \"./components/Composer\";\nexport { Composer } from \"./components/Composer\";\nexport type {\n InboxNotificationAvatarProps,\n InboxNotificationCustomProps,\n InboxNotificationIconProps,\n InboxNotificationProps,\n InboxNotificationThreadProps,\n} from \"./components/InboxNotification\";\nexport { InboxNotification } from \"./components/InboxNotification\";\nexport type { InboxNotificationListProps } from \"./components/InboxNotificationList\";\nexport { InboxNotificationList } from \"./components/InboxNotificationList\";\nexport type { ThreadProps } from \"./components/Thread\";\nexport { Thread } from \"./components/Thread\";\nexport { LiveblocksUIConfig } from \"./config\";\nexport type { ComposerSubmitComment } from \"./primitives\";\n"],"names":[],"mappings":";;;;;;;;;AAIA,WAAY,CAAA,QAAA,EAAU,aAAa,UAAU,CAAA"}
@@ -0,0 +1,100 @@
1
+ 'use client';
2
+ 'use strict';
3
+
4
+ var React = require('react');
5
+ var Emoji = require('./components/internal/Emoji.js');
6
+ var pluralize = require('./utils/pluralize.js');
7
+
8
+ function _interopNamespaceDefault(e) {
9
+ var n = Object.create(null);
10
+ if (e) {
11
+ Object.keys(e).forEach(function (k) {
12
+ if (k !== 'default') {
13
+ var d = Object.getOwnPropertyDescriptor(e, k);
14
+ Object.defineProperty(n, k, d.get ? d : {
15
+ enumerable: true,
16
+ get: function () { return e[k]; }
17
+ });
18
+ }
19
+ });
20
+ }
21
+ n.default = e;
22
+ return Object.freeze(n);
23
+ }
24
+
25
+ var React__namespace = /*#__PURE__*/_interopNamespaceDefault(React);
26
+
27
+ const defaultOverrides = {
28
+ locale: "en",
29
+ dir: "ltr",
30
+ USER_SELF: "you",
31
+ USER_UNKNOWN: "Anonymous",
32
+ LIST_REMAINING: (count) => `${count} more`,
33
+ LIST_REMAINING_USERS: (count) => `${count} ${pluralize.pluralize(count, "other")}`,
34
+ LIST_REMAINING_COMMENTS: (count) => `${count} more ${pluralize.pluralize(count, "comment")}`,
35
+ EMOJI_PICKER_SEARCH_PLACEHOLDER: "Search\u2026",
36
+ EMOJI_PICKER_EMPTY: "No emoji found.",
37
+ EMOJI_PICKER_ERROR: () => "There was an error while getting the list of emoji.",
38
+ COMPOSER_INSERT_MENTION: "Mention someone",
39
+ COMPOSER_INSERT_EMOJI: "Add emoji",
40
+ COMPOSER_PLACEHOLDER: "Write a comment\u2026",
41
+ COMPOSER_SEND: "Send",
42
+ COMMENT_EDITED: "(edited)",
43
+ COMMENT_DELETED: "This comment has been deleted.",
44
+ COMMENT_MORE: "More",
45
+ COMMENT_EDIT: "Edit comment",
46
+ COMMENT_EDIT_COMPOSER_PLACEHOLDER: "Edit comment\u2026",
47
+ COMMENT_EDIT_COMPOSER_CANCEL: "Cancel",
48
+ COMMENT_EDIT_COMPOSER_SAVE: "Save",
49
+ COMMENT_DELETE: "Delete comment",
50
+ COMMENT_ADD_REACTION: "Add reaction",
51
+ COMMENT_REACTION_LIST: (list, emoji) => /* @__PURE__ */ React__namespace.createElement(React__namespace.Fragment, null, list, " reacted with ", /* @__PURE__ */ React__namespace.createElement(Emoji.Emoji, {
52
+ emoji
53
+ })),
54
+ COMMENT_REACTION_DESCRIPTION: (emoji, count) => `${count} ${pluralize.pluralize(count, "reaction")}, react with ${emoji}`,
55
+ THREAD_RESOLVE: "Resolve thread",
56
+ THREAD_UNRESOLVE: "Re-open thread",
57
+ THREAD_NEW_INDICATOR: "New",
58
+ THREAD_NEW_INDICATOR_DESCRIPTION: "New comments",
59
+ THREAD_COMPOSER_PLACEHOLDER: "Reply to thread\u2026",
60
+ THREAD_COMPOSER_SEND: "Reply",
61
+ INBOX_NOTIFICATION_MORE: "More",
62
+ INBOX_NOTIFICATION_MARK_AS_READ: "Mark as read",
63
+ INBOX_NOTIFICATION_THREAD_COMMENTS_LIST: (list, room) => /* @__PURE__ */ React__namespace.createElement(React__namespace.Fragment, null, list, " commented", room ? /* @__PURE__ */ React__namespace.createElement(React__namespace.Fragment, null, " in ", room) : /* @__PURE__ */ React__namespace.createElement(React__namespace.Fragment, null, " in a thread")),
64
+ INBOX_NOTIFICATION_THREAD_MENTION: (user, room) => /* @__PURE__ */ React__namespace.createElement(React__namespace.Fragment, null, user, " mentioned you", room ? /* @__PURE__ */ React__namespace.createElement(React__namespace.Fragment, null, " in ", room) : null)
65
+ };
66
+ const OverridesContext = React.createContext(void 0);
67
+ function useOverrides(overrides) {
68
+ const contextOverrides = React.useContext(OverridesContext);
69
+ return React.useMemo(
70
+ () => ({
71
+ ...defaultOverrides,
72
+ ...contextOverrides,
73
+ ...overrides
74
+ }),
75
+ [contextOverrides, overrides]
76
+ );
77
+ }
78
+ function OverridesProvider({
79
+ children,
80
+ overrides: providerOverrides
81
+ }) {
82
+ const contextOverrides = React.useContext(OverridesContext);
83
+ const overrides = React.useMemo(
84
+ () => ({
85
+ ...defaultOverrides,
86
+ ...contextOverrides,
87
+ ...providerOverrides
88
+ }),
89
+ [contextOverrides, providerOverrides]
90
+ );
91
+ return /* @__PURE__ */ React__namespace.createElement(OverridesContext.Provider, {
92
+ value: overrides
93
+ }, children);
94
+ }
95
+
96
+ exports.OverridesContext = OverridesContext;
97
+ exports.OverridesProvider = OverridesProvider;
98
+ exports.defaultOverrides = defaultOverrides;
99
+ exports.useOverrides = useOverrides;
100
+ //# sourceMappingURL=overrides.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"overrides.js","sources":["../src/overrides.tsx"],"sourcesContent":["\"use client\";\n\nimport type { PropsWithChildren, ReactNode } from \"react\";\nimport { createContext, useContext, useMemo } from \"react\";\nimport * as React from \"react\";\n\nimport { Emoji } from \"./components/internal/Emoji\";\nimport type { Direction } from \"./types\";\nimport { pluralize } from \"./utils/pluralize\";\n\nexport interface LocalizationOverrides {\n locale: string;\n dir: Direction;\n}\n\nexport interface GlobalOverrides {\n USER_SELF: string;\n USER_UNKNOWN: string;\n LIST_REMAINING: (count: number) => string;\n LIST_REMAINING_USERS: (count: number) => string;\n LIST_REMAINING_COMMENTS: (count: number) => string;\n EMOJI_PICKER_SEARCH_PLACEHOLDER: string;\n EMOJI_PICKER_EMPTY: ReactNode;\n EMOJI_PICKER_ERROR: (error: Error) => ReactNode;\n}\n\nexport interface CommentOverrides {\n COMMENT_EDITED: ReactNode;\n COMMENT_DELETED: ReactNode;\n COMMENT_MORE: string;\n COMMENT_EDIT: string;\n COMMENT_EDIT_COMPOSER_PLACEHOLDER: string;\n COMMENT_EDIT_COMPOSER_CANCEL: string;\n COMMENT_EDIT_COMPOSER_SAVE: string;\n COMMENT_DELETE: string;\n COMMENT_ADD_REACTION: string;\n COMMENT_REACTION_LIST: (\n list: ReactNode,\n emoji: string,\n count: number\n ) => ReactNode;\n COMMENT_REACTION_DESCRIPTION: (emoji: string, count: number) => string;\n}\n\nexport interface ComposerOverrides {\n COMPOSER_INSERT_MENTION: string;\n COMPOSER_INSERT_EMOJI: string;\n COMPOSER_PLACEHOLDER: string;\n COMPOSER_SEND: string;\n}\n\nexport interface ThreadOverrides {\n THREAD_RESOLVE: string;\n THREAD_UNRESOLVE: string;\n THREAD_NEW_INDICATOR: string;\n THREAD_NEW_INDICATOR_DESCRIPTION: string;\n THREAD_COMPOSER_PLACEHOLDER: string;\n THREAD_COMPOSER_SEND: string;\n}\n\nexport interface InboxNotificationOverrides {\n INBOX_NOTIFICATION_MORE: string;\n INBOX_NOTIFICATION_MARK_AS_READ: string;\n INBOX_NOTIFICATION_THREAD_COMMENTS_LIST: (\n list: ReactNode,\n room: ReactNode | undefined,\n count: number\n ) => ReactNode;\n INBOX_NOTIFICATION_THREAD_MENTION: (\n user: ReactNode,\n room: ReactNode | undefined\n ) => ReactNode;\n}\n\nexport type Overrides = LocalizationOverrides &\n GlobalOverrides &\n ComposerOverrides &\n CommentOverrides &\n ThreadOverrides &\n InboxNotificationOverrides;\n\ntype OverridesProviderProps = PropsWithChildren<{\n overrides?: Partial<Overrides>;\n}>;\n\nexport const defaultOverrides: Overrides = {\n locale: \"en\",\n dir: \"ltr\",\n USER_SELF: \"you\",\n USER_UNKNOWN: \"Anonymous\",\n LIST_REMAINING: (count) => `${count} more`,\n LIST_REMAINING_USERS: (count) => `${count} ${pluralize(count, \"other\")}`,\n LIST_REMAINING_COMMENTS: (count) =>\n `${count} more ${pluralize(count, \"comment\")}`,\n EMOJI_PICKER_SEARCH_PLACEHOLDER: \"Search…\",\n EMOJI_PICKER_EMPTY: \"No emoji found.\",\n EMOJI_PICKER_ERROR: () =>\n \"There was an error while getting the list of emoji.\",\n COMPOSER_INSERT_MENTION: \"Mention someone\",\n COMPOSER_INSERT_EMOJI: \"Add emoji\",\n COMPOSER_PLACEHOLDER: \"Write a comment…\",\n COMPOSER_SEND: \"Send\",\n COMMENT_EDITED: \"(edited)\",\n COMMENT_DELETED: \"This comment has been deleted.\",\n COMMENT_MORE: \"More\",\n COMMENT_EDIT: \"Edit comment\",\n COMMENT_EDIT_COMPOSER_PLACEHOLDER: \"Edit comment…\",\n COMMENT_EDIT_COMPOSER_CANCEL: \"Cancel\",\n COMMENT_EDIT_COMPOSER_SAVE: \"Save\",\n COMMENT_DELETE: \"Delete comment\",\n COMMENT_ADD_REACTION: \"Add reaction\",\n COMMENT_REACTION_LIST: (list, emoji) => (\n <>\n {list} reacted with <Emoji emoji={emoji} />\n </>\n ),\n COMMENT_REACTION_DESCRIPTION: (emoji, count) =>\n `${count} ${pluralize(count, \"reaction\")}, react with ${emoji}`,\n THREAD_RESOLVE: \"Resolve thread\",\n THREAD_UNRESOLVE: \"Re-open thread\",\n THREAD_NEW_INDICATOR: \"New\",\n THREAD_NEW_INDICATOR_DESCRIPTION: \"New comments\",\n THREAD_COMPOSER_PLACEHOLDER: \"Reply to thread…\",\n THREAD_COMPOSER_SEND: \"Reply\",\n INBOX_NOTIFICATION_MORE: \"More\",\n INBOX_NOTIFICATION_MARK_AS_READ: \"Mark as read\",\n INBOX_NOTIFICATION_THREAD_COMMENTS_LIST: (\n list: ReactNode,\n room: ReactNode\n ) => (\n <>\n {list} commented\n {room ? <> in {room}</> : <> in a thread</>}\n </>\n ),\n INBOX_NOTIFICATION_THREAD_MENTION: (user: ReactNode, room: ReactNode) => (\n <>\n {user} mentioned you{room ? <> in {room}</> : null}\n </>\n ),\n};\n\nexport const OverridesContext = createContext<Overrides | undefined>(undefined);\n\nexport function useOverrides(overrides?: Partial<Overrides>): Overrides {\n const contextOverrides = useContext(OverridesContext);\n\n return useMemo(\n () => ({\n ...defaultOverrides,\n ...contextOverrides,\n ...overrides,\n }),\n [contextOverrides, overrides]\n );\n}\n\nexport function OverridesProvider({\n children,\n overrides: providerOverrides,\n}: OverridesProviderProps) {\n const contextOverrides = useContext(OverridesContext);\n const overrides = useMemo(\n () => ({\n ...defaultOverrides,\n ...contextOverrides,\n ...providerOverrides,\n }),\n [contextOverrides, providerOverrides]\n );\n\n return (\n <OverridesContext.Provider value={overrides}>\n {children}\n </OverridesContext.Provider>\n );\n}\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAqFO;AAAoC;AACjC;AACH;AACM;AACG;AACgB;AACuC;AAExB;AACZ;AACb;AAElB;AACuB;AACF;AACD;AACP;AACC;AACC;AACH;AACA;AACqB;AACL;AACF;AACZ;AACM;AAGG;AAAM;AAC7B;AAGwD;AAC1C;AACE;AACI;AACY;AACL;AACP;AACG;AACQ;AAQ/B;AAOJ;AAEa;AAEN;AACL;AAEA;AAAO;AACE;AACF;AACA;AACA;AACL;AAC4B;AAEhC;AAEO;AAA2B;AAChC;AAEF;AACE;AACA;AAAkB;AACT;AACF;AACA;AACA;AACL;AACoC;AAGtC;AACG;AAAiC;AAItC;;;;;"}