@dxos/react-ui 0.8.4-main.b97322e → 0.8.4-main.bcb3aa67d6

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 (474) hide show
  1. package/dist/lib/browser/chunk-LUPEFGHJ.mjs +776 -0
  2. package/dist/lib/browser/chunk-LUPEFGHJ.mjs.map +7 -0
  3. package/dist/lib/browser/index.mjs +4170 -61
  4. package/dist/lib/browser/index.mjs.map +4 -4
  5. package/dist/lib/browser/meta.json +1 -1
  6. package/dist/lib/browser/testing/index.mjs +99 -60
  7. package/dist/lib/browser/testing/index.mjs.map +4 -4
  8. package/dist/lib/node-esm/chunk-EQOBFLZC.mjs +778 -0
  9. package/dist/lib/node-esm/chunk-EQOBFLZC.mjs.map +7 -0
  10. package/dist/lib/node-esm/index.mjs +4170 -61
  11. package/dist/lib/node-esm/index.mjs.map +4 -4
  12. package/dist/lib/node-esm/meta.json +1 -1
  13. package/dist/lib/node-esm/testing/index.mjs +99 -60
  14. package/dist/lib/node-esm/testing/index.mjs.map +4 -4
  15. package/dist/types/src/components/Avatars/Avatar.d.ts +1 -1
  16. package/dist/types/src/components/Avatars/Avatar.d.ts.map +1 -1
  17. package/dist/types/src/components/Avatars/Avatar.stories.d.ts +5 -31
  18. package/dist/types/src/components/Avatars/Avatar.stories.d.ts.map +1 -1
  19. package/dist/types/src/components/Avatars/AvatarGroup.stories.d.ts +5 -11
  20. package/dist/types/src/components/Avatars/AvatarGroup.stories.d.ts.map +1 -1
  21. package/dist/types/src/components/Breadcrumb/Breadcrumb.d.ts +1 -1
  22. package/dist/types/src/components/Breadcrumb/Breadcrumb.d.ts.map +1 -1
  23. package/dist/types/src/components/Breadcrumb/Breadcrumb.stories.d.ts +8 -20
  24. package/dist/types/src/components/Breadcrumb/Breadcrumb.stories.d.ts.map +1 -1
  25. package/dist/types/src/components/{Buttons → Button}/Button.d.ts +4 -4
  26. package/dist/types/src/components/Button/Button.d.ts.map +1 -0
  27. package/dist/types/src/components/Button/Button.stories.d.ts +17 -0
  28. package/dist/types/src/components/Button/Button.stories.d.ts.map +1 -0
  29. package/dist/types/src/components/{Buttons → Button}/IconButton.d.ts +4 -4
  30. package/dist/types/src/components/Button/IconButton.d.ts.map +1 -0
  31. package/dist/types/src/components/Button/IconButton.stories.d.ts +16 -0
  32. package/dist/types/src/components/Button/IconButton.stories.d.ts.map +1 -0
  33. package/dist/types/src/components/{Buttons → Button}/Toggle.d.ts +2 -2
  34. package/dist/types/src/components/Button/Toggle.d.ts.map +1 -0
  35. package/dist/types/src/components/Button/Toggle.stories.d.ts +16 -0
  36. package/dist/types/src/components/Button/Toggle.stories.d.ts.map +1 -0
  37. package/dist/types/src/components/Button/ToggleGroup.d.ts +27 -0
  38. package/dist/types/src/components/Button/ToggleGroup.d.ts.map +1 -0
  39. package/dist/types/src/components/Button/ToggleGroup.stories.d.ts +27 -0
  40. package/dist/types/src/components/Button/ToggleGroup.stories.d.ts.map +1 -0
  41. package/dist/types/src/components/Button/index.d.ts.map +1 -0
  42. package/dist/types/src/components/Card/Card.d.ts +150 -0
  43. package/dist/types/src/components/Card/Card.d.ts.map +1 -0
  44. package/dist/types/src/components/Card/Card.stories.d.ts +21 -0
  45. package/dist/types/src/components/Card/Card.stories.d.ts.map +1 -0
  46. package/dist/types/src/components/Card/index.d.ts +2 -0
  47. package/dist/types/src/components/Card/index.d.ts.map +1 -0
  48. package/dist/types/src/components/Clipboard/ClipboardProvider.d.ts.map +1 -1
  49. package/dist/types/src/components/Clipboard/CopyButton.d.ts +1 -1
  50. package/dist/types/src/components/Clipboard/CopyButton.d.ts.map +1 -1
  51. package/dist/types/src/components/Clipboard/index.d.ts +10 -1
  52. package/dist/types/src/components/Clipboard/index.d.ts.map +1 -1
  53. package/dist/types/src/components/DensityProvider/DensityProvider.d.ts +1 -1
  54. package/dist/types/src/components/DensityProvider/DensityProvider.d.ts.map +1 -1
  55. package/dist/types/src/components/Dialog/AlertDialog.d.ts +53 -0
  56. package/dist/types/src/components/Dialog/AlertDialog.d.ts.map +1 -0
  57. package/dist/types/src/components/Dialog/AlertDialog.stories.d.ts +11 -0
  58. package/dist/types/src/components/Dialog/AlertDialog.stories.d.ts.map +1 -0
  59. package/dist/types/src/components/Dialog/Dialog.d.ts +66 -0
  60. package/dist/types/src/components/Dialog/Dialog.d.ts.map +1 -0
  61. package/dist/types/src/components/Dialog/Dialog.stories.d.ts +25 -0
  62. package/dist/types/src/components/Dialog/Dialog.stories.d.ts.map +1 -0
  63. package/dist/types/src/components/Dialog/index.d.ts.map +1 -0
  64. package/dist/types/src/components/ElevationProvider/ElevationProvider.d.ts +1 -1
  65. package/dist/types/src/components/ElevationProvider/ElevationProvider.d.ts.map +1 -1
  66. package/dist/types/src/components/ErrorFallback/ErrorFallback.d.ts +11 -0
  67. package/dist/types/src/components/ErrorFallback/ErrorFallback.d.ts.map +1 -0
  68. package/dist/types/src/components/ErrorFallback/ErrorFallback.stories.d.ts +7 -0
  69. package/dist/types/src/components/ErrorFallback/ErrorFallback.stories.d.ts.map +1 -0
  70. package/dist/types/src/components/ErrorFallback/ErrorStack.d.ts +8 -0
  71. package/dist/types/src/components/ErrorFallback/ErrorStack.d.ts.map +1 -0
  72. package/dist/types/src/components/ErrorFallback/ThrowError.d.ts +9 -0
  73. package/dist/types/src/components/ErrorFallback/ThrowError.d.ts.map +1 -0
  74. package/dist/types/src/components/ErrorFallback/index.d.ts +5 -0
  75. package/dist/types/src/components/ErrorFallback/index.d.ts.map +1 -0
  76. package/dist/types/src/components/Focus/Focus.d.ts +44 -0
  77. package/dist/types/src/components/Focus/Focus.d.ts.map +1 -0
  78. package/dist/types/src/components/Focus/Focus.stories.d.ts +9 -0
  79. package/dist/types/src/components/Focus/Focus.stories.d.ts.map +1 -0
  80. package/dist/types/src/components/Focus/index.d.ts +2 -0
  81. package/dist/types/src/components/Focus/index.d.ts.map +1 -0
  82. package/dist/types/src/components/Icon/Icon.d.ts +5 -2
  83. package/dist/types/src/components/Icon/Icon.d.ts.map +1 -1
  84. package/dist/types/src/components/Icon/Icon.stories.d.ts +25 -0
  85. package/dist/types/src/components/Icon/Icon.stories.d.ts.map +1 -0
  86. package/dist/types/src/components/Image/Image.d.ts +14 -0
  87. package/dist/types/src/components/Image/Image.d.ts.map +1 -0
  88. package/dist/types/src/components/Image/Image.stories.d.ts +33 -0
  89. package/dist/types/src/components/Image/Image.stories.d.ts.map +1 -0
  90. package/dist/types/src/components/Image/index.d.ts +2 -0
  91. package/dist/types/src/components/Image/index.d.ts.map +1 -0
  92. package/dist/types/src/components/Input/Input.d.ts +8 -10
  93. package/dist/types/src/components/Input/Input.d.ts.map +1 -1
  94. package/dist/types/src/components/Input/Input.stories.d.ts +17 -18
  95. package/dist/types/src/components/Input/Input.stories.d.ts.map +1 -1
  96. package/dist/types/src/components/Link/Link.stories.d.ts +8 -8
  97. package/dist/types/src/components/Link/Link.stories.d.ts.map +1 -1
  98. package/dist/types/src/components/{Lists → List}/List.d.ts +12 -6
  99. package/dist/types/src/components/List/List.d.ts.map +1 -0
  100. package/dist/types/src/components/List/List.stories.d.ts +20 -0
  101. package/dist/types/src/components/List/List.stories.d.ts.map +1 -0
  102. package/dist/types/src/components/List/ListDropIndicator.d.ts.map +1 -0
  103. package/dist/types/src/components/{Lists → List}/Tree.d.ts +1 -1
  104. package/dist/types/src/components/List/Tree.d.ts.map +1 -0
  105. package/dist/types/src/components/List/Tree.stories.d.ts +15 -0
  106. package/dist/types/src/components/List/Tree.stories.d.ts.map +1 -0
  107. package/dist/types/src/components/List/TreeDropIndicator.d.ts.map +1 -0
  108. package/dist/types/src/components/{Lists → List}/Treegrid.d.ts +10 -10
  109. package/dist/types/src/components/List/Treegrid.d.ts.map +1 -0
  110. package/dist/types/src/components/List/Treegrid.stories.d.ts +12 -0
  111. package/dist/types/src/components/List/Treegrid.stories.d.ts.map +1 -0
  112. package/dist/types/src/components/List/index.d.ts.map +1 -0
  113. package/dist/types/src/components/Main/Main.d.ts +18 -28
  114. package/dist/types/src/components/Main/Main.d.ts.map +1 -1
  115. package/dist/types/src/components/Main/Main.stories.d.ts +6 -10
  116. package/dist/types/src/components/Main/Main.stories.d.ts.map +1 -1
  117. package/dist/types/src/components/{Menus → Menu}/ContextMenu.d.ts +6 -6
  118. package/dist/types/src/components/Menu/ContextMenu.d.ts.map +1 -0
  119. package/dist/types/src/components/Menu/ContextMenu.stories.d.ts +12 -0
  120. package/dist/types/src/components/Menu/ContextMenu.stories.d.ts.map +1 -0
  121. package/dist/types/src/components/Menu/DropdownMenu.d.ts +113 -0
  122. package/dist/types/src/components/Menu/DropdownMenu.d.ts.map +1 -0
  123. package/dist/types/src/components/Menu/DropdownMenu.stories.d.ts +28 -0
  124. package/dist/types/src/components/Menu/DropdownMenu.stories.d.ts.map +1 -0
  125. package/dist/types/src/components/Menu/index.d.ts.map +1 -0
  126. package/dist/types/src/components/Message/Message.d.ts +1 -1
  127. package/dist/types/src/components/Message/Message.d.ts.map +1 -1
  128. package/dist/types/src/components/Message/Message.stories.d.ts +12 -22
  129. package/dist/types/src/components/Message/Message.stories.d.ts.map +1 -1
  130. package/dist/types/src/components/Popover/Popover.d.ts +34 -25
  131. package/dist/types/src/components/Popover/Popover.d.ts.map +1 -1
  132. package/dist/types/src/components/Popover/Popover.stories.d.ts +6 -34
  133. package/dist/types/src/components/Popover/Popover.stories.d.ts.map +1 -1
  134. package/dist/types/src/components/ScrollArea/ScrollArea.d.ts +32 -24
  135. package/dist/types/src/components/ScrollArea/ScrollArea.d.ts.map +1 -1
  136. package/dist/types/src/components/ScrollArea/ScrollArea.stories.d.ts +55 -24
  137. package/dist/types/src/components/ScrollArea/ScrollArea.stories.d.ts.map +1 -1
  138. package/dist/types/src/components/ScrollContainer/ScrollContainer.d.ts +72 -0
  139. package/dist/types/src/components/ScrollContainer/ScrollContainer.d.ts.map +1 -0
  140. package/dist/types/src/components/ScrollContainer/ScrollContainer.stories.d.ts +23 -0
  141. package/dist/types/src/components/ScrollContainer/ScrollContainer.stories.d.ts.map +1 -0
  142. package/dist/types/src/components/ScrollContainer/index.d.ts +2 -0
  143. package/dist/types/src/components/ScrollContainer/index.d.ts.map +1 -0
  144. package/dist/types/src/components/Select/Select.d.ts +10 -10
  145. package/dist/types/src/components/Select/Select.d.ts.map +1 -1
  146. package/dist/types/src/components/Select/Select.stories.d.ts +6 -11
  147. package/dist/types/src/components/Select/Select.stories.d.ts.map +1 -1
  148. package/dist/types/src/components/Separator/Separator.d.ts +4 -4
  149. package/dist/types/src/components/Separator/Separator.d.ts.map +1 -1
  150. package/dist/types/src/components/Skeleton/Skeleton.d.ts +12 -0
  151. package/dist/types/src/components/Skeleton/Skeleton.d.ts.map +1 -0
  152. package/dist/types/src/components/Skeleton/Skeleton.stories.d.ts +17 -0
  153. package/dist/types/src/components/Skeleton/Skeleton.stories.d.ts.map +1 -0
  154. package/dist/types/src/components/Skeleton/index.d.ts +2 -0
  155. package/dist/types/src/components/Skeleton/index.d.ts.map +1 -0
  156. package/dist/types/src/components/Splitter/Splitter.d.ts +37 -0
  157. package/dist/types/src/components/Splitter/Splitter.d.ts.map +1 -0
  158. package/dist/types/src/components/Splitter/Splitter.stories.d.ts +7 -0
  159. package/dist/types/src/components/Splitter/Splitter.stories.d.ts.map +1 -0
  160. package/dist/types/src/components/Splitter/index.d.ts +2 -0
  161. package/dist/types/src/components/Splitter/index.d.ts.map +1 -0
  162. package/dist/types/src/components/Status/Status.d.ts +3 -4
  163. package/dist/types/src/components/Status/Status.d.ts.map +1 -1
  164. package/dist/types/src/components/Status/Status.stories.d.ts +6 -10
  165. package/dist/types/src/components/Status/Status.stories.d.ts.map +1 -1
  166. package/dist/types/src/components/Tag/Tag.d.ts +1 -1
  167. package/dist/types/src/components/Tag/Tag.d.ts.map +1 -1
  168. package/dist/types/src/components/Tag/Tag.stories.d.ts +8 -13
  169. package/dist/types/src/components/Tag/Tag.stories.d.ts.map +1 -1
  170. package/dist/types/src/components/ThemeProvider/ThemeProvider.d.ts +4 -4
  171. package/dist/types/src/components/ThemeProvider/ThemeProvider.d.ts.map +1 -1
  172. package/dist/types/src/components/ThemeProvider/ThemeProvider.stories.d.ts +12 -0
  173. package/dist/types/src/components/ThemeProvider/ThemeProvider.stories.d.ts.map +1 -0
  174. package/dist/types/src/components/ThemeProvider/TranslationsProvider.d.ts +1 -8
  175. package/dist/types/src/components/ThemeProvider/TranslationsProvider.d.ts.map +1 -1
  176. package/dist/types/src/components/ThemeProvider/index.d.ts +2 -1
  177. package/dist/types/src/components/ThemeProvider/index.d.ts.map +1 -1
  178. package/dist/types/src/components/Toast/Toast.d.ts +19 -19
  179. package/dist/types/src/components/Toast/Toast.d.ts.map +1 -1
  180. package/dist/types/src/components/Toast/Toast.stories.d.ts +6 -44
  181. package/dist/types/src/components/Toast/Toast.stories.d.ts.map +1 -1
  182. package/dist/types/src/components/Toolbar/Toolbar.d.ts +46 -20
  183. package/dist/types/src/components/Toolbar/Toolbar.d.ts.map +1 -1
  184. package/dist/types/src/components/Toolbar/Toolbar.stories.d.ts +6 -50
  185. package/dist/types/src/components/Toolbar/Toolbar.stories.d.ts.map +1 -1
  186. package/dist/types/src/components/Tooltip/Tooltip.d.ts +10 -12
  187. package/dist/types/src/components/Tooltip/Tooltip.d.ts.map +1 -1
  188. package/dist/types/src/components/Tooltip/Tooltip.stories.d.ts +10 -63
  189. package/dist/types/src/components/Tooltip/Tooltip.stories.d.ts.map +1 -1
  190. package/dist/types/src/components/index.d.ts +14 -8
  191. package/dist/types/src/components/index.d.ts.map +1 -1
  192. package/dist/types/src/exemplars/generics.stories.d.ts +23 -0
  193. package/dist/types/src/exemplars/generics.stories.d.ts.map +1 -0
  194. package/dist/types/src/exemplars/slot.stories.d.ts +15 -0
  195. package/dist/types/src/exemplars/slot.stories.d.ts.map +1 -0
  196. package/dist/types/src/exemplars/tabster.stories.d.ts +8 -0
  197. package/dist/types/src/exemplars/tabster.stories.d.ts.map +1 -0
  198. package/dist/types/src/exemplars/virtualizer.stories.d.ts +11 -0
  199. package/dist/types/src/exemplars/virtualizer.stories.d.ts.map +1 -0
  200. package/dist/types/src/hooks/index.d.ts +1 -0
  201. package/dist/types/src/hooks/index.d.ts.map +1 -1
  202. package/dist/types/src/hooks/useDensityContext.d.ts +2 -2
  203. package/dist/types/src/hooks/useDensityContext.d.ts.map +1 -1
  204. package/dist/types/src/hooks/useElevationContext.d.ts +1 -1
  205. package/dist/types/src/hooks/useElevationContext.d.ts.map +1 -1
  206. package/dist/types/src/hooks/useSafeArea.d.ts.map +1 -1
  207. package/dist/types/src/hooks/useVisualViewport.d.ts +2 -2
  208. package/dist/types/src/hooks/useVisualViewport.d.ts.map +1 -1
  209. package/dist/types/src/index.d.ts +2 -1
  210. package/dist/types/src/index.d.ts.map +1 -1
  211. package/dist/types/src/playground/Controls.stories.d.ts +5 -9
  212. package/dist/types/src/playground/Controls.stories.d.ts.map +1 -1
  213. package/dist/types/src/playground/Custom.stories.d.ts +12 -4
  214. package/dist/types/src/playground/Custom.stories.d.ts.map +1 -1
  215. package/dist/types/src/playground/Typography.stories.d.ts +5 -11
  216. package/dist/types/src/playground/Typography.stories.d.ts.map +1 -1
  217. package/dist/types/src/primitives/Column/Column.d.ts +51 -0
  218. package/dist/types/src/primitives/Column/Column.d.ts.map +1 -0
  219. package/dist/types/src/primitives/Column/Column.stories.d.ts +25 -0
  220. package/dist/types/src/primitives/Column/Column.stories.d.ts.map +1 -0
  221. package/dist/types/src/primitives/Column/index.d.ts +2 -0
  222. package/dist/types/src/primitives/Column/index.d.ts.map +1 -0
  223. package/dist/types/src/primitives/Container/Container.d.ts +11 -0
  224. package/dist/types/src/primitives/Container/Container.d.ts.map +1 -0
  225. package/dist/types/src/primitives/Container/Container.stories.d.ts +6 -0
  226. package/dist/types/src/primitives/Container/Container.stories.d.ts.map +1 -0
  227. package/dist/types/src/primitives/Container/index.d.ts +2 -0
  228. package/dist/types/src/primitives/Container/index.d.ts.map +1 -0
  229. package/dist/types/src/primitives/Flex/Flex.d.ts +15 -0
  230. package/dist/types/src/primitives/Flex/Flex.d.ts.map +1 -0
  231. package/dist/types/src/primitives/Flex/Flex.stories.d.ts +8 -0
  232. package/dist/types/src/primitives/Flex/Flex.stories.d.ts.map +1 -0
  233. package/dist/types/src/primitives/Flex/index.d.ts +2 -0
  234. package/dist/types/src/primitives/Flex/index.d.ts.map +1 -0
  235. package/dist/types/src/primitives/Grid/Grid.d.ts +14 -0
  236. package/dist/types/src/primitives/Grid/Grid.d.ts.map +1 -0
  237. package/dist/types/src/primitives/Grid/Grid.stories.d.ts +8 -0
  238. package/dist/types/src/primitives/Grid/Grid.stories.d.ts.map +1 -0
  239. package/dist/types/src/primitives/Grid/index.d.ts +2 -0
  240. package/dist/types/src/primitives/Grid/index.d.ts.map +1 -0
  241. package/dist/types/src/primitives/Panel/Panel.d.ts +46 -0
  242. package/dist/types/src/primitives/Panel/Panel.d.ts.map +1 -0
  243. package/dist/types/src/primitives/Panel/Panel.stories.d.ts +6 -0
  244. package/dist/types/src/primitives/Panel/Panel.stories.d.ts.map +1 -0
  245. package/dist/types/src/primitives/Panel/index.d.ts +2 -0
  246. package/dist/types/src/primitives/Panel/index.d.ts.map +1 -0
  247. package/dist/types/src/primitives/index.d.ts +6 -0
  248. package/dist/types/src/primitives/index.d.ts.map +1 -0
  249. package/dist/types/src/testing/Loading.d.ts +9 -0
  250. package/dist/types/src/testing/Loading.d.ts.map +1 -0
  251. package/dist/types/src/testing/decorators/index.d.ts +2 -1
  252. package/dist/types/src/testing/decorators/index.d.ts.map +1 -1
  253. package/dist/types/src/testing/decorators/withLayout.d.ts +15 -0
  254. package/dist/types/src/testing/decorators/withLayout.d.ts.map +1 -0
  255. package/dist/types/src/testing/decorators/withLayoutVariants.d.ts +12 -0
  256. package/dist/types/src/testing/decorators/withLayoutVariants.d.ts.map +1 -0
  257. package/dist/types/src/testing/decorators/withTheme.d.ts +5 -1
  258. package/dist/types/src/testing/decorators/withTheme.d.ts.map +1 -1
  259. package/dist/types/src/testing/index.d.ts +1 -0
  260. package/dist/types/src/testing/index.d.ts.map +1 -1
  261. package/dist/types/src/translations.d.ts +11 -0
  262. package/dist/types/src/translations.d.ts.map +1 -0
  263. package/dist/types/src/util/index.d.ts +2 -1
  264. package/dist/types/src/util/index.d.ts.map +1 -1
  265. package/dist/types/src/util/usePx.d.ts +8 -0
  266. package/dist/types/src/util/usePx.d.ts.map +1 -0
  267. package/dist/types/tsconfig.tsbuildinfo +1 -1
  268. package/package.json +45 -32
  269. package/src/components/Avatars/Avatar.stories.tsx +24 -16
  270. package/src/components/Avatars/Avatar.tsx +9 -16
  271. package/src/components/Avatars/AvatarGroup.stories.tsx +12 -8
  272. package/src/components/Breadcrumb/Breadcrumb.stories.tsx +20 -15
  273. package/src/components/Breadcrumb/Breadcrumb.tsx +12 -38
  274. package/src/components/{Buttons → Button}/Button.stories.tsx +10 -11
  275. package/src/components/{Buttons → Button}/Button.tsx +12 -26
  276. package/src/components/{Buttons → Button}/IconButton.stories.tsx +19 -13
  277. package/src/components/{Buttons → Button}/IconButton.tsx +22 -16
  278. package/src/components/Button/Toggle.stories.tsx +37 -0
  279. package/src/components/{Buttons → Button}/Toggle.tsx +4 -4
  280. package/src/components/{Buttons → Button}/ToggleGroup.stories.tsx +12 -9
  281. package/src/components/Button/ToggleGroup.tsx +50 -0
  282. package/src/components/Card/Card.stories.tsx +151 -0
  283. package/src/components/Card/Card.tsx +492 -0
  284. package/src/components/Card/index.ts +5 -0
  285. package/src/components/Clipboard/ClipboardProvider.tsx +1 -1
  286. package/src/components/Clipboard/CopyButton.tsx +10 -9
  287. package/src/components/DensityProvider/DensityProvider.tsx +2 -2
  288. package/src/components/Dialog/AlertDialog.stories.tsx +69 -0
  289. package/src/components/Dialog/AlertDialog.tsx +214 -0
  290. package/src/components/Dialog/Dialog.stories.tsx +178 -0
  291. package/src/components/Dialog/Dialog.tsx +285 -0
  292. package/src/components/ElevationProvider/ElevationProvider.tsx +2 -2
  293. package/src/components/ErrorFallback/ErrorFallback.stories.tsx +50 -0
  294. package/src/components/ErrorFallback/ErrorFallback.tsx +70 -0
  295. package/src/components/ErrorFallback/ErrorStack.tsx +80 -0
  296. package/src/components/ErrorFallback/ThrowError.tsx +37 -0
  297. package/src/components/ErrorFallback/index.ts +9 -0
  298. package/src/components/Focus/AUDIT.md +43 -0
  299. package/src/components/Focus/Focus.stories.tsx +230 -0
  300. package/src/components/Focus/Focus.tsx +201 -0
  301. package/src/components/Focus/index.ts +5 -0
  302. package/src/components/Icon/Icon.stories.tsx +144 -0
  303. package/src/components/Icon/Icon.tsx +6 -2
  304. package/src/components/Image/Image.stories.tsx +86 -0
  305. package/src/components/Image/Image.tsx +223 -0
  306. package/src/components/Image/index.ts +5 -0
  307. package/src/components/Input/Input.stories.tsx +28 -49
  308. package/src/components/Input/Input.tsx +49 -85
  309. package/src/components/Link/Link.stories.tsx +12 -8
  310. package/src/components/Link/Link.tsx +2 -2
  311. package/src/components/{Lists → List}/List.stories.tsx +44 -45
  312. package/src/components/{Lists → List}/List.tsx +32 -31
  313. package/src/components/{Lists → List}/ListDropIndicator.tsx +7 -7
  314. package/src/components/{Lists → List}/Tree.stories.tsx +16 -13
  315. package/src/components/{Lists → List}/Tree.tsx +4 -3
  316. package/src/components/{Lists → List}/TreeDropIndicator.tsx +7 -7
  317. package/src/components/{Lists → List}/Treegrid.stories.tsx +17 -11
  318. package/src/components/List/Treegrid.tsx +188 -0
  319. package/src/components/Main/Main.stories.tsx +53 -27
  320. package/src/components/Main/Main.tsx +177 -105
  321. package/src/components/{Menus → Menu}/ContextMenu.stories.tsx +13 -10
  322. package/src/components/{Menus → Menu}/ContextMenu.tsx +10 -33
  323. package/src/components/{Menus → Menu}/DropdownMenu.stories.tsx +14 -11
  324. package/src/components/{Menus → Menu}/DropdownMenu.tsx +157 -120
  325. package/src/components/Message/Message.stories.tsx +37 -18
  326. package/src/components/Message/Message.tsx +43 -34
  327. package/src/components/Popover/Popover.stories.tsx +16 -13
  328. package/src/components/Popover/Popover.tsx +124 -102
  329. package/src/components/ScrollArea/ScrollArea.stories.tsx +224 -31
  330. package/src/components/ScrollArea/ScrollArea.tsx +97 -79
  331. package/src/components/ScrollArea/index.ts +1 -1
  332. package/src/components/ScrollContainer/ScrollContainer.stories.tsx +92 -0
  333. package/src/components/ScrollContainer/ScrollContainer.tsx +347 -0
  334. package/src/components/ScrollContainer/index.ts +5 -0
  335. package/src/components/Select/Select.stories.tsx +17 -14
  336. package/src/components/Select/Select.tsx +16 -31
  337. package/src/components/Separator/Separator.tsx +5 -8
  338. package/src/components/Skeleton/Skeleton.stories.tsx +52 -0
  339. package/src/components/Skeleton/Skeleton.tsx +26 -0
  340. package/src/components/Skeleton/index.ts +5 -0
  341. package/src/components/Splitter/Splitter.stories.tsx +83 -0
  342. package/src/components/Splitter/Splitter.tsx +139 -0
  343. package/src/components/Splitter/index.ts +5 -0
  344. package/src/components/Status/Status.stories.tsx +30 -23
  345. package/src/components/Status/Status.tsx +10 -7
  346. package/src/components/Tag/Tag.stories.tsx +17 -13
  347. package/src/components/Tag/Tag.tsx +3 -8
  348. package/src/components/ThemeProvider/ThemeProvider.stories.tsx +32 -0
  349. package/src/components/ThemeProvider/ThemeProvider.tsx +12 -10
  350. package/src/components/ThemeProvider/TranslationsProvider.tsx +3 -18
  351. package/src/components/ThemeProvider/index.ts +3 -3
  352. package/src/components/Toast/Toast.stories.tsx +14 -11
  353. package/src/components/Toast/Toast.tsx +23 -42
  354. package/src/components/Toolbar/Toolbar.stories.tsx +16 -14
  355. package/src/components/Toolbar/Toolbar.tsx +188 -13
  356. package/src/components/Tooltip/Tooltip.stories.tsx +32 -26
  357. package/src/components/Tooltip/Tooltip.tsx +44 -41
  358. package/src/components/index.ts +15 -9
  359. package/src/exemplars/generics.stories.tsx +41 -0
  360. package/src/exemplars/slot.stories.tsx +117 -0
  361. package/src/exemplars/tabster.stories.tsx +127 -0
  362. package/src/exemplars/virtualizer.stories.tsx +137 -0
  363. package/src/hooks/index.ts +1 -0
  364. package/src/hooks/useDensityContext.ts +3 -3
  365. package/src/hooks/useElevationContext.ts +1 -1
  366. package/src/hooks/useSafeArea.ts +3 -2
  367. package/src/hooks/useVisualViewport.ts +4 -4
  368. package/src/index.ts +2 -1
  369. package/src/playground/Controls.stories.tsx +12 -15
  370. package/src/playground/Custom.stories.tsx +17 -38
  371. package/src/playground/Typography.stories.tsx +11 -9
  372. package/src/primitives/Column/AUDIT.md +354 -0
  373. package/src/primitives/Column/Column.stories.tsx +183 -0
  374. package/src/primitives/Column/Column.tsx +169 -0
  375. package/src/primitives/Column/index.ts +5 -0
  376. package/src/primitives/Container/Container.stories.tsx +30 -0
  377. package/src/primitives/Container/Container.tsx +19 -0
  378. package/src/primitives/Container/index.ts +5 -0
  379. package/src/primitives/Flex/Flex.stories.tsx +58 -0
  380. package/src/primitives/Flex/Flex.tsx +27 -0
  381. package/src/primitives/Flex/index.ts +5 -0
  382. package/src/primitives/Grid/Grid.stories.tsx +57 -0
  383. package/src/primitives/Grid/Grid.tsx +30 -0
  384. package/src/primitives/Grid/index.ts +5 -0
  385. package/src/primitives/Panel/Panel.stories.tsx +69 -0
  386. package/src/primitives/Panel/Panel.tsx +114 -0
  387. package/src/primitives/Panel/index.ts +5 -0
  388. package/src/primitives/index.ts +9 -0
  389. package/src/testing/Loading.tsx +26 -0
  390. package/src/testing/decorators/index.ts +2 -1
  391. package/src/testing/decorators/withLayout.tsx +77 -0
  392. package/src/testing/decorators/withLayoutVariants.tsx +48 -0
  393. package/src/testing/decorators/withTheme.tsx +37 -0
  394. package/src/testing/index.ts +2 -0
  395. package/src/translations.ts +19 -0
  396. package/src/util/index.ts +3 -1
  397. package/src/util/usePx.ts +62 -0
  398. package/dist/lib/browser/chunk-2COVUP44.mjs +0 -4373
  399. package/dist/lib/browser/chunk-2COVUP44.mjs.map +0 -7
  400. package/dist/lib/node-esm/chunk-GHXHND5V.mjs +0 -4375
  401. package/dist/lib/node-esm/chunk-GHXHND5V.mjs.map +0 -7
  402. package/dist/types/src/components/AnchoredOverflow/AnchoredOverflow.d.ts +0 -15
  403. package/dist/types/src/components/AnchoredOverflow/AnchoredOverflow.d.ts.map +0 -1
  404. package/dist/types/src/components/AnchoredOverflow/index.d.ts +0 -2
  405. package/dist/types/src/components/AnchoredOverflow/index.d.ts.map +0 -1
  406. package/dist/types/src/components/Buttons/Button.d.ts.map +0 -1
  407. package/dist/types/src/components/Buttons/Button.stories.d.ts +0 -12
  408. package/dist/types/src/components/Buttons/Button.stories.d.ts.map +0 -1
  409. package/dist/types/src/components/Buttons/IconButton.d.ts.map +0 -1
  410. package/dist/types/src/components/Buttons/IconButton.stories.d.ts +0 -22
  411. package/dist/types/src/components/Buttons/IconButton.stories.d.ts.map +0 -1
  412. package/dist/types/src/components/Buttons/Toggle.d.ts.map +0 -1
  413. package/dist/types/src/components/Buttons/Toggle.stories.d.ts +0 -19
  414. package/dist/types/src/components/Buttons/Toggle.stories.d.ts.map +0 -1
  415. package/dist/types/src/components/Buttons/ToggleGroup.d.ts +0 -28
  416. package/dist/types/src/components/Buttons/ToggleGroup.d.ts.map +0 -1
  417. package/dist/types/src/components/Buttons/ToggleGroup.stories.d.ts +0 -39
  418. package/dist/types/src/components/Buttons/ToggleGroup.stories.d.ts.map +0 -1
  419. package/dist/types/src/components/Buttons/index.d.ts.map +0 -1
  420. package/dist/types/src/components/Dialogs/AlertDialog.d.ts +0 -31
  421. package/dist/types/src/components/Dialogs/AlertDialog.d.ts.map +0 -1
  422. package/dist/types/src/components/Dialogs/AlertDialog.stories.d.ts +0 -43
  423. package/dist/types/src/components/Dialogs/AlertDialog.stories.d.ts.map +0 -1
  424. package/dist/types/src/components/Dialogs/Dialog.d.ts +0 -31
  425. package/dist/types/src/components/Dialogs/Dialog.d.ts.map +0 -1
  426. package/dist/types/src/components/Dialogs/Dialog.stories.d.ts +0 -48
  427. package/dist/types/src/components/Dialogs/Dialog.stories.d.ts.map +0 -1
  428. package/dist/types/src/components/Dialogs/index.d.ts.map +0 -1
  429. package/dist/types/src/components/Lists/List.d.ts.map +0 -1
  430. package/dist/types/src/components/Lists/List.stories.d.ts +0 -37
  431. package/dist/types/src/components/Lists/List.stories.d.ts.map +0 -1
  432. package/dist/types/src/components/Lists/ListDropIndicator.d.ts.map +0 -1
  433. package/dist/types/src/components/Lists/Tree.d.ts.map +0 -1
  434. package/dist/types/src/components/Lists/Tree.stories.d.ts +0 -41
  435. package/dist/types/src/components/Lists/Tree.stories.d.ts.map +0 -1
  436. package/dist/types/src/components/Lists/TreeDropIndicator.d.ts.map +0 -1
  437. package/dist/types/src/components/Lists/Treegrid.d.ts.map +0 -1
  438. package/dist/types/src/components/Lists/Treegrid.stories.d.ts +0 -10
  439. package/dist/types/src/components/Lists/Treegrid.stories.d.ts.map +0 -1
  440. package/dist/types/src/components/Lists/index.d.ts.map +0 -1
  441. package/dist/types/src/components/Menus/ContextMenu.d.ts.map +0 -1
  442. package/dist/types/src/components/Menus/ContextMenu.stories.d.ts +0 -50
  443. package/dist/types/src/components/Menus/ContextMenu.stories.d.ts.map +0 -1
  444. package/dist/types/src/components/Menus/DropdownMenu.d.ts +0 -112
  445. package/dist/types/src/components/Menus/DropdownMenu.d.ts.map +0 -1
  446. package/dist/types/src/components/Menus/DropdownMenu.stories.d.ts +0 -50
  447. package/dist/types/src/components/Menus/DropdownMenu.stories.d.ts.map +0 -1
  448. package/dist/types/src/components/Menus/index.d.ts.map +0 -1
  449. package/dist/types/src/testing/decorators/withSurfaceVariantsLayout.d.ts +0 -12
  450. package/dist/types/src/testing/decorators/withSurfaceVariantsLayout.d.ts.map +0 -1
  451. package/dist/types/src/util/ThemedClassName.d.ts +0 -5
  452. package/dist/types/src/util/ThemedClassName.d.ts.map +0 -1
  453. package/src/components/AnchoredOverflow/AnchoredOverflow.tsx +0 -59
  454. package/src/components/AnchoredOverflow/index.ts +0 -5
  455. package/src/components/Buttons/Toggle.stories.tsx +0 -33
  456. package/src/components/Buttons/ToggleGroup.tsx +0 -41
  457. package/src/components/Dialogs/AlertDialog.stories.tsx +0 -66
  458. package/src/components/Dialogs/AlertDialog.tsx +0 -172
  459. package/src/components/Dialogs/Dialog.stories.tsx +0 -65
  460. package/src/components/Dialogs/Dialog.tsx +0 -159
  461. package/src/components/Lists/Treegrid.tsx +0 -152
  462. package/src/testing/decorators/withSurfaceVariantsLayout.tsx +0 -51
  463. package/src/testing/decorators/withTheme.ts +0 -25
  464. package/src/util/ThemedClassName.ts +0 -7
  465. /package/dist/types/src/components/{Buttons → Button}/index.d.ts +0 -0
  466. /package/dist/types/src/components/{Dialogs → Dialog}/index.d.ts +0 -0
  467. /package/dist/types/src/components/{Lists → List}/ListDropIndicator.d.ts +0 -0
  468. /package/dist/types/src/components/{Lists → List}/TreeDropIndicator.d.ts +0 -0
  469. /package/dist/types/src/components/{Lists → List}/index.d.ts +0 -0
  470. /package/dist/types/src/components/{Menus → Menu}/index.d.ts +0 -0
  471. /package/src/components/{Buttons → Button}/index.ts +0 -0
  472. /package/src/components/{Dialogs → Dialog}/index.ts +0 -0
  473. /package/src/components/{Lists → List}/index.ts +0 -0
  474. /package/src/components/{Menus → Menu}/index.ts +0 -0
