@dxos/react-ui 0.10.0 → 0.11.0

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 (354) hide show
  1. package/dist/lib/chunk-parse-stack.mjs +1566 -0
  2. package/dist/lib/chunk-parse-stack.mjs.map +1 -0
  3. package/dist/lib/index.mjs +5220 -0
  4. package/dist/lib/index.mjs.map +1 -0
  5. package/dist/lib/testing.mjs +144 -0
  6. package/dist/lib/testing.mjs.map +1 -0
  7. package/dist/lib/translations.mjs +38 -0
  8. package/dist/lib/translations.mjs.map +1 -0
  9. package/dist/types/src/components/Avatars/Avatar.d.ts +1 -6
  10. package/dist/types/src/components/Avatars/Avatar.d.ts.map +1 -1
  11. package/dist/types/src/components/Avatars/AvatarContext.d.ts +9 -0
  12. package/dist/types/src/components/Avatars/AvatarContext.d.ts.map +1 -0
  13. package/dist/types/src/components/Avatars/index.d.ts +1 -0
  14. package/dist/types/src/components/Avatars/index.d.ts.map +1 -1
  15. package/dist/types/src/components/Breadcrumb/Breadcrumb.d.ts +1 -1
  16. package/dist/types/src/components/Breadcrumb/Breadcrumb.d.ts.map +1 -1
  17. package/dist/types/src/components/Breadcrumb/Breadcrumb.stories.d.ts.map +1 -1
  18. package/dist/types/src/components/Breadcrumb/Breadcrumb.theme.d.ts.map +1 -1
  19. package/dist/types/src/components/Button/Button.d.ts +1 -6
  20. package/dist/types/src/components/Button/Button.d.ts.map +1 -1
  21. package/dist/types/src/components/Button/ButtonGroupContext.d.ts +9 -0
  22. package/dist/types/src/components/Button/ButtonGroupContext.d.ts.map +1 -0
  23. package/dist/types/src/components/Button/IconButton.d.ts.map +1 -1
  24. package/dist/types/src/components/Button/IconButton.stories.d.ts.map +1 -1
  25. package/dist/types/src/components/Button/IconButton.theme.d.ts +1 -0
  26. package/dist/types/src/components/Button/IconButton.theme.d.ts.map +1 -1
  27. package/dist/types/src/components/Button/SystemIconButton.d.ts +1 -1
  28. package/dist/types/src/components/Button/SystemIconButton.d.ts.map +1 -1
  29. package/dist/types/src/components/Button/index.d.ts +1 -0
  30. package/dist/types/src/components/Button/index.d.ts.map +1 -1
  31. package/dist/types/src/components/Calendar/Calendar.d.ts +0 -2
  32. package/dist/types/src/components/Calendar/Calendar.d.ts.map +1 -1
  33. package/dist/types/src/components/Calendar/index.d.ts +1 -0
  34. package/dist/types/src/components/Calendar/index.d.ts.map +1 -1
  35. package/dist/types/src/components/Calendar/parse-calendar-date.d.ts +3 -0
  36. package/dist/types/src/components/Calendar/parse-calendar-date.d.ts.map +1 -0
  37. package/dist/types/src/components/Card/Card.d.ts +42 -15
  38. package/dist/types/src/components/Card/Card.d.ts.map +1 -1
  39. package/dist/types/src/components/Card/Card.theme.d.ts +0 -1
  40. package/dist/types/src/components/Card/Card.theme.d.ts.map +1 -1
  41. package/dist/types/src/components/Carousel/Carousel.d.ts +2 -4
  42. package/dist/types/src/components/Carousel/Carousel.d.ts.map +1 -1
  43. package/dist/types/src/components/Carousel/CarouselContext.d.ts +8 -0
  44. package/dist/types/src/components/Carousel/CarouselContext.d.ts.map +1 -0
  45. package/dist/types/src/components/Carousel/index.d.ts +1 -0
  46. package/dist/types/src/components/Carousel/index.d.ts.map +1 -1
  47. package/dist/types/src/components/Clipboard/ClipboardContext.d.ts +7 -0
  48. package/dist/types/src/components/Clipboard/ClipboardContext.d.ts.map +1 -0
  49. package/dist/types/src/components/Clipboard/ClipboardProvider.d.ts +0 -6
  50. package/dist/types/src/components/Clipboard/ClipboardProvider.d.ts.map +1 -1
  51. package/dist/types/src/components/Clipboard/index.d.ts +1 -1
  52. package/dist/types/src/components/Clipboard/index.d.ts.map +1 -1
  53. package/dist/types/src/components/Column/Column.d.ts +7 -12
  54. package/dist/types/src/components/Column/Column.d.ts.map +1 -1
  55. package/dist/types/src/components/Column/Column.stories.d.ts +2 -2
  56. package/dist/types/src/components/Column/Column.theme.d.ts +0 -1
  57. package/dist/types/src/components/Column/Column.theme.d.ts.map +1 -1
  58. package/dist/types/src/components/Column/ColumnContext.d.ts +9 -0
  59. package/dist/types/src/components/Column/ColumnContext.d.ts.map +1 -0
  60. package/dist/types/src/components/Column/index.d.ts +1 -0
  61. package/dist/types/src/components/Column/index.d.ts.map +1 -1
  62. package/dist/types/src/components/Column/withColumn.d.ts +40 -4
  63. package/dist/types/src/components/Column/withColumn.d.ts.map +1 -1
  64. package/dist/types/src/components/DatePicker/DatePicker.d.ts +0 -10
  65. package/dist/types/src/components/DatePicker/DatePicker.d.ts.map +1 -1
  66. package/dist/types/src/components/DatePicker/DatePickerContext.d.ts +13 -0
  67. package/dist/types/src/components/DatePicker/DatePickerContext.d.ts.map +1 -0
  68. package/dist/types/src/components/DatePicker/index.d.ts +1 -0
  69. package/dist/types/src/components/DatePicker/index.d.ts.map +1 -1
  70. package/dist/types/src/components/Dialog/AlertDialog.d.ts +3 -3
  71. package/dist/types/src/components/Dialog/Dialog.d.ts +3 -3
  72. package/dist/types/src/components/ErrorFallback/ErrorStack.d.ts +5 -10
  73. package/dist/types/src/components/ErrorFallback/ErrorStack.d.ts.map +1 -1
  74. package/dist/types/src/components/ErrorFallback/index.d.ts +1 -0
  75. package/dist/types/src/components/ErrorFallback/index.d.ts.map +1 -1
  76. package/dist/types/src/components/ErrorFallback/parse-stack.d.ts +8 -0
  77. package/dist/types/src/components/ErrorFallback/parse-stack.d.ts.map +1 -0
  78. package/dist/types/src/components/Focus/Focus.d.ts +2 -10
  79. package/dist/types/src/components/Focus/Focus.d.ts.map +1 -1
  80. package/dist/types/src/components/Focus/FocusContext.d.ts +10 -0
  81. package/dist/types/src/components/Focus/FocusContext.d.ts.map +1 -0
  82. package/dist/types/src/components/Focus/index.d.ts +1 -0
  83. package/dist/types/src/components/Focus/index.d.ts.map +1 -1
  84. package/dist/types/src/components/Input/Input.d.ts +9 -10
  85. package/dist/types/src/components/Input/Input.d.ts.map +1 -1
  86. package/dist/types/src/components/Input/Input.stories.d.ts +7 -2
  87. package/dist/types/src/components/Input/Input.stories.d.ts.map +1 -1
  88. package/dist/types/src/components/Input/Input.theme.d.ts +13 -0
  89. package/dist/types/src/components/Input/Input.theme.d.ts.map +1 -1
  90. package/dist/types/src/components/Input/InputTriggerContext.d.ts +15 -0
  91. package/dist/types/src/components/Input/InputTriggerContext.d.ts.map +1 -0
  92. package/dist/types/src/components/Input/SegmentedInput.d.ts.map +1 -1
  93. package/dist/types/src/components/Input/index.d.ts +1 -0
  94. package/dist/types/src/components/Input/index.d.ts.map +1 -1
  95. package/dist/types/src/components/Main/Main.d.ts +2 -35
  96. package/dist/types/src/components/Main/Main.d.ts.map +1 -1
  97. package/dist/types/src/components/Main/Main.stories.d.ts.map +1 -1
  98. package/dist/types/src/components/Main/Main.theme.d.ts.map +1 -1
  99. package/dist/types/src/components/Main/MainContext.d.ts +38 -0
  100. package/dist/types/src/components/Main/MainContext.d.ts.map +1 -0
  101. package/dist/types/src/components/Main/index.d.ts +1 -0
  102. package/dist/types/src/components/Main/index.d.ts.map +1 -1
  103. package/dist/types/src/components/MediaPlayer/MediaPlayer.d.ts +1 -17
  104. package/dist/types/src/components/MediaPlayer/MediaPlayer.d.ts.map +1 -1
  105. package/dist/types/src/components/MediaPlayer/index.d.ts +1 -0
  106. package/dist/types/src/components/MediaPlayer/index.d.ts.map +1 -1
  107. package/dist/types/src/components/MediaPlayer/media-kind.d.ts +18 -0
  108. package/dist/types/src/components/MediaPlayer/media-kind.d.ts.map +1 -0
  109. package/dist/types/src/components/Menu/DropdownMenu.d.ts +6 -22
  110. package/dist/types/src/components/Menu/DropdownMenu.d.ts.map +1 -1
  111. package/dist/types/src/components/Menu/DropdownMenu.stories.d.ts +1 -11
  112. package/dist/types/src/components/Menu/DropdownMenu.stories.d.ts.map +1 -1
  113. package/dist/types/src/components/Menu/DropdownMenuContext.d.ts +27 -0
  114. package/dist/types/src/components/Menu/DropdownMenuContext.d.ts.map +1 -0
  115. package/dist/types/src/components/Menu/index.d.ts +1 -0
  116. package/dist/types/src/components/Menu/index.d.ts.map +1 -1
  117. package/dist/types/src/components/Message/Message.d.ts +11 -6
  118. package/dist/types/src/components/Message/Message.d.ts.map +1 -1
  119. package/dist/types/src/components/Message/Message.stories.d.ts +4 -1
  120. package/dist/types/src/components/Message/Message.stories.d.ts.map +1 -1
  121. package/dist/types/src/components/Message/Message.theme.d.ts.map +1 -1
  122. package/dist/types/src/components/Message/index.d.ts +1 -0
  123. package/dist/types/src/components/Message/index.d.ts.map +1 -1
  124. package/dist/types/src/components/Message/message-icons.d.ts +3 -0
  125. package/dist/types/src/components/Message/message-icons.d.ts.map +1 -0
  126. package/dist/types/src/components/Panel/Panel.d.ts +4 -4
  127. package/dist/types/src/components/Panel/Panel.stories.d.ts.map +1 -1
  128. package/dist/types/src/components/Panel/Panel.theme.d.ts +1 -1
  129. package/dist/types/src/components/Panel/Panel.theme.d.ts.map +1 -1
  130. package/dist/types/src/components/Popover/Popover.d.ts +6 -10
  131. package/dist/types/src/components/Popover/Popover.d.ts.map +1 -1
  132. package/dist/types/src/components/Popover/PopoverContext.d.ts +29 -0
  133. package/dist/types/src/components/Popover/PopoverContext.d.ts.map +1 -0
  134. package/dist/types/src/components/Popover/index.d.ts +1 -0
  135. package/dist/types/src/components/Popover/index.d.ts.map +1 -1
  136. package/dist/types/src/components/ScrollArea/ScrollArea.d.ts +2 -2
  137. package/dist/types/src/components/ScrollArea/ScrollArea.stories.d.ts +2 -2
  138. package/dist/types/src/components/ScrollContainer/ScrollContainer.d.ts +3 -16
  139. package/dist/types/src/components/ScrollContainer/ScrollContainer.d.ts.map +1 -1
  140. package/dist/types/src/components/ScrollContainer/ScrollContainerContext.d.ts +16 -0
  141. package/dist/types/src/components/ScrollContainer/ScrollContainerContext.d.ts.map +1 -0
  142. package/dist/types/src/components/ScrollContainer/index.d.ts +1 -0
  143. package/dist/types/src/components/ScrollContainer/index.d.ts.map +1 -1
  144. package/dist/types/src/components/Slider/Slider.d.ts +25 -0
  145. package/dist/types/src/components/Slider/Slider.d.ts.map +1 -0
  146. package/dist/types/src/components/Slider/Slider.stories.d.ts +29 -0
  147. package/dist/types/src/components/Slider/Slider.stories.d.ts.map +1 -0
  148. package/dist/types/src/components/Slider/Slider.test.d.ts +2 -0
  149. package/dist/types/src/components/Slider/Slider.test.d.ts.map +1 -0
  150. package/dist/types/src/components/Slider/Slider.theme.d.ts +7 -0
  151. package/dist/types/src/components/Slider/Slider.theme.d.ts.map +1 -0
  152. package/dist/types/src/components/Slider/index.d.ts +2 -0
  153. package/dist/types/src/components/Slider/index.d.ts.map +1 -0
  154. package/dist/types/src/components/Splitter/Splitter.d.ts +3 -3
  155. package/dist/types/src/components/Status/Status.d.ts.map +1 -1
  156. package/dist/types/src/components/Toolbar/Toolbar.d.ts +4 -2
  157. package/dist/types/src/components/Toolbar/Toolbar.d.ts.map +1 -1
  158. package/dist/types/src/components/Toolbar/Toolbar.theme.d.ts.map +1 -1
  159. package/dist/types/src/components/Tooltip/TextTooltip.d.ts.map +1 -1
  160. package/dist/types/src/components/Tooltip/Tooltip.d.ts +2 -23
  161. package/dist/types/src/components/Tooltip/Tooltip.d.ts.map +1 -1
  162. package/dist/types/src/components/Tooltip/TooltipContext.d.ts +35 -0
  163. package/dist/types/src/components/Tooltip/TooltipContext.d.ts.map +1 -0
  164. package/dist/types/src/components/Tooltip/index.d.ts +1 -0
  165. package/dist/types/src/components/Tooltip/index.d.ts.map +1 -1
  166. package/dist/types/src/components/index.d.ts +1 -0
  167. package/dist/types/src/components/index.d.ts.map +1 -1
  168. package/dist/types/src/exemplars/generics.stories.d.ts +1 -1
  169. package/dist/types/src/hooks/useIconHref.d.ts +8 -0
  170. package/dist/types/src/hooks/useIconHref.d.ts.map +1 -1
  171. package/dist/types/src/hooks/useThemeContext.d.ts +2 -1
  172. package/dist/types/src/hooks/useThemeContext.d.ts.map +1 -1
  173. package/dist/types/src/hooks/useThemeContext.test.d.ts +2 -0
  174. package/dist/types/src/hooks/useThemeContext.test.d.ts.map +1 -0
  175. package/dist/types/src/playground/Density.stories.d.ts +11 -0
  176. package/dist/types/src/playground/Density.stories.d.ts.map +1 -0
  177. package/dist/types/src/playground/Elevation.stories.d.ts +14 -0
  178. package/dist/types/src/playground/Elevation.stories.d.ts.map +1 -0
  179. package/dist/types/src/primitives/Container/Container.d.ts +1 -1
  180. package/dist/types/src/primitives/Container/Container.d.ts.map +1 -1
  181. package/dist/types/src/primitives/DensityProvider/DensityContext.d.ts +6 -0
  182. package/dist/types/src/primitives/DensityProvider/DensityContext.d.ts.map +1 -0
  183. package/dist/types/src/primitives/DensityProvider/DensityProvider.d.ts +10 -4
  184. package/dist/types/src/primitives/DensityProvider/DensityProvider.d.ts.map +1 -1
  185. package/dist/types/src/primitives/DensityProvider/index.d.ts +1 -0
  186. package/dist/types/src/primitives/DensityProvider/index.d.ts.map +1 -1
  187. package/dist/types/src/primitives/Flex/Flex.d.ts +1 -1
  188. package/dist/types/src/primitives/Flex/Flex.d.ts.map +1 -1
  189. package/dist/types/src/primitives/Grid/Grid.d.ts +1 -1
  190. package/dist/types/src/primitives/Grid/Grid.d.ts.map +1 -1
  191. package/dist/types/src/primitives/ThemeProvider/IconRegistry.d.ts +15 -0
  192. package/dist/types/src/primitives/ThemeProvider/IconRegistry.d.ts.map +1 -0
  193. package/dist/types/src/primitives/ThemeProvider/ThemeProvider.d.ts +1 -2
  194. package/dist/types/src/primitives/ThemeProvider/ThemeProvider.d.ts.map +1 -1
  195. package/dist/types/src/primitives/ThemeProvider/ThemeProvider.stories.d.ts +1 -1
  196. package/dist/types/src/primitives/ThemeProvider/TranslationsContext.d.ts +112 -0
  197. package/dist/types/src/primitives/ThemeProvider/TranslationsContext.d.ts.map +1 -0
  198. package/dist/types/src/primitives/ThemeProvider/TranslationsProvider.d.ts +0 -109
  199. package/dist/types/src/primitives/ThemeProvider/TranslationsProvider.d.ts.map +1 -1
  200. package/dist/types/src/primitives/ThemeProvider/icon-registry.d.ts +34 -0
  201. package/dist/types/src/primitives/ThemeProvider/icon-registry.d.ts.map +1 -0
  202. package/dist/types/src/primitives/ThemeProvider/index.d.ts +3 -1
  203. package/dist/types/src/primitives/ThemeProvider/index.d.ts.map +1 -1
  204. package/dist/types/src/testing/decorators/withTheme.d.ts +1 -1
  205. package/dist/types/src/testing/decorators/withTheme.d.ts.map +1 -1
  206. package/dist/types/src/theme/defaultTheme.d.ts.map +1 -1
  207. package/dist/types/src/theme/index.d.ts +1 -0
  208. package/dist/types/src/theme/index.d.ts.map +1 -1
  209. package/dist/types/src/util/slots.d.ts +6 -3
  210. package/dist/types/src/util/slots.d.ts.map +1 -1
  211. package/dist/types/src/util/slots.stories.d.ts +14 -0
  212. package/dist/types/src/util/slots.stories.d.ts.map +1 -0
  213. package/dist/types/tsconfig.tsbuildinfo +1 -1
  214. package/package.json +25 -27
  215. package/src/components/Avatars/Avatar.tsx +1 -11
  216. package/src/components/Avatars/AvatarContext.ts +16 -0
  217. package/src/components/Avatars/index.ts +2 -0
  218. package/src/components/Breadcrumb/Breadcrumb.stories.tsx +27 -25
  219. package/src/components/Breadcrumb/Breadcrumb.theme.ts +7 -5
  220. package/src/components/Breadcrumb/Breadcrumb.tsx +2 -2
  221. package/src/components/Button/Button.tsx +2 -11
  222. package/src/components/Button/ButtonGroupContext.ts +17 -0
  223. package/src/components/Button/IconButton.stories.tsx +2 -3
  224. package/src/components/Button/IconButton.theme.ts +15 -2
  225. package/src/components/Button/IconButton.tsx +6 -1
  226. package/src/components/Button/SystemIconButton.tsx +23 -16
  227. package/src/components/Button/index.ts +2 -0
  228. package/src/components/Calendar/Calendar.theme.ts +5 -5
  229. package/src/components/Calendar/Calendar.tsx +1 -3
  230. package/src/components/Calendar/index.ts +2 -0
  231. package/src/components/Calendar/parse-calendar-date.ts +9 -0
  232. package/src/components/Card/Card.theme.ts +48 -38
  233. package/src/components/Card/Card.tsx +77 -16
  234. package/src/components/Carousel/Carousel.tsx +4 -11
  235. package/src/components/Carousel/CarouselContext.ts +17 -0
  236. package/src/components/Carousel/index.ts +2 -0
  237. package/src/components/Clipboard/ClipboardContext.ts +20 -0
  238. package/src/components/Clipboard/ClipboardProvider.tsx +2 -12
  239. package/src/components/Clipboard/CopyButton.tsx +1 -1
  240. package/src/components/Clipboard/index.ts +1 -1
  241. package/src/components/Column/Column.stories.tsx +2 -2
  242. package/src/components/Column/Column.theme.ts +2 -11
  243. package/src/components/Column/Column.tsx +35 -57
  244. package/src/components/Column/ColumnContext.ts +22 -0
  245. package/src/components/Column/index.ts +2 -0
  246. package/src/components/Column/withColumn.ts +41 -4
  247. package/src/components/DatePicker/DatePicker.theme.ts +2 -2
  248. package/src/components/DatePicker/DatePicker.tsx +1 -14
  249. package/src/components/DatePicker/DatePickerContext.ts +21 -0
  250. package/src/components/DatePicker/index.ts +2 -0
  251. package/src/components/ErrorFallback/ErrorStack.tsx +8 -28
  252. package/src/components/ErrorFallback/index.ts +1 -0
  253. package/src/components/ErrorFallback/parse-stack.ts +33 -0
  254. package/src/components/Focus/Focus.stories.tsx +6 -6
  255. package/src/components/Focus/Focus.tsx +2 -30
  256. package/src/components/Focus/FocusContext.ts +22 -0
  257. package/src/components/Focus/index.ts +2 -0
  258. package/src/components/Image/Image.tsx +1 -1
  259. package/src/components/Input/Input.stories.tsx +63 -48
  260. package/src/components/Input/Input.theme.ts +33 -27
  261. package/src/components/Input/Input.tsx +46 -43
  262. package/src/components/Input/InputTriggerContext.ts +45 -0
  263. package/src/components/Input/SegmentedInput.tsx +2 -1
  264. package/src/components/Input/index.ts +2 -0
  265. package/src/components/Main/Main.stories.tsx +2 -1
  266. package/src/components/Main/Main.theme.ts +10 -1
  267. package/src/components/Main/Main.tsx +1 -115
  268. package/src/components/Main/MainContext.ts +126 -0
  269. package/src/components/Main/index.ts +2 -0
  270. package/src/components/MediaPlayer/MediaPlayer.tsx +16 -47
  271. package/src/components/MediaPlayer/index.ts +2 -0
  272. package/src/components/MediaPlayer/media-kind.ts +41 -0
  273. package/src/components/Menu/DropdownMenu.tsx +27 -44
  274. package/src/components/Menu/DropdownMenuContext.ts +35 -0
  275. package/src/components/Menu/Menu.theme.ts +3 -3
  276. package/src/components/Menu/index.ts +2 -0
  277. package/src/components/Message/Message.stories.tsx +32 -15
  278. package/src/components/Message/Message.theme.ts +8 -2
  279. package/src/components/Message/Message.tsx +47 -23
  280. package/src/components/Message/index.ts +2 -0
  281. package/src/components/Message/message-icons.ts +16 -0
  282. package/src/components/Panel/Panel.stories.tsx +15 -2
  283. package/src/components/Panel/Panel.theme.ts +15 -6
  284. package/src/components/Popover/Popover.theme.ts +1 -1
  285. package/src/components/Popover/Popover.tsx +22 -37
  286. package/src/components/Popover/PopoverContext.ts +32 -0
  287. package/src/components/Popover/index.ts +2 -0
  288. package/src/components/ScrollContainer/ScrollContainer.stories.tsx +1 -1
  289. package/src/components/ScrollContainer/ScrollContainer.tsx +1 -18
  290. package/src/components/ScrollContainer/ScrollContainerContext.ts +25 -0
  291. package/src/components/ScrollContainer/index.ts +2 -0
  292. package/src/components/Select/Select.theme.ts +2 -2
  293. package/src/components/Slider/Slider.stories.tsx +107 -0
  294. package/src/components/Slider/Slider.test.tsx +105 -0
  295. package/src/components/Slider/Slider.theme.ts +38 -0
  296. package/src/components/Slider/Slider.tsx +64 -0
  297. package/src/components/Slider/index.ts +5 -0
  298. package/src/components/Status/Status.theme.ts +1 -1
  299. package/src/components/Status/Status.tsx +0 -1
  300. package/src/components/Tag/Tag.stories.tsx +1 -1
  301. package/src/components/Toolbar/Toolbar.theme.ts +14 -5
  302. package/src/components/Toolbar/Toolbar.tsx +5 -1
  303. package/src/components/Tooltip/TextTooltip.tsx +2 -1
  304. package/src/components/Tooltip/Tooltip.tsx +12 -35
  305. package/src/components/Tooltip/TooltipContext.ts +41 -0
  306. package/src/components/Tooltip/index.ts +2 -0
  307. package/src/components/index.ts +1 -0
  308. package/src/hooks/useIconHref.ts +26 -5
  309. package/src/hooks/useThemeContext.test.tsx +33 -0
  310. package/src/hooks/useThemeContext.ts +28 -3
  311. package/src/playground/Density.stories.tsx +41 -0
  312. package/src/playground/Elevation.stories.tsx +348 -0
  313. package/src/primitives/DensityProvider/DensityContext.ts +15 -0
  314. package/src/primitives/DensityProvider/DensityProvider.tsx +12 -6
  315. package/src/primitives/DensityProvider/index.ts +1 -0
  316. package/src/primitives/Flex/Flex.stories.tsx +1 -1
  317. package/src/primitives/Grid/Grid.stories.tsx +1 -1
  318. package/src/primitives/ThemeProvider/IconRegistry.tsx +42 -0
  319. package/src/primitives/ThemeProvider/ThemeProvider.tsx +16 -15
  320. package/src/primitives/ThemeProvider/TranslationsContext.ts +24 -0
  321. package/src/primitives/ThemeProvider/TranslationsProvider.tsx +4 -16
  322. package/src/primitives/ThemeProvider/icon-registry.ts +272 -0
  323. package/src/primitives/ThemeProvider/index.ts +9 -1
  324. package/src/testing/decorators/withLayout.tsx +4 -4
  325. package/src/testing/decorators/withLayoutVariants.tsx +3 -3
  326. package/src/testing/decorators/withTheme.tsx +1 -2
  327. package/src/theme/defaultTheme.ts +2 -0
  328. package/src/theme/index.ts +1 -0
  329. package/src/util/slots.stories.tsx +80 -0
  330. package/src/util/slots.ts +14 -5
  331. package/dist/lib/browser/chunk-CMHHVHX3.mjs +0 -46
  332. package/dist/lib/browser/chunk-CMHHVHX3.mjs.map +0 -7
  333. package/dist/lib/browser/chunk-GTHV4WYK.mjs +0 -1499
  334. package/dist/lib/browser/chunk-GTHV4WYK.mjs.map +0 -7
  335. package/dist/lib/browser/index.mjs +0 -5632
  336. package/dist/lib/browser/index.mjs.map +0 -7
  337. package/dist/lib/browser/meta.json +0 -1
  338. package/dist/lib/browser/testing/index.mjs +0 -133
  339. package/dist/lib/browser/testing/index.mjs.map +0 -7
  340. package/dist/lib/browser/translations.mjs +0 -9
  341. package/dist/lib/browser/translations.mjs.map +0 -7
  342. package/dist/lib/node-esm/chunk-3VSKWNCQ.mjs +0 -1501
  343. package/dist/lib/node-esm/chunk-3VSKWNCQ.mjs.map +0 -7
  344. package/dist/lib/node-esm/chunk-P4KFQGJI.mjs +0 -48
  345. package/dist/lib/node-esm/chunk-P4KFQGJI.mjs.map +0 -7
  346. package/dist/lib/node-esm/index.mjs +0 -5633
  347. package/dist/lib/node-esm/index.mjs.map +0 -7
  348. package/dist/lib/node-esm/meta.json +0 -1
  349. package/dist/lib/node-esm/testing/index.mjs +0 -134
  350. package/dist/lib/node-esm/testing/index.mjs.map +0 -7
  351. package/dist/lib/node-esm/translations.mjs +0 -10
  352. package/dist/lib/node-esm/translations.mjs.map +0 -7
  353. package/src/components/Column/AUDIT.md +0 -148
  354. package/src/components/Focus/AUDIT.md +0 -43
