@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 @@
1
+ {"version":3,"file":"intl.js","sources":["../../src/utils/intl.ts"],"sourcesContent":["import { memoize } from \"./memoize\";\n\n// Avoid creating Intl formatters on every invocation.\n\nexport const dateTimeFormat = memoize(\n (...args: ConstructorParameters<(typeof Intl)[\"DateTimeFormat\"]>) => {\n return new Intl.DateTimeFormat(...args);\n }\n);\n\nexport const relativeTimeFormat = memoize(\n (...args: ConstructorParameters<(typeof Intl)[\"RelativeTimeFormat\"]>) => {\n return new Intl.RelativeTimeFormat(...args);\n }\n);\n\nexport const listFormat = memoize(\n (...args: ConstructorParameters<(typeof Intl)[\"ListFormat\"]>) => {\n return new Intl.ListFormat(...args);\n }\n);\n"],"names":["memoize"],"mappings":";;;;AAIO,MAAM,cAAiB,GAAAA,eAAA;AAAA,EAC5B,IAAI,IAAiE,KAAA;AACnE,IAAA,OAAO,IAAI,IAAA,CAAK,cAAe,CAAA,GAAG,IAAI,CAAA,CAAA;AAAA,GACxC;AACF,EAAA;AAEO,MAAM,kBAAqB,GAAAA,eAAA;AAAA,EAChC,IAAI,IAAqE,KAAA;AACvE,IAAA,OAAO,IAAI,IAAA,CAAK,kBAAmB,CAAA,GAAG,IAAI,CAAA,CAAA;AAAA,GAC5C;AACF,EAAA;AAEO,MAAM,UAAa,GAAAA,eAAA;AAAA,EACxB,IAAI,IAA6D,KAAA;AAC/D,IAAA,OAAO,IAAI,IAAA,CAAK,UAAW,CAAA,GAAG,IAAI,CAAA,CAAA;AAAA,GACpC;AACF;;;;;;"}
@@ -0,0 +1,20 @@
1
+ import { memoize } from './memoize.mjs';
2
+
3
+ const dateTimeFormat = memoize(
4
+ (...args) => {
5
+ return new Intl.DateTimeFormat(...args);
6
+ }
7
+ );
8
+ const relativeTimeFormat = memoize(
9
+ (...args) => {
10
+ return new Intl.RelativeTimeFormat(...args);
11
+ }
12
+ );
13
+ const listFormat = memoize(
14
+ (...args) => {
15
+ return new Intl.ListFormat(...args);
16
+ }
17
+ );
18
+
19
+ export { dateTimeFormat, listFormat, relativeTimeFormat };
20
+ //# sourceMappingURL=intl.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"intl.mjs","sources":["../../src/utils/intl.ts"],"sourcesContent":["import { memoize } from \"./memoize\";\n\n// Avoid creating Intl formatters on every invocation.\n\nexport const dateTimeFormat = memoize(\n (...args: ConstructorParameters<(typeof Intl)[\"DateTimeFormat\"]>) => {\n return new Intl.DateTimeFormat(...args);\n }\n);\n\nexport const relativeTimeFormat = memoize(\n (...args: ConstructorParameters<(typeof Intl)[\"RelativeTimeFormat\"]>) => {\n return new Intl.RelativeTimeFormat(...args);\n }\n);\n\nexport const listFormat = memoize(\n (...args: ConstructorParameters<(typeof Intl)[\"ListFormat\"]>) => {\n return new Intl.ListFormat(...args);\n }\n);\n"],"names":[],"mappings":";;AAIO,MAAM,cAAiB,GAAA,OAAA;AAAA,EAC5B,IAAI,IAAiE,KAAA;AACnE,IAAA,OAAO,IAAI,IAAA,CAAK,cAAe,CAAA,GAAG,IAAI,CAAA,CAAA;AAAA,GACxC;AACF,EAAA;AAEO,MAAM,kBAAqB,GAAA,OAAA;AAAA,EAChC,IAAI,IAAqE,KAAA;AACvE,IAAA,OAAO,IAAI,IAAA,CAAK,kBAAmB,CAAA,GAAG,IAAI,CAAA,CAAA;AAAA,GAC5C;AACF,EAAA;AAEO,MAAM,UAAa,GAAA,OAAA;AAAA,EACxB,IAAI,IAA6D,KAAA;AAC/D,IAAA,OAAO,IAAI,IAAA,CAAK,UAAW,CAAA,GAAG,IAAI,CAAA,CAAA;AAAA,GACpC;AACF;;;;"}
@@ -0,0 +1,9 @@
1
+ 'use strict';
2
+
3
+ const APPLE_REGEX = /Mac|iPod|iPhone|iPad/;
4
+ function isApple() {
5
+ return typeof window !== "undefined" && APPLE_REGEX.test(window.navigator.platform);
6
+ }
7
+
8
+ exports.isApple = isApple;
9
+ //# sourceMappingURL=is-apple.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"is-apple.js","sources":["../../src/utils/is-apple.ts"],"sourcesContent":["const APPLE_REGEX = /Mac|iPod|iPhone|iPad/;\n\nexport function isApple() {\n return (\n typeof window !== \"undefined\" && APPLE_REGEX.test(window.navigator.platform)\n );\n}\n"],"names":[],"mappings":";;AAAA,MAAM,WAAc,GAAA,sBAAA,CAAA;AAEb,SAAS,OAAU,GAAA;AACxB,EAAA,OACE,OAAO,MAAW,KAAA,WAAA,IAAe,YAAY,IAAK,CAAA,MAAA,CAAO,UAAU,QAAQ,CAAA,CAAA;AAE/E;;;;"}
@@ -0,0 +1,7 @@
1
+ const APPLE_REGEX = /Mac|iPod|iPhone|iPad/;
2
+ function isApple() {
3
+ return typeof window !== "undefined" && APPLE_REGEX.test(window.navigator.platform);
4
+ }
5
+
6
+ export { isApple };
7
+ //# sourceMappingURL=is-apple.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"is-apple.mjs","sources":["../../src/utils/is-apple.ts"],"sourcesContent":["const APPLE_REGEX = /Mac|iPod|iPhone|iPad/;\n\nexport function isApple() {\n return (\n typeof window !== \"undefined\" && APPLE_REGEX.test(window.navigator.platform)\n );\n}\n"],"names":[],"mappings":"AAAA,MAAM,WAAc,GAAA,sBAAA,CAAA;AAEb,SAAS,OAAU,GAAA;AACxB,EAAA,OACE,OAAO,MAAW,KAAA,WAAA,IAAe,YAAY,IAAK,CAAA,MAAA,CAAO,UAAU,QAAQ,CAAA,CAAA;AAE/E;;;;"}
@@ -0,0 +1,26 @@
1
+ 'use strict';
2
+
3
+ var isApple = require('./is-apple.js');
4
+
5
+ const MODIFIERS = {
6
+ alt: () => "altKey",
7
+ ctrl: () => "ctrlKey",
8
+ meta: () => "metaKey",
9
+ mod: () => isApple.isApple() ? "metaKey" : "ctrlKey",
10
+ shift: () => "shiftKey"
11
+ };
12
+ function isKey(event, key, modifiers = {}) {
13
+ if (event.key !== key) {
14
+ return false;
15
+ }
16
+ const explicitModifiers = Object.entries(modifiers).filter(
17
+ ([, value]) => typeof value === "boolean"
18
+ );
19
+ return explicitModifiers.every(([modifier, value]) => {
20
+ const property = MODIFIERS[modifier]();
21
+ return event[property] === value;
22
+ });
23
+ }
24
+
25
+ exports.isKey = isKey;
26
+ //# sourceMappingURL=is-key.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"is-key.js","sources":["../../src/utils/is-key.ts"],"sourcesContent":["import type { KeyboardEvent as ReactKeyboardEvent } from \"react\";\n\nimport { isApple } from \"./is-apple\";\n\nconst MODIFIERS = {\n alt: () => \"altKey\" as const,\n ctrl: () => \"ctrlKey\" as const,\n meta: () => \"metaKey\" as const,\n mod: () => (isApple() ? (\"metaKey\" as const) : (\"ctrlKey\" as const)),\n shift: () => \"shiftKey\" as const,\n} as const;\n\nexport function isKey(\n event: KeyboardEvent | ReactKeyboardEvent,\n key: string,\n modifiers: Partial<Record<keyof typeof MODIFIERS, boolean>> = {}\n) {\n if (event.key !== key) {\n return false;\n }\n\n const explicitModifiers = Object.entries(modifiers).filter(\n ([, value]) => typeof value === \"boolean\"\n ) as [keyof typeof MODIFIERS, boolean][];\n\n return explicitModifiers.every(([modifier, value]) => {\n const property = MODIFIERS[modifier]();\n\n return event[property] === value;\n });\n}\n"],"names":["isApple"],"mappings":";;;;AAIA,MAAM,SAAY,GAAA;AAAA,EAChB,KAAK,MAAM,QAAA;AAAA,EACX,MAAM,MAAM,SAAA;AAAA,EACZ,MAAM,MAAM,SAAA;AAAA,EACZ,GAAK,EAAA,MAAOA,eAAQ,EAAA,GAAK,SAAuB,GAAA,SAAA;AAAA,EAChD,OAAO,MAAM,UAAA;AACf,CAAA,CAAA;AAEO,SAAS,KACd,CAAA,KAAA,EACA,GACA,EAAA,SAAA,GAA8D,EAC9D,EAAA;AACA,EAAI,IAAA,KAAA,CAAM,QAAQ,GAAK,EAAA;AACrB,IAAO,OAAA,KAAA,CAAA;AAAA,GACT;AAEA,EAAA,MAAM,iBAAoB,GAAA,MAAA,CAAO,OAAQ,CAAA,SAAS,CAAE,CAAA,MAAA;AAAA,IAClD,CAAC,GAAG,KAAK,CAAA,KAAM,OAAO,KAAU,KAAA,SAAA;AAAA,GAClC,CAAA;AAEA,EAAA,OAAO,kBAAkB,KAAM,CAAA,CAAC,CAAC,QAAA,EAAU,KAAK,CAAM,KAAA;AACpD,IAAM,MAAA,QAAA,GAAW,UAAU,QAAU,CAAA,EAAA,CAAA;AAErC,IAAA,OAAO,MAAM,QAAc,CAAA,KAAA,KAAA,CAAA;AAAA,GAC5B,CAAA,CAAA;AACH;;;;"}
@@ -0,0 +1,24 @@
1
+ import { isApple } from './is-apple.mjs';
2
+
3
+ const MODIFIERS = {
4
+ alt: () => "altKey",
5
+ ctrl: () => "ctrlKey",
6
+ meta: () => "metaKey",
7
+ mod: () => isApple() ? "metaKey" : "ctrlKey",
8
+ shift: () => "shiftKey"
9
+ };
10
+ function isKey(event, key, modifiers = {}) {
11
+ if (event.key !== key) {
12
+ return false;
13
+ }
14
+ const explicitModifiers = Object.entries(modifiers).filter(
15
+ ([, value]) => typeof value === "boolean"
16
+ );
17
+ return explicitModifiers.every(([modifier, value]) => {
18
+ const property = MODIFIERS[modifier]();
19
+ return event[property] === value;
20
+ });
21
+ }
22
+
23
+ export { isKey };
24
+ //# sourceMappingURL=is-key.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"is-key.mjs","sources":["../../src/utils/is-key.ts"],"sourcesContent":["import type { KeyboardEvent as ReactKeyboardEvent } from \"react\";\n\nimport { isApple } from \"./is-apple\";\n\nconst MODIFIERS = {\n alt: () => \"altKey\" as const,\n ctrl: () => \"ctrlKey\" as const,\n meta: () => \"metaKey\" as const,\n mod: () => (isApple() ? (\"metaKey\" as const) : (\"ctrlKey\" as const)),\n shift: () => \"shiftKey\" as const,\n} as const;\n\nexport function isKey(\n event: KeyboardEvent | ReactKeyboardEvent,\n key: string,\n modifiers: Partial<Record<keyof typeof MODIFIERS, boolean>> = {}\n) {\n if (event.key !== key) {\n return false;\n }\n\n const explicitModifiers = Object.entries(modifiers).filter(\n ([, value]) => typeof value === \"boolean\"\n ) as [keyof typeof MODIFIERS, boolean][];\n\n return explicitModifiers.every(([modifier, value]) => {\n const property = MODIFIERS[modifier]();\n\n return event[property] === value;\n });\n}\n"],"names":[],"mappings":";;AAIA,MAAM,SAAY,GAAA;AAAA,EAChB,KAAK,MAAM,QAAA;AAAA,EACX,MAAM,MAAM,SAAA;AAAA,EACZ,MAAM,MAAM,SAAA;AAAA,EACZ,GAAK,EAAA,MAAO,OAAQ,EAAA,GAAK,SAAuB,GAAA,SAAA;AAAA,EAChD,OAAO,MAAM,UAAA;AACf,CAAA,CAAA;AAEO,SAAS,KACd,CAAA,KAAA,EACA,GACA,EAAA,SAAA,GAA8D,EAC9D,EAAA;AACA,EAAI,IAAA,KAAA,CAAM,QAAQ,GAAK,EAAA;AACrB,IAAO,OAAA,KAAA,CAAA;AAAA,GACT;AAEA,EAAA,MAAM,iBAAoB,GAAA,MAAA,CAAO,OAAQ,CAAA,SAAS,CAAE,CAAA,MAAA;AAAA,IAClD,CAAC,GAAG,KAAK,CAAA,KAAM,OAAO,KAAU,KAAA,SAAA;AAAA,GAClC,CAAA;AAEA,EAAA,OAAO,kBAAkB,KAAM,CAAA,CAAC,CAAC,QAAA,EAAU,KAAK,CAAM,KAAA;AACpD,IAAM,MAAA,QAAA,GAAW,UAAU,QAAU,CAAA,EAAA,CAAA;AAErC,IAAA,OAAO,MAAM,QAAc,CAAA,KAAA,KAAA,CAAA;AAAA,GAC5B,CAAA,CAAA;AACH;;;;"}
@@ -0,0 +1,19 @@
1
+ 'use strict';
2
+
3
+ var core = require('@liveblocks/core');
4
+
5
+ function memoize(fn) {
6
+ const cache = /* @__PURE__ */ new Map();
7
+ return (...args) => {
8
+ const key = JSON.stringify(args.map((arg) => core.stringify(arg)));
9
+ if (cache.has(key)) {
10
+ return cache.get(key);
11
+ }
12
+ const result = fn(...args);
13
+ cache.set(key, result);
14
+ return result;
15
+ };
16
+ }
17
+
18
+ exports.memoize = memoize;
19
+ //# sourceMappingURL=memoize.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memoize.js","sources":["../../src/utils/memoize.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-unsafe-return */\n\nimport { stringify } from \"@liveblocks/core\";\n\nexport function memoize<T extends (...args: any[]) => any>(fn: T): T {\n const cache = new Map<string, ReturnType<T>>();\n\n return ((...args: Parameters<T>): ReturnType<T> => {\n const key = JSON.stringify(args.map((arg) => stringify(arg)));\n\n if (cache.has(key)) {\n return cache.get(key)!;\n }\n\n const result = fn(...args) as ReturnType<T>;\n\n cache.set(key, result);\n\n return result;\n }) as T;\n}\n"],"names":["stringify"],"mappings":";;;;AAIO,SAAS,QAA2C,EAAU,EAAA;AACnE,EAAM,MAAA,KAAA,uBAAY,GAA2B,EAAA,CAAA;AAE7C,EAAA,OAAQ,IAAI,IAAuC,KAAA;AACjD,IAAM,MAAA,GAAA,GAAM,IAAK,CAAA,SAAA,CAAU,IAAK,CAAA,GAAA,CAAI,CAAC,GAAQ,KAAAA,cAAA,CAAU,GAAG,CAAC,CAAC,CAAA,CAAA;AAE5D,IAAI,IAAA,KAAA,CAAM,GAAI,CAAA,GAAG,CAAG,EAAA;AAClB,MAAO,OAAA,KAAA,CAAM,IAAI,GAAG,CAAA,CAAA;AAAA,KACtB;AAEA,IAAM,MAAA,MAAA,GAAS,EAAG,CAAA,GAAG,IAAI,CAAA,CAAA;AAEzB,IAAM,KAAA,CAAA,GAAA,CAAI,KAAK,MAAM,CAAA,CAAA;AAErB,IAAO,OAAA,MAAA,CAAA;AAAA,GACT,CAAA;AACF;;;;"}
@@ -0,0 +1,17 @@
1
+ import { stringify } from '@liveblocks/core';
2
+
3
+ function memoize(fn) {
4
+ const cache = /* @__PURE__ */ new Map();
5
+ return (...args) => {
6
+ const key = JSON.stringify(args.map((arg) => stringify(arg)));
7
+ if (cache.has(key)) {
8
+ return cache.get(key);
9
+ }
10
+ const result = fn(...args);
11
+ cache.set(key, result);
12
+ return result;
13
+ };
14
+ }
15
+
16
+ export { memoize };
17
+ //# sourceMappingURL=memoize.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memoize.mjs","sources":["../../src/utils/memoize.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-unsafe-return */\n\nimport { stringify } from \"@liveblocks/core\";\n\nexport function memoize<T extends (...args: any[]) => any>(fn: T): T {\n const cache = new Map<string, ReturnType<T>>();\n\n return ((...args: Parameters<T>): ReturnType<T> => {\n const key = JSON.stringify(args.map((arg) => stringify(arg)));\n\n if (cache.has(key)) {\n return cache.get(key)!;\n }\n\n const result = fn(...args) as ReturnType<T>;\n\n cache.set(key, result);\n\n return result;\n }) as T;\n}\n"],"names":[],"mappings":";;AAIO,SAAS,QAA2C,EAAU,EAAA;AACnE,EAAM,MAAA,KAAA,uBAAY,GAA2B,EAAA,CAAA;AAE7C,EAAA,OAAQ,IAAI,IAAuC,KAAA;AACjD,IAAM,MAAA,GAAA,GAAM,IAAK,CAAA,SAAA,CAAU,IAAK,CAAA,GAAA,CAAI,CAAC,GAAQ,KAAA,SAAA,CAAU,GAAG,CAAC,CAAC,CAAA,CAAA;AAE5D,IAAI,IAAA,KAAA,CAAM,GAAI,CAAA,GAAG,CAAG,EAAA;AAClB,MAAO,OAAA,KAAA,CAAM,IAAI,GAAG,CAAA,CAAA;AAAA,KACtB;AAEA,IAAM,MAAA,MAAA,GAAS,EAAG,CAAA,GAAG,IAAI,CAAA,CAAA;AAEzB,IAAM,KAAA,CAAA,GAAA,CAAI,KAAK,MAAM,CAAA,CAAA;AAErB,IAAO,OAAA,MAAA,CAAA;AAAA,GACT,CAAA;AACF;;;;"}
@@ -0,0 +1,8 @@
1
+ 'use strict';
2
+
3
+ function pluralize(count, singular, plural) {
4
+ return count === 1 ? singular : plural ?? `${singular}s`;
5
+ }
6
+
7
+ exports.pluralize = pluralize;
8
+ //# sourceMappingURL=pluralize.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pluralize.js","sources":["../../src/utils/pluralize.ts"],"sourcesContent":["export function pluralize<\n C extends number,\n S extends string,\n P extends string = `${S}s`,\n>(count: C, singular: S, plural?: P): C extends 1 ? S : P {\n return (count === 1 ? singular : plural ?? `${singular}s`) as C extends 1\n ? S\n : P;\n}\n"],"names":[],"mappings":";;AAAgB,SAAA,SAAA,CAId,KAAU,EAAA,QAAA,EAAa,MAAiC,EAAA;AACxD,EAAA,OAAQ,KAAU,KAAA,CAAA,GAAI,QAAW,GAAA,MAAA,IAAU,CAAG,EAAA,QAAA,CAAA,CAAA,CAAA,CAAA;AAGhD;;;;"}
@@ -0,0 +1,6 @@
1
+ function pluralize(count, singular, plural) {
2
+ return count === 1 ? singular : plural ?? `${singular}s`;
3
+ }
4
+
5
+ export { pluralize };
6
+ //# sourceMappingURL=pluralize.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pluralize.mjs","sources":["../../src/utils/pluralize.ts"],"sourcesContent":["export function pluralize<\n C extends number,\n S extends string,\n P extends string = `${S}s`,\n>(count: C, singular: S, plural?: P): C extends 1 ? S : P {\n return (count === 1 ? singular : plural ?? `${singular}s`) as C extends 1\n ? S\n : P;\n}\n"],"names":[],"mappings":"AAAgB,SAAA,SAAA,CAId,KAAU,EAAA,QAAA,EAAa,MAAiC,EAAA;AACxD,EAAA,OAAQ,KAAU,KAAA,CAAA,GAAI,QAAW,GAAA,MAAA,IAAU,CAAG,EAAA,QAAA,CAAA,CAAA,CAAA,CAAA;AAGhD;;;;"}
@@ -0,0 +1,15 @@
1
+ 'use strict';
2
+
3
+ const IDLE_CALLBACK_FALLBACK_TIMEOUT = 100;
4
+ function requestIdleCallbackFallback(callback, options) {
5
+ return setTimeout(
6
+ callback,
7
+ Math.min(options?.timeout ?? Infinity, IDLE_CALLBACK_FALLBACK_TIMEOUT)
8
+ );
9
+ }
10
+ const requestIdleCallback = (typeof window !== "undefined" ? window.requestIdleCallback : null) ?? requestIdleCallbackFallback;
11
+ const cancelIdleCallback = (typeof window !== "undefined" ? window.cancelIdleCallback : null) ?? clearTimeout;
12
+
13
+ exports.cancelIdleCallback = cancelIdleCallback;
14
+ exports.requestIdleCallback = requestIdleCallback;
15
+ //# sourceMappingURL=request-idle-callback.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"request-idle-callback.js","sources":["../../src/utils/request-idle-callback.ts"],"sourcesContent":["const IDLE_CALLBACK_FALLBACK_TIMEOUT = 100;\n\nfunction requestIdleCallbackFallback(\n callback: IdleRequestCallback,\n options?: IdleRequestOptions\n) {\n return setTimeout(\n callback,\n Math.min(options?.timeout ?? Infinity, IDLE_CALLBACK_FALLBACK_TIMEOUT)\n );\n}\n\n/**\n * Ponyfill for `window.requestIdleCallback`.\n */\nexport const requestIdleCallback: typeof window.requestIdleCallback =\n (typeof window !== \"undefined\" ? window.requestIdleCallback : null) ??\n requestIdleCallbackFallback;\n\n/**\n * Ponyfill for `window.cancelIdleCallback`.\n */\nexport const cancelIdleCallback: typeof window.cancelIdleCallback =\n (typeof window !== \"undefined\" ? window.cancelIdleCallback : null) ??\n clearTimeout;\n"],"names":[],"mappings":";;AAAA,MAAM,8BAAiC,GAAA,GAAA,CAAA;AAEvC,SAAS,2BAAA,CACP,UACA,OACA,EAAA;AACA,EAAO,OAAA,UAAA;AAAA,IACL,QAAA;AAAA,IACA,IAAK,CAAA,GAAA,CAAI,OAAS,EAAA,OAAA,IAAW,UAAU,8BAA8B,CAAA;AAAA,GACvE,CAAA;AACF,CAAA;AAKO,MAAM,uBACV,OAAO,MAAA,KAAW,WAAc,GAAA,MAAA,CAAO,sBAAsB,IAC9D,KAAA,4BAAA;AAKK,MAAM,sBACV,OAAO,MAAA,KAAW,WAAc,GAAA,MAAA,CAAO,qBAAqB,IAC7D,KAAA;;;;;"}
@@ -0,0 +1,12 @@
1
+ const IDLE_CALLBACK_FALLBACK_TIMEOUT = 100;
2
+ function requestIdleCallbackFallback(callback, options) {
3
+ return setTimeout(
4
+ callback,
5
+ Math.min(options?.timeout ?? Infinity, IDLE_CALLBACK_FALLBACK_TIMEOUT)
6
+ );
7
+ }
8
+ const requestIdleCallback = (typeof window !== "undefined" ? window.requestIdleCallback : null) ?? requestIdleCallbackFallback;
9
+ const cancelIdleCallback = (typeof window !== "undefined" ? window.cancelIdleCallback : null) ?? clearTimeout;
10
+
11
+ export { cancelIdleCallback, requestIdleCallback };
12
+ //# sourceMappingURL=request-idle-callback.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"request-idle-callback.mjs","sources":["../../src/utils/request-idle-callback.ts"],"sourcesContent":["const IDLE_CALLBACK_FALLBACK_TIMEOUT = 100;\n\nfunction requestIdleCallbackFallback(\n callback: IdleRequestCallback,\n options?: IdleRequestOptions\n) {\n return setTimeout(\n callback,\n Math.min(options?.timeout ?? Infinity, IDLE_CALLBACK_FALLBACK_TIMEOUT)\n );\n}\n\n/**\n * Ponyfill for `window.requestIdleCallback`.\n */\nexport const requestIdleCallback: typeof window.requestIdleCallback =\n (typeof window !== \"undefined\" ? window.requestIdleCallback : null) ??\n requestIdleCallbackFallback;\n\n/**\n * Ponyfill for `window.cancelIdleCallback`.\n */\nexport const cancelIdleCallback: typeof window.cancelIdleCallback =\n (typeof window !== \"undefined\" ? window.cancelIdleCallback : null) ??\n clearTimeout;\n"],"names":[],"mappings":"AAAA,MAAM,8BAAiC,GAAA,GAAA,CAAA;AAEvC,SAAS,2BAAA,CACP,UACA,OACA,EAAA;AACA,EAAO,OAAA,UAAA;AAAA,IACL,QAAA;AAAA,IACA,IAAK,CAAA,GAAA,CAAI,OAAS,EAAA,OAAA,IAAW,UAAU,8BAA8B,CAAA;AAAA,GACvE,CAAA;AACF,CAAA;AAKO,MAAM,uBACV,OAAO,MAAA,KAAW,WAAc,GAAA,MAAA,CAAO,sBAAsB,IAC9D,KAAA,4BAAA;AAKK,MAAM,sBACV,OAAO,MAAA,KAAW,WAAc,GAAA,MAAA,CAAO,qBAAqB,IAC7D,KAAA;;;;"}
@@ -0,0 +1,20 @@
1
+ 'use strict';
2
+
3
+ function requestSubmit(form, submitter) {
4
+ if (typeof form.requestSubmit === "function") {
5
+ return form.requestSubmit(submitter);
6
+ }
7
+ if (submitter) {
8
+ submitter.click();
9
+ } else {
10
+ submitter = document.createElement("input");
11
+ submitter.type = "submit";
12
+ submitter.hidden = true;
13
+ form.appendChild(submitter);
14
+ submitter.click();
15
+ form.removeChild(submitter);
16
+ }
17
+ }
18
+
19
+ exports.requestSubmit = requestSubmit;
20
+ //# sourceMappingURL=request-submit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"request-submit.js","sources":["../../src/utils/request-submit.ts"],"sourcesContent":["/**\n * Ponyfill for `HTMLFormElement.requestSubmit`.\n */\nexport function requestSubmit(\n form: HTMLFormElement,\n submitter?: HTMLElement | null\n) {\n if (typeof form.requestSubmit === \"function\") {\n return form.requestSubmit(submitter);\n }\n\n if (submitter) {\n submitter.click();\n } else {\n submitter = document.createElement(\"input\");\n (submitter as HTMLInputElement).type = \"submit\";\n submitter.hidden = true;\n\n form.appendChild(submitter);\n\n submitter.click();\n\n form.removeChild(submitter);\n }\n}\n"],"names":[],"mappings":";;AAGgB,SAAA,aAAA,CACd,MACA,SACA,EAAA;AACA,EAAI,IAAA,OAAO,IAAK,CAAA,aAAA,KAAkB,UAAY,EAAA;AAC5C,IAAO,OAAA,IAAA,CAAK,cAAc,SAAS,CAAA,CAAA;AAAA,GACrC;AAEA,EAAA,IAAI,SAAW,EAAA;AACb,IAAA,SAAA,CAAU,KAAM,EAAA,CAAA;AAAA,GACX,MAAA;AACL,IAAY,SAAA,GAAA,QAAA,CAAS,cAAc,OAAO,CAAA,CAAA;AAC1C,IAAC,UAA+B,IAAO,GAAA,QAAA,CAAA;AACvC,IAAA,SAAA,CAAU,MAAS,GAAA,IAAA,CAAA;AAEnB,IAAA,IAAA,CAAK,YAAY,SAAS,CAAA,CAAA;AAE1B,IAAA,SAAA,CAAU,KAAM,EAAA,CAAA;AAEhB,IAAA,IAAA,CAAK,YAAY,SAAS,CAAA,CAAA;AAAA,GAC5B;AACF;;;;"}
@@ -0,0 +1,18 @@
1
+ function requestSubmit(form, submitter) {
2
+ if (typeof form.requestSubmit === "function") {
3
+ return form.requestSubmit(submitter);
4
+ }
5
+ if (submitter) {
6
+ submitter.click();
7
+ } else {
8
+ submitter = document.createElement("input");
9
+ submitter.type = "submit";
10
+ submitter.hidden = true;
11
+ form.appendChild(submitter);
12
+ submitter.click();
13
+ form.removeChild(submitter);
14
+ }
15
+ }
16
+
17
+ export { requestSubmit };
18
+ //# sourceMappingURL=request-submit.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"request-submit.mjs","sources":["../../src/utils/request-submit.ts"],"sourcesContent":["/**\n * Ponyfill for `HTMLFormElement.requestSubmit`.\n */\nexport function requestSubmit(\n form: HTMLFormElement,\n submitter?: HTMLElement | null\n) {\n if (typeof form.requestSubmit === \"function\") {\n return form.requestSubmit(submitter);\n }\n\n if (submitter) {\n submitter.click();\n } else {\n submitter = document.createElement(\"input\");\n (submitter as HTMLInputElement).type = \"submit\";\n submitter.hidden = true;\n\n form.appendChild(submitter);\n\n submitter.click();\n\n form.removeChild(submitter);\n }\n}\n"],"names":[],"mappings":"AAGgB,SAAA,aAAA,CACd,MACA,SACA,EAAA;AACA,EAAI,IAAA,OAAO,IAAK,CAAA,aAAA,KAAkB,UAAY,EAAA;AAC5C,IAAO,OAAA,IAAA,CAAK,cAAc,SAAS,CAAA,CAAA;AAAA,GACrC;AAEA,EAAA,IAAI,SAAW,EAAA;AACb,IAAA,SAAA,CAAU,KAAM,EAAA,CAAA;AAAA,GACX,MAAA;AACL,IAAY,SAAA,GAAA,QAAA,CAAS,cAAc,OAAO,CAAA,CAAA;AAC1C,IAAC,UAA+B,IAAO,GAAA,QAAA,CAAA;AACvC,IAAA,SAAA,CAAU,MAAS,GAAA,IAAA,CAAA;AAEnB,IAAA,IAAA,CAAK,YAAY,SAAS,CAAA,CAAA;AAE1B,IAAA,SAAA,CAAU,KAAM,EAAA,CAAA;AAEhB,IAAA,IAAA,CAAK,YAAY,SAAS,CAAA,CAAA;AAAA,GAC5B;AACF;;;;"}
@@ -0,0 +1,22 @@
1
+ 'use strict';
2
+
3
+ const PLACEHOLDER_BASE_URL = "https://localhost:9999";
4
+ const ABSOLUTE_URL_REGEX = /^[a-zA-Z][a-zA-Z\d+\-.]*?:/;
5
+ function generateURL(url, params, hash) {
6
+ const isAbsolute = ABSOLUTE_URL_REGEX.test(url);
7
+ const urlObject = new URL(url, isAbsolute ? void 0 : PLACEHOLDER_BASE_URL);
8
+ if (params !== void 0) {
9
+ for (const [param, value] of Object.entries(params)) {
10
+ if (value) {
11
+ urlObject.searchParams.set(param, String(value));
12
+ }
13
+ }
14
+ }
15
+ if (!urlObject.hash && hash !== void 0) {
16
+ urlObject.hash = `#${hash}`;
17
+ }
18
+ return isAbsolute ? urlObject.href : urlObject.href.replace(PLACEHOLDER_BASE_URL, "");
19
+ }
20
+
21
+ exports.generateURL = generateURL;
22
+ //# sourceMappingURL=url.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"url.js","sources":["../../src/utils/url.ts"],"sourcesContent":["const PLACEHOLDER_BASE_URL = \"https://localhost:9999\";\nconst ABSOLUTE_URL_REGEX = /^[a-zA-Z][a-zA-Z\\d+\\-.]*?:/;\n\nexport function generateURL(\n url: string,\n params?: Record<string, string | number | undefined>,\n hash?: string\n) {\n const isAbsolute = ABSOLUTE_URL_REGEX.test(url);\n const urlObject = new URL(url, isAbsolute ? undefined : PLACEHOLDER_BASE_URL);\n\n if (params !== undefined) {\n for (const [param, value] of Object.entries(params)) {\n if (value) {\n urlObject.searchParams.set(param, String(value));\n }\n }\n }\n\n // Only add the new hash if the URL does not already have one\n if (!urlObject.hash && hash !== undefined) {\n urlObject.hash = `#${hash}`;\n }\n\n return isAbsolute\n ? urlObject.href\n : urlObject.href.replace(PLACEHOLDER_BASE_URL, \"\");\n}\n"],"names":[],"mappings":";;AAAA,MAAM,oBAAuB,GAAA,wBAAA,CAAA;AAC7B,MAAM,kBAAqB,GAAA,4BAAA,CAAA;AAEX,SAAA,WAAA,CACd,GACA,EAAA,MAAA,EACA,IACA,EAAA;AACA,EAAM,MAAA,UAAA,GAAa,kBAAmB,CAAA,IAAA,CAAK,GAAG,CAAA,CAAA;AAC9C,EAAA,MAAM,YAAY,IAAI,GAAA,CAAI,GAAK,EAAA,UAAA,GAAa,SAAY,oBAAoB,CAAA,CAAA;AAE5E,EAAA,IAAI,WAAW,KAAW,CAAA,EAAA;AACxB,IAAA,KAAA,MAAW,CAAC,KAAO,EAAA,KAAK,KAAK,MAAO,CAAA,OAAA,CAAQ,MAAM,CAAG,EAAA;AACnD,MAAA,IAAI,KAAO,EAAA;AACT,QAAA,SAAA,CAAU,YAAa,CAAA,GAAA,CAAI,KAAO,EAAA,MAAA,CAAO,KAAK,CAAC,CAAA,CAAA;AAAA,OACjD;AAAA,KACF;AAAA,GACF;AAGA,EAAA,IAAI,CAAC,SAAA,CAAU,IAAQ,IAAA,IAAA,KAAS,KAAW,CAAA,EAAA;AACzC,IAAA,SAAA,CAAU,OAAO,CAAI,CAAA,EAAA,IAAA,CAAA,CAAA,CAAA;AAAA,GACvB;AAEA,EAAA,OAAO,aACH,SAAU,CAAA,IAAA,GACV,UAAU,IAAK,CAAA,OAAA,CAAQ,sBAAsB,EAAE,CAAA,CAAA;AACrD;;;;"}
@@ -0,0 +1,20 @@
1
+ const PLACEHOLDER_BASE_URL = "https://localhost:9999";
2
+ const ABSOLUTE_URL_REGEX = /^[a-zA-Z][a-zA-Z\d+\-.]*?:/;
3
+ function generateURL(url, params, hash) {
4
+ const isAbsolute = ABSOLUTE_URL_REGEX.test(url);
5
+ const urlObject = new URL(url, isAbsolute ? void 0 : PLACEHOLDER_BASE_URL);
6
+ if (params !== void 0) {
7
+ for (const [param, value] of Object.entries(params)) {
8
+ if (value) {
9
+ urlObject.searchParams.set(param, String(value));
10
+ }
11
+ }
12
+ }
13
+ if (!urlObject.hash && hash !== void 0) {
14
+ urlObject.hash = `#${hash}`;
15
+ }
16
+ return isAbsolute ? urlObject.href : urlObject.href.replace(PLACEHOLDER_BASE_URL, "");
17
+ }
18
+
19
+ export { generateURL };
20
+ //# sourceMappingURL=url.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"url.mjs","sources":["../../src/utils/url.ts"],"sourcesContent":["const PLACEHOLDER_BASE_URL = \"https://localhost:9999\";\nconst ABSOLUTE_URL_REGEX = /^[a-zA-Z][a-zA-Z\\d+\\-.]*?:/;\n\nexport function generateURL(\n url: string,\n params?: Record<string, string | number | undefined>,\n hash?: string\n) {\n const isAbsolute = ABSOLUTE_URL_REGEX.test(url);\n const urlObject = new URL(url, isAbsolute ? undefined : PLACEHOLDER_BASE_URL);\n\n if (params !== undefined) {\n for (const [param, value] of Object.entries(params)) {\n if (value) {\n urlObject.searchParams.set(param, String(value));\n }\n }\n }\n\n // Only add the new hash if the URL does not already have one\n if (!urlObject.hash && hash !== undefined) {\n urlObject.hash = `#${hash}`;\n }\n\n return isAbsolute\n ? urlObject.href\n : urlObject.href.replace(PLACEHOLDER_BASE_URL, \"\");\n}\n"],"names":[],"mappings":"AAAA,MAAM,oBAAuB,GAAA,wBAAA,CAAA;AAC7B,MAAM,kBAAqB,GAAA,4BAAA,CAAA;AAEX,SAAA,WAAA,CACd,GACA,EAAA,MAAA,EACA,IACA,EAAA;AACA,EAAM,MAAA,UAAA,GAAa,kBAAmB,CAAA,IAAA,CAAK,GAAG,CAAA,CAAA;AAC9C,EAAA,MAAM,YAAY,IAAI,GAAA,CAAI,GAAK,EAAA,UAAA,GAAa,SAAY,oBAAoB,CAAA,CAAA;AAE5E,EAAA,IAAI,WAAW,KAAW,CAAA,EAAA;AACxB,IAAA,KAAA,MAAW,CAAC,KAAO,EAAA,KAAK,KAAK,MAAO,CAAA,OAAA,CAAQ,MAAM,CAAG,EAAA;AACnD,MAAA,IAAI,KAAO,EAAA;AACT,QAAA,SAAA,CAAU,YAAa,CAAA,GAAA,CAAI,KAAO,EAAA,MAAA,CAAO,KAAK,CAAC,CAAA,CAAA;AAAA,OACjD;AAAA,KACF;AAAA,GACF;AAGA,EAAA,IAAI,CAAC,SAAA,CAAU,IAAQ,IAAA,IAAA,KAAS,KAAW,CAAA,EAAA;AACzC,IAAA,SAAA,CAAU,OAAO,CAAI,CAAA,EAAA,IAAA,CAAA,CAAA,CAAA;AAAA,GACvB;AAEA,EAAA,OAAO,aACH,SAAU,CAAA,IAAA,GACV,UAAU,IAAK,CAAA,OAAA,CAAQ,sBAAsB,EAAE,CAAA,CAAA;AACrD;;;;"}
@@ -0,0 +1,34 @@
1
+ 'use strict';
2
+
3
+ var core = require('@liveblocks/core');
4
+ var React = require('react');
5
+
6
+ function useControllableState(value, onChange, defaultValue) {
7
+ const [uncontrolledValue, setUncontrolledValue] = React.useState(defaultValue);
8
+ const isControlled = value !== void 0;
9
+ const wasControlled = React.useRef(isControlled);
10
+ React.useEffect(() => {
11
+ if (process.env.NODE_ENV !== "production" && wasControlled.current !== isControlled) {
12
+ core.console.warn(
13
+ `A component is changing from ${wasControlled ? "controlled" : "uncontrolled"} to ${isControlled ? "controlled" : "uncontrolled"}.`
14
+ );
15
+ }
16
+ wasControlled.current = isControlled;
17
+ }, [isControlled]);
18
+ const currentValue = isControlled ? value : uncontrolledValue;
19
+ const setValue = React.useCallback(
20
+ (value2) => {
21
+ if (isControlled) {
22
+ return onChange?.(value2);
23
+ } else {
24
+ setUncontrolledValue(value2);
25
+ return onChange?.(value2);
26
+ }
27
+ },
28
+ [isControlled, onChange]
29
+ );
30
+ return [currentValue, setValue];
31
+ }
32
+
33
+ exports.useControllableState = useControllableState;
34
+ //# sourceMappingURL=use-controllable-state.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-controllable-state.js","sources":["../../src/utils/use-controllable-state.ts"],"sourcesContent":["import { console } from \"@liveblocks/core\";\nimport { useCallback, useEffect, useRef, useState } from \"react\";\n\nexport function useControllableState<T>(\n value?: T,\n onChange?: (value: T) => void,\n defaultValue?: T\n) {\n const [uncontrolledValue, setUncontrolledValue] = useState(defaultValue);\n const isControlled = value !== undefined;\n const wasControlled = useRef(isControlled);\n\n useEffect(() => {\n if (\n process.env.NODE_ENV !== \"production\" &&\n wasControlled.current !== isControlled\n ) {\n console.warn(\n `A component is changing from ${\n wasControlled ? \"controlled\" : \"uncontrolled\"\n } to ${isControlled ? \"controlled\" : \"uncontrolled\"}.`\n );\n }\n\n wasControlled.current = isControlled;\n }, [isControlled]);\n\n const currentValue = isControlled ? value : uncontrolledValue;\n\n const setValue = useCallback(\n (value: T) => {\n if (isControlled) {\n return onChange?.(value);\n } else {\n setUncontrolledValue(value);\n\n return onChange?.(value);\n }\n },\n [isControlled, onChange]\n );\n\n return [currentValue, setValue] as const;\n}\n"],"names":["useState","useRef","useEffect","console","useCallback","value"],"mappings":";;;;;AAGgB,SAAA,oBAAA,CACd,KACA,EAAA,QAAA,EACA,YACA,EAAA;AACA,EAAA,MAAM,CAAC,iBAAA,EAAmB,oBAAoB,CAAA,GAAIA,eAAS,YAAY,CAAA,CAAA;AACvE,EAAA,MAAM,eAAe,KAAU,KAAA,KAAA,CAAA,CAAA;AAC/B,EAAM,MAAA,aAAA,GAAgBC,aAAO,YAAY,CAAA,CAAA;AAEzC,EAAAC,eAAA,CAAU,MAAM;AACd,IAAA,IACE,QAAQ,GAAI,CAAA,QAAA,KAAa,YACzB,IAAA,aAAA,CAAc,YAAY,YAC1B,EAAA;AACA,MAAQC,YAAA,CAAA,IAAA;AAAA,QACN,CACE,6BAAA,EAAA,aAAA,GAAgB,YAAe,GAAA,cAAA,CAAA,IAAA,EAC1B,eAAe,YAAe,GAAA,cAAA,CAAA,CAAA,CAAA;AAAA,OACvC,CAAA;AAAA,KACF;AAEA,IAAA,aAAA,CAAc,OAAU,GAAA,YAAA,CAAA;AAAA,GAC1B,EAAG,CAAC,YAAY,CAAC,CAAA,CAAA;AAEjB,EAAM,MAAA,YAAA,GAAe,eAAe,KAAQ,GAAA,iBAAA,CAAA;AAE5C,EAAA,MAAM,QAAW,GAAAC,iBAAA;AAAA,IACf,CAACC,MAAa,KAAA;AACZ,MAAA,IAAI,YAAc,EAAA;AAChB,QAAA,OAAO,WAAWA,MAAK,CAAA,CAAA;AAAA,OAClB,MAAA;AACL,QAAA,oBAAA,CAAqBA,MAAK,CAAA,CAAA;AAE1B,QAAA,OAAO,WAAWA,MAAK,CAAA,CAAA;AAAA,OACzB;AAAA,KACF;AAAA,IACA,CAAC,cAAc,QAAQ,CAAA;AAAA,GACzB,CAAA;AAEA,EAAO,OAAA,CAAC,cAAc,QAAQ,CAAA,CAAA;AAChC;;;;"}
@@ -0,0 +1,32 @@
1
+ import { console } from '@liveblocks/core';
2
+ import { useState, useRef, useEffect, useCallback } from 'react';
3
+
4
+ function useControllableState(value, onChange, defaultValue) {
5
+ const [uncontrolledValue, setUncontrolledValue] = useState(defaultValue);
6
+ const isControlled = value !== void 0;
7
+ const wasControlled = useRef(isControlled);
8
+ useEffect(() => {
9
+ if (process.env.NODE_ENV !== "production" && wasControlled.current !== isControlled) {
10
+ console.warn(
11
+ `A component is changing from ${wasControlled ? "controlled" : "uncontrolled"} to ${isControlled ? "controlled" : "uncontrolled"}.`
12
+ );
13
+ }
14
+ wasControlled.current = isControlled;
15
+ }, [isControlled]);
16
+ const currentValue = isControlled ? value : uncontrolledValue;
17
+ const setValue = useCallback(
18
+ (value2) => {
19
+ if (isControlled) {
20
+ return onChange?.(value2);
21
+ } else {
22
+ setUncontrolledValue(value2);
23
+ return onChange?.(value2);
24
+ }
25
+ },
26
+ [isControlled, onChange]
27
+ );
28
+ return [currentValue, setValue];
29
+ }
30
+
31
+ export { useControllableState };
32
+ //# sourceMappingURL=use-controllable-state.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-controllable-state.mjs","sources":["../../src/utils/use-controllable-state.ts"],"sourcesContent":["import { console } from \"@liveblocks/core\";\nimport { useCallback, useEffect, useRef, useState } from \"react\";\n\nexport function useControllableState<T>(\n value?: T,\n onChange?: (value: T) => void,\n defaultValue?: T\n) {\n const [uncontrolledValue, setUncontrolledValue] = useState(defaultValue);\n const isControlled = value !== undefined;\n const wasControlled = useRef(isControlled);\n\n useEffect(() => {\n if (\n process.env.NODE_ENV !== \"production\" &&\n wasControlled.current !== isControlled\n ) {\n console.warn(\n `A component is changing from ${\n wasControlled ? \"controlled\" : \"uncontrolled\"\n } to ${isControlled ? \"controlled\" : \"uncontrolled\"}.`\n );\n }\n\n wasControlled.current = isControlled;\n }, [isControlled]);\n\n const currentValue = isControlled ? value : uncontrolledValue;\n\n const setValue = useCallback(\n (value: T) => {\n if (isControlled) {\n return onChange?.(value);\n } else {\n setUncontrolledValue(value);\n\n return onChange?.(value);\n }\n },\n [isControlled, onChange]\n );\n\n return [currentValue, setValue] as const;\n}\n"],"names":["value"],"mappings":";;;AAGgB,SAAA,oBAAA,CACd,KACA,EAAA,QAAA,EACA,YACA,EAAA;AACA,EAAA,MAAM,CAAC,iBAAA,EAAmB,oBAAoB,CAAA,GAAI,SAAS,YAAY,CAAA,CAAA;AACvE,EAAA,MAAM,eAAe,KAAU,KAAA,KAAA,CAAA,CAAA;AAC/B,EAAM,MAAA,aAAA,GAAgB,OAAO,YAAY,CAAA,CAAA;AAEzC,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,IACE,QAAQ,GAAI,CAAA,QAAA,KAAa,YACzB,IAAA,aAAA,CAAc,YAAY,YAC1B,EAAA;AACA,MAAQ,OAAA,CAAA,IAAA;AAAA,QACN,CACE,6BAAA,EAAA,aAAA,GAAgB,YAAe,GAAA,cAAA,CAAA,IAAA,EAC1B,eAAe,YAAe,GAAA,cAAA,CAAA,CAAA,CAAA;AAAA,OACvC,CAAA;AAAA,KACF;AAEA,IAAA,aAAA,CAAc,OAAU,GAAA,YAAA,CAAA;AAAA,GAC1B,EAAG,CAAC,YAAY,CAAC,CAAA,CAAA;AAEjB,EAAM,MAAA,YAAA,GAAe,eAAe,KAAQ,GAAA,iBAAA,CAAA;AAE5C,EAAA,MAAM,QAAW,GAAA,WAAA;AAAA,IACf,CAACA,MAAa,KAAA;AACZ,MAAA,IAAI,YAAc,EAAA;AAChB,QAAA,OAAO,WAAWA,MAAK,CAAA,CAAA;AAAA,OAClB,MAAA;AACL,QAAA,oBAAA,CAAqBA,MAAK,CAAA,CAAA;AAE1B,QAAA,OAAO,WAAWA,MAAK,CAAA,CAAA;AAAA,OACzB;AAAA,KACF;AAAA,IACA,CAAC,cAAc,QAAQ,CAAA;AAAA,GACzB,CAAA;AAEA,EAAO,OAAA,CAAC,cAAc,QAAQ,CAAA,CAAA;AAChC;;;;"}
@@ -0,0 +1,29 @@
1
+ 'use strict';
2
+
3
+ var React = require('react');
4
+ var useLayoutEffect = require('./use-layout-effect.js');
5
+
6
+ let isHydrated = false;
7
+ let id = 0;
8
+ function getId() {
9
+ return ++id;
10
+ }
11
+ const useReactId = React["useId".toString()];
12
+ function useIncrementalId() {
13
+ const [id2, setId] = React.useState(isHydrated ? getId : null);
14
+ useLayoutEffect.useLayoutEffect(() => {
15
+ if (id2 === null) {
16
+ setId(getId());
17
+ }
18
+ }, [id2]);
19
+ React.useEffect(() => {
20
+ if (!isHydrated) {
21
+ isHydrated = true;
22
+ }
23
+ }, []);
24
+ return String(id2) ?? void 0;
25
+ }
26
+ const useId = useReactId ?? useIncrementalId;
27
+
28
+ exports.useId = useId;
29
+ //# sourceMappingURL=use-id.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-id.js","sources":["../../src/utils/use-id.ts"],"sourcesContent":["import React, { useEffect, useState } from \"react\";\n\nimport { useLayoutEffect } from \"./use-layout-effect\";\n\nlet isHydrated = false;\nlet id = 0;\n\nfunction getId() {\n return ++id;\n}\n\n// Prevent bundlers from importing `useId` directly.\n// See https://github.com/radix-ui/primitives/pull/1028\n// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-member-access\nconst useReactId: typeof React.useId = (React as any)[\"useId\".toString()];\n\nfunction useIncrementalId() {\n const [id, setId] = useState(isHydrated ? getId : null);\n\n useLayoutEffect(() => {\n if (id === null) {\n setId(getId());\n }\n }, [id]);\n\n useEffect(() => {\n if (!isHydrated) {\n isHydrated = true;\n }\n }, []);\n\n return String(id) ?? undefined;\n}\n\n// React's `useId` is only available in React >=18.\nexport const useId: typeof React.useId = useReactId ?? useIncrementalId;\n"],"names":["id","useState","useLayoutEffect","useEffect"],"mappings":";;;;;AAIA,IAAI,UAAa,GAAA,KAAA,CAAA;AACjB,IAAI,EAAK,GAAA,CAAA,CAAA;AAET,SAAS,KAAQ,GAAA;AACf,EAAA,OAAO,EAAE,EAAA,CAAA;AACX,CAAA;AAKA,MAAM,UAAA,GAAkC,KAAc,CAAA,OAAA,CAAQ,QAAS,EAAA,CAAA,CAAA;AAEvE,SAAS,gBAAmB,GAAA;AAC1B,EAAA,MAAM,CAACA,GAAI,EAAA,KAAK,IAAIC,cAAS,CAAA,UAAA,GAAa,QAAQ,IAAI,CAAA,CAAA;AAEtD,EAAAC,+BAAA,CAAgB,MAAM;AACpB,IAAA,IAAIF,QAAO,IAAM,EAAA;AACf,MAAA,KAAA,CAAM,OAAO,CAAA,CAAA;AAAA,KACf;AAAA,GACF,EAAG,CAACA,GAAE,CAAC,CAAA,CAAA;AAEP,EAAAG,eAAA,CAAU,MAAM;AACd,IAAA,IAAI,CAAC,UAAY,EAAA;AACf,MAAa,UAAA,GAAA,IAAA,CAAA;AAAA,KACf;AAAA,GACF,EAAG,EAAE,CAAA,CAAA;AAEL,EAAO,OAAA,MAAA,CAAOH,GAAE,CAAK,IAAA,KAAA,CAAA,CAAA;AACvB,CAAA;AAGO,MAAM,QAA4B,UAAc,IAAA;;;;"}
@@ -0,0 +1,27 @@
1
+ import React__default, { useState, useEffect } from 'react';
2
+ import { useLayoutEffect } from './use-layout-effect.mjs';
3
+
4
+ let isHydrated = false;
5
+ let id = 0;
6
+ function getId() {
7
+ return ++id;
8
+ }
9
+ const useReactId = React__default["useId".toString()];
10
+ function useIncrementalId() {
11
+ const [id2, setId] = useState(isHydrated ? getId : null);
12
+ useLayoutEffect(() => {
13
+ if (id2 === null) {
14
+ setId(getId());
15
+ }
16
+ }, [id2]);
17
+ useEffect(() => {
18
+ if (!isHydrated) {
19
+ isHydrated = true;
20
+ }
21
+ }, []);
22
+ return String(id2) ?? void 0;
23
+ }
24
+ const useId = useReactId ?? useIncrementalId;
25
+
26
+ export { useId };
27
+ //# sourceMappingURL=use-id.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-id.mjs","sources":["../../src/utils/use-id.ts"],"sourcesContent":["import React, { useEffect, useState } from \"react\";\n\nimport { useLayoutEffect } from \"./use-layout-effect\";\n\nlet isHydrated = false;\nlet id = 0;\n\nfunction getId() {\n return ++id;\n}\n\n// Prevent bundlers from importing `useId` directly.\n// See https://github.com/radix-ui/primitives/pull/1028\n// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-member-access\nconst useReactId: typeof React.useId = (React as any)[\"useId\".toString()];\n\nfunction useIncrementalId() {\n const [id, setId] = useState(isHydrated ? getId : null);\n\n useLayoutEffect(() => {\n if (id === null) {\n setId(getId());\n }\n }, [id]);\n\n useEffect(() => {\n if (!isHydrated) {\n isHydrated = true;\n }\n }, []);\n\n return String(id) ?? undefined;\n}\n\n// React's `useId` is only available in React >=18.\nexport const useId: typeof React.useId = useReactId ?? useIncrementalId;\n"],"names":["React","id"],"mappings":";;;AAIA,IAAI,UAAa,GAAA,KAAA,CAAA;AACjB,IAAI,EAAK,GAAA,CAAA,CAAA;AAET,SAAS,KAAQ,GAAA;AACf,EAAA,OAAO,EAAE,EAAA,CAAA;AACX,CAAA;AAKA,MAAM,UAAA,GAAkCA,cAAc,CAAA,OAAA,CAAQ,QAAS,EAAA,CAAA,CAAA;AAEvE,SAAS,gBAAmB,GAAA;AAC1B,EAAA,MAAM,CAACC,GAAI,EAAA,KAAK,IAAI,QAAS,CAAA,UAAA,GAAa,QAAQ,IAAI,CAAA,CAAA;AAEtD,EAAA,eAAA,CAAgB,MAAM;AACpB,IAAA,IAAIA,QAAO,IAAM,EAAA;AACf,MAAA,KAAA,CAAM,OAAO,CAAA,CAAA;AAAA,KACf;AAAA,GACF,EAAG,CAACA,GAAE,CAAC,CAAA,CAAA;AAEP,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,IAAI,CAAC,UAAY,EAAA;AACf,MAAa,UAAA,GAAA,IAAA,CAAA;AAAA,KACf;AAAA,GACF,EAAG,EAAE,CAAA,CAAA;AAEL,EAAO,OAAA,MAAA,CAAOA,GAAE,CAAK,IAAA,KAAA,CAAA,CAAA;AACvB,CAAA;AAGO,MAAM,QAA4B,UAAc,IAAA;;;;"}
@@ -0,0 +1,32 @@
1
+ 'use strict';
2
+
3
+ var React = require('react');
4
+ var clamp = require('./clamp.js');
5
+ var wrap = require('./wrap.js');
6
+
7
+ const defaultOptions = {
8
+ wrap: true
9
+ };
10
+ function useIndex(initial, length, options) {
11
+ const { wrap: shouldWrap } = React.useMemo(() => {
12
+ return {
13
+ ...defaultOptions,
14
+ ...options
15
+ };
16
+ }, [options]);
17
+ const transform = React.useMemo(() => shouldWrap ? wrap.wrap : clamp.clamp, [shouldWrap]);
18
+ const [index, setIndex] = React.useState(initial);
19
+ React.useEffect(() => {
20
+ setIndex((index2) => clamp.clamp(index2, 0, Math.max(length - 1, 0)));
21
+ }, [length]);
22
+ const previousIndex = React.useCallback(() => {
23
+ setIndex((index2) => transform(index2 - 1, 0, Math.max(length, 0)));
24
+ }, [length, transform]);
25
+ const nextIndex = React.useCallback(() => {
26
+ setIndex((index2) => transform(index2 + 1, 0, Math.max(length, 0)));
27
+ }, [length, transform]);
28
+ return [index, previousIndex, nextIndex, setIndex];
29
+ }
30
+
31
+ exports.useIndex = useIndex;
32
+ //# sourceMappingURL=use-index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-index.js","sources":["../../src/utils/use-index.ts"],"sourcesContent":["import { useCallback, useEffect, useMemo, useState } from \"react\";\n\nimport { clamp } from \"./clamp\";\nimport { wrap } from \"./wrap\";\n\ntype Options = {\n wrap: boolean;\n};\n\nconst defaultOptions: Options = {\n wrap: true,\n};\n\nexport function useIndex(\n initial: number,\n length: number,\n options?: Partial<Options>\n) {\n const { wrap: shouldWrap } = useMemo(() => {\n return {\n ...defaultOptions,\n ...options,\n };\n }, [options]);\n const transform = useMemo(() => (shouldWrap ? wrap : clamp), [shouldWrap]);\n const [index, setIndex] = useState(initial);\n\n useEffect(() => {\n setIndex((index) => clamp(index, 0, Math.max(length - 1, 0)));\n }, [length]);\n\n const previousIndex = useCallback(() => {\n setIndex((index) => transform(index - 1, 0, Math.max(length, 0)));\n }, [length, transform]);\n\n const nextIndex = useCallback(() => {\n setIndex((index) => transform(index + 1, 0, Math.max(length, 0)));\n }, [length, transform]);\n\n return [index, previousIndex, nextIndex, setIndex] as const;\n}\n"],"names":["useMemo","wrap","clamp","useState","useEffect","index","useCallback"],"mappings":";;;;;;AASA,MAAM,cAA0B,GAAA;AAAA,EAC9B,IAAM,EAAA,IAAA;AACR,CAAA,CAAA;AAEgB,SAAA,QAAA,CACd,OACA,EAAA,MAAA,EACA,OACA,EAAA;AACA,EAAA,MAAM,EAAE,IAAA,EAAM,UAAW,EAAA,GAAIA,cAAQ,MAAM;AACzC,IAAO,OAAA;AAAA,MACL,GAAG,cAAA;AAAA,MACH,GAAG,OAAA;AAAA,KACL,CAAA;AAAA,GACF,EAAG,CAAC,OAAO,CAAC,CAAA,CAAA;AACZ,EAAM,MAAA,SAAA,GAAYA,cAAQ,MAAO,UAAA,GAAaC,YAAOC,WAAQ,EAAA,CAAC,UAAU,CAAC,CAAA,CAAA;AACzE,EAAA,MAAM,CAAC,KAAA,EAAO,QAAQ,CAAA,GAAIC,eAAS,OAAO,CAAA,CAAA;AAE1C,EAAAC,eAAA,CAAU,MAAM;AACd,IAAS,QAAA,CAAA,CAACC,MAAU,KAAAH,WAAA,CAAMG,MAAO,EAAA,CAAA,EAAG,IAAK,CAAA,GAAA,CAAI,MAAS,GAAA,CAAA,EAAG,CAAC,CAAC,CAAC,CAAA,CAAA;AAAA,GAC9D,EAAG,CAAC,MAAM,CAAC,CAAA,CAAA;AAEX,EAAM,MAAA,aAAA,GAAgBC,kBAAY,MAAM;AACtC,IAAS,QAAA,CAAA,CAACD,MAAU,KAAA,SAAA,CAAUA,MAAQ,GAAA,CAAA,EAAG,CAAG,EAAA,IAAA,CAAK,GAAI,CAAA,MAAA,EAAQ,CAAC,CAAC,CAAC,CAAA,CAAA;AAAA,GAC/D,EAAA,CAAC,MAAQ,EAAA,SAAS,CAAC,CAAA,CAAA;AAEtB,EAAM,MAAA,SAAA,GAAYC,kBAAY,MAAM;AAClC,IAAS,QAAA,CAAA,CAACD,MAAU,KAAA,SAAA,CAAUA,MAAQ,GAAA,CAAA,EAAG,CAAG,EAAA,IAAA,CAAK,GAAI,CAAA,MAAA,EAAQ,CAAC,CAAC,CAAC,CAAA,CAAA;AAAA,GAC/D,EAAA,CAAC,MAAQ,EAAA,SAAS,CAAC,CAAA,CAAA;AAEtB,EAAA,OAAO,CAAC,KAAA,EAAO,aAAe,EAAA,SAAA,EAAW,QAAQ,CAAA,CAAA;AACnD;;;;"}
@@ -0,0 +1,30 @@
1
+ import { useMemo, useState, useEffect, useCallback } from 'react';
2
+ import { clamp } from './clamp.mjs';
3
+ import { wrap } from './wrap.mjs';
4
+
5
+ const defaultOptions = {
6
+ wrap: true
7
+ };
8
+ function useIndex(initial, length, options) {
9
+ const { wrap: shouldWrap } = useMemo(() => {
10
+ return {
11
+ ...defaultOptions,
12
+ ...options
13
+ };
14
+ }, [options]);
15
+ const transform = useMemo(() => shouldWrap ? wrap : clamp, [shouldWrap]);
16
+ const [index, setIndex] = useState(initial);
17
+ useEffect(() => {
18
+ setIndex((index2) => clamp(index2, 0, Math.max(length - 1, 0)));
19
+ }, [length]);
20
+ const previousIndex = useCallback(() => {
21
+ setIndex((index2) => transform(index2 - 1, 0, Math.max(length, 0)));
22
+ }, [length, transform]);
23
+ const nextIndex = useCallback(() => {
24
+ setIndex((index2) => transform(index2 + 1, 0, Math.max(length, 0)));
25
+ }, [length, transform]);
26
+ return [index, previousIndex, nextIndex, setIndex];
27
+ }
28
+
29
+ export { useIndex };
30
+ //# sourceMappingURL=use-index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-index.mjs","sources":["../../src/utils/use-index.ts"],"sourcesContent":["import { useCallback, useEffect, useMemo, useState } from \"react\";\n\nimport { clamp } from \"./clamp\";\nimport { wrap } from \"./wrap\";\n\ntype Options = {\n wrap: boolean;\n};\n\nconst defaultOptions: Options = {\n wrap: true,\n};\n\nexport function useIndex(\n initial: number,\n length: number,\n options?: Partial<Options>\n) {\n const { wrap: shouldWrap } = useMemo(() => {\n return {\n ...defaultOptions,\n ...options,\n };\n }, [options]);\n const transform = useMemo(() => (shouldWrap ? wrap : clamp), [shouldWrap]);\n const [index, setIndex] = useState(initial);\n\n useEffect(() => {\n setIndex((index) => clamp(index, 0, Math.max(length - 1, 0)));\n }, [length]);\n\n const previousIndex = useCallback(() => {\n setIndex((index) => transform(index - 1, 0, Math.max(length, 0)));\n }, [length, transform]);\n\n const nextIndex = useCallback(() => {\n setIndex((index) => transform(index + 1, 0, Math.max(length, 0)));\n }, [length, transform]);\n\n return [index, previousIndex, nextIndex, setIndex] as const;\n}\n"],"names":["index"],"mappings":";;;;AASA,MAAM,cAA0B,GAAA;AAAA,EAC9B,IAAM,EAAA,IAAA;AACR,CAAA,CAAA;AAEgB,SAAA,QAAA,CACd,OACA,EAAA,MAAA,EACA,OACA,EAAA;AACA,EAAA,MAAM,EAAE,IAAA,EAAM,UAAW,EAAA,GAAI,QAAQ,MAAM;AACzC,IAAO,OAAA;AAAA,MACL,GAAG,cAAA;AAAA,MACH,GAAG,OAAA;AAAA,KACL,CAAA;AAAA,GACF,EAAG,CAAC,OAAO,CAAC,CAAA,CAAA;AACZ,EAAM,MAAA,SAAA,GAAY,QAAQ,MAAO,UAAA,GAAa,OAAO,KAAQ,EAAA,CAAC,UAAU,CAAC,CAAA,CAAA;AACzE,EAAA,MAAM,CAAC,KAAA,EAAO,QAAQ,CAAA,GAAI,SAAS,OAAO,CAAA,CAAA;AAE1C,EAAA,SAAA,CAAU,MAAM;AACd,IAAS,QAAA,CAAA,CAACA,MAAU,KAAA,KAAA,CAAMA,MAAO,EAAA,CAAA,EAAG,IAAK,CAAA,GAAA,CAAI,MAAS,GAAA,CAAA,EAAG,CAAC,CAAC,CAAC,CAAA,CAAA;AAAA,GAC9D,EAAG,CAAC,MAAM,CAAC,CAAA,CAAA;AAEX,EAAM,MAAA,aAAA,GAAgB,YAAY,MAAM;AACtC,IAAS,QAAA,CAAA,CAACA,MAAU,KAAA,SAAA,CAAUA,MAAQ,GAAA,CAAA,EAAG,CAAG,EAAA,IAAA,CAAK,GAAI,CAAA,MAAA,EAAQ,CAAC,CAAC,CAAC,CAAA,CAAA;AAAA,GAC/D,EAAA,CAAC,MAAQ,EAAA,SAAS,CAAC,CAAA,CAAA;AAEtB,EAAM,MAAA,SAAA,GAAY,YAAY,MAAM;AAClC,IAAS,QAAA,CAAA,CAACA,MAAU,KAAA,SAAA,CAAUA,MAAQ,GAAA,CAAA,EAAG,CAAG,EAAA,IAAA,CAAK,GAAI,CAAA,MAAA,EAAQ,CAAC,CAAC,CAAC,CAAA,CAAA;AAAA,GAC/D,EAAA,CAAC,MAAQ,EAAA,SAAS,CAAC,CAAA,CAAA;AAEtB,EAAA,OAAO,CAAC,KAAA,EAAO,aAAe,EAAA,SAAA,EAAW,QAAQ,CAAA,CAAA;AACnD;;;;"}
@@ -0,0 +1,10 @@
1
+ 'use strict';
2
+
3
+ var React = require('react');
4
+
5
+ function useInitial(value) {
6
+ return React.useRef(value instanceof Function ? value() : value).current;
7
+ }
8
+
9
+ exports.useInitial = useInitial;
10
+ //# sourceMappingURL=use-initial.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-initial.js","sources":["../../src/utils/use-initial.ts"],"sourcesContent":["import { useRef } from \"react\";\n\n/**\n * \"Freezes\" a given value, so that it will return the same value/instance on\n * each subsequent render. This can be used to freeze \"initial\" values for\n * custom hooks, much like how `useState(initialState)` or\n * `useRef(initialValue)` works.\n */\nexport function useInitial<T>(value: T | (() => T)): T {\n return useRef(value instanceof Function ? value() : value).current;\n}\n"],"names":["useRef"],"mappings":";;;;AAQO,SAAS,WAAc,KAAyB,EAAA;AACrD,EAAA,OAAOA,aAAO,KAAiB,YAAA,QAAA,GAAW,KAAM,EAAA,GAAI,KAAK,CAAE,CAAA,OAAA,CAAA;AAC7D;;;;"}
@@ -0,0 +1,8 @@
1
+ import { useRef } from 'react';
2
+
3
+ function useInitial(value) {
4
+ return useRef(value instanceof Function ? value() : value).current;
5
+ }
6
+
7
+ export { useInitial };
8
+ //# sourceMappingURL=use-initial.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-initial.mjs","sources":["../../src/utils/use-initial.ts"],"sourcesContent":["import { useRef } from \"react\";\n\n/**\n * \"Freezes\" a given value, so that it will return the same value/instance on\n * each subsequent render. This can be used to freeze \"initial\" values for\n * custom hooks, much like how `useState(initialState)` or\n * `useRef(initialValue)` works.\n */\nexport function useInitial<T>(value: T | (() => T)): T {\n return useRef(value instanceof Function ? value() : value).current;\n}\n"],"names":[],"mappings":";;AAQO,SAAS,WAAc,KAAyB,EAAA;AACrD,EAAA,OAAO,OAAO,KAAiB,YAAA,QAAA,GAAW,KAAM,EAAA,GAAI,KAAK,CAAE,CAAA,OAAA,CAAA;AAC7D;;;;"}