@dxos/react-ui 0.8.4-main.ef1bc66f44 → 0.8.4-main.effb148878

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