@@ -1,1501 +0,0 @@
1
- import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
-
3
- // src/primitives/DensityProvider/DensityProvider.tsx
4
- import React, { createContext } from "react";
5
- var DensityContext = /* @__PURE__ */ createContext({
6
- density: "md"
7
- });
8
- var DensityProvider = ({ density, children }) => /* @__PURE__ */ React.createElement(DensityContext.Provider, {
9
- value: {
10
- density
11
- }
12
- }, children);
13
-
14
- // src/primitives/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
-
25
- // src/util/mobile.ts
26
- var hasIosKeyboard = () => {
27
- return !!navigator.userAgent.match(/iP(ad|od|hone).+Safari/);
28
- };
29
-
30
- // src/primitives/ThemeProvider/TranslationsProvider.tsx
31
- import { enUS as dtLocaleEnUs } from "date-fns/locale";
32
- import React3, { Suspense, createContext as createContext3, useContext, useEffect, useState } from "react";
33
- import { I18nextProvider, useTranslation as useI18NextTranslation } from "react-i18next";
34
- import { addResources, i18n } from "@dxos/i18n";
35
- var initialNs = "dxos-common";
36
- var initialDtLocale = dtLocaleEnUs;
37
- var TranslationsContext = /* @__PURE__ */ createContext3({
38
- appNs: initialNs,
39
- dtLocale: initialDtLocale
40
- });
41
- var useTranslation = (...args) => {
42
- const result = useI18NextTranslation(...args);
43
- const { dtLocale } = useContext(TranslationsContext);
44
- return {
45
- ...result,
46
- dtLocale
47
- };
48
- };
49
- var TranslationsProvider = ({ fallback, resourceExtensions, children, appNs, dtLocale }) => {
50
- const [loaded, setLoaded] = useState(false);
51
- useEffect(() => {
52
- setLoaded(false);
53
- if (resourceExtensions && resourceExtensions.length) {
54
- addResources(resourceExtensions);
55
- }
56
- setLoaded(true);
57
- }, [
58
- resourceExtensions
59
- ]);
60
- return /* @__PURE__ */ React3.createElement(I18nextProvider, {
61
- i18n
62
- }, /* @__PURE__ */ React3.createElement(TranslationsContext.Provider, {
63
- value: {
64
- appNs: appNs ?? initialNs,
65
- dtLocale: dtLocale ?? initialDtLocale
66
- }
67
- }, /* @__PURE__ */ React3.createElement(Suspense, {
68
- fallback
69
- }, loaded ? children : fallback)));
70
- };
71
-
72
- // src/primitives/ThemeProvider/ThemeProvider.tsx
73
- import { createKeyborg } from "keyborg";
74
- import React4, { createContext as createContext4, useEffect as useEffect2, useMemo } from "react";
75
-
76
- // src/hooks/useElevationContext.ts
77
- import { useContext as useContext2 } from "react";
78
- var useElevationContext = (propsElevation) => {
79
- const { elevation } = useContext2(ElevationContext);
80
- return propsElevation ?? elevation;
81
- };
82
-
83
- // src/hooks/useThemeContext.ts
84
- import { useContext as useContext3 } from "react";
85
- import { raise } from "@dxos/debug";
86
- var useThemeContext = () => useContext3(ThemeContext) ?? raise(new Error("Missing ThemeContext"));
87
-
88
- // src/hooks/useSafeArea.ts
89
- import { useCallback, useState as useState2 } from "react";
90
- import { useViewportResize } from "@dxos/react-hooks";
91
- var initialSafeArea = {
92
- top: NaN,
93
- right: NaN,
94
- bottom: NaN,
95
- left: NaN
96
- };
97
- var useSafeArea = () => {
98
- const [padding2, setPadding] = useState2(initialSafeArea);
99
- const handleResize = useCallback(() => {
100
- setPadding({
101
- top: parseFloat(getComputedStyle(document.documentElement).getPropertyValue("--safe-area-top")),
102
- right: parseFloat(getComputedStyle(document.documentElement).getPropertyValue("--safe-area-right")),
103
- bottom: parseFloat(getComputedStyle(document.documentElement).getPropertyValue("--safe-area-bottom")),
104
- left: parseFloat(getComputedStyle(document.documentElement).getPropertyValue("--safe-area-left"))
105
- });
106
- }, []);
107
- useViewportResize(handleResize);
108
- return padding2;
109
- };
110
-
111
- // src/primitives/ThemeProvider/ThemeProvider.tsx
112
- var ThemeContext = /* @__PURE__ */ createContext4(void 0);
113
- var ThemeProvider = ({ children, fallback = null, resourceExtensions, appNs, tx = (_path, _styleProps, ..._options) => void 0, themeMode = "dark", rootDensity = "md", noCache, platform }) => {
114
- useEffect2(() => {
115
- if (document.defaultView) {
116
- const kb = createKeyborg(document.defaultView);
117
- kb.subscribe(handleInputModalityChange);
118
- return () => kb.unsubscribe(handleInputModalityChange);
119
- }
120
- }, []);
121
- const safeAreaPadding = useSafeArea();
122
- const contextValue = useMemo(() => ({
123
- tx,
124
- themeMode,
125
- hasIosKeyboard: hasIosKeyboard(),
126
- safeAreaPadding,
127
- noCache,
128
- platform
129
- }), [
130
- tx,
131
- themeMode,
132
- safeAreaPadding,
133
- noCache,
134
- platform
135
- ]);
136
- return /* @__PURE__ */ React4.createElement(ThemeContext.Provider, {
137
- value: contextValue
138
- }, /* @__PURE__ */ React4.createElement(TranslationsProvider, {
139
- fallback,
140
- resourceExtensions,
141
- appNs
142
- }, /* @__PURE__ */ React4.createElement(ElevationProvider, {
143
- elevation: "base"
144
- }, /* @__PURE__ */ React4.createElement(DensityProvider, {
145
- density: rootDensity
146
- }, children))));
147
- };
148
- var handleInputModalityChange = (isUsingKeyboard) => {
149
- if (isUsingKeyboard) {
150
- document.body.setAttribute("data-w-keyboard", "true");
151
- } else {
152
- document.body.removeAttribute("data-w-keyboard");
153
- }
154
- };
155
-
156
- // src/components/Tooltip/Tooltip.tsx
157
- import { composeEventHandlers } from "@radix-ui/primitive";
158
- import { useComposedRefs } from "@radix-ui/react-compose-refs";
159
- import { createContextScope } from "@radix-ui/react-context";
160
- import { DismissableLayer } from "@radix-ui/react-dismissable-layer";
161
- import { useId } from "@radix-ui/react-id";
162
- import * as PopperPrimitive from "@radix-ui/react-popper";
163
- import { createPopperScope } from "@radix-ui/react-popper";
164
- import { Portal as PortalPrimitive } from "@radix-ui/react-portal";
165
- import { Presence } from "@radix-ui/react-presence";
166
- import { Primitive } from "@radix-ui/react-primitive";
167
- import { Slottable } from "@radix-ui/react-slot";
168
- import { useControllableState } from "@radix-ui/react-use-controllable-state";
169
- import * as VisuallyHiddenPrimitive from "@radix-ui/react-visually-hidden";
170
- import React5, { forwardRef, useCallback as useCallback2, useEffect as useEffect3, useMemo as useMemo2, useRef, useState as useState3 } from "react";
171
- var [createTooltipContext, createTooltipScope] = createContextScope("Tooltip", [
172
- createPopperScope
173
- ]);
174
- var usePopperScope = createPopperScope();
175
- var DEFAULT_DELAY_DURATION = 700;
176
- var TOOLTIP_OPEN = "tooltip.open";
177
- var TOOLTIP_NAME = "Tooltip";
178
- var [TooltipContextProvider, useTooltipContext] = createTooltipContext(TOOLTIP_NAME);
179
- var TooltipProvider = (props) => {
180
- const { __scopeTooltip, children, open: openProp, defaultOpen = false, onOpenChange, disableHoverableContent = false, delayDuration = DEFAULT_DELAY_DURATION, skipDelayDuration = 300 } = props;
181
- const isOpenDelayedRef = useRef(true);
182
- const isPointerInTransitRef = useRef(false);
183
- const skipDelayTimerRef = useRef(0);
184
- useEffect3(() => {
185
- const skipDelayTimer = skipDelayTimerRef.current;
186
- return () => window.clearTimeout(skipDelayTimer);
187
- }, []);
188
- const popperScope = usePopperScope(__scopeTooltip);
189
- const [trigger2, setTrigger] = useState3(null);
190
- const [content9, setContent] = useState3(null);
191
- const [side, setSide] = useState3(void 0);
192
- const triggerRef = useRef(trigger2);
193
- const handleTriggerChange = useCallback2((nextTrigger, nextContent, nextSide) => {
194
- setTrigger(nextTrigger);
195
- triggerRef.current = nextTrigger;
196
- setContent(nextContent ?? null);
197
- setSide(nextSide);
198
- }, []);
199
- const contentId = useId();
200
- const openTimerRef = useRef(0);
201
- const wasOpenDelayedRef = useRef(false);
202
- const handleOpenChange = useCallback2((open2) => {
203
- if (open2) {
204
- window.clearTimeout(skipDelayTimerRef.current);
205
- isOpenDelayedRef.current = false;
206
- document.dispatchEvent(new CustomEvent(TOOLTIP_OPEN));
207
- } else {
208
- window.clearTimeout(skipDelayTimerRef.current);
209
- skipDelayTimerRef.current = window.setTimeout(() => isOpenDelayedRef.current = true, skipDelayDuration);
210
- }
211
- onOpenChange?.(open2);
212
- }, [
213
- skipDelayDuration,
214
- onOpenChange
215
- ]);
216
- const [open = false, setOpen] = useControllableState({
217
- prop: openProp,
218
- defaultProp: defaultOpen,
219
- onChange: handleOpenChange
220
- });
221
- const stateAttribute = useMemo2(() => {
222
- return open ? wasOpenDelayedRef.current ? "delayed-open" : "instant-open" : "closed";
223
- }, [
224
- open
225
- ]);
226
- const handleOpen = useCallback2(() => {
227
- window.clearTimeout(openTimerRef.current);
228
- openTimerRef.current = 0;
229
- wasOpenDelayedRef.current = false;
230
- setOpen(true);
231
- }, [
232
- setOpen
233
- ]);
234
- const handleClose = useCallback2(() => {
235
- window.clearTimeout(openTimerRef.current);
236
- openTimerRef.current = 0;
237
- setOpen(false);
238
- }, [
239
- setOpen
240
- ]);
241
- const handleDelayedOpen = useCallback2(() => {
242
- window.clearTimeout(openTimerRef.current);
243
- openTimerRef.current = window.setTimeout(() => {
244
- wasOpenDelayedRef.current = true;
245
- setOpen(true);
246
- openTimerRef.current = 0;
247
- }, delayDuration);
248
- }, [
249
- delayDuration,
250
- setOpen
251
- ]);
252
- useEffect3(() => {
253
- return () => {
254
- if (openTimerRef.current) {
255
- window.clearTimeout(openTimerRef.current);
256
- openTimerRef.current = 0;
257
- }
258
- };
259
- }, []);
260
- const { tx } = useThemeContext();
261
- const elevation = useElevationContext();
262
- return /* @__PURE__ */ React5.createElement(PopperPrimitive.Root, popperScope, /* @__PURE__ */ React5.createElement(TooltipContextProvider, {
263
- scope: __scopeTooltip,
264
- contentId,
265
- open,
266
- stateAttribute,
267
- trigger: trigger2,
268
- onTriggerChange: handleTriggerChange,
269
- onTriggerEnter: useCallback2(() => {
270
- if (isOpenDelayedRef.current) {
271
- handleDelayedOpen();
272
- } else {
273
- handleOpen();
274
- }
275
- }, [
276
- isOpenDelayedRef,
277
- handleDelayedOpen,
278
- handleOpen
279
- ]),
280
- onTriggerLeave: useCallback2(() => {
281
- if (disableHoverableContent) {
282
- handleClose();
283
- } else {
284
- window.clearTimeout(openTimerRef.current);
285
- openTimerRef.current = 0;
286
- }
287
- }, [
288
- handleClose,
289
- disableHoverableContent
290
- ]),
291
- onOpen: handleOpen,
292
- onClose: handleClose,
293
- disableHoverableContent,
294
- isPointerInTransitRef,
295
- onPointerInTransitChange: useCallback2((inTransit) => {
296
- isPointerInTransitRef.current = inTransit;
297
- }, [])
298
- }, /* @__PURE__ */ React5.createElement(TooltipContent, {
299
- side,
300
- className: tx("tooltip.content", {
301
- elevation
302
- })
303
- }, content9, /* @__PURE__ */ React5.createElement(TooltipArrow, {
304
- className: tx("tooltip.arrow")
305
- })), /* @__PURE__ */ React5.createElement(TooltipVirtualTrigger, {
306
- virtualRef: triggerRef
307
- }), children));
308
- };
309
- TooltipProvider.displayName = TOOLTIP_NAME;
310
- var TooltipVirtualTrigger = ({ virtualRef, __scopeTooltip }) => {
311
- const popperScope = usePopperScope(__scopeTooltip);
312
- return /* @__PURE__ */ React5.createElement(PopperPrimitive.Anchor, {
313
- asChild: true,
314
- ...popperScope,
315
- virtualRef
316
- });
317
- };
318
- var TRIGGER_NAME = "Tooltip.Trigger";
319
- var TooltipTrigger = /* @__PURE__ */ forwardRef((props, forwardedRef) => {
320
- const {
321
- __scopeTooltip,
322
- onInteract,
323
- // TODO(thure): Pass `delayDuration` into the context.
324
- delayDuration: _delayDuration,
325
- side,
326
- content: content9,
327
- ...triggerProps
328
- } = props;
329
- const context = useTooltipContext(TRIGGER_NAME, __scopeTooltip);
330
- const ref = useRef(null);
331
- const composedRefs = useComposedRefs(forwardedRef, ref);
332
- const isPointerDownRef = useRef(false);
333
- const hasPointerMoveOpenedRef = useRef(false);
334
- const handlePointerUp = useCallback2(() => isPointerDownRef.current = false, []);
335
- useEffect3(() => {
336
- return () => document.removeEventListener("pointerup", handlePointerUp);
337
- }, [
338
- handlePointerUp
339
- ]);
340
- return /* @__PURE__ */ React5.createElement(Primitive.button, {
341
- // We purposefully avoid adding `type=button` here because tooltip triggers are also
342
- // commonly anchors and the anchor `type` attribute signifies MIME type.
343
- "aria-describedby": context.open ? context.contentId : void 0,
344
- "data-state": context.stateAttribute,
345
- ...triggerProps,
346
- ref: composedRefs,
347
- onPointerMove: composeEventHandlers(props.onPointerMove, (event) => {
348
- if (event.pointerType === "touch") {
349
- return;
350
- }
351
- if (!hasPointerMoveOpenedRef.current && !context.isPointerInTransitRef.current) {
352
- onInteract?.(event);
353
- if (event.defaultPrevented) {
354
- return;
355
- }
356
- context.onTriggerChange(ref.current, content9, side);
357
- context.onTriggerEnter();
358
- hasPointerMoveOpenedRef.current = true;
359
- }
360
- }),
361
- onPointerLeave: composeEventHandlers(props.onPointerLeave, () => {
362
- context.onTriggerLeave();
363
- hasPointerMoveOpenedRef.current = false;
364
- }),
365
- onPointerDown: composeEventHandlers(props.onPointerDown, () => {
366
- if (context.open) {
367
- context.onClose();
368
- }
369
- isPointerDownRef.current = true;
370
- document.addEventListener("pointerup", handlePointerUp, {
371
- once: true
372
- });
373
- }),
374
- onFocus: props.onFocus,
375
- onBlur: composeEventHandlers(props.onBlur, context.onClose),
376
- onClick: composeEventHandlers(props.onClick, context.onClose)
377
- });
378
- });
379
- TooltipTrigger.displayName = TRIGGER_NAME;
380
- var PORTAL_NAME = "Tooltip.Portal";
381
- var [PortalProvider, usePortalContext] = createTooltipContext(PORTAL_NAME, {
382
- forceMount: void 0
383
- });
384
- var TooltipPortal = (props) => {
385
- const { __scopeTooltip, forceMount, children, container } = props;
386
- const context = useTooltipContext(PORTAL_NAME, __scopeTooltip);
387
- return /* @__PURE__ */ React5.createElement(PortalProvider, {
388
- scope: __scopeTooltip,
389
- forceMount
390
- }, /* @__PURE__ */ React5.createElement(Presence, {
391
- present: forceMount || context.open
392
- }, /* @__PURE__ */ React5.createElement(PortalPrimitive, {
393
- asChild: true,
394
- container
395
- }, children)));
396
- };
397
- TooltipPortal.displayName = PORTAL_NAME;
398
- var CONTENT_NAME = "Tooltip.Content";
399
- var TooltipContent = /* @__PURE__ */ forwardRef((props, forwardedRef) => {
400
- const portalContext = usePortalContext(CONTENT_NAME, props.__scopeTooltip);
401
- const { forceMount = portalContext.forceMount, side = "top", ...contentProps } = props;
402
- const context = useTooltipContext(CONTENT_NAME, props.__scopeTooltip);
403
- return /* @__PURE__ */ React5.createElement(Presence, {
404
- present: forceMount || context.open
405
- }, context.disableHoverableContent ? /* @__PURE__ */ React5.createElement(TooltipContentImpl, {
406
- side,
407
- ...contentProps,
408
- ref: forwardedRef
409
- }) : /* @__PURE__ */ React5.createElement(TooltipContentHoverable, {
410
- side,
411
- ...contentProps,
412
- ref: forwardedRef
413
- }));
414
- });
415
- var TooltipContentHoverable = /* @__PURE__ */ forwardRef((props, forwardedRef) => {
416
- const context = useTooltipContext(CONTENT_NAME, props.__scopeTooltip);
417
- const ref = useRef(null);
418
- const composedRefs = useComposedRefs(forwardedRef, ref);
419
- const [pointerGraceArea, setPointerGraceArea] = useState3(null);
420
- const { trigger: trigger2, onClose } = context;
421
- const content9 = ref.current;
422
- const { onPointerInTransitChange } = context;
423
- const handleRemoveGraceArea = useCallback2(() => {
424
- setPointerGraceArea(null);
425
- onPointerInTransitChange(false);
426
- }, [
427
- onPointerInTransitChange
428
- ]);
429
- const handleCreateGraceArea = useCallback2((event, hoverTarget) => {
430
- const currentTarget = event.currentTarget;
431
- const exitPoint = {
432
- x: event.clientX,
433
- y: event.clientY
434
- };
435
- const exitSide = getExitSideFromRect(exitPoint, currentTarget.getBoundingClientRect());
436
- const paddedExitPoints = getPaddedExitPoints(exitPoint, exitSide);
437
- const hoverTargetPoints = getPointsFromRect(hoverTarget.getBoundingClientRect());
438
- const graceArea = getHull([
439
- ...paddedExitPoints,
440
- ...hoverTargetPoints
441
- ]);
442
- setPointerGraceArea(graceArea);
443
- onPointerInTransitChange(true);
444
- }, [
445
- onPointerInTransitChange
446
- ]);
447
- useEffect3(() => {
448
- return () => handleRemoveGraceArea();
449
- }, [
450
- handleRemoveGraceArea
451
- ]);
452
- useEffect3(() => {
453
- if (trigger2 && content9) {
454
- const handleTriggerLeave = (event) => handleCreateGraceArea(event, content9);
455
- const handleContentLeave = (event) => handleCreateGraceArea(event, trigger2);
456
- trigger2.addEventListener("pointerleave", handleTriggerLeave);
457
- content9.addEventListener("pointerleave", handleContentLeave);
458
- return () => {
459
- trigger2.removeEventListener("pointerleave", handleTriggerLeave);
460
- content9.removeEventListener("pointerleave", handleContentLeave);
461
- };
462
- }
463
- }, [
464
- trigger2,
465
- content9,
466
- handleCreateGraceArea,
467
- handleRemoveGraceArea
468
- ]);
469
- useEffect3(() => {
470
- if (pointerGraceArea) {
471
- const handleTrackPointerGrace = (event) => {
472
- const target = event.target;
473
- const pointerPosition = {
474
- x: event.clientX,
475
- y: event.clientY
476
- };
477
- const hasEnteredTarget = trigger2?.contains(target) || content9?.contains(target);
478
- const isPointerOutsideGraceArea = !isPointInPolygon(pointerPosition, pointerGraceArea);
479
- if (hasEnteredTarget) {
480
- handleRemoveGraceArea();
481
- } else if (isPointerOutsideGraceArea) {
482
- handleRemoveGraceArea();
483
- onClose();
484
- }
485
- };
486
- document.addEventListener("pointermove", handleTrackPointerGrace);
487
- return () => document.removeEventListener("pointermove", handleTrackPointerGrace);
488
- }
489
- }, [
490
- trigger2,
491
- content9,
492
- pointerGraceArea,
493
- onClose,
494
- handleRemoveGraceArea
495
- ]);
496
- return /* @__PURE__ */ React5.createElement(TooltipContentImpl, {
497
- ...props,
498
- ref: composedRefs
499
- });
500
- });
501
- var [VisuallyHiddenContentContextProvider, useVisuallyHiddenContentContext] = createTooltipContext(TOOLTIP_NAME, {
502
- isInside: false
503
- });
504
- var TooltipContentImpl = /* @__PURE__ */ forwardRef((props, forwardedRef) => {
505
- const { __scopeTooltip, children, "aria-label": ariaLabel, onEscapeKeyDown, onPointerDownOutside, ...contentProps } = props;
506
- const context = useTooltipContext(CONTENT_NAME, __scopeTooltip);
507
- const popperScope = usePopperScope(__scopeTooltip);
508
- const { onClose } = context;
509
- useEffect3(() => {
510
- document.addEventListener(TOOLTIP_OPEN, onClose);
511
- return () => document.removeEventListener(TOOLTIP_OPEN, onClose);
512
- }, [
513
- onClose
514
- ]);
515
- useEffect3(() => {
516
- if (context.trigger) {
517
- const handleScroll = (event) => {
518
- const target = event.target;
519
- if (target?.contains(context.trigger)) {
520
- onClose();
521
- }
522
- };
523
- window.addEventListener("scroll", handleScroll, {
524
- capture: true
525
- });
526
- return () => window.removeEventListener("scroll", handleScroll, {
527
- capture: true
528
- });
529
- }
530
- }, [
531
- context.trigger,
532
- onClose
533
- ]);
534
- return /* @__PURE__ */ React5.createElement(DismissableLayer, {
535
- asChild: true,
536
- disableOutsidePointerEvents: false,
537
- onEscapeKeyDown,
538
- onPointerDownOutside,
539
- onFocusOutside: (event) => event.preventDefault(),
540
- onDismiss: onClose
541
- }, /* @__PURE__ */ React5.createElement(PopperPrimitive.Content, {
542
- "data-state": context.stateAttribute,
543
- ...popperScope,
544
- ...contentProps,
545
- ref: forwardedRef,
546
- style: {
547
- ...contentProps.style,
548
- // re-namespace exposed content custom properties
549
- ...{
550
- "--radix-tooltip-content-transform-origin": "var(--radix-popper-transform-origin)",
551
- "--radix-tooltip-content-available-width": "var(--radix-popper-available-width)",
552
- "--radix-tooltip-content-available-height": "var(--radix-popper-available-height)",
553
- "--radix-tooltip-trigger-width": "var(--radix-popper-anchor-width)",
554
- "--radix-tooltip-trigger-height": "var(--radix-popper-anchor-height)"
555
- }
556
- }
557
- }, /* @__PURE__ */ React5.createElement(Slottable, null, children), /* @__PURE__ */ React5.createElement(VisuallyHiddenContentContextProvider, {
558
- scope: __scopeTooltip,
559
- isInside: true
560
- }, /* @__PURE__ */ React5.createElement(VisuallyHiddenPrimitive.Root, {
561
- id: context.contentId,
562
- role: "tooltip"
563
- }, ariaLabel || children))));
564
- });
565
- TooltipContent.displayName = CONTENT_NAME;
566
- var ARROW_NAME = "Tooltip.Arrow";
567
- var TooltipArrow = /* @__PURE__ */ forwardRef((props, forwardedRef) => {
568
- const { __scopeTooltip, ...arrowProps } = props;
569
- const popperScope = usePopperScope(__scopeTooltip);
570
- const visuallyHiddenContentContext = useVisuallyHiddenContentContext(ARROW_NAME, __scopeTooltip);
571
- return visuallyHiddenContentContext.isInside ? null : /* @__PURE__ */ React5.createElement(PopperPrimitive.Arrow, {
572
- ...popperScope,
573
- ...arrowProps,
574
- ref: forwardedRef
575
- });
576
- });
577
- TooltipArrow.displayName = ARROW_NAME;
578
- var getExitSideFromRect = (point, rect) => {
579
- const top = Math.abs(rect.top - point.y);
580
- const bottom = Math.abs(rect.bottom - point.y);
581
- const right = Math.abs(rect.right - point.x);
582
- const left = Math.abs(rect.left - point.x);
583
- switch (Math.min(top, bottom, right, left)) {
584
- case left:
585
- return "left";
586
- case right:
587
- return "right";
588
- case top:
589
- return "top";
590
- case bottom:
591
- return "bottom";
592
- default:
593
- throw new Error("unreachable");
594
- }
595
- };
596
- var getPaddedExitPoints = (exitPoint, exitSide, padding2 = 5) => {
597
- const paddedExitPoints = [];
598
- switch (exitSide) {
599
- case "top":
600
- paddedExitPoints.push({
601
- x: exitPoint.x - padding2,
602
- y: exitPoint.y + padding2
603
- }, {
604
- x: exitPoint.x + padding2,
605
- y: exitPoint.y + padding2
606
- });
607
- break;
608
- case "bottom":
609
- paddedExitPoints.push({
610
- x: exitPoint.x - padding2,
611
- y: exitPoint.y - padding2
612
- }, {
613
- x: exitPoint.x + padding2,
614
- y: exitPoint.y - padding2
615
- });
616
- break;
617
- case "left":
618
- paddedExitPoints.push({
619
- x: exitPoint.x + padding2,
620
- y: exitPoint.y - padding2
621
- }, {
622
- x: exitPoint.x + padding2,
623
- y: exitPoint.y + padding2
624
- });
625
- break;
626
- case "right":
627
- paddedExitPoints.push({
628
- x: exitPoint.x - padding2,
629
- y: exitPoint.y - padding2
630
- }, {
631
- x: exitPoint.x - padding2,
632
- y: exitPoint.y + padding2
633
- });
634
- break;
635
- }
636
- return paddedExitPoints;
637
- };
638
- var getPointsFromRect = (rect) => {
639
- const { top, right, bottom, left } = rect;
640
- return [
641
- {
642
- x: left,
643
- y: top
644
- },
645
- {
646
- x: right,
647
- y: top
648
- },
649
- {
650
- x: right,
651
- y: bottom
652
- },
653
- {
654
- x: left,
655
- y: bottom
656
- }
657
- ];
658
- };
659
- var isPointInPolygon = (point, polygon) => {
660
- const { x, y } = point;
661
- let inside = false;
662
- for (let i = 0, j = polygon.length - 1; i < polygon.length; j = i++) {
663
- const xi = polygon[i].x;
664
- const yi = polygon[i].y;
665
- const xj = polygon[j].x;
666
- const yj = polygon[j].y;
667
- const intersect = yi > y !== yj > y && x < (xj - xi) * (y - yi) / (yj - yi) + xi;
668
- if (intersect) {
669
- inside = !inside;
670
- }
671
- }
672
- return inside;
673
- };
674
- var getHull = (points) => {
675
- const newPoints = points.slice();
676
- newPoints.sort((a, b) => {
677
- if (a.x < b.x) {
678
- return -1;
679
- } else if (a.x > b.x) {
680
- return 1;
681
- } else if (a.y < b.y) {
682
- return -1;
683
- } else if (a.y > b.y) {
684
- return 1;
685
- } else {
686
- return 0;
687
- }
688
- });
689
- return getHullPresorted(newPoints);
690
- };
691
- var getHullPresorted = (points) => {
692
- if (points.length <= 1) {
693
- return points.slice();
694
- }
695
- const upperHull = [];
696
- for (let i = 0; i < points.length; i++) {
697
- const p = points[i];
698
- while (upperHull.length >= 2) {
699
- const q = upperHull[upperHull.length - 1];
700
- const r = upperHull[upperHull.length - 2];
701
- if ((q.x - r.x) * (p.y - r.y) >= (q.y - r.y) * (p.x - r.x)) {
702
- upperHull.pop();
703
- } else {
704
- break;
705
- }
706
- }
707
- upperHull.push(p);
708
- }
709
- upperHull.pop();
710
- const lowerHull = [];
711
- for (let i = points.length - 1; i >= 0; i--) {
712
- const p = points[i];
713
- while (lowerHull.length >= 2) {
714
- const q = lowerHull[lowerHull.length - 1];
715
- const r = lowerHull[lowerHull.length - 2];
716
- if ((q.x - r.x) * (p.y - r.y) >= (q.y - r.y) * (p.x - r.x)) {
717
- lowerHull.pop();
718
- } else {
719
- break;
720
- }
721
- }
722
- lowerHull.push(p);
723
- }
724
- lowerHull.pop();
725
- if (upperHull.length === 1 && lowerHull.length === 1 && upperHull[0].x === lowerHull[0].x && upperHull[0].y === lowerHull[0].y) {
726
- return upperHull;
727
- } else {
728
- return upperHull.concat(lowerHull);
729
- }
730
- };
731
- var Tooltip = {
732
- Provider: TooltipProvider,
733
- Trigger: TooltipTrigger
734
- };
735
-
736
- // src/components/Tooltip/tooltipContent.ts
737
- import { mx, surfaceShadow, surfaceZIndex } from "@dxos/ui-theme";
738
- var tooltipContent = ({ elevation }, ...etc) => mx("inline-flex items-center p-1 max-w-64 text-sm bg-inverse-surface text-inverse-fg rounded-sm", surfaceShadow({
739
- elevation: "positioned"
740
- }), surfaceZIndex({
741
- elevation,
742
- level: "tooltip"
743
- }), ...etc);
744
-
745
- // src/components/Column/withColumn.ts
746
- var withColumn = {
747
- /** Centers element in the Column grid via --dx-col. No-op outside Column or inside ScrollArea. */
748
- center: () => "[grid-column:var(--dx-col,auto)]",
749
- /** Propagates the Column grid to children via subgrid. No-op outside Column.
750
- * Direct children default to center column unless they are a dx-container (ScrollArea). */
751
- propagate: () => "[.dx-column-root_&]:col-span-full [.dx-column-root_&]:grid [.dx-column-root_&]:grid-cols-subgrid [.dx-column-root_&]:[&>*:not(.dx-container)]:[grid-column:var(--dx-col,auto)]",
752
- /** Resets --dx-col after consuming --gutter. Applied by ScrollArea.Viewport. */
753
- consumed: () => "[--dx-col:auto]"
754
- };
755
-
756
- // src/components/ErrorFallback/ErrorStack.tsx
757
- import ErrorStackParser from "error-stack-parser";
758
- import React6 from "react";
759
- import { mx as mx2 } from "@dxos/ui-theme";
760
- var parseCaptureOwnerStack = (stack) => {
761
- if (stack == null || stack.length === 0) {
762
- return null;
763
- }
764
- const err = new Error();
765
- err.stack = stack;
766
- try {
767
- return ErrorStackParser.parse(err);
768
- } catch {
769
- err.stack = `Error
770
- ${stack}`;
771
- try {
772
- return ErrorStackParser.parse(err);
773
- } catch {
774
- return null;
775
- }
776
- }
777
- };
778
- var ErrorStack = ({ error, frames: framesProp }) => {
779
- const frames = framesProp ?? (error ? ErrorStackParser.parse(error) : []);
780
- if (frames.length === 0) {
781
- return null;
782
- }
783
- return /* @__PURE__ */ React6.createElement("div", {
784
- className: "font-mono text-sm"
785
- }, frames.map((frame2, i) => {
786
- const isLast = i === frames.length - 1;
787
- const local = frame2.fileName ? parseLocalFrame(frame2.fileName, frame2.lineNumber, frame2.columnNumber) : void 0;
788
- const functionName = frame2.functionName ?? "<anonymous>";
789
- return /* @__PURE__ */ React6.createElement("div", {
790
- key: i,
791
- className: mx2("grid grid-cols-[16px_1fr_auto_auto] items-stretch gap-x-2", local && "cursor-pointer hover:bg-hover-surface")
792
- }, /* @__PURE__ */ React6.createElement("div", {
793
- className: "relative"
794
- }, /* @__PURE__ */ React6.createElement("div", {
795
- className: mx2("absolute left-1/2 -translate-x-1/2 w-px bg-neutral-500", isLast ? "top-0 h-1/2" : "inset-y-0")
796
- }), /* @__PURE__ */ React6.createElement("div", {
797
- className: "absolute top-1/2 -translate-y-1/2 left-1/2 right-0 h-px bg-neutral-500"
798
- })), local ? /* @__PURE__ */ React6.createElement("a", {
799
- href: local.href,
800
- className: "truncate self-center"
801
- }, functionName) : /* @__PURE__ */ React6.createElement("span", {
802
- className: "text-subdued truncate self-center"
803
- }, functionName), /* @__PURE__ */ React6.createElement("span", {
804
- className: "text-xs text-subdued truncate self-center truncate"
805
- }, local?.fileName ?? ""), /* @__PURE__ */ React6.createElement("span", {
806
- className: "text-xs text-subdued text-right self-center"
807
- }, local ? `${frame2.lineNumber}:${frame2.columnNumber}` : ""));
808
- }));
809
- };
810
- var parseLocalFrame = (fileUrl, line, col) => {
811
- try {
812
- const { pathname } = new URL(fileUrl);
813
- if (!pathname.startsWith("/@fs/")) {
814
- return void 0;
815
- }
816
- const FILE_PREFIX = "/@fs";
817
- const localPath = pathname.slice(FILE_PREFIX.length);
818
- const PKG_PREFIX = "/packages/";
819
- const i = localPath.indexOf(PKG_PREFIX);
820
- const path = i === -1 ? localPath : localPath.substring(i + PKG_PREFIX.length);
821
- return {
822
- href: `vscode://file/${localPath}:${line ?? 1}:${col ?? 1}`,
823
- fileName: path
824
- };
825
- } catch {
826
- return void 0;
827
- }
828
- };
829
-
830
- // src/components/Main/constants.ts
831
- var mainPaddingTransitions = "dx-main-content-padding-transitions";
832
- var mainIntrinsicSize = "dx-main-intrinsic-size";
833
-
834
- // src/theme/bindTheme.ts
835
- import { getDeep } from "@dxos/util";
836
- var bindTheme = (theme) => {
837
- return (path, styleProps, ...etc) => {
838
- const result = getDeep(theme, path.split("."));
839
- return typeof result === "function" ? result(styleProps ?? {}, ...etc) : void 0;
840
- };
841
- };
842
-
843
- // src/components/Avatars/Avatar.theme.ts
844
- import { getHeight, getSize, mx as mx3 } from "@dxos/ui-theme";
845
- var root = ({ size = 10, inGroup }, ...etc) => mx3("relative inline-flex shrink-0", getSize(size), inGroup && (size === "px" || size <= 3 ? "-mr-1" : "-mr-2"), ...etc);
846
- var label = ({ srOnly }, ...etc) => mx3(srOnly && "sr-only", ...etc);
847
- var description = ({ srOnly }, ...etc) => mx3("text-description", srOnly && "sr-only", ...etc);
848
- var frame = ({ variant }, ...etc) => mx3("h-full w-full bg-(--surface-bg)", variant === "circle" ? "rounded-full" : "rounded-sm", ...etc);
849
- var statusIcon = ({ status, size = 3 }, ...etc) => mx3("absolute bottom-0 end-0", getSize(size), status === "inactive" ? "text-amber-400 dark:text-amber-300" : status === "active" ? "text-emerald-400 dark:text-emerald-300" : "text-neutral-400 dark:text-neutral-300", ...etc);
850
- var ring = ({ status, variant, animation }, ...etc) => mx3("absolute inset-0 border-2", variant === "circle" ? "rounded-full" : "rounded-sm", status === "current" ? "border-primary-400 dark:border-primary-500" : status === "active" ? "border-emerald-400 dark:border-emerald-400" : status === "error" ? "border-rose-400 dark:border-rose-500" : status === "warning" ? "border-amber-400 dark:border-amber-500" : status === "inactive" ? "border-separator" : status === "internal" ? "border-fuchsia-600" : "border-[color:var(--surface-bg)]", animation === "pulse" ? "animate-halo-pulse" : "", ...etc);
851
- var fallbackText = (_props, ...etc) => mx3("fill-white", ...etc);
852
- var group = (_props, ...etc) => mx3("inline-flex items-center", ...etc);
853
- var groupLabel = ({ size, srOnly }, ...etc) => mx3(srOnly ? "sr-only" : "rounded-full truncate text-sm leading-none py-1 px-2 relative z-[1] flex items-center justify-center", size && getHeight(size), ...etc);
854
- var groupDescription = ({ srOnly }, ...etc) => mx3(srOnly ? "sr-only" : "text-description", ...etc);
855
- var avatarTheme = {
856
- root,
857
- label,
858
- description,
859
- statusIcon,
860
- frame,
861
- ring,
862
- fallbackText,
863
- group,
864
- groupLabel,
865
- groupDescription
866
- };
867
-
868
- // src/components/Breadcrumb/Breadcrumb.theme.ts
869
- import { mx as mx4 } from "@dxos/ui-theme";
870
- var root2 = (_props, ...etc) => mx4("shrink-0 flex items-center", ...etc);
871
- var list = (_props, ...etc) => mx4("contents", ...etc);
872
- var listItem = (_props, ...etc) => mx4("contents", ...etc);
873
- var current = (_props, ...etc) => mx4(...etc);
874
- var separator = (_props, ...etc) => mx4("opacity-50", ...etc);
875
- var breadcrumbTheme = {
876
- root: root2,
877
- list,
878
- listItem,
879
- current,
880
- separator
881
- };
882
-
883
- // src/components/Button/Button.theme.ts
884
- import { mx as mx5 } from "@dxos/ui-theme";
885
- var root3 = (_props, ...etc) => {
886
- return mx5("dx-button dx-focus-ring group gap-1 [&_span]:truncate", ...etc);
887
- };
888
- var group2 = (_props, ...etc) => {
889
- return mx5("inline-flex rounded-xs [&>:first-child]:rounded-w-sm [&>:last-child]:rounded-ie-sm [&>button]:relative", ...etc);
890
- };
891
- var buttonTheme = {
892
- root: root3,
893
- group: group2
894
- };
895
-
896
- // src/components/Button/IconButton.theme.ts
897
- import { mx as mx6 } from "@dxos/ui-theme";
898
- var root4 = ({ iconOnly, square }, ...etc) => {
899
- return mx6("px-1.5", !iconOnly && "gap-1.5", square && "aspect-square", ...etc);
900
- };
901
- var iconButtonTheme = {
902
- root: root4
903
- };
904
-
905
- // src/components/Card/Card.theme.ts
906
- import { mx as mx7 } from "@dxos/ui-theme";
907
- var root5 = ({ border, fullWidth }, ...etc) => mx7("dx-card dx-card-surface dx-card-min-width dx-card-max-width min-h-(--dx-rail-item) group/card relative overflow-hidden", border && "border border-subdued-separator rounded-sm dx-focus-ring-group-y-indicator", fullWidth && "max-w-none!", ...etc);
908
- var header = (_, ...etc) => mx7("dx-card__header col-span-3 grid grid-cols-subgrid items-center", "[&>*:not(.dx-gutter)]:col-start-2 [&>*:not(.dx-gutter)>*]:col-start-2", ...etc);
909
- var title = (_props, ...etc) => mx7("dx-card__title grow truncate", ...etc);
910
- var body = (_props, ...etc) => mx7("dx-card__body contents", ...etc);
911
- var block = (_props, ...etc) => mx7("dx-card__block", ...etc);
912
- var text = ({ variant = "default", truncate: _truncate }, ...etc) => mx7("dx-card__text items-center overflow-hidden", variant === "default" && "py-1", variant === "description" && "py-1.5 text-description", ...etc);
913
- var textSpan = ({ variant = "default", truncate }, ...etc) => mx7(variant === "description" && "text-sm text-description line-clamp-3", truncate && "truncate", ...etc);
914
- var poster = (_props, ...etc) => mx7("dx-card__poster col-span-3 max-h-[200px] select-none pointer-events-none", ...etc);
915
- var posterIcon = (_props, ...etc) => mx7("dx-card__poster-icon col-span-3 grid place-items-center bg-input-surface text-subdued max-h-[200px]", ...etc);
916
- var action = (_props, ...etc) => mx7("dx-card__action col-span-3 grid grid-cols-subgrid [&>*:not(.dx-gutter)]:col-start-2 [&>*:not(.dx-gutter)>*]:col-start-2 p-0! gap-0! w-full text-start overflow-hidden", ...etc);
917
- var actionLabel = (_props, ...etc) => mx7("dx-card__action-label min-w-0 flex-1 truncate", ...etc);
918
- var link = (_props, ...etc) => mx7("dx-card__link col-span-3 grid grid-cols-subgrid [&>*:not(.dx-gutter)]:col-start-2 [&>*:not(.dx-gutter)>*]:col-start-2 group p-0! dx-button dx-focus-ring min-h-1!", ...etc);
919
- var linkLabel = (_props, ...etc) => mx7("dx-card__link-label min-w-0 flex-1 truncate text-sm!", ...etc);
920
- var row = ({ fullWidth }, ...etc) => mx7("dx-card__row overflow-hidden", fullWidth ? "col-span-full" : (
921
- // (e.g. `dx-avatar`), which the direct-child selector cannot target. It is inert for normal
922
- // block children, whose inner nodes are not grid items of this row.
923
- "col-span-3 grid grid-cols-subgrid [&>*:not(.dx-gutter)]:col-start-2 [&>*:not(.dx-gutter)>*]:col-start-2"
924
- ), ...etc);
925
- var section = (_props, ...etc) => mx7("dx-card__section col-span-full grid grid-cols-subgrid", ...etc);
926
- var sectionTitle = (_props, ...etc) => mx7("dx-card__section-title col-start-2 col-span-full py-2 text-xs text-description font-medium uppercase", ...etc);
927
- var cardTheme = {
928
- root: root5,
929
- header,
930
- title,
931
- body,
932
- block,
933
- row,
934
- section,
935
- "section-title": sectionTitle,
936
- text,
937
- "text-span": textSpan,
938
- poster,
939
- "poster-icon": posterIcon,
940
- action,
941
- "action-label": actionLabel,
942
- link,
943
- "link-label": linkLabel
944
- };
945
-
946
- // src/components/Column/Column.theme.ts
947
- import { mx as mx8 } from "@dxos/ui-theme";
948
- var root6 = (_, ...etc) => {
949
- return mx8("dx-column-root grid", ...etc);
950
- };
951
- var row2 = (_, ...etc) => {
952
- return mx8("col-span-3 grid grid-cols-subgrid", "[&>*:not(.dx-gutter)]:col-start-2", ...etc);
953
- };
954
- var block2 = ({ end, compact, square }, ...etc) => mx8("dx-gutter grid place-items-center [&>img]:max-w-[1.5rem]", end ? "col-start-3" : "col-start-1", square ? "aspect-square" : "w-[var(--dx-rail-item)]", compact ? "" : "h-[var(--dx-rail-item)]", ...etc);
955
- var bleed = (_, ...etc) => {
956
- return mx8("col-span-full grid grid-cols-subgrid min-h-0", ...etc);
957
- };
958
- var center = (_, ...etc) => {
959
- return mx8(withColumn.center(), "min-h-0", ...etc);
960
- };
961
- var columnTheme = {
962
- root: root6,
963
- row: row2,
964
- block: block2,
965
- bleed,
966
- center
967
- };
968
-
969
- // src/components/Dialog/Dialog.theme.ts
970
- import { mx as mx9 } from "@dxos/ui-theme";
971
- var sizeMap = {
972
- sm: "md:max-w-[24rem]",
973
- md: "md:max-w-[32rem]!",
974
- lg: "md:max-w-[40rem]!",
975
- xl: "md:max-w-[60rem]!"
976
- };
977
- var overlay = (_props, ...etc) => mx9("dx-dialog__overlay", ...etc);
978
- var content = ({ inOverlayLayout, size = "md" }, ...etc) => {
979
- return mx9("@container", "dx-dialog__content dx-focus-ring dx-modal-surface py-4", !inOverlayLayout && "fixed z-50 top-[50%] left-[50%] -translate-x-[50%] -translate-y-[50%]", sizeMap[size], ...etc);
980
- };
981
- var header2 = (_props, ...etc) => mx9("dx-dialog__header flex pb-4 items-center justify-between", withColumn.center(), ...etc);
982
- var body2 = (_props, ...etc) => mx9("dx-dialog__body dx-expander gap-y-2", withColumn.propagate(), ...etc);
983
- var actionBar = (_props, ...etc) => mx9("dx-dialog__actionbar flex items-center pt-4 gap-2", withColumn.center(), ...etc);
984
- var title2 = ({ srOnly }, ...etc) => mx9("dx-dialog__title", srOnly && "sr-only", ...etc);
985
- var description2 = ({ srOnly }, ...etc) => mx9("dx-dialog__description", "text-description", srOnly && "sr-only", ...etc);
986
- var dialogTheme = {
987
- overlay,
988
- content,
989
- header: header2,
990
- body: body2,
991
- actionbar: actionBar,
992
- title: title2,
993
- description: description2
994
- };
995
-
996
- // src/components/Focus/Focus.theme.ts
997
- import { mx as mx10 } from "@dxos/ui-theme";
998
- var ring2 = ({ border }, ...etc) => mx10("dx-ring-pseudo outline-hidden", "focus:after:ring-focus-ring-subtle", "data-[focus-state=active]:after:ring-focus-ring-subtle", "data-[focus-state=error]:after:ring-rose-500", border && "border border-separator", ...etc);
999
- var focusTheme = {
1000
- group: ring2,
1001
- item: ring2
1002
- };
1003
-
1004
- // src/components/Icon/Icon.theme.ts
1005
- import { getSize as getSize2, mx as mx11 } from "@dxos/ui-theme";
1006
- var root7 = ({ size }, etc) => {
1007
- return mx11("shrink-0 text-[var(--icons-color,currentColor)]", size ? getSize2(size) : "[width:var(--icon-size,var(--dx-default-icons-size))] [height:var(--icon-size,var(--dx-default-icons-size))]", etc);
1008
- };
1009
- var block3 = ({ compact, square }, ...etc) => mx11("grid place-items-center shrink-0 [&>img]:max-w-[1.5rem]", square ? "aspect-square" : "w-[var(--dx-rail-item)]", compact ? "" : "h-[var(--dx-rail-item)]", ...etc);
1010
- var iconTheme = {
1011
- root: root7,
1012
- block: block3
1013
- };
1014
-
1015
- // src/components/Input/Input.theme.ts
1016
- import { densityDimensions, staticDisabled } from "@dxos/ui-theme";
1017
- import { getSize as getSize3, mx as mx12, sizeValue, snapSize, textValence } from "@dxos/ui-theme";
1018
- var textInputSurfaceFocus = "transition-colors bg-input-surface focus:bg-focus-surface border border-input-separator focus:border-separator";
1019
- var textInputSurfaceHover = "hover:bg-focus-surface";
1020
- var valence = (valence2) => {
1021
- switch (valence2) {
1022
- case "success":
1023
- return "shadow-emerald-500/50 dark:shadow-emerald-600/50";
1024
- case "info":
1025
- return "shadow-cyan-500/50 dark:shadow-cyan-600/50";
1026
- case "warning":
1027
- return "shadow-amber-500/50 dark:shadow-amber-600/50";
1028
- case "error":
1029
- return "shadow-rose-500/50 dark:shadow-rose-600/50";
1030
- }
1031
- };
1032
- var sharedSubduedInputStyles = (props) => [
1033
- '[[data-drag-autoscroll="active"]_&]:pointer-events-none',
1034
- "py-0 w-full bg-transparent text-current placeholder-placeholder",
1035
- "dx-focus-subdued",
1036
- densityDimensions(props.density),
1037
- props.disabled && staticDisabled
1038
- ];
1039
- var sharedDefaultInputStyles = (props) => [
1040
- '[[data-drag-autoscroll="active"]_&]:pointer-events-none',
1041
- "py-0 w-full text-base-fg rounded-xs placeholder-placeholder",
1042
- textInputSurfaceFocus,
1043
- densityDimensions(props.density),
1044
- props.disabled ? staticDisabled : textInputSurfaceHover
1045
- ];
1046
- var sharedStaticInputStyles = (props) => [
1047
- '[[data-drag-autoscroll="active"]_&]:pointer-events-none',
1048
- "py-0 w-full text-base-fg rounded-xs placeholder-placeholder",
1049
- textInputSurfaceFocus,
1050
- textInputSurfaceHover,
1051
- props.focused && "bg-attention-surface",
1052
- valence(props.validationValence),
1053
- props.disabled && staticDisabled,
1054
- props.focused && "dx-focus-static"
1055
- ];
1056
- var input = (props, ...etc) => props.variant === "subdued" ? mx12(...sharedSubduedInputStyles(props), ...etc) : props.variant === "static" ? mx12(...sharedStaticInputStyles(props), ...etc) : mx12(...sharedDefaultInputStyles(props), !props.disabled && "dx-focus-ring", valence(props.validationValence), ...etc);
1057
- var textArea = (props, ...etc) => input(props, ...etc);
1058
- var checkbox = ({ size = 4 }, ...etc) => mx12("dx-checkbox dx-focus-ring", getSize3(size), ...etc);
1059
- var checkboxIndicator = ({ size = 4, checked }, ...etc) => mx12(getSize3(snapSize(sizeValue(size) * 0.65, 4)), !checked && "invisible", ...etc);
1060
- var switch_ = (_props, ...etc) => mx12("dx-checkbox--switch dx-focus-ring", ...etc);
1061
- var pin = (props, ...etc) => mx12("font-mono selection:bg-transparent mx-auto", props.density === "lg" ? "text-lg" : props.density === "sm" ? "text-sm" : props.density === "xs" ? "text-xs" : "text-base pointer-fine:text-sm", props.disabled && "cursor-not-allowed", ...etc);
1062
- var segment = (props, ...etc) => mx12("flex items-center justify-center tabular-nums", props.density === "lg" ? "size-12 rounded-xs" : props.density === "sm" ? "size-7 rounded-xs" : props.density === "xs" ? "size-6 rounded-xs" : "size-10 pointer-fine:size-8 rounded-xs", "bg-input-surface text-base-fg transition-colors border border-separator", "data-[focused]:bg-attention-surface data-[focused]:border-focus-ring-subtle", "data-[focused]:ring-2 data-[focused]:ring-offset-0 data-[focused]:ring-focus-ring-subtle", valence(props.validationValence), props.disabled && staticDisabled, ...etc);
1063
- var label2 = (props, ...etc) => mx12("block text-sm text-description", props.srOnly && "sr-only", ...etc);
1064
- var description3 = (props, ...etc) => mx12("text-description", props.srOnly && "sr-only", ...etc);
1065
- var descriptionAndValidation = (props, ...etc) => mx12("leading-none my-1.5", props.srOnly && "sr-only", ...etc);
1066
- var validation = (props, ...etc) => mx12("text-sm text-description", props.srOnly ? "sr-only" : textValence(props.validationValence), ...etc);
1067
- var triggerIcon = (_p, ...etc) => mx12("shrink-0 inline-flex items-center justify-center size-7 rounded-xs", "bg-input-surface text-subdued hover:text-base-fg hover:bg-hover-surface", "dx-focus-ring", ...etc);
1068
- var block4 = (props, ...etc) => mx12("grid place-items-center w-[var(--dx-rail-item)] h-[var(--dx-rail-item)]", ...etc);
1069
- var inputTheme = {
1070
- input,
1071
- textArea,
1072
- pin,
1073
- segment,
1074
- label: label2,
1075
- description: description3,
1076
- checkbox,
1077
- checkboxIndicator,
1078
- switch: switch_,
1079
- block: block4,
1080
- validation,
1081
- descriptionAndValidation,
1082
- triggerIcon
1083
- };
1084
-
1085
- // src/components/Link/Link.theme.ts
1086
- import { mx as mx13 } from "@dxos/ui-theme";
1087
- var root8 = ({ variant }, ...etc) => mx13("dx-link", ...etc);
1088
- var linkTheme = {
1089
- root: root8
1090
- };
1091
-
1092
- // src/components/Main/Main.theme.ts
1093
- import { mx as mx14 } from "@dxos/ui-theme";
1094
- var padding = "dx-main-content-padding";
1095
- var content2 = ({ bounce }, ...etc) => mx14(padding, mainPaddingTransitions, bounce && "dx-main-bounce-layout", "dx-focus-ring-main", ...etc);
1096
- var sidebar = (_, ...etc) => mx14("dx-main-sidebar", "dx-focus-ring-inset-over-all", ...etc);
1097
- var overlay2 = (_, ...etc) => mx14("dx-main-overlay", ...etc);
1098
- var mainTheme = {
1099
- content: content2,
1100
- sidebar,
1101
- overlay: overlay2
1102
- };
1103
-
1104
- // src/components/Menu/Menu.theme.ts
1105
- import { dataDisabled } from "@dxos/ui-theme";
1106
- import { mx as mx15, surfaceShadow as surfaceShadow2, surfaceZIndex as surfaceZIndex2 } from "@dxos/ui-theme";
1107
- var content3 = ({ elevation }, ...etc) => mx15("dx-popover-surface w-48 rounded-sm md:w-56 border border-separator", surfaceZIndex2({
1108
- elevation,
1109
- level: "menu"
1110
- }), surfaceShadow2({
1111
- elevation: "positioned"
1112
- }), ...etc);
1113
- var viewport = (_props, ...etc) => mx15("rounded-sm p-1 max-h-[var(--radix-dropdown-menu-content-available-height)] overflow-y-auto", ...etc);
1114
- var item = (_props, ...etc) => mx15("flex cursor-pointer select-none items-center gap-2 rounded-xs px-2 py-2 text-sm", "hover:bg-hover-surface data-[highlighted]:bg-hover-surface", "dx-focus-subdued", dataDisabled, ...etc);
1115
- var separator2 = (_props, ...etc) => mx15("my-1 mx-2 h-px bg-separator", ...etc);
1116
- var groupLabel2 = (_props, ...etc) => mx15("text-description", "select-none px-2 py-2", ...etc);
1117
- var arrow = (_props, ...etc) => mx15("fill-separator", ...etc);
1118
- var menuTheme = {
1119
- content: content3,
1120
- viewport,
1121
- item,
1122
- separator: separator2,
1123
- groupLabel: groupLabel2,
1124
- arrow
1125
- };
1126
-
1127
- // src/components/Message/Message.theme.ts
1128
- import { messageValence, mx as mx16 } from "@dxos/ui-theme";
1129
- var root9 = ({ valence: valence2 }, etc) => {
1130
- return mx16("p-1 rounded-sm", messageValence(valence2), etc);
1131
- };
1132
- var header3 = (_, etc) => {
1133
- return mx16("items-center", etc);
1134
- };
1135
- var title3 = (_, etc) => {
1136
- return mx16("col-start-2 overflow-hidden truncate", etc);
1137
- };
1138
- var content4 = (_, etc) => {
1139
- return mx16("col-start-2 flex flex-col first:font-medium pb-1.5", etc);
1140
- };
1141
- var messageTheme = {
1142
- root: root9,
1143
- header: header3,
1144
- title: title3,
1145
- content: content4
1146
- };
1147
-
1148
- // src/components/Panel/Panel.theme.ts
1149
- import { mx as mx17 } from "@dxos/ui-theme";
1150
- var sizes = {
1151
- lg: "h-(--dx-topbar-size)",
1152
- md: "h-(--dx-toolbar-size)",
1153
- sm: "h-(--dx-statusbar-size)"
1154
- };
1155
- var root10 = (_, ...etc) => mx17(
1156
- "dx-container grid grid-cols-[100%] overflow-hidden",
1157
- // Add uncategorized children to content slot.
1158
- "[&>*:not([data-slot])]:[grid-area:content]",
1159
- ...etc
1160
- );
1161
- var toolbar = ({ size = "md" }, ...etc) => mx17("[grid-area:toolbar]", "shrink-0", "bg-toolbar-surface", sizes[size], ...etc);
1162
- var content5 = (_, ...etc) => mx17("[grid-area:content] min-h-0", ...etc);
1163
- var statusbar = ({ size = "md" }, ...etc) => mx17("[grid-area:statusbar]", "shrink-0", sizes[size], ...etc);
1164
- var panelTheme = {
1165
- root: root10,
1166
- toolbar,
1167
- content: content5,
1168
- statusbar
1169
- };
1170
-
1171
- // src/components/Popover/Popover.theme.ts
1172
- import { mx as mx18, surfaceShadow as surfaceShadow3, surfaceZIndex as surfaceZIndex3 } from "@dxos/ui-theme";
1173
- var content6 = ({ elevation }, ...etc) => mx18("dx-popover-surface overflow-hidden border border-separator rounded-sm", surfaceShadow3({
1174
- elevation: "positioned"
1175
- }), surfaceZIndex3({
1176
- elevation,
1177
- level: "menu"
1178
- }), "dx-focus-ring", ...etc);
1179
- var viewport2 = ({ constrainBlock, constrainInline }, ...etc) => mx18("grid grid-rows-[1fr] min-h-0 min-w-popover-min-width", (constrainBlock || constrainInline) && "overflow-hidden", constrainBlock && "max-h-(--radix-popover-content-available-height)", constrainBlock && "max-h-[min(var(--radix-popover-content-available-height),calc(100dvh-var(--spacing-screen-border)*2))]", constrainInline && "max-w-(--radix-popover-content-available-width)", ...etc);
1180
- var arrow2 = (_props, ...etc) => mx18("fill-separator", ...etc);
1181
- var popoverTheme = {
1182
- content: content6,
1183
- viewport: viewport2,
1184
- arrow: arrow2
1185
- };
1186
-
1187
- // src/components/ScrollArea/ScrollArea.theme.ts
1188
- import { mx as mx19 } from "@dxos/ui-theme";
1189
- var root11 = ({ orientation }, ...etc) => mx19(
1190
- // Expand
1191
- "dx-container",
1192
- orientation === "vertical" && "group/scroll-v flex flex-col",
1193
- orientation === "horizontal" && "group/scroll-h flex",
1194
- // `flex flex-col` is required (as in `vertical`) so the viewport's `flex-1 min-h-0` can
1195
- // bound its height; without it the viewport grows to content height and only scrolls
1196
- // horizontally (the root clips the vertical overflow instead of scrolling it).
1197
- orientation === "all" && "group/scroll-all flex flex-col",
1198
- // Apply col-span-full only when inside a Column.Root grid (detected via dx-column-root marker).
1199
- "[.dx-column-root_&]:col-span-full",
1200
- ...etc
1201
- );
1202
- var viewport3 = ({ orientation, centered, padding: padding2, snap, autoHide }, ...etc) => {
1203
- return mx19(
1204
- "flex-1 min-h-0 w-full",
1205
- // Reset --dx-col so nested components don't try to grid-position themselves.
1206
- // ScrollArea has already consumed --gutter for padding.
1207
- withColumn.consumed(),
1208
- orientation === "vertical" && "overflow-y-scroll",
1209
- orientation === "horizontal" && "flex overflow-x-scroll overscroll-x-contain",
1210
- orientation === "all" && "overflow-scroll",
1211
- "[&::-webkit-scrollbar-corner]:bg-transparent",
1212
- "[&::-webkit-scrollbar-track]:bg-transparent",
1213
- "[&::-webkit-scrollbar-thumb]:rounded-none",
1214
- "[&::-webkit-scrollbar]:w-[var(--scroll-width)] [&::-webkit-scrollbar]:h-[var(--scroll-width)]",
1215
- // If contained within Column.Root grid the gutter is set by that component (--gutter CSS variable).
1216
- // If centered, left padding compensates for scrollbar width so content is visually centered.
1217
- (orientation === "vertical" || orientation === "all") && (padding2 ? [
1218
- centered ? "pl-[var(--gutter,calc(var(--scroll-width)+var(--scroll-padding)))]" : "pl-[var(--gutter,0)]",
1219
- "pr-[calc(var(--gutter,calc(var(--scroll-width)+var(--scroll-padding)))-var(--scroll-width))]"
1220
- ] : centered && "pl-[var(--scroll-width)]"),
1221
- (orientation === "horizontal" || orientation === "all") && (padding2 ? [
1222
- centered && "pt-[calc(var(--scroll-width)+var(--scroll-padding))]",
1223
- "pb-[var(--scroll-padding)]"
1224
- ] : centered && "pt-[var(--scroll-width)]"),
1225
- snap && [
1226
- orientation === "vertical" && "snap-y snap-mandatory",
1227
- orientation === "horizontal" && "snap-x snap-mandatory",
1228
- orientation === "all" && "snap-both snap-mandatory"
1229
- ],
1230
- autoHide ? [
1231
- orientation === "vertical" && "group-hover/scroll-v:[&::-webkit-scrollbar-thumb]:bg-scrollbar-thumb",
1232
- orientation === "horizontal" && "group-hover/scroll-h:[&::-webkit-scrollbar-thumb]:bg-scrollbar-thumb",
1233
- orientation === "all" && "group-hover/scroll-all:[&::-webkit-scrollbar-thumb]:bg-scrollbar-thumb"
1234
- ] : [
1235
- orientation === "vertical" && "[&::-webkit-scrollbar-thumb]:bg-scrollbar-thumb",
1236
- orientation === "horizontal" && "[&::-webkit-scrollbar-thumb]:bg-scrollbar-thumb",
1237
- orientation === "all" && "[&::-webkit-scrollbar-thumb]:bg-scrollbar-thumb"
1238
- ],
1239
- ...etc
1240
- );
1241
- };
1242
- var scrollAreaTheme = {
1243
- root: root11,
1244
- viewport: viewport3
1245
- };
1246
-
1247
- // src/components/Select/Select.theme.ts
1248
- import { mx as mx20, surfaceShadow as surfaceShadow4, surfaceZIndex as surfaceZIndex4 } from "@dxos/ui-theme";
1249
- var content7 = ({ elevation }, ...etc) => {
1250
- return mx20("dx-modal-surface rounded-sm border border-separator", "min-w-(--radix-select-trigger-width) max-h-(--radix-select-content-available-height)", surfaceShadow4({
1251
- elevation: "positioned"
1252
- }), surfaceZIndex4({
1253
- elevation,
1254
- level: "menu"
1255
- }), ...etc);
1256
- };
1257
- var triggerButton = (_props, ...etc) => mx20("bg-input-surface grid grid-cols-[1fr_auto] [&>span]:text-left", ...etc);
1258
- var viewport4 = (_props, ...etc) => mx20(...etc);
1259
- var item2 = (_props, ...etc) => mx20("flex items-center min-h-[2rem] px-2.5 py-1 gap-2", "text-base-fg leading-none select-none outline-hidden", "[&>svg]:invisible [&[data-state=checked]>svg]:visible", "dx-highlighted", ...etc);
1260
- var itemIndicator = (_props, ...etc) => mx20("items-center", ...etc);
1261
- var arrow3 = (_props, ...etc) => mx20("fill-separator", ...etc);
1262
- var separator3 = (_props, ...etc) => mx20("self-stretch border-b my-1 border-separator", ...etc);
1263
- var scrollButton = (_props, ...etc) => mx20("dx-modal-surface flex items-center justify-center cursor-default h-6 w-full", ...etc);
1264
- var selectTheme = {
1265
- content: content7,
1266
- triggerButton,
1267
- viewport: viewport4,
1268
- item: item2,
1269
- itemIndicator,
1270
- arrow: arrow3,
1271
- separator: separator3,
1272
- scrollButton
1273
- };
1274
-
1275
- // src/components/Separator/Separator.theme.ts
1276
- import { mx as mx21 } from "@dxos/ui-theme";
1277
- var root12 = ({ orientation, subdued }, ...etc) => mx21("self-stretch", orientation === "vertical" ? "border-e mx-1" : "border-b my-1", subdued ? "border-subdued-separator" : "border-separator", ...etc);
1278
- var separatorTheme = {
1279
- root: root12
1280
- };
1281
-
1282
- // src/components/Skeleton/Skeleton.theme.ts
1283
- import { mx as mx22 } from "@dxos/ui-theme";
1284
- var root13 = ({ variant = "default" }, ...etc) => mx22("animate-pulse bg-neutral-300 dark:bg-neutral-700 rounded-md", variant === "circle" && "rounded-full", variant === "text" && "rounded-sm", ...etc);
1285
- var skeletonTheme = {
1286
- root: root13
1287
- };
1288
-
1289
- // src/components/Splitter/Splitter.theme.ts
1290
- import { mx as mx23 } from "@dxos/ui-theme";
1291
- var root14 = ({ orientation }, ...etc) => mx23("relative flex w-full h-full overflow-hidden", orientation === "vertical" ? "flex-col" : "flex-row", ...etc);
1292
- var panel = (_props, ...etc) => mx23("relative grid overflow-hidden min-w-0 min-h-0", ...etc);
1293
- var handle = ({ orientation }, ...etc) => mx23("group absolute z-10 touch-none select-none", "before:absolute before:block before:bg-separator", "before:transition-colors before:duration-100 before:ease-in-out hover:before:bg-focus-ring-subtle focus-visible:before:bg-focus-ring-subtle active:before:bg-focus-ring-subtle", orientation === "vertical" ? "h-[7px] cursor-row-resize before:inset-x-0 before:top-1/2 before:-translate-y-1/2 before:h-px" : "w-[7px] cursor-col-resize before:inset-y-0 before:left-1/2 before:-translate-x-1/2 before:w-px", ...etc);
1294
- var splitterTheme = {
1295
- root: root14,
1296
- panel,
1297
- handle
1298
- };
1299
-
1300
- // src/components/Status/Status.theme.ts
1301
- import { mx as mx24 } from "@dxos/ui-theme";
1302
- var root15 = ({ variant = "default" }, ...etc) => mx24("h-1 relative rounded-full overflow-hidden", variant === "main-bottom" ? "w-full block" : "inline-20 inline-block bg-base-surface", ...etc);
1303
- var bar = ({ variant = "default", indeterminate }, ...etc) => mx24("absolute inset-y-0 block rounded-full", variant === "main-bottom" ? "bg-composer-300" : "bg-un-accent", indeterminate ? "animate-progress-indeterminate" : "start-0", ...etc);
1304
- var statusTheme = {
1305
- root: root15,
1306
- bar
1307
- };
1308
-
1309
- // src/components/Tag/Tag.theme.ts
1310
- import { mx as mx25 } from "@dxos/ui-theme";
1311
- var root16 = (_, ...etc) => mx25("dx-tag", ...etc);
1312
- var tagTheme = {
1313
- root: root16
1314
- };
1315
-
1316
- // src/components/Toast/Toast.theme.ts
1317
- import { mx as mx26, surfaceShadow as surfaceShadow5 } from "@dxos/ui-theme";
1318
- var viewport5 = (_props, ...etc) => mx26("z-40 fixed bottom-[calc(env(safe-area-inset-bottom)+1rem)]", "inset-start-[calc(env(safe-area-inset-left)+1rem)] inset-end-[calc(env(safe-area-inset-right)+1rem)]", "w-auto md:end-[calc(env(safe-area-inset-right)+4rem)] md:left-auto md:w-full md:max-w-sm", "rounded-md flex flex-col gap-2", ...etc);
1319
- var root17 = (_props, ...etc) => mx26("dx-popover-surface rounded-md p-1", surfaceShadow5({
1320
- elevation: "toast"
1321
- }), "radix-state-open:animate-toast-slide-in-bottom md:radix-state-open:animate-toast-slide-in-right", "radix-state-closed:animate-toast-hide", "radix-swipe-end:animate-toast-swipe-out", "translate-x-radix-toast-swipe-move-x", "radix-swipe-cancel:translate-x-0 radix-swipe-cancel:duration-200 radix-swipe-cancel:ease-[ease]", "dx-focus-ring", ...etc);
1322
- var grid = (_props, ...etc) => mx26("gap-y-1 pbe-1", ...etc);
1323
- var header4 = (_props, ...etc) => mx26("items-center", ...etc);
1324
- var title4 = (_props, ...etc) => mx26("col-start-2 truncate font-medium", ...etc);
1325
- var description4 = (_props, ...etc) => mx26("col-start-2 overflow-hidden text-description", ...etc);
1326
- var actions = (_props, ...etc) => mx26("flex gap-2 mbs-1", ...etc);
1327
- var toastTheme = {
1328
- viewport: viewport5,
1329
- root: root17,
1330
- grid,
1331
- header: header4,
1332
- title: title4,
1333
- description: description4,
1334
- actions
1335
- };
1336
-
1337
- // src/components/Toolbar/Toolbar.theme.ts
1338
- import { mx as mx27 } from "@dxos/ui-theme";
1339
- var layout = "w-full shrink-0 flex flex-nowrap p-1 gap-1 items-center overflow-x-auto scrollbar-none dx-contain-layout";
1340
- var root18 = ({ density, disabled, layoutManaged }, ...etc) => {
1341
- return mx27("bg-toolbar-surface dx-toolbar shadow-sm", density === "lg" && "h-(--dx-rail-size) px-3!", density === "sm" && "h-7 px-2!", density === "xs" && "h-6 px-1!", disabled && "*:opacity-20", !layoutManaged && layout, ...etc);
1342
- };
1343
- var text2 = (_, ...etc) => {
1344
- return mx27("px-2 grow truncate items-center", ...etc);
1345
- };
1346
- var toolbarTheme = {
1347
- root: root18,
1348
- text: text2
1349
- };
1350
-
1351
- // src/components/Tooltip/Tooltip.theme.ts
1352
- import { mx as mx28 } from "@dxos/ui-theme";
1353
- var arrow4 = (_props, ...etc) => mx28("fill-inverse-surface", ...etc);
1354
- var tooltipTheme = {
1355
- content: tooltipContent,
1356
- arrow: arrow4
1357
- };
1358
-
1359
- // src/components/Calendar/Calendar.theme.ts
1360
- import { mx as mx29 } from "@dxos/ui-theme";
1361
- var root19 = (_p, ...etc) => mx29("relative w-fit h-fit self-start p-2 select-none bg-group-surface text-base-fg", ...etc);
1362
- var nav = (_p, ...etc) => mx29("flex items-center justify-between pb-1", ...etc);
1363
- var caption_label = (_p, ...etc) => mx29("flex-1 text-center text-sm font-medium", ...etc);
1364
- var button_previous = (_p, ...etc) => mx29("h-7 w-7 inline-flex items-center justify-center rounded-sm shrink-0", "text-description hover:bg-hover-surface", "data-[disabled]:opacity-50 data-[disabled]:cursor-not-allowed", ...etc);
1365
- var button_next = (_p, ...etc) => mx29("h-7 w-7 inline-flex items-center justify-center rounded-sm shrink-0", "text-description hover:bg-hover-surface", "data-[disabled]:opacity-50 data-[disabled]:cursor-not-allowed", ...etc);
1366
- var month_grid = (_p, ...etc) => mx29("w-full border-collapse", ...etc);
1367
- var weekdays = (_p, ...etc) => mx29("", ...etc);
1368
- var weekday = (_p, ...etc) => mx29("w-9 h-7 text-xs font-thin text-description", ...etc);
1369
- var day = (_p, ...etc) => mx29(
1370
- "relative w-9 h-9 p-0 text-center text-sm rounded-sm inline-flex items-center justify-center cursor-pointer",
1371
- "outline-none",
1372
- "data-[hovered]:bg-hover-surface",
1373
- "data-[focus-visible]:outline-2 data-[focus-visible]:outline-primary-500",
1374
- // Highlight today (overridden by the selected style below when today is also the selected day).
1375
- "data-[today]:text-orange-500 data-[today]:font-medium",
1376
- "data-[selected]:bg-primary-500 data-[selected]:text-primary-fg data-[selected]:hover:bg-primary-500",
1377
- "data-[outside-month]:text-description/40",
1378
- "data-[disabled]:text-description/40 data-[disabled]:cursor-not-allowed data-[disabled]:hover:bg-transparent",
1379
- "data-[unavailable]:line-through data-[unavailable]:text-description/50 data-[unavailable]:cursor-not-allowed",
1380
- // Range selection visual layer.
1381
- "data-[selection-start]:rounded-l-sm data-[selection-end]:rounded-r-sm",
1382
- "data-[selection-start]:bg-primary-500 data-[selection-end]:bg-primary-500",
1383
- ...etc
1384
- );
1385
- var calendarTheme = {
1386
- root: root19,
1387
- nav,
1388
- caption_label,
1389
- button_previous,
1390
- button_next,
1391
- month_grid,
1392
- weekdays,
1393
- weekday,
1394
- day
1395
- };
1396
-
1397
- // src/components/DatePicker/DatePicker.theme.ts
1398
- import { mx as mx30 } from "@dxos/ui-theme";
1399
- var trigger = ({ hasValue }, ...etc) => mx30("inline-flex w-fit items-center gap-2 px-2 rounded-sm border border-separator", "bg-input-surface text-base-fg", "hover:bg-hover-surface focus-visible:outline-2 focus-visible:outline-primary-500", !hasValue && "text-description", ...etc);
1400
- var content8 = (_p, ...etc) => mx30("flex flex-col gap-2 p-2", ...etc);
1401
- var timeField = (_p, ...etc) => mx30("flex items-center gap-2 px-2 py-1", "[&_input]:bg-input-surface [&_input]:border [&_input]:border-separator", "[&_input]:rounded-sm [&_input]:px-2 [&_input]:py-1", ...etc);
1402
- var datePickerTheme = {
1403
- trigger,
1404
- content: content8,
1405
- timeField
1406
- };
1407
-
1408
- // src/theme/defaultTheme.ts
1409
- var defaultTheme = {
1410
- themeName: () => "default",
1411
- //
1412
- // Primitives
1413
- //
1414
- column: columnTheme,
1415
- panel: panelTheme,
1416
- //
1417
- // Components
1418
- //
1419
- avatar: avatarTheme,
1420
- breadcrumb: breadcrumbTheme,
1421
- button: buttonTheme,
1422
- calendar: calendarTheme,
1423
- card: cardTheme,
1424
- datePicker: datePickerTheme,
1425
- dialog: dialogTheme,
1426
- focus: focusTheme,
1427
- icon: iconTheme,
1428
- iconButton: iconButtonTheme,
1429
- input: inputTheme,
1430
- link: linkTheme,
1431
- main: mainTheme,
1432
- message: messageTheme,
1433
- menu: menuTheme,
1434
- popover: popoverTheme,
1435
- scrollArea: scrollAreaTheme,
1436
- select: selectTheme,
1437
- separator: separatorTheme,
1438
- skeleton: skeletonTheme,
1439
- splitter: splitterTheme,
1440
- status: statusTheme,
1441
- tag: tagTheme,
1442
- toast: toastTheme,
1443
- toolbar: toolbarTheme,
1444
- tooltip: tooltipTheme
1445
- };
1446
- var defaultTx = bindTheme(defaultTheme);
1447
-
1448
- export {
1449
- DensityContext,
1450
- DensityProvider,
1451
- ElevationContext,
1452
- ElevationProvider,
1453
- hasIosKeyboard,
1454
- TranslationsContext,
1455
- useTranslation,
1456
- ThemeContext,
1457
- ThemeProvider,
1458
- useElevationContext,
1459
- useThemeContext,
1460
- initialSafeArea,
1461
- useSafeArea,
1462
- createTooltipScope,
1463
- useTooltipContext,
1464
- Tooltip,
1465
- tooltipContent,
1466
- withColumn,
1467
- parseCaptureOwnerStack,
1468
- ErrorStack,
1469
- mainPaddingTransitions,
1470
- mainIntrinsicSize,
1471
- bindTheme,
1472
- avatarTheme,
1473
- breadcrumbTheme,
1474
- buttonTheme,
1475
- iconButtonTheme,
1476
- cardTheme,
1477
- columnTheme,
1478
- dialogTheme,
1479
- focusTheme,
1480
- iconTheme,
1481
- inputTheme,
1482
- linkTheme,
1483
- mainTheme,
1484
- menuTheme,
1485
- messageTheme,
1486
- panelTheme,
1487
- popoverTheme,
1488
- scrollAreaTheme,
1489
- selectTheme,
1490
- separatorTheme,
1491
- skeletonTheme,
1492
- splitterTheme,
1493
- statusTheme,
1494
- tagTheme,
1495
- toastTheme,
1496
- toolbarTheme,
1497
- tooltipTheme,
1498
- defaultTheme,
1499
- defaultTx
1500
- };
1501
- //# sourceMappingURL=chunk-3VSKWNCQ.mjs.map