@dxos/react-ui 0.8.4-main.bc674ce → 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 (324) hide show
  1. package/dist/lib/browser/{chunk-CEKVHJ27.mjs → chunk-LUPEFGHJ.mjs} +119 -117
  2. package/dist/lib/browser/chunk-LUPEFGHJ.mjs.map +7 -0
  3. package/dist/lib/browser/index.mjs +3084 -2081
  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 +59 -36
  7. package/dist/lib/browser/testing/index.mjs.map +4 -4
  8. package/dist/lib/node-esm/{chunk-2NHEX4AD.mjs → chunk-EQOBFLZC.mjs} +119 -117
  9. package/dist/lib/node-esm/chunk-EQOBFLZC.mjs.map +7 -0
  10. package/dist/lib/node-esm/index.mjs +3084 -2081
  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 +59 -36
  14. package/dist/lib/node-esm/testing/index.mjs.map +4 -4
  15. package/dist/types/src/components/Avatars/Avatar.d.ts.map +1 -1
  16. package/dist/types/src/components/Avatars/Avatar.stories.d.ts.map +1 -1
  17. package/dist/types/src/components/Breadcrumb/Breadcrumb.d.ts.map +1 -1
  18. package/dist/types/src/components/Button/Button.d.ts +2 -2
  19. package/dist/types/src/components/Button/Button.d.ts.map +1 -1
  20. package/dist/types/src/components/Button/IconButton.d.ts.map +1 -1
  21. package/dist/types/src/components/Button/IconButton.stories.d.ts +3 -0
  22. package/dist/types/src/components/Button/IconButton.stories.d.ts.map +1 -1
  23. package/dist/types/src/components/Button/Toggle.d.ts +2 -2
  24. package/dist/types/src/components/Button/Toggle.d.ts.map +1 -1
  25. package/dist/types/src/components/Button/ToggleGroup.d.ts +6 -6
  26. package/dist/types/src/components/Button/ToggleGroup.d.ts.map +1 -1
  27. package/dist/types/src/components/Card/Card.d.ts +150 -0
  28. package/dist/types/src/components/Card/Card.d.ts.map +1 -0
  29. package/dist/types/src/components/Card/Card.stories.d.ts +21 -0
  30. package/dist/types/src/components/Card/Card.stories.d.ts.map +1 -0
  31. package/dist/types/src/components/Card/index.d.ts +2 -0
  32. package/dist/types/src/components/Card/index.d.ts.map +1 -0
  33. package/dist/types/src/components/Clipboard/index.d.ts +10 -1
  34. package/dist/types/src/components/Clipboard/index.d.ts.map +1 -1
  35. package/dist/types/src/components/Dialog/AlertDialog.d.ts +41 -19
  36. package/dist/types/src/components/Dialog/AlertDialog.d.ts.map +1 -1
  37. package/dist/types/src/components/Dialog/AlertDialog.stories.d.ts.map +1 -1
  38. package/dist/types/src/components/Dialog/Dialog.d.ts +48 -22
  39. package/dist/types/src/components/Dialog/Dialog.d.ts.map +1 -1
  40. package/dist/types/src/components/Dialog/Dialog.stories.d.ts +6 -8
  41. package/dist/types/src/components/Dialog/Dialog.stories.d.ts.map +1 -1
  42. package/dist/types/src/components/ErrorFallback/ErrorFallback.d.ts +11 -0
  43. package/dist/types/src/components/ErrorFallback/ErrorFallback.d.ts.map +1 -0
  44. package/dist/types/src/components/ErrorFallback/ErrorFallback.stories.d.ts +7 -0
  45. package/dist/types/src/components/ErrorFallback/ErrorFallback.stories.d.ts.map +1 -0
  46. package/dist/types/src/components/ErrorFallback/ErrorStack.d.ts +8 -0
  47. package/dist/types/src/components/ErrorFallback/ErrorStack.d.ts.map +1 -0
  48. package/dist/types/src/components/ErrorFallback/ThrowError.d.ts +9 -0
  49. package/dist/types/src/components/ErrorFallback/ThrowError.d.ts.map +1 -0
  50. package/dist/types/src/components/ErrorFallback/index.d.ts +5 -0
  51. package/dist/types/src/components/ErrorFallback/index.d.ts.map +1 -0
  52. package/dist/types/src/components/Focus/Focus.d.ts +44 -0
  53. package/dist/types/src/components/Focus/Focus.d.ts.map +1 -0
  54. package/dist/types/src/components/Focus/Focus.stories.d.ts +9 -0
  55. package/dist/types/src/components/Focus/Focus.stories.d.ts.map +1 -0
  56. package/dist/types/src/components/Focus/index.d.ts +2 -0
  57. package/dist/types/src/components/Focus/index.d.ts.map +1 -0
  58. package/dist/types/src/components/Icon/Icon.d.ts +3 -0
  59. package/dist/types/src/components/Icon/Icon.d.ts.map +1 -1
  60. package/dist/types/src/components/Icon/Icon.stories.d.ts +11 -3
  61. package/dist/types/src/components/Icon/Icon.stories.d.ts.map +1 -1
  62. package/dist/types/src/components/Image/Image.d.ts +14 -0
  63. package/dist/types/src/components/Image/Image.d.ts.map +1 -0
  64. package/dist/types/src/components/Image/Image.stories.d.ts +33 -0
  65. package/dist/types/src/components/Image/Image.stories.d.ts.map +1 -0
  66. package/dist/types/src/components/Image/index.d.ts +2 -0
  67. package/dist/types/src/components/Image/index.d.ts.map +1 -0
  68. package/dist/types/src/components/Input/Input.d.ts +4 -7
  69. package/dist/types/src/components/Input/Input.d.ts.map +1 -1
  70. package/dist/types/src/components/Input/Input.stories.d.ts +7 -7
  71. package/dist/types/src/components/Input/Input.stories.d.ts.map +1 -1
  72. package/dist/types/src/components/List/List.d.ts +9 -3
  73. package/dist/types/src/components/List/List.d.ts.map +1 -1
  74. package/dist/types/src/components/List/List.stories.d.ts +8 -2
  75. package/dist/types/src/components/List/List.stories.d.ts.map +1 -1
  76. package/dist/types/src/components/List/Treegrid.d.ts +9 -9
  77. package/dist/types/src/components/List/Treegrid.d.ts.map +1 -1
  78. package/dist/types/src/components/Main/Main.d.ts +6 -32
  79. package/dist/types/src/components/Main/Main.d.ts.map +1 -1
  80. package/dist/types/src/components/Main/Main.stories.d.ts +1 -5
  81. package/dist/types/src/components/Main/Main.stories.d.ts.map +1 -1
  82. package/dist/types/src/components/Menu/ContextMenu.d.ts.map +1 -1
  83. package/dist/types/src/components/Menu/DropdownMenu.d.ts +51 -50
  84. package/dist/types/src/components/Menu/DropdownMenu.d.ts.map +1 -1
  85. package/dist/types/src/components/Menu/DropdownMenu.stories.d.ts +14 -1
  86. package/dist/types/src/components/Menu/DropdownMenu.stories.d.ts.map +1 -1
  87. package/dist/types/src/components/Message/Message.d.ts.map +1 -1
  88. package/dist/types/src/components/Message/Message.stories.d.ts +4 -5
  89. package/dist/types/src/components/Message/Message.stories.d.ts.map +1 -1
  90. package/dist/types/src/components/Popover/Popover.d.ts +32 -23
  91. package/dist/types/src/components/Popover/Popover.d.ts.map +1 -1
  92. package/dist/types/src/components/ScrollArea/ScrollArea.d.ts +31 -25
  93. package/dist/types/src/components/ScrollArea/ScrollArea.d.ts.map +1 -1
  94. package/dist/types/src/components/ScrollArea/ScrollArea.stories.d.ts +62 -9
  95. package/dist/types/src/components/ScrollArea/ScrollArea.stories.d.ts.map +1 -1
  96. package/dist/types/src/components/ScrollContainer/ScrollContainer.d.ts +45 -12
  97. package/dist/types/src/components/ScrollContainer/ScrollContainer.d.ts.map +1 -1
  98. package/dist/types/src/components/ScrollContainer/ScrollContainer.stories.d.ts +9 -5
  99. package/dist/types/src/components/ScrollContainer/ScrollContainer.stories.d.ts.map +1 -1
  100. package/dist/types/src/components/Select/Select.d.ts.map +1 -1
  101. package/dist/types/src/components/Select/Select.stories.d.ts +2 -2
  102. package/dist/types/src/components/Select/Select.stories.d.ts.map +1 -1
  103. package/dist/types/src/components/Separator/Separator.d.ts +3 -3
  104. package/dist/types/src/components/Separator/Separator.d.ts.map +1 -1
  105. package/dist/types/src/components/Skeleton/Skeleton.d.ts +12 -0
  106. package/dist/types/src/components/Skeleton/Skeleton.d.ts.map +1 -0
  107. package/dist/types/src/components/Skeleton/Skeleton.stories.d.ts +17 -0
  108. package/dist/types/src/components/Skeleton/Skeleton.stories.d.ts.map +1 -0
  109. package/dist/types/src/components/Skeleton/index.d.ts +2 -0
  110. package/dist/types/src/components/Skeleton/index.d.ts.map +1 -0
  111. package/dist/types/src/components/Splitter/Splitter.d.ts +37 -0
  112. package/dist/types/src/components/Splitter/Splitter.d.ts.map +1 -0
  113. package/dist/types/src/components/Splitter/Splitter.stories.d.ts +7 -0
  114. package/dist/types/src/components/Splitter/Splitter.stories.d.ts.map +1 -0
  115. package/dist/types/src/components/Splitter/index.d.ts +2 -0
  116. package/dist/types/src/components/Splitter/index.d.ts.map +1 -0
  117. package/dist/types/src/components/Status/Status.d.ts +3 -4
  118. package/dist/types/src/components/Status/Status.d.ts.map +1 -1
  119. package/dist/types/src/components/Status/Status.stories.d.ts +4 -2
  120. package/dist/types/src/components/Status/Status.stories.d.ts.map +1 -1
  121. package/dist/types/src/components/Tag/Tag.d.ts.map +1 -1
  122. package/dist/types/src/components/Tag/Tag.stories.d.ts +0 -5
  123. package/dist/types/src/components/Tag/Tag.stories.d.ts.map +1 -1
  124. package/dist/types/src/components/ThemeProvider/ThemeProvider.d.ts +2 -1
  125. package/dist/types/src/components/ThemeProvider/ThemeProvider.d.ts.map +1 -1
  126. package/dist/types/src/components/ThemeProvider/ThemeProvider.stories.d.ts +12 -0
  127. package/dist/types/src/components/ThemeProvider/ThemeProvider.stories.d.ts.map +1 -0
  128. package/dist/types/src/components/Toast/Toast.d.ts +15 -15
  129. package/dist/types/src/components/Toast/Toast.d.ts.map +1 -1
  130. package/dist/types/src/components/Toolbar/Toolbar.d.ts +37 -11
  131. package/dist/types/src/components/Toolbar/Toolbar.d.ts.map +1 -1
  132. package/dist/types/src/components/Tooltip/Tooltip.d.ts +9 -9
  133. package/dist/types/src/components/Tooltip/Tooltip.d.ts.map +1 -1
  134. package/dist/types/src/components/Tooltip/Tooltip.stories.d.ts +2 -2
  135. package/dist/types/src/components/Tooltip/Tooltip.stories.d.ts.map +1 -1
  136. package/dist/types/src/components/index.d.ts +9 -4
  137. package/dist/types/src/components/index.d.ts.map +1 -1
  138. package/dist/types/src/exemplars/generics.stories.d.ts +23 -0
  139. package/dist/types/src/exemplars/generics.stories.d.ts.map +1 -0
  140. package/dist/types/src/exemplars/slot.stories.d.ts +15 -0
  141. package/dist/types/src/exemplars/slot.stories.d.ts.map +1 -0
  142. package/dist/types/src/exemplars/tabster.stories.d.ts +8 -0
  143. package/dist/types/src/exemplars/tabster.stories.d.ts.map +1 -0
  144. package/dist/types/src/exemplars/virtualizer.stories.d.ts +11 -0
  145. package/dist/types/src/exemplars/virtualizer.stories.d.ts.map +1 -0
  146. package/dist/types/src/hooks/index.d.ts +1 -0
  147. package/dist/types/src/hooks/index.d.ts.map +1 -1
  148. package/dist/types/src/hooks/useDensityContext.d.ts +1 -1
  149. package/dist/types/src/hooks/useDensityContext.d.ts.map +1 -1
  150. package/dist/types/src/index.d.ts +1 -0
  151. package/dist/types/src/index.d.ts.map +1 -1
  152. package/dist/types/src/playground/Controls.stories.d.ts.map +1 -1
  153. package/dist/types/src/playground/Custom.stories.d.ts.map +1 -1
  154. package/dist/types/src/primitives/Column/Column.d.ts +51 -0
  155. package/dist/types/src/primitives/Column/Column.d.ts.map +1 -0
  156. package/dist/types/src/primitives/Column/Column.stories.d.ts +25 -0
  157. package/dist/types/src/primitives/Column/Column.stories.d.ts.map +1 -0
  158. package/dist/types/src/primitives/Column/index.d.ts +2 -0
  159. package/dist/types/src/primitives/Column/index.d.ts.map +1 -0
  160. package/dist/types/src/primitives/Container/Container.d.ts +11 -0
  161. package/dist/types/src/primitives/Container/Container.d.ts.map +1 -0
  162. package/dist/types/src/primitives/Container/Container.stories.d.ts +6 -0
  163. package/dist/types/src/primitives/Container/Container.stories.d.ts.map +1 -0
  164. package/dist/types/src/primitives/Container/index.d.ts +2 -0
  165. package/dist/types/src/primitives/Container/index.d.ts.map +1 -0
  166. package/dist/types/src/primitives/Flex/Flex.d.ts +15 -0
  167. package/dist/types/src/primitives/Flex/Flex.d.ts.map +1 -0
  168. package/dist/types/src/primitives/Flex/Flex.stories.d.ts +8 -0
  169. package/dist/types/src/primitives/Flex/Flex.stories.d.ts.map +1 -0
  170. package/dist/types/src/primitives/Flex/index.d.ts +2 -0
  171. package/dist/types/src/primitives/Flex/index.d.ts.map +1 -0
  172. package/dist/types/src/primitives/Grid/Grid.d.ts +14 -0
  173. package/dist/types/src/primitives/Grid/Grid.d.ts.map +1 -0
  174. package/dist/types/src/primitives/Grid/Grid.stories.d.ts +8 -0
  175. package/dist/types/src/primitives/Grid/Grid.stories.d.ts.map +1 -0
  176. package/dist/types/src/primitives/Grid/index.d.ts +2 -0
  177. package/dist/types/src/primitives/Grid/index.d.ts.map +1 -0
  178. package/dist/types/src/primitives/Panel/Panel.d.ts +46 -0
  179. package/dist/types/src/primitives/Panel/Panel.d.ts.map +1 -0
  180. package/dist/types/src/primitives/Panel/Panel.stories.d.ts +6 -0
  181. package/dist/types/src/primitives/Panel/Panel.stories.d.ts.map +1 -0
  182. package/dist/types/src/primitives/Panel/index.d.ts +2 -0
  183. package/dist/types/src/primitives/Panel/index.d.ts.map +1 -0
  184. package/dist/types/src/primitives/index.d.ts +6 -0
  185. package/dist/types/src/primitives/index.d.ts.map +1 -0
  186. package/dist/types/src/testing/Loading.d.ts +9 -0
  187. package/dist/types/src/testing/Loading.d.ts.map +1 -0
  188. package/dist/types/src/testing/decorators/withLayout.d.ts +1 -1
  189. package/dist/types/src/testing/decorators/withLayout.d.ts.map +1 -1
  190. package/dist/types/src/testing/decorators/withLayoutVariants.d.ts.map +1 -1
  191. package/dist/types/src/testing/decorators/withTheme.d.ts +3 -2
  192. package/dist/types/src/testing/decorators/withTheme.d.ts.map +1 -1
  193. package/dist/types/src/testing/index.d.ts +1 -0
  194. package/dist/types/src/testing/index.d.ts.map +1 -1
  195. package/dist/types/src/translations.d.ts +11 -0
  196. package/dist/types/src/translations.d.ts.map +1 -0
  197. package/dist/types/src/util/usePx.d.ts.map +1 -1
  198. package/dist/types/tsconfig.tsbuildinfo +1 -1
  199. package/package.json +27 -22
  200. package/src/components/Avatars/Avatar.stories.tsx +7 -8
  201. package/src/components/Avatars/Avatar.tsx +5 -12
  202. package/src/components/Avatars/AvatarGroup.stories.tsx +2 -2
  203. package/src/components/Breadcrumb/Breadcrumb.stories.tsx +3 -3
  204. package/src/components/Breadcrumb/Breadcrumb.tsx +11 -37
  205. package/src/components/Button/Button.stories.tsx +3 -3
  206. package/src/components/Button/Button.tsx +11 -25
  207. package/src/components/Button/IconButton.stories.tsx +8 -5
  208. package/src/components/Button/IconButton.tsx +2 -3
  209. package/src/components/Button/Toggle.stories.tsx +2 -2
  210. package/src/components/Button/Toggle.tsx +4 -4
  211. package/src/components/Button/ToggleGroup.stories.tsx +2 -2
  212. package/src/components/Button/ToggleGroup.tsx +12 -16
  213. package/src/components/Card/Card.stories.tsx +151 -0
  214. package/src/components/Card/Card.tsx +492 -0
  215. package/src/components/Card/index.ts +5 -0
  216. package/src/components/Clipboard/CopyButton.tsx +4 -4
  217. package/src/components/Dialog/AlertDialog.stories.tsx +16 -16
  218. package/src/components/Dialog/AlertDialog.tsx +124 -82
  219. package/src/components/Dialog/Dialog.stories.tsx +98 -17
  220. package/src/components/Dialog/Dialog.tsx +113 -87
  221. package/src/components/ErrorFallback/ErrorFallback.stories.tsx +50 -0
  222. package/src/components/ErrorFallback/ErrorFallback.tsx +70 -0
  223. package/src/components/ErrorFallback/ErrorStack.tsx +80 -0
  224. package/src/components/ErrorFallback/ThrowError.tsx +37 -0
  225. package/src/components/ErrorFallback/index.ts +9 -0
  226. package/src/components/Focus/AUDIT.md +43 -0
  227. package/src/components/Focus/Focus.stories.tsx +230 -0
  228. package/src/components/Focus/Focus.tsx +201 -0
  229. package/src/components/Focus/index.ts +5 -0
  230. package/src/components/Icon/Icon.stories.tsx +45 -14
  231. package/src/components/Icon/Icon.tsx +6 -2
  232. package/src/components/Image/Image.stories.tsx +86 -0
  233. package/src/components/Image/Image.tsx +223 -0
  234. package/src/components/Image/index.ts +5 -0
  235. package/src/components/Input/Input.stories.tsx +20 -39
  236. package/src/components/Input/Input.tsx +24 -69
  237. package/src/components/Link/Link.stories.tsx +2 -2
  238. package/src/components/Link/Link.tsx +2 -2
  239. package/src/components/List/List.stories.tsx +15 -22
  240. package/src/components/List/List.tsx +16 -19
  241. package/src/components/List/ListDropIndicator.tsx +7 -7
  242. package/src/components/List/Tree.stories.tsx +5 -5
  243. package/src/components/List/TreeDropIndicator.tsx +6 -6
  244. package/src/components/List/Treegrid.stories.tsx +6 -6
  245. package/src/components/List/Treegrid.tsx +23 -28
  246. package/src/components/Main/Main.stories.tsx +6 -95
  247. package/src/components/Main/Main.tsx +61 -211
  248. package/src/components/Menu/ContextMenu.stories.tsx +2 -2
  249. package/src/components/Menu/ContextMenu.tsx +9 -33
  250. package/src/components/Menu/DropdownMenu.stories.tsx +2 -2
  251. package/src/components/Menu/DropdownMenu.tsx +58 -52
  252. package/src/components/Message/Message.stories.tsx +27 -12
  253. package/src/components/Message/Message.tsx +14 -30
  254. package/src/components/Popover/Popover.stories.tsx +4 -4
  255. package/src/components/Popover/Popover.tsx +62 -59
  256. package/src/components/ScrollArea/ScrollArea.stories.tsx +213 -73
  257. package/src/components/ScrollArea/ScrollArea.tsx +85 -113
  258. package/src/components/ScrollArea/index.ts +1 -1
  259. package/src/components/ScrollContainer/ScrollContainer.stories.tsx +45 -23
  260. package/src/components/ScrollContainer/ScrollContainer.tsx +206 -92
  261. package/src/components/Select/Select.stories.tsx +4 -4
  262. package/src/components/Select/Select.tsx +11 -27
  263. package/src/components/Separator/Separator.tsx +5 -8
  264. package/src/components/Skeleton/Skeleton.stories.tsx +52 -0
  265. package/src/components/Skeleton/Skeleton.tsx +26 -0
  266. package/src/components/Skeleton/index.ts +5 -0
  267. package/src/components/Splitter/Splitter.stories.tsx +83 -0
  268. package/src/components/Splitter/Splitter.tsx +139 -0
  269. package/src/components/Splitter/index.ts +5 -0
  270. package/src/components/Status/Status.stories.tsx +21 -17
  271. package/src/components/Status/Status.tsx +10 -7
  272. package/src/components/Tag/Tag.stories.tsx +4 -9
  273. package/src/components/Tag/Tag.tsx +2 -7
  274. package/src/components/ThemeProvider/ThemeProvider.stories.tsx +32 -0
  275. package/src/components/ThemeProvider/ThemeProvider.tsx +9 -6
  276. package/src/components/Toast/Toast.stories.tsx +2 -2
  277. package/src/components/Toast/Toast.tsx +22 -41
  278. package/src/components/Toolbar/Toolbar.stories.tsx +2 -2
  279. package/src/components/Toolbar/Toolbar.tsx +174 -26
  280. package/src/components/Tooltip/Tooltip.stories.tsx +16 -14
  281. package/src/components/Tooltip/Tooltip.tsx +18 -18
  282. package/src/components/index.ts +10 -5
  283. package/src/exemplars/generics.stories.tsx +41 -0
  284. package/src/exemplars/slot.stories.tsx +117 -0
  285. package/src/exemplars/tabster.stories.tsx +127 -0
  286. package/src/exemplars/virtualizer.stories.tsx +137 -0
  287. package/src/hooks/index.ts +1 -0
  288. package/src/hooks/useDensityContext.ts +2 -2
  289. package/src/index.ts +1 -0
  290. package/src/playground/Controls.stories.tsx +3 -10
  291. package/src/playground/Custom.stories.tsx +11 -21
  292. package/src/playground/Typography.stories.tsx +3 -3
  293. package/src/primitives/Column/AUDIT.md +354 -0
  294. package/src/primitives/Column/Column.stories.tsx +183 -0
  295. package/src/primitives/Column/Column.tsx +169 -0
  296. package/src/primitives/Column/index.ts +5 -0
  297. package/src/primitives/Container/Container.stories.tsx +30 -0
  298. package/src/primitives/Container/Container.tsx +19 -0
  299. package/src/primitives/Container/index.ts +5 -0
  300. package/src/primitives/Flex/Flex.stories.tsx +58 -0
  301. package/src/primitives/Flex/Flex.tsx +27 -0
  302. package/src/primitives/Flex/index.ts +5 -0
  303. package/src/primitives/Grid/Grid.stories.tsx +57 -0
  304. package/src/primitives/Grid/Grid.tsx +30 -0
  305. package/src/primitives/Grid/index.ts +5 -0
  306. package/src/primitives/Panel/Panel.stories.tsx +69 -0
  307. package/src/primitives/Panel/Panel.tsx +114 -0
  308. package/src/primitives/Panel/index.ts +5 -0
  309. package/src/primitives/index.ts +9 -0
  310. package/src/testing/Loading.tsx +26 -0
  311. package/src/testing/decorators/withLayout.tsx +21 -7
  312. package/src/testing/decorators/withLayoutVariants.tsx +18 -21
  313. package/src/testing/decorators/withTheme.tsx +24 -19
  314. package/src/testing/index.ts +2 -0
  315. package/src/translations.ts +19 -0
  316. package/src/util/usePx.ts +1 -0
  317. package/dist/lib/browser/chunk-CEKVHJ27.mjs.map +0 -7
  318. package/dist/lib/node-esm/chunk-2NHEX4AD.mjs.map +0 -7
  319. package/dist/types/src/components/AnchoredOverflow/AnchoredOverflow.d.ts +0 -15
  320. package/dist/types/src/components/AnchoredOverflow/AnchoredOverflow.d.ts.map +0 -1
  321. package/dist/types/src/components/AnchoredOverflow/index.d.ts +0 -2
  322. package/dist/types/src/components/AnchoredOverflow/index.d.ts.map +0 -1
  323. package/src/components/AnchoredOverflow/AnchoredOverflow.tsx +0 -59
  324. package/src/components/AnchoredOverflow/index.ts +0 -5
