@dxos/react-ui 0.8.4-main.84f28bd → 0.8.4-main.937b3ca

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