@dxos/react-ui 0.8.4-main.fd6878d → 0.8.4-staging.60fe92afc8

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 (684) hide show
  1. package/LICENSE +102 -5
  2. package/README.md +1 -1
  3. package/dist/lib/browser/chunk-5SPBSIWS.mjs +33 -0
  4. package/dist/lib/browser/chunk-5SPBSIWS.mjs.map +7 -0
  5. package/dist/lib/browser/chunk-7JFD5ZHZ.mjs +1612 -0
  6. package/dist/lib/browser/chunk-7JFD5ZHZ.mjs.map +7 -0
  7. package/dist/lib/browser/index.mjs +5263 -60
  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 +110 -61
  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-FPVTVXND.mjs +35 -0
  15. package/dist/lib/node-esm/chunk-FPVTVXND.mjs.map +7 -0
  16. package/dist/lib/node-esm/chunk-TTEL2FP2.mjs +1614 -0
  17. package/dist/lib/node-esm/chunk-TTEL2FP2.mjs.map +7 -0
  18. package/dist/lib/node-esm/index.mjs +5263 -60
  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 +110 -61
  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 +5 -31
  28. package/dist/types/src/components/Avatars/Avatar.stories.d.ts.map +1 -1
  29. package/dist/types/src/components/Avatars/Avatar.theme.d.ts +11 -0
  30. package/dist/types/src/components/Avatars/Avatar.theme.d.ts.map +1 -0
  31. package/dist/types/src/components/Avatars/AvatarGroup.stories.d.ts +5 -11
  32. package/dist/types/src/components/Avatars/AvatarGroup.stories.d.ts.map +1 -1
  33. package/dist/types/src/components/Breadcrumb/Breadcrumb.d.ts +5 -1
  34. package/dist/types/src/components/Breadcrumb/Breadcrumb.d.ts.map +1 -1
  35. package/dist/types/src/components/Breadcrumb/Breadcrumb.stories.d.ts +8 -20
  36. package/dist/types/src/components/Breadcrumb/Breadcrumb.stories.d.ts.map +1 -1
  37. package/dist/types/src/components/Breadcrumb/Breadcrumb.theme.d.ts +4 -0
  38. package/dist/types/src/components/Breadcrumb/Breadcrumb.theme.d.ts.map +1 -0
  39. package/dist/types/src/components/{Buttons → Button}/Button.d.ts +5 -5
  40. package/dist/types/src/components/Button/Button.d.ts.map +1 -0
  41. package/dist/types/src/components/Button/Button.stories.d.ts +17 -0
  42. package/dist/types/src/components/Button/Button.stories.d.ts.map +1 -0
  43. package/dist/types/src/components/Button/Button.theme.d.ts +11 -0
  44. package/dist/types/src/components/Button/Button.theme.d.ts.map +1 -0
  45. package/dist/types/src/components/{Buttons → Button}/IconButton.d.ts +4 -3
  46. package/dist/types/src/components/Button/IconButton.d.ts.map +1 -0
  47. package/dist/types/src/components/Button/IconButton.stories.d.ts +17 -0
  48. package/dist/types/src/components/Button/IconButton.stories.d.ts.map +1 -0
  49. package/dist/types/src/components/Button/IconButton.theme.d.ts +8 -0
  50. package/dist/types/src/components/Button/IconButton.theme.d.ts.map +1 -0
  51. package/dist/types/src/components/{Buttons → Button}/Toggle.d.ts +2 -2
  52. package/dist/types/src/components/Button/Toggle.d.ts.map +1 -0
  53. package/dist/types/src/components/Button/Toggle.stories.d.ts +16 -0
  54. package/dist/types/src/components/Button/Toggle.stories.d.ts.map +1 -0
  55. package/dist/types/src/components/Button/ToggleGroup.d.ts +27 -0
  56. package/dist/types/src/components/Button/ToggleGroup.d.ts.map +1 -0
  57. package/dist/types/src/components/Button/ToggleGroup.stories.d.ts +27 -0
  58. package/dist/types/src/components/Button/ToggleGroup.stories.d.ts.map +1 -0
  59. package/dist/types/src/components/Button/index.d.ts.map +1 -0
  60. package/dist/types/src/components/Calendar/Calendar.d.ts +33 -0
  61. package/dist/types/src/components/Calendar/Calendar.d.ts.map +1 -0
  62. package/dist/types/src/components/Calendar/Calendar.stories.d.ts +9 -0
  63. package/dist/types/src/components/Calendar/Calendar.stories.d.ts.map +1 -0
  64. package/dist/types/src/components/Calendar/Calendar.theme.d.ts +4 -0
  65. package/dist/types/src/components/Calendar/Calendar.theme.d.ts.map +1 -0
  66. package/dist/types/src/components/Calendar/index.d.ts +2 -0
  67. package/dist/types/src/components/Calendar/index.d.ts.map +1 -0
  68. package/dist/types/src/components/Card/Card.d.ts +126 -0
  69. package/dist/types/src/components/Card/Card.d.ts.map +1 -0
  70. package/dist/types/src/components/Card/Card.stories.d.ts +22 -0
  71. package/dist/types/src/components/Card/Card.stories.d.ts.map +1 -0
  72. package/dist/types/src/components/Card/Card.theme.d.ts +12 -0
  73. package/dist/types/src/components/Card/Card.theme.d.ts.map +1 -0
  74. package/dist/types/src/components/Card/index.d.ts +2 -0
  75. package/dist/types/src/components/Card/index.d.ts.map +1 -0
  76. package/dist/types/src/components/Carousel/Carousel.d.ts +106 -0
  77. package/dist/types/src/components/Carousel/Carousel.d.ts.map +1 -0
  78. package/dist/types/src/components/Carousel/Carousel.stories.d.ts +14 -0
  79. package/dist/types/src/components/Carousel/Carousel.stories.d.ts.map +1 -0
  80. package/dist/types/src/components/Carousel/index.d.ts +2 -0
  81. package/dist/types/src/components/Carousel/index.d.ts.map +1 -0
  82. package/dist/types/src/components/Clipboard/ClipboardProvider.d.ts.map +1 -1
  83. package/dist/types/src/components/Clipboard/CopyButton.d.ts +1 -1
  84. package/dist/types/src/components/Clipboard/CopyButton.d.ts.map +1 -1
  85. package/dist/types/src/components/Clipboard/index.d.ts +10 -1
  86. package/dist/types/src/components/Clipboard/index.d.ts.map +1 -1
  87. package/dist/types/src/components/Column/Column.d.ts +33 -0
  88. package/dist/types/src/components/Column/Column.d.ts.map +1 -0
  89. package/dist/types/src/components/Column/Column.stories.d.ts +25 -0
  90. package/dist/types/src/components/Column/Column.stories.d.ts.map +1 -0
  91. package/dist/types/src/components/Column/Column.theme.d.ts +9 -0
  92. package/dist/types/src/components/Column/Column.theme.d.ts.map +1 -0
  93. package/dist/types/src/components/Column/index.d.ts +3 -0
  94. package/dist/types/src/components/Column/index.d.ts.map +1 -0
  95. package/dist/types/src/components/Column/withColumn.d.ts +21 -0
  96. package/dist/types/src/components/Column/withColumn.d.ts.map +1 -0
  97. package/dist/types/src/components/DatePicker/DatePicker.d.ts +72 -0
  98. package/dist/types/src/components/DatePicker/DatePicker.d.ts.map +1 -0
  99. package/dist/types/src/components/DatePicker/DatePicker.stories.d.ts +10 -0
  100. package/dist/types/src/components/DatePicker/DatePicker.stories.d.ts.map +1 -0
  101. package/dist/types/src/components/DatePicker/DatePicker.theme.d.ts +6 -0
  102. package/dist/types/src/components/DatePicker/DatePicker.theme.d.ts.map +1 -0
  103. package/dist/types/src/components/DatePicker/index.d.ts +2 -0
  104. package/dist/types/src/components/DatePicker/index.d.ts.map +1 -0
  105. package/dist/types/src/components/Dialog/AlertDialog.d.ts +51 -0
  106. package/dist/types/src/components/Dialog/AlertDialog.d.ts.map +1 -0
  107. package/dist/types/src/components/Dialog/AlertDialog.stories.d.ts +11 -0
  108. package/dist/types/src/components/Dialog/AlertDialog.stories.d.ts.map +1 -0
  109. package/dist/types/src/components/Dialog/Dialog.d.ts +66 -0
  110. package/dist/types/src/components/Dialog/Dialog.d.ts.map +1 -0
  111. package/dist/types/src/components/Dialog/Dialog.stories.d.ts +25 -0
  112. package/dist/types/src/components/Dialog/Dialog.stories.d.ts.map +1 -0
  113. package/dist/types/src/components/Dialog/Dialog.theme.d.ts +10 -0
  114. package/dist/types/src/components/Dialog/Dialog.theme.d.ts.map +1 -0
  115. package/dist/types/src/components/Dialog/index.d.ts.map +1 -0
  116. package/dist/types/src/components/ErrorFallback/ErrorFallback.d.ts +11 -0
  117. package/dist/types/src/components/ErrorFallback/ErrorFallback.d.ts.map +1 -0
  118. package/dist/types/src/components/ErrorFallback/ErrorFallback.stories.d.ts +7 -0
  119. package/dist/types/src/components/ErrorFallback/ErrorFallback.stories.d.ts.map +1 -0
  120. package/dist/types/src/components/ErrorFallback/ErrorStack.d.ts +19 -0
  121. package/dist/types/src/components/ErrorFallback/ErrorStack.d.ts.map +1 -0
  122. package/dist/types/src/components/ErrorFallback/ThrowError.d.ts +9 -0
  123. package/dist/types/src/components/ErrorFallback/ThrowError.d.ts.map +1 -0
  124. package/dist/types/src/components/ErrorFallback/index.d.ts +5 -0
  125. package/dist/types/src/components/ErrorFallback/index.d.ts.map +1 -0
  126. package/dist/types/src/components/Focus/Focus.d.ts +36 -0
  127. package/dist/types/src/components/Focus/Focus.d.ts.map +1 -0
  128. package/dist/types/src/components/Focus/Focus.stories.d.ts +9 -0
  129. package/dist/types/src/components/Focus/Focus.stories.d.ts.map +1 -0
  130. package/dist/types/src/components/Focus/Focus.theme.d.ts +6 -0
  131. package/dist/types/src/components/Focus/Focus.theme.d.ts.map +1 -0
  132. package/dist/types/src/components/Focus/index.d.ts +2 -0
  133. package/dist/types/src/components/Focus/index.d.ts.map +1 -0
  134. package/dist/types/src/components/Icon/Icon.d.ts +6 -2
  135. package/dist/types/src/components/Icon/Icon.d.ts.map +1 -1
  136. package/dist/types/src/components/Icon/Icon.stories.d.ts +25 -0
  137. package/dist/types/src/components/Icon/Icon.stories.d.ts.map +1 -0
  138. package/dist/types/src/components/Icon/Icon.theme.d.ts +11 -0
  139. package/dist/types/src/components/Icon/Icon.theme.d.ts.map +1 -0
  140. package/dist/types/src/components/Icon/IconBlock.d.ts +15 -0
  141. package/dist/types/src/components/Icon/IconBlock.d.ts.map +1 -0
  142. package/dist/types/src/components/Icon/index.d.ts +1 -0
  143. package/dist/types/src/components/Icon/index.d.ts.map +1 -1
  144. package/dist/types/src/components/Image/Image.d.ts +21 -0
  145. package/dist/types/src/components/Image/Image.d.ts.map +1 -0
  146. package/dist/types/src/components/Image/Image.stories.d.ts +34 -0
  147. package/dist/types/src/components/Image/Image.stories.d.ts.map +1 -0
  148. package/dist/types/src/components/Image/index.d.ts +2 -0
  149. package/dist/types/src/components/Image/index.d.ts.map +1 -0
  150. package/dist/types/src/components/Input/Input.d.ts +95 -22
  151. package/dist/types/src/components/Input/Input.d.ts.map +1 -1
  152. package/dist/types/src/components/Input/Input.stories.d.ts +29 -19
  153. package/dist/types/src/components/Input/Input.stories.d.ts.map +1 -1
  154. package/dist/types/src/components/Input/Input.theme.d.ts +115 -0
  155. package/dist/types/src/components/Input/Input.theme.d.ts.map +1 -0
  156. package/dist/types/src/components/Input/SegmentedInput.d.ts +79 -0
  157. package/dist/types/src/components/Input/SegmentedInput.d.ts.map +1 -0
  158. package/dist/types/src/components/Input/constants.d.ts +2 -0
  159. package/dist/types/src/components/Input/constants.d.ts.map +1 -0
  160. package/dist/types/src/components/Input/index.d.ts +2 -0
  161. package/dist/types/src/components/Input/index.d.ts.map +1 -1
  162. package/dist/types/src/components/Link/Link.d.ts.map +1 -1
  163. package/dist/types/src/components/Link/Link.stories.d.ts +8 -8
  164. package/dist/types/src/components/Link/Link.stories.d.ts.map +1 -1
  165. package/dist/types/src/components/Link/Link.theme.d.ts +6 -0
  166. package/dist/types/src/components/Link/Link.theme.d.ts.map +1 -0
  167. package/dist/types/src/components/{Lists → List}/List.d.ts +6 -4
  168. package/dist/types/src/components/List/List.d.ts.map +1 -0
  169. package/dist/types/src/components/List/List.stories.d.ts +16 -0
  170. package/dist/types/src/components/List/List.stories.d.ts.map +1 -0
  171. package/dist/types/src/components/List/List.theme.d.ts +7 -0
  172. package/dist/types/src/components/List/List.theme.d.ts.map +1 -0
  173. package/dist/types/src/components/List/ListDropIndicator.d.ts.map +1 -0
  174. package/dist/types/src/components/{Lists → List}/Tree.d.ts +2 -2
  175. package/dist/types/src/components/List/Tree.d.ts.map +1 -0
  176. package/dist/types/src/components/List/Tree.stories.d.ts +15 -0
  177. package/dist/types/src/components/List/Tree.stories.d.ts.map +1 -0
  178. package/dist/types/src/components/List/TreeDropIndicator.d.ts.map +1 -0
  179. package/dist/types/src/components/{Lists → List}/Treegrid.d.ts +6 -10
  180. package/dist/types/src/components/List/Treegrid.d.ts.map +1 -0
  181. package/dist/types/src/components/List/Treegrid.stories.d.ts +12 -0
  182. package/dist/types/src/components/List/Treegrid.stories.d.ts.map +1 -0
  183. package/dist/types/src/components/List/Treegrid.theme.d.ts +7 -0
  184. package/dist/types/src/components/List/Treegrid.theme.d.ts.map +1 -0
  185. package/dist/types/src/components/List/index.d.ts.map +1 -0
  186. package/dist/types/src/components/Main/Main.d.ts +25 -31
  187. package/dist/types/src/components/Main/Main.d.ts.map +1 -1
  188. package/dist/types/src/components/Main/Main.stories.d.ts +6 -10
  189. package/dist/types/src/components/Main/Main.stories.d.ts.map +1 -1
  190. package/dist/types/src/components/Main/Main.theme.d.ts +20 -0
  191. package/dist/types/src/components/Main/Main.theme.d.ts.map +1 -0
  192. package/dist/types/src/components/Main/constants.d.ts +3 -0
  193. package/dist/types/src/components/Main/constants.d.ts.map +1 -0
  194. package/dist/types/src/components/Main/index.d.ts +1 -0
  195. package/dist/types/src/components/Main/index.d.ts.map +1 -1
  196. package/dist/types/src/components/Main/useSwipeToDismiss.d.ts.map +1 -1
  197. package/dist/types/src/components/MediaPlayer/MediaPlayer.d.ts +47 -0
  198. package/dist/types/src/components/MediaPlayer/MediaPlayer.d.ts.map +1 -0
  199. package/dist/types/src/components/MediaPlayer/MediaPlayer.stories.d.ts +16 -0
  200. package/dist/types/src/components/MediaPlayer/MediaPlayer.stories.d.ts.map +1 -0
  201. package/dist/types/src/components/MediaPlayer/index.d.ts +2 -0
  202. package/dist/types/src/components/MediaPlayer/index.d.ts.map +1 -0
  203. package/dist/types/src/components/{Menus → Menu}/ContextMenu.d.ts +6 -6
  204. package/dist/types/src/components/Menu/ContextMenu.d.ts.map +1 -0
  205. package/dist/types/src/components/Menu/ContextMenu.stories.d.ts +12 -0
  206. package/dist/types/src/components/Menu/ContextMenu.stories.d.ts.map +1 -0
  207. package/dist/types/src/components/Menu/DropdownMenu.d.ts +121 -0
  208. package/dist/types/src/components/Menu/DropdownMenu.d.ts.map +1 -0
  209. package/dist/types/src/components/Menu/DropdownMenu.stories.d.ts +28 -0
  210. package/dist/types/src/components/Menu/DropdownMenu.stories.d.ts.map +1 -0
  211. package/dist/types/src/components/Menu/Menu.theme.d.ts +7 -0
  212. package/dist/types/src/components/Menu/Menu.theme.d.ts.map +1 -0
  213. package/dist/types/src/components/Menu/index.d.ts.map +1 -0
  214. package/dist/types/src/components/Message/Message.d.ts +4 -4
  215. package/dist/types/src/components/Message/Message.d.ts.map +1 -1
  216. package/dist/types/src/components/Message/Message.stories.d.ts +16 -22
  217. package/dist/types/src/components/Message/Message.stories.d.ts.map +1 -1
  218. package/dist/types/src/components/Message/Message.theme.d.ts +7 -0
  219. package/dist/types/src/components/Message/Message.theme.d.ts.map +1 -0
  220. package/dist/types/src/components/Panel/Panel.d.ts +35 -0
  221. package/dist/types/src/components/Panel/Panel.d.ts.map +1 -0
  222. package/dist/types/src/components/Panel/Panel.stories.d.ts +6 -0
  223. package/dist/types/src/components/Panel/Panel.stories.d.ts.map +1 -0
  224. package/dist/types/src/components/Panel/Panel.theme.d.ts +13 -0
  225. package/dist/types/src/components/Panel/Panel.theme.d.ts.map +1 -0
  226. package/dist/types/src/components/Panel/index.d.ts +2 -0
  227. package/dist/types/src/components/Panel/index.d.ts.map +1 -0
  228. package/dist/types/src/components/Popover/Popover.d.ts +41 -24
  229. package/dist/types/src/components/Popover/Popover.d.ts.map +1 -1
  230. package/dist/types/src/components/Popover/Popover.stories.d.ts +6 -34
  231. package/dist/types/src/components/Popover/Popover.stories.d.ts.map +1 -1
  232. package/dist/types/src/components/Popover/Popover.theme.d.ts +8 -0
  233. package/dist/types/src/components/Popover/Popover.theme.d.ts.map +1 -0
  234. package/dist/types/src/components/ScrollArea/ScrollArea.d.ts +27 -27
  235. package/dist/types/src/components/ScrollArea/ScrollArea.d.ts.map +1 -1
  236. package/dist/types/src/components/ScrollArea/ScrollArea.stories.d.ts +50 -27
  237. package/dist/types/src/components/ScrollArea/ScrollArea.stories.d.ts.map +1 -1
  238. package/dist/types/src/components/ScrollArea/ScrollArea.theme.d.ts +17 -0
  239. package/dist/types/src/components/ScrollArea/ScrollArea.theme.d.ts.map +1 -0
  240. package/dist/types/src/components/ScrollArea/index.d.ts +1 -0
  241. package/dist/types/src/components/ScrollArea/index.d.ts.map +1 -1
  242. package/dist/types/src/components/ScrollArea/scrollbar.d.ts +18 -0
  243. package/dist/types/src/components/ScrollArea/scrollbar.d.ts.map +1 -0
  244. package/dist/types/src/components/ScrollContainer/ScrollContainer.d.ts +62 -0
  245. package/dist/types/src/components/ScrollContainer/ScrollContainer.d.ts.map +1 -0
  246. package/dist/types/src/components/ScrollContainer/ScrollContainer.stories.d.ts +23 -0
  247. package/dist/types/src/components/ScrollContainer/ScrollContainer.stories.d.ts.map +1 -0
  248. package/dist/types/src/components/ScrollContainer/index.d.ts +2 -0
  249. package/dist/types/src/components/ScrollContainer/index.d.ts.map +1 -0
  250. package/dist/types/src/components/Select/Select.d.ts +10 -10
  251. package/dist/types/src/components/Select/Select.d.ts.map +1 -1
  252. package/dist/types/src/components/Select/Select.stories.d.ts +6 -11
  253. package/dist/types/src/components/Select/Select.stories.d.ts.map +1 -1
  254. package/dist/types/src/components/Select/Select.theme.d.ts +6 -0
  255. package/dist/types/src/components/Select/Select.theme.d.ts.map +1 -0
  256. package/dist/types/src/components/Separator/Separator.d.ts +4 -4
  257. package/dist/types/src/components/Separator/Separator.d.ts.map +1 -1
  258. package/dist/types/src/components/Separator/Separator.theme.d.ts +7 -0
  259. package/dist/types/src/components/Separator/Separator.theme.d.ts.map +1 -0
  260. package/dist/types/src/components/Skeleton/Skeleton.d.ts +12 -0
  261. package/dist/types/src/components/Skeleton/Skeleton.d.ts.map +1 -0
  262. package/dist/types/src/components/Skeleton/Skeleton.stories.d.ts +17 -0
  263. package/dist/types/src/components/Skeleton/Skeleton.stories.d.ts.map +1 -0
  264. package/dist/types/src/components/Skeleton/Skeleton.theme.d.ts +6 -0
  265. package/dist/types/src/components/Skeleton/Skeleton.theme.d.ts.map +1 -0
  266. package/dist/types/src/components/Skeleton/index.d.ts +2 -0
  267. package/dist/types/src/components/Skeleton/index.d.ts.map +1 -0
  268. package/dist/types/src/components/Splitter/Splitter.d.ts +32 -0
  269. package/dist/types/src/components/Splitter/Splitter.d.ts.map +1 -0
  270. package/dist/types/src/components/Splitter/Splitter.stories.d.ts +7 -0
  271. package/dist/types/src/components/Splitter/Splitter.stories.d.ts.map +1 -0
  272. package/dist/types/src/components/Splitter/Splitter.theme.d.ts +4 -0
  273. package/dist/types/src/components/Splitter/Splitter.theme.d.ts.map +1 -0
  274. package/dist/types/src/components/Splitter/index.d.ts +2 -0
  275. package/dist/types/src/components/Splitter/index.d.ts.map +1 -0
  276. package/dist/types/src/components/Status/Status.d.ts +3 -4
  277. package/dist/types/src/components/Status/Status.d.ts.map +1 -1
  278. package/dist/types/src/components/Status/Status.stories.d.ts +6 -10
  279. package/dist/types/src/components/Status/Status.stories.d.ts.map +1 -1
  280. package/dist/types/src/components/Status/Status.theme.d.ts +7 -0
  281. package/dist/types/src/components/Status/Status.theme.d.ts.map +1 -0
  282. package/dist/types/src/components/Tag/Tag.d.ts +1 -1
  283. package/dist/types/src/components/Tag/Tag.d.ts.map +1 -1
  284. package/dist/types/src/components/Tag/Tag.stories.d.ts +8 -13
  285. package/dist/types/src/components/Tag/Tag.stories.d.ts.map +1 -1
  286. package/dist/types/src/components/Tag/Tag.theme.d.ts +6 -0
  287. package/dist/types/src/components/Tag/Tag.theme.d.ts.map +1 -0
  288. package/dist/types/src/components/Toast/Toast.d.ts +27 -24
  289. package/dist/types/src/components/Toast/Toast.d.ts.map +1 -1
  290. package/dist/types/src/components/Toast/Toast.stories.d.ts +11 -46
  291. package/dist/types/src/components/Toast/Toast.stories.d.ts.map +1 -1
  292. package/dist/types/src/components/Toast/Toast.theme.d.ts +4 -0
  293. package/dist/types/src/components/Toast/Toast.theme.d.ts.map +1 -0
  294. package/dist/types/src/components/Toolbar/Toolbar.d.ts +54 -24
  295. package/dist/types/src/components/Toolbar/Toolbar.d.ts.map +1 -1
  296. package/dist/types/src/components/Toolbar/Toolbar.stories.d.ts +6 -50
  297. package/dist/types/src/components/Toolbar/Toolbar.stories.d.ts.map +1 -1
  298. package/dist/types/src/components/Toolbar/Toolbar.theme.d.ts +8 -0
  299. package/dist/types/src/components/Toolbar/Toolbar.theme.d.ts.map +1 -0
  300. package/dist/types/src/components/Tooltip/Tooltip.d.ts +16 -18
  301. package/dist/types/src/components/Tooltip/Tooltip.d.ts.map +1 -1
  302. package/dist/types/src/components/Tooltip/Tooltip.stories.d.ts +10 -63
  303. package/dist/types/src/components/Tooltip/Tooltip.stories.d.ts.map +1 -1
  304. package/dist/types/src/components/Tooltip/Tooltip.theme.d.ts +6 -0
  305. package/dist/types/src/components/Tooltip/Tooltip.theme.d.ts.map +1 -0
  306. package/dist/types/src/components/Tooltip/index.d.ts +1 -0
  307. package/dist/types/src/components/Tooltip/index.d.ts.map +1 -1
  308. package/dist/types/src/components/Tooltip/tooltipContent.d.ts +4 -0
  309. package/dist/types/src/components/Tooltip/tooltipContent.d.ts.map +1 -0
  310. package/dist/types/src/components/index.d.ts +18 -9
  311. package/dist/types/src/components/index.d.ts.map +1 -1
  312. package/dist/types/src/exemplars/generics.stories.d.ts +19 -0
  313. package/dist/types/src/exemplars/generics.stories.d.ts.map +1 -0
  314. package/dist/types/src/exemplars/slot.stories.d.ts +15 -0
  315. package/dist/types/src/exemplars/slot.stories.d.ts.map +1 -0
  316. package/dist/types/src/exemplars/tabster.stories.d.ts +8 -0
  317. package/dist/types/src/exemplars/tabster.stories.d.ts.map +1 -0
  318. package/dist/types/src/exemplars/virtualizer.stories.d.ts +11 -0
  319. package/dist/types/src/exemplars/virtualizer.stories.d.ts.map +1 -0
  320. package/dist/types/src/hooks/index.d.ts +1 -0
  321. package/dist/types/src/hooks/index.d.ts.map +1 -1
  322. package/dist/types/src/hooks/useDensityContext.d.ts +2 -2
  323. package/dist/types/src/hooks/useDensityContext.d.ts.map +1 -1
  324. package/dist/types/src/hooks/useElevationContext.d.ts +1 -1
  325. package/dist/types/src/hooks/useElevationContext.d.ts.map +1 -1
  326. package/dist/types/src/hooks/useIconHref.d.ts.map +1 -1
  327. package/dist/types/src/hooks/useSafeArea.d.ts.map +1 -1
  328. package/dist/types/src/hooks/useSafeCollisionPadding.d.ts.map +1 -1
  329. package/dist/types/src/hooks/useTranslationsContext.d.ts +1 -1
  330. package/dist/types/src/hooks/useVisualViewport.d.ts +2 -2
  331. package/dist/types/src/hooks/useVisualViewport.d.ts.map +1 -1
  332. package/dist/types/src/index.d.ts +3 -1
  333. package/dist/types/src/index.d.ts.map +1 -1
  334. package/dist/types/src/playground/Controls.stories.d.ts +5 -9
  335. package/dist/types/src/playground/Controls.stories.d.ts.map +1 -1
  336. package/dist/types/src/playground/Custom.stories.d.ts +12 -4
  337. package/dist/types/src/playground/Custom.stories.d.ts.map +1 -1
  338. package/dist/types/src/playground/Typography.stories.d.ts +5 -11
  339. package/dist/types/src/playground/Typography.stories.d.ts.map +1 -1
  340. package/dist/types/src/primitives/Container/Container.d.ts +7 -0
  341. package/dist/types/src/primitives/Container/Container.d.ts.map +1 -0
  342. package/dist/types/src/primitives/Container/Container.stories.d.ts +6 -0
  343. package/dist/types/src/primitives/Container/Container.stories.d.ts.map +1 -0
  344. package/dist/types/src/primitives/Container/index.d.ts +2 -0
  345. package/dist/types/src/primitives/Container/index.d.ts.map +1 -0
  346. package/dist/types/src/{components → primitives}/DensityProvider/DensityProvider.d.ts +1 -1
  347. package/dist/types/src/{components → primitives}/DensityProvider/DensityProvider.d.ts.map +1 -1
  348. package/dist/types/src/primitives/DensityProvider/index.d.ts.map +1 -0
  349. package/dist/types/src/{components → primitives}/ElevationProvider/ElevationProvider.d.ts +1 -1
  350. package/dist/types/src/{components → primitives}/ElevationProvider/ElevationProvider.d.ts.map +1 -1
  351. package/dist/types/src/primitives/ElevationProvider/index.d.ts.map +1 -0
  352. package/dist/types/src/primitives/Flex/Flex.d.ts +11 -0
  353. package/dist/types/src/primitives/Flex/Flex.d.ts.map +1 -0
  354. package/dist/types/src/primitives/Flex/Flex.stories.d.ts +8 -0
  355. package/dist/types/src/primitives/Flex/Flex.stories.d.ts.map +1 -0
  356. package/dist/types/src/primitives/Flex/index.d.ts +2 -0
  357. package/dist/types/src/primitives/Flex/index.d.ts.map +1 -0
  358. package/dist/types/src/primitives/Grid/Grid.d.ts +10 -0
  359. package/dist/types/src/primitives/Grid/Grid.d.ts.map +1 -0
  360. package/dist/types/src/primitives/Grid/Grid.stories.d.ts +8 -0
  361. package/dist/types/src/primitives/Grid/Grid.stories.d.ts.map +1 -0
  362. package/dist/types/src/primitives/Grid/index.d.ts +2 -0
  363. package/dist/types/src/primitives/Grid/index.d.ts.map +1 -0
  364. package/dist/types/src/{components → primitives}/ThemeProvider/ThemeProvider.d.ts +3 -3
  365. package/dist/types/src/primitives/ThemeProvider/ThemeProvider.d.ts.map +1 -0
  366. package/dist/types/src/primitives/ThemeProvider/ThemeProvider.stories.d.ts +12 -0
  367. package/dist/types/src/primitives/ThemeProvider/ThemeProvider.stories.d.ts.map +1 -0
  368. package/dist/types/src/primitives/ThemeProvider/TranslationsProvider.d.ts +128 -0
  369. package/dist/types/src/primitives/ThemeProvider/TranslationsProvider.d.ts.map +1 -0
  370. package/dist/types/src/primitives/ThemeProvider/index.d.ts +4 -0
  371. package/dist/types/src/primitives/ThemeProvider/index.d.ts.map +1 -0
  372. package/dist/types/src/primitives/index.d.ts +7 -0
  373. package/dist/types/src/primitives/index.d.ts.map +1 -0
  374. package/dist/types/src/testing/Loading.d.ts +9 -0
  375. package/dist/types/src/testing/Loading.d.ts.map +1 -0
  376. package/dist/types/src/testing/decorators/index.d.ts +2 -1
  377. package/dist/types/src/testing/decorators/index.d.ts.map +1 -1
  378. package/dist/types/src/testing/decorators/withLayout.d.ts +15 -0
  379. package/dist/types/src/testing/decorators/withLayout.d.ts.map +1 -0
  380. package/dist/types/src/testing/decorators/withLayoutVariants.d.ts +12 -0
  381. package/dist/types/src/testing/decorators/withLayoutVariants.d.ts.map +1 -0
  382. package/dist/types/src/testing/decorators/withTheme.d.ts +9 -1
  383. package/dist/types/src/testing/decorators/withTheme.d.ts.map +1 -1
  384. package/dist/types/src/testing/index.d.ts +1 -0
  385. package/dist/types/src/testing/index.d.ts.map +1 -1
  386. package/dist/types/src/theme/bindTheme.d.ts +3 -0
  387. package/dist/types/src/theme/bindTheme.d.ts.map +1 -0
  388. package/dist/types/src/theme/defaultTheme.d.ts +4 -0
  389. package/dist/types/src/theme/defaultTheme.d.ts.map +1 -0
  390. package/dist/types/src/theme/index.d.ts +31 -0
  391. package/dist/types/src/theme/index.d.ts.map +1 -0
  392. package/dist/types/src/translations.d.ts +25 -0
  393. package/dist/types/src/translations.d.ts.map +1 -0
  394. package/dist/types/src/util/index.d.ts +4 -2
  395. package/dist/types/src/util/index.d.ts.map +1 -1
  396. package/dist/types/src/util/mobile.d.ts +5 -0
  397. package/dist/types/src/util/mobile.d.ts.map +1 -0
  398. package/dist/types/src/util/slots.d.ts +57 -0
  399. package/dist/types/src/util/slots.d.ts.map +1 -0
  400. package/dist/types/src/util/usePx.d.ts +8 -0
  401. package/dist/types/src/util/usePx.d.ts.map +1 -0
  402. package/dist/types/tsconfig.tsbuildinfo +1 -1
  403. package/package.json +55 -40
  404. package/src/components/Avatars/Avatar.stories.tsx +22 -16
  405. package/src/components/Avatars/Avatar.theme.ts +93 -0
  406. package/src/components/Avatars/Avatar.tsx +7 -15
  407. package/src/components/Avatars/AvatarGroup.stories.tsx +10 -8
  408. package/src/components/Breadcrumb/Breadcrumb.stories.tsx +19 -16
  409. package/src/components/Breadcrumb/Breadcrumb.theme.ts +26 -0
  410. package/src/components/Breadcrumb/Breadcrumb.tsx +25 -39
  411. package/src/components/{Buttons → Button}/Button.stories.tsx +7 -10
  412. package/src/components/Button/Button.theme.ts +31 -0
  413. package/src/components/{Buttons → Button}/Button.tsx +13 -27
  414. package/src/components/Button/IconButton.stories.tsx +92 -0
  415. package/src/components/Button/IconButton.theme.ts +21 -0
  416. package/src/components/{Buttons → Button}/IconButton.tsx +21 -16
  417. package/src/components/Button/Toggle.stories.tsx +36 -0
  418. package/src/components/{Buttons → Button}/Toggle.tsx +4 -4
  419. package/src/components/{Buttons → Button}/ToggleGroup.stories.tsx +10 -9
  420. package/src/components/Button/ToggleGroup.tsx +50 -0
  421. package/src/components/Calendar/Calendar.stories.tsx +43 -0
  422. package/src/components/Calendar/Calendar.theme.ts +74 -0
  423. package/src/components/Calendar/Calendar.tsx +196 -0
  424. package/src/components/Calendar/index.ts +5 -0
  425. package/src/components/Card/Card.stories.tsx +172 -0
  426. package/src/components/Card/Card.theme.ts +93 -0
  427. package/src/components/Card/Card.tsx +485 -0
  428. package/src/components/Card/index.ts +5 -0
  429. package/src/components/Carousel/Carousel.stories.tsx +47 -0
  430. package/src/components/Carousel/Carousel.tsx +373 -0
  431. package/src/components/Carousel/index.ts +5 -0
  432. package/src/components/Clipboard/CopyButton.tsx +11 -12
  433. package/src/components/Column/AUDIT.md +148 -0
  434. package/src/components/Column/Column.stories.tsx +181 -0
  435. package/src/components/Column/Column.theme.ts +48 -0
  436. package/src/components/Column/Column.tsx +166 -0
  437. package/src/components/Column/index.ts +6 -0
  438. package/src/components/Column/withColumn.ts +27 -0
  439. package/src/components/DatePicker/DatePicker.stories.tsx +102 -0
  440. package/src/components/DatePicker/DatePicker.theme.ts +35 -0
  441. package/src/components/DatePicker/DatePicker.tsx +279 -0
  442. package/src/components/DatePicker/index.ts +5 -0
  443. package/src/components/Dialog/AlertDialog.stories.tsx +68 -0
  444. package/src/components/Dialog/AlertDialog.tsx +209 -0
  445. package/src/components/Dialog/Dialog.stories.tsx +177 -0
  446. package/src/components/Dialog/Dialog.theme.ts +61 -0
  447. package/src/components/Dialog/Dialog.tsx +314 -0
  448. package/src/components/ErrorFallback/ErrorFallback.stories.tsx +45 -0
  449. package/src/components/ErrorFallback/ErrorFallback.tsx +76 -0
  450. package/src/components/ErrorFallback/ErrorStack.tsx +120 -0
  451. package/src/components/ErrorFallback/ThrowError.tsx +37 -0
  452. package/src/components/ErrorFallback/index.ts +9 -0
  453. package/src/components/Focus/AUDIT.md +43 -0
  454. package/src/components/Focus/Focus.stories.tsx +230 -0
  455. package/src/components/Focus/Focus.theme.ts +32 -0
  456. package/src/components/Focus/Focus.tsx +201 -0
  457. package/src/components/Focus/index.ts +5 -0
  458. package/src/components/Icon/Icon.stories.tsx +143 -0
  459. package/src/components/Icon/Icon.theme.ts +45 -0
  460. package/src/components/Icon/Icon.tsx +15 -4
  461. package/src/components/Icon/IconBlock.tsx +38 -0
  462. package/src/components/Icon/index.ts +1 -0
  463. package/src/components/Image/Image.stories.tsx +86 -0
  464. package/src/components/Image/Image.tsx +252 -0
  465. package/src/components/Image/index.ts +5 -0
  466. package/src/components/Input/Input.stories.tsx +152 -72
  467. package/src/components/Input/Input.theme.ts +191 -0
  468. package/src/components/Input/Input.tsx +247 -77
  469. package/src/components/Input/SegmentedInput.tsx +454 -0
  470. package/src/components/Input/constants.ts +5 -0
  471. package/src/components/Input/index.ts +2 -0
  472. package/src/components/Link/Link.stories.tsx +10 -8
  473. package/src/components/Link/Link.theme.ts +16 -0
  474. package/src/components/Link/Link.tsx +11 -3
  475. package/src/components/{Lists → List}/List.stories.tsx +42 -45
  476. package/src/components/List/List.theme.ts +47 -0
  477. package/src/components/{Lists → List}/List.tsx +22 -23
  478. package/src/components/{Lists → List}/ListDropIndicator.tsx +7 -8
  479. package/src/components/{Lists → List}/Tree.stories.tsx +15 -14
  480. package/src/components/{Lists → List}/Tree.tsx +0 -1
  481. package/src/components/{Lists → List}/TreeDropIndicator.tsx +6 -6
  482. package/src/components/{Lists → List}/Treegrid.stories.tsx +39 -35
  483. package/src/components/List/Treegrid.theme.ts +35 -0
  484. package/src/components/List/Treegrid.tsx +187 -0
  485. package/src/components/Main/Main.stories.tsx +52 -28
  486. package/src/components/Main/Main.theme.ts +29 -0
  487. package/src/components/Main/Main.tsx +176 -104
  488. package/src/components/Main/constants.ts +6 -0
  489. package/src/components/Main/index.ts +1 -0
  490. package/src/components/MediaPlayer/MediaPlayer.stories.tsx +50 -0
  491. package/src/components/MediaPlayer/MediaPlayer.tsx +182 -0
  492. package/src/components/MediaPlayer/index.ts +5 -0
  493. package/src/components/{Menus → Menu}/ContextMenu.stories.tsx +11 -13
  494. package/src/components/{Menus → Menu}/ContextMenu.tsx +10 -33
  495. package/src/components/{Menus → Menu}/DropdownMenu.stories.tsx +12 -14
  496. package/src/components/{Menus → Menu}/DropdownMenu.tsx +166 -129
  497. package/src/components/Menu/Menu.theme.ts +48 -0
  498. package/src/components/Message/Message.stories.tsx +74 -19
  499. package/src/components/Message/Message.theme.ts +44 -0
  500. package/src/components/Message/Message.tsx +107 -38
  501. package/src/components/Panel/Panel.stories.tsx +67 -0
  502. package/src/components/Panel/Panel.theme.ts +41 -0
  503. package/src/components/Panel/Panel.tsx +121 -0
  504. package/src/components/Panel/index.ts +5 -0
  505. package/src/components/Popover/Popover.stories.tsx +17 -16
  506. package/src/components/Popover/Popover.theme.ts +40 -0
  507. package/src/components/Popover/Popover.tsx +125 -103
  508. package/src/components/ScrollArea/ScrollArea.stories.tsx +220 -33
  509. package/src/components/ScrollArea/ScrollArea.theme.ts +107 -0
  510. package/src/components/ScrollArea/ScrollArea.tsx +98 -79
  511. package/src/components/ScrollArea/index.ts +2 -1
  512. package/src/components/ScrollArea/scrollbar.ts +21 -0
  513. package/src/components/ScrollContainer/ScrollContainer.stories.tsx +91 -0
  514. package/src/components/ScrollContainer/ScrollContainer.tsx +347 -0
  515. package/src/components/ScrollContainer/index.ts +5 -0
  516. package/src/components/Select/Select.stories.tsx +19 -18
  517. package/src/components/Select/Select.theme.ts +55 -0
  518. package/src/components/Select/Select.tsx +40 -39
  519. package/src/components/Separator/Separator.theme.ts +23 -0
  520. package/src/components/Separator/Separator.tsx +5 -8
  521. package/src/components/Skeleton/Skeleton.stories.tsx +51 -0
  522. package/src/components/Skeleton/Skeleton.theme.ts +22 -0
  523. package/src/components/Skeleton/Skeleton.tsx +26 -0
  524. package/src/components/Skeleton/index.ts +5 -0
  525. package/src/components/Splitter/Splitter.stories.tsx +83 -0
  526. package/src/components/Splitter/Splitter.theme.ts +18 -0
  527. package/src/components/Splitter/Splitter.tsx +122 -0
  528. package/src/components/Splitter/index.ts +5 -0
  529. package/src/components/Status/Status.stories.tsx +28 -23
  530. package/src/components/Status/Status.theme.ts +31 -0
  531. package/src/components/Status/Status.tsx +9 -7
  532. package/src/components/Tag/Tag.stories.tsx +16 -14
  533. package/src/components/Tag/Tag.theme.ts +22 -0
  534. package/src/components/Tag/Tag.tsx +3 -8
  535. package/src/components/Toast/Toast.stories.tsx +52 -30
  536. package/src/components/Toast/Toast.theme.ts +56 -0
  537. package/src/components/Toast/Toast.tsx +103 -54
  538. package/src/components/Toolbar/Toolbar.stories.tsx +14 -14
  539. package/src/components/Toolbar/Toolbar.theme.ts +36 -0
  540. package/src/components/Toolbar/Toolbar.tsx +238 -12
  541. package/src/components/Tooltip/Tooltip.stories.tsx +34 -39
  542. package/src/components/Tooltip/Tooltip.theme.ts +19 -0
  543. package/src/components/Tooltip/Tooltip.tsx +60 -56
  544. package/src/components/Tooltip/index.ts +1 -0
  545. package/src/components/Tooltip/tooltipContent.ts +16 -0
  546. package/src/components/index.ts +18 -10
  547. package/src/exemplars/generics.stories.tsx +40 -0
  548. package/src/exemplars/slot.stories.tsx +116 -0
  549. package/src/exemplars/tabster.stories.tsx +127 -0
  550. package/src/exemplars/virtualizer.stories.tsx +136 -0
  551. package/src/hooks/index.ts +1 -0
  552. package/src/hooks/useDensityContext.ts +4 -4
  553. package/src/hooks/useElevationContext.ts +2 -2
  554. package/src/hooks/useSafeArea.ts +3 -2
  555. package/src/hooks/useThemeContext.ts +1 -1
  556. package/src/hooks/useTranslationsContext.ts +1 -1
  557. package/src/hooks/useVisualViewport.ts +4 -4
  558. package/src/index.ts +3 -1
  559. package/src/playground/Controls.stories.tsx +12 -15
  560. package/src/playground/Custom.stories.tsx +22 -56
  561. package/src/playground/Typography.stories.tsx +11 -9
  562. package/src/primitives/Container/Container.stories.tsx +29 -0
  563. package/src/primitives/Container/Container.tsx +21 -0
  564. package/src/primitives/Container/index.ts +5 -0
  565. package/src/{components → primitives}/DensityProvider/DensityProvider.tsx +2 -2
  566. package/src/{components → primitives}/ElevationProvider/ElevationProvider.tsx +1 -1
  567. package/src/primitives/Flex/Flex.stories.tsx +57 -0
  568. package/src/primitives/Flex/Flex.tsx +29 -0
  569. package/src/primitives/Flex/index.ts +5 -0
  570. package/src/primitives/Grid/Grid.stories.tsx +56 -0
  571. package/src/primitives/Grid/Grid.tsx +32 -0
  572. package/src/primitives/Grid/index.ts +5 -0
  573. package/src/primitives/ThemeProvider/ThemeProvider.stories.tsx +31 -0
  574. package/src/{components → primitives}/ThemeProvider/ThemeProvider.tsx +11 -11
  575. package/src/{components → primitives}/ThemeProvider/TranslationsProvider.tsx +1 -16
  576. package/src/primitives/ThemeProvider/index.ts +8 -0
  577. package/src/primitives/index.ts +11 -0
  578. package/src/testing/Loading.tsx +47 -0
  579. package/src/testing/decorators/index.ts +2 -1
  580. package/src/testing/decorators/withLayout.tsx +67 -0
  581. package/src/testing/decorators/withLayoutVariants.tsx +48 -0
  582. package/src/testing/decorators/withTheme.tsx +45 -0
  583. package/src/testing/index.ts +2 -0
  584. package/src/theme/bindTheme.ts +13 -0
  585. package/src/theme/defaultTheme.ts +83 -0
  586. package/src/theme/index.ts +37 -0
  587. package/src/translations.ts +33 -0
  588. package/src/util/index.ts +5 -2
  589. package/src/util/mobile.ts +11 -0
  590. package/src/util/slots.ts +129 -0
  591. package/src/util/usePx.ts +65 -0
  592. package/dist/lib/browser/chunk-BKNGMGOK.mjs +0 -4373
  593. package/dist/lib/browser/chunk-BKNGMGOK.mjs.map +0 -7
  594. package/dist/lib/node-esm/chunk-D2HZS6F4.mjs +0 -4375
  595. package/dist/lib/node-esm/chunk-D2HZS6F4.mjs.map +0 -7
  596. package/dist/types/src/components/AnchoredOverflow/AnchoredOverflow.d.ts +0 -15
  597. package/dist/types/src/components/AnchoredOverflow/AnchoredOverflow.d.ts.map +0 -1
  598. package/dist/types/src/components/AnchoredOverflow/index.d.ts +0 -2
  599. package/dist/types/src/components/AnchoredOverflow/index.d.ts.map +0 -1
  600. package/dist/types/src/components/Buttons/Button.d.ts.map +0 -1
  601. package/dist/types/src/components/Buttons/Button.stories.d.ts +0 -12
  602. package/dist/types/src/components/Buttons/Button.stories.d.ts.map +0 -1
  603. package/dist/types/src/components/Buttons/IconButton.d.ts.map +0 -1
  604. package/dist/types/src/components/Buttons/IconButton.stories.d.ts +0 -22
  605. package/dist/types/src/components/Buttons/IconButton.stories.d.ts.map +0 -1
  606. package/dist/types/src/components/Buttons/Toggle.d.ts.map +0 -1
  607. package/dist/types/src/components/Buttons/Toggle.stories.d.ts +0 -19
  608. package/dist/types/src/components/Buttons/Toggle.stories.d.ts.map +0 -1
  609. package/dist/types/src/components/Buttons/ToggleGroup.d.ts +0 -28
  610. package/dist/types/src/components/Buttons/ToggleGroup.d.ts.map +0 -1
  611. package/dist/types/src/components/Buttons/ToggleGroup.stories.d.ts +0 -39
  612. package/dist/types/src/components/Buttons/ToggleGroup.stories.d.ts.map +0 -1
  613. package/dist/types/src/components/Buttons/index.d.ts.map +0 -1
  614. package/dist/types/src/components/DensityProvider/index.d.ts.map +0 -1
  615. package/dist/types/src/components/Dialogs/AlertDialog.d.ts +0 -31
  616. package/dist/types/src/components/Dialogs/AlertDialog.d.ts.map +0 -1
  617. package/dist/types/src/components/Dialogs/AlertDialog.stories.d.ts +0 -43
  618. package/dist/types/src/components/Dialogs/AlertDialog.stories.d.ts.map +0 -1
  619. package/dist/types/src/components/Dialogs/Dialog.d.ts +0 -31
  620. package/dist/types/src/components/Dialogs/Dialog.d.ts.map +0 -1
  621. package/dist/types/src/components/Dialogs/Dialog.stories.d.ts +0 -48
  622. package/dist/types/src/components/Dialogs/Dialog.stories.d.ts.map +0 -1
  623. package/dist/types/src/components/Dialogs/index.d.ts.map +0 -1
  624. package/dist/types/src/components/ElevationProvider/index.d.ts.map +0 -1
  625. package/dist/types/src/components/Lists/List.d.ts.map +0 -1
  626. package/dist/types/src/components/Lists/List.stories.d.ts +0 -37
  627. package/dist/types/src/components/Lists/List.stories.d.ts.map +0 -1
  628. package/dist/types/src/components/Lists/ListDropIndicator.d.ts.map +0 -1
  629. package/dist/types/src/components/Lists/Tree.d.ts.map +0 -1
  630. package/dist/types/src/components/Lists/Tree.stories.d.ts +0 -41
  631. package/dist/types/src/components/Lists/Tree.stories.d.ts.map +0 -1
  632. package/dist/types/src/components/Lists/TreeDropIndicator.d.ts.map +0 -1
  633. package/dist/types/src/components/Lists/Treegrid.d.ts.map +0 -1
  634. package/dist/types/src/components/Lists/Treegrid.stories.d.ts +0 -10
  635. package/dist/types/src/components/Lists/Treegrid.stories.d.ts.map +0 -1
  636. package/dist/types/src/components/Lists/index.d.ts.map +0 -1
  637. package/dist/types/src/components/Menus/ContextMenu.d.ts.map +0 -1
  638. package/dist/types/src/components/Menus/ContextMenu.stories.d.ts +0 -50
  639. package/dist/types/src/components/Menus/ContextMenu.stories.d.ts.map +0 -1
  640. package/dist/types/src/components/Menus/DropdownMenu.d.ts +0 -112
  641. package/dist/types/src/components/Menus/DropdownMenu.d.ts.map +0 -1
  642. package/dist/types/src/components/Menus/DropdownMenu.stories.d.ts +0 -50
  643. package/dist/types/src/components/Menus/DropdownMenu.stories.d.ts.map +0 -1
  644. package/dist/types/src/components/Menus/index.d.ts.map +0 -1
  645. package/dist/types/src/components/ThemeProvider/ThemeProvider.d.ts.map +0 -1
  646. package/dist/types/src/components/ThemeProvider/TranslationsProvider.d.ts +0 -136
  647. package/dist/types/src/components/ThemeProvider/TranslationsProvider.d.ts.map +0 -1
  648. package/dist/types/src/components/ThemeProvider/index.d.ts +0 -3
  649. package/dist/types/src/components/ThemeProvider/index.d.ts.map +0 -1
  650. package/dist/types/src/testing/decorators/withSurfaceVariantsLayout.d.ts +0 -12
  651. package/dist/types/src/testing/decorators/withSurfaceVariantsLayout.d.ts.map +0 -1
  652. package/dist/types/src/util/ThemedClassName.d.ts +0 -5
  653. package/dist/types/src/util/ThemedClassName.d.ts.map +0 -1
  654. package/dist/types/src/util/hasIosKeyboard.d.ts +0 -2
  655. package/dist/types/src/util/hasIosKeyboard.d.ts.map +0 -1
  656. package/src/components/AnchoredOverflow/AnchoredOverflow.tsx +0 -59
  657. package/src/components/AnchoredOverflow/index.ts +0 -5
  658. package/src/components/Buttons/IconButton.stories.tsx +0 -40
  659. package/src/components/Buttons/Toggle.stories.tsx +0 -34
  660. package/src/components/Buttons/ToggleGroup.tsx +0 -41
  661. package/src/components/Dialogs/AlertDialog.stories.tsx +0 -67
  662. package/src/components/Dialogs/AlertDialog.tsx +0 -172
  663. package/src/components/Dialogs/Dialog.stories.tsx +0 -66
  664. package/src/components/Dialogs/Dialog.tsx +0 -159
  665. package/src/components/Lists/Treegrid.tsx +0 -152
  666. package/src/components/ThemeProvider/index.ts +0 -8
  667. package/src/testing/decorators/withSurfaceVariantsLayout.tsx +0 -51
  668. package/src/testing/decorators/withTheme.ts +0 -25
  669. package/src/util/ThemedClassName.ts +0 -7
  670. package/src/util/hasIosKeyboard.ts +0 -8
  671. /package/dist/types/src/components/{Buttons → Button}/index.d.ts +0 -0
  672. /package/dist/types/src/components/{Dialogs → Dialog}/index.d.ts +0 -0
  673. /package/dist/types/src/components/{Lists → List}/ListDropIndicator.d.ts +0 -0
  674. /package/dist/types/src/components/{Lists → List}/TreeDropIndicator.d.ts +0 -0
  675. /package/dist/types/src/components/{Lists → List}/index.d.ts +0 -0
  676. /package/dist/types/src/components/{Menus → Menu}/index.d.ts +0 -0
  677. /package/dist/types/src/{components → primitives}/DensityProvider/index.d.ts +0 -0
  678. /package/dist/types/src/{components → primitives}/ElevationProvider/index.d.ts +0 -0
  679. /package/src/components/{Buttons → Button}/index.ts +0 -0
  680. /package/src/components/{Dialogs → Dialog}/index.ts +0 -0
  681. /package/src/components/{Lists → List}/index.ts +0 -0
  682. /package/src/components/{Menus → Menu}/index.ts +0 -0
  683. /package/src/{components → primitives}/DensityProvider/index.ts +0 -0
  684. /package/src/{components → primitives}/ElevationProvider/index.ts +0 -0
