@dxos/react-ui 0.8.4-main.c85a9c8dae → 0.8.4-main.d05539e30a

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 (325) hide show
  1. package/LICENSE +102 -5
  2. package/README.md +1 -1
  3. package/dist/lib/browser/chunk-A5QCIG5R.mjs +24 -0
  4. package/dist/lib/browser/chunk-A5QCIG5R.mjs.map +7 -0
  5. package/dist/lib/browser/{chunk-2FKSMWNY.mjs → chunk-LY5XDQR5.mjs} +84 -12
  6. package/dist/lib/browser/chunk-LY5XDQR5.mjs.map +7 -0
  7. package/dist/lib/browser/index.mjs +1559 -1062
  8. package/dist/lib/browser/index.mjs.map +4 -4
  9. package/dist/lib/browser/meta.json +1 -1
  10. package/dist/lib/browser/testing/index.mjs +44 -20
  11. package/dist/lib/browser/testing/index.mjs.map +4 -4
  12. package/dist/lib/browser/translations.mjs +9 -0
  13. package/dist/lib/browser/translations.mjs.map +7 -0
  14. package/dist/lib/node-esm/{chunk-ZNBLTSHI.mjs → chunk-NGKLIKP3.mjs} +84 -12
  15. package/dist/lib/node-esm/chunk-NGKLIKP3.mjs.map +7 -0
  16. package/dist/lib/node-esm/chunk-XCFLA74M.mjs +26 -0
  17. package/dist/lib/node-esm/chunk-XCFLA74M.mjs.map +7 -0
  18. package/dist/lib/node-esm/index.mjs +1559 -1062
  19. package/dist/lib/node-esm/index.mjs.map +4 -4
  20. package/dist/lib/node-esm/meta.json +1 -1
  21. package/dist/lib/node-esm/testing/index.mjs +44 -20
  22. package/dist/lib/node-esm/testing/index.mjs.map +4 -4
  23. package/dist/lib/node-esm/translations.mjs +10 -0
  24. package/dist/lib/node-esm/translations.mjs.map +7 -0
  25. package/dist/types/src/components/Avatars/Avatar.d.ts +1 -1
  26. package/dist/types/src/components/Avatars/Avatar.d.ts.map +1 -1
  27. package/dist/types/src/components/Avatars/Avatar.stories.d.ts.map +1 -1
  28. package/dist/types/src/components/Avatars/AvatarGroup.stories.d.ts.map +1 -1
  29. package/dist/types/src/components/Breadcrumb/Breadcrumb.d.ts.map +1 -1
  30. package/dist/types/src/components/Breadcrumb/Breadcrumb.stories.d.ts.map +1 -1
  31. package/dist/types/src/components/Button/Button.d.ts +2 -2
  32. package/dist/types/src/components/Button/Button.d.ts.map +1 -1
  33. package/dist/types/src/components/Button/Button.stories.d.ts +1 -1
  34. package/dist/types/src/components/Button/Button.stories.d.ts.map +1 -1
  35. package/dist/types/src/components/Button/IconButton.d.ts +1 -0
  36. package/dist/types/src/components/Button/IconButton.d.ts.map +1 -1
  37. package/dist/types/src/components/Button/IconButton.stories.d.ts +3 -0
  38. package/dist/types/src/components/Button/IconButton.stories.d.ts.map +1 -1
  39. package/dist/types/src/components/Button/Toggle.d.ts +2 -2
  40. package/dist/types/src/components/Button/Toggle.d.ts.map +1 -1
  41. package/dist/types/src/components/Button/Toggle.stories.d.ts.map +1 -1
  42. package/dist/types/src/components/Button/ToggleGroup.d.ts +6 -6
  43. package/dist/types/src/components/Button/ToggleGroup.d.ts.map +1 -1
  44. package/dist/types/src/components/Button/ToggleGroup.stories.d.ts +2 -2
  45. package/dist/types/src/components/Button/ToggleGroup.stories.d.ts.map +1 -1
  46. package/dist/types/src/components/Card/Card.d.ts +68 -65
  47. package/dist/types/src/components/Card/Card.d.ts.map +1 -1
  48. package/dist/types/src/components/Card/Card.stories.d.ts +2 -2
  49. package/dist/types/src/components/Card/Card.stories.d.ts.map +1 -1
  50. package/dist/types/src/components/Carousel/Carousel.d.ts +106 -0
  51. package/dist/types/src/components/Carousel/Carousel.d.ts.map +1 -0
  52. package/dist/types/src/components/Carousel/index.d.ts +2 -0
  53. package/dist/types/src/components/Carousel/index.d.ts.map +1 -0
  54. package/dist/types/src/components/Clipboard/ClipboardProvider.d.ts.map +1 -1
  55. package/dist/types/src/components/Clipboard/CopyButton.d.ts.map +1 -1
  56. package/dist/types/src/components/Clipboard/index.d.ts +10 -1
  57. package/dist/types/src/components/Clipboard/index.d.ts.map +1 -1
  58. package/dist/types/src/components/DensityProvider/DensityProvider.d.ts.map +1 -1
  59. package/dist/types/src/components/Dialog/AlertDialog.d.ts +42 -31
  60. package/dist/types/src/components/Dialog/AlertDialog.d.ts.map +1 -1
  61. package/dist/types/src/components/Dialog/AlertDialog.stories.d.ts.map +1 -1
  62. package/dist/types/src/components/Dialog/Dialog.d.ts +47 -30
  63. package/dist/types/src/components/Dialog/Dialog.d.ts.map +1 -1
  64. package/dist/types/src/components/Dialog/Dialog.stories.d.ts +3 -2
  65. package/dist/types/src/components/Dialog/Dialog.stories.d.ts.map +1 -1
  66. package/dist/types/src/components/ElevationProvider/ElevationProvider.d.ts.map +1 -1
  67. package/dist/types/src/components/ErrorFallback/ErrorFallback.d.ts.map +1 -1
  68. package/dist/types/src/components/ErrorFallback/ErrorFallback.stories.d.ts.map +1 -1
  69. package/dist/types/src/components/ErrorFallback/ErrorStack.d.ts +14 -3
  70. package/dist/types/src/components/ErrorFallback/ErrorStack.d.ts.map +1 -1
  71. package/dist/types/src/components/ErrorFallback/ThrowError.d.ts.map +1 -1
  72. package/dist/types/src/components/Focus/Focus.d.ts +36 -0
  73. package/dist/types/src/components/Focus/Focus.d.ts.map +1 -0
  74. package/dist/types/src/components/Focus/Focus.stories.d.ts +9 -0
  75. package/dist/types/src/components/Focus/Focus.stories.d.ts.map +1 -0
  76. package/dist/types/src/components/Focus/index.d.ts +2 -0
  77. package/dist/types/src/components/Focus/index.d.ts.map +1 -0
  78. package/dist/types/src/components/Icon/Icon.d.ts +4 -0
  79. package/dist/types/src/components/Icon/Icon.d.ts.map +1 -1
  80. package/dist/types/src/components/Icon/Icon.stories.d.ts +11 -3
  81. package/dist/types/src/components/Icon/Icon.stories.d.ts.map +1 -1
  82. package/dist/types/src/components/Image/Image.d.ts +2 -1
  83. package/dist/types/src/components/Image/Image.d.ts.map +1 -1
  84. package/dist/types/src/components/Image/Image.stories.d.ts +3 -2
  85. package/dist/types/src/components/Image/Image.stories.d.ts.map +1 -1
  86. package/dist/types/src/components/Input/Input.d.ts +14 -17
  87. package/dist/types/src/components/Input/Input.d.ts.map +1 -1
  88. package/dist/types/src/components/Input/Input.stories.d.ts +3 -3
  89. package/dist/types/src/components/Input/Input.stories.d.ts.map +1 -1
  90. package/dist/types/src/components/Link/Link.d.ts.map +1 -1
  91. package/dist/types/src/components/Link/Link.stories.d.ts.map +1 -1
  92. package/dist/types/src/components/List/List.d.ts +5 -3
  93. package/dist/types/src/components/List/List.d.ts.map +1 -1
  94. package/dist/types/src/components/List/List.stories.d.ts +3 -1
  95. package/dist/types/src/components/List/List.stories.d.ts.map +1 -1
  96. package/dist/types/src/components/List/ListDropIndicator.d.ts.map +1 -1
  97. package/dist/types/src/components/List/Tree.d.ts +2 -2
  98. package/dist/types/src/components/List/Tree.d.ts.map +1 -1
  99. package/dist/types/src/components/List/Tree.stories.d.ts.map +1 -1
  100. package/dist/types/src/components/List/TreeDropIndicator.d.ts.map +1 -1
  101. package/dist/types/src/components/List/Treegrid.d.ts +5 -9
  102. package/dist/types/src/components/List/Treegrid.d.ts.map +1 -1
  103. package/dist/types/src/components/List/Treegrid.stories.d.ts.map +1 -1
  104. package/dist/types/src/components/Main/Main.d.ts +7 -3
  105. package/dist/types/src/components/Main/Main.d.ts.map +1 -1
  106. package/dist/types/src/components/Main/Main.stories.d.ts.map +1 -1
  107. package/dist/types/src/components/Main/useSwipeToDismiss.d.ts.map +1 -1
  108. package/dist/types/src/components/MediaPlayer/MediaPlayer.d.ts +46 -0
  109. package/dist/types/src/components/MediaPlayer/MediaPlayer.d.ts.map +1 -0
  110. package/dist/types/src/components/MediaPlayer/MediaPlayer.stories.d.ts +16 -0
  111. package/dist/types/src/components/MediaPlayer/MediaPlayer.stories.d.ts.map +1 -0
  112. package/dist/types/src/components/MediaPlayer/index.d.ts +2 -0
  113. package/dist/types/src/components/MediaPlayer/index.d.ts.map +1 -0
  114. package/dist/types/src/components/Menu/ContextMenu.d.ts.map +1 -1
  115. package/dist/types/src/components/Menu/ContextMenu.stories.d.ts.map +1 -1
  116. package/dist/types/src/components/Menu/DropdownMenu.d.ts +58 -49
  117. package/dist/types/src/components/Menu/DropdownMenu.d.ts.map +1 -1
  118. package/dist/types/src/components/Menu/DropdownMenu.stories.d.ts +14 -1
  119. package/dist/types/src/components/Menu/DropdownMenu.stories.d.ts.map +1 -1
  120. package/dist/types/src/components/Message/Message.d.ts +1 -1
  121. package/dist/types/src/components/Message/Message.d.ts.map +1 -1
  122. package/dist/types/src/components/Message/Message.stories.d.ts +2 -2
  123. package/dist/types/src/components/Message/Message.stories.d.ts.map +1 -1
  124. package/dist/types/src/components/Popover/Popover.d.ts +38 -22
  125. package/dist/types/src/components/Popover/Popover.d.ts.map +1 -1
  126. package/dist/types/src/components/Popover/Popover.stories.d.ts.map +1 -1
  127. package/dist/types/src/components/ScrollArea/ScrollArea.d.ts +12 -11
  128. package/dist/types/src/components/ScrollArea/ScrollArea.d.ts.map +1 -1
  129. package/dist/types/src/components/ScrollArea/ScrollArea.stories.d.ts +21 -10
  130. package/dist/types/src/components/ScrollArea/ScrollArea.stories.d.ts.map +1 -1
  131. package/dist/types/src/components/ScrollContainer/ScrollContainer.d.ts +42 -13
  132. package/dist/types/src/components/ScrollContainer/ScrollContainer.d.ts.map +1 -1
  133. package/dist/types/src/components/ScrollContainer/ScrollContainer.stories.d.ts +5 -6
  134. package/dist/types/src/components/ScrollContainer/ScrollContainer.stories.d.ts.map +1 -1
  135. package/dist/types/src/components/Select/Select.d.ts.map +1 -1
  136. package/dist/types/src/components/Select/Select.stories.d.ts +2 -2
  137. package/dist/types/src/components/Select/Select.stories.d.ts.map +1 -1
  138. package/dist/types/src/components/Separator/Separator.d.ts +3 -3
  139. package/dist/types/src/components/Separator/Separator.d.ts.map +1 -1
  140. package/dist/types/src/components/Skeleton/Skeleton.stories.d.ts.map +1 -1
  141. package/dist/types/src/components/Splitter/Splitter.d.ts +19 -21
  142. package/dist/types/src/components/Splitter/Splitter.d.ts.map +1 -1
  143. package/dist/types/src/components/Splitter/Splitter.stories.d.ts.map +1 -1
  144. package/dist/types/src/components/Status/Status.d.ts +3 -4
  145. package/dist/types/src/components/Status/Status.d.ts.map +1 -1
  146. package/dist/types/src/components/Status/Status.stories.d.ts.map +1 -1
  147. package/dist/types/src/components/Tag/Tag.stories.d.ts.map +1 -1
  148. package/dist/types/src/components/ThemeProvider/ThemeProvider.d.ts +1 -1
  149. package/dist/types/src/components/ThemeProvider/ThemeProvider.d.ts.map +1 -1
  150. package/dist/types/src/components/ThemeProvider/ThemeProvider.stories.d.ts +1 -1
  151. package/dist/types/src/components/ThemeProvider/ThemeProvider.stories.d.ts.map +1 -1
  152. package/dist/types/src/components/ThemeProvider/TranslationsProvider.d.ts +54 -55
  153. package/dist/types/src/components/ThemeProvider/TranslationsProvider.d.ts.map +1 -1
  154. package/dist/types/src/components/ThemeProvider/index.d.ts +1 -1
  155. package/dist/types/src/components/ThemeProvider/index.d.ts.map +1 -1
  156. package/dist/types/src/components/Toast/Toast.d.ts +16 -16
  157. package/dist/types/src/components/Toast/Toast.d.ts.map +1 -1
  158. package/dist/types/src/components/Toast/Toast.stories.d.ts.map +1 -1
  159. package/dist/types/src/components/Toolbar/Toolbar.d.ts +10 -20
  160. package/dist/types/src/components/Toolbar/Toolbar.d.ts.map +1 -1
  161. package/dist/types/src/components/Toolbar/Toolbar.stories.d.ts.map +1 -1
  162. package/dist/types/src/components/Tooltip/Tooltip.d.ts +16 -16
  163. package/dist/types/src/components/Tooltip/Tooltip.d.ts.map +1 -1
  164. package/dist/types/src/components/Tooltip/Tooltip.stories.d.ts +2 -2
  165. package/dist/types/src/components/Tooltip/Tooltip.stories.d.ts.map +1 -1
  166. package/dist/types/src/components/index.d.ts +3 -0
  167. package/dist/types/src/components/index.d.ts.map +1 -1
  168. package/dist/types/src/exemplars/generics.stories.d.ts +6 -5
  169. package/dist/types/src/exemplars/generics.stories.d.ts.map +1 -1
  170. package/dist/types/src/exemplars/slot.stories.d.ts +1 -0
  171. package/dist/types/src/exemplars/slot.stories.d.ts.map +1 -1
  172. package/dist/types/src/exemplars/tabster.stories.d.ts.map +1 -1
  173. package/dist/types/src/exemplars/virtualizer.stories.d.ts.map +1 -1
  174. package/dist/types/src/hooks/index.d.ts +1 -0
  175. package/dist/types/src/hooks/index.d.ts.map +1 -1
  176. package/dist/types/src/hooks/useDensityContext.d.ts +1 -1
  177. package/dist/types/src/hooks/useDensityContext.d.ts.map +1 -1
  178. package/dist/types/src/hooks/useElevationContext.d.ts.map +1 -1
  179. package/dist/types/src/hooks/useIconHref.d.ts.map +1 -1
  180. package/dist/types/src/hooks/useSafeArea.d.ts.map +1 -1
  181. package/dist/types/src/hooks/useSafeCollisionPadding.d.ts.map +1 -1
  182. package/dist/types/src/hooks/useVisualViewport.d.ts.map +1 -1
  183. package/dist/types/src/playground/Controls.stories.d.ts.map +1 -1
  184. package/dist/types/src/playground/Custom.stories.d.ts +1 -1
  185. package/dist/types/src/playground/Custom.stories.d.ts.map +1 -1
  186. package/dist/types/src/playground/Typography.stories.d.ts.map +1 -1
  187. package/dist/types/src/primitives/Column/Column.d.ts +20 -19
  188. package/dist/types/src/primitives/Column/Column.d.ts.map +1 -1
  189. package/dist/types/src/primitives/Column/Column.stories.d.ts +19 -0
  190. package/dist/types/src/primitives/Column/Column.stories.d.ts.map +1 -1
  191. package/dist/types/src/primitives/Container/Container.d.ts +7 -0
  192. package/dist/types/src/primitives/Container/Container.d.ts.map +1 -0
  193. package/dist/types/src/primitives/Container/Container.stories.d.ts +6 -0
  194. package/dist/types/src/primitives/Container/Container.stories.d.ts.map +1 -0
  195. package/dist/types/src/primitives/Container/index.d.ts +2 -0
  196. package/dist/types/src/primitives/Container/index.d.ts.map +1 -0
  197. package/dist/types/src/primitives/Flex/Flex.d.ts +8 -5
  198. package/dist/types/src/primitives/Flex/Flex.d.ts.map +1 -1
  199. package/dist/types/src/primitives/Flex/Flex.stories.d.ts.map +1 -1
  200. package/dist/types/src/primitives/Grid/Grid.d.ts +6 -5
  201. package/dist/types/src/primitives/Grid/Grid.d.ts.map +1 -1
  202. package/dist/types/src/primitives/Grid/Grid.stories.d.ts.map +1 -1
  203. package/dist/types/src/primitives/Panel/Panel.d.ts +23 -22
  204. package/dist/types/src/primitives/Panel/Panel.d.ts.map +1 -1
  205. package/dist/types/src/primitives/Panel/Panel.stories.d.ts.map +1 -1
  206. package/dist/types/src/primitives/index.d.ts +1 -0
  207. package/dist/types/src/primitives/index.d.ts.map +1 -1
  208. package/dist/types/src/testing/Loading.d.ts +9 -0
  209. package/dist/types/src/testing/Loading.d.ts.map +1 -0
  210. package/dist/types/src/testing/decorators/withLayout.d.ts.map +1 -1
  211. package/dist/types/src/testing/decorators/withLayoutVariants.d.ts.map +1 -1
  212. package/dist/types/src/testing/decorators/withTheme.d.ts +1 -1
  213. package/dist/types/src/testing/decorators/withTheme.d.ts.map +1 -1
  214. package/dist/types/src/testing/index.d.ts +1 -0
  215. package/dist/types/src/testing/index.d.ts.map +1 -1
  216. package/dist/types/src/translations.d.ts +8 -3
  217. package/dist/types/src/translations.d.ts.map +1 -1
  218. package/dist/types/src/util/usePx.d.ts.map +1 -1
  219. package/dist/types/tsconfig.tsbuildinfo +1 -1
  220. package/package.json +29 -26
  221. package/src/components/Avatars/Avatar.stories.tsx +2 -3
  222. package/src/components/Avatars/Avatar.tsx +1 -2
  223. package/src/components/Avatars/AvatarGroup.stories.tsx +0 -1
  224. package/src/components/Breadcrumb/Breadcrumb.stories.tsx +1 -2
  225. package/src/components/Button/Button.stories.tsx +0 -1
  226. package/src/components/Button/Button.tsx +5 -13
  227. package/src/components/Button/IconButton.stories.tsx +6 -4
  228. package/src/components/Button/IconButton.tsx +3 -4
  229. package/src/components/Button/Toggle.stories.tsx +0 -1
  230. package/src/components/Button/Toggle.tsx +4 -4
  231. package/src/components/Button/ToggleGroup.stories.tsx +0 -1
  232. package/src/components/Button/ToggleGroup.tsx +12 -16
  233. package/src/components/Card/Card.stories.tsx +15 -15
  234. package/src/components/Card/Card.tsx +294 -132
  235. package/src/components/Carousel/Carousel.tsx +379 -0
  236. package/src/components/Carousel/index.ts +5 -0
  237. package/src/components/Clipboard/CopyButton.tsx +5 -6
  238. package/src/components/Dialog/AlertDialog.stories.tsx +5 -6
  239. package/src/components/Dialog/AlertDialog.tsx +67 -126
  240. package/src/components/Dialog/Dialog.stories.tsx +64 -9
  241. package/src/components/Dialog/Dialog.tsx +84 -88
  242. package/src/components/ErrorFallback/ErrorFallback.stories.tsx +3 -8
  243. package/src/components/ErrorFallback/ErrorStack.tsx +36 -2
  244. package/src/components/Focus/AUDIT.md +43 -0
  245. package/src/components/Focus/Focus.stories.tsx +230 -0
  246. package/src/components/Focus/Focus.tsx +201 -0
  247. package/src/components/Focus/index.ts +5 -0
  248. package/src/components/Icon/Icon.stories.tsx +43 -13
  249. package/src/components/Icon/Icon.tsx +14 -3
  250. package/src/components/Image/Image.stories.tsx +3 -3
  251. package/src/components/Image/Image.tsx +31 -8
  252. package/src/components/Input/Input.stories.tsx +3 -4
  253. package/src/components/Input/Input.tsx +7 -7
  254. package/src/components/Link/Link.stories.tsx +0 -1
  255. package/src/components/Link/Link.tsx +10 -2
  256. package/src/components/List/List.stories.tsx +3 -4
  257. package/src/components/List/List.tsx +7 -6
  258. package/src/components/List/ListDropIndicator.tsx +0 -1
  259. package/src/components/List/Tree.stories.tsx +2 -3
  260. package/src/components/List/Tree.tsx +0 -1
  261. package/src/components/List/TreeDropIndicator.tsx +1 -1
  262. package/src/components/List/Treegrid.stories.tsx +26 -27
  263. package/src/components/List/Treegrid.tsx +14 -14
  264. package/src/components/Main/Main.stories.tsx +0 -1
  265. package/src/components/Main/Main.tsx +1 -2
  266. package/src/components/MediaPlayer/MediaPlayer.stories.tsx +50 -0
  267. package/src/components/MediaPlayer/MediaPlayer.tsx +153 -0
  268. package/src/components/MediaPlayer/index.ts +5 -0
  269. package/src/components/Menu/ContextMenu.stories.tsx +0 -1
  270. package/src/components/Menu/DropdownMenu.stories.tsx +0 -1
  271. package/src/components/Menu/DropdownMenu.tsx +48 -42
  272. package/src/components/Message/Message.stories.tsx +7 -8
  273. package/src/components/Message/Message.tsx +23 -10
  274. package/src/components/Popover/Popover.stories.tsx +4 -5
  275. package/src/components/Popover/Popover.tsx +42 -42
  276. package/src/components/ScrollArea/ScrollArea.stories.tsx +89 -30
  277. package/src/components/ScrollArea/ScrollArea.tsx +41 -25
  278. package/src/components/ScrollContainer/ScrollContainer.stories.tsx +20 -18
  279. package/src/components/ScrollContainer/ScrollContainer.tsx +199 -92
  280. package/src/components/Select/Select.stories.tsx +5 -6
  281. package/src/components/Separator/Separator.tsx +4 -7
  282. package/src/components/Skeleton/Skeleton.stories.tsx +0 -1
  283. package/src/components/Splitter/Splitter.stories.tsx +29 -29
  284. package/src/components/Splitter/Splitter.tsx +35 -46
  285. package/src/components/Status/Status.stories.tsx +0 -1
  286. package/src/components/Status/Status.tsx +8 -5
  287. package/src/components/Tag/Tag.stories.tsx +0 -1
  288. package/src/components/ThemeProvider/ThemeProvider.stories.tsx +0 -1
  289. package/src/components/ThemeProvider/ThemeProvider.tsx +5 -4
  290. package/src/components/ThemeProvider/index.ts +1 -1
  291. package/src/components/Toast/Toast.stories.tsx +0 -1
  292. package/src/components/Toast/Toast.tsx +16 -31
  293. package/src/components/Toolbar/Toolbar.stories.tsx +0 -1
  294. package/src/components/Toolbar/Toolbar.tsx +36 -48
  295. package/src/components/Tooltip/Tooltip.stories.tsx +7 -8
  296. package/src/components/Tooltip/Tooltip.tsx +29 -29
  297. package/src/components/index.ts +3 -0
  298. package/src/exemplars/generics.stories.tsx +7 -15
  299. package/src/exemplars/slot.stories.tsx +64 -68
  300. package/src/exemplars/tabster.stories.tsx +1 -1
  301. package/src/exemplars/virtualizer.stories.tsx +4 -5
  302. package/src/hooks/index.ts +1 -0
  303. package/src/hooks/useDensityContext.ts +2 -2
  304. package/src/playground/Custom.stories.tsx +6 -9
  305. package/src/primitives/Column/AUDIT.md +148 -0
  306. package/src/primitives/Column/Column.stories.tsx +128 -19
  307. package/src/primitives/Column/Column.tsx +89 -80
  308. package/src/primitives/Container/Container.stories.tsx +29 -0
  309. package/src/primitives/Container/Container.tsx +19 -0
  310. package/src/primitives/Container/index.ts +5 -0
  311. package/src/primitives/Flex/Flex.stories.tsx +0 -1
  312. package/src/primitives/Flex/Flex.tsx +20 -20
  313. package/src/primitives/Grid/Grid.stories.tsx +0 -1
  314. package/src/primitives/Grid/Grid.tsx +23 -36
  315. package/src/primitives/Panel/Panel.stories.tsx +9 -8
  316. package/src/primitives/Panel/Panel.tsx +43 -60
  317. package/src/primitives/index.ts +1 -0
  318. package/src/testing/Loading.tsx +47 -0
  319. package/src/testing/decorators/withLayout.tsx +7 -17
  320. package/src/testing/decorators/withTheme.tsx +10 -7
  321. package/src/testing/index.ts +2 -0
  322. package/src/translations.ts +8 -3
  323. package/src/util/usePx.ts +1 -0
  324. package/dist/lib/browser/chunk-2FKSMWNY.mjs.map +0 -7
  325. package/dist/lib/node-esm/chunk-ZNBLTSHI.mjs.map +0 -7