@@ -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,7 +195,7 @@ 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
  }, []);
@@ -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,12 +346,12 @@ 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,
@@ -324,12 +400,12 @@ var [PortalProvider, usePortalContext] = createTooltipContext(PORTAL_NAME, {
324
400
  var TooltipPortal = (props) => {
325
401
  const { __scopeTooltip, forceMount, children, container } = props;
326
402
  const context = useTooltipContext(PORTAL_NAME, __scopeTooltip);
327
- return /* @__PURE__ */ React2.createElement(PortalProvider, {
403
+ return /* @__PURE__ */ React5.createElement(PortalProvider, {
328
404
  scope: __scopeTooltip,
329
405
  forceMount
330
- }, /* @__PURE__ */ React2.createElement(Presence, {
406
+ }, /* @__PURE__ */ React5.createElement(Presence, {
331
407
  present: forceMount || context.open
332
- }, /* @__PURE__ */ React2.createElement(PortalPrimitive, {
408
+ }, /* @__PURE__ */ React5.createElement(PortalPrimitive, {
333
409
  asChild: true,
334
410
  container
335
411
  }, children)));
@@ -340,13 +416,13 @@ var TooltipContent = /* @__PURE__ */ forwardRef((props, forwardedRef) => {
340
416
  const portalContext = usePortalContext(CONTENT_NAME, props.__scopeTooltip);
341
417
  const { forceMount = portalContext.forceMount, side = "top", ...contentProps } = props;
342
418
  const context = useTooltipContext(CONTENT_NAME, props.__scopeTooltip);
343
- return /* @__PURE__ */ React2.createElement(Presence, {
419
+ return /* @__PURE__ */ React5.createElement(Presence, {
344
420
  present: forceMount || context.open
345
- }, context.disableHoverableContent ? /* @__PURE__ */ React2.createElement(TooltipContentImpl, {
421
+ }, context.disableHoverableContent ? /* @__PURE__ */ React5.createElement(TooltipContentImpl, {
346
422
  side,
347
423
  ...contentProps,
348
424
  ref: forwardedRef
349
- }) : /* @__PURE__ */ React2.createElement(TooltipContentHoverable, {
425
+ }) : /* @__PURE__ */ React5.createElement(TooltipContentHoverable, {
350
426
  side,
351
427
  ...contentProps,
352
428
  ref: forwardedRef
@@ -384,12 +460,12 @@ var TooltipContentHoverable = /* @__PURE__ */ forwardRef((props, forwardedRef) =
384
460
  }, [
385
461
  onPointerInTransitChange
386
462
  ]);
387
- useEffect2(() => {
463
+ useEffect3(() => {
388
464
  return () => handleRemoveGraceArea();
389
465
  }, [
390
466
  handleRemoveGraceArea
391
467
  ]);
392
- useEffect2(() => {
468
+ useEffect3(() => {
393
469
  if (trigger && content) {
394
470
  const handleTriggerLeave = (event) => handleCreateGraceArea(event, content);
395
471
  const handleContentLeave = (event) => handleCreateGraceArea(event, trigger);
@@ -406,7 +482,7 @@ var TooltipContentHoverable = /* @__PURE__ */ forwardRef((props, forwardedRef) =
406
482
  handleCreateGraceArea,
407
483
  handleRemoveGraceArea
408
484
  ]);
409
- useEffect2(() => {
485
+ useEffect3(() => {
410
486
  if (pointerGraceArea) {
411
487
  const handleTrackPointerGrace = (event) => {
412
488
  const target = event.target;
@@ -433,7 +509,7 @@ var TooltipContentHoverable = /* @__PURE__ */ forwardRef((props, forwardedRef) =
433
509
  onClose,
434
510
  handleRemoveGraceArea
435
511
  ]);
436
- return /* @__PURE__ */ React2.createElement(TooltipContentImpl, {
512
+ return /* @__PURE__ */ React5.createElement(TooltipContentImpl, {
437
513
  ...props,
438
514
  ref: composedRefs
439
515
  });
@@ -446,13 +522,13 @@ var TooltipContentImpl = /* @__PURE__ */ forwardRef((props, forwardedRef) => {
446
522
  const context = useTooltipContext(CONTENT_NAME, __scopeTooltip);
447
523
  const popperScope = usePopperScope(__scopeTooltip);
448
524
  const { onClose } = context;
449
- useEffect2(() => {
525
+ useEffect3(() => {
450
526
  document.addEventListener(TOOLTIP_OPEN, onClose);
451
527
  return () => document.removeEventListener(TOOLTIP_OPEN, onClose);
452
528
  }, [
453
529
  onClose
454
530
  ]);
455
- useEffect2(() => {
531
+ useEffect3(() => {
456
532
  if (context.trigger) {
457
533
  const handleScroll = (event) => {
458
534
  const target = event.target;
@@ -471,14 +547,14 @@ var TooltipContentImpl = /* @__PURE__ */ forwardRef((props, forwardedRef) => {
471
547
  context.trigger,
472
548
  onClose
473
549
  ]);
474
- return /* @__PURE__ */ React2.createElement(DismissableLayer, {
550
+ return /* @__PURE__ */ React5.createElement(DismissableLayer, {
475
551
  asChild: true,
476
552
  disableOutsidePointerEvents: false,
477
553
  onEscapeKeyDown,
478
554
  onPointerDownOutside,
479
555
  onFocusOutside: (event) => event.preventDefault(),
480
556
  onDismiss: onClose
481
- }, /* @__PURE__ */ React2.createElement(PopperPrimitive.Content, {
557
+ }, /* @__PURE__ */ React5.createElement(PopperPrimitive.Content, {
482
558
  "data-state": context.stateAttribute,
483
559
  ...popperScope,
484
560
  ...contentProps,
@@ -494,10 +570,10 @@ var TooltipContentImpl = /* @__PURE__ */ forwardRef((props, forwardedRef) => {
494
570
  "--radix-tooltip-trigger-height": "var(--radix-popper-anchor-height)"
495
571
  }
496
572
  }
497
- }, /* @__PURE__ */ React2.createElement(Slottable, null, children), /* @__PURE__ */ React2.createElement(VisuallyHiddenContentContextProvider, {
573
+ }, /* @__PURE__ */ React5.createElement(Slottable, null, children), /* @__PURE__ */ React5.createElement(VisuallyHiddenContentContextProvider, {
498
574
  scope: __scopeTooltip,
499
575
  isInside: true
500
- }, /* @__PURE__ */ React2.createElement(VisuallyHiddenPrimitive.Root, {
576
+ }, /* @__PURE__ */ React5.createElement(VisuallyHiddenPrimitive.Root, {
501
577
  id: context.contentId,
502
578
  role: "tooltip"
503
579
  }, ariaLabel || children))));
@@ -508,7 +584,7 @@ var TooltipArrow = /* @__PURE__ */ forwardRef((props, forwardedRef) => {
508
584
  const { __scopeTooltip, ...arrowProps } = props;
509
585
  const popperScope = usePopperScope(__scopeTooltip);
510
586
  const visuallyHiddenContentContext = useVisuallyHiddenContentContext(ARROW_NAME, __scopeTooltip);
511
- return visuallyHiddenContentContext.isInside ? null : /* @__PURE__ */ React2.createElement(PopperPrimitive.Arrow, {
587
+ return visuallyHiddenContentContext.isInside ? null : /* @__PURE__ */ React5.createElement(PopperPrimitive.Arrow, {
512
588
  ...popperScope,
513
589
  ...arrowProps,
514
590
  ref: forwardedRef
@@ -673,80 +749,6 @@ var Tooltip = {
673
749
  Trigger: TooltipTrigger
674
750
  };
675
751
 
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
704
- }
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);
715
- }
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))));
741
- };
742
- var handleInputModalityChange = (isUsingKeyboard) => {
743
- if (isUsingKeyboard) {
744
- document.body.setAttribute("data-is-keyboard", "true");
745
- } else {
746
- document.body.removeAttribute("data-is-keyboard");
747
- }
748
- };
749
-
750
752
  // src/hooks/useElevationContext.ts
751
753
  var useElevationContext = (propsElevation) => {
752
754
  const { elevation } = useContext3(ElevationContext);
@@ -754,21 +756,21 @@ var useElevationContext = (propsElevation) => {
754
756
  };
755
757
 
756
758
  export {
759
+ DensityContext,
760
+ DensityProvider,
761
+ ElevationContext,
762
+ ElevationProvider,
757
763
  useElevationContext,
758
764
  useThemeContext,
759
765
  initialSafeArea,
760
766
  useSafeArea,
761
767
  TranslationsContext,
762
768
  useTranslation,
763
- createTooltipScope,
764
- useTooltipContext,
765
- Tooltip,
766
769
  hasIosKeyboard,
767
- DensityContext,
768
- DensityProvider,
769
- ElevationContext,
770
- ElevationProvider,
771
770
  ThemeContext,
772
- ThemeProvider
771
+ ThemeProvider,
772
+ createTooltipScope,
773
+ useTooltipContext,
774
+ Tooltip
773
775
  };
774
- //# sourceMappingURL=chunk-CEKVHJ27.mjs.map
776
+ //# sourceMappingURL=chunk-LUPEFGHJ.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/components/DensityProvider/DensityProvider.tsx", "../../../src/components/ElevationProvider/ElevationProvider.tsx", "../../../src/hooks/useElevationContext.ts", "../../../src/components/ThemeProvider/ThemeProvider.tsx", "../../../src/hooks/useThemeContext.ts", "../../../src/hooks/useSafeArea.ts", "../../../src/components/ThemeProvider/TranslationsProvider.tsx", "../../../src/util/hasIosKeyboard.ts", "../../../src/components/Tooltip/Tooltip.tsx"],
4
+ "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport React, { type PropsWithChildren, createContext } from 'react';\n\nimport { type Density } from '@dxos/ui-types';\n\nexport interface DensityContextValue {\n density?: Density;\n}\n\nexport type DensityProviderProps = PropsWithChildren<{\n density?: Density;\n}>;\n\nexport const DensityContext = createContext<DensityContextValue>({ density: 'fine' });\n\nexport const DensityProvider = ({ density, children }: DensityProviderProps) => (\n <DensityContext.Provider value={{ density }}>{children}</DensityContext.Provider>\n);\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport React, { type PropsWithChildren, createContext } from 'react';\n\nimport { type Elevation } from '@dxos/ui-types';\n\nexport interface ElevationContextValue {\n elevation?: Elevation;\n}\n\nexport type ElevationProviderProps = PropsWithChildren<{\n elevation?: Elevation;\n}>;\n\nexport const ElevationContext = createContext<ElevationContextValue>({ elevation: 'base' });\n\nexport const ElevationProvider = ({ elevation, children }: ElevationProviderProps) => (\n <ElevationContext.Provider value={{ elevation }}>{children}</ElevationContext.Provider>\n);\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { useContext } from 'react';\n\nimport { type Elevation } from '@dxos/ui-types';\n\nimport { ElevationContext } from '../components';\n\nexport const useElevationContext = (propsElevation?: Elevation) => {\n const { elevation } = useContext(ElevationContext);\n return propsElevation ?? elevation;\n};\n", "//\n// Copyright 2022 DXOS.org\n//\n\nimport { createKeyborg } from 'keyborg';\nimport React, { type PropsWithChildren, createContext, useEffect, useMemo } from 'react';\n\nimport { type Density, type Elevation, type ThemeFunction, type ThemeMode } from '@dxos/ui-types';\n\nimport { type SafeAreaPadding, useSafeArea } from '../../hooks';\nimport { hasIosKeyboard } from '../../util';\nimport { DensityProvider } from '../DensityProvider';\nimport { ElevationProvider } from '../ElevationProvider';\n\nimport { TranslationsProvider, type TranslationsProviderProps } from './TranslationsProvider';\n\nexport type ThemeContextValue = {\n tx: ThemeFunction<any>;\n themeMode: ThemeMode;\n hasIosKeyboard: boolean;\n safeAreaPadding?: SafeAreaPadding;\n noCache?: boolean;\n platform?: 'mobile' | 'desktop';\n};\n\n/**\n * @internal\n */\nexport const ThemeContext = createContext<ThemeContextValue | undefined>(undefined);\n\nexport type ThemeProviderProps = Omit<TranslationsProviderProps, 'children'> &\n Partial<Omit<ThemeContextValue, 'safeAreaPadding'>> &\n PropsWithChildren<{\n rootDensity?: Density;\n rootElevation?: Elevation;\n }>;\n\nexport const ThemeProvider = ({\n children,\n fallback = null,\n resourceExtensions,\n appNs,\n tx = (_path, _styleProps, ..._options) => undefined,\n themeMode = 'dark',\n rootDensity = 'fine',\n noCache,\n platform,\n}: ThemeProviderProps) => {\n useEffect(() => {\n if (document.defaultView) {\n const kb = createKeyborg(document.defaultView);\n kb.subscribe(handleInputModalityChange);\n return () => kb.unsubscribe(handleInputModalityChange);\n }\n }, []);\n\n const safeAreaPadding = useSafeArea();\n // Destructure all props explicitly so useMemo deps are stable primitives, not a new `rest` object every render.\n const contextValue = useMemo(\n () => ({ tx, themeMode, hasIosKeyboard: hasIosKeyboard(), safeAreaPadding, noCache, platform }),\n [tx, themeMode, safeAreaPadding, noCache, platform],\n );\n\n return (\n <ThemeContext.Provider value={contextValue}>\n <TranslationsProvider\n {...{\n fallback,\n resourceExtensions,\n appNs,\n }}\n >\n <ElevationProvider elevation='base'>\n <DensityProvider density={rootDensity}>{children}</DensityProvider>\n </ElevationProvider>\n </TranslationsProvider>\n </ThemeContext.Provider>\n );\n};\n\nconst handleInputModalityChange = (isUsingKeyboard: boolean) => {\n if (isUsingKeyboard) {\n document.body.setAttribute('data-w-keyboard', 'true');\n } else {\n document.body.removeAttribute('data-w-keyboard');\n }\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { useContext } from 'react';\n\nimport { raise } from '@dxos/debug';\n\nimport { ThemeContext } from '../components';\n\nexport const useThemeContext = () => useContext(ThemeContext) ?? raise(new Error('Missing ThemeContext'));\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { useCallback, useState } from 'react';\n\nimport { useViewportResize } from '@dxos/react-hooks';\n\nexport type SafeAreaPadding = Record<'top' | 'right' | 'bottom' | 'left', number>;\n\nexport const initialSafeArea = { top: NaN, right: NaN, bottom: NaN, left: NaN };\n\nexport const useSafeArea = (): SafeAreaPadding => {\n const [padding, setPadding] = useState<SafeAreaPadding>(initialSafeArea);\n const handleResize = useCallback(() => {\n setPadding({\n top: parseFloat(getComputedStyle(document.documentElement).getPropertyValue('--safe-area-top')),\n right: parseFloat(getComputedStyle(document.documentElement).getPropertyValue('--safe-area-right')),\n bottom: parseFloat(getComputedStyle(document.documentElement).getPropertyValue('--safe-area-bottom')),\n left: parseFloat(getComputedStyle(document.documentElement).getPropertyValue('--safe-area-left')),\n });\n }, []);\n\n useViewportResize(handleResize);\n return padding;\n};\n", "//\n// Copyright 2022 DXOS.org\n//\n\nimport { type Locale, enUS as dtLocaleEnUs } from 'date-fns/locale';\nimport i18Next, { type Resource } from 'i18next';\nimport React, { type ReactNode, Suspense, createContext, useContext, useEffect, useState } from 'react';\nimport { initReactI18next, useTranslation as useI18NextTranslation } from 'react-i18next';\n\nconst initialLng = 'en-US';\nconst initialNs = 'dxos-common';\nconst initialDtLocale = dtLocaleEnUs;\n\nexport const resources = {\n [initialLng]: {\n [initialNs]: {\n 'loading translations': 'Loading translations…',\n },\n },\n} as const satisfies Resource;\n\nvoid i18Next.use(initReactI18next).init({\n resources,\n lng: initialLng,\n defaultNS: initialNs,\n interpolation: {\n escapeValue: false,\n },\n});\n\nexport interface TranslationsProviderProps {\n children?: ReactNode;\n // TODO(wittjosiah): Rename to `placeholder` to match ClientProvider?\n // Placeholder => loading, fallback => error.\n fallback?: ReactNode;\n resourceExtensions?: Resource[];\n appNs?: string;\n dtLocale?: Locale;\n}\n\nexport const TranslationsContext = createContext({\n appNs: initialNs,\n dtLocale: initialDtLocale,\n});\n\nexport const useTranslation = (...args: Parameters<typeof useI18NextTranslation>) => {\n const result = useI18NextTranslation(...args);\n const { dtLocale } = useContext(TranslationsContext);\n return { ...result, dtLocale };\n};\n\nexport const TranslationsProvider = ({\n fallback,\n resourceExtensions,\n children,\n appNs,\n dtLocale,\n}: TranslationsProviderProps) => {\n const [loaded, setLoaded] = useState(false);\n useEffect(() => {\n setLoaded(false);\n if (resourceExtensions && resourceExtensions.length) {\n resourceExtensions.forEach((resource) => {\n Object.keys(resource).forEach((language) => {\n Object.keys(resource[language]).forEach((ns) => {\n i18Next.addResourceBundle(language, ns, resource[language][ns]);\n });\n });\n });\n }\n\n setLoaded(true);\n }, [resourceExtensions]);\n\n // TODO(thure): This is not ideal, but i18next was causing `Suspense` to not render the fallback even when the child was asking for namespaces yet to be added.\n // TODO(burdon): Fallbacks should only appear after a short delay, and if the displayed then be visible for 500mx to avoid startup flickering.\n return (\n <TranslationsContext.Provider value={{ appNs: appNs ?? initialNs, dtLocale: dtLocale ?? initialDtLocale }}>\n <Suspense fallback={fallback}>{loaded ? children : fallback}</Suspense>\n </TranslationsContext.Provider>\n );\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nexport const hasIosKeyboard = () => {\n // TODO(thure): UA sniffing is never good, however I haven’t found a better way to query for whether the on-screen keyboard will appear on `focus` outside of a click handler.\n return !!navigator.userAgent.match(/iP(ad|od|hone).+Safari/);\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\n// This is based upon `@radix-ui/react-tooltip` fetched 17 March 2025 at https://github.com/radix-ui/primitives at commit 6e75e11.\n// TODO(burdon): Replace with https://ui.shadcn.com/docs/components/radix/tooltip\n\nimport { composeEventHandlers } from '@radix-ui/primitive';\nimport { useComposedRefs } from '@radix-ui/react-compose-refs';\nimport { createContextScope } from '@radix-ui/react-context';\nimport type { Scope } from '@radix-ui/react-context';\nimport { DismissableLayer } from '@radix-ui/react-dismissable-layer';\nimport { useId } from '@radix-ui/react-id';\nimport * as PopperPrimitive from '@radix-ui/react-popper';\nimport { type PopperAnchorProps, createPopperScope } from '@radix-ui/react-popper';\nimport { Portal as PortalPrimitive } from '@radix-ui/react-portal';\nimport { Presence } from '@radix-ui/react-presence';\nimport { Primitive } from '@radix-ui/react-primitive';\nimport { Slottable } from '@radix-ui/react-slot';\nimport { type TooltipProps } from '@radix-ui/react-tooltip';\nimport { useControllableState } from '@radix-ui/react-use-controllable-state';\nimport * as VisuallyHiddenPrimitive from '@radix-ui/react-visually-hidden';\nimport React, {\n type ComponentPropsWithoutRef,\n type ComponentRef,\n type FC,\n type ReactNode,\n type RefObject,\n type SyntheticEvent,\n forwardRef,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\n\nimport { useElevationContext, useThemeContext } from '../../hooks';\n\ntype TooltipScopedProps<P = {}> = P & { __scopeTooltip?: Scope };\nconst [createTooltipContext, createTooltipScope] = createContextScope('Tooltip', [createPopperScope]);\nconst usePopperScope = createPopperScope();\n\n//\n// Tooltip\n//\n\nconst DEFAULT_DELAY_DURATION = 700;\nconst TOOLTIP_OPEN = 'tooltip.open';\nconst TOOLTIP_NAME = 'Tooltip';\n\ntype TooltipContextValue = {\n contentId: string;\n open: boolean;\n stateAttribute: 'closed' | 'delayed-open' | 'instant-open';\n trigger: TooltipTriggerElement | null;\n onTriggerChange(trigger: TooltipTriggerElement | null): void;\n onTriggerEnter(): void;\n onTriggerLeave(): void;\n onOpen(): void;\n onClose(): void;\n onPointerInTransitChange(inTransit: boolean): void;\n isPointerInTransitRef: RefObject<boolean>;\n disableHoverableContent: boolean;\n};\n\nconst [TooltipContextProvider, useTooltipContext] = createTooltipContext<TooltipContextValue>(TOOLTIP_NAME);\n\ntype TooltipProviderProps = {\n children?: ReactNode;\n open?: boolean;\n defaultOpen?: boolean;\n onOpenChange?: (open: boolean) => void;\n /**\n * The duration from when the pointer enters the trigger until the tooltip gets opened. This will\n * override the prop with the same name passed to Provider.\n * @defaultValue 700\n */\n delayDuration?: number;\n /**\n * When `true`, trying to hover the content will result in the tooltip closing as the pointer leaves the trigger.\n * @defaultValue false\n */\n disableHoverableContent?: boolean;\n /**\n * How much time a user has to enter another trigger without incurring a delay again.\n * @defaultValue 300\n */\n skipDelayDuration?: number;\n};\n\nconst TooltipProvider: FC<TooltipProviderProps> = (props: TooltipScopedProps<TooltipProviderProps>) => {\n const {\n __scopeTooltip,\n children,\n open: openProp,\n defaultOpen = false,\n onOpenChange,\n disableHoverableContent = false,\n delayDuration = DEFAULT_DELAY_DURATION,\n skipDelayDuration = 300,\n } = props;\n const isOpenDelayedRef = useRef(true);\n const isPointerInTransitRef = useRef(false);\n const skipDelayTimerRef = useRef(0);\n\n useEffect(() => {\n const skipDelayTimer = skipDelayTimerRef.current;\n return () => window.clearTimeout(skipDelayTimer);\n }, []);\n\n const popperScope = usePopperScope(__scopeTooltip);\n const [trigger, setTrigger] = useState<HTMLButtonElement | null>(null);\n const [content, setContent] = useState<string>('');\n const [side, setSide] = useState<TooltipSide | undefined>(undefined);\n const triggerRef = useRef<HTMLButtonElement | null>(trigger);\n const handleTriggerChange = useCallback((nextTrigger: HTMLButtonElement | null) => {\n setTrigger(nextTrigger);\n triggerRef.current = nextTrigger;\n setContent(nextTrigger?.getAttribute('data-tooltip-content') ?? '');\n setSide((nextTrigger?.getAttribute('data-tooltip-side') as TooltipSide | null) ?? undefined);\n }, []);\n const contentId = useId();\n const openTimerRef = useRef(0);\n const wasOpenDelayedRef = useRef(false);\n const handleOpenChange = useCallback(\n (open: boolean) => {\n if (open) {\n window.clearTimeout(skipDelayTimerRef.current);\n isOpenDelayedRef.current = false;\n // as `onChange` is called within a lifecycle method we\n // avoid dispatching via `dispatchDiscreteCustomEvent`.\n document.dispatchEvent(new CustomEvent(TOOLTIP_OPEN));\n } else {\n window.clearTimeout(skipDelayTimerRef.current);\n skipDelayTimerRef.current = window.setTimeout(() => (isOpenDelayedRef.current = true), skipDelayDuration);\n }\n onOpenChange?.(open);\n },\n [skipDelayDuration, onOpenChange],\n );\n const [open = false, setOpen] = useControllableState({\n prop: openProp,\n defaultProp: defaultOpen,\n onChange: handleOpenChange,\n });\n const stateAttribute = useMemo(() => {\n return open ? (wasOpenDelayedRef.current ? 'delayed-open' : 'instant-open') : 'closed';\n }, [open]);\n\n const handleOpen = useCallback(() => {\n window.clearTimeout(openTimerRef.current);\n openTimerRef.current = 0;\n wasOpenDelayedRef.current = false;\n setOpen(true);\n }, [setOpen]);\n\n const handleClose = useCallback(() => {\n window.clearTimeout(openTimerRef.current);\n openTimerRef.current = 0;\n setOpen(false);\n }, [setOpen]);\n\n const handleDelayedOpen = useCallback(() => {\n window.clearTimeout(openTimerRef.current);\n openTimerRef.current = window.setTimeout(() => {\n wasOpenDelayedRef.current = true;\n setOpen(true);\n openTimerRef.current = 0;\n }, delayDuration);\n }, [delayDuration, setOpen]);\n\n useEffect(() => {\n return () => {\n if (openTimerRef.current) {\n window.clearTimeout(openTimerRef.current);\n openTimerRef.current = 0;\n }\n };\n }, []);\n\n const { tx } = useThemeContext();\n const elevation = useElevationContext();\n\n return (\n <PopperPrimitive.Root {...popperScope}>\n <TooltipContextProvider\n scope={__scopeTooltip}\n contentId={contentId}\n open={open}\n stateAttribute={stateAttribute}\n trigger={trigger}\n onTriggerChange={handleTriggerChange}\n onTriggerEnter={useCallback(() => {\n if (isOpenDelayedRef.current) {\n handleDelayedOpen();\n } else {\n handleOpen();\n }\n }, [isOpenDelayedRef, handleDelayedOpen, handleOpen])}\n onTriggerLeave={useCallback(() => {\n if (disableHoverableContent) {\n handleClose();\n } else {\n // Clear the timer in case the pointer leaves the trigger before the tooltip is opened.\n window.clearTimeout(openTimerRef.current);\n openTimerRef.current = 0;\n }\n }, [handleClose, disableHoverableContent])}\n onOpen={handleOpen}\n onClose={handleClose}\n disableHoverableContent={disableHoverableContent}\n isPointerInTransitRef={isPointerInTransitRef}\n onPointerInTransitChange={useCallback((inTransit: boolean) => {\n isPointerInTransitRef.current = inTransit;\n }, [])}\n >\n <TooltipContent side={side} className={tx('tooltip.content', { elevation })}>\n {content}\n <TooltipArrow className={tx('tooltip.arrow')} />\n </TooltipContent>\n <TooltipVirtualTrigger virtualRef={triggerRef as RefObject<HTMLButtonElement>} />\n {children}\n </TooltipContextProvider>\n </PopperPrimitive.Root>\n );\n};\n\nTooltipProvider.displayName = TOOLTIP_NAME;\n\n//\n// TooltipVirtualTrigger\n//\n\nconst TooltipVirtualTrigger = ({\n virtualRef,\n __scopeTooltip,\n}: TooltipScopedProps<Pick<PopperAnchorProps, 'virtualRef'>>) => {\n const popperScope = usePopperScope(__scopeTooltip);\n return <PopperPrimitive.Anchor asChild {...popperScope} virtualRef={virtualRef} />;\n};\n\n//\n// TooltipTrigger\n//\n\nconst TRIGGER_NAME = 'TooltipTrigger';\n\ntype TooltipTriggerElement = ComponentRef<typeof Primitive.button>;\ntype PrimitiveButtonProps = ComponentPropsWithoutRef<typeof Primitive.button>;\ntype TooltipTriggerProps = PrimitiveButtonProps &\n Pick<TooltipProps, 'delayDuration'> & {\n content?: string;\n side?: TooltipSide;\n onInteract?: (event: SyntheticEvent) => void;\n };\n\nconst TooltipTrigger = forwardRef<TooltipTriggerElement, TooltipTriggerProps>(\n (props: TooltipScopedProps<TooltipTriggerProps>, forwardedRef) => {\n const {\n __scopeTooltip,\n onInteract,\n // TODO(thure): Pass `delayDuration` into the context.\n delayDuration: _delayDuration,\n side,\n content,\n ...triggerProps\n } = props;\n const context = useTooltipContext(TRIGGER_NAME, __scopeTooltip);\n const ref = useRef<TooltipTriggerElement>(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n const isPointerDownRef = useRef(false);\n const hasPointerMoveOpenedRef = useRef(false);\n const handlePointerUp = useCallback(() => (isPointerDownRef.current = false), []);\n\n useEffect(() => {\n return () => document.removeEventListener('pointerup', handlePointerUp);\n }, [handlePointerUp]);\n\n return (\n <Primitive.button\n // We purposefully avoid adding `type=button` here because tooltip triggers are also\n // commonly anchors and the anchor `type` attribute signifies MIME type.\n aria-describedby={context.open ? context.contentId : undefined}\n data-state={context.stateAttribute}\n data-tooltip-content={content}\n data-tooltip-side={side}\n {...triggerProps}\n ref={composedRefs}\n onPointerMove={composeEventHandlers(props.onPointerMove, (event) => {\n if (event.pointerType === 'touch') {\n return;\n }\n if (!hasPointerMoveOpenedRef.current && !context.isPointerInTransitRef.current) {\n onInteract?.(event);\n if (event.defaultPrevented) {\n return;\n }\n context.onTriggerChange(ref.current);\n context.onTriggerEnter();\n hasPointerMoveOpenedRef.current = true;\n }\n })}\n onPointerLeave={composeEventHandlers(props.onPointerLeave, () => {\n context.onTriggerLeave();\n hasPointerMoveOpenedRef.current = false;\n })}\n onPointerDown={composeEventHandlers(props.onPointerDown, () => {\n if (context.open) {\n context.onClose();\n }\n isPointerDownRef.current = true;\n document.addEventListener('pointerup', handlePointerUp, { once: true });\n })}\n onFocus={props.onFocus}\n onBlur={composeEventHandlers(props.onBlur, context.onClose)}\n onClick={composeEventHandlers(props.onClick, context.onClose)}\n />\n );\n },\n);\n\nTooltipTrigger.displayName = TRIGGER_NAME;\n\n//\n// TooltipPortal\n//\n\nconst PORTAL_NAME = 'TooltipPortal';\n\ntype PortalContextValue = { forceMount?: true };\nconst [PortalProvider, usePortalContext] = createTooltipContext<PortalContextValue>(PORTAL_NAME, {\n forceMount: undefined,\n});\n\ntype PortalProps = ComponentPropsWithoutRef<typeof PortalPrimitive>;\ntype TooltipPortalProps = {\n children?: ReactNode;\n /**\n * Specify a container element to portal the content into.\n */\n container?: PortalProps['container'];\n /**\n * Used to force mounting when more control is needed. Useful when\n * controlling animation with React animation libraries.\n */\n forceMount?: true;\n};\n\nconst TooltipPortal: FC<TooltipPortalProps> = (props: TooltipScopedProps<TooltipPortalProps>) => {\n const { __scopeTooltip, forceMount, children, container } = props;\n const context = useTooltipContext(PORTAL_NAME, __scopeTooltip);\n return (\n <PortalProvider scope={__scopeTooltip} forceMount={forceMount}>\n <Presence present={forceMount || context.open}>\n <PortalPrimitive asChild container={container}>\n {children}\n </PortalPrimitive>\n </Presence>\n </PortalProvider>\n );\n};\n\nTooltipPortal.displayName = PORTAL_NAME;\n\n//\n// TooltipContent\n//\n\nconst CONTENT_NAME = 'TooltipContent';\n\ntype TooltipContentElement = TooltipContentImplElement;\ntype TooltipContentProps = TooltipContentImplProps & {\n /**\n * Used to force mounting when more control is needed. Useful when\n * controlling animation with React animation libraries.\n */\n forceMount?: true;\n};\n\nconst TooltipContent = forwardRef<TooltipContentElement, TooltipContentProps>(\n (props: TooltipScopedProps<TooltipContentProps>, forwardedRef) => {\n const portalContext = usePortalContext(CONTENT_NAME, props.__scopeTooltip);\n const { forceMount = portalContext.forceMount, side = 'top', ...contentProps } = props;\n const context = useTooltipContext(CONTENT_NAME, props.__scopeTooltip);\n\n return (\n <Presence present={forceMount || context.open}>\n {context.disableHoverableContent ? (\n <TooltipContentImpl side={side} {...contentProps} ref={forwardedRef} />\n ) : (\n <TooltipContentHoverable side={side} {...contentProps} ref={forwardedRef} />\n )}\n </Presence>\n );\n },\n);\n\ntype Point = { x: number; y: number };\ntype Polygon = Point[];\n\ntype TooltipContentHoverableElement = TooltipContentImplElement;\ntype TooltipContentHoverableProps = TooltipContentImplProps;\n\nconst TooltipContentHoverable = forwardRef<TooltipContentHoverableElement, TooltipContentHoverableProps>(\n (props: TooltipScopedProps<TooltipContentHoverableProps>, forwardedRef) => {\n const context = useTooltipContext(CONTENT_NAME, props.__scopeTooltip);\n const ref = useRef<TooltipContentHoverableElement>(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n const [pointerGraceArea, setPointerGraceArea] = useState<Polygon | null>(null);\n\n const { trigger, onClose } = context;\n const content = ref.current;\n\n const { onPointerInTransitChange } = context;\n\n const handleRemoveGraceArea = useCallback(() => {\n setPointerGraceArea(null);\n onPointerInTransitChange(false);\n }, [onPointerInTransitChange]);\n\n const handleCreateGraceArea = useCallback(\n (event: PointerEvent, hoverTarget: HTMLElement) => {\n const currentTarget = event.currentTarget as HTMLElement;\n const exitPoint = { x: event.clientX, y: event.clientY };\n const exitSide = getExitSideFromRect(exitPoint, currentTarget.getBoundingClientRect());\n const paddedExitPoints = getPaddedExitPoints(exitPoint, exitSide);\n const hoverTargetPoints = getPointsFromRect(hoverTarget.getBoundingClientRect());\n const graceArea = getHull([...paddedExitPoints, ...hoverTargetPoints]);\n setPointerGraceArea(graceArea);\n onPointerInTransitChange(true);\n },\n [onPointerInTransitChange],\n );\n\n useEffect(() => {\n return () => handleRemoveGraceArea();\n }, [handleRemoveGraceArea]);\n\n useEffect(() => {\n if (trigger && content) {\n const handleTriggerLeave = (event: PointerEvent) => handleCreateGraceArea(event, content);\n const handleContentLeave = (event: PointerEvent) => handleCreateGraceArea(event, trigger);\n\n trigger.addEventListener('pointerleave', handleTriggerLeave);\n content.addEventListener('pointerleave', handleContentLeave);\n return () => {\n trigger.removeEventListener('pointerleave', handleTriggerLeave);\n content.removeEventListener('pointerleave', handleContentLeave);\n };\n }\n }, [trigger, content, handleCreateGraceArea, handleRemoveGraceArea]);\n\n useEffect(() => {\n if (pointerGraceArea) {\n const handleTrackPointerGrace = (event: PointerEvent) => {\n const target = event.target as HTMLElement;\n const pointerPosition = { x: event.clientX, y: event.clientY };\n const hasEnteredTarget = trigger?.contains(target) || content?.contains(target);\n const isPointerOutsideGraceArea = !isPointInPolygon(pointerPosition, pointerGraceArea);\n\n if (hasEnteredTarget) {\n handleRemoveGraceArea();\n } else if (isPointerOutsideGraceArea) {\n handleRemoveGraceArea();\n onClose();\n }\n };\n document.addEventListener('pointermove', handleTrackPointerGrace);\n return () => document.removeEventListener('pointermove', handleTrackPointerGrace);\n }\n }, [trigger, content, pointerGraceArea, onClose, handleRemoveGraceArea]);\n\n return <TooltipContentImpl {...props} ref={composedRefs} />;\n },\n);\n\nconst [VisuallyHiddenContentContextProvider, useVisuallyHiddenContentContext] = createTooltipContext(TOOLTIP_NAME, {\n isInside: false,\n});\n\ntype TooltipContentImplElement = ComponentRef<typeof PopperPrimitive.Content>;\ntype DismissableLayerProps = ComponentPropsWithoutRef<typeof DismissableLayer>;\ntype PopperContentProps = ComponentPropsWithoutRef<typeof PopperPrimitive.Content>;\ntype TooltipContentImplProps = Omit<PopperContentProps, 'onPlaced'> & {\n /**\n * A more descriptive label for accessibility purpose\n */\n 'aria-label'?: string;\n\n /**\n * Event handler called when the escape key is down.\n * Can be prevented.\n */\n onEscapeKeyDown?: DismissableLayerProps['onEscapeKeyDown'];\n /**\n * Event handler called when the a `pointerdown` event happens outside of the `Tooltip`.\n * Can be prevented.\n */\n onPointerDownOutside?: DismissableLayerProps['onPointerDownOutside'];\n};\n\nconst TooltipContentImpl = forwardRef<TooltipContentImplElement, TooltipContentImplProps>(\n (props: TooltipScopedProps<TooltipContentImplProps>, forwardedRef) => {\n const {\n __scopeTooltip,\n children,\n 'aria-label': ariaLabel,\n onEscapeKeyDown,\n onPointerDownOutside,\n ...contentProps\n } = props;\n const context = useTooltipContext(CONTENT_NAME, __scopeTooltip);\n const popperScope = usePopperScope(__scopeTooltip);\n const { onClose } = context;\n\n // Close this tooltip if another one opens\n useEffect(() => {\n document.addEventListener(TOOLTIP_OPEN, onClose);\n return () => document.removeEventListener(TOOLTIP_OPEN, onClose);\n }, [onClose]);\n\n // Close the tooltip if the trigger is scrolled\n useEffect(() => {\n if (context.trigger) {\n const handleScroll = (event: Event) => {\n const target = event.target as HTMLElement;\n if (target?.contains(context.trigger)) {\n onClose();\n }\n };\n window.addEventListener('scroll', handleScroll, { capture: true });\n return () => window.removeEventListener('scroll', handleScroll, { capture: true });\n }\n }, [context.trigger, onClose]);\n\n return (\n <DismissableLayer\n asChild\n disableOutsidePointerEvents={false}\n onEscapeKeyDown={onEscapeKeyDown}\n onPointerDownOutside={onPointerDownOutside}\n onFocusOutside={(event) => event.preventDefault()}\n onDismiss={onClose}\n >\n <PopperPrimitive.Content\n data-state={context.stateAttribute}\n {...popperScope}\n {...contentProps}\n ref={forwardedRef}\n style={{\n ...contentProps.style,\n // re-namespace exposed content custom properties\n ...{\n '--radix-tooltip-content-transform-origin': 'var(--radix-popper-transform-origin)',\n '--radix-tooltip-content-available-width': 'var(--radix-popper-available-width)',\n '--radix-tooltip-content-available-height': 'var(--radix-popper-available-height)',\n '--radix-tooltip-trigger-width': 'var(--radix-popper-anchor-width)',\n '--radix-tooltip-trigger-height': 'var(--radix-popper-anchor-height)',\n },\n }}\n >\n <Slottable>{children}</Slottable>\n <VisuallyHiddenContentContextProvider scope={__scopeTooltip} isInside={true}>\n <VisuallyHiddenPrimitive.Root id={context.contentId} role='tooltip'>\n {ariaLabel || children}\n </VisuallyHiddenPrimitive.Root>\n </VisuallyHiddenContentContextProvider>\n </PopperPrimitive.Content>\n </DismissableLayer>\n );\n },\n);\n\nTooltipContent.displayName = CONTENT_NAME;\n\n//\n// TooltipArrow\n//\n\nconst ARROW_NAME = 'TooltipArrow';\n\ntype TooltipArrowElement = ComponentRef<typeof PopperPrimitive.Arrow>;\ntype PopperArrowProps = ComponentPropsWithoutRef<typeof PopperPrimitive.Arrow>;\ntype TooltipArrowProps = PopperArrowProps;\n\nconst TooltipArrow = forwardRef<TooltipArrowElement, TooltipArrowProps>(\n (props: TooltipScopedProps<TooltipArrowProps>, forwardedRef) => {\n const { __scopeTooltip, ...arrowProps } = props;\n const popperScope = usePopperScope(__scopeTooltip);\n const visuallyHiddenContentContext = useVisuallyHiddenContentContext(ARROW_NAME, __scopeTooltip);\n // if the arrow is inside the `VisuallyHidden`, we don't want to render it all to\n // prevent issues in positioning the arrow due to the duplicate\n return visuallyHiddenContentContext.isInside ? null : (\n <PopperPrimitive.Arrow {...popperScope} {...arrowProps} ref={forwardedRef} />\n );\n },\n);\n\nTooltipArrow.displayName = ARROW_NAME;\n\ntype TooltipSide = NonNullable<TooltipContentProps['side']>;\n\nconst getExitSideFromRect = (point: Point, rect: DOMRect): TooltipSide => {\n const top = Math.abs(rect.top - point.y);\n const bottom = Math.abs(rect.bottom - point.y);\n const right = Math.abs(rect.right - point.x);\n const left = Math.abs(rect.left - point.x);\n\n switch (Math.min(top, bottom, right, left)) {\n case left:\n return 'left';\n case right:\n return 'right';\n case top:\n return 'top';\n case bottom:\n return 'bottom';\n default:\n throw new Error('unreachable');\n }\n};\n\nconst getPaddedExitPoints = (exitPoint: Point, exitSide: TooltipSide, padding = 5) => {\n const paddedExitPoints: Point[] = [];\n switch (exitSide) {\n case 'top':\n paddedExitPoints.push(\n { x: exitPoint.x - padding, y: exitPoint.y + padding },\n { x: exitPoint.x + padding, y: exitPoint.y + padding },\n );\n break;\n case 'bottom':\n paddedExitPoints.push(\n { x: exitPoint.x - padding, y: exitPoint.y - padding },\n { x: exitPoint.x + padding, y: exitPoint.y - padding },\n );\n break;\n case 'left':\n paddedExitPoints.push(\n { x: exitPoint.x + padding, y: exitPoint.y - padding },\n { x: exitPoint.x + padding, y: exitPoint.y + padding },\n );\n break;\n case 'right':\n paddedExitPoints.push(\n { x: exitPoint.x - padding, y: exitPoint.y - padding },\n { x: exitPoint.x - padding, y: exitPoint.y + padding },\n );\n break;\n }\n return paddedExitPoints;\n};\n\nconst getPointsFromRect = (rect: DOMRect) => {\n const { top, right, bottom, left } = rect;\n return [\n { x: left, y: top },\n { x: right, y: top },\n { x: right, y: bottom },\n { x: left, y: bottom },\n ];\n};\n\n// Determine if a point is inside of a polygon.\n// Based on https://github.com/substack/point-in-polygon\nconst isPointInPolygon = (point: Point, polygon: Polygon) => {\n const { x, y } = point;\n let inside = false;\n for (let i = 0, j = polygon.length - 1; i < polygon.length; j = i++) {\n const xi = polygon[i].x;\n const yi = polygon[i].y;\n const xj = polygon[j].x;\n const yj = polygon[j].y;\n\n // prettier-ignore\n const intersect = ((yi > y) !== (yj > y)) && (x < (xj - xi) * (y - yi) / (yj - yi) + xi);\n if (intersect) {\n inside = !inside;\n }\n }\n\n return inside;\n};\n\n// Returns a new array of points representing the convex hull of the given set of points.\n// https://www.nayuki.io/page/convex-hull-algorithm\nconst getHull = <P extends Point>(points: Readonly<Array<P>>): Array<P> => {\n const newPoints: Array<P> = points.slice();\n newPoints.sort((a: Point, b: Point) => {\n if (a.x < b.x) {\n return -1;\n } else if (a.x > b.x) {\n return +1;\n } else if (a.y < b.y) {\n return -1;\n } else if (a.y > b.y) {\n return +1;\n } else {\n return 0;\n }\n });\n return getHullPresorted(newPoints);\n};\n\n// Returns the convex hull, assuming that each points[i] <= points[i + 1]. Runs in O(n) time.\nconst getHullPresorted = <P extends Point>(points: Readonly<Array<P>>): Array<P> => {\n if (points.length <= 1) {\n return points.slice();\n }\n\n const upperHull: Array<P> = [];\n for (let i = 0; i < points.length; i++) {\n const p = points[i];\n while (upperHull.length >= 2) {\n const q = upperHull[upperHull.length - 1];\n const r = upperHull[upperHull.length - 2];\n if ((q.x - r.x) * (p.y - r.y) >= (q.y - r.y) * (p.x - r.x)) {\n upperHull.pop();\n } else {\n break;\n }\n }\n upperHull.push(p);\n }\n upperHull.pop();\n\n const lowerHull: Array<P> = [];\n for (let i = points.length - 1; i >= 0; i--) {\n const p = points[i];\n while (lowerHull.length >= 2) {\n const q = lowerHull[lowerHull.length - 1];\n const r = lowerHull[lowerHull.length - 2];\n if ((q.x - r.x) * (p.y - r.y) >= (q.y - r.y) * (p.x - r.x)) {\n lowerHull.pop();\n } else {\n break;\n }\n }\n lowerHull.push(p);\n }\n lowerHull.pop();\n\n if (\n upperHull.length === 1 &&\n lowerHull.length === 1 &&\n upperHull[0].x === lowerHull[0].x &&\n upperHull[0].y === lowerHull[0].y\n ) {\n return upperHull;\n } else {\n return upperHull.concat(lowerHull);\n }\n};\n\n//\n// Tooltip\n//\n\nexport const Tooltip = {\n Provider: TooltipProvider,\n Trigger: TooltipTrigger,\n};\n\nexport { createTooltipScope, useTooltipContext };\n\nexport type { TooltipProviderProps, TooltipTriggerProps, TooltipScopedProps, TooltipSide };\n"],
5
+ "mappings": "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",
6
+ "names": ["React", "createContext", "DensityContext", "createContext", "density", "DensityProvider", "children", "Provider", "value", "React", "createContext", "ElevationContext", "createContext", "elevation", "ElevationProvider", "children", "React", "Provider", "value", "useContext", "createKeyborg", "React", "createContext", "useEffect", "useMemo", "useContext", "raise", "useThemeContext", "useContext", "ThemeContext", "raise", "Error", "useCallback", "useState", "useViewportResize", "initialSafeArea", "top", "NaN", "right", "bottom", "left", "useSafeArea", "padding", "setPadding", "useState", "handleResize", "useCallback", "parseFloat", "getComputedStyle", "document", "documentElement", "getPropertyValue", "useViewportResize", "enUS", "dtLocaleEnUs", "i18Next", "React", "Suspense", "createContext", "useContext", "useEffect", "useState", "initReactI18next", "useTranslation", "useI18NextTranslation", "initialLng", "initialNs", "initialDtLocale", "dtLocaleEnUs", "resources", "i18Next", "use", "initReactI18next", "init", "lng", "defaultNS", "interpolation", "escapeValue", "TranslationsContext", "createContext", "appNs", "dtLocale", "useTranslation", "args", "result", "useI18NextTranslation", "useContext", "TranslationsProvider", "fallback", "resourceExtensions", "children", "loaded", "setLoaded", "useState", "useEffect", "length", "forEach", "resource", "Object", "keys", "language", "ns", "addResourceBundle", "React", "Provider", "value", "Suspense", "hasIosKeyboard", "navigator", "userAgent", "match", "ThemeContext", "createContext", "undefined", "ThemeProvider", "children", "fallback", "resourceExtensions", "appNs", "tx", "_path", "_styleProps", "_options", "themeMode", "rootDensity", "noCache", "platform", "useEffect", "document", "defaultView", "kb", "createKeyborg", "subscribe", "handleInputModalityChange", "unsubscribe", "safeAreaPadding", "useSafeArea", "contextValue", "useMemo", "hasIosKeyboard", "React", "Provider", "value", "TranslationsProvider", "ElevationProvider", "elevation", "DensityProvider", "density", "isUsingKeyboard", "body", "setAttribute", "removeAttribute", "composeEventHandlers", "useComposedRefs", "createContextScope", "DismissableLayer", "useId", "PopperPrimitive", "createPopperScope", "Portal", "PortalPrimitive", "Presence", "Primitive", "Slottable", "useControllableState", "VisuallyHiddenPrimitive", "React", "forwardRef", "useCallback", "useEffect", "useMemo", "useRef", "useState", "createTooltipContext", "createTooltipScope", "createContextScope", "createPopperScope", "usePopperScope", "DEFAULT_DELAY_DURATION", "TOOLTIP_OPEN", "TOOLTIP_NAME", "TooltipContextProvider", "useTooltipContext", "TooltipProvider", "props", "__scopeTooltip", "children", "open", "openProp", "defaultOpen", "onOpenChange", "disableHoverableContent", "delayDuration", "skipDelayDuration", "isOpenDelayedRef", "useRef", "isPointerInTransitRef", "skipDelayTimerRef", "useEffect", "skipDelayTimer", "current", "window", "clearTimeout", "popperScope", "trigger", "setTrigger", "useState", "content", "setContent", "side", "setSide", "undefined", "triggerRef", "handleTriggerChange", "useCallback", "nextTrigger", "getAttribute", "contentId", "useId", "openTimerRef", "wasOpenDelayedRef", "handleOpenChange", "document", "dispatchEvent", "CustomEvent", "setTimeout", "setOpen", "useControllableState", "prop", "defaultProp", "onChange", "stateAttribute", "useMemo", "handleOpen", "handleClose", "handleDelayedOpen", "tx", "useThemeContext", "elevation", "useElevationContext", "React", "Root", "scope", "onTriggerChange", "onTriggerEnter", "onTriggerLeave", "onOpen", "onClose", "onPointerInTransitChange", "inTransit", "TooltipContent", "className", "TooltipArrow", "TooltipVirtualTrigger", "virtualRef", "displayName", "Anchor", "asChild", "TRIGGER_NAME", "TooltipTrigger", "forwardRef", "forwardedRef", "onInteract", "_delayDuration", "triggerProps", "context", "ref", "composedRefs", "useComposedRefs", "isPointerDownRef", "hasPointerMoveOpenedRef", "handlePointerUp", "removeEventListener", "Primitive", "button", "aria-describedby", "data-state", "data-tooltip-content", "data-tooltip-side", "onPointerMove", "composeEventHandlers", "event", "pointerType", "defaultPrevented", "onPointerLeave", "onPointerDown", "addEventListener", "once", "onFocus", "onBlur", "onClick", "PORTAL_NAME", "PortalProvider", "usePortalContext", "forceMount", "TooltipPortal", "container", "Presence", "present", "PortalPrimitive", "CONTENT_NAME", "portalContext", "contentProps", "TooltipContentImpl", "TooltipContentHoverable", "pointerGraceArea", "setPointerGraceArea", "handleRemoveGraceArea", "handleCreateGraceArea", "hoverTarget", "currentTarget", "exitPoint", "x", "clientX", "y", "clientY", "exitSide", "getExitSideFromRect", "getBoundingClientRect", "paddedExitPoints", "getPaddedExitPoints", "hoverTargetPoints", "getPointsFromRect", "graceArea", "getHull", "handleTriggerLeave", "handleContentLeave", "handleTrackPointerGrace", "target", "pointerPosition", "hasEnteredTarget", "contains", "isPointerOutsideGraceArea", "isPointInPolygon", "VisuallyHiddenContentContextProvider", "useVisuallyHiddenContentContext", "isInside", "ariaLabel", "onEscapeKeyDown", "onPointerDownOutside", "handleScroll", "capture", "DismissableLayer", "disableOutsidePointerEvents", "onFocusOutside", "preventDefault", "onDismiss", "Content", "style", "Slottable", "id", "role", "ARROW_NAME", "arrowProps", "visuallyHiddenContentContext", "Arrow", "point", "rect", "top", "Math", "abs", "bottom", "right", "left", "min", "Error", "padding", "push", "polygon", "inside", "i", "j", "length", "xi", "yi", "xj", "yj", "intersect", "points", "newPoints", "slice", "sort", "a", "b", "getHullPresorted", "upperHull", "p", "q", "r", "pop", "lowerHull", "concat", "Tooltip", "Provider", "Trigger", "useElevationContext", "propsElevation", "elevation", "useContext", "ElevationContext"]
7
+ }