@@ -1,49 +1,236 @@
1
1
  //
2
- // Copyright 2023 DXOS.org
2
+ // Copyright 2026 DXOS.org
3
3
  //
4
4
 
5
- import '@dxos-theme';
5
+ import React, { PropsWithChildren, useMemo } from 'react';
6
6
 
7
- import React, { type PropsWithChildren } from 'react';
7
+ import { random } from '@dxos/random';
8
+ import { mx } from '@dxos/ui-theme';
9
+ import { ThemedClassName } from '@dxos/ui-types';
8
10
 
9
- import { faker } from '@dxos/random';
10
- import { activeSurface, surfaceShadow } from '@dxos/react-ui-theme';
11
+ import { withLayout, withTheme } from '../../testing';
12
+ import { Column } from '../Column';
13
+ import { Input } from '../Input';
14
+ import { ScrollArea } from './ScrollArea';
11
15
 
12
- import { withTheme } from '../../testing';
16
+ random.seed(123);
13
17
 
14
- import { ScrollArea } from './ScrollArea';
18
+ export default {
19
+ title: 'ui/react-ui-core/components/ScrollArea',
20
+ component: ScrollArea,
21
+ decorators: [withTheme()],
22
+ parameters: {
23
+ layout: 'centered',
24
+ },
25
+ };
26
+
27
+ const List = ({ items = 50 }: { items?: number }) => (
28
+ <div>
29
+ {Array.from({ length: items }).map((_, index) => (
30
+ <div key={index} className='px-1 cursor-pointer hover:bg-hover-surface'>
31
+ Item {index + 1}
32
+ </div>
33
+ ))}
34
+ </div>
35
+ );
36
+
37
+ const Row = ({ items = 50 }: { items?: number }) => (
38
+ <div className='flex gap-2 w-max'>
39
+ {Array.from({ length: items }).map((_, index) => (
40
+ <div
41
+ key={index}
42
+ className='shrink-0 h-20 w-20 cursor-pointer border border-separator rounded-md flex items-center justify-center hover:bg-hover-surface'
43
+ >
44
+ {index + 1}
45
+ </div>
46
+ ))}
47
+ </div>
48
+ );
49
+
50
+ const Container = ({ classNames, children }: ThemedClassName<PropsWithChildren>) => {
51
+ return <div className={mx('border border-separator rounded-md overflow-hidden', classNames)}>{children}</div>;
52
+ };
53
+
54
+ export const Vertical = {
55
+ render: () => (
56
+ <Container classNames='h-72 w-48'>
57
+ <ScrollArea.Root orientation='vertical'>
58
+ <ScrollArea.Viewport>
59
+ <List />
60
+ </ScrollArea.Viewport>
61
+ </ScrollArea.Root>
62
+ </Container>
63
+ ),
64
+ };
65
+
66
+ export const VerticalThin = {
67
+ render: () => (
68
+ <Container classNames='h-72 w-48'>
69
+ <ScrollArea.Root orientation='vertical' thin>
70
+ <ScrollArea.Viewport>
71
+ <List />
72
+ </ScrollArea.Viewport>
73
+ </ScrollArea.Root>
74
+ </Container>
75
+ ),
76
+ };
15
77
 
