@dxos/react-ui 0.8.4-main.69d29f4 → 0.8.4-main.6fa680abb7

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 (271) hide show
  1. package/dist/lib/browser/{chunk-CEKVHJ27.mjs → chunk-2FKSMWNY.mjs} +117 -117
  2. package/dist/lib/browser/chunk-2FKSMWNY.mjs.map +7 -0
  3. package/dist/lib/browser/index.mjs +2804 -1957
  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 +56 -32
  7. package/dist/lib/browser/testing/index.mjs.map +4 -4
  8. package/dist/lib/node-esm/{chunk-2NHEX4AD.mjs → chunk-ZNBLTSHI.mjs} +117 -117
  9. package/dist/lib/node-esm/chunk-ZNBLTSHI.mjs.map +7 -0
  10. package/dist/lib/node-esm/index.mjs +2804 -1957
  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 +56 -32
  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.map +1 -1
  19. package/dist/types/src/components/Card/Card.d.ts +107 -0
  20. package/dist/types/src/components/Card/Card.d.ts.map +1 -0
  21. package/dist/types/src/components/Card/Card.stories.d.ts +21 -0
  22. package/dist/types/src/components/Card/Card.stories.d.ts.map +1 -0
  23. package/dist/types/src/components/Card/index.d.ts +2 -0
  24. package/dist/types/src/components/Card/index.d.ts.map +1 -0
  25. package/dist/types/src/components/Dialog/AlertDialog.d.ts +12 -3
  26. package/dist/types/src/components/Dialog/AlertDialog.d.ts.map +1 -1
  27. package/dist/types/src/components/Dialog/AlertDialog.stories.d.ts.map +1 -1
  28. package/dist/types/src/components/Dialog/Dialog.d.ts +11 -4
  29. package/dist/types/src/components/Dialog/Dialog.d.ts.map +1 -1
  30. package/dist/types/src/components/Dialog/Dialog.stories.d.ts +3 -6
  31. package/dist/types/src/components/Dialog/Dialog.stories.d.ts.map +1 -1
  32. package/dist/types/src/components/ErrorFallback/ErrorFallback.d.ts +11 -0
  33. package/dist/types/src/components/ErrorFallback/ErrorFallback.d.ts.map +1 -0
  34. package/dist/types/src/components/ErrorFallback/ErrorFallback.stories.d.ts +7 -0
  35. package/dist/types/src/components/ErrorFallback/ErrorFallback.stories.d.ts.map +1 -0
  36. package/dist/types/src/components/ErrorFallback/ErrorStack.d.ts +8 -0
  37. package/dist/types/src/components/ErrorFallback/ErrorStack.d.ts.map +1 -0
  38. package/dist/types/src/components/ErrorFallback/ThrowError.d.ts +9 -0
  39. package/dist/types/src/components/ErrorFallback/ThrowError.d.ts.map +1 -0
  40. package/dist/types/src/components/ErrorFallback/index.d.ts +5 -0
  41. package/dist/types/src/components/ErrorFallback/index.d.ts.map +1 -0
  42. package/dist/types/src/components/Image/Image.d.ts +14 -0
  43. package/dist/types/src/components/Image/Image.d.ts.map +1 -0
  44. package/dist/types/src/components/Image/Image.stories.d.ts +33 -0
  45. package/dist/types/src/components/Image/Image.stories.d.ts.map +1 -0
  46. package/dist/types/src/components/Image/index.d.ts +2 -0
  47. package/dist/types/src/components/Image/index.d.ts.map +1 -0
  48. package/dist/types/src/components/Input/Input.d.ts +2 -5
  49. package/dist/types/src/components/Input/Input.d.ts.map +1 -1
  50. package/dist/types/src/components/Input/Input.stories.d.ts +7 -7
  51. package/dist/types/src/components/Input/Input.stories.d.ts.map +1 -1
  52. package/dist/types/src/components/List/List.d.ts.map +1 -1
  53. package/dist/types/src/components/List/List.stories.d.ts.map +1 -1
  54. package/dist/types/src/components/List/Treegrid.d.ts.map +1 -1
  55. package/dist/types/src/components/Main/Main.d.ts +9 -10
  56. package/dist/types/src/components/Main/Main.d.ts.map +1 -1
  57. package/dist/types/src/components/Main/Main.stories.d.ts +0 -3
  58. package/dist/types/src/components/Main/Main.stories.d.ts.map +1 -1
  59. package/dist/types/src/components/Menu/ContextMenu.d.ts.map +1 -1
  60. package/dist/types/src/components/Message/Message.d.ts.map +1 -1
  61. package/dist/types/src/components/Message/Message.stories.d.ts +2 -3
  62. package/dist/types/src/components/Message/Message.stories.d.ts.map +1 -1
  63. package/dist/types/src/components/Popover/Popover.d.ts +1 -0
  64. package/dist/types/src/components/Popover/Popover.d.ts.map +1 -1
  65. package/dist/types/src/components/ScrollArea/ScrollArea.d.ts +21 -26
  66. package/dist/types/src/components/ScrollArea/ScrollArea.d.ts.map +1 -1
  67. package/dist/types/src/components/ScrollArea/ScrollArea.stories.d.ts +41 -9
  68. package/dist/types/src/components/ScrollArea/ScrollArea.stories.d.ts.map +1 -1
  69. package/dist/types/src/components/ScrollContainer/ScrollContainer.d.ts.map +1 -1
  70. package/dist/types/src/components/ScrollContainer/ScrollContainer.stories.d.ts +6 -1
  71. package/dist/types/src/components/ScrollContainer/ScrollContainer.stories.d.ts.map +1 -1
  72. package/dist/types/src/components/Select/Select.d.ts.map +1 -1
  73. package/dist/types/src/components/Skeleton/Skeleton.d.ts +12 -0
  74. package/dist/types/src/components/Skeleton/Skeleton.d.ts.map +1 -0
  75. package/dist/types/src/components/Skeleton/Skeleton.stories.d.ts +17 -0
  76. package/dist/types/src/components/Skeleton/Skeleton.stories.d.ts.map +1 -0
  77. package/dist/types/src/components/Skeleton/index.d.ts +2 -0
  78. package/dist/types/src/components/Skeleton/index.d.ts.map +1 -0
  79. package/dist/types/src/components/Splitter/Splitter.d.ts +32 -0
  80. package/dist/types/src/components/Splitter/Splitter.d.ts.map +1 -0
  81. package/dist/types/src/components/Splitter/Splitter.stories.d.ts +7 -0
  82. package/dist/types/src/components/Splitter/Splitter.stories.d.ts.map +1 -0
  83. package/dist/types/src/components/Splitter/index.d.ts +2 -0
  84. package/dist/types/src/components/Splitter/index.d.ts.map +1 -0
  85. package/dist/types/src/components/Status/Status.stories.d.ts +4 -2
  86. package/dist/types/src/components/Status/Status.stories.d.ts.map +1 -1
  87. package/dist/types/src/components/Tag/Tag.d.ts.map +1 -1
  88. package/dist/types/src/components/Tag/Tag.stories.d.ts +0 -5
  89. package/dist/types/src/components/Tag/Tag.stories.d.ts.map +1 -1
  90. package/dist/types/src/components/ThemeProvider/ThemeProvider.d.ts +1 -0
  91. package/dist/types/src/components/ThemeProvider/ThemeProvider.d.ts.map +1 -1
  92. package/dist/types/src/components/ThemeProvider/ThemeProvider.stories.d.ts +12 -0
  93. package/dist/types/src/components/ThemeProvider/ThemeProvider.stories.d.ts.map +1 -0
  94. package/dist/types/src/components/Toast/Toast.d.ts.map +1 -1
  95. package/dist/types/src/components/Toolbar/Toolbar.d.ts +33 -7
  96. package/dist/types/src/components/Toolbar/Toolbar.d.ts.map +1 -1
  97. package/dist/types/src/components/Tooltip/Tooltip.d.ts.map +1 -1
  98. package/dist/types/src/components/Tooltip/Tooltip.stories.d.ts.map +1 -1
  99. package/dist/types/src/components/index.d.ts +8 -4
  100. package/dist/types/src/components/index.d.ts.map +1 -1
  101. package/dist/types/src/exemplars/generics.stories.d.ts +18 -0
  102. package/dist/types/src/exemplars/generics.stories.d.ts.map +1 -0
  103. package/dist/types/src/exemplars/slot.stories.d.ts +14 -0
  104. package/dist/types/src/exemplars/slot.stories.d.ts.map +1 -0
  105. package/dist/types/src/exemplars/tabster.stories.d.ts +8 -0
  106. package/dist/types/src/exemplars/tabster.stories.d.ts.map +1 -0
  107. package/dist/types/src/exemplars/virtualizer.stories.d.ts +11 -0
  108. package/dist/types/src/exemplars/virtualizer.stories.d.ts.map +1 -0
  109. package/dist/types/src/index.d.ts +1 -0
  110. package/dist/types/src/index.d.ts.map +1 -1
  111. package/dist/types/src/playground/Controls.stories.d.ts.map +1 -1
  112. package/dist/types/src/primitives/Column/Column.d.ts +26 -0
  113. package/dist/types/src/primitives/Column/Column.d.ts.map +1 -0
  114. package/dist/types/src/primitives/Column/Column.stories.d.ts +6 -0
  115. package/dist/types/src/primitives/Column/Column.stories.d.ts.map +1 -0
  116. package/dist/types/src/primitives/Column/index.d.ts +2 -0
  117. package/dist/types/src/primitives/Column/index.d.ts.map +1 -0
  118. package/dist/types/src/primitives/Container/Container.d.ts +8 -0
  119. package/dist/types/src/primitives/Container/Container.d.ts.map +1 -0
  120. package/dist/types/src/primitives/Container/Container.stories.d.ts +6 -0
  121. package/dist/types/src/primitives/Container/Container.stories.d.ts.map +1 -0
  122. package/dist/types/src/primitives/Container/index.d.ts +2 -0
  123. package/dist/types/src/primitives/Container/index.d.ts.map +1 -0
  124. package/dist/types/src/primitives/Flex/Flex.d.ts +13 -0
  125. package/dist/types/src/primitives/Flex/Flex.d.ts.map +1 -0
  126. package/dist/types/src/primitives/Flex/Flex.stories.d.ts +8 -0
  127. package/dist/types/src/primitives/Flex/Flex.stories.d.ts.map +1 -0
  128. package/dist/types/src/primitives/Flex/index.d.ts +2 -0
  129. package/dist/types/src/primitives/Flex/index.d.ts.map +1 -0
  130. package/dist/types/src/primitives/Grid/Grid.d.ts +15 -0
  131. package/dist/types/src/primitives/Grid/Grid.d.ts.map +1 -0
  132. package/dist/types/src/primitives/Grid/Grid.stories.d.ts +8 -0
  133. package/dist/types/src/primitives/Grid/Grid.stories.d.ts.map +1 -0
  134. package/dist/types/src/primitives/Grid/index.d.ts +2 -0
  135. package/dist/types/src/primitives/Grid/index.d.ts.map +1 -0
  136. package/dist/types/src/primitives/Panel/Panel.d.ts +26 -0
  137. package/dist/types/src/primitives/Panel/Panel.d.ts.map +1 -0
  138. package/dist/types/src/primitives/Panel/Panel.stories.d.ts +6 -0
  139. package/dist/types/src/primitives/Panel/Panel.stories.d.ts.map +1 -0
  140. package/dist/types/src/primitives/Panel/index.d.ts +2 -0
  141. package/dist/types/src/primitives/Panel/index.d.ts.map +1 -0
  142. package/dist/types/src/primitives/index.d.ts +6 -0
  143. package/dist/types/src/primitives/index.d.ts.map +1 -0
  144. package/dist/types/src/testing/Loading.d.ts +9 -0
  145. package/dist/types/src/testing/Loading.d.ts.map +1 -0
  146. package/dist/types/src/testing/decorators/withLayout.d.ts +1 -1
  147. package/dist/types/src/testing/decorators/withLayout.d.ts.map +1 -1
  148. package/dist/types/src/testing/decorators/withLayoutVariants.d.ts.map +1 -1
  149. package/dist/types/src/testing/decorators/withTheme.d.ts +3 -2
  150. package/dist/types/src/testing/decorators/withTheme.d.ts.map +1 -1
  151. package/dist/types/src/testing/index.d.ts +1 -0
  152. package/dist/types/src/testing/index.d.ts.map +1 -1
  153. package/dist/types/src/translations.d.ts +11 -0
  154. package/dist/types/src/translations.d.ts.map +1 -0
  155. package/dist/types/tsconfig.tsbuildinfo +1 -1
  156. package/package.json +25 -21
  157. package/src/components/Avatars/Avatar.stories.tsx +5 -6
  158. package/src/components/Avatars/Avatar.tsx +5 -12
  159. package/src/components/Avatars/AvatarGroup.stories.tsx +2 -2
  160. package/src/components/Breadcrumb/Breadcrumb.stories.tsx +3 -3
  161. package/src/components/Breadcrumb/Breadcrumb.tsx +11 -37
  162. package/src/components/Button/Button.stories.tsx +3 -3
  163. package/src/components/Button/Button.tsx +6 -12
  164. package/src/components/Button/IconButton.stories.tsx +4 -4
  165. package/src/components/Button/IconButton.tsx +1 -1
  166. package/src/components/Button/Toggle.stories.tsx +2 -2
  167. package/src/components/Button/ToggleGroup.stories.tsx +2 -2
  168. package/src/components/Card/Card.stories.tsx +151 -0
  169. package/src/components/Card/Card.tsx +347 -0
  170. package/src/components/Card/index.ts +5 -0
  171. package/src/components/Clipboard/CopyButton.tsx +3 -3
  172. package/src/components/Dialog/AlertDialog.stories.tsx +15 -15
  173. package/src/components/Dialog/AlertDialog.tsx +116 -16
  174. package/src/components/Dialog/Dialog.stories.tsx +40 -15
  175. package/src/components/Dialog/Dialog.tsx +75 -45
  176. package/src/components/ErrorFallback/ErrorFallback.stories.tsx +50 -0
  177. package/src/components/ErrorFallback/ErrorFallback.tsx +70 -0
  178. package/src/components/ErrorFallback/ErrorStack.tsx +80 -0
  179. package/src/components/ErrorFallback/ThrowError.tsx +37 -0
  180. package/src/components/ErrorFallback/index.ts +9 -0
  181. package/src/components/Icon/Icon.stories.tsx +2 -2
  182. package/src/components/Icon/Icon.tsx +1 -1
  183. package/src/components/Image/Image.stories.tsx +86 -0
  184. package/src/components/Image/Image.tsx +223 -0
  185. package/src/components/Image/index.ts +5 -0
  186. package/src/components/Input/Input.stories.tsx +20 -39
  187. package/src/components/Input/Input.tsx +20 -65
  188. package/src/components/Link/Link.stories.tsx +2 -2
  189. package/src/components/Link/Link.tsx +2 -2
  190. package/src/components/List/List.stories.tsx +15 -22
  191. package/src/components/List/List.tsx +11 -16
  192. package/src/components/List/ListDropIndicator.tsx +7 -7
  193. package/src/components/List/Tree.stories.tsx +4 -4
  194. package/src/components/List/TreeDropIndicator.tsx +6 -6
  195. package/src/components/List/Treegrid.stories.tsx +3 -3
  196. package/src/components/List/Treegrid.tsx +10 -15
  197. package/src/components/Main/Main.stories.tsx +41 -23
  198. package/src/components/Main/Main.tsx +138 -81
  199. package/src/components/Menu/ContextMenu.stories.tsx +2 -2
  200. package/src/components/Menu/ContextMenu.tsx +9 -33
  201. package/src/components/Menu/DropdownMenu.stories.tsx +2 -2
  202. package/src/components/Menu/DropdownMenu.tsx +10 -10
  203. package/src/components/Message/Message.stories.tsx +25 -10
  204. package/src/components/Message/Message.tsx +17 -29
  205. package/src/components/Popover/Popover.stories.tsx +4 -4
  206. package/src/components/Popover/Popover.tsx +23 -20
  207. package/src/components/ScrollArea/ScrollArea.stories.tsx +152 -76
  208. package/src/components/ScrollArea/ScrollArea.tsx +72 -116
  209. package/src/components/ScrollArea/index.ts +1 -1
  210. package/src/components/ScrollContainer/ScrollContainer.stories.tsx +41 -22
  211. package/src/components/ScrollContainer/ScrollContainer.tsx +18 -13
  212. package/src/components/Select/Select.stories.tsx +2 -2
  213. package/src/components/Select/Select.tsx +11 -27
  214. package/src/components/Separator/Separator.tsx +1 -1
  215. package/src/components/Skeleton/Skeleton.stories.tsx +52 -0
  216. package/src/components/Skeleton/Skeleton.tsx +26 -0
  217. package/src/components/Skeleton/index.ts +5 -0
  218. package/src/components/Splitter/Splitter.stories.tsx +83 -0
  219. package/src/components/Splitter/Splitter.tsx +126 -0
  220. package/src/components/Splitter/index.ts +5 -0
  221. package/src/components/Status/Status.stories.tsx +21 -17
  222. package/src/components/Status/Status.tsx +2 -2
  223. package/src/components/Tag/Tag.stories.tsx +4 -9
  224. package/src/components/Tag/Tag.tsx +2 -7
  225. package/src/components/ThemeProvider/ThemeProvider.stories.tsx +32 -0
  226. package/src/components/ThemeProvider/ThemeProvider.tsx +4 -3
  227. package/src/components/Toast/Toast.stories.tsx +2 -2
  228. package/src/components/Toast/Toast.tsx +10 -14
  229. package/src/components/Toolbar/Toolbar.stories.tsx +2 -2
  230. package/src/components/Toolbar/Toolbar.tsx +174 -12
  231. package/src/components/Tooltip/Tooltip.stories.tsx +15 -13
  232. package/src/components/Tooltip/Tooltip.tsx +3 -2
  233. package/src/components/index.ts +9 -5
  234. package/src/exemplars/generics.stories.tsx +49 -0
  235. package/src/exemplars/slot.stories.tsx +107 -0
  236. package/src/exemplars/tabster.stories.tsx +127 -0
  237. package/src/exemplars/virtualizer.stories.tsx +137 -0
  238. package/src/index.ts +1 -0
  239. package/src/playground/Controls.stories.tsx +3 -10
  240. package/src/playground/Custom.stories.tsx +10 -10
  241. package/src/playground/Typography.stories.tsx +3 -3
  242. package/src/primitives/Column/Column.stories.tsx +78 -0
  243. package/src/primitives/Column/Column.tsx +134 -0
  244. package/src/primitives/Column/index.ts +5 -0
  245. package/src/primitives/Container/Container.stories.tsx +30 -0
  246. package/src/primitives/Container/Container.tsx +22 -0
  247. package/src/primitives/Container/index.ts +5 -0
  248. package/src/primitives/Flex/Flex.stories.tsx +58 -0
  249. package/src/primitives/Flex/Flex.tsx +29 -0
  250. package/src/primitives/Flex/index.ts +5 -0
  251. package/src/primitives/Grid/Grid.stories.tsx +57 -0
  252. package/src/primitives/Grid/Grid.tsx +35 -0
  253. package/src/primitives/Grid/index.ts +5 -0
  254. package/src/primitives/Panel/Panel.stories.tsx +67 -0
  255. package/src/primitives/Panel/Panel.tsx +119 -0
  256. package/src/primitives/Panel/index.ts +5 -0
  257. package/src/primitives/index.ts +9 -0
  258. package/src/testing/Loading.tsx +26 -0
  259. package/src/testing/decorators/withLayout.tsx +21 -7
  260. package/src/testing/decorators/withLayoutVariants.tsx +18 -21
  261. package/src/testing/decorators/withTheme.tsx +19 -17
  262. package/src/testing/index.ts +2 -0
  263. package/src/translations.ts +19 -0
  264. package/dist/lib/browser/chunk-CEKVHJ27.mjs.map +0 -7
  265. package/dist/lib/node-esm/chunk-2NHEX4AD.mjs.map +0 -7
  266. package/dist/types/src/components/AnchoredOverflow/AnchoredOverflow.d.ts +0 -15
  267. package/dist/types/src/components/AnchoredOverflow/AnchoredOverflow.d.ts.map +0 -1
  268. package/dist/types/src/components/AnchoredOverflow/index.d.ts +0 -2
  269. package/dist/types/src/components/AnchoredOverflow/index.d.ts.map +0 -1
  270. package/src/components/AnchoredOverflow/AnchoredOverflow.tsx +0 -59
  271. package/src/components/AnchoredOverflow/index.ts +0 -5
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../../../src/testing/decorators/withLayout.tsx", "../../../../src/testing/decorators/withLayoutVariants.tsx", "../../../../src/testing/decorators/withTheme.tsx"],
4
- "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { type Decorator } from '@storybook/react';\nimport React, { type FC, type PropsWithChildren, memo } from 'react';\n\nimport { type ClassNameValue, type ThemedClassName } from '@dxos/react-ui';\nimport { mx } from '@dxos/ui-theme';\n\nexport type ContainerProps = ThemedClassName<PropsWithChildren>;\n\nexport type ContainerType = 'fullscreen' | 'column';\n\nexport type WithLayoutProps =\n | FC<ContainerProps>\n | {\n classNames?: ClassNameValue;\n layout?: ContainerType;\n scroll?: boolean;\n };\n\n/**\n * Adds layout container.\n */\nexport const withLayout =\n (props: WithLayoutProps = {}): Decorator =>\n (Story) => {\n // Prevent re-rendering of the story.\n const MemoizedStory = memo(Story);\n if (typeof props === 'function') {\n const Container = props;\n return (\n <Container>\n <MemoizedStory />\n </Container>\n );\n } else {\n const { layout = 'fullscreen', classNames, scroll } = props;\n const Container = layouts[layout] ?? layouts.fullscreen;\n return (\n <Container classNames={mx(classNames, scroll ? 'overflow-y-auto' : 'overflow-hidden')}>\n <MemoizedStory />\n </Container>\n );\n }\n };\n\nconst layouts: Record<ContainerType, FC<ContainerProps>> = {\n fullscreen: ({ children, classNames }: ContainerProps) => (\n <div role='none' className={mx('fixed inset-0 flex overflow-hidden bg-deckSurface', classNames)}>\n {children}\n </div>\n ),\n\n column: ({ children, classNames }: ContainerProps) => (\n <div role='none' className='fixed inset-0 flex justify-center overflow-hidden bg-deckSurface'>\n <div role='none' className={mx('flex flex-col is-[40rem] bg-baseSurface', classNames)}>\n {children}\n </div>\n </div>\n ),\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { type Decorator } from '@storybook/react';\nimport React, { type ComponentType, type PropsWithChildren } from 'react';\n\nimport { mx, surfaceShadow } from '@dxos/ui-theme';\nimport { type Density, type Elevation } from '@dxos/ui-types';\n\ntype Config = {\n elevations?: { elevation: Elevation; surface?: string }[];\n densities?: Density[];\n};\n\nconst Container = ({ children, elevation, surface }: PropsWithChildren<{ elevation: Elevation; surface?: string }>) => (\n <div className={mx('rounded-md border border-separator', surface, surfaceShadow({ elevation }))}>{children}</div>\n);\n\nconst Panel = ({\n Story,\n elevations,\n densities,\n className,\n}: { Story: ComponentType } & Config & { className?: string }) => (\n <div className={mx('flex flex-col bs-full p-4 gap-4', className)}>\n {elevations?.map(({ elevation, surface }) =>\n densities?.map((density) => (\n <Container key={`${elevation}--${density}`} surface={surface} elevation={elevation}>\n <Story />\n </Container>\n )),\n )}\n </div>\n);\n\nexport const withLayoutVariants = ({\n elevations = [\n { elevation: 'base', surface: 'bg-baseSurface' },\n { elevation: 'positioned', surface: 'bg-cardSurface' },\n { elevation: 'dialog', surface: 'bg-modalSurface' },\n ],\n densities = ['coarse'],\n}: Config = {}): Decorator => {\n return (Story) => (\n <div className='fixed inset-0 grid grid-cols-2 overflow-y-auto'>\n <Panel Story={Story} className='light' elevations={elevations} densities={densities} />\n <Panel Story={Story} className='dark' elevations={elevations} densities={densities} />\n </div>\n );\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { type Decorator } from '@storybook/react';\nimport React, { memo } from 'react';\n\nimport { defaultTx } from '@dxos/ui-theme';\nimport { type ThemeMode } from '@dxos/ui-types';\n\nimport { ThemeProvider, Tooltip } from '../../components';\n\n/**\n * Adds theme decorator (add to preview.ts)\n */\nexport const withTheme: Decorator = (Story, context) => {\n const {\n globals: { theme },\n parameters: { translations },\n } = context;\n\n // Prevent re-rendering of the story.\n const MemoizedStory = memo(Story);\n\n return (\n <ThemeProvider tx={defaultTx} themeMode={theme as ThemeMode} resourceExtensions={translations} noCache>\n <Tooltip.Provider>\n <MemoizedStory />\n </Tooltip.Provider>\n </ThemeProvider>\n );\n};\n"],
5
- "mappings": ";;;;;;AAKA,OAAOA,SAA0CC,YAAY;AAG7D,SAASC,UAAU;AAiBZ,IAAMC,aACX,CAACC,QAAyB,CAAC,MAC3B,CAACC,UAAAA;AAEC,QAAMC,gBAAgBC,qBAAKF,KAAAA;AAC3B,MAAI,OAAOD,UAAU,YAAY;AAC/B,UAAMI,aAAYJ;AAClB,WACE,sBAAA,cAACI,YAAAA,MACC,sBAAA,cAACF,eAAAA,IAAAA,CAAAA;EAGP,OAAO;AACL,UAAM,EAAEG,SAAS,cAAcC,YAAYC,OAAM,IAAKP;AACtD,UAAMI,aAAYI,QAAQH,MAAAA,KAAWG,QAAQC;AAC7C,WACE,sBAAA,cAACL,YAAAA;MAAUE,YAAYI,GAAGJ,YAAYC,SAAS,oBAAoB,iBAAA;OACjE,sBAAA,cAACL,eAAAA,IAAAA,CAAAA;EAGP;AACF;AAEF,IAAMM,UAAqD;EACzDC,YAAY,CAAC,EAAEE,UAAUL,WAAU,MACjC,sBAAA,cAACM,OAAAA;IAAIC,MAAK;IAAOC,WAAWJ,GAAG,qDAAqDJ,UAAAA;KACjFK,QAAAA;EAILI,QAAQ,CAAC,EAAEJ,UAAUL,WAAU,MAC7B,sBAAA,cAACM,OAAAA;IAAIC,MAAK;IAAOC,WAAU;KACzB,sBAAA,cAACF,OAAAA;IAAIC,MAAK;IAAOC,WAAWJ,GAAG,2CAA2CJ,UAAAA;KACvEK,QAAAA,CAAAA;AAIT;;;ACzDA,OAAOK,YAA2D;AAElE,SAASC,MAAAA,KAAIC,qBAAqB;AAQlC,IAAMC,YAAY,CAAC,EAAEC,UAAUC,WAAWC,QAAO,MAC/C,gBAAAC,OAAA,cAACC,OAAAA;EAAIC,WAAWC,IAAG,sCAAsCJ,SAASK,cAAc;IAAEN;EAAU,CAAA,CAAA;GAAMD,QAAAA;AAGpG,IAAMQ,QAAQ,CAAC,EACbC,OACAC,YACAC,WACAN,UAAS,MAET,gBAAAF,OAAA,cAACC,OAAAA;EAAIC,WAAWC,IAAG,mCAAmCD,SAAAA;GACnDK,YAAYE,IAAI,CAAC,EAAEX,WAAWC,QAAO,MACpCS,WAAWC,IAAI,CAACC,YACd,gBAAAV,OAAA,cAACJ,WAAAA;EAAUe,KAAK,GAAGb,SAAAA,KAAcY,OAAAA;EAAWX;EAAkBD;GAC5D,gBAAAE,OAAA,cAACM,OAAAA,IAAAA,CAAAA,CAAAA,CAAAA,CAAAA;AAOJ,IAAMM,qBAAqB,CAAC,EACjCL,aAAa;EACX;IAAET,WAAW;IAAQC,SAAS;EAAiB;EAC/C;IAAED,WAAW;IAAcC,SAAS;EAAiB;EACrD;IAAED,WAAW;IAAUC,SAAS;EAAkB;GAEpDS,YAAY;EAAC;EAAS,IACZ,CAAC,MAAC;AACZ,SAAO,CAACF,UACN,gBAAAN,OAAA,cAACC,OAAAA;IAAIC,WAAU;KACb,gBAAAF,OAAA,cAACK,OAAAA;IAAMC;IAAcJ,WAAU;IAAQK;IAAwBC;MAC/D,gBAAAR,OAAA,cAACK,OAAAA;IAAMC;IAAcJ,WAAU;IAAOK;IAAwBC;;AAGpE;;;AC7CA,OAAOK,UAASC,QAAAA,aAAY;AAE5B,SAASC,iBAAiB;AAQnB,IAAMC,YAAuB,CAACC,OAAOC,YAAAA;AAC1C,QAAM,EACJC,SAAS,EAAEC,MAAK,GAChBC,YAAY,EAAEC,aAAY,EAAE,IAC1BJ;AAGJ,QAAMK,gBAAgBC,gBAAAA,MAAKP,KAAAA;AAE3B,SACE,gBAAAQ,OAAA,cAACC,eAAAA;IAAcC,IAAIC;IAAWC,WAAWT;IAAoBU,oBAAoBR;IAAcS,SAAAA;KAC7F,gBAAAN,OAAA,cAACO,QAAQC,UAAQ,MACf,gBAAAR,OAAA,cAACF,eAAAA,IAAAA,CAAAA,CAAAA;AAIT;",
6
- "names": ["React", "memo", "mx", "withLayout", "props", "Story", "MemoizedStory", "memo", "Container", "layout", "classNames", "scroll", "layouts", "fullscreen", "mx", "children", "div", "role", "className", "column", "React", "mx", "surfaceShadow", "Container", "children", "elevation", "surface", "React", "div", "className", "mx", "surfaceShadow", "Panel", "Story", "elevations", "densities", "map", "density", "key", "withLayoutVariants", "React", "memo", "defaultTx", "withTheme", "Story", "context", "globals", "theme", "parameters", "translations", "MemoizedStory", "memo", "React", "ThemeProvider", "tx", "defaultTx", "themeMode", "resourceExtensions", "noCache", "Tooltip", "Provider"]
3
+ "sources": ["../../../../src/testing/decorators/withLayout.tsx", "../../../../src/testing/decorators/withLayoutVariants.tsx", "../../../../src/testing/decorators/withTheme.tsx", "../../../../src/testing/Loading.tsx"],
4
+ "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { type Decorator } from '@storybook/react';\nimport React, { type FC, type PropsWithChildren, memo } from 'react';\n\nimport { type ClassNameValue, type ThemedClassName } from '@dxos/react-ui';\nimport { mx } from '@dxos/ui-theme';\n\nexport type ContainerProps = ThemedClassName<PropsWithChildren>;\n\nexport type ContainerType = 'default' | 'fullscreen' | 'centered' | 'column';\n\nexport type WithLayoutProps =\n | FC<ContainerProps>\n | {\n classNames?: ClassNameValue;\n layout?: ContainerType;\n scroll?: boolean;\n };\n\n/**\n * Adds layout container.\n */\nexport const withLayout =\n (props: WithLayoutProps = {}): Decorator =>\n (Story) => {\n // Prevent re-rendering of the story.\n const MemoizedStory = memo(Story);\n if (typeof props === 'function') {\n const Container = props;\n return (\n <Container>\n <MemoizedStory />\n </Container>\n );\n } else {\n const { layout = 'default', classNames, scroll } = props;\n const Container = layouts[layout] ?? layouts.fullscreen;\n return (\n <Container classNames={mx(classNames, scroll ? 'overflow-y-auto' : 'overflow-hidden')}>\n <MemoizedStory />\n </Container>\n );\n }\n };\n\nconst layouts: Record<ContainerType, FC<ContainerProps>> = {\n default: ({ classNames, children }: ContainerProps) => (\n <div role='none' className={mx('p-4', classNames)}>\n {children}\n </div>\n ),\n\n fullscreen: ({ classNames, children }: ContainerProps) => (\n <div role='none' className={mx('fixed inset-0 flex overflow-hidden bg-base-surface', classNames)}>\n {children}\n </div>\n ),\n\n centered: ({ classNames, children }: ContainerProps) => (\n <div role='none' className={mx('fixed inset-0 grid overflow-hidden place-items-center bg-base-surface')}>\n <div role='none' className={mx('flex flex-col w-[40rem] bg-group-surface', classNames)}>\n {children}\n </div>\n </div>\n ),\n\n column: ({ classNames, children }: ContainerProps) => (\n <div role='none' className='fixed inset-0 flex overflow-hidden justify-center bg-base-surface'>\n <div role='none' className={mx('flex flex-col w-[40rem] bg-group-surface', classNames)}>\n {children}\n </div>\n </div>\n ),\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { type Decorator } from '@storybook/react';\nimport React, { type ComponentType, type PropsWithChildren } from 'react';\n\nimport { mx, surfaceShadow } from '@dxos/ui-theme';\nimport { type Density, type Elevation } from '@dxos/ui-types';\n\ntype Config = {\n elevations?: { elevation: Elevation; surface?: string }[];\n densities?: Density[];\n};\n\nconst Container = ({ children, elevation, surface }: PropsWithChildren<{ elevation: Elevation; surface?: string }>) => (\n <div className={mx('p-4 rounded-sm', surface, surfaceShadow({ elevation }))}>{children}</div>\n);\n\nconst Panel = ({\n Story,\n elevations,\n densities,\n className,\n}: { Story: ComponentType } & Config & { className?: string }) => {\n return (\n <div className={mx('flex flex-col h-full p-8 gap-8', className)}>\n {elevations?.map(({ elevation, surface }) =>\n densities?.map((density) => (\n <Container key={`${elevation}--${density}`} surface={surface} elevation={elevation}>\n <Story />\n </Container>\n )),\n )}\n </div>\n );\n};\n\nexport const withLayoutVariants = ({\n elevations = [\n { elevation: 'dialog', surface: 'bg-modal-surface' },\n { elevation: 'positioned', surface: 'bg-card-surface' },\n { elevation: 'base', surface: 'bg-base-surface' },\n ],\n densities = ['coarse'],\n}: Config = {}): Decorator => {\n return (Story) => <Panel Story={Story} elevations={elevations} densities={densities} />;\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { type Decorator } from '@storybook/react';\nimport React, { memo } from 'react';\n\nimport { defaultTx } from '@dxos/ui-theme';\nimport { type ThemeMode } from '@dxos/ui-types';\n\nimport { type ThemeContextValue, ThemeProvider, Tooltip } from '../../components';\n\n/**\n * Adds theme decorator.\n */\nexport const withTheme =\n ({ tx = defaultTx, ...props }: Partial<ThemeContextValue> = {}): Decorator =>\n (Story, context) => {\n const {\n globals: { theme },\n parameters: { translations },\n } = context;\n\n // Prevent re-rendering of the story.\n const MemoizedStory = memo(Story);\n\n return (\n <ThemeProvider {...props} tx={tx} themeMode={theme as ThemeMode} resourceExtensions={translations} noCache>\n <Tooltip.Provider>\n <MemoizedStory />\n </Tooltip.Provider>\n </ThemeProvider>\n );\n };\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { mx } from '@dxos/ui-theme';\nimport { safeStringify } from '@dxos/util';\nimport React, { useEffect, useState } from 'react';\n\nexport type LoadingProps = { data?: any };\n\n/**\n * Storybook loading component.\n */\nexport const Loading = ({ data }: LoadingProps) => {\n const [visible, setVisible] = useState(false);\n useEffect(() => {\n const t = setTimeout(() => setVisible(true), 500);\n return () => clearTimeout(t);\n }, []);\n return (\n <div className={mx('flex flex-col opacity-0 transition delay-1000 duration-1000', visible && 'opacity-100')}>\n <h2 className='uppercase'>Loading</h2>\n <pre>{safeStringify(data, undefined, 2)}</pre>\n </div>\n );\n};\n"],
5
+ "mappings": "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",
6
+ "names": ["React", "memo", "mx", "withLayout", "props", "Story", "MemoizedStory", "memo", "Container", "layout", "classNames", "scroll", "layouts", "fullscreen", "mx", "default", "children", "div", "role", "className", "centered", "column", "React", "mx", "surfaceShadow", "Container", "children", "elevation", "surface", "React", "div", "className", "mx", "surfaceShadow", "Panel", "Story", "elevations", "densities", "map", "density", "key", "withLayoutVariants", "React", "memo", "defaultTx", "withTheme", "tx", "defaultTx", "props", "Story", "context", "globals", "theme", "parameters", "translations", "MemoizedStory", "memo", "React", "ThemeProvider", "themeMode", "resourceExtensions", "noCache", "Tooltip", "Provider", "mx", "safeStringify", "React", "useEffect", "useState", "Loading", "data", "visible", "setVisible", "useState", "useEffect", "t", "setTimeout", "clearTimeout", "React", "div", "className", "mx", "h2", "pre", "safeStringify", "undefined"]
7
7
  }