@@ -0,0 +1,776 @@
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
+
23
+ // src/hooks/useElevationContext.ts
24
+ import { useContext as useContext3 } from "react";
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
+
30
+ // src/hooks/useThemeContext.ts
31
+ import { useContext } from "react";
32
+ import { raise } from "@dxos/debug";
33
+ var useThemeContext = () => useContext(ThemeContext) ?? raise(new Error("Missing ThemeContext"));
34
+
35
+ // src/hooks/useSafeArea.ts
36
+ import { useCallback, useState } from "react";
37
+ import { useViewportResize } from "@dxos/react-hooks";
38
+ var initialSafeArea = {
39
+ top: NaN,
40
+ right: NaN,
41
+ bottom: NaN,
42
+ left: NaN
43
+ };
44
+ var useSafeArea = () => {
45
+ const [padding, setPadding] = useState(initialSafeArea);
46
+ const handleResize = useCallback(() => {
47
+ setPadding({
48
+ top: parseFloat(getComputedStyle(document.documentElement).getPropertyValue("--safe-area-top")),
49
+ right: parseFloat(getComputedStyle(document.documentElement).getPropertyValue("--safe-area-right")),
50
+ bottom: parseFloat(getComputedStyle(document.documentElement).getPropertyValue("--safe-area-bottom")),
51
+ left: parseFloat(getComputedStyle(document.documentElement).getPropertyValue("--safe-area-left"))
52
+ });
53
+ }, []);
54
+ useViewportResize(handleResize);
55
+ return padding;
56
+ };
57
+
58
+ // src/components/ThemeProvider/TranslationsProvider.tsx
59
+ import { enUS as dtLocaleEnUs } from "date-fns/locale";
60
+ import i18Next from "i18next";
61
+ import React3, { Suspense, createContext as createContext3, useContext as useContext2, useEffect, useState as useState2 } from "react";
62
+ import { initReactI18next, useTranslation as useI18NextTranslation } from "react-i18next";
63
+ var initialLng = "en-US";
64
+ var initialNs = "dxos-common";
65
+ var initialDtLocale = dtLocaleEnUs;
66
+ var resources = {
67
+ [initialLng]: {
68
+ [initialNs]: {
69
+ "loading translations": "Loading translations\u2026"
70
+ }
71
+ }
72
+ };
73
+ void i18Next.use(initReactI18next).init({
74
+ resources,
75
+ lng: initialLng,
76
+ defaultNS: initialNs,
77
+ interpolation: {
78
+ escapeValue: false
79
+ }
80
+ });
81
+ var TranslationsContext = /* @__PURE__ */ createContext3({
82
+ appNs: initialNs,
83
+ dtLocale: initialDtLocale
84
+ });
85
+ var useTranslation = (...args) => {
86
+ const result = useI18NextTranslation(...args);
87
+ const { dtLocale } = useContext2(TranslationsContext);
88
+ return {
89
+ ...result,
90
+ dtLocale
91
+ };
92
+ };
93
+ var TranslationsProvider = ({ fallback, resourceExtensions, children, appNs, dtLocale }) => {
94
+ const [loaded, setLoaded] = useState2(false);
95
+ useEffect(() => {
96
+ setLoaded(false);
97
+ if (resourceExtensions && resourceExtensions.length) {
98
+ resourceExtensions.forEach((resource) => {
99
+ Object.keys(resource).forEach((language) => {
100
+ Object.keys(resource[language]).forEach((ns) => {
101
+ i18Next.addResourceBundle(language, ns, resource[language][ns]);
102
+ });
103
+ });
104
+ });
105
+ }
106
+ setLoaded(true);
107
+ }, [
108
+ resourceExtensions
109
+ ]);
110
+ return /* @__PURE__ */ React3.createElement(TranslationsContext.Provider, {
111
+ value: {
112
+ appNs: appNs ?? initialNs,
113
+ dtLocale: dtLocale ?? initialDtLocale
114
+ }
115
+ }, /* @__PURE__ */ React3.createElement(Suspense, {
116
+ fallback
117
+ }, loaded ? children : fallback));
118
+ };
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
+
170
+ // src/components/Tooltip/Tooltip.tsx
171
+ import { composeEventHandlers } from "@radix-ui/primitive";
172
+ import { useComposedRefs } from "@radix-ui/react-compose-refs";
173
+ import { createContextScope } from "@radix-ui/react-context";
174
+ import { DismissableLayer } from "@radix-ui/react-dismissable-layer";
175
+ import { useId } from "@radix-ui/react-id";
176
+ import * as PopperPrimitive from "@radix-ui/react-popper";
177
+ import { createPopperScope } from "@radix-ui/react-popper";
178
+ import { Portal as PortalPrimitive } from "@radix-ui/react-portal";
179
+ import { Presence } from "@radix-ui/react-presence";
180
+ import { Primitive } from "@radix-ui/react-primitive";
181
+ import { Slottable } from "@radix-ui/react-slot";
182
+ import { useControllableState } from "@radix-ui/react-use-controllable-state";
183
+ import * as VisuallyHiddenPrimitive from "@radix-ui/react-visually-hidden";
184
+ import React5, { forwardRef, useCallback as useCallback2, useEffect as useEffect3, useMemo as useMemo2, useRef, useState as useState3 } from "react";
185
+ var [createTooltipContext, createTooltipScope] = createContextScope("Tooltip", [
186
+ createPopperScope
187
+ ]);
188
+ var usePopperScope = createPopperScope();
189
+ var DEFAULT_DELAY_DURATION = 700;
190
+ var TOOLTIP_OPEN = "tooltip.open";
191
+ var TOOLTIP_NAME = "Tooltip";
192
+ var [TooltipContextProvider, useTooltipContext] = createTooltipContext(TOOLTIP_NAME);
193
+ var TooltipProvider = (props) => {
194
+ const { __scopeTooltip, children, open: openProp, defaultOpen = false, onOpenChange, disableHoverableContent = false, delayDuration = DEFAULT_DELAY_DURATION, skipDelayDuration = 300 } = props;
195
+ const isOpenDelayedRef = useRef(true);
196
+ const isPointerInTransitRef = useRef(false);
197
+ const skipDelayTimerRef = useRef(0);
198
+ useEffect3(() => {
199
+ const skipDelayTimer = skipDelayTimerRef.current;
200
+ return () => window.clearTimeout(skipDelayTimer);
201
+ }, []);
202
+ const popperScope = usePopperScope(__scopeTooltip);
203
+ const [trigger, setTrigger] = useState3(null);
204
+ const [content, setContent] = useState3("");
205
+ const [side, setSide] = useState3(void 0);
206
+ const triggerRef = useRef(trigger);
207
+ const handleTriggerChange = useCallback2((nextTrigger) => {
208
+ setTrigger(nextTrigger);
209
+ triggerRef.current = nextTrigger;
210
+ setContent(nextTrigger?.getAttribute("data-tooltip-content") ?? "");
211
+ setSide(nextTrigger?.getAttribute("data-tooltip-side") ?? void 0);
212
+ }, []);
213
+ const contentId = useId();
214
+ const openTimerRef = useRef(0);
215
+ const wasOpenDelayedRef = useRef(false);
216
+ const handleOpenChange = useCallback2((open2) => {
217
+ if (open2) {
218
+ window.clearTimeout(skipDelayTimerRef.current);
219
+ isOpenDelayedRef.current = false;
220
+ document.dispatchEvent(new CustomEvent(TOOLTIP_OPEN));
221
+ } else {
222
+ window.clearTimeout(skipDelayTimerRef.current);
223
+ skipDelayTimerRef.current = window.setTimeout(() => isOpenDelayedRef.current = true, skipDelayDuration);
224
+ }
225
+ onOpenChange?.(open2);
226
+ }, [
227
+ skipDelayDuration,
228
+ onOpenChange
229
+ ]);
230
+ const [open = false, setOpen] = useControllableState({
231
+ prop: openProp,
232
+ defaultProp: defaultOpen,
233
+ onChange: handleOpenChange
234
+ });
235
+ const stateAttribute = useMemo2(() => {
236
+ return open ? wasOpenDelayedRef.current ? "delayed-open" : "instant-open" : "closed";
237
+ }, [
238
+ open
239
+ ]);
240
+ const handleOpen = useCallback2(() => {
241
+ window.clearTimeout(openTimerRef.current);
242
+ openTimerRef.current = 0;
243
+ wasOpenDelayedRef.current = false;
244
+ setOpen(true);
245
+ }, [
246
+ setOpen
247
+ ]);
248
+ const handleClose = useCallback2(() => {
249
+ window.clearTimeout(openTimerRef.current);
250
+ openTimerRef.current = 0;
251
+ setOpen(false);
252
+ }, [
253
+ setOpen
254
+ ]);
255
+ const handleDelayedOpen = useCallback2(() => {
256
+ window.clearTimeout(openTimerRef.current);
257
+ openTimerRef.current = window.setTimeout(() => {
258
+ wasOpenDelayedRef.current = true;
259
+ setOpen(true);
260
+ openTimerRef.current = 0;
261
+ }, delayDuration);
262
+ }, [
263
+ delayDuration,
264
+ setOpen
265
+ ]);
266
+ useEffect3(() => {
267
+ return () => {
268
+ if (openTimerRef.current) {
269
+ window.clearTimeout(openTimerRef.current);
270
+ openTimerRef.current = 0;
271
+ }
272
+ };
273
+ }, []);
274
+ const { tx } = useThemeContext();
275
+ const elevation = useElevationContext();
276
+ return /* @__PURE__ */ React5.createElement(PopperPrimitive.Root, popperScope, /* @__PURE__ */ React5.createElement(TooltipContextProvider, {
277
+ scope: __scopeTooltip,
278
+ contentId,
279
+ open,
280
+ stateAttribute,
281
+ trigger,
282
+ onTriggerChange: handleTriggerChange,
283
+ onTriggerEnter: useCallback2(() => {
284
+ if (isOpenDelayedRef.current) {
285
+ handleDelayedOpen();
286
+ } else {
287
+ handleOpen();
288
+ }
289
+ }, [
290
+ isOpenDelayedRef,
291
+ handleDelayedOpen,
292
+ handleOpen
293
+ ]),
294
+ onTriggerLeave: useCallback2(() => {
295
+ if (disableHoverableContent) {
296
+ handleClose();
297
+ } else {
298
+ window.clearTimeout(openTimerRef.current);
299
+ openTimerRef.current = 0;
300
+ }
301
+ }, [
302
+ handleClose,
303
+ disableHoverableContent
304
+ ]),
305
+ onOpen: handleOpen,
306
+ onClose: handleClose,
307
+ disableHoverableContent,
308
+ isPointerInTransitRef,
309
+ onPointerInTransitChange: useCallback2((inTransit) => {
310
+ isPointerInTransitRef.current = inTransit;
311
+ }, [])
312
+ }, /* @__PURE__ */ React5.createElement(TooltipContent, {
313
+ side,
314
+ className: tx("tooltip.content", {
315
+ elevation
316
+ })
317
+ }, content, /* @__PURE__ */ React5.createElement(TooltipArrow, {
318
+ className: tx("tooltip.arrow")
319
+ })), /* @__PURE__ */ React5.createElement(TooltipVirtualTrigger, {
320
+ virtualRef: triggerRef
321
+ }), children));
322
+ };
323
+ TooltipProvider.displayName = TOOLTIP_NAME;
324
+ var TooltipVirtualTrigger = ({ virtualRef, __scopeTooltip }) => {
325
+ const popperScope = usePopperScope(__scopeTooltip);
326
+ return /* @__PURE__ */ React5.createElement(PopperPrimitive.Anchor, {
327
+ asChild: true,
328
+ ...popperScope,
329
+ virtualRef
330
+ });
331
+ };
332
+ var TRIGGER_NAME = "TooltipTrigger";
333
+ var TooltipTrigger = /* @__PURE__ */ forwardRef((props, forwardedRef) => {
334
+ const {
335
+ __scopeTooltip,
336
+ onInteract,
337
+ // TODO(thure): Pass `delayDuration` into the context.
338
+ delayDuration: _delayDuration,
339
+ side,
340
+ content,
341
+ ...triggerProps
342
+ } = props;
343
+ const context = useTooltipContext(TRIGGER_NAME, __scopeTooltip);
344
+ const ref = useRef(null);
345
+ const composedRefs = useComposedRefs(forwardedRef, ref);
346
+ const isPointerDownRef = useRef(false);
347
+ const hasPointerMoveOpenedRef = useRef(false);
348
+ const handlePointerUp = useCallback2(() => isPointerDownRef.current = false, []);
349
+ useEffect3(() => {
350
+ return () => document.removeEventListener("pointerup", handlePointerUp);
351
+ }, [
352
+ handlePointerUp
353
+ ]);
354
+ return /* @__PURE__ */ React5.createElement(Primitive.button, {
355
+ // We purposefully avoid adding `type=button` here because tooltip triggers are also
356
+ // commonly anchors and the anchor `type` attribute signifies MIME type.
357
+ "aria-describedby": context.open ? context.contentId : void 0,
358
+ "data-state": context.stateAttribute,
359
+ "data-tooltip-content": content,
360
+ "data-tooltip-side": side,
361
+ ...triggerProps,
362
+ ref: composedRefs,
363
+ onPointerMove: composeEventHandlers(props.onPointerMove, (event) => {
364
+ if (event.pointerType === "touch") {
365
+ return;
366
+ }
367
+ if (!hasPointerMoveOpenedRef.current && !context.isPointerInTransitRef.current) {
368
+ onInteract?.(event);
369
+ if (event.defaultPrevented) {
370
+ return;
371
+ }
372
+ context.onTriggerChange(ref.current);
373
+ context.onTriggerEnter();
374
+ hasPointerMoveOpenedRef.current = true;
375
+ }
376
+ }),
377
+ onPointerLeave: composeEventHandlers(props.onPointerLeave, () => {
378
+ context.onTriggerLeave();
379
+ hasPointerMoveOpenedRef.current = false;
380
+ }),
381
+ onPointerDown: composeEventHandlers(props.onPointerDown, () => {
382
+ if (context.open) {
383
+ context.onClose();
384
+ }
385
+ isPointerDownRef.current = true;
386
+ document.addEventListener("pointerup", handlePointerUp, {
387
+ once: true
388
+ });
389
+ }),
390
+ onFocus: props.onFocus,
391
+ onBlur: composeEventHandlers(props.onBlur, context.onClose),
392
+ onClick: composeEventHandlers(props.onClick, context.onClose)
393
+ });
394
+ });
395
+ TooltipTrigger.displayName = TRIGGER_NAME;
396
+ var PORTAL_NAME = "TooltipPortal";
397
+ var [PortalProvider, usePortalContext] = createTooltipContext(PORTAL_NAME, {
398
+ forceMount: void 0
399
+ });
400
+ var TooltipPortal = (props) => {
401
+ const { __scopeTooltip, forceMount, children, container } = props;
402
+ const context = useTooltipContext(PORTAL_NAME, __scopeTooltip);
403
+ return /* @__PURE__ */ React5.createElement(PortalProvider, {
404
+ scope: __scopeTooltip,
405
+ forceMount
406
+ }, /* @__PURE__ */ React5.createElement(Presence, {
407
+ present: forceMount || context.open
408
+ }, /* @__PURE__ */ React5.createElement(PortalPrimitive, {
409
+ asChild: true,
410
+ container
411
+ }, children)));
412
+ };
413
+ TooltipPortal.displayName = PORTAL_NAME;
414
+ var CONTENT_NAME = "TooltipContent";
415
+ var TooltipContent = /* @__PURE__ */ forwardRef((props, forwardedRef) => {
416
+ const portalContext = usePortalContext(CONTENT_NAME, props.__scopeTooltip);
417
+ const { forceMount = portalContext.forceMount, side = "top", ...contentProps } = props;
418
+ const context = useTooltipContext(CONTENT_NAME, props.__scopeTooltip);
419
+ return /* @__PURE__ */ React5.createElement(Presence, {
420
+ present: forceMount || context.open
421
+ }, context.disableHoverableContent ? /* @__PURE__ */ React5.createElement(TooltipContentImpl, {
422
+ side,
423
+ ...contentProps,
424
+ ref: forwardedRef
425
+ }) : /* @__PURE__ */ React5.createElement(TooltipContentHoverable, {
426
+ side,
427
+ ...contentProps,
428
+ ref: forwardedRef
429
+ }));
430
+ });
431
+ var TooltipContentHoverable = /* @__PURE__ */ forwardRef((props, forwardedRef) => {
432
+ const context = useTooltipContext(CONTENT_NAME, props.__scopeTooltip);
433
+ const ref = useRef(null);
434
+ const composedRefs = useComposedRefs(forwardedRef, ref);
435
+ const [pointerGraceArea, setPointerGraceArea] = useState3(null);
436
+ const { trigger, onClose } = context;
437
+ const content = ref.current;
438
+ const { onPointerInTransitChange } = context;
439
+ const handleRemoveGraceArea = useCallback2(() => {
440
+ setPointerGraceArea(null);
441
+ onPointerInTransitChange(false);
442
+ }, [
443
+ onPointerInTransitChange
444
+ ]);
445
+ const handleCreateGraceArea = useCallback2((event, hoverTarget) => {
446
+ const currentTarget = event.currentTarget;
447
+ const exitPoint = {
448
+ x: event.clientX,
449
+ y: event.clientY
450
+ };
451
+ const exitSide = getExitSideFromRect(exitPoint, currentTarget.getBoundingClientRect());
452
+ const paddedExitPoints = getPaddedExitPoints(exitPoint, exitSide);
453
+ const hoverTargetPoints = getPointsFromRect(hoverTarget.getBoundingClientRect());
454
+ const graceArea = getHull([
455
+ ...paddedExitPoints,
456
+ ...hoverTargetPoints
457
+ ]);
458
+ setPointerGraceArea(graceArea);
459
+ onPointerInTransitChange(true);
460
+ }, [
461
+ onPointerInTransitChange
462
+ ]);
463
+ useEffect3(() => {
464
+ return () => handleRemoveGraceArea();
465
+ }, [
466
+ handleRemoveGraceArea
467
+ ]);
468
+ useEffect3(() => {
469
+ if (trigger && content) {
470
+ const handleTriggerLeave = (event) => handleCreateGraceArea(event, content);
471
+ const handleContentLeave = (event) => handleCreateGraceArea(event, trigger);
472
+ trigger.addEventListener("pointerleave", handleTriggerLeave);
473
+ content.addEventListener("pointerleave", handleContentLeave);
474
+ return () => {
475
+ trigger.removeEventListener("pointerleave", handleTriggerLeave);
476
+ content.removeEventListener("pointerleave", handleContentLeave);
477
+ };
478
+ }
479
+ }, [
480
+ trigger,
481
+ content,
482
+ handleCreateGraceArea,
483
+ handleRemoveGraceArea
484
+ ]);
485
+ useEffect3(() => {
486
+ if (pointerGraceArea) {
487
+ const handleTrackPointerGrace = (event) => {
488
+ const target = event.target;
489
+ const pointerPosition = {
490
+ x: event.clientX,
491
+ y: event.clientY
492
+ };
493
+ const hasEnteredTarget = trigger?.contains(target) || content?.contains(target);
494
+ const isPointerOutsideGraceArea = !isPointInPolygon(pointerPosition, pointerGraceArea);
495
+ if (hasEnteredTarget) {
496
+ handleRemoveGraceArea();
497
+ } else if (isPointerOutsideGraceArea) {
498
+ handleRemoveGraceArea();
499
+ onClose();
500
+ }
501
+ };
502
+ document.addEventListener("pointermove", handleTrackPointerGrace);
503
+ return () => document.removeEventListener("pointermove", handleTrackPointerGrace);
504
+ }
505
+ }, [
506
+ trigger,
507
+ content,
508
+ pointerGraceArea,
509
+ onClose,
510
+ handleRemoveGraceArea
511
+ ]);
512
+ return /* @__PURE__ */ React5.createElement(TooltipContentImpl, {
513
+ ...props,
514
+ ref: composedRefs
515
+ });
516
+ });
517
+ var [VisuallyHiddenContentContextProvider, useVisuallyHiddenContentContext] = createTooltipContext(TOOLTIP_NAME, {
518
+ isInside: false
519
+ });
520
+ var TooltipContentImpl = /* @__PURE__ */ forwardRef((props, forwardedRef) => {
521
+ const { __scopeTooltip, children, "aria-label": ariaLabel, onEscapeKeyDown, onPointerDownOutside, ...contentProps } = props;
522
+ const context = useTooltipContext(CONTENT_NAME, __scopeTooltip);
523
+ const popperScope = usePopperScope(__scopeTooltip);
524
+ const { onClose } = context;
525
+ useEffect3(() => {
526
+ document.addEventListener(TOOLTIP_OPEN, onClose);
527
+ return () => document.removeEventListener(TOOLTIP_OPEN, onClose);
528
+ }, [
529
+ onClose
530
+ ]);
531
+ useEffect3(() => {
532
+ if (context.trigger) {
533
+ const handleScroll = (event) => {
534
+ const target = event.target;
535
+ if (target?.contains(context.trigger)) {
536
+ onClose();
537
+ }
538
+ };
539
+ window.addEventListener("scroll", handleScroll, {
540
+ capture: true
541
+ });
542
+ return () => window.removeEventListener("scroll", handleScroll, {
543
+ capture: true
544
+ });
545
+ }
546
+ }, [
547
+ context.trigger,
548
+ onClose
549
+ ]);
550
+ return /* @__PURE__ */ React5.createElement(DismissableLayer, {
551
+ asChild: true,
552
+ disableOutsidePointerEvents: false,
553
+ onEscapeKeyDown,
554
+ onPointerDownOutside,
555
+ onFocusOutside: (event) => event.preventDefault(),
556
+ onDismiss: onClose
557
+ }, /* @__PURE__ */ React5.createElement(PopperPrimitive.Content, {
558
+ "data-state": context.stateAttribute,
559
+ ...popperScope,
560
+ ...contentProps,
561
+ ref: forwardedRef,
562
+ style: {
563
+ ...contentProps.style,
564
+ // re-namespace exposed content custom properties
565
+ ...{
566
+ "--radix-tooltip-content-transform-origin": "var(--radix-popper-transform-origin)",
567
+ "--radix-tooltip-content-available-width": "var(--radix-popper-available-width)",
568
+ "--radix-tooltip-content-available-height": "var(--radix-popper-available-height)",
569
+ "--radix-tooltip-trigger-width": "var(--radix-popper-anchor-width)",
570
+ "--radix-tooltip-trigger-height": "var(--radix-popper-anchor-height)"
571
+ }
572
+ }
573
+ }, /* @__PURE__ */ React5.createElement(Slottable, null, children), /* @__PURE__ */ React5.createElement(VisuallyHiddenContentContextProvider, {
574
+ scope: __scopeTooltip,
575
+ isInside: true
576
+ }, /* @__PURE__ */ React5.createElement(VisuallyHiddenPrimitive.Root, {
577
+ id: context.contentId,
578
+ role: "tooltip"
579
+ }, ariaLabel || children))));
580
+ });
581
+ TooltipContent.displayName = CONTENT_NAME;
582
+ var ARROW_NAME = "TooltipArrow";
583
+ var TooltipArrow = /* @__PURE__ */ forwardRef((props, forwardedRef) => {
584
+ const { __scopeTooltip, ...arrowProps } = props;
585
+ const popperScope = usePopperScope(__scopeTooltip);
586
+ const visuallyHiddenContentContext = useVisuallyHiddenContentContext(ARROW_NAME, __scopeTooltip);
587
+ return visuallyHiddenContentContext.isInside ? null : /* @__PURE__ */ React5.createElement(PopperPrimitive.Arrow, {
588
+ ...popperScope,
589
+ ...arrowProps,
590
+ ref: forwardedRef
591
+ });
592
+ });
593
+ TooltipArrow.displayName = ARROW_NAME;
594
+ var getExitSideFromRect = (point, rect) => {
595
+ const top = Math.abs(rect.top - point.y);
596
+ const bottom = Math.abs(rect.bottom - point.y);
597
+ const right = Math.abs(rect.right - point.x);
598
+ const left = Math.abs(rect.left - point.x);
599
+ switch (Math.min(top, bottom, right, left)) {
600
+ case left:
601
+ return "left";
602
+ case right:
603
+ return "right";
604
+ case top:
605
+ return "top";
606
+ case bottom:
607
+ return "bottom";
608
+ default:
609
+ throw new Error("unreachable");
610
+ }
611
+ };
612
+ var getPaddedExitPoints = (exitPoint, exitSide, padding = 5) => {
613
+ const paddedExitPoints = [];
614
+ switch (exitSide) {
615
+ case "top":
616
+ paddedExitPoints.push({
617
+ x: exitPoint.x - padding,
618
+ y: exitPoint.y + padding
619
+ }, {
620
+ x: exitPoint.x + padding,
621
+ y: exitPoint.y + padding
622
+ });
623
+ break;
624
+ case "bottom":
625
+ paddedExitPoints.push({
626
+ x: exitPoint.x - padding,
627
+ y: exitPoint.y - padding
628
+ }, {
629
+ x: exitPoint.x + padding,
630
+ y: exitPoint.y - padding
631
+ });
632
+ break;
633
+ case "left":
634
+ paddedExitPoints.push({
635
+ x: exitPoint.x + padding,
636
+ y: exitPoint.y - padding
637
+ }, {
638
+ x: exitPoint.x + padding,
639
+ y: exitPoint.y + padding
640
+ });
641
+ break;
642
+ case "right":
643
+ paddedExitPoints.push({
644
+ x: exitPoint.x - padding,
645
+ y: exitPoint.y - padding
646
+ }, {
647
+ x: exitPoint.x - padding,
648
+ y: exitPoint.y + padding
649
+ });
650
+ break;
651
+ }
652
+ return paddedExitPoints;
653
+ };
654
+ var getPointsFromRect = (rect) => {
655
+ const { top, right, bottom, left } = rect;
656
+ return [
657
+ {
658
+ x: left,
659
+ y: top
660
+ },
661
+ {
662
+ x: right,
663
+ y: top
664
+ },
665
+ {
666
+ x: right,
667
+ y: bottom
668
+ },
669
+ {
670
+ x: left,
671
+ y: bottom
672
+ }
673
+ ];
674
+ };
675
+ var isPointInPolygon = (point, polygon) => {
676
+ const { x, y } = point;
677
+ let inside = false;
678
+ for (let i = 0, j = polygon.length - 1; i < polygon.length; j = i++) {
679
+ const xi = polygon[i].x;
680
+ const yi = polygon[i].y;
681
+ const xj = polygon[j].x;
682
+ const yj = polygon[j].y;
683
+ const intersect = yi > y !== yj > y && x < (xj - xi) * (y - yi) / (yj - yi) + xi;
684
+ if (intersect) {
685
+ inside = !inside;
686
+ }
687
+ }
688
+ return inside;
689
+ };
690
+ var getHull = (points) => {
691
+ const newPoints = points.slice();
692
+ newPoints.sort((a, b) => {
693
+ if (a.x < b.x) {
694
+ return -1;
695
+ } else if (a.x > b.x) {
696
+ return 1;
697
+ } else if (a.y < b.y) {
698
+ return -1;
699
+ } else if (a.y > b.y) {
700
+ return 1;
701
+ } else {
702
+ return 0;
703
+ }
704
+ });
705
+ return getHullPresorted(newPoints);
706
+ };
707
+ var getHullPresorted = (points) => {
708
+ if (points.length <= 1) {
709
+ return points.slice();
710
+ }
711
+ const upperHull = [];
712
+ for (let i = 0; i < points.length; i++) {
713
+ const p = points[i];
714
+ while (upperHull.length >= 2) {
715
+ const q = upperHull[upperHull.length - 1];
716
+ const r = upperHull[upperHull.length - 2];
717
+ if ((q.x - r.x) * (p.y - r.y) >= (q.y - r.y) * (p.x - r.x)) {
718
+ upperHull.pop();
719
+ } else {
720
+ break;
721
+ }
722
+ }
723
+ upperHull.push(p);
724
+ }
725
+ upperHull.pop();
726
+ const lowerHull = [];
727
+ for (let i = points.length - 1; i >= 0; i--) {
728
+ const p = points[i];
729
+ while (lowerHull.length >= 2) {
730
+ const q = lowerHull[lowerHull.length - 1];
731
+ const r = lowerHull[lowerHull.length - 2];
732
+ if ((q.x - r.x) * (p.y - r.y) >= (q.y - r.y) * (p.x - r.x)) {
733
+ lowerHull.pop();
734
+ } else {
735
+ break;
736
+ }
737
+ }
738
+ lowerHull.push(p);
739
+ }
740
+ lowerHull.pop();
741
+ if (upperHull.length === 1 && lowerHull.length === 1 && upperHull[0].x === lowerHull[0].x && upperHull[0].y === lowerHull[0].y) {
742
+ return upperHull;
743
+ } else {
744
+ return upperHull.concat(lowerHull);
745
+ }
746
+ };
747
+ var Tooltip = {
748
+ Provider: TooltipProvider,
749
+ Trigger: TooltipTrigger
750
+ };
751
+
752
+ // src/hooks/useElevationContext.ts
753
+ var useElevationContext = (propsElevation) => {
754
+ const { elevation } = useContext3(ElevationContext);
755
+ return propsElevation ?? elevation;
756
+ };
757
+
758
+ export {
759
+ DensityContext,
760
+ DensityProvider,
761
+ ElevationContext,
762
+ ElevationProvider,
763
+ useElevationContext,
764
+ useThemeContext,
765
+ initialSafeArea,
766
+ useSafeArea,
767
+ TranslationsContext,
768
+ useTranslation,
769
+ hasIosKeyboard,
770
+ ThemeContext,
771
+ ThemeProvider,
772
+ createTooltipScope,
773
+ useTooltipContext,
774
+ Tooltip
775
+ };
776
+ //# sourceMappingURL=chunk-LUPEFGHJ.mjs.map