@@ -17,9 +17,9 @@ import { useControllableState } from '@radix-ui/react-use-controllable-state';
17
17
  import React, {
18
18
  type ComponentPropsWithRef,
19
19
  type ComponentPropsWithoutRef,
20
- type ElementRef,
20
+ type ComponentRef,
21
21
  type FC,
22
- type MutableRefObject,
22
+ PropsWithChildren,
23
23
  type ReactNode,
24
24
  type RefObject,
25
25
  forwardRef,
@@ -47,7 +47,7 @@ const useMenuScope: (scope?: Scope) => any = createMenuScope();
47
47
 
48
48
  type DropdownMenuContextValue = {
49
49
  triggerId: string;
50
- triggerRef: MutableRefObject<HTMLButtonElement | null>;
50
+ triggerRef: RefObject<HTMLButtonElement | null>;
51
51
  contentId: string;
52
52
  open: boolean;
53
53
  onOpenChange(open: boolean): void;
@@ -58,17 +58,23 @@ type DropdownMenuContextValue = {
58
58
  const [DropdownMenuProvider, useDropdownMenuContext] =
59
59
  createDropdownMenuContext<DropdownMenuContextValue>(DROPDOWN_MENU_NAME);
60
60
 
61
- interface DropdownMenuRootProps {
62
- children?: ReactNode;
61
+ type DropdownMenuRootProps = PropsWithChildren<{
63
62
  dir?: Direction;
63
+ modal?: boolean;
64
64
  open?: boolean;
65
65
  defaultOpen?: boolean;
66
66
  onOpenChange?(open: boolean): void;
67
- modal?: boolean;
68
- }
69
-
70
- const DropdownMenuRoot: FC<DropdownMenuRootProps> = (props: ScopedProps<DropdownMenuRootProps>) => {
71
- const { __scopeDropdownMenu, children, dir, open: openProp, defaultOpen, onOpenChange, modal = true } = props;
67
+ }>;
68
+
69
+ const DropdownMenuRoot = ({
70
+ __scopeDropdownMenu,
71
+ children,
72
+ dir,
73
+ modal = true,
74
+ open: openProp,
75
+ defaultOpen,
76
+ onOpenChange,
77
+ }: ScopedProps<DropdownMenuRootProps>) => {
72
78
  const menuScope = useMenuScope(__scopeDropdownMenu);
73
79
  const triggerRef = useRef<HTMLButtonElement | null>(null);
74
80
  const [open = false, setOpen] = useControllableState({
@@ -81,14 +87,14 @@ const DropdownMenuRoot: FC<DropdownMenuRootProps> = (props: ScopedProps<Dropdown
81
87
  <DropdownMenuProvider
82
88
  scope={__scopeDropdownMenu}
83
89
  triggerId={useId()}
84
- triggerRef={triggerRef as MutableRefObject<HTMLButtonElement | null>}
90
+ triggerRef={triggerRef}
85
91
  contentId={useId()}
86
92
  open={open}
87
93
  onOpenChange={setOpen}
88
94
  onOpenToggle={useCallback(() => setOpen((prevOpen) => !prevOpen), [setOpen])}
89
95
  modal={modal}
90
96
  >
91
- <MenuPrimitive.Root {...menuScope} open={open} onOpenChange={setOpen} dir={dir} modal={modal}>
97
+ <MenuPrimitive.Root {...menuScope} dir={dir} modal={modal} open={open} onOpenChange={setOpen}>
92
98
  {children}
93
99
  </MenuPrimitive.Root>
94
100
  </DropdownMenuProvider>
@@ -103,9 +109,9 @@ DropdownMenuRoot.displayName = DROPDOWN_MENU_NAME;
103
109
 
104
110
  const TRIGGER_NAME = 'DropdownMenuTrigger';
105
111
 
106
- type DropdownMenuTriggerElement = ElementRef<typeof Primitive.button>;
112
+ type DropdownMenuTriggerElement = ComponentRef<typeof Primitive.button>;
107
113
  type PrimitiveButtonProps = ComponentPropsWithoutRef<typeof Primitive.button>;
108
- interface DropdownMenuTriggerProps extends PrimitiveButtonProps {}
114
+ type DropdownMenuTriggerProps = PrimitiveButtonProps;
109
115
 
110
116
  const DropdownMenuTrigger = forwardRef<DropdownMenuTriggerElement, DropdownMenuTriggerProps>(
111
117
  (props: ScopedProps<DropdownMenuTriggerProps>, forwardedRef) => {
@@ -168,9 +174,9 @@ DropdownMenuTrigger.displayName = TRIGGER_NAME;
168
174
 
169
175
  const VIRTUAL_TRIGGER_NAME = 'DropdownMenuVirtualTrigger';
170
176
 
171
- interface DropdownMenuVirtualTriggerProps {
177
+ type DropdownMenuVirtualTriggerProps = {
172
178
  virtualRef: RefObject<DropdownMenuTriggerElement | null>;
173
- }
179
+ };
174
180
 
175
181
  const DropdownMenuVirtualTrigger = (props: ScopedProps<DropdownMenuVirtualTriggerProps>) => {
176
182
  const { __scopeDropdownMenu, virtualRef } = props;
@@ -193,7 +199,7 @@ DropdownMenuVirtualTrigger.displayName = VIRTUAL_TRIGGER_NAME;
193
199
  const PORTAL_NAME = 'DropdownMenuPortal';
194
200
 
195
201
  type MenuPortalProps = ComponentPropsWithoutRef<typeof MenuPrimitive.Portal>;
196
- interface DropdownMenuPortalProps extends MenuPortalProps {}
202
+ type DropdownMenuPortalProps = MenuPortalProps;
197
203
 
198
204
  const DropdownMenuPortal: FC<DropdownMenuPortalProps> = (props: ScopedProps<DropdownMenuPortalProps>) => {
199
205
  const { __scopeDropdownMenu, ...portalProps } = props;
@@ -229,9 +235,9 @@ const DropdownMenuViewport = forwardRef<HTMLDivElement, DropdownMenuViewportProp
229
235
 
230
236
  const CONTENT_NAME = 'DropdownMenuContent';
231
237
 
232
- type DropdownMenuContentElement = ElementRef<typeof MenuPrimitive.Content>;
238
+ type DropdownMenuContentElement = ComponentRef<typeof MenuPrimitive.Content>;
233
239
  type MenuContentProps = ThemedClassName<ComponentPropsWithoutRef<typeof MenuPrimitive.Content>>;
234
- interface DropdownMenuContentProps extends Omit<MenuContentProps, 'onEntryFocus'> {}
240
+ type DropdownMenuContentProps = Omit<MenuContentProps, 'onEntryFocus'>;
235
241
 
236
242
  const DropdownMenuContent = forwardRef<DropdownMenuContentElement, DropdownMenuContentProps>(
237
243
  (props: ScopedProps<DropdownMenuContentProps>, forwardedRef) => {
@@ -308,9 +314,9 @@ DropdownMenuContent.displayName = CONTENT_NAME;
308
314
 
309
315
  const GROUP_NAME = 'DropdownMenuGroup';
310
316
 
311
- type DropdownMenuGroupElement = ElementRef<typeof MenuPrimitive.Group>;
317
+ type DropdownMenuGroupElement = ComponentRef<typeof MenuPrimitive.Group>;
312
318
  type MenuGroupProps = ComponentPropsWithoutRef<typeof MenuPrimitive.Group>;
313
- interface DropdownMenuGroupProps extends MenuGroupProps {}
319
+ type DropdownMenuGroupProps = MenuGroupProps;
314
320
 
315
321
  const DropdownMenuGroup = forwardRef<DropdownMenuGroupElement, DropdownMenuGroupProps>(
316
322
  (props: ScopedProps<DropdownMenuGroupProps>, forwardedRef) => {
@@ -328,9 +334,9 @@ DropdownMenuGroup.displayName = GROUP_NAME;
328
334
 
329
335
  const LABEL_NAME = 'DropdownMenuLabel';
330
336
 
331
- type DropdownMenuLabelElement = ElementRef<typeof MenuPrimitive.Label>;
337
+ type DropdownMenuLabelElement = ComponentRef<typeof MenuPrimitive.Label>;
332
338
  type MenuLabelProps = ThemedClassName<ComponentPropsWithoutRef<typeof MenuPrimitive.Label>>;
333
- interface DropdownMenuLabelProps extends MenuLabelProps {}
339
+ type DropdownMenuLabelProps = MenuLabelProps;
334
340
 
335
341
  const DropdownMenuGroupLabel = forwardRef<DropdownMenuLabelElement, DropdownMenuLabelProps>(
336
342
  (props: ScopedProps<DropdownMenuLabelProps>, forwardedRef) => {
@@ -356,9 +362,9 @@ DropdownMenuGroupLabel.displayName = LABEL_NAME;
356
362
 
357
363
  const ITEM_NAME = 'DropdownMenuItem';
358
364
 
359
- type DropdownMenuItemElement = ElementRef<typeof MenuPrimitive.Item>;
365
+ type DropdownMenuItemElement = ComponentRef<typeof MenuPrimitive.Item>;
360
366
  type MenuItemProps = ThemedClassName<ComponentPropsWithoutRef<typeof MenuPrimitive.Item>>;
361
- interface DropdownMenuItemProps extends MenuItemProps {}
367
+ type DropdownMenuItemProps = MenuItemProps;
362
368
 
363
369
  const DropdownMenuItem = forwardRef<DropdownMenuItemElement, DropdownMenuItemProps>(
364
370
  (props: ScopedProps<DropdownMenuItemProps>, forwardedRef) => {
@@ -384,9 +390,9 @@ DropdownMenuItem.displayName = ITEM_NAME;
384
390
 
385
391
  const CHECKBOX_ITEM_NAME = 'DropdownMenuCheckboxItem';
386
392
 
387
- type DropdownMenuCheckboxItemElement = ElementRef<typeof MenuPrimitive.CheckboxItem>;
393
+ type DropdownMenuCheckboxItemElement = ComponentRef<typeof MenuPrimitive.CheckboxItem>;
388
394
  type MenuCheckboxItemProps = ThemedClassName<ComponentPropsWithoutRef<typeof MenuPrimitive.CheckboxItem>>;
389
- interface DropdownMenuCheckboxItemProps extends MenuCheckboxItemProps {}
395
+ type DropdownMenuCheckboxItemProps = MenuCheckboxItemProps;
390
396
 
391
397
  const DropdownMenuCheckboxItem = forwardRef<DropdownMenuCheckboxItemElement, DropdownMenuCheckboxItemProps>(
392
398
  (props: ScopedProps<DropdownMenuCheckboxItemProps>, forwardedRef) => {
@@ -412,9 +418,9 @@ DropdownMenuCheckboxItem.displayName = CHECKBOX_ITEM_NAME;
412
418
 
413
419
  const RADIO_GROUP_NAME = 'DropdownMenuRadioGroup';
414
420
 
415
- type DropdownMenuRadioGroupElement = ElementRef<typeof MenuPrimitive.RadioGroup>;
421
+ type DropdownMenuRadioGroupElement = ComponentRef<typeof MenuPrimitive.RadioGroup>;
416
422
  type MenuRadioGroupProps = ComponentPropsWithoutRef<typeof MenuPrimitive.RadioGroup>;
417
- interface DropdownMenuRadioGroupProps extends MenuRadioGroupProps {}
423
+ type DropdownMenuRadioGroupProps = MenuRadioGroupProps;
418
424
 
419
425
  const DropdownMenuRadioGroup = forwardRef<DropdownMenuRadioGroupElement, DropdownMenuRadioGroupProps>(
420
426
  (props: ScopedProps<DropdownMenuRadioGroupProps>, forwardedRef) => {
@@ -432,7 +438,7 @@ DropdownMenuRadioGroup.displayName = RADIO_GROUP_NAME;
432
438
 
433
439
  const RADIO_ITEM_NAME = 'DropdownMenuRadioItem';
434
440
 
435
- type DropdownMenuRadioItemElement = ElementRef<typeof MenuPrimitive.RadioItem>;
441
+ type DropdownMenuRadioItemElement = ComponentRef<typeof MenuPrimitive.RadioItem>;
436
442
  type MenuRadioItemProps = ComponentPropsWithoutRef<typeof MenuPrimitive.RadioItem>;
437
443
  type DropdownMenuRadioItemProps = ThemedClassName<MenuRadioItemProps>;
438
444
 
@@ -460,9 +466,9 @@ DropdownMenuRadioItem.displayName = RADIO_ITEM_NAME;
460
466
 
461
467
  const INDICATOR_NAME = 'DropdownMenuItemIndicator';
462
468
 
463
- type DropdownMenuItemIndicatorElement = ElementRef<typeof MenuPrimitive.ItemIndicator>;
469
+ type DropdownMenuItemIndicatorElement = ComponentRef<typeof MenuPrimitive.ItemIndicator>;
464
470
  type MenuItemIndicatorProps = ComponentPropsWithoutRef<typeof MenuPrimitive.ItemIndicator>;
465
- interface DropdownMenuItemIndicatorProps extends MenuItemIndicatorProps {}
471
+ type DropdownMenuItemIndicatorProps = MenuItemIndicatorProps;
466
472
 
467
473
  const DropdownMenuItemIndicator = forwardRef<DropdownMenuItemIndicatorElement, DropdownMenuItemIndicatorProps>(
468
474
  (props: ScopedProps<DropdownMenuItemIndicatorProps>, forwardedRef) => {
@@ -480,9 +486,9 @@ DropdownMenuItemIndicator.displayName = INDICATOR_NAME;
480
486
 
481
487
  const SEPARATOR_NAME = 'DropdownMenuSeparator';
482
488
 
483
- type DropdownMenuSeparatorElement = ElementRef<typeof MenuPrimitive.Separator>;
489
+ type DropdownMenuSeparatorElement = ComponentRef<typeof MenuPrimitive.Separator>;
484
490
  type MenuSeparatorProps = ThemedClassName<ComponentPropsWithoutRef<typeof MenuPrimitive.Separator>>;
485
- interface DropdownMenuSeparatorProps extends MenuSeparatorProps {}
491
+ type DropdownMenuSeparatorProps = MenuSeparatorProps;
486
492
 
487
493
  const DropdownMenuSeparator = forwardRef<DropdownMenuSeparatorElement, DropdownMenuSeparatorProps>(
488
494
  (props: ScopedProps<DropdownMenuSeparatorProps>, forwardedRef) => {
@@ -508,9 +514,9 @@ DropdownMenuSeparator.displayName = SEPARATOR_NAME;
508
514
 
509
515
  const ARROW_NAME = 'DropdownMenuArrow';
510
516
 
511
- type DropdownMenuArrowElement = ElementRef<typeof MenuPrimitive.Arrow>;
517
+ type DropdownMenuArrowElement = ComponentRef<typeof MenuPrimitive.Arrow>;
512
518
  type MenuArrowProps = ThemedClassName<ComponentPropsWithoutRef<typeof MenuPrimitive.Arrow>>;
513
- interface DropdownMenuArrowProps extends MenuArrowProps {}
519
+ type DropdownMenuArrowProps = MenuArrowProps;
514
520
 
515
521
  const DropdownMenuArrow = forwardRef<DropdownMenuArrowElement, DropdownMenuArrowProps>(
516
522
  (props: ScopedProps<DropdownMenuArrowProps>, forwardedRef) => {
@@ -534,12 +540,12 @@ DropdownMenuArrow.displayName = ARROW_NAME;
534
540
  // DropdownMenuSub
535
541
  //
536
542
 
537
- interface DropdownMenuSubProps {
543
+ type DropdownMenuSubProps = {
538
544
  children?: ReactNode;
539
545
  open?: boolean;
540
546
  defaultOpen?: boolean;
541
547
  onOpenChange?(open: boolean): void;
542
- }
548
+ };
543
549
 
544
550
  const DropdownMenuSub: FC<DropdownMenuSubProps> = (props: ScopedProps<DropdownMenuSubProps>) => {
545
551
  const { __scopeDropdownMenu, children, open: openProp, onOpenChange, defaultOpen } = props;
@@ -563,9 +569,9 @@ const DropdownMenuSub: FC<DropdownMenuSubProps> = (props: ScopedProps<DropdownMe
563
569
 
564
570
  const SUB_TRIGGER_NAME = 'DropdownMenuSubTrigger';
565
571
 
566
- type DropdownMenuSubTriggerElement = ElementRef<typeof MenuPrimitive.SubTrigger>;
572
+ type DropdownMenuSubTriggerElement = ComponentRef<typeof MenuPrimitive.SubTrigger>;
567
573
  type MenuSubTriggerProps = ComponentPropsWithoutRef<typeof MenuPrimitive.SubTrigger>;
568
- interface DropdownMenuSubTriggerProps extends MenuSubTriggerProps {}
574
+ type DropdownMenuSubTriggerProps = MenuSubTriggerProps;
569
575
 
570
576
  const DropdownMenuSubTrigger = forwardRef<DropdownMenuSubTriggerElement, DropdownMenuSubTriggerProps>(
571
577
  (props: ScopedProps<DropdownMenuSubTriggerProps>, forwardedRef) => {
@@ -583,9 +589,9 @@ DropdownMenuSubTrigger.displayName = SUB_TRIGGER_NAME;
583
589
 
584
590
  const SUB_CONTENT_NAME = 'DropdownMenuSubContent';
585
591
 
586
- type DropdownMenuSubContentElement = ElementRef<typeof MenuPrimitive.Content>;
592
+ type DropdownMenuSubContentElement = ComponentRef<typeof MenuPrimitive.Content>;
587
593
  type MenuSubContentProps = ComponentPropsWithoutRef<typeof MenuPrimitive.SubContent>;
588
- interface DropdownMenuSubContentProps extends MenuSubContentProps {}
594
+ type DropdownMenuSubContentProps = MenuSubContentProps;
589
595
 
590
596
  const DropdownMenuSubContent = forwardRef<DropdownMenuSubContentElement, DropdownMenuSubContentProps>(
591
597
  (props: ScopedProps<DropdownMenuSubContentProps>, forwardedRef) => {
@@ -5,25 +5,24 @@
5
5
  import { type Meta, type StoryObj } from '@storybook/react-vite';
6
6
  import React from 'react';
7
7
 
8
- import { faker } from '@dxos/random';
8
+ import { random } from '@dxos/random';
9
9
  import { type MessageValence } from '@dxos/ui-types';
10
10
 
11
11
  import { withTheme } from '../../testing';
12
-
13
12
  import { Message } from './Message';
14
13
 
15
- faker.seed(123);
14
+ random.seed(123);
16
15
 
17
- type StoryProps = {
16
+ type DefaultStoryProps = {
18
17
  valence: MessageValence;
19
18
  title: string;
20
19
  body: string;
21
20
  };
22
21
 
23
- const DefaultStory = ({ valence, title, body }: StoryProps) => (
22
+ const DefaultStory = ({ valence, title, body }: DefaultStoryProps) => (
24
23
  <div className='w-[30rem]'>
25
24
  <Message.Root valence={valence}>
26
- {title && <Message.Title>{title}</Message.Title>}
25
+ {title && <Message.Title onClose={() => console.log('close')}>{title}</Message.Title>}
27
26
  {body && <Message.Content>{body}</Message.Content>}
28
27
  </Message.Root>
29
28
  </div>
@@ -53,7 +52,7 @@ export const Default: Story = {
53
52
  args: {
54
53
  valence: 'neutral',
55
54
  title: 'Alert title',
56
- body: faker.lorem.paragraphs(1),
55
+ body: random.lorem.paragraphs(1),
57
56
  },
58
57
  };
59
58
 
@@ -61,6 +60,6 @@ export const Error: Story = {
61
60
  args: {
62
61
  valence: 'error',
63
62
  title: 'Error title',
64
- body: faker.lorem.paragraphs(1),
63
+ body: random.lorem.paragraphs(1),
65
64
  },
66
65
  };
@@ -6,12 +6,16 @@ import { createContext } from '@radix-ui/react-context';
6
6
  import { Primitive } from '@radix-ui/react-primitive';
7
7
  import { Slot } from '@radix-ui/react-slot';
8
8
  import React, { type ComponentPropsWithRef, forwardRef } from 'react';
9
+ import { useTranslation } from 'react-i18next';
9
10
 
10
11
  import { useId } from '@dxos/react-hooks';
11
12
  import { type Elevation, type MessageValence } from '@dxos/ui-types';
12
13
 
14
+ import { translationKey } from '#translations';
15
+
13
16
  import { useElevationContext, useThemeContext } from '../../hooks';
14
17
  import { type ThemedClassName } from '../../util';
18
+ import { IconButton } from '../Button';
15
19
  import { Icon } from '../Icon';
16
20
 
17
21
  const messageIcons: Record<MessageValence, string> = {
@@ -84,27 +88,36 @@ MessageRoot.displayName = MESSAGE_NAME;
84
88
  //
85
89
 
86
90
  type MessageTitleProps = Omit<ThemedClassName<ComponentPropsWithRef<typeof Primitive.h2>>, 'id'> & {
87
- asChild?: boolean;
88
91
  icon?: string;
92
+ onClose?: () => void;
89
93
  };
90
94
 
91
95
  const MESSAGE_TITLE_NAME = 'MessageTitle';
92
96
 
93
97
  const MessageTitle = forwardRef<HTMLHeadingElement, MessageTitleProps>(
94
- ({ asChild, classNames, children, icon: iconProp, ...props }, forwardedRef) => {
98
+ ({ classNames, children, icon: iconProp, onClose }, forwardedRef) => {
99
+ const { t } = useTranslation(translationKey);
95
100
  const { tx } = useThemeContext();
96
101
  const { titleId, valence } = useMessageContext(MESSAGE_TITLE_NAME);
97
- const Comp = asChild ? Slot : Primitive.h2;
98
102
  const icon = iconProp ?? messageIcons[valence];
99
103
  return (
100
- <Comp {...props} className={tx('message.header', {}, classNames)} id={titleId} ref={forwardedRef}>
101
- {!icon && valence === 'neutral' ? (
102
- <div />
103
- ) : (
104
- <Icon size={5} icon={icon} classNames={tx('message.icon', { valence })} />
104
+ <div className={tx('message.header', {}, classNames)} id={titleId} ref={forwardedRef}>
105
+ {icon && (
106
+ <div className={tx('message.icon', { valence })}>
107
+ <Icon icon={icon} />
108
+ </div>
105
109
  )}
106
- <span className={tx('message.title', {}, classNames)}>{children}</span>
107
- </Comp>
110
+ <h2 className={tx('message.title', {}, classNames)}>{children}</h2>
111
+ {onClose && (
112
+ <IconButton
113
+ variant='ghost'
114
+ icon='ph--x--regular'
115
+ iconOnly
116
+ label={t('toolbar-close.label')}
117
+ onClick={onClose}
118
+ />
119
+ )}
120
+ </div>
108
121
  );
109
122
  },
110
123
  );
@@ -5,14 +5,13 @@
5
5
  import { type Meta, type StoryObj } from '@storybook/react-vite';
6
6
  import React, { type PropsWithChildren, type ReactNode, useRef, useState } from 'react';
7
7
 
8
- import { faker } from '@dxos/random';
8
+ import { random } from '@dxos/random';
9
9
 
10
10
  import { withTheme } from '../../testing';
11
11
  import { Button } from '../Button';
12
-
13
12
  import { Popover } from './Popover';
14
13
 
15
- faker.seed(1234);
14
+ random.seed(1234);
16
15
 
17
16
  const DefaultStory = ({ openTrigger, children }: PropsWithChildren<{ openTrigger: ReactNode }>) => {
18
17
  return (
@@ -42,7 +41,7 @@ type Story = StoryObj<typeof meta>;
42
41
  export const Default: Story = {
43
42
  args: {
44
43
  openTrigger: <Button>Open popover</Button>,
45
- children: faker.lorem.paragraphs(3),
44
+ children: random.lorem.paragraphs(3),
46
45
  },
47
46
  };
48
47
 
@@ -59,7 +58,7 @@ export const VirtualTrigger = {
59
58
  <Popover.VirtualTrigger virtualRef={buttonRef} />
60
59
  <Popover.Content>
61
60
  <Popover.Viewport>
62
- <p className='px-2 py-1 min-w-[18rem] max-w-[38rem]'>{faker.lorem.paragraphs(3)}</p>
61
+ <p className='px-2 py-1 min-w-[18rem] max-w-[38rem]'>{random.lorem.paragraphs(3)}</p>
63
62
  </Popover.Viewport>
64
63
  <Popover.Arrow />
65
64
  </Popover.Content>
@@ -24,7 +24,6 @@ import React, {
24
24
  type ComponentPropsWithRef,
25
25
  type ComponentPropsWithoutRef,
26
26
  type ComponentRef,
27
- type ElementRef,
28
27
  type FC,
29
28
  type ReactNode,
30
29
  type RefObject,
@@ -37,30 +36,31 @@ import React, {
37
36
  } from 'react';
38
37
  import { RemoveScroll } from 'react-remove-scroll';
39
38
 
40
- import { useElevationContext, useThemeContext } from '../../hooks';
41
- import { useSafeCollisionPadding } from '../../hooks/useSafeCollisionPadding';
39
+ import { useSafeCollisionPadding, useElevationContext, useThemeContext } from '../../hooks';
42
40
  import { type ThemedClassName } from '../../util';
43
41
 
44
42
  //
45
43
  // Context
46
44
  //
47
45
 
46
+ type ScopedProps<P> = P & { __scopePopover?: Scope };
47
+
48
48
  const POPOVER_NAME = 'Popover';
49
49
 
50
- type ScopedProps<P> = P & { __scopePopover?: Scope };
51
50
  const [createPopoverContext, createPopoverScope] = createContextScope(POPOVER_NAME, [createPopperScope]);
51
+
52
52
  const usePopperScope = createPopperScope();
53
53
 
54
54
  type PopoverContextValue = {
55
55
  triggerRef: RefObject<HTMLButtonElement>;
56
56
  contentId: string;
57
+ hasCustomAnchor: boolean;
58
+ modal: boolean;
57
59
  open: boolean;
58
60
  onOpenChange(open: boolean): void;
59
61
  onOpenToggle(): void;
60
- hasCustomAnchor: boolean;
61
62
  onCustomAnchorAdd(): void;
62
63
  onCustomAnchorRemove(): void;
63
- modal: boolean;
64
64
  };
65
65
 
66
66
  const [PopoverProvider, usePopoverContext] = createPopoverContext<PopoverContextValue>(POPOVER_NAME);
@@ -69,13 +69,13 @@ const [PopoverProvider, usePopoverContext] = createPopoverContext<PopoverContext
69
69
  // PopoverRoot
70
70
  //
71
71
 
72
- interface PopoverRootProps {
72
+ type PopoverRootProps = {
73
73
  children?: ReactNode;
74
74
  open?: boolean;
75
75
  defaultOpen?: boolean;
76
76
  onOpenChange?: (open: boolean) => void;
77
77
  modal?: boolean;
78
- }
78
+ };
79
79
 
80
80
  const PopoverRoot: FC<PopoverRootProps> = (props: ScopedProps<PopoverRootProps>) => {
81
81
  const { __scopePopover, children, open: openProp, defaultOpen, onOpenChange, modal = false } = props;
@@ -118,7 +118,7 @@ const ANCHOR_NAME = 'PopoverAnchor';
118
118
 
119
119
  type PopoverAnchorElement = ComponentRef<typeof PopperPrimitive.Anchor>;
120
120
  type PopperAnchorProps = ComponentPropsWithoutRef<typeof PopperPrimitive.Anchor>;
121
- interface PopoverAnchorProps extends PopperAnchorProps {}
121
+ type PopoverAnchorProps = PopperAnchorProps;
122
122
 
123
123
  const PopoverAnchor = forwardRef<PopoverAnchorElement, PopoverAnchorProps>(
124
124
  (props: ScopedProps<PopoverAnchorProps>, forwardedRef) => {
@@ -144,11 +144,11 @@ PopoverAnchor.displayName = ANCHOR_NAME;
144
144
 
145
145
  const TRIGGER_NAME = 'PopoverTrigger';
146
146
 
147
- type PopoverTriggerElement = ElementRef<typeof Primitive.button>;
147
+ type PopoverTriggerElement = ComponentRef<typeof Primitive.button>;
148
148
  type PrimitiveButtonProps = ComponentPropsWithoutRef<typeof Primitive.button>;
149
- interface PopoverTriggerProps extends PrimitiveButtonProps {
149
+ type PopoverTriggerProps = PrimitiveButtonProps & {
150
150
  asChild?: boolean;
151
- }
151
+ };
152
152
 
153
153
  const PopoverTrigger = forwardRef<PopoverTriggerElement, PopoverTriggerProps>(
154
154
  (props: ScopedProps<PopoverTriggerProps>, forwardedRef) => {
@@ -189,9 +189,9 @@ PopoverTrigger.displayName = TRIGGER_NAME;
189
189
 
190
190
  const VIRTUAL_TRIGGER_NAME = 'PopoverVirtualTrigger';
191
191
 
192
- interface PopoverVirtualTriggerProps {
192
+ type PopoverVirtualTriggerProps = {
193
193
  virtualRef: RefObject<PopoverTriggerElement | null>;
194
- }
194
+ };
195
195
 
196
196
  const PopoverVirtualTrigger = (props: ScopedProps<PopoverVirtualTriggerProps>) => {
197
197
  const { __scopePopover, virtualRef } = props;
@@ -219,7 +219,7 @@ const [PortalProvider, usePortalContext] = createPopoverContext<PortalContextVal
219
219
  });
220
220
 
221
221
  type PortalProps = ComponentPropsWithoutRef<typeof PortalPrimitive>;
222
- interface PopoverPortalProps {
222
+ type PopoverPortalProps = {
223
223
  children?: ReactNode;
224
224
  /**
225
225
  * Specify a container element to portal the content into.
@@ -230,9 +230,9 @@ interface PopoverPortalProps {
230
230
  * controlling animation with React animation libraries.
231
231
  */
232
232
  forceMount?: true;
233
- }
233
+ };
234
234
 
235
- const PopoverPortal: FC<PopoverPortalProps> = (props: ScopedProps<PopoverPortalProps>) => {
235
+ const PopoverPortal = (props: ScopedProps<PopoverPortalProps>) => {
236
236
  const { __scopePopover, forceMount, children, container } = props;
237
237
  const context = usePopoverContext(PORTAL_NAME, __scopePopover);
238
238
  return (
@@ -397,31 +397,31 @@ const PopoverContentNonModal = forwardRef<PopoverContentTypeElement, PopoverCont
397
397
  },
398
398
  );
399
399
 
400
- type PopoverContentImplElement = ElementRef<typeof PopperPrimitive.Content>;
400
+ type PopoverContentImplElement = ComponentRef<typeof PopperPrimitive.Content>;
401
401
  type FocusScopeProps = ComponentPropsWithoutRef<typeof FocusScope>;
402
402
  type DismissableLayerProps = ComponentPropsWithoutRef<typeof DismissableLayer>;
403
403
  type PopperContentProps = ThemedClassName<ComponentPropsWithoutRef<typeof PopperPrimitive.Content>>;
404
404
 
405
- interface PopoverContentImplProps
406
- extends Omit<PopperContentProps, 'onPlaced'>, Omit<DismissableLayerProps, 'onDismiss'> {
407
- /**
408
- * Whether focus should be trapped within the `Popover`
409
- * (default: false)
410
- */
411
- trapFocus?: FocusScopeProps['trapped'];
412
-
413
- /**
414
- * Event handler called when auto-focusing on open.
415
- * Can be prevented.
416
- */
417
- onOpenAutoFocus?: FocusScopeProps['onMountAutoFocus'];
418
-
419
- /**
420
- * Event handler called when auto-focusing on close.
421
- * Can be prevented.
422
- */
423
- onCloseAutoFocus?: FocusScopeProps['onUnmountAutoFocus'];
424
- }
405
+ type PopoverContentImplProps = Omit<PopperContentProps, 'onPlaced'> &
406
+ Omit<DismissableLayerProps, 'onDismiss'> & {
407
+ /**
408
+ * Whether focus should be trapped within the `Popover`
409
+ * (default: false)
410
+ */
411
+ trapFocus?: FocusScopeProps['trapped'];
412
+
413
+ /**
414
+ * Event handler called when auto-focusing on open.
415
+ * Can be prevented.
416
+ */
417
+ onOpenAutoFocus?: FocusScopeProps['onMountAutoFocus'];
418
+
419
+ /**
420
+ * Event handler called when auto-focusing on close.
421
+ * Can be prevented.
422
+ */
423
+ onCloseAutoFocus?: FocusScopeProps['onUnmountAutoFocus'];
424
+ };
425
425
 
426
426
  const PopoverContentImpl = forwardRef<PopoverContentImplElement, PopoverContentImplProps>(
427
427
  (props: ScopedProps<PopoverContentImplProps>, forwardedRef) => {
@@ -514,8 +514,8 @@ const PopoverContentImpl = forwardRef<PopoverContentImplElement, PopoverContentI
514
514
 
515
515
  const CLOSE_NAME = 'PopoverClose';
516
516
 
517
- type PopoverCloseElement = ElementRef<typeof Primitive.button>;
518
- interface PopoverCloseProps extends PrimitiveButtonProps {}
517
+ type PopoverCloseElement = ComponentRef<typeof Primitive.button>;
518
+ type PopoverCloseProps = PrimitiveButtonProps;
519
519
 
520
520
  const PopoverClose = forwardRef<PopoverCloseElement, PopoverCloseProps>(
521
521
  (props: ScopedProps<PopoverCloseProps>, forwardedRef) => {
@@ -540,9 +540,9 @@ PopoverClose.displayName = CLOSE_NAME;
540
540
 
541
541
  const ARROW_NAME = 'PopoverArrow';
542
542
 
543
- type PopoverArrowElement = ElementRef<typeof PopperPrimitive.Arrow>;
543
+ type PopoverArrowElement = ComponentRef<typeof PopperPrimitive.Arrow>;
544
544
  type PopperArrowProps = ThemedClassName<ComponentPropsWithoutRef<typeof PopperPrimitive.Arrow>>;
545
- interface PopoverArrowProps extends PopperArrowProps {}
545
+ type PopoverArrowProps = PopperArrowProps;
546
546
 
547
547
  const PopoverArrow = forwardRef<PopoverArrowElement, PopoverArrowProps>(
548
548
  (props: ScopedProps<PopoverArrowProps>, forwardedRef) => {