@@ -1,8 +1,34 @@
1
1
  import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
2
 
3
+ // src/components/DensityProvider/DensityProvider.tsx
4
+ import React, { createContext } from "react";
5
+ var DensityContext = /* @__PURE__ */ createContext({
6
+ density: "fine"
7
+ });
8
+ var DensityProvider = ({ density, children }) => /* @__PURE__ */ React.createElement(DensityContext.Provider, {
9
+ value: {
10
+ density
11
+ }
12
+ }, children);
13
+
14
+ // src/components/ElevationProvider/ElevationProvider.tsx
15
+ import React2, { createContext as createContext2 } from "react";
16
+ var ElevationContext = /* @__PURE__ */ createContext2({
17
+ elevation: "base"
18
+ });
19
+ var ElevationProvider = ({ elevation, children }) => /* @__PURE__ */ React2.createElement(ElevationContext.Provider, {
20
+ value: {
21
+ elevation
22
+ }
23
+ }, children);
24
+
3
25
  // src/hooks/useElevationContext.ts
4
26
  import { useContext as useContext3 } from "react";
5
27
 
28
+ // src/components/ThemeProvider/ThemeProvider.tsx
29
+ import { createKeyborg } from "keyborg";
30
+ import React4, { createContext as createContext4, useEffect as useEffect2, useMemo } from "react";
31
+
6
32
  // src/hooks/useThemeContext.ts
