@dxos/react-ui 0.8.4-main.ef1bc66f44 → 0.8.4-main.f466a3d56e

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 (376) 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-EJYV4HAH.mjs → chunk-LY5XDQR5.mjs} +189 -117
  6. package/dist/lib/browser/chunk-LY5XDQR5.mjs.map +7 -0
  7. package/dist/lib/browser/index.mjs +3257 -2048
  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 +70 -41
  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-YTLZCZ2M.mjs → chunk-NGKLIKP3.mjs} +189 -117
  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 +3257 -2048
  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 +70 -41
  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 +124 -0
  47. package/dist/types/src/components/Card/Card.d.ts.map +1 -0
  48. package/dist/types/src/components/Card/Card.stories.d.ts +21 -0
  49. package/dist/types/src/components/Card/Card.stories.d.ts.map +1 -0
  50. package/dist/types/src/components/Card/index.d.ts +2 -0
  51. package/dist/types/src/components/Card/index.d.ts.map +1 -0
  52. package/dist/types/src/components/Carousel/Carousel.d.ts +90 -0
  53. package/dist/types/src/components/Carousel/Carousel.d.ts.map +1 -0
  54. package/dist/types/src/components/Carousel/index.d.ts +2 -0
  55. package/dist/types/src/components/Carousel/index.d.ts.map +1 -0
  56. package/dist/types/src/components/Clipboard/ClipboardProvider.d.ts.map +1 -1
  57. package/dist/types/src/components/Clipboard/CopyButton.d.ts.map +1 -1
  58. package/dist/types/src/components/Clipboard/index.d.ts +10 -1
  59. package/dist/types/src/components/Clipboard/index.d.ts.map +1 -1
  60. package/dist/types/src/components/DensityProvider/DensityProvider.d.ts.map +1 -1
  61. package/dist/types/src/components/Dialog/AlertDialog.d.ts +43 -23
  62. package/dist/types/src/components/Dialog/AlertDialog.d.ts.map +1 -1
  63. package/dist/types/src/components/Dialog/AlertDialog.stories.d.ts.map +1 -1
  64. package/dist/types/src/components/Dialog/Dialog.d.ts +48 -30
  65. package/dist/types/src/components/Dialog/Dialog.d.ts.map +1 -1
  66. package/dist/types/src/components/Dialog/Dialog.stories.d.ts +6 -8
  67. package/dist/types/src/components/Dialog/Dialog.stories.d.ts.map +1 -1
  68. package/dist/types/src/components/ElevationProvider/ElevationProvider.d.ts.map +1 -1
  69. package/dist/types/src/components/ErrorFallback/ErrorFallback.d.ts +11 -0
  70. package/dist/types/src/components/ErrorFallback/ErrorFallback.d.ts.map +1 -0
  71. package/dist/types/src/components/ErrorFallback/ErrorFallback.stories.d.ts +7 -0
  72. package/dist/types/src/components/ErrorFallback/ErrorFallback.stories.d.ts.map +1 -0
  73. package/dist/types/src/components/ErrorFallback/ErrorStack.d.ts +19 -0
  74. package/dist/types/src/components/ErrorFallback/ErrorStack.d.ts.map +1 -0
  75. package/dist/types/src/components/ErrorFallback/ThrowError.d.ts +9 -0
  76. package/dist/types/src/components/ErrorFallback/ThrowError.d.ts.map +1 -0
  77. package/dist/types/src/components/ErrorFallback/index.d.ts +5 -0
  78. package/dist/types/src/components/ErrorFallback/index.d.ts.map +1 -0
  79. package/dist/types/src/components/Focus/Focus.d.ts +36 -0
  80. package/dist/types/src/components/Focus/Focus.d.ts.map +1 -0
  81. package/dist/types/src/components/Focus/Focus.stories.d.ts +9 -0
  82. package/dist/types/src/components/Focus/Focus.stories.d.ts.map +1 -0
  83. package/dist/types/src/components/Focus/index.d.ts +2 -0
  84. package/dist/types/src/components/Focus/index.d.ts.map +1 -0
  85. package/dist/types/src/components/Icon/Icon.d.ts +4 -0
  86. package/dist/types/src/components/Icon/Icon.d.ts.map +1 -1
  87. package/dist/types/src/components/Icon/Icon.stories.d.ts +11 -3
  88. package/dist/types/src/components/Icon/Icon.stories.d.ts.map +1 -1
  89. package/dist/types/src/components/Image/Image.d.ts +15 -0
  90. package/dist/types/src/components/Image/Image.d.ts.map +1 -0
  91. package/dist/types/src/components/Image/Image.stories.d.ts +34 -0
  92. package/dist/types/src/components/Image/Image.stories.d.ts.map +1 -0
  93. package/dist/types/src/components/Image/index.d.ts +2 -0
  94. package/dist/types/src/components/Image/index.d.ts.map +1 -0
  95. package/dist/types/src/components/Input/Input.d.ts +16 -22
  96. package/dist/types/src/components/Input/Input.d.ts.map +1 -1
  97. package/dist/types/src/components/Input/Input.stories.d.ts +6 -6
  98. package/dist/types/src/components/Input/Input.stories.d.ts.map +1 -1
  99. package/dist/types/src/components/Link/Link.stories.d.ts.map +1 -1
  100. package/dist/types/src/components/List/List.d.ts +5 -3
  101. package/dist/types/src/components/List/List.d.ts.map +1 -1
  102. package/dist/types/src/components/List/List.stories.d.ts +3 -1
  103. package/dist/types/src/components/List/List.stories.d.ts.map +1 -1
  104. package/dist/types/src/components/List/ListDropIndicator.d.ts.map +1 -1
  105. package/dist/types/src/components/List/Tree.d.ts +2 -2
  106. package/dist/types/src/components/List/Tree.d.ts.map +1 -1
  107. package/dist/types/src/components/List/Tree.stories.d.ts.map +1 -1
  108. package/dist/types/src/components/List/TreeDropIndicator.d.ts.map +1 -1
  109. package/dist/types/src/components/List/Treegrid.d.ts +5 -9
  110. package/dist/types/src/components/List/Treegrid.d.ts.map +1 -1
  111. package/dist/types/src/components/List/Treegrid.stories.d.ts.map +1 -1
  112. package/dist/types/src/components/Main/Main.d.ts +11 -7
  113. package/dist/types/src/components/Main/Main.d.ts.map +1 -1
  114. package/dist/types/src/components/Main/Main.stories.d.ts +0 -3
  115. package/dist/types/src/components/Main/Main.stories.d.ts.map +1 -1
  116. package/dist/types/src/components/Main/useSwipeToDismiss.d.ts.map +1 -1
  117. package/dist/types/src/components/MediaPlayer/MediaPlayer.d.ts +46 -0
  118. package/dist/types/src/components/MediaPlayer/MediaPlayer.d.ts.map +1 -0
  119. package/dist/types/src/components/MediaPlayer/MediaPlayer.stories.d.ts +16 -0
  120. package/dist/types/src/components/MediaPlayer/MediaPlayer.stories.d.ts.map +1 -0
  121. package/dist/types/src/components/MediaPlayer/index.d.ts +2 -0
  122. package/dist/types/src/components/MediaPlayer/index.d.ts.map +1 -0
  123. package/dist/types/src/components/Menu/ContextMenu.d.ts.map +1 -1
  124. package/dist/types/src/components/Menu/ContextMenu.stories.d.ts.map +1 -1
  125. package/dist/types/src/components/Menu/DropdownMenu.d.ts +58 -49
  126. package/dist/types/src/components/Menu/DropdownMenu.d.ts.map +1 -1
  127. package/dist/types/src/components/Menu/DropdownMenu.stories.d.ts +14 -1
  128. package/dist/types/src/components/Menu/DropdownMenu.stories.d.ts.map +1 -1
  129. package/dist/types/src/components/Message/Message.d.ts +1 -1
  130. package/dist/types/src/components/Message/Message.d.ts.map +1 -1
  131. package/dist/types/src/components/Message/Message.stories.d.ts +4 -5
  132. package/dist/types/src/components/Message/Message.stories.d.ts.map +1 -1
  133. package/dist/types/src/components/Popover/Popover.d.ts +39 -22
  134. package/dist/types/src/components/Popover/Popover.d.ts.map +1 -1
  135. package/dist/types/src/components/Popover/Popover.stories.d.ts.map +1 -1
  136. package/dist/types/src/components/ScrollArea/ScrollArea.d.ts +12 -11
  137. package/dist/types/src/components/ScrollArea/ScrollArea.d.ts.map +1 -1
  138. package/dist/types/src/components/ScrollArea/ScrollArea.stories.d.ts +21 -10
  139. package/dist/types/src/components/ScrollArea/ScrollArea.stories.d.ts.map +1 -1
  140. package/dist/types/src/components/ScrollContainer/ScrollContainer.d.ts +42 -13
  141. package/dist/types/src/components/ScrollContainer/ScrollContainer.d.ts.map +1 -1
  142. package/dist/types/src/components/ScrollContainer/ScrollContainer.stories.d.ts +9 -5
  143. package/dist/types/src/components/ScrollContainer/ScrollContainer.stories.d.ts.map +1 -1
  144. package/dist/types/src/components/Select/Select.d.ts.map +1 -1
  145. package/dist/types/src/components/Select/Select.stories.d.ts +2 -2
  146. package/dist/types/src/components/Select/Select.stories.d.ts.map +1 -1
  147. package/dist/types/src/components/Separator/Separator.d.ts +3 -3
  148. package/dist/types/src/components/Separator/Separator.d.ts.map +1 -1
  149. package/dist/types/src/components/Skeleton/Skeleton.stories.d.ts.map +1 -1
  150. package/dist/types/src/components/Splitter/Splitter.d.ts +23 -15
  151. package/dist/types/src/components/Splitter/Splitter.d.ts.map +1 -1
  152. package/dist/types/src/components/Splitter/Splitter.stories.d.ts.map +1 -1
  153. package/dist/types/src/components/Status/Status.d.ts +3 -4
  154. package/dist/types/src/components/Status/Status.d.ts.map +1 -1
  155. package/dist/types/src/components/Status/Status.stories.d.ts +4 -2
  156. package/dist/types/src/components/Status/Status.stories.d.ts.map +1 -1
  157. package/dist/types/src/components/Tag/Tag.d.ts.map +1 -1
  158. package/dist/types/src/components/Tag/Tag.stories.d.ts +0 -5
  159. package/dist/types/src/components/Tag/Tag.stories.d.ts.map +1 -1
  160. package/dist/types/src/components/ThemeProvider/ThemeProvider.d.ts +1 -1
  161. package/dist/types/src/components/ThemeProvider/ThemeProvider.d.ts.map +1 -1
  162. package/dist/types/src/components/ThemeProvider/ThemeProvider.stories.d.ts +12 -0
  163. package/dist/types/src/components/ThemeProvider/ThemeProvider.stories.d.ts.map +1 -0
  164. package/dist/types/src/components/ThemeProvider/TranslationsProvider.d.ts +54 -55
  165. package/dist/types/src/components/ThemeProvider/TranslationsProvider.d.ts.map +1 -1
  166. package/dist/types/src/components/ThemeProvider/index.d.ts +1 -1
  167. package/dist/types/src/components/ThemeProvider/index.d.ts.map +1 -1
  168. package/dist/types/src/components/Toast/Toast.d.ts +16 -16
  169. package/dist/types/src/components/Toast/Toast.d.ts.map +1 -1
  170. package/dist/types/src/components/Toast/Toast.stories.d.ts.map +1 -1
  171. package/dist/types/src/components/Toolbar/Toolbar.d.ts +32 -15
  172. package/dist/types/src/components/Toolbar/Toolbar.d.ts.map +1 -1
  173. package/dist/types/src/components/Toolbar/Toolbar.stories.d.ts.map +1 -1
  174. package/dist/types/src/components/Tooltip/Tooltip.d.ts +16 -16
  175. package/dist/types/src/components/Tooltip/Tooltip.d.ts.map +1 -1
  176. package/dist/types/src/components/Tooltip/Tooltip.stories.d.ts +2 -2
  177. package/dist/types/src/components/Tooltip/Tooltip.stories.d.ts.map +1 -1
  178. package/dist/types/src/components/index.d.ts +9 -4
  179. package/dist/types/src/components/index.d.ts.map +1 -1
  180. package/dist/types/src/exemplars/generics.stories.d.ts +8 -6
  181. package/dist/types/src/exemplars/generics.stories.d.ts.map +1 -1
  182. package/dist/types/src/exemplars/slot.stories.d.ts +1 -0
  183. package/dist/types/src/exemplars/slot.stories.d.ts.map +1 -1
  184. package/dist/types/src/exemplars/tabster.stories.d.ts.map +1 -1
  185. package/dist/types/src/exemplars/virtualizer.stories.d.ts +11 -0
  186. package/dist/types/src/exemplars/virtualizer.stories.d.ts.map +1 -0
  187. package/dist/types/src/hooks/index.d.ts +1 -0
  188. package/dist/types/src/hooks/index.d.ts.map +1 -1
  189. package/dist/types/src/hooks/useDensityContext.d.ts +1 -1
  190. package/dist/types/src/hooks/useDensityContext.d.ts.map +1 -1
  191. package/dist/types/src/hooks/useElevationContext.d.ts.map +1 -1
  192. package/dist/types/src/hooks/useIconHref.d.ts.map +1 -1
  193. package/dist/types/src/hooks/useSafeArea.d.ts.map +1 -1
  194. package/dist/types/src/hooks/useSafeCollisionPadding.d.ts.map +1 -1
  195. package/dist/types/src/hooks/useVisualViewport.d.ts.map +1 -1
  196. package/dist/types/src/playground/Controls.stories.d.ts.map +1 -1
  197. package/dist/types/src/playground/Custom.stories.d.ts +1 -1
  198. package/dist/types/src/playground/Custom.stories.d.ts.map +1 -1
  199. package/dist/types/src/playground/Typography.stories.d.ts.map +1 -1
  200. package/dist/types/src/primitives/Column/Column.d.ts +33 -0
  201. package/dist/types/src/primitives/Column/Column.d.ts.map +1 -0
  202. package/dist/types/src/primitives/Column/Column.stories.d.ts +25 -0
  203. package/dist/types/src/primitives/Column/Column.stories.d.ts.map +1 -0
  204. package/dist/types/src/primitives/Column/index.d.ts +2 -0
  205. package/dist/types/src/primitives/Column/index.d.ts.map +1 -0
  206. package/dist/types/src/primitives/Container/Container.d.ts +6 -22
  207. package/dist/types/src/primitives/Container/Container.d.ts.map +1 -1
  208. package/dist/types/src/primitives/Container/Container.stories.d.ts +2 -7
  209. package/dist/types/src/primitives/Container/Container.stories.d.ts.map +1 -1
  210. package/dist/types/src/primitives/Container/index.d.ts +0 -1
  211. package/dist/types/src/primitives/Container/index.d.ts.map +1 -1
  212. package/dist/types/src/primitives/Flex/Flex.d.ts +8 -5
  213. package/dist/types/src/primitives/Flex/Flex.d.ts.map +1 -1
  214. package/dist/types/src/primitives/Flex/Flex.stories.d.ts +8 -0
  215. package/dist/types/src/primitives/Flex/Flex.stories.d.ts.map +1 -0
  216. package/dist/types/src/primitives/Grid/Grid.d.ts +10 -0
  217. package/dist/types/src/primitives/Grid/Grid.d.ts.map +1 -0
  218. package/dist/types/src/primitives/Grid/Grid.stories.d.ts +8 -0
  219. package/dist/types/src/primitives/Grid/Grid.stories.d.ts.map +1 -0
  220. package/dist/types/src/primitives/Grid/index.d.ts +2 -0
  221. package/dist/types/src/primitives/Grid/index.d.ts.map +1 -0
  222. package/dist/types/src/primitives/Panel/Panel.d.ts +35 -0
  223. package/dist/types/src/primitives/Panel/Panel.d.ts.map +1 -0
  224. package/dist/types/src/primitives/Panel/Panel.stories.d.ts +6 -0
  225. package/dist/types/src/primitives/Panel/Panel.stories.d.ts.map +1 -0
  226. package/dist/types/src/primitives/Panel/index.d.ts +2 -0
  227. package/dist/types/src/primitives/Panel/index.d.ts.map +1 -0
  228. package/dist/types/src/primitives/index.d.ts +3 -0
  229. package/dist/types/src/primitives/index.d.ts.map +1 -1
  230. package/dist/types/src/testing/Loading.d.ts +9 -0
  231. package/dist/types/src/testing/Loading.d.ts.map +1 -0
  232. package/dist/types/src/testing/decorators/withLayout.d.ts +1 -1
  233. package/dist/types/src/testing/decorators/withLayout.d.ts.map +1 -1
  234. package/dist/types/src/testing/decorators/withLayoutVariants.d.ts.map +1 -1
  235. package/dist/types/src/testing/decorators/withTheme.d.ts +1 -1
  236. package/dist/types/src/testing/decorators/withTheme.d.ts.map +1 -1
  237. package/dist/types/src/testing/index.d.ts +1 -0
  238. package/dist/types/src/testing/index.d.ts.map +1 -1
  239. package/dist/types/src/translations.d.ts +16 -0
  240. package/dist/types/src/translations.d.ts.map +1 -0
  241. package/dist/types/src/util/usePx.d.ts.map +1 -1
  242. package/dist/types/tsconfig.tsbuildinfo +1 -1
  243. package/package.json +34 -27
  244. package/src/components/Avatars/Avatar.stories.tsx +5 -7
  245. package/src/components/Avatars/Avatar.tsx +6 -14
  246. package/src/components/Avatars/AvatarGroup.stories.tsx +0 -1
  247. package/src/components/Breadcrumb/Breadcrumb.stories.tsx +1 -2
  248. package/src/components/Breadcrumb/Breadcrumb.tsx +11 -37
  249. package/src/components/Button/Button.stories.tsx +1 -2
  250. package/src/components/Button/Button.tsx +11 -25
  251. package/src/components/Button/IconButton.stories.tsx +6 -4
  252. package/src/components/Button/IconButton.tsx +3 -4
  253. package/src/components/Button/Toggle.stories.tsx +0 -1
  254. package/src/components/Button/Toggle.tsx +4 -4
  255. package/src/components/Button/ToggleGroup.stories.tsx +0 -1
  256. package/src/components/Button/ToggleGroup.tsx +12 -16
  257. package/src/components/Card/Card.stories.tsx +151 -0
  258. package/src/components/Card/Card.tsx +514 -0
  259. package/src/components/Card/index.ts +5 -0
  260. package/src/components/Carousel/Carousel.tsx +337 -0
  261. package/src/components/Carousel/index.ts +5 -0
  262. package/src/components/Clipboard/CopyButton.tsx +6 -7
  263. package/src/components/Dialog/AlertDialog.stories.tsx +14 -15
  264. package/src/components/Dialog/AlertDialog.tsx +123 -82
  265. package/src/components/Dialog/Dialog.stories.tsx +90 -14
  266. package/src/components/Dialog/Dialog.tsx +98 -113
  267. package/src/components/ErrorFallback/ErrorFallback.stories.tsx +45 -0
  268. package/src/components/ErrorFallback/ErrorFallback.tsx +70 -0
  269. package/src/components/ErrorFallback/ErrorStack.tsx +114 -0
  270. package/src/components/ErrorFallback/ThrowError.tsx +37 -0
  271. package/src/components/ErrorFallback/index.ts +9 -0
  272. package/src/components/Focus/AUDIT.md +43 -0
  273. package/src/components/Focus/Focus.stories.tsx +230 -0
  274. package/src/components/Focus/Focus.tsx +201 -0
  275. package/src/components/Focus/index.ts +5 -0
  276. package/src/components/Icon/Icon.stories.tsx +43 -13
  277. package/src/components/Icon/Icon.tsx +14 -3
  278. package/src/components/Image/Image.stories.tsx +86 -0
  279. package/src/components/Image/Image.tsx +246 -0
  280. package/src/components/Image/index.ts +5 -0
  281. package/src/components/Input/Input.stories.tsx +17 -38
  282. package/src/components/Input/Input.tsx +27 -71
  283. package/src/components/Link/Link.stories.tsx +0 -1
  284. package/src/components/Link/Link.tsx +2 -2
  285. package/src/components/List/List.stories.tsx +14 -22
  286. package/src/components/List/List.tsx +16 -20
  287. package/src/components/List/ListDropIndicator.tsx +7 -8
  288. package/src/components/List/Tree.stories.tsx +4 -5
  289. package/src/components/List/Tree.tsx +0 -1
  290. package/src/components/List/TreeDropIndicator.tsx +6 -6
  291. package/src/components/List/Treegrid.stories.tsx +27 -28
  292. package/src/components/List/Treegrid.tsx +22 -27
  293. package/src/components/Main/Main.stories.tsx +3 -7
  294. package/src/components/Main/Main.tsx +57 -48
  295. package/src/components/MediaPlayer/MediaPlayer.stories.tsx +50 -0
  296. package/src/components/MediaPlayer/MediaPlayer.tsx +153 -0
  297. package/src/components/MediaPlayer/index.ts +5 -0
  298. package/src/components/Menu/ContextMenu.stories.tsx +0 -1
  299. package/src/components/Menu/ContextMenu.tsx +9 -33
  300. package/src/components/Menu/DropdownMenu.stories.tsx +0 -1
  301. package/src/components/Menu/DropdownMenu.tsx +58 -52
  302. package/src/components/Message/Message.stories.tsx +25 -11
  303. package/src/components/Message/Message.tsx +30 -29
  304. package/src/components/Popover/Popover.stories.tsx +5 -6
  305. package/src/components/Popover/Popover.tsx +62 -59
  306. package/src/components/ScrollArea/ScrollArea.stories.tsx +98 -39
  307. package/src/components/ScrollArea/ScrollArea.tsx +45 -33
  308. package/src/components/ScrollContainer/ScrollContainer.stories.tsx +46 -25
  309. package/src/components/ScrollContainer/ScrollContainer.tsx +199 -92
  310. package/src/components/Select/Select.stories.tsx +5 -6
  311. package/src/components/Select/Select.tsx +11 -27
  312. package/src/components/Separator/Separator.tsx +5 -8
  313. package/src/components/Skeleton/Skeleton.stories.tsx +12 -13
  314. package/src/components/Skeleton/Skeleton.tsx +1 -1
  315. package/src/components/Splitter/Splitter.stories.tsx +47 -37
  316. package/src/components/Splitter/Splitter.tsx +44 -40
  317. package/src/components/Status/Status.stories.tsx +19 -16
  318. package/src/components/Status/Status.tsx +10 -7
  319. package/src/components/Tag/Tag.stories.tsx +3 -9
  320. package/src/components/Tag/Tag.tsx +2 -7
  321. package/src/components/ThemeProvider/ThemeProvider.stories.tsx +31 -0
  322. package/src/components/ThemeProvider/ThemeProvider.tsx +8 -7
  323. package/src/components/ThemeProvider/index.ts +1 -1
  324. package/src/components/Toast/Toast.stories.tsx +0 -1
  325. package/src/components/Toast/Toast.tsx +22 -41
  326. package/src/components/Toolbar/Toolbar.stories.tsx +0 -1
  327. package/src/components/Toolbar/Toolbar.tsx +175 -30
  328. package/src/components/Tooltip/Tooltip.stories.tsx +18 -17
  329. package/src/components/Tooltip/Tooltip.tsx +32 -31
  330. package/src/components/index.ts +10 -5
  331. package/src/exemplars/generics.stories.tsx +12 -15
  332. package/src/exemplars/slot.stories.tsx +68 -61
  333. package/src/exemplars/tabster.stories.tsx +5 -5
  334. package/src/exemplars/virtualizer.stories.tsx +136 -0
  335. package/src/hooks/index.ts +1 -0
  336. package/src/hooks/useDensityContext.ts +2 -2
  337. package/src/playground/Controls.stories.tsx +0 -6
  338. package/src/playground/Custom.stories.tsx +13 -16
  339. package/src/playground/Typography.stories.tsx +1 -1
  340. package/src/primitives/Column/AUDIT.md +148 -0
  341. package/src/primitives/Column/Column.stories.tsx +181 -0
  342. package/src/primitives/Column/Column.tsx +165 -0
  343. package/src/primitives/Column/index.ts +5 -0
  344. package/src/primitives/Container/Container.stories.tsx +13 -51
  345. package/src/primitives/Container/Container.tsx +14 -77
  346. package/src/primitives/Container/index.ts +0 -1
  347. package/src/primitives/Flex/Flex.stories.tsx +57 -0
  348. package/src/primitives/Flex/Flex.tsx +20 -19
  349. package/src/primitives/Grid/Grid.stories.tsx +56 -0
  350. package/src/primitives/Grid/Grid.tsx +30 -0
  351. package/src/primitives/Grid/index.ts +5 -0
  352. package/src/primitives/Panel/Panel.stories.tsx +68 -0
  353. package/src/primitives/Panel/Panel.tsx +120 -0
  354. package/src/primitives/Panel/index.ts +5 -0
  355. package/src/primitives/index.ts +3 -0
  356. package/src/testing/Loading.tsx +47 -0
  357. package/src/testing/decorators/withLayout.tsx +15 -11
  358. package/src/testing/decorators/withLayoutVariants.tsx +18 -21
  359. package/src/testing/decorators/withTheme.tsx +10 -7
  360. package/src/testing/index.ts +2 -0
  361. package/src/translations.ts +24 -0
  362. package/src/util/usePx.ts +1 -0
  363. package/dist/lib/browser/chunk-EJYV4HAH.mjs.map +0 -7
  364. package/dist/lib/node-esm/chunk-YTLZCZ2M.mjs.map +0 -7
  365. package/dist/types/src/components/AnchoredOverflow/AnchoredOverflow.d.ts +0 -22
  366. package/dist/types/src/components/AnchoredOverflow/AnchoredOverflow.d.ts.map +0 -1
  367. package/dist/types/src/components/AnchoredOverflow/index.d.ts +0 -2
  368. package/dist/types/src/components/AnchoredOverflow/index.d.ts.map +0 -1
  369. package/dist/types/src/primitives/Container/Layout.d.ts +0 -18
  370. package/dist/types/src/primitives/Container/Layout.d.ts.map +0 -1
  371. package/dist/types/src/primitives/Container/Layout.stories.d.ts +0 -10
  372. package/dist/types/src/primitives/Container/Layout.stories.d.ts.map +0 -1
  373. package/src/components/AnchoredOverflow/AnchoredOverflow.tsx +0 -67
  374. package/src/components/AnchoredOverflow/index.ts +0 -5
  375. package/src/primitives/Container/Layout.stories.tsx +0 -57
  376. package/src/primitives/Container/Layout.tsx +0 -61
