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