7
33
  import { useContext } from "react";
8
34
  import { raise } from "@dxos/debug";
@@ -34,7 +60,7 @@ var useSafeArea = () => {
34
60
  // src/components/ThemeProvider/TranslationsProvider.tsx
35
61
  import { enUS as dtLocaleEnUs } from "date-fns/locale";
36
62
  import i18Next from "i18next";
37
- import React, { Suspense, createContext, useContext as useContext2, useEffect, useState as useState2 } from "react";
63
+ import React3, { Suspense, createContext as createContext3, useContext as useContext2, useEffect, useState as useState2 } from "react";
38
64
  import { initReactI18next, useTranslation as useI18NextTranslation } from "react-i18next";
39
65
  var initialLng = "en-US";
40
66
  var initialNs = "dxos-common";
@@ -54,7 +80,7 @@ void i18Next.use(initReactI18next).init({
54
80
  escapeValue: false
55
81
  }
56
82
  });
57
- var TranslationsContext = /* @__PURE__ */ createContext({
83
+ var TranslationsContext = /* @__PURE__ */ createContext3({
58
84
  appNs: initialNs,
59
85
  dtLocale: initialDtLocale
60
86
  });
@@ -83,16 +109,64 @@ var TranslationsProvider = ({ fallback, resourceExtensions, children, appNs, dtL
83
109
  }, [
84
110
  resourceExtensions
85
111
  ]);
86
- return /* @__PURE__ */ React.createElement(TranslationsContext.Provider, {
112
+ return /* @__PURE__ */ React3.createElement(TranslationsContext.Provider, {
87
113
  value: {
88
114
  appNs: appNs ?? initialNs,
89
115
  dtLocale: dtLocale ?? initialDtLocale
90
116
  }
91
- }, /* @__PURE__ */ React.createElement(Suspense, {
117
+ }, /* @__PURE__ */ React3.createElement(Suspense, {
92
118
  fallback
93
119
  }, loaded ? children : fallback));
94
120
  };
95
121
 
122
+ // src/util/hasIosKeyboard.ts
123
+ var hasIosKeyboard = () => {
124
+ return !!navigator.userAgent.match(/iP(ad|od|hone).+Safari/);
125
+ };
126
+
127
+ // src/components/ThemeProvider/ThemeProvider.tsx
128
+ var ThemeContext = /* @__PURE__ */ createContext4(void 0);
129
+ var ThemeProvider = ({ children, fallback = null, resourceExtensions, appNs, tx = (_path, _styleProps, ..._options) => void 0, themeMode = "dark", rootDensity = "fine", ...rest }) => {
130
+ useEffect2(() => {
131
+ if (document.defaultView) {
132
+ const kb = createKeyborg(document.defaultView);
133
+ kb.subscribe(handleInputModalityChange);
134
+ return () => kb.unsubscribe(handleInputModalityChange);
135
+ }
136
+ }, []);
137
+ const safeAreaPadding = useSafeArea();
138
+ const contextValue = useMemo(() => ({
139
+ tx,
140
+ themeMode,
141
+ hasIosKeyboard: hasIosKeyboard(),
142
+ safeAreaPadding,
143
+ ...rest
144
+ }), [
145
+ tx,
146
+ themeMode,
147
+ safeAreaPadding,
148
+ rest
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
+
96
170
  // src/components/Tooltip/Tooltip.tsx
97
171
  import { composeEventHandlers } from "@radix-ui/primitive";
98
172
  import { useComposedRefs } from "@radix-ui/react-compose-refs";
@@ -107,7 +181,7 @@ import { Primitive } from "@radix-ui/react-primitive";
107
181
  import { Slottable } from "@radix-ui/react-slot";
108
182
  import { useControllableState } from "@radix-ui/react-use-controllable-state";
109
183
  import * as VisuallyHiddenPrimitive from "@radix-ui/react-visually-hidden";
110
- import React2, { forwardRef, useCallback as useCallback2, useEffect as useEffect2, useMemo, useRef, useState as useState3 } from "react";
184
+ import React5, { forwardRef, useCallback as useCallback2, useEffect as useEffect3, useMemo as useMemo2, useRef, useState as useState3 } from "react";
111
185
  var [createTooltipContext, createTooltipScope] = createContextScope("Tooltip", [
112
186
  createPopperScope
113
187
  ]);
@@ -121,7 +195,7 @@ var TooltipProvider = (props) => {
121
195
  const isOpenDelayedRef = useRef(true);
122
196
  const isPointerInTransitRef = useRef(false);
123
197
  const skipDelayTimerRef = useRef(0);
124
- useEffect2(() => {
198
+ useEffect3(() => {
125
199
  const skipDelayTimer = skipDelayTimerRef.current;
126
200
  return () => window.clearTimeout(skipDelayTimer);
127
201
  }, []);
@@ -158,7 +232,7 @@ var TooltipProvider = (props) => {
158
232
  defaultProp: defaultOpen,
159
233
  onChange: handleOpenChange
160
234
  });
161
- const stateAttribute = useMemo(() => {
235
+ const stateAttribute = useMemo2(() => {
162
236
  return open ? wasOpenDelayedRef.current ? "delayed-open" : "instant-open" : "closed";
163
237
  }, [
164
238
  open
@@ -189,7 +263,7 @@ var TooltipProvider = (props) => {
189
263
  delayDuration,
190
264
  setOpen
191
265
  ]);
192
- useEffect2(() => {
266
+ useEffect3(() => {
193
267
  return () => {
194
268
  if (openTimerRef.current) {
195
269
  window.clearTimeout(openTimerRef.current);
@@ -199,7 +273,7 @@ var TooltipProvider = (props) => {
199
273
  }, []);
200
274
  const { tx } = useThemeContext();
201
275
  const elevation = useElevationContext();
202
- return /* @__PURE__ */ React2.createElement(PopperPrimitive.Root, popperScope, /* @__PURE__ */ React2.createElement(TooltipContextProvider, {
276
+ return /* @__PURE__ */ React5.createElement(PopperPrimitive.Root, popperScope, /* @__PURE__ */ React5.createElement(TooltipContextProvider, {
203
277
  scope: __scopeTooltip,
204
278
  contentId,
205
279
  open,
@@ -235,21 +309,21 @@ var TooltipProvider = (props) => {
235
309
  onPointerInTransitChange: useCallback2((inTransit) => {
236
310
  isPointerInTransitRef.current = inTransit;
237
311
  }, [])
238
- }, /* @__PURE__ */ React2.createElement(TooltipContent, {
312
+ }, /* @__PURE__ */ React5.createElement(TooltipContent, {
239
313
  side,
240
- className: tx("tooltip.content", "tooltip", {
314
+ className: tx("tooltip.content", {
241
315
  elevation
242
316
  })
243
- }, content, /* @__PURE__ */ React2.createElement(TooltipArrow, {
244
- className: tx("tooltip.arrow", "tooltip__arrow")
245
- })), /* @__PURE__ */ React2.createElement(TooltipVirtualTrigger, {
317
+ }, content, /* @__PURE__ */ React5.createElement(TooltipArrow, {
318
+ className: tx("tooltip.arrow")
319
+ })), /* @__PURE__ */ React5.createElement(TooltipVirtualTrigger, {
246
320
  virtualRef: triggerRef
247
321
  }), children));
248
322
  };
249
323
  TooltipProvider.displayName = TOOLTIP_NAME;
250
324
  var TooltipVirtualTrigger = ({ virtualRef, __scopeTooltip }) => {
251
325
  const popperScope = usePopperScope(__scopeTooltip);
252
- return /* @__PURE__ */ React2.createElement(PopperPrimitive.Anchor, {
326
+ return /* @__PURE__ */ React5.createElement(PopperPrimitive.Anchor, {
253
327
  asChild: true,
254
328
  ...popperScope,
255
329
  virtualRef
@@ -272,12 +346,12 @@ var TooltipTrigger = /* @__PURE__ */ forwardRef((props, forwardedRef) => {
272
346
  const isPointerDownRef = useRef(false);
273
347
  const hasPointerMoveOpenedRef = useRef(false);
274
348
  const handlePointerUp = useCallback2(() => isPointerDownRef.current = false, []);
275
- useEffect2(() => {
349
+ useEffect3(() => {
276
350
  return () => document.removeEventListener("pointerup", handlePointerUp);
277
351
  }, [
278
352
  handlePointerUp
279
353
  ]);
280
- return /* @__PURE__ */ React2.createElement(Primitive.button, {
354
+ return /* @__PURE__ */ React5.createElement(Primitive.button, {
281
355
  // We purposefully avoid adding `type=button` here because tooltip triggers are also
282
356
  // commonly anchors and the anchor `type` attribute signifies MIME type.
283
357
  "aria-describedby": context.open ? context.contentId : void 0,
@@ -326,12 +400,12 @@ var [PortalProvider, usePortalContext] = createTooltipContext(PORTAL_NAME, {
326
400
  var TooltipPortal = (props) => {
327
401
  const { __scopeTooltip, forceMount, children, container } = props;
328
402
  const context = useTooltipContext(PORTAL_NAME, __scopeTooltip);
329
- return /* @__PURE__ */ React2.createElement(PortalProvider, {
403
+ return /* @__PURE__ */ React5.createElement(PortalProvider, {
330
404
  scope: __scopeTooltip,
331
405
  forceMount
332
- }, /* @__PURE__ */ React2.createElement(Presence, {
406
+ }, /* @__PURE__ */ React5.createElement(Presence, {
333
407
  present: forceMount || context.open
334
- }, /* @__PURE__ */ React2.createElement(PortalPrimitive, {
408
+ }, /* @__PURE__ */ React5.createElement(PortalPrimitive, {
335
409
  asChild: true,
336
410
  container
337
411
  }, children)));
@@ -342,13 +416,13 @@ var TooltipContent = /* @__PURE__ */ forwardRef((props, forwardedRef) => {
342
416
  const portalContext = usePortalContext(CONTENT_NAME, props.__scopeTooltip);
343
417
  const { forceMount = portalContext.forceMount, side = "top", ...contentProps } = props;
344
418
  const context = useTooltipContext(CONTENT_NAME, props.__scopeTooltip);
345
- return /* @__PURE__ */ React2.createElement(Presence, {
419
+ return /* @__PURE__ */ React5.createElement(Presence, {
346
420
  present: forceMount || context.open
347
- }, context.disableHoverableContent ? /* @__PURE__ */ React2.createElement(TooltipContentImpl, {
421
+ }, context.disableHoverableContent ? /* @__PURE__ */ React5.createElement(TooltipContentImpl, {
348
422
  side,
349
423
  ...contentProps,
350
424
  ref: forwardedRef
351
- }) : /* @__PURE__ */ React2.createElement(TooltipContentHoverable, {
425
+ }) : /* @__PURE__ */ React5.createElement(TooltipContentHoverable, {
352
426
  side,
353
427
  ...contentProps,
354
428
  ref: forwardedRef
@@ -386,12 +460,12 @@ var TooltipContentHoverable = /* @__PURE__ */ forwardRef((props, forwardedRef) =
386
460
  }, [
387
461
  onPointerInTransitChange
388
462
  ]);
389
- useEffect2(() => {
463
+ useEffect3(() => {
390
464
  return () => handleRemoveGraceArea();
391
465
  }, [
392
466
  handleRemoveGraceArea
393
467
  ]);
394
- useEffect2(() => {
468
+ useEffect3(() => {
395
469
  if (trigger && content) {
396
470
  const handleTriggerLeave = (event) => handleCreateGraceArea(event, content);
397
471
  const handleContentLeave = (event) => handleCreateGraceArea(event, trigger);
@@ -408,7 +482,7 @@ var TooltipContentHoverable = /* @__PURE__ */ forwardRef((props, forwardedRef) =
408
482
  handleCreateGraceArea,
409
483
  handleRemoveGraceArea
410
484
  ]);
411
- useEffect2(() => {
485
+ useEffect3(() => {
412
486
  if (pointerGraceArea) {
413
487
  const handleTrackPointerGrace = (event) => {
414
488
  const target = event.target;
@@ -435,7 +509,7 @@ var TooltipContentHoverable = /* @__PURE__ */ forwardRef((props, forwardedRef) =
435
509
  onClose,
436
510
  handleRemoveGraceArea
437
511
  ]);
438
- return /* @__PURE__ */ React2.createElement(TooltipContentImpl, {
512
+ return /* @__PURE__ */ React5.createElement(TooltipContentImpl, {
439
513
  ...props,
440
514
  ref: composedRefs
441
515
  });
@@ -448,13 +522,13 @@ var TooltipContentImpl = /* @__PURE__ */ forwardRef((props, forwardedRef) => {
448
522
  const context = useTooltipContext(CONTENT_NAME, __scopeTooltip);
449
523
  const popperScope = usePopperScope(__scopeTooltip);
450
524
  const { onClose } = context;
451
- useEffect2(() => {
525
+ useEffect3(() => {
452
526
  document.addEventListener(TOOLTIP_OPEN, onClose);
453
527
  return () => document.removeEventListener(TOOLTIP_OPEN, onClose);
454
528
  }, [
455
529
  onClose
456
530
  ]);
457
- useEffect2(() => {
531
+ useEffect3(() => {
458
532
  if (context.trigger) {
459
533
  const handleScroll = (event) => {
460
534
  const target = event.target;
@@ -473,14 +547,14 @@ var TooltipContentImpl = /* @__PURE__ */ forwardRef((props, forwardedRef) => {
473
547
  context.trigger,
474
548
  onClose
475
549
  ]);
476
- return /* @__PURE__ */ React2.createElement(DismissableLayer, {
550
+ return /* @__PURE__ */ React5.createElement(DismissableLayer, {
477
551
  asChild: true,
478
552
  disableOutsidePointerEvents: false,
479
553
  onEscapeKeyDown,
480
554
  onPointerDownOutside,
481
555
  onFocusOutside: (event) => event.preventDefault(),
482
556
  onDismiss: onClose
483
- }, /* @__PURE__ */ React2.createElement(PopperPrimitive.Content, {
557
+ }, /* @__PURE__ */ React5.createElement(PopperPrimitive.Content, {
484
558
  "data-state": context.stateAttribute,
485
559
  ...popperScope,
486
560
  ...contentProps,
@@ -496,10 +570,10 @@ var TooltipContentImpl = /* @__PURE__ */ forwardRef((props, forwardedRef) => {
496
570
  "--radix-tooltip-trigger-height": "var(--radix-popper-anchor-height)"
497
571
  }
498
572
  }
499
- }, /* @__PURE__ */ React2.createElement(Slottable, null, children), /* @__PURE__ */ React2.createElement(VisuallyHiddenContentContextProvider, {
573
+ }, /* @__PURE__ */ React5.createElement(Slottable, null, children), /* @__PURE__ */ React5.createElement(VisuallyHiddenContentContextProvider, {
500
574
  scope: __scopeTooltip,
501
575
  isInside: true
502
- }, /* @__PURE__ */ React2.createElement(VisuallyHiddenPrimitive.Root, {
576
+ }, /* @__PURE__ */ React5.createElement(VisuallyHiddenPrimitive.Root, {
503
577
  id: context.contentId,
504
578
  role: "tooltip"
505
579
  }, ariaLabel || children))));
@@ -510,7 +584,7 @@ var TooltipArrow = /* @__PURE__ */ forwardRef((props, forwardedRef) => {
510
584
  const { __scopeTooltip, ...arrowProps } = props;
511
585
  const popperScope = usePopperScope(__scopeTooltip);
512
586
  const visuallyHiddenContentContext = useVisuallyHiddenContentContext(ARROW_NAME, __scopeTooltip);
513
- return visuallyHiddenContentContext.isInside ? null : /* @__PURE__ */ React2.createElement(PopperPrimitive.Arrow, {
587
+ return visuallyHiddenContentContext.isInside ? null : /* @__PURE__ */ React5.createElement(PopperPrimitive.Arrow, {
514
588
  ...popperScope,
515
589
  ...arrowProps,
516
590
  ref: forwardedRef
@@ -675,80 +749,6 @@ var Tooltip = {
675
749
  Trigger: TooltipTrigger
676
750
  };
677
751
 
678
- // src/components/ThemeProvider/ThemeProvider.tsx
679
- import { createKeyborg } from "keyborg";
680
- import React5, { createContext as createContext4, useEffect as useEffect3, useMemo as useMemo2 } from "react";
681
-
682
- // src/util/hasIosKeyboard.ts
683
- var hasIosKeyboard = () => {
684
- return !!navigator.userAgent.match(/iP(ad|od|hone).+Safari/);
685
- };
686
-
687
- // src/components/DensityProvider/DensityProvider.tsx
688
- import React3, { createContext as createContext2 } from "react";
689
- var DensityContext = /* @__PURE__ */ createContext2({
690
- density: "fine"
691
- });
692
- var DensityProvider = ({ density, children }) => /* @__PURE__ */ React3.createElement(DensityContext.Provider, {
693
- value: {
694
- density
695
- }
696
- }, children);
697
-
698
- // src/components/ElevationProvider/ElevationProvider.tsx
699
- import React4, { createContext as createContext3 } from "react";
700
- var ElevationContext = /* @__PURE__ */ createContext3({
701
- elevation: "base"
702
- });
703
- var ElevationProvider = ({ elevation, children }) => /* @__PURE__ */ React4.createElement(ElevationContext.Provider, {
704
- value: {
705
- elevation
706
- }
707
- }, children);
708
-
709
- // src/components/ThemeProvider/ThemeProvider.tsx
710
- var ThemeContext = /* @__PURE__ */ createContext4(void 0);
711
- var ThemeProvider = ({ children, fallback = null, resourceExtensions, appNs, tx = (_path, defaultClassName, _styleProps, ..._options) => defaultClassName, themeMode = "dark", rootDensity = "fine", ...rest }) => {
712
- useEffect3(() => {
713
- if (document.defaultView) {
714
- const kb = createKeyborg(document.defaultView);
715
- kb.subscribe(handleInputModalityChange);
716
- return () => kb.unsubscribe(handleInputModalityChange);
717
- }
718
- }, []);
719
- const safeAreaPadding = useSafeArea();
720
- const contextValue = useMemo2(() => ({
721
- tx,
722
- themeMode,
723
- hasIosKeyboard: hasIosKeyboard(),
724
- safeAreaPadding,
725
- ...rest
726
- }), [
727
- tx,
728
- themeMode,
729
- safeAreaPadding,
730
- rest
731
- ]);
732
- return /* @__PURE__ */ React5.createElement(ThemeContext.Provider, {
733
- value: contextValue
734
- }, /* @__PURE__ */ React5.createElement(TranslationsProvider, {
735
- fallback,
736
- resourceExtensions,
737
- appNs
738
- }, /* @__PURE__ */ React5.createElement(ElevationProvider, {
739
- elevation: "base"
740
- }, /* @__PURE__ */ React5.createElement(DensityProvider, {
741
- density: rootDensity
742
- }, children))));
743
- };
744
- var handleInputModalityChange = (isUsingKeyboard) => {
745
- if (isUsingKeyboard) {
746
- document.body.setAttribute("data-is-keyboard", "true");
747
- } else {
748
- document.body.removeAttribute("data-is-keyboard");
749
- }
750
- };
751
-
752
752
  // src/hooks/useElevationContext.ts
753
753
  var useElevationContext = (propsElevation) => {
754
754
  const { elevation } = useContext3(ElevationContext);
@@ -756,21 +756,21 @@ var useElevationContext = (propsElevation) => {
756
756
  };
757
757
 
758
758
  export {
759
+ DensityContext,
760
+ DensityProvider,
761
+ ElevationContext,
762
+ ElevationProvider,
759
763
  useElevationContext,
760
764
  useThemeContext,
761
765
  initialSafeArea,
762
766
  useSafeArea,
763
767
  TranslationsContext,
764
768
  useTranslation,
765
- createTooltipScope,
766
- useTooltipContext,
767
- Tooltip,
768
769
  hasIosKeyboard,
769
- DensityContext,
770
- DensityProvider,
771
- ElevationContext,
772
- ElevationProvider,
773
770
  ThemeContext,
774
- ThemeProvider
771
+ ThemeProvider,
772
+ createTooltipScope,
773
+ useTooltipContext,
774
+ Tooltip
775
775
  };
776
- //# sourceMappingURL=chunk-2NHEX4AD.mjs.map
776
+ //# sourceMappingURL=chunk-ZNBLTSHI.mjs.map