@@ -1,8 +1,34 @@
1
1
  import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
2
 
3
+ // src/components/DensityProvider/DensityProvider.tsx
4
+ import React, { createContext } from "react";
5
+ var DensityContext = /* @__PURE__ */ createContext({
6
+ density: "fine"
7
+ });
8
+ var DensityProvider = ({ density, children }) => /* @__PURE__ */ React.createElement(DensityContext.Provider, {
9
+ value: {
10
+ density
11
+ }
12
+ }, children);
13
+
14
+ // src/components/ElevationProvider/ElevationProvider.tsx
15
+ import React2, { createContext as createContext2 } from "react";
16
+ var ElevationContext = /* @__PURE__ */ createContext2({
17
+ elevation: "base"
18
+ });
19
+ var ElevationProvider = ({ elevation, children }) => /* @__PURE__ */ React2.createElement(ElevationContext.Provider, {
20
+ value: {
21
+ elevation
22
+ }
23
+ }, children);
24
+
3
25
  // src/hooks/useElevationContext.ts
4
26
  import { useContext as useContext3 } from "react";
5
27
 
28
+ // src/components/ThemeProvider/ThemeProvider.tsx
29
+ import { createKeyborg } from "keyborg";
30
+ import React4, { createContext as createContext4, useEffect as useEffect2, useMemo } from "react";
31
+
6
32
  // src/hooks/useThemeContext.ts