16
- faker.seed(1234);
78
+ export const VerticalPadded = {
79
+ render: () => (
80
+ <Container classNames='h-72 w-48'>
81
+ <ScrollArea.Root orientation='vertical' centered padding thin>
82
+ <ScrollArea.Viewport>
83
+ <List />
84
+ </ScrollArea.Viewport>
85
+ </ScrollArea.Root>
86
+ </Container>
87
+ ),
88
+ };
89
+
90
+ export const VerticalColumn = {
91
+ render: () => (
92
+ <Container classNames='h-72 w-48'>
93
+ <Column.Root gutter='sm' classNames='h-full overflow-hidden'>
94
+ <ScrollArea.Root orientation='vertical' padding thin>
95
+ <ScrollArea.Viewport classNames='py-2'>
96
+ <Input.Root>
97
+ <Input.TextInput classNames='p-1' />
98
+ </Input.Root>
99
+ <List />
100
+ </ScrollArea.Viewport>
101
+ </ScrollArea.Root>
102
+ </Column.Root>
103
+ </Container>
104
+ ),
105
+ };
106
+
107
+ export const Horizontal = {
108
+ render: () => (
109
+ <Container classNames='w-96'>
110
+ <ScrollArea.Root orientation='horizontal'>
111
+ <ScrollArea.Viewport>
112
+ <Row />
113
+ </ScrollArea.Viewport>
114
+ </ScrollArea.Root>
115
+ </Container>
116
+ ),
117
+ };
118
+
119
+ export const HorizontalThin = {
120
+ render: () => (
121
+ <Container classNames='w-96'>
122
+ <ScrollArea.Root orientation='horizontal' thin>
123
+ <ScrollArea.Viewport>
124
+ <Row />
125
+ </ScrollArea.Viewport>
126
+ </ScrollArea.Root>
127
+ </Container>
128
+ ),
129
+ };
17
130
 