7
33
  import { useContext } from "react";
8
34
  import { raise } from "@dxos/debug";
@@ -34,7 +60,7 @@ var useSafeArea = () => {
34
60
  // src/components/ThemeProvider/TranslationsProvider.tsx
35
61
  import { enUS as dtLocaleEnUs } from "date-fns/locale";
36
62
  import i18Next from "i18next";
37
- import React, { Suspense, createContext, useContext as useContext2, useEffect, useState as useState2 } from "react";
63
+ import React3, { Suspense, createContext as createContext3, useContext as useContext2, useEffect, useState as useState2 } from "react";
38
64
  import { initReactI18next, useTranslation as useI18NextTranslation } from "react-i18next";
39
65
  var initialLng = "en-US";
40
66
  var initialNs = "dxos-common";
@@ -54,7 +80,7 @@ void i18Next.use(initReactI18next).init({
54
80
  escapeValue: false
55
81
  }
56
82
  });
57
- var TranslationsContext = /* @__PURE__ */ createContext({
83
+ var TranslationsContext = /* @__PURE__ */ createContext3({
58
84
  appNs: initialNs,
59
85
  dtLocale: initialDtLocale
60
86
  });
@@ -83,16 +109,66 @@ var TranslationsProvider = ({ fallback, resourceExtensions, children, appNs, dtL
83
109
  }, [
84
110
  resourceExtensions
85
111
  ]);
86
- return /* @__PURE__ */ React.createElement(TranslationsContext.Provider, {
112
+ return /* @__PURE__ */ React3.createElement(TranslationsContext.Provider, {
87
113
  value: {
88
114
  appNs: appNs ?? initialNs,
89
115
  dtLocale: dtLocale ?? initialDtLocale
90
116
  }
91
- }, /* @__PURE__ */ React.createElement(Suspense, {
117
+ }, /* @__PURE__ */ React3.createElement(Suspense, {
92
118
  fallback
93
119
  }, loaded ? children : fallback));
94
120
  };
95
121
 
122
+ // src/util/hasIosKeyboard.ts
123
+ var hasIosKeyboard = () => {
124
+ return !!navigator.userAgent.match(/iP(ad|od|hone).+Safari/);
125
+ };
126
+
127
+ // src/components/ThemeProvider/ThemeProvider.tsx
128
+ var ThemeContext = /* @__PURE__ */ createContext4(void 0);
129
+ var ThemeProvider = ({ children, fallback = null, resourceExtensions, appNs, tx = (_path, _styleProps, ..._options) => void 0, themeMode = "dark", rootDensity = "fine", noCache, platform }) => {
130
+ useEffect2(() => {
131
+ if (document.defaultView) {
132
+ const kb = createKeyborg(document.defaultView);
133
+ kb.subscribe(handleInputModalityChange);
134
+ return () => kb.unsubscribe(handleInputModalityChange);
135
+ }
136
+ }, []);
137
+ const safeAreaPadding = useSafeArea();
138
+ const contextValue = useMemo(() => ({
139
+ tx,
140
+ themeMode,
141
+ hasIosKeyboard: hasIosKeyboard(),
142
+ safeAreaPadding,
143
+ noCache,
144
+ platform
145
+ }), [
146
+ tx,
147
+ themeMode,
148
+ safeAreaPadding,
149
+ noCache,
150
+ platform
151
+ ]);
152
+ return /* @__PURE__ */ React4.createElement(ThemeContext.Provider, {
153
+ value: contextValue
154
+ }, /* @__PURE__ */ React4.createElement(TranslationsProvider, {
155
+ fallback,
156
+ resourceExtensions,
157
+ appNs
158
+ }, /* @__PURE__ */ React4.createElement(ElevationProvider, {
159
+ elevation: "base"
160
+ }, /* @__PURE__ */ React4.createElement(DensityProvider, {
161
+ density: rootDensity
162
+ }, children))));
163
+ };
164
+ var handleInputModalityChange = (isUsingKeyboard) => {
165
+ if (isUsingKeyboard) {
166
+ document.body.setAttribute("data-w-keyboard", "true");
167
+ } else {
168
+ document.body.removeAttribute("data-w-keyboard");
169
+ }
170
+ };
171
+
96
172
  // src/components/Tooltip/Tooltip.tsx
97
173
  import { composeEventHandlers } from "@radix-ui/primitive";
98
174
  import { useComposedRefs } from "@radix-ui/react-compose-refs";
@@ -107,7 +183,7 @@ import { Primitive } from "@radix-ui/react-primitive";
107
183
  import { Slottable } from "@radix-ui/react-slot";
108
184
  import { useControllableState } from "@radix-ui/react-use-controllable-state";
109
185
  import * as VisuallyHiddenPrimitive from "@radix-ui/react-visually-hidden";
110
- import React2, { forwardRef, useCallback as useCallback2, useEffect as useEffect2, useMemo, useRef, useState as useState3 } from "react";
186
+ import React5, { forwardRef, useCallback as useCallback2, useEffect as useEffect3, useMemo as useMemo2, useRef, useState as useState3 } from "react";
111
187
  var [createTooltipContext, createTooltipScope] = createContextScope("Tooltip", [
112
188
  createPopperScope
113
189
  ]);
@@ -121,20 +197,20 @@ var TooltipProvider = (props) => {
121
197
  const isOpenDelayedRef = useRef(true);
122
198
  const isPointerInTransitRef = useRef(false);
123
199
  const skipDelayTimerRef = useRef(0);
124
- useEffect2(() => {
200
+ useEffect3(() => {
125
201
  const skipDelayTimer = skipDelayTimerRef.current;
126
202
  return () => window.clearTimeout(skipDelayTimer);
127
203
  }, []);
128
204
  const popperScope = usePopperScope(__scopeTooltip);
129
205
  const [trigger, setTrigger] = useState3(null);
130
- const [content, setContent] = useState3("");
206
+ const [content, setContent] = useState3(null);
131
207
  const [side, setSide] = useState3(void 0);
132
208
  const triggerRef = useRef(trigger);
133
- const handleTriggerChange = useCallback2((nextTrigger) => {
209
+ const handleTriggerChange = useCallback2((nextTrigger, nextContent, nextSide) => {
134
210
  setTrigger(nextTrigger);
135
211
  triggerRef.current = nextTrigger;
136
- setContent(nextTrigger?.getAttribute("data-tooltip-content") ?? "");
137
- setSide(nextTrigger?.getAttribute("data-tooltip-side") ?? void 0);
212
+ setContent(nextContent ?? null);
213
+ setSide(nextSide);
138
214
  }, []);
139
215
  const contentId = useId();
140
216
  const openTimerRef = useRef(0);
@@ -158,7 +234,7 @@ var TooltipProvider = (props) => {
158
234
  defaultProp: defaultOpen,
159
235
  onChange: handleOpenChange
160
236
  });
161
- const stateAttribute = useMemo(() => {
237
+ const stateAttribute = useMemo2(() => {
162
238
  return open ? wasOpenDelayedRef.current ? "delayed-open" : "instant-open" : "closed";
163
239
  }, [
164
240
  open
@@ -189,7 +265,7 @@ var TooltipProvider = (props) => {
189
265
  delayDuration,
190
266
  setOpen
191
267
  ]);
192
- useEffect2(() => {
268
+ useEffect3(() => {
193
269
  return () => {
194
270
  if (openTimerRef.current) {
195
271
  window.clearTimeout(openTimerRef.current);
@@ -199,7 +275,7 @@ var TooltipProvider = (props) => {
199
275
  }, []);
200
276
  const { tx } = useThemeContext();
201
277
  const elevation = useElevationContext();
202
- return /* @__PURE__ */ React2.createElement(PopperPrimitive.Root, popperScope, /* @__PURE__ */ React2.createElement(TooltipContextProvider, {
278
+ return /* @__PURE__ */ React5.createElement(PopperPrimitive.Root, popperScope, /* @__PURE__ */ React5.createElement(TooltipContextProvider, {
203
279
  scope: __scopeTooltip,
204
280
  contentId,
205
281
  open,
@@ -235,21 +311,21 @@ var TooltipProvider = (props) => {
235
311
  onPointerInTransitChange: useCallback2((inTransit) => {
236
312
  isPointerInTransitRef.current = inTransit;
237
313
  }, [])
238
- }, /* @__PURE__ */ React2.createElement(TooltipContent, {
314
+ }, /* @__PURE__ */ React5.createElement(TooltipContent, {
239
315
  side,
240
- className: tx("tooltip.content", "tooltip", {
316
+ className: tx("tooltip.content", {
241
317
  elevation
242
318
  })
243
- }, content, /* @__PURE__ */ React2.createElement(TooltipArrow, {
244
- className: tx("tooltip.arrow", "tooltip__arrow")
245
- })), /* @__PURE__ */ React2.createElement(TooltipVirtualTrigger, {
319
+ }, content, /* @__PURE__ */ React5.createElement(TooltipArrow, {
320
+ className: tx("tooltip.arrow")
321
+ })), /* @__PURE__ */ React5.createElement(TooltipVirtualTrigger, {
246
322
  virtualRef: triggerRef
247
323
  }), children));
248
324
  };
249
325
  TooltipProvider.displayName = TOOLTIP_NAME;
250
326
  var TooltipVirtualTrigger = ({ virtualRef, __scopeTooltip }) => {
251
327
  const popperScope = usePopperScope(__scopeTooltip);
252
- return /* @__PURE__ */ React2.createElement(PopperPrimitive.Anchor, {
328
+ return /* @__PURE__ */ React5.createElement(PopperPrimitive.Anchor, {
253
329
  asChild: true,
254
330
  ...popperScope,
255
331
  virtualRef
@@ -272,18 +348,16 @@ var TooltipTrigger = /* @__PURE__ */ forwardRef((props, forwardedRef) => {
272
348
  const isPointerDownRef = useRef(false);
273
349
  const hasPointerMoveOpenedRef = useRef(false);
274
350
  const handlePointerUp = useCallback2(() => isPointerDownRef.current = false, []);
275
- useEffect2(() => {
351
+ useEffect3(() => {
276
352
  return () => document.removeEventListener("pointerup", handlePointerUp);
277
353
  }, [
278
354
  handlePointerUp
279
355
  ]);
280
- return /* @__PURE__ */ React2.createElement(Primitive.button, {
356
+ return /* @__PURE__ */ React5.createElement(Primitive.button, {
281
357
  // We purposefully avoid adding `type=button` here because tooltip triggers are also
282
358
  // commonly anchors and the anchor `type` attribute signifies MIME type.
283
359
  "aria-describedby": context.open ? context.contentId : void 0,
284
360
  "data-state": context.stateAttribute,
285
- "data-tooltip-content": content,
286
- "data-tooltip-side": side,
287
361
  ...triggerProps,
288
362
  ref: composedRefs,
289
363
  onPointerMove: composeEventHandlers(props.onPointerMove, (event) => {
@@ -295,7 +369,7 @@ var TooltipTrigger = /* @__PURE__ */ forwardRef((props, forwardedRef) => {
295
369
  if (event.defaultPrevented) {
296
370
  return;
297
371
  }
298
- context.onTriggerChange(ref.current);
372
+ context.onTriggerChange(ref.current, content, side);
299
373
  context.onTriggerEnter();
300
374
  hasPointerMoveOpenedRef.current = true;
301
375
  }
@@ -326,12 +400,12 @@ var [PortalProvider, usePortalContext] = createTooltipContext(PORTAL_NAME, {
326
400
  var TooltipPortal = (props) => {
327
401
  const { __scopeTooltip, forceMount, children, container } = props;
328
402
  const context = useTooltipContext(PORTAL_NAME, __scopeTooltip);
329
- return /* @__PURE__ */ React2.createElement(PortalProvider, {
403
+ return /* @__PURE__ */ React5.createElement(PortalProvider, {
330
404
  scope: __scopeTooltip,
331
405
  forceMount
332
- }, /* @__PURE__ */ React2.createElement(Presence, {
406
+ }, /* @__PURE__ */ React5.createElement(Presence, {
333
407
  present: forceMount || context.open
334
- }, /* @__PURE__ */ React2.createElement(PortalPrimitive, {
408
+ }, /* @__PURE__ */ React5.createElement(PortalPrimitive, {
335
409
  asChild: true,
336
410
  container
337
411
  }, children)));
@@ -342,13 +416,13 @@ var TooltipContent = /* @__PURE__ */ forwardRef((props, forwardedRef) => {
342
416
  const portalContext = usePortalContext(CONTENT_NAME, props.__scopeTooltip);
343
417
  const { forceMount = portalContext.forceMount, side = "top", ...contentProps } = props;
344
418
  const context = useTooltipContext(CONTENT_NAME, props.__scopeTooltip);
345
- return /* @__PURE__ */ React2.createElement(Presence, {
419
+ return /* @__PURE__ */ React5.createElement(Presence, {
346
420
  present: forceMount || context.open
347
- }, context.disableHoverableContent ? /* @__PURE__ */ React2.createElement(TooltipContentImpl, {
421
+ }, context.disableHoverableContent ? /* @__PURE__ */ React5.createElement(TooltipContentImpl, {
348
422
  side,
349
423
  ...contentProps,
350
424
  ref: forwardedRef
351
- }) : /* @__PURE__ */ React2.createElement(TooltipContentHoverable, {
425
+ }) : /* @__PURE__ */ React5.createElement(TooltipContentHoverable, {
352
426
  side,
353
427
  ...contentProps,
354
428
  ref: forwardedRef
@@ -386,12 +460,12 @@ var TooltipContentHoverable = /* @__PURE__ */ forwardRef((props, forwardedRef) =
386
460
  }, [
387
461
  onPointerInTransitChange
388
462
  ]);
389
- useEffect2(() => {
463
+ useEffect3(() => {
390
464
  return () => handleRemoveGraceArea();
391
465
  }, [
392
466
  handleRemoveGraceArea
393
467
  ]);
394
- useEffect2(() => {
468
+ useEffect3(() => {
395
469
  if (trigger && content) {
396
470
  const handleTriggerLeave = (event) => handleCreateGraceArea(event, content);
397
471
  const handleContentLeave = (event) => handleCreateGraceArea(event, trigger);
@@ -408,7 +482,7 @@ var TooltipContentHoverable = /* @__PURE__ */ forwardRef((props, forwardedRef) =
408
482
  handleCreateGraceArea,
409
483
  handleRemoveGraceArea
410
484
  ]);
411
- useEffect2(() => {
485
+ useEffect3(() => {
412
486
  if (pointerGraceArea) {
413
487
  const handleTrackPointerGrace = (event) => {
414
488
  const target = event.target;
@@ -435,7 +509,7 @@ var TooltipContentHoverable = /* @__PURE__ */ forwardRef((props, forwardedRef) =
435
509
  onClose,
436
510
  handleRemoveGraceArea
437
511
  ]);
438
- return /* @__PURE__ */ React2.createElement(TooltipContentImpl, {
512
+ return /* @__PURE__ */ React5.createElement(TooltipContentImpl, {
439
513
  ...props,
440
514
  ref: composedRefs
441
515
  });
@@ -448,13 +522,13 @@ var TooltipContentImpl = /* @__PURE__ */ forwardRef((props, forwardedRef) => {
448
522
  const context = useTooltipContext(CONTENT_NAME, __scopeTooltip);
449
523
  const popperScope = usePopperScope(__scopeTooltip);
450
524
  const { onClose } = context;
451
- useEffect2(() => {
525
+ useEffect3(() => {
452
526
  document.addEventListener(TOOLTIP_OPEN, onClose);
453
527
  return () => document.removeEventListener(TOOLTIP_OPEN, onClose);
454
528
  }, [
455
529
  onClose
456
530
  ]);
457
- useEffect2(() => {
531
+ useEffect3(() => {
458
532
  if (context.trigger) {
459
533
  const handleScroll = (event) => {
460
534
  const target = event.target;
@@ -473,14 +547,14 @@ var TooltipContentImpl = /* @__PURE__ */ forwardRef((props, forwardedRef) => {
473
547
  context.trigger,
474
548
  onClose
475
549
  ]);
476
- return /* @__PURE__ */ React2.createElement(DismissableLayer, {
550
+ return /* @__PURE__ */ React5.createElement(DismissableLayer, {
477
551
  asChild: true,
478
552
  disableOutsidePointerEvents: false,
479
553
  onEscapeKeyDown,
480
554
  onPointerDownOutside,
481
555
  onFocusOutside: (event) => event.preventDefault(),
482
556
  onDismiss: onClose
483
- }, /* @__PURE__ */ React2.createElement(PopperPrimitive.Content, {
557
+ }, /* @__PURE__ */ React5.createElement(PopperPrimitive.Content, {
484
558
  "data-state": context.stateAttribute,
485
559
  ...popperScope,
486
560
  ...contentProps,
@@ -496,10 +570,10 @@ var TooltipContentImpl = /* @__PURE__ */ forwardRef((props, forwardedRef) => {
496
570
  "--radix-tooltip-trigger-height": "var(--radix-popper-anchor-height)"
497
571
  }
498
572
  }
499
- }, /* @__PURE__ */ React2.createElement(Slottable, null, children), /* @__PURE__ */ React2.createElement(VisuallyHiddenContentContextProvider, {
573
+ }, /* @__PURE__ */ React5.createElement(Slottable, null, children), /* @__PURE__ */ React5.createElement(VisuallyHiddenContentContextProvider, {
500
574
  scope: __scopeTooltip,
501
575
  isInside: true
502
- }, /* @__PURE__ */ React2.createElement(VisuallyHiddenPrimitive.Root, {
576
+ }, /* @__PURE__ */ React5.createElement(VisuallyHiddenPrimitive.Root, {
503
577
  id: context.contentId,
504
578
  role: "tooltip"
505
579
  }, ariaLabel || children))));
@@ -510,7 +584,7 @@ var TooltipArrow = /* @__PURE__ */ forwardRef((props, forwardedRef) => {
510
584
  const { __scopeTooltip, ...arrowProps } = props;
511
585
  const popperScope = usePopperScope(__scopeTooltip);
512
586
  const visuallyHiddenContentContext = useVisuallyHiddenContentContext(ARROW_NAME, __scopeTooltip);
513
- return visuallyHiddenContentContext.isInside ? null : /* @__PURE__ */ React2.createElement(PopperPrimitive.Arrow, {
587
+ return visuallyHiddenContentContext.isInside ? null : /* @__PURE__ */ React5.createElement(PopperPrimitive.Arrow, {
514
588
  ...popperScope,
515
589
  ...arrowProps,
516
590
  ref: forwardedRef
@@ -675,77 +749,73 @@ var Tooltip = {
675
749
  Trigger: TooltipTrigger
676
750
  };
677
751
 
678
- // src/components/ThemeProvider/ThemeProvider.tsx
679
- import { createKeyborg } from "keyborg";
680
- import React5, { createContext as createContext4, useEffect as useEffect3, useMemo as useMemo2 } from "react";
681
-
682
- // src/util/hasIosKeyboard.ts
683
- var hasIosKeyboard = () => {
684
- return !!navigator.userAgent.match(/iP(ad|od|hone).+Safari/);
685
- };
686
-
687
- // src/components/DensityProvider/DensityProvider.tsx
688
- import React3, { createContext as createContext2 } from "react";
689
- var DensityContext = /* @__PURE__ */ createContext2({
690
- density: "fine"
691
- });
692
- var DensityProvider = ({ density, children }) => /* @__PURE__ */ React3.createElement(DensityContext.Provider, {
693
- value: {
694
- density
695
- }
696
- }, children);
697
-
698
- // src/components/ElevationProvider/ElevationProvider.tsx
699
- import React4, { createContext as createContext3 } from "react";
700
- var ElevationContext = /* @__PURE__ */ createContext3({
701
- elevation: "base"
702
- });
703
- var ElevationProvider = ({ elevation, children }) => /* @__PURE__ */ React4.createElement(ElevationContext.Provider, {
704
- value: {
705
- elevation
752
+ // src/components/ErrorFallback/ErrorStack.tsx
753
+ import ErrorStackParser from "error-stack-parser";
754
+ import React6 from "react";
755
+ import { mx } from "@dxos/ui-theme";
756
+ var parseCaptureOwnerStack = (stack) => {
757
+ if (stack == null || stack.length === 0) {
758
+ return null;
706
759
  }
707
- }, children);
708
-
709
- // src/components/ThemeProvider/ThemeProvider.tsx
710
- var ThemeContext = /* @__PURE__ */ createContext4(void 0);
711
- var ThemeProvider = ({ children, fallback = null, resourceExtensions, appNs, tx = (_path, defaultClassName, _styleProps, ..._options) => defaultClassName, themeMode = "dark", rootDensity = "fine", ...rest }) => {
712
- useEffect3(() => {
713
- if (document.defaultView) {
714
- const kb = createKeyborg(document.defaultView);
715
- kb.subscribe(handleInputModalityChange);
716
- return () => kb.unsubscribe(handleInputModalityChange);
760
+ const err = new Error();
761
+ err.stack = stack;
762
+ try {
763
+ return ErrorStackParser.parse(err);
764
+ } catch {
765
+ err.stack = `Error
766
+ ${stack}`;
767
+ try {
768
+ return ErrorStackParser.parse(err);
769
+ } catch {
770
+ return null;
717
771
  }
718
- }, []);
719
- const safeAreaPadding = useSafeArea();
720
- const contextValue = useMemo2(() => ({
721
- tx,
722
- themeMode,
723
- hasIosKeyboard: hasIosKeyboard(),
724
- safeAreaPadding,
725
- ...rest
726
- }), [
727
- tx,
728
- themeMode,
729
- safeAreaPadding,
730
- rest
731
- ]);
732
- return /* @__PURE__ */ React5.createElement(ThemeContext.Provider, {
733
- value: contextValue
734
- }, /* @__PURE__ */ React5.createElement(TranslationsProvider, {
735
- fallback,
736
- resourceExtensions,
737
- appNs
738
- }, /* @__PURE__ */ React5.createElement(ElevationProvider, {
739
- elevation: "base"
740
- }, /* @__PURE__ */ React5.createElement(DensityProvider, {
741
- density: rootDensity
742
- }, children))));
772
+ }
743
773
  };
744
- var handleInputModalityChange = (isUsingKeyboard) => {
745
- if (isUsingKeyboard) {
746
- document.body.setAttribute("data-is-keyboard", "true");
747
- } else {
748
- document.body.removeAttribute("data-is-keyboard");
774
+ var ErrorStack = ({ error, frames: framesProp }) => {
775
+ const frames = framesProp ?? (error ? ErrorStackParser.parse(error) : []);
776
+ if (frames.length === 0) {
777
+ return null;
778
+ }
779
+ return /* @__PURE__ */ React6.createElement("div", {
780
+ className: "font-mono text-sm"
781
+ }, frames.map((frame, i) => {
782
+ const isLast = i === frames.length - 1;
783
+ const local = frame.fileName ? parseLocalFrame(frame.fileName, frame.lineNumber, frame.columnNumber) : void 0;
784
+ const name = frame.functionName ?? "<anonymous>";
785
+ return /* @__PURE__ */ React6.createElement("div", {
786
+ key: i,
787
+ className: mx("grid grid-cols-[16px_1fr_auto_auto] items-stretch gap-x-2", local && "cursor-pointer hover:bg-hover-surface")
788
+ }, /* @__PURE__ */ React6.createElement("div", {
789
+ className: "relative"
790
+ }, /* @__PURE__ */ React6.createElement("div", {
791
+ className: mx("absolute left-1/2 -translate-x-1/2 w-px bg-neutral-500", isLast ? "top-0 h-1/2" : "inset-y-0")
792
+ }), /* @__PURE__ */ React6.createElement("div", {
793
+ className: "absolute top-1/2 -translate-y-1/2 left-1/2 right-0 h-px bg-neutral-500"
794
+ })), local ? /* @__PURE__ */ React6.createElement("a", {
795
+ href: local.href,
796
+ className: "truncate self-center"
797
+ }, name) : /* @__PURE__ */ React6.createElement("span", {
798
+ className: "text-subdued truncate self-center"
799
+ }, name), /* @__PURE__ */ React6.createElement("span", {
800
+ className: "text-xs text-subdued truncate self-center"
801
+ }, local?.fileName ?? ""), /* @__PURE__ */ React6.createElement("span", {
802
+ className: "text-xs text-subdued text-right self-center"
803
+ }, local ? `${frame.lineNumber}:${frame.columnNumber}` : ""));
804
+ }));
805
+ };
806
+ var parseLocalFrame = (fileUrl, line, col) => {
807
+ try {
808
+ const { pathname } = new URL(fileUrl);
809
+ if (!pathname.startsWith("/@fs/")) {
810
+ return void 0;
811
+ }
812
+ const localPath = pathname.slice(4);
813
+ return {
814
+ href: `vscode://file/${localPath}:${line ?? 1}:${col ?? 1}`,
815
+ fileName: pathname.split("/").pop() ?? localPath
816
+ };
817
+ } catch {
818
+ return void 0;
749
819
  }
750
820
  };
751
821
 
@@ -756,21 +826,23 @@ var useElevationContext = (propsElevation) => {
756
826
  };
757
827
 
758
828
  export {
829
+ DensityContext,
830
+ DensityProvider,
831
+ ElevationContext,
832
+ ElevationProvider,
759
833
  useElevationContext,
760
834
  useThemeContext,
761
835
  initialSafeArea,
762
836
  useSafeArea,
763
837
  TranslationsContext,
764
838
  useTranslation,
839
+ hasIosKeyboard,
840
+ ThemeContext,
841
+ ThemeProvider,
765
842
  createTooltipScope,
766
843
  useTooltipContext,
767
844
  Tooltip,
768
- hasIosKeyboard,
769
- DensityContext,
770
- DensityProvider,
771
- ElevationContext,
772
- ElevationProvider,
773
- ThemeContext,
774
- ThemeProvider
845
+ parseCaptureOwnerStack,
846
+ ErrorStack
775
847
  };
776
- //# sourceMappingURL=chunk-YTLZCZ2M.mjs.map
848
+ //# sourceMappingURL=chunk-NGKLIKP3.mjs.map