18
- const DefaultStory = ({ children }: PropsWithChildren<{}>) => {
19
- return (
20
- <ScrollArea.Root
21
- classNames={['is-[300px] bs-[400px] rounded', activeSurface, surfaceShadow({ elevation: 'positioned' })]}
22
- >
23
- <ScrollArea.Viewport classNames='rounded p-4'>
24
- <p>{children}</p>
131
+ export const Both = {
132
+ render: () => (
133
+ <Container classNames='w-96 h-96'>
134
+ <ScrollArea.Root orientation='all'>
135
+ <ScrollArea.Viewport>
136
+ <div className='flex flex-col gap-2'>
137
+ {Array.from({ length: 50 }).map((_, rowIndex) => (
138
+ <div key={rowIndex} className='flex gap-2'>
139
+ {Array.from({ length: 50 }).map((_, colIndex) => (
140
+ <div
141
+ key={colIndex}
142
+ className='shrink-0 h-20 w-20 flex items-center justify-center text-sm border border-separator font-mono'
143
+ >
144
+ [{colIndex}:{rowIndex}]
145
+ </div>
146
+ ))}
147
+ </div>
148
+ ))}
149
+ </div>
150
+ </ScrollArea.Viewport>
151
+ </ScrollArea.Root>
152
+ </Container>
153
+ ),
154
+ };
155
+
156
+ export const Fullscreen = {
157
+ decorators: [withTheme(), withLayout({ layout: 'fullscreen' })],
158
+ render: () => (
159
+ <ScrollArea.Root orientation='all' thin>
160
+ <ScrollArea.Viewport>
161
+ <div className='flex flex-col gap-2'>
162
+ {Array.from({ length: 50 }).map((_, rowIndex) => (
163
+ <div key={rowIndex} className='flex gap-2'>
164
+ {Array.from({ length: 50 }).map((_, colIndex) => (
165
+ <div
166
+ key={colIndex}
167
+ className='shrink-0 h-20 w-20 flex items-center justify-center text-sm border border-separator font-mono'
168
+ >
169
+ [{colIndex}:{rowIndex}]
170
+ </div>
171
+ ))}
172
+ </div>
173
+ ))}
174
+ </div>
25
175
  </ScrollArea.Viewport>
26
- <ScrollArea.Scrollbar orientation='horizontal'>
27
- <ScrollArea.Thumb />
28
- </ScrollArea.Scrollbar>
29
- <ScrollArea.Scrollbar orientation='vertical'>
30
- <ScrollArea.Thumb />
31
- </ScrollArea.Scrollbar>
32
- <ScrollArea.Corner />
33
176
  </ScrollArea.Root>
34
- );
177
+ ),
35
178
  };
36
179
 
37
- export default {
38
- title: 'ui/react-ui-core/Scroll area',
39
- component: ScrollArea,
40
- render: DefaultStory,
41
- decorators: [withTheme],
42
- parameters: { chromatic: { disableSnapshot: false } },
43
- };
180
+ export const NestedScrollAreas = {
181
+ decorators: [withTheme(), withLayout({ layout: 'fullscreen' })],
182
+ render: () => {
183
+ const columns = useMemo(
184
+ () =>
185
+ Array.from({ length: 8 }).map((_, index) => ({
186
+ id: String(index),
187
+ count: random.number.int({ min: 5, max: 20 }),
188
+ })),
189
+ [],
190
+ );
44
191
 
45
- export const Default = {
46
- args: {
47
- children: faker.lorem.paragraphs(5),
192
+ return (
193
+ <ScrollArea.Root orientation='horizontal' thin padding>
194
+ <ScrollArea.Viewport classNames='gap-4'>
195
+ {columns.map((column) => (
196
+ <section
197
+ key={column.id}
198
+ className='shrink-0 h-full w-[16rem] grid grid-rows-[min-content_1fr_min-content] border border-separator'
199
+ >
200
+ <header className='flex shrink-0 p-2 border-b border-separator'>Column {column.id}</header>
201
+ <ScrollArea.Root thin orientation='vertical'>
202
+ <ScrollArea.Viewport classNames='py-2 px-2 gap-2'>
203
+ {Array.from({ length: column.count }, (_, i) => (
204
+ <div key={i} role='listitem' className={`shrink-0 p-2 text-sm border border-separator rounded-xs`}>
205
+ Item {i + 1}
206
+ </div>
207
+ ))}
208
+ </ScrollArea.Viewport>
209
+ </ScrollArea.Root>
210
+ <footer className={`p-2 text-subdued border-t border-separator`}>{column.count}</footer>
211
+ </section>
212
+ ))}
213
+ </ScrollArea.Viewport>
214
+ </ScrollArea.Root>
215
+ );
48
216
  },
49
217
  };
218
+
219
+ export const NativeScroll = {
220
+ render: () => (
221
+ <div className='group h-48 w-48 border border-separator'>
222
+ <div
223
+ className={mx(
224
+ 'group h-full w-full overflow-y-scroll',
225
+ '[&::-webkit-scrollbar]:w-3',
226
+ '[&::-webkit-scrollbar-thumb]:rounded-none',
227
+ '[&::-webkit-scrollbar-track]:bg-scrollbar-track',
228
+ '[&::-webkit-scrollbar-thumb]:bg-scrollbar-thumbSubdued',
229
+ 'group-hover:[&::-webkit-scrollbar-thumb]:bg-scrollbar-thumb',
230
+ )}
231
+ >
232
+ <List />
233
+ </div>
234
+ </div>
235
+ ),
236
+ };
@@ -0,0 +1,107 @@
1
+ //
2
+ // Copyright 2026 DXOS.org
3
+ //
4
+
5
+ import { mx } from '@dxos/ui-theme';
6
+ import { type AllowedAxis, type ComponentFunction, type Theme } from '@dxos/ui-types';
7
+
8
+ import { withColumn } from '../Column/withColumn';
9
+
10
+ export type ScrollAreaStyleProps = {
11
+ orientation?: AllowedAxis;
12
+ autoHide?: boolean;
13
+ /** Balance left/right, top/bottom offset with scrollbar. */
14
+ centered?: boolean;
15
+ /** Add default padding. */
16
+ /** TODO(burdon): Integrate with Column.Root padding. */
17
+ padding?: boolean;
18
+ /** Use thin scrollbars. */
19
+ /** TODO(burdon): Density fine/course. */
20
+ thin?: boolean;
21
+ /** Enable snap scrolling. */
22
+ snap?: boolean;
23
+ };
24
+
25
+ const root: ComponentFunction<ScrollAreaStyleProps> = ({ orientation }, ...etc) =>
26
+ mx(
27
+ // Expand
28
+ 'dx-container',
29
+
30
+ orientation === 'vertical' && 'group/scroll-v flex flex-col',
31
+ orientation === 'horizontal' && 'group/scroll-h flex',
32
+ // `flex flex-col` is required (as in `vertical`) so the viewport's `flex-1 min-h-0` can
33
+ // bound its height; without it the viewport grows to content height and only scrolls
34
+ // horizontally (the root clips the vertical overflow instead of scrolling it).
35
+ orientation === 'all' && 'group/scroll-all flex flex-col',
36
+
37
+ // Apply col-span-full only when inside a Column.Root grid (detected via dx-column-root marker).
38
+ '[.dx-column-root_&]:col-span-full',
39
+
40
+ ...etc,
41
+ );
42
+
43
+ /**
44
+ * NOTE: The browser reserves space for scrollbars.
45
+ */
46
+ const viewport: ComponentFunction<ScrollAreaStyleProps> = (
47
+ { orientation, centered, padding, snap, autoHide },
48
+ ...etc
49
+ ) => {
50
+ return mx(
51
+ 'flex-1 min-h-0 w-full',
52
+
53
+ // Reset --dx-col so nested components don't try to grid-position themselves.
54
+ // ScrollArea has already consumed --gutter for padding.
55
+ withColumn.consumed(),
56
+
57
+ orientation === 'vertical' && 'overflow-y-scroll',
58
+ orientation === 'horizontal' && 'flex overflow-x-scroll overscroll-x-contain',
59
+ orientation === 'all' && 'overflow-scroll',
60
+
61
+ '[&::-webkit-scrollbar-corner]:bg-transparent',
62
+ '[&::-webkit-scrollbar-track]:bg-transparent',
63
+ '[&::-webkit-scrollbar-thumb]:rounded-none',
64
+
65
+ '[&::-webkit-scrollbar]:w-[var(--scroll-width)] [&::-webkit-scrollbar]:h-[var(--scroll-width)]',
66
+
67
+ // If contained within Column.Root grid the gutter is set by that component (--gutter CSS variable).
68
+ // If centered, left padding compensates for scrollbar width so content is visually centered.
69
+ (orientation === 'vertical' || orientation === 'all') &&
70
+ (padding
71
+ ? [
72
+ centered ? 'pl-[var(--gutter,calc(var(--scroll-width)+var(--scroll-padding)))]' : 'pl-[var(--gutter,0)]',
73
+ 'pr-[calc(var(--gutter,calc(var(--scroll-width)+var(--scroll-padding)))-var(--scroll-width))]',
74
+ ]
75
+ : centered && 'pl-[var(--scroll-width)]'),
76
+
77
+ (orientation === 'horizontal' || orientation === 'all') &&
78
+ (padding
79
+ ? [centered && 'pt-[calc(var(--scroll-width)+var(--scroll-padding))]', 'pb-[var(--scroll-padding)]']
80
+ : centered && 'pt-[var(--scroll-width)]'),
81
+
82
+ snap && [
83
+ orientation === 'vertical' && 'snap-y snap-mandatory',
84
+ orientation === 'horizontal' && 'snap-x snap-mandatory',
85
+ orientation === 'all' && 'snap-both snap-mandatory',
86
+ ],
87
+
88
+ autoHide
89
+ ? [
90
+ orientation === 'vertical' && 'group-hover/scroll-v:[&::-webkit-scrollbar-thumb]:bg-scrollbar-thumb',
91
+ orientation === 'horizontal' && 'group-hover/scroll-h:[&::-webkit-scrollbar-thumb]:bg-scrollbar-thumb',
92
+ orientation === 'all' && 'group-hover/scroll-all:[&::-webkit-scrollbar-thumb]:bg-scrollbar-thumb',
93
+ ]
94
+ : [
95
+ orientation === 'vertical' && '[&::-webkit-scrollbar-thumb]:bg-scrollbar-thumb',
96
+ orientation === 'horizontal' && '[&::-webkit-scrollbar-thumb]:bg-scrollbar-thumb',
97
+ orientation === 'all' && '[&::-webkit-scrollbar-thumb]:bg-scrollbar-thumb',
98
+ ],
99
+
100
+ ...etc,
101
+ );
102
+ };
103
+
104
+ export const scrollAreaTheme: Theme<ScrollAreaStyleProps> = {
105
+ root,
106
+ viewport,
107
+ };
@@ -1,111 +1,130 @@
1
1
  //
2
- // Copyright 2023 DXOS.org
2
+ // Copyright 2026 DXOS.org
3
3
  //
4
4
 
5
- import {
6
- Corner as ScrollAreaPrimitiveCorner,
7
- type ScrollAreaCornerProps as ScrollAreaPrimitiveCornerProps,
8
- Root as ScrollAreaPrimitiveRoot,
9
- type ScrollAreaProps as ScrollAreaPrimitiveRootProps,
10
- Scrollbar as ScrollAreaPrimitiveScrollbar,
11
- type ScrollAreaScrollbarProps as ScrollAreaPrimitiveScrollbarProps,
12
- Thumb as ScrollAreaPrimitiveThumb,
13
- type ScrollAreaThumbProps as ScrollAreaPrimitiveThumbProps,
14
- Viewport as ScrollAreaPrimitiveViewport,
15
- type ScrollAreaViewportProps as ScrollAreaPrimitiveViewportProps,
16
- } from '@radix-ui/react-scroll-area';
17
- import React, { forwardRef } from 'react';
5
+ import { createContext } from '@radix-ui/react-context';
6
+ import { Primitive } from '@radix-ui/react-primitive';
7
+ import { Slot } from '@radix-ui/react-slot';
8
+ import React, { CSSProperties, useMemo } from 'react';
9
+
10
+ import { type AllowedAxis, type SlottableProps } from '@dxos/ui-types';
18
11
 
19
12
  import { useThemeContext } from '../../hooks';
20
- import { type ThemedClassName } from '../../util';
13
+ import { composableProps, slottable } from '../../util';
14
+ import { scrollbar } from './scrollbar';
21
15
 
22
- type ScrollAreaVariant = 'coarse' | 'fine';
16
+ //
17
+ // Context
18
+ //
23
19
 
24
- type ScrollAreaRootProps = ThemedClassName<ScrollAreaPrimitiveRootProps>;
20
+ const SCROLLAREA_NAME = 'ScrollArea';
25
21
 
26
- /**
27
- * @deprecated
28
- */
29
- const ScrollAreaRoot = forwardRef<HTMLDivElement, ScrollAreaRootProps>(({ classNames, ...props }, forwardedRef) => {
30
- const { tx } = useThemeContext();
31
- return (
32
- <ScrollAreaPrimitiveRoot
33
- {...props}
34
- className={tx('scrollArea.root', 'scroll-area', {}, classNames)}
35
- ref={forwardedRef}
36
- />
37
- );
38
- });
22
+ type ScrollAreaContextType = {
23
+ /** Orientation of scrollbars. */
24
+ orientation: AllowedAxis;
25
+ /** Hide scrollbars when not scrolling. */
26
+ autoHide: boolean;
27
+ /** Apply padding to opposite side of scrollbar. */
28
+ centered?: boolean;
29
+ /** Apply padding. */
30
+ padding: boolean;
31
+ /** Use thin scrollbars. */
32
+ thin: boolean;
33
+ /** Enable snap scrolling. */
34
+ snap: boolean;
35
+ };
39
36
 
40
- type ScrollAreaViewportProps = ThemedClassName<ScrollAreaPrimitiveViewportProps>;
37
+ const [ScrollAreaProvider, useScrollAreaContext] = createContext<ScrollAreaContextType>(SCROLLAREA_NAME);
41
38
 
42
- const ScrollAreaViewport = forwardRef<HTMLDivElement, ScrollAreaViewportProps>(
43
- ({ classNames, ...props }, forwardedRef) => {
44
- const { tx } = useThemeContext();
45
- return (
46
- <ScrollAreaPrimitiveViewport
47
- {...props}
48
- className={tx('scrollArea.viewport', 'scroll-area', {}, classNames)}
49
- ref={forwardedRef}
50
- />
51
- );
52
- },
53
- );
39
+ //
40
+ // Root
41
+ //
42
+
43
+ const SCROLLAREA_ROOT_NAME = 'ScrollArea.Root';
54
44
 
55
- type ScrollAreaScrollbarProps = ThemedClassName<ScrollAreaPrimitiveScrollbarProps> & { variant?: ScrollAreaVariant };
45
+ type ScrollAreaRootProps = Partial<ScrollAreaContextType>;
56
46
 
57
- const ScrollAreaScrollbar = forwardRef<HTMLDivElement, ScrollAreaScrollbarProps>(
58
- ({ classNames, variant = 'fine', ...props }, forwardedRef) => {
47
+ /**
48
+ * ScrollArea provides native scrollbars with custom styling.
49
+ */
50
+ const ScrollAreaRoot = slottable<HTMLDivElement, ScrollAreaRootProps>(
51
+ (
52
+ {
53
+ children,
54
+ asChild,
55
+ orientation = 'vertical',
56
+ autoHide = true,
57
+ centered = false,
58
+ padding = false,
59
+ thin = false,
60
+ snap = false,
61
+ ...props
62
+ },
63
+ forwardedRef,
64
+ ) => {
59
65
  const { tx } = useThemeContext();
66
+ const { className, ...rest } = composableProps(props);
67
+ const Comp = asChild ? Slot : Primitive.div;
68
+ const options = useMemo(
69
+ () => ({ orientation, autoHide, centered, padding, thin, snap }),
70
+ [orientation, autoHide, centered, padding, thin, snap],
71
+ );
72
+
60
73
  return (
61
- <ScrollAreaPrimitiveScrollbar
62
- data-variant={variant}
63
- {...props}
64
- className={tx('scrollArea.scrollbar', 'scroll-area__scrollbar', {}, classNames)}
65
- ref={forwardedRef}
66
- />
74
+ <ScrollAreaProvider {...options}>
75
+ <Comp {...rest} className={tx('scrollArea.root', options, className)} ref={forwardedRef}>
76
+ {children}
77
+ </Comp>
78
+ </ScrollAreaProvider>
67
79
  );
68
80
  },
69
81
  );
70
82
 
71
- type ScrollAreaThumbProps = ThemedClassName<ScrollAreaPrimitiveThumbProps>;
83
+ ScrollAreaRoot.displayName = SCROLLAREA_ROOT_NAME;
72
84
 
73
- const ScrollAreaThumb = forwardRef<HTMLDivElement, ScrollAreaThumbProps>(({ classNames, ...props }, forwardedRef) => {
74
- const { tx } = useThemeContext();
75
- return (
76
- <ScrollAreaPrimitiveThumb
77
- {...props}
78
- className={tx('scrollArea.thumb', 'scroll-area__thumb', {}, classNames)}
79
- ref={forwardedRef}
80
- />
81
- );
82
- });
85
+ //
86
+ // Viewport
87
+ //
88
+
89
+ const SCROLLAREA_VIEWPORT_NAME = 'ScrollArea.Viewport';
83
90
 
84
- type ScrollAreaCornerProps = ThemedClassName<ScrollAreaPrimitiveCornerProps>;
91
+ type ScrollAreaViewportProps = SlottableProps;
85
92
 
86
- const ScrollAreaCorner = forwardRef<HTMLDivElement, ScrollAreaCornerProps>(({ classNames, ...props }, forwardedRef) => {
93
+ const ScrollAreaViewport = slottable<HTMLDivElement>(({ children, asChild, ...props }, forwardedRef) => {
87
94
  const { tx } = useThemeContext();
95
+ const options = useScrollAreaContext(SCROLLAREA_VIEWPORT_NAME);
96
+ const density = options.thin ? scrollbar.md : scrollbar.lg;
97
+ const { className, ...rest } = composableProps(props);
98
+ const { style, ...restWithoutStyle } = rest as { style?: CSSProperties; [key: string]: any };
99
+ const Comp = asChild ? Slot : Primitive.div;
100
+
88
101
  return (
89
- <ScrollAreaPrimitiveCorner
90
- {...props}
91
- className={tx('scrollArea.corner', 'scroll-area__corner', {}, classNames)}
102
+ <Comp
103
+ {...restWithoutStyle}
104
+ style={
105
+ {
106
+ '--scroll-width': `${density.size}px`,
107
+ '--scroll-padding': `${density.padding}px`,
108
+ ...style,
109
+ } as CSSProperties
110
+ }
111
+ className={tx('scrollArea.viewport', options, className)}
92
112
  ref={forwardedRef}
93
- />
113
+ >
114
+ {children}
115
+ </Comp>
94
116
  );
95
117
  });
96
118
 
119
+ ScrollAreaViewport.displayName = SCROLLAREA_VIEWPORT_NAME;
120
+
121
+ //
122
+ // ScrollArea
123
+ //
124
+
97
125
  export const ScrollArea = {
98
126
  Root: ScrollAreaRoot,
99
127
  Viewport: ScrollAreaViewport,
100
- Scrollbar: ScrollAreaScrollbar,
101
- Thumb: ScrollAreaThumb,
102
- Corner: ScrollAreaCorner,
103
128
  };
104
129
 
105
- export type {
106
- ScrollAreaRootProps,
107
- ScrollAreaViewportProps,
108
- ScrollAreaScrollbarProps,
109
- ScrollAreaThumbProps,
110
- ScrollAreaCornerProps,
111
- };
130
+ export type { ScrollAreaRootProps, ScrollAreaViewportProps };
@@ -1,5 +1,6 @@
1
1
  //
2
- // Copyright 2023 DXOS.org
2
+ // Copyright 2026 DXOS.org
3
3
  //
4
4
 
5
5
  export * from './ScrollArea';
6
+ export * from './scrollbar';
@@ -0,0 +1,21 @@
1
+ //
2
+ // Copyright 2026 DXOS.org
3
+ //
4
+
5
+ /**
6
+ * Scrollbar sizing presets keyed by density tier.
7
+ */
8
+ export const scrollbar = {
9
+ sm: {
10
+ size: 2,
11
+ padding: 2,
12
+ },
13
+ md: {
14
+ size: 4,
15
+ padding: 4,
16
+ },
17
+ lg: {
18
+ size: 8,
19
+ padding: 8,
20
+ },
21
+ };