@dxos/react-ui 0.8.4-main.fffef41 → 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 (604) 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 +5259 -67
  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 +91 -70
  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 +5259 -67
  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 +91 -70
  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 +4 -4
  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 +3 -1
  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 +10 -10
  52. package/dist/types/src/components/Button/ToggleGroup.d.ts.map +1 -1
  53. package/dist/types/src/components/Button/ToggleGroup.stories.d.ts +6 -6
  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 +126 -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 +106 -0
  72. package/dist/types/src/components/Carousel/Carousel.d.ts.map +1 -0
  73. package/dist/types/src/components/Carousel/Carousel.stories.d.ts +14 -0
  74. package/dist/types/src/components/Carousel/Carousel.stories.d.ts.map +1 -0
  75. package/dist/types/src/components/Carousel/index.d.ts +2 -0
  76. package/dist/types/src/components/Carousel/index.d.ts.map +1 -0
  77. package/dist/types/src/components/Clipboard/ClipboardProvider.d.ts.map +1 -1
  78. package/dist/types/src/components/Clipboard/CopyButton.d.ts.map +1 -1
  79. package/dist/types/src/components/Clipboard/index.d.ts +10 -1
  80. package/dist/types/src/components/Clipboard/index.d.ts.map +1 -1
  81. package/dist/types/src/components/Column/Column.d.ts +33 -0
  82. package/dist/types/src/components/Column/Column.d.ts.map +1 -0
  83. package/dist/types/src/components/Column/Column.stories.d.ts +25 -0
  84. package/dist/types/src/components/Column/Column.stories.d.ts.map +1 -0
  85. package/dist/types/src/components/Column/Column.theme.d.ts +9 -0
  86. package/dist/types/src/components/Column/Column.theme.d.ts.map +1 -0
  87. package/dist/types/src/components/Column/index.d.ts +3 -0
  88. package/dist/types/src/components/Column/index.d.ts.map +1 -0
  89. package/dist/types/src/components/Column/withColumn.d.ts +21 -0
  90. package/dist/types/src/components/Column/withColumn.d.ts.map +1 -0
  91. package/dist/types/src/components/DatePicker/DatePicker.d.ts +72 -0
  92. package/dist/types/src/components/DatePicker/DatePicker.d.ts.map +1 -0
  93. package/dist/types/src/components/DatePicker/DatePicker.stories.d.ts +10 -0
  94. package/dist/types/src/components/DatePicker/DatePicker.stories.d.ts.map +1 -0
  95. package/dist/types/src/components/DatePicker/DatePicker.theme.d.ts +6 -0
  96. package/dist/types/src/components/DatePicker/DatePicker.theme.d.ts.map +1 -0
  97. package/dist/types/src/components/DatePicker/index.d.ts +2 -0
  98. package/dist/types/src/components/DatePicker/index.d.ts.map +1 -0
  99. package/dist/types/src/components/Dialog/AlertDialog.d.ts +43 -23
  100. package/dist/types/src/components/Dialog/AlertDialog.d.ts.map +1 -1
  101. package/dist/types/src/components/Dialog/AlertDialog.stories.d.ts.map +1 -1
  102. package/dist/types/src/components/Dialog/Dialog.d.ts +58 -23
  103. package/dist/types/src/components/Dialog/Dialog.d.ts.map +1 -1
  104. package/dist/types/src/components/Dialog/Dialog.stories.d.ts +10 -10
  105. package/dist/types/src/components/Dialog/Dialog.stories.d.ts.map +1 -1
  106. package/dist/types/src/components/Dialog/Dialog.theme.d.ts +10 -0
  107. package/dist/types/src/components/Dialog/Dialog.theme.d.ts.map +1 -0
  108. package/dist/types/src/components/ErrorFallback/ErrorFallback.d.ts +11 -0
  109. package/dist/types/src/components/ErrorFallback/ErrorFallback.d.ts.map +1 -0
  110. package/dist/types/src/components/ErrorFallback/ErrorFallback.stories.d.ts +7 -0
  111. package/dist/types/src/components/ErrorFallback/ErrorFallback.stories.d.ts.map +1 -0
  112. package/dist/types/src/components/ErrorFallback/ErrorStack.d.ts +19 -0
  113. package/dist/types/src/components/ErrorFallback/ErrorStack.d.ts.map +1 -0
  114. package/dist/types/src/components/ErrorFallback/ThrowError.d.ts +9 -0
  115. package/dist/types/src/components/ErrorFallback/ThrowError.d.ts.map +1 -0
  116. package/dist/types/src/components/ErrorFallback/index.d.ts +5 -0
  117. package/dist/types/src/components/ErrorFallback/index.d.ts.map +1 -0
  118. package/dist/types/src/components/Focus/Focus.d.ts +36 -0
  119. package/dist/types/src/components/Focus/Focus.d.ts.map +1 -0
  120. package/dist/types/src/components/Focus/Focus.stories.d.ts +9 -0
  121. package/dist/types/src/components/Focus/Focus.stories.d.ts.map +1 -0
  122. package/dist/types/src/components/Focus/Focus.theme.d.ts +6 -0
  123. package/dist/types/src/components/Focus/Focus.theme.d.ts.map +1 -0
  124. package/dist/types/src/components/Focus/index.d.ts +2 -0
  125. package/dist/types/src/components/Focus/index.d.ts.map +1 -0
  126. package/dist/types/src/components/Icon/Icon.d.ts +5 -1
  127. package/dist/types/src/components/Icon/Icon.d.ts.map +1 -1
  128. package/dist/types/src/components/Icon/Icon.stories.d.ts +11 -3
  129. package/dist/types/src/components/Icon/Icon.stories.d.ts.map +1 -1
  130. package/dist/types/src/components/Icon/Icon.theme.d.ts +11 -0
  131. package/dist/types/src/components/Icon/Icon.theme.d.ts.map +1 -0
  132. package/dist/types/src/components/Icon/IconBlock.d.ts +15 -0
  133. package/dist/types/src/components/Icon/IconBlock.d.ts.map +1 -0
  134. package/dist/types/src/components/Icon/index.d.ts +1 -0
  135. package/dist/types/src/components/Icon/index.d.ts.map +1 -1
  136. package/dist/types/src/components/Image/Image.d.ts +21 -0
  137. package/dist/types/src/components/Image/Image.d.ts.map +1 -0
  138. package/dist/types/src/components/Image/Image.stories.d.ts +34 -0
  139. package/dist/types/src/components/Image/Image.stories.d.ts.map +1 -0
  140. package/dist/types/src/components/Image/index.d.ts +2 -0
  141. package/dist/types/src/components/Image/index.d.ts.map +1 -0
  142. package/dist/types/src/components/Input/Input.d.ts +95 -20
  143. package/dist/types/src/components/Input/Input.d.ts.map +1 -1
  144. package/dist/types/src/components/Input/Input.stories.d.ts +21 -10
  145. package/dist/types/src/components/Input/Input.stories.d.ts.map +1 -1
  146. package/dist/types/src/components/Input/Input.theme.d.ts +115 -0
  147. package/dist/types/src/components/Input/Input.theme.d.ts.map +1 -0
  148. package/dist/types/src/components/Input/SegmentedInput.d.ts +79 -0
  149. package/dist/types/src/components/Input/SegmentedInput.d.ts.map +1 -0
  150. package/dist/types/src/components/Input/constants.d.ts +2 -0
  151. package/dist/types/src/components/Input/constants.d.ts.map +1 -0
  152. package/dist/types/src/components/Input/index.d.ts +2 -0
  153. package/dist/types/src/components/Input/index.d.ts.map +1 -1
  154. package/dist/types/src/components/Link/Link.d.ts.map +1 -1
  155. package/dist/types/src/components/Link/Link.stories.d.ts.map +1 -1
  156. package/dist/types/src/components/Link/Link.theme.d.ts +6 -0
  157. package/dist/types/src/components/Link/Link.theme.d.ts.map +1 -0
  158. package/dist/types/src/components/List/List.d.ts +6 -4
  159. package/dist/types/src/components/List/List.d.ts.map +1 -1
  160. package/dist/types/src/components/List/List.stories.d.ts +3 -1
  161. package/dist/types/src/components/List/List.stories.d.ts.map +1 -1
  162. package/dist/types/src/components/List/List.theme.d.ts +7 -0
  163. package/dist/types/src/components/List/List.theme.d.ts.map +1 -0
  164. package/dist/types/src/components/List/ListDropIndicator.d.ts.map +1 -1
  165. package/dist/types/src/components/List/Tree.d.ts +2 -2
  166. package/dist/types/src/components/List/Tree.d.ts.map +1 -1
  167. package/dist/types/src/components/List/Tree.stories.d.ts.map +1 -1
  168. package/dist/types/src/components/List/TreeDropIndicator.d.ts.map +1 -1
  169. package/dist/types/src/components/List/Treegrid.d.ts +6 -10
  170. package/dist/types/src/components/List/Treegrid.d.ts.map +1 -1
  171. package/dist/types/src/components/List/Treegrid.stories.d.ts.map +1 -1
  172. package/dist/types/src/components/List/Treegrid.theme.d.ts +7 -0
  173. package/dist/types/src/components/List/Treegrid.theme.d.ts.map +1 -0
  174. package/dist/types/src/components/Main/Main.d.ts +17 -14
  175. package/dist/types/src/components/Main/Main.d.ts.map +1 -1
  176. package/dist/types/src/components/Main/Main.stories.d.ts +0 -3
  177. package/dist/types/src/components/Main/Main.stories.d.ts.map +1 -1
  178. package/dist/types/src/components/Main/Main.theme.d.ts +20 -0
  179. package/dist/types/src/components/Main/Main.theme.d.ts.map +1 -0
  180. package/dist/types/src/components/Main/constants.d.ts +3 -0
  181. package/dist/types/src/components/Main/constants.d.ts.map +1 -0
  182. package/dist/types/src/components/Main/index.d.ts +1 -0
  183. package/dist/types/src/components/Main/index.d.ts.map +1 -1
  184. package/dist/types/src/components/Main/useSwipeToDismiss.d.ts.map +1 -1
  185. package/dist/types/src/components/MediaPlayer/MediaPlayer.d.ts +47 -0
  186. package/dist/types/src/components/MediaPlayer/MediaPlayer.d.ts.map +1 -0
  187. package/dist/types/src/components/MediaPlayer/MediaPlayer.stories.d.ts +16 -0
  188. package/dist/types/src/components/MediaPlayer/MediaPlayer.stories.d.ts.map +1 -0
  189. package/dist/types/src/components/MediaPlayer/index.d.ts +2 -0
  190. package/dist/types/src/components/MediaPlayer/index.d.ts.map +1 -0
  191. package/dist/types/src/components/{Menus → Menu}/ContextMenu.d.ts +6 -6
  192. package/dist/types/src/components/Menu/ContextMenu.d.ts.map +1 -0
  193. package/dist/types/src/components/Menu/ContextMenu.stories.d.ts.map +1 -0
  194. package/dist/types/src/components/Menu/DropdownMenu.d.ts +121 -0
  195. package/dist/types/src/components/Menu/DropdownMenu.d.ts.map +1 -0
  196. package/dist/types/src/components/Menu/DropdownMenu.stories.d.ts +28 -0
  197. package/dist/types/src/components/Menu/DropdownMenu.stories.d.ts.map +1 -0
  198. package/dist/types/src/components/Menu/Menu.theme.d.ts +7 -0
  199. package/dist/types/src/components/Menu/Menu.theme.d.ts.map +1 -0
  200. package/dist/types/src/components/Menu/index.d.ts.map +1 -0
  201. package/dist/types/src/components/Message/Message.d.ts +4 -4
  202. package/dist/types/src/components/Message/Message.d.ts.map +1 -1
  203. package/dist/types/src/components/Message/Message.stories.d.ts +9 -6
  204. package/dist/types/src/components/Message/Message.stories.d.ts.map +1 -1
  205. package/dist/types/src/components/Message/Message.theme.d.ts +7 -0
  206. package/dist/types/src/components/Message/Message.theme.d.ts.map +1 -0
  207. package/dist/types/src/components/Panel/Panel.d.ts +35 -0
  208. package/dist/types/src/components/Panel/Panel.d.ts.map +1 -0
  209. package/dist/types/src/components/Panel/Panel.stories.d.ts +6 -0
  210. package/dist/types/src/components/Panel/Panel.stories.d.ts.map +1 -0
  211. package/dist/types/src/components/Panel/Panel.theme.d.ts +13 -0
  212. package/dist/types/src/components/Panel/Panel.theme.d.ts.map +1 -0
  213. package/dist/types/src/components/Panel/index.d.ts +2 -0
  214. package/dist/types/src/components/Panel/index.d.ts.map +1 -0
  215. package/dist/types/src/components/Popover/Popover.d.ts +40 -23
  216. package/dist/types/src/components/Popover/Popover.d.ts.map +1 -1
  217. package/dist/types/src/components/Popover/Popover.stories.d.ts.map +1 -1
  218. package/dist/types/src/components/Popover/Popover.theme.d.ts +8 -0
  219. package/dist/types/src/components/Popover/Popover.theme.d.ts.map +1 -0
  220. package/dist/types/src/components/ScrollArea/ScrollArea.d.ts +27 -27
  221. package/dist/types/src/components/ScrollArea/ScrollArea.d.ts.map +1 -1
  222. package/dist/types/src/components/ScrollArea/ScrollArea.stories.d.ts +57 -8
  223. package/dist/types/src/components/ScrollArea/ScrollArea.stories.d.ts.map +1 -1
  224. package/dist/types/src/components/ScrollArea/ScrollArea.theme.d.ts +17 -0
  225. package/dist/types/src/components/ScrollArea/ScrollArea.theme.d.ts.map +1 -0
  226. package/dist/types/src/components/ScrollArea/index.d.ts +1 -0
  227. package/dist/types/src/components/ScrollArea/index.d.ts.map +1 -1
  228. package/dist/types/src/components/ScrollArea/scrollbar.d.ts +18 -0
  229. package/dist/types/src/components/ScrollArea/scrollbar.d.ts.map +1 -0
  230. package/dist/types/src/components/ScrollContainer/ScrollContainer.d.ts +44 -19
  231. package/dist/types/src/components/ScrollContainer/ScrollContainer.d.ts.map +1 -1
  232. package/dist/types/src/components/ScrollContainer/ScrollContainer.stories.d.ts +10 -5
  233. package/dist/types/src/components/ScrollContainer/ScrollContainer.stories.d.ts.map +1 -1
  234. package/dist/types/src/components/Select/Select.d.ts +9 -9
  235. package/dist/types/src/components/Select/Select.d.ts.map +1 -1
  236. package/dist/types/src/components/Select/Select.stories.d.ts +2 -2
  237. package/dist/types/src/components/Select/Select.stories.d.ts.map +1 -1
  238. package/dist/types/src/components/Select/Select.theme.d.ts +6 -0
  239. package/dist/types/src/components/Select/Select.theme.d.ts.map +1 -0
  240. package/dist/types/src/components/Separator/Separator.d.ts +4 -4
  241. package/dist/types/src/components/Separator/Separator.d.ts.map +1 -1
  242. package/dist/types/src/components/Separator/Separator.theme.d.ts +7 -0
  243. package/dist/types/src/components/Separator/Separator.theme.d.ts.map +1 -0
  244. package/dist/types/src/components/Skeleton/Skeleton.d.ts +12 -0
  245. package/dist/types/src/components/Skeleton/Skeleton.d.ts.map +1 -0
  246. package/dist/types/src/components/Skeleton/Skeleton.stories.d.ts +17 -0
  247. package/dist/types/src/components/Skeleton/Skeleton.stories.d.ts.map +1 -0
  248. package/dist/types/src/components/Skeleton/Skeleton.theme.d.ts +6 -0
  249. package/dist/types/src/components/Skeleton/Skeleton.theme.d.ts.map +1 -0
  250. package/dist/types/src/components/Skeleton/index.d.ts +2 -0
  251. package/dist/types/src/components/Skeleton/index.d.ts.map +1 -0
  252. package/dist/types/src/components/Splitter/Splitter.d.ts +32 -0
  253. package/dist/types/src/components/Splitter/Splitter.d.ts.map +1 -0
  254. package/dist/types/src/components/Splitter/Splitter.stories.d.ts +7 -0
  255. package/dist/types/src/components/Splitter/Splitter.stories.d.ts.map +1 -0
  256. package/dist/types/src/components/Splitter/Splitter.theme.d.ts +4 -0
  257. package/dist/types/src/components/Splitter/Splitter.theme.d.ts.map +1 -0
  258. package/dist/types/src/components/Splitter/index.d.ts +2 -0
  259. package/dist/types/src/components/Splitter/index.d.ts.map +1 -0
  260. package/dist/types/src/components/Status/Status.d.ts +3 -4
  261. package/dist/types/src/components/Status/Status.d.ts.map +1 -1
  262. package/dist/types/src/components/Status/Status.stories.d.ts +4 -2
  263. package/dist/types/src/components/Status/Status.stories.d.ts.map +1 -1
  264. package/dist/types/src/components/Status/Status.theme.d.ts +7 -0
  265. package/dist/types/src/components/Status/Status.theme.d.ts.map +1 -0
  266. package/dist/types/src/components/Tag/Tag.d.ts +1 -1
  267. package/dist/types/src/components/Tag/Tag.d.ts.map +1 -1
  268. package/dist/types/src/components/Tag/Tag.stories.d.ts +0 -5
  269. package/dist/types/src/components/Tag/Tag.stories.d.ts.map +1 -1
  270. package/dist/types/src/components/Tag/Tag.theme.d.ts +6 -0
  271. package/dist/types/src/components/Tag/Tag.theme.d.ts.map +1 -0
  272. package/dist/types/src/components/Toast/Toast.d.ts +27 -24
  273. package/dist/types/src/components/Toast/Toast.d.ts.map +1 -1
  274. package/dist/types/src/components/Toast/Toast.stories.d.ts +5 -2
  275. package/dist/types/src/components/Toast/Toast.stories.d.ts.map +1 -1
  276. package/dist/types/src/components/Toast/Toast.theme.d.ts +4 -0
  277. package/dist/types/src/components/Toast/Toast.theme.d.ts.map +1 -0
  278. package/dist/types/src/components/Toolbar/Toolbar.d.ts +52 -22
  279. package/dist/types/src/components/Toolbar/Toolbar.d.ts.map +1 -1
  280. package/dist/types/src/components/Toolbar/Toolbar.stories.d.ts.map +1 -1
  281. package/dist/types/src/components/Toolbar/Toolbar.theme.d.ts +8 -0
  282. package/dist/types/src/components/Toolbar/Toolbar.theme.d.ts.map +1 -0
  283. package/dist/types/src/components/Tooltip/Tooltip.d.ts +16 -16
  284. package/dist/types/src/components/Tooltip/Tooltip.d.ts.map +1 -1
  285. package/dist/types/src/components/Tooltip/Tooltip.stories.d.ts +2 -2
  286. package/dist/types/src/components/Tooltip/Tooltip.stories.d.ts.map +1 -1
  287. package/dist/types/src/components/Tooltip/Tooltip.theme.d.ts +6 -0
  288. package/dist/types/src/components/Tooltip/Tooltip.theme.d.ts.map +1 -0
  289. package/dist/types/src/components/Tooltip/index.d.ts +1 -0
  290. package/dist/types/src/components/Tooltip/index.d.ts.map +1 -1
  291. package/dist/types/src/components/Tooltip/tooltipContent.d.ts +4 -0
  292. package/dist/types/src/components/Tooltip/tooltipContent.d.ts.map +1 -0
  293. package/dist/types/src/components/index.d.ts +14 -6
  294. package/dist/types/src/components/index.d.ts.map +1 -1
  295. package/dist/types/src/exemplars/generics.stories.d.ts +19 -0
  296. package/dist/types/src/exemplars/generics.stories.d.ts.map +1 -0
  297. package/dist/types/src/exemplars/slot.stories.d.ts +15 -0
  298. package/dist/types/src/exemplars/slot.stories.d.ts.map +1 -0
  299. package/dist/types/src/exemplars/tabster.stories.d.ts +8 -0
  300. package/dist/types/src/exemplars/tabster.stories.d.ts.map +1 -0
  301. package/dist/types/src/exemplars/virtualizer.stories.d.ts +11 -0
  302. package/dist/types/src/exemplars/virtualizer.stories.d.ts.map +1 -0
  303. package/dist/types/src/hooks/index.d.ts +1 -0
  304. package/dist/types/src/hooks/index.d.ts.map +1 -1
  305. package/dist/types/src/hooks/useDensityContext.d.ts +2 -2
  306. package/dist/types/src/hooks/useDensityContext.d.ts.map +1 -1
  307. package/dist/types/src/hooks/useElevationContext.d.ts +1 -1
  308. package/dist/types/src/hooks/useElevationContext.d.ts.map +1 -1
  309. package/dist/types/src/hooks/useIconHref.d.ts.map +1 -1
  310. package/dist/types/src/hooks/useSafeArea.d.ts.map +1 -1
  311. package/dist/types/src/hooks/useSafeCollisionPadding.d.ts.map +1 -1
  312. package/dist/types/src/hooks/useTranslationsContext.d.ts +1 -1
  313. package/dist/types/src/hooks/useVisualViewport.d.ts.map +1 -1
  314. package/dist/types/src/index.d.ts +3 -1
  315. package/dist/types/src/index.d.ts.map +1 -1
  316. package/dist/types/src/playground/Controls.stories.d.ts.map +1 -1
  317. package/dist/types/src/playground/Custom.stories.d.ts +1 -1
  318. package/dist/types/src/playground/Custom.stories.d.ts.map +1 -1
  319. package/dist/types/src/playground/Typography.stories.d.ts.map +1 -1
  320. package/dist/types/src/primitives/Container/Container.d.ts +7 -0
  321. package/dist/types/src/primitives/Container/Container.d.ts.map +1 -0
  322. package/dist/types/src/primitives/Container/Container.stories.d.ts +6 -0
  323. package/dist/types/src/primitives/Container/Container.stories.d.ts.map +1 -0
  324. package/dist/types/src/primitives/Container/index.d.ts +2 -0
  325. package/dist/types/src/primitives/Container/index.d.ts.map +1 -0
  326. package/dist/types/src/{components → primitives}/DensityProvider/DensityProvider.d.ts +1 -1
  327. package/dist/types/src/{components → primitives}/DensityProvider/DensityProvider.d.ts.map +1 -1
  328. package/dist/types/src/primitives/DensityProvider/index.d.ts.map +1 -0
  329. package/dist/types/src/{components → primitives}/ElevationProvider/ElevationProvider.d.ts +1 -1
  330. package/dist/types/src/{components → primitives}/ElevationProvider/ElevationProvider.d.ts.map +1 -1
  331. package/dist/types/src/primitives/ElevationProvider/index.d.ts.map +1 -0
  332. package/dist/types/src/primitives/Flex/Flex.d.ts +11 -0
  333. package/dist/types/src/primitives/Flex/Flex.d.ts.map +1 -0
  334. package/dist/types/src/primitives/Flex/Flex.stories.d.ts +8 -0
  335. package/dist/types/src/primitives/Flex/Flex.stories.d.ts.map +1 -0
  336. package/dist/types/src/primitives/Flex/index.d.ts +2 -0
  337. package/dist/types/src/primitives/Flex/index.d.ts.map +1 -0
  338. package/dist/types/src/primitives/Grid/Grid.d.ts +10 -0
  339. package/dist/types/src/primitives/Grid/Grid.d.ts.map +1 -0
  340. package/dist/types/src/primitives/Grid/Grid.stories.d.ts +8 -0
  341. package/dist/types/src/primitives/Grid/Grid.stories.d.ts.map +1 -0
  342. package/dist/types/src/primitives/Grid/index.d.ts +2 -0
  343. package/dist/types/src/primitives/Grid/index.d.ts.map +1 -0
  344. package/dist/types/src/{components → primitives}/ThemeProvider/ThemeProvider.d.ts +3 -3
  345. package/dist/types/src/primitives/ThemeProvider/ThemeProvider.d.ts.map +1 -0
  346. package/dist/types/src/{components/Menus/DropdownMenu.stories.d.ts → primitives/ThemeProvider/ThemeProvider.stories.d.ts} +2 -5
  347. package/dist/types/src/primitives/ThemeProvider/ThemeProvider.stories.d.ts.map +1 -0
  348. package/dist/types/src/primitives/ThemeProvider/TranslationsProvider.d.ts +128 -0
  349. package/dist/types/src/primitives/ThemeProvider/TranslationsProvider.d.ts.map +1 -0
  350. package/dist/types/src/primitives/ThemeProvider/index.d.ts +4 -0
  351. package/dist/types/src/primitives/ThemeProvider/index.d.ts.map +1 -0
  352. package/dist/types/src/primitives/index.d.ts +7 -0
  353. package/dist/types/src/primitives/index.d.ts.map +1 -0
  354. package/dist/types/src/testing/Loading.d.ts +9 -0
  355. package/dist/types/src/testing/Loading.d.ts.map +1 -0
  356. package/dist/types/src/testing/decorators/withLayout.d.ts +3 -3
  357. package/dist/types/src/testing/decorators/withLayout.d.ts.map +1 -1
  358. package/dist/types/src/testing/decorators/withLayoutVariants.d.ts +1 -1
  359. package/dist/types/src/testing/decorators/withLayoutVariants.d.ts.map +1 -1
  360. package/dist/types/src/testing/decorators/withTheme.d.ts +7 -2
  361. package/dist/types/src/testing/decorators/withTheme.d.ts.map +1 -1
  362. package/dist/types/src/testing/index.d.ts +1 -0
  363. package/dist/types/src/testing/index.d.ts.map +1 -1
  364. package/dist/types/src/theme/bindTheme.d.ts +3 -0
  365. package/dist/types/src/theme/bindTheme.d.ts.map +1 -0
  366. package/dist/types/src/theme/defaultTheme.d.ts +4 -0
  367. package/dist/types/src/theme/defaultTheme.d.ts.map +1 -0
  368. package/dist/types/src/theme/index.d.ts +31 -0
  369. package/dist/types/src/theme/index.d.ts.map +1 -0
  370. package/dist/types/src/translations.d.ts +25 -0
  371. package/dist/types/src/translations.d.ts.map +1 -0
  372. package/dist/types/src/util/index.d.ts +3 -3
  373. package/dist/types/src/util/index.d.ts.map +1 -1
  374. package/dist/types/src/util/mobile.d.ts +5 -0
  375. package/dist/types/src/util/mobile.d.ts.map +1 -0
  376. package/dist/types/src/util/slots.d.ts +57 -0
  377. package/dist/types/src/util/slots.d.ts.map +1 -0
  378. package/dist/types/src/util/usePx.d.ts.map +1 -1
  379. package/dist/types/tsconfig.tsbuildinfo +1 -1
  380. package/package.json +54 -40
  381. package/src/components/Avatars/Avatar.stories.tsx +7 -9
  382. package/src/components/Avatars/Avatar.theme.ts +93 -0
  383. package/src/components/Avatars/Avatar.tsx +7 -15
  384. package/src/components/Avatars/AvatarGroup.stories.tsx +2 -3
  385. package/src/components/Breadcrumb/Breadcrumb.stories.tsx +3 -4
  386. package/src/components/Breadcrumb/Breadcrumb.theme.ts +26 -0
  387. package/src/components/Breadcrumb/Breadcrumb.tsx +25 -39
  388. package/src/components/Button/Button.stories.tsx +3 -4
  389. package/src/components/Button/Button.theme.ts +31 -0
  390. package/src/components/Button/Button.tsx +13 -27
  391. package/src/components/Button/IconButton.stories.tsx +58 -8
  392. package/src/components/Button/IconButton.theme.ts +21 -0
  393. package/src/components/Button/IconButton.tsx +10 -6
  394. package/src/components/Button/Toggle.stories.tsx +2 -3
  395. package/src/components/Button/Toggle.tsx +4 -4
  396. package/src/components/Button/ToggleGroup.stories.tsx +2 -3
  397. package/src/components/Button/ToggleGroup.tsx +12 -16
  398. package/src/components/Calendar/Calendar.stories.tsx +43 -0
  399. package/src/components/Calendar/Calendar.theme.ts +74 -0
  400. package/src/components/Calendar/Calendar.tsx +196 -0
  401. package/src/components/Calendar/index.ts +5 -0
  402. package/src/components/Card/Card.stories.tsx +172 -0
  403. package/src/components/Card/Card.theme.ts +93 -0
  404. package/src/components/Card/Card.tsx +485 -0
  405. package/src/components/Card/index.ts +5 -0
  406. package/src/components/Carousel/Carousel.stories.tsx +47 -0
  407. package/src/components/Carousel/Carousel.tsx +373 -0
  408. package/src/components/Carousel/index.ts +5 -0
  409. package/src/components/Clipboard/CopyButton.tsx +10 -11
  410. package/src/components/Column/AUDIT.md +148 -0
  411. package/src/components/Column/Column.stories.tsx +181 -0
  412. package/src/components/Column/Column.theme.ts +48 -0
  413. package/src/components/Column/Column.tsx +166 -0
  414. package/src/components/Column/index.ts +6 -0
  415. package/src/components/Column/withColumn.ts +27 -0
  416. package/src/components/DatePicker/DatePicker.stories.tsx +102 -0
  417. package/src/components/DatePicker/DatePicker.theme.ts +35 -0
  418. package/src/components/DatePicker/DatePicker.tsx +279 -0
  419. package/src/components/DatePicker/index.ts +5 -0
  420. package/src/components/Dialog/AlertDialog.stories.tsx +16 -17
  421. package/src/components/Dialog/AlertDialog.tsx +122 -85
  422. package/src/components/Dialog/Dialog.stories.tsx +138 -28
  423. package/src/components/Dialog/Dialog.theme.ts +61 -0
  424. package/src/components/Dialog/Dialog.tsx +227 -72
  425. package/src/components/ErrorFallback/ErrorFallback.stories.tsx +45 -0
  426. package/src/components/ErrorFallback/ErrorFallback.tsx +76 -0
  427. package/src/components/ErrorFallback/ErrorStack.tsx +120 -0
  428. package/src/components/ErrorFallback/ThrowError.tsx +37 -0
  429. package/src/components/ErrorFallback/index.ts +9 -0
  430. package/src/components/Focus/AUDIT.md +43 -0
  431. package/src/components/Focus/Focus.stories.tsx +230 -0
  432. package/src/components/Focus/Focus.theme.ts +32 -0
  433. package/src/components/Focus/Focus.tsx +201 -0
  434. package/src/components/Focus/index.ts +5 -0
  435. package/src/components/Icon/Icon.stories.tsx +45 -15
  436. package/src/components/Icon/Icon.theme.ts +45 -0
  437. package/src/components/Icon/Icon.tsx +15 -4
  438. package/src/components/Icon/IconBlock.tsx +38 -0
  439. package/src/components/Icon/index.ts +1 -0
  440. package/src/components/Image/Image.stories.tsx +86 -0
  441. package/src/components/Image/Image.tsx +252 -0
  442. package/src/components/Image/index.ts +5 -0
  443. package/src/components/Input/Input.stories.tsx +148 -65
  444. package/src/components/Input/Input.theme.ts +191 -0
  445. package/src/components/Input/Input.tsx +245 -75
  446. package/src/components/Input/SegmentedInput.tsx +454 -0
  447. package/src/components/Input/constants.ts +5 -0
  448. package/src/components/Input/index.ts +2 -0
  449. package/src/components/Link/Link.stories.tsx +2 -3
  450. package/src/components/Link/Link.theme.ts +16 -0
  451. package/src/components/Link/Link.tsx +11 -3
  452. package/src/components/List/List.stories.tsx +31 -35
  453. package/src/components/List/List.theme.ts +47 -0
  454. package/src/components/List/List.tsx +18 -22
  455. package/src/components/List/ListDropIndicator.tsx +7 -8
  456. package/src/components/List/Tree.stories.tsx +6 -7
  457. package/src/components/List/Tree.tsx +0 -1
  458. package/src/components/List/TreeDropIndicator.tsx +6 -6
  459. package/src/components/List/Treegrid.stories.tsx +29 -30
  460. package/src/components/List/Treegrid.theme.ts +35 -0
  461. package/src/components/List/Treegrid.tsx +24 -30
  462. package/src/components/Main/Main.stories.tsx +41 -24
  463. package/src/components/Main/Main.theme.ts +29 -0
  464. package/src/components/Main/Main.tsx +146 -88
  465. package/src/components/Main/constants.ts +6 -0
  466. package/src/components/Main/index.ts +1 -0
  467. package/src/components/MediaPlayer/MediaPlayer.stories.tsx +50 -0
  468. package/src/components/MediaPlayer/MediaPlayer.tsx +182 -0
  469. package/src/components/MediaPlayer/index.ts +5 -0
  470. package/src/components/{Menus → Menu}/ContextMenu.stories.tsx +2 -6
  471. package/src/components/{Menus → Menu}/ContextMenu.tsx +9 -33
  472. package/src/components/{Menus → Menu}/DropdownMenu.stories.tsx +2 -6
  473. package/src/components/{Menus → Menu}/DropdownMenu.tsx +130 -122
  474. package/src/components/Menu/Menu.theme.ts +48 -0
  475. package/src/components/Message/Message.stories.tsx +66 -14
  476. package/src/components/Message/Message.theme.ts +44 -0
  477. package/src/components/Message/Message.tsx +107 -38
  478. package/src/components/Panel/Panel.stories.tsx +67 -0
  479. package/src/components/Panel/Panel.theme.ts +41 -0
  480. package/src/components/Panel/Panel.tsx +121 -0
  481. package/src/components/Panel/index.ts +5 -0
  482. package/src/components/Popover/Popover.stories.tsx +7 -8
  483. package/src/components/Popover/Popover.theme.ts +40 -0
  484. package/src/components/Popover/Popover.tsx +104 -99
  485. package/src/components/ScrollArea/ScrollArea.stories.tsx +221 -36
  486. package/src/components/ScrollArea/ScrollArea.theme.ts +107 -0
  487. package/src/components/ScrollArea/ScrollArea.tsx +98 -79
  488. package/src/components/ScrollArea/index.ts +2 -1
  489. package/src/components/ScrollArea/scrollbar.ts +21 -0
  490. package/src/components/ScrollContainer/ScrollContainer.stories.tsx +47 -25
  491. package/src/components/ScrollContainer/ScrollContainer.tsx +239 -123
  492. package/src/components/Select/Select.stories.tsx +7 -8
  493. package/src/components/Select/Select.theme.ts +55 -0
  494. package/src/components/Select/Select.tsx +35 -35
  495. package/src/components/Separator/Separator.theme.ts +23 -0
  496. package/src/components/Separator/Separator.tsx +5 -8
  497. package/src/components/Skeleton/Skeleton.stories.tsx +51 -0
  498. package/src/components/Skeleton/Skeleton.theme.ts +22 -0
  499. package/src/components/Skeleton/Skeleton.tsx +26 -0
  500. package/src/components/Skeleton/index.ts +5 -0
  501. package/src/components/Splitter/Splitter.stories.tsx +83 -0
  502. package/src/components/Splitter/Splitter.theme.ts +18 -0
  503. package/src/components/Splitter/Splitter.tsx +122 -0
  504. package/src/components/Splitter/index.ts +5 -0
  505. package/src/components/Status/Status.stories.tsx +21 -18
  506. package/src/components/Status/Status.theme.ts +31 -0
  507. package/src/components/Status/Status.tsx +9 -7
  508. package/src/components/Tag/Tag.stories.tsx +6 -12
  509. package/src/components/Tag/Tag.theme.ts +22 -0
  510. package/src/components/Tag/Tag.tsx +3 -8
  511. package/src/components/Toast/Toast.stories.tsx +43 -23
  512. package/src/components/Toast/Toast.theme.ts +56 -0
  513. package/src/components/Toast/Toast.tsx +103 -54
  514. package/src/components/Toolbar/Toolbar.stories.tsx +2 -3
  515. package/src/components/Toolbar/Toolbar.theme.ts +36 -0
  516. package/src/components/Toolbar/Toolbar.tsx +237 -23
  517. package/src/components/Tooltip/Tooltip.stories.tsx +20 -28
  518. package/src/components/Tooltip/Tooltip.theme.ts +19 -0
  519. package/src/components/Tooltip/Tooltip.tsx +58 -55
  520. package/src/components/Tooltip/index.ts +1 -0
  521. package/src/components/Tooltip/tooltipContent.ts +16 -0
  522. package/src/components/index.ts +14 -7
  523. package/src/exemplars/generics.stories.tsx +40 -0
  524. package/src/exemplars/slot.stories.tsx +116 -0
  525. package/src/exemplars/tabster.stories.tsx +127 -0
  526. package/src/exemplars/virtualizer.stories.tsx +136 -0
  527. package/src/hooks/index.ts +1 -0
  528. package/src/hooks/useDensityContext.ts +4 -4
  529. package/src/hooks/useElevationContext.ts +2 -2
  530. package/src/hooks/useThemeContext.ts +1 -1
  531. package/src/hooks/useTranslationsContext.ts +1 -1
  532. package/src/index.ts +3 -1
  533. package/src/playground/Controls.stories.tsx +3 -10
  534. package/src/playground/Custom.stories.tsx +18 -41
  535. package/src/playground/Typography.stories.tsx +3 -3
  536. package/src/primitives/Container/Container.stories.tsx +29 -0
  537. package/src/primitives/Container/Container.tsx +21 -0
  538. package/src/primitives/Container/index.ts +5 -0
  539. package/src/{components → primitives}/DensityProvider/DensityProvider.tsx +2 -2
  540. package/src/{components → primitives}/ElevationProvider/ElevationProvider.tsx +1 -1
  541. package/src/primitives/Flex/Flex.stories.tsx +57 -0
  542. package/src/primitives/Flex/Flex.tsx +29 -0
  543. package/src/primitives/Flex/index.ts +5 -0
  544. package/src/primitives/Grid/Grid.stories.tsx +56 -0
  545. package/src/primitives/Grid/Grid.tsx +32 -0
  546. package/src/primitives/Grid/index.ts +5 -0
  547. package/src/primitives/ThemeProvider/ThemeProvider.stories.tsx +31 -0
  548. package/src/{components → primitives}/ThemeProvider/ThemeProvider.tsx +11 -11
  549. package/src/{components → primitives}/ThemeProvider/TranslationsProvider.tsx +1 -16
  550. package/src/primitives/ThemeProvider/index.ts +8 -0
  551. package/src/primitives/index.ts +11 -0
  552. package/src/testing/Loading.tsx +47 -0
  553. package/src/testing/decorators/withLayout.tsx +32 -21
  554. package/src/testing/decorators/withLayoutVariants.tsx +21 -24
  555. package/src/testing/decorators/withTheme.tsx +34 -20
  556. package/src/testing/index.ts +2 -0
  557. package/src/theme/bindTheme.ts +13 -0
  558. package/src/theme/defaultTheme.ts +83 -0
  559. package/src/theme/index.ts +37 -0
  560. package/src/translations.ts +33 -0
  561. package/src/util/index.ts +4 -3
  562. package/src/util/mobile.ts +11 -0
  563. package/src/util/slots.ts +129 -0
  564. package/src/util/usePx.ts +5 -1
  565. package/dist/lib/browser/chunk-N5GDJTT2.mjs +0 -4707
  566. package/dist/lib/browser/chunk-N5GDJTT2.mjs.map +0 -7
  567. package/dist/lib/node-esm/chunk-SP7VQH72.mjs +0 -4709
  568. package/dist/lib/node-esm/chunk-SP7VQH72.mjs.map +0 -7
  569. package/dist/types/src/components/AnchoredOverflow/AnchoredOverflow.d.ts +0 -15
  570. package/dist/types/src/components/AnchoredOverflow/AnchoredOverflow.d.ts.map +0 -1
  571. package/dist/types/src/components/AnchoredOverflow/index.d.ts +0 -2
  572. package/dist/types/src/components/AnchoredOverflow/index.d.ts.map +0 -1
  573. package/dist/types/src/components/DensityProvider/index.d.ts.map +0 -1
  574. package/dist/types/src/components/ElevationProvider/index.d.ts.map +0 -1
  575. package/dist/types/src/components/Menus/ContextMenu.d.ts.map +0 -1
  576. package/dist/types/src/components/Menus/ContextMenu.stories.d.ts.map +0 -1
  577. package/dist/types/src/components/Menus/DropdownMenu.d.ts +0 -112
  578. package/dist/types/src/components/Menus/DropdownMenu.d.ts.map +0 -1
  579. package/dist/types/src/components/Menus/DropdownMenu.stories.d.ts.map +0 -1
  580. package/dist/types/src/components/Menus/index.d.ts.map +0 -1
  581. package/dist/types/src/components/ThemeProvider/ThemeProvider.d.ts.map +0 -1
  582. package/dist/types/src/components/ThemeProvider/TranslationsProvider.d.ts +0 -136
  583. package/dist/types/src/components/ThemeProvider/TranslationsProvider.d.ts.map +0 -1
  584. package/dist/types/src/components/ThemeProvider/index.d.ts +0 -3
  585. package/dist/types/src/components/ThemeProvider/index.d.ts.map +0 -1
  586. package/dist/types/src/util/ThemedClassName.d.ts +0 -5
  587. package/dist/types/src/util/ThemedClassName.d.ts.map +0 -1
  588. package/dist/types/src/util/domino.d.ts +0 -18
  589. package/dist/types/src/util/domino.d.ts.map +0 -1
  590. package/dist/types/src/util/hasIosKeyboard.d.ts +0 -2
  591. package/dist/types/src/util/hasIosKeyboard.d.ts.map +0 -1
  592. package/src/components/AnchoredOverflow/AnchoredOverflow.tsx +0 -59
  593. package/src/components/AnchoredOverflow/index.ts +0 -5
  594. package/src/components/ThemeProvider/index.ts +0 -8
  595. package/src/util/ThemedClassName.ts +0 -7
  596. package/src/util/domino.ts +0 -53
  597. package/src/util/hasIosKeyboard.ts +0 -8
  598. /package/dist/types/src/components/{Menus → Menu}/ContextMenu.stories.d.ts +0 -0
  599. /package/dist/types/src/components/{Menus → Menu}/index.d.ts +0 -0
  600. /package/dist/types/src/{components → primitives}/DensityProvider/index.d.ts +0 -0
  601. /package/dist/types/src/{components → primitives}/ElevationProvider/index.d.ts +0 -0
  602. /package/src/components/{Menus → Menu}/index.ts +0 -0
  603. /package/src/{components → primitives}/DensityProvider/index.ts +0 -0
  604. /package/src/{components → primitives}/ElevationProvider/index.ts +0 -0
@@ -2,9 +2,19 @@
2
2
  // Copyright 2023 DXOS.org
3
3
  //
4
4
 
5
- import { Root as CheckboxPrimitive, type CheckboxProps as CheckboxPrimitiveProps } from '@radix-ui/react-checkbox';
5
+ import * as CheckboxPrimitive from '@radix-ui/react-checkbox';
6
+ import { createContext } from '@radix-ui/react-context';
6
7
  import { useControllableState } from '@radix-ui/react-use-controllable-state';
7
- import React, { type ComponentPropsWithRef, type ForwardRefExoticComponent, forwardRef, useCallback } from 'react';
8
+ import React, {
9
+ type ComponentPropsWithRef,
10
+ type ForwardRefExoticComponent,
11
+ forwardRef,
12
+ useCallback,
13
+ useEffect,
14
+ useRef,
15
+ useState,
16
+ } from 'react';
17
+ import { useTranslation } from 'react-i18next';
8
18
 
9
19
  import {
10
20
  DescriptionAndValidation as DescriptionAndValidationPrimitive,
@@ -27,60 +37,179 @@ import {
27
37
  type ValidationProps as ValidationPrimitiveProps,
28
38
  useInputContext,
29
39
  } from '@dxos/react-input';
30
- import { mx } from '@dxos/react-ui-theme';
31
- import { type ClassNameValue, type Density, type Elevation, type Size } from '@dxos/react-ui-types';
40
+ import { mx } from '@dxos/ui-theme';
41
+ import { type Density, type Elevation, type Size } from '@dxos/ui-types';
42
+
43
+ import { translationKey } from '#translations';
32
44
 
33
45
  import { useDensityContext, useElevationContext, useThemeContext } from '../../hooks';
34
46
  import { type ThemedClassName } from '../../util';
47
+ import { IconButton, IconButtonProps } from '../Button';
35
48
  import { Icon } from '../Icon';
49
+ import {
50
+ SegmentedDate,
51
+ type SegmentedDateProps,
52
+ SegmentedDateTime,
53
+ type SegmentedDateTimeProps,
54
+ SegmentedTime,
55
+ type SegmentedTimeProps,
56
+ } from './SegmentedInput';
36
57
 
37
58
  type InputVariant = 'default' | 'subdued';
38
59
 
39
60
  type InputSharedProps = Partial<{ density: Density; elevation: Elevation; variant: InputVariant }>;
40
61
 
62
+ //
63
+ // Trigger context — lets a sibling `Input.TriggerIcon` open a picker registered by a field inside
64
+ // the same `Input.Root`. Each registered handler is keyed; the most recent registration wins.
65
+ //
66
+
67
+ type InputTriggerHandler = () => void;
68
+
69
+ type InputTriggerContextValue = {
70
+ registerTrigger: (handler: InputTriggerHandler) => () => void;
71
+ trigger: () => void;
72
+ hasTrigger: boolean;
73
+ };
74
+
75
+ // Default context makes the trigger registry a no-op outside `Input.Root` (consumers opt in).
76
+ const [InputTriggerProvider, useInputTriggerContext] = createContext<InputTriggerContextValue>(INPUT_NAME, {
77
+ registerTrigger: () => () => {},
78
+ trigger: () => {},
79
+ hasTrigger: false,
80
+ });
81
+
82
+ /**
83
+ * Field hook. Pass an opener function; while the field is mounted, an `Input.TriggerIcon`
84
+ * sibling will call this opener on press. Returns a no-op when used outside `Input.Root`.
85
+ */
86
+ const useInputTrigger = (handler: InputTriggerHandler | undefined) => {
87
+ const ctx = useInputTriggerContext('useInputTrigger');
88
+ useEffect(() => {
89
+ if (!handler) {
90
+ return;
91
+ }
92
+ return ctx.registerTrigger(handler);
93
+ }, [ctx, handler]);
94
+ };
95
+
96
+ //
97
+ // Root — wraps the @dxos/react-input primitive root with the trigger registry.
98
+ //
99
+
100
+ const Root = (props: InputRootProps) => {
101
+ const handlerRef = useRef<InputTriggerHandler | null>(null);
102
+ const [hasTrigger, setHasTrigger] = useState(false);
103
+
104
+ const registerTrigger = useCallback((handler: InputTriggerHandler) => {
105
+ handlerRef.current = handler;
106
+ setHasTrigger(true);
107
+ return () => {
108
+ if (handlerRef.current === handler) {
109
+ handlerRef.current = null;
110
+ setHasTrigger(false);
111
+ }
112
+ };
113
+ }, []);
114
+
115
+ const trigger = useCallback(() => {
116
+ handlerRef.current?.();
117
+ }, []);
118
+
119
+ return (
120
+ <InputTriggerProvider registerTrigger={registerTrigger} trigger={trigger} hasTrigger={hasTrigger}>
121
+ <InputRoot {...props} />
122
+ </InputTriggerProvider>
123
+ );
124
+ };
125
+
126
+ Root.displayName = 'Input.Root';
127
+
128
+ //
129
+ // TriggerIcon — sibling button that opens the picker of the registered field. Renders nothing
130
+ // when no field in the surrounding `Input.Root` has registered an opener.
131
+ //
132
+
133
+ // `label` and `icon` have defaults below, so both are optional for callers (e.g. `<Input.TriggerIcon />`).
134
+ // `onClick` is reserved — the trigger always opens the registered picker.
135
+ type TriggerIconProps = Omit<IconButtonProps, 'label' | 'onClick'> & { label?: string };
136
+
137
+ const TriggerIcon = forwardRef<HTMLButtonElement, TriggerIconProps>(
138
+ ({ classNames, icon = 'ph--calendar--regular', 'aria-label': ariaLabel, label, ...props }, forwardedRef) => {
139
+ const { t } = useTranslation(translationKey);
140
+ const ctx = useInputTriggerContext('Input.TriggerIcon');
141
+ if (!ctx.hasTrigger) {
142
+ return null;
143
+ }
144
+
145
+ return (
146
+ <IconButton
147
+ ref={forwardedRef}
148
+ variant='ghost'
149
+ icon={icon}
150
+ iconOnly
151
+ classNames={classNames}
152
+ aria-label={ariaLabel}
153
+ label={label ?? ariaLabel ?? t('trigger-button.label')}
154
+ {...props}
155
+ onClick={ctx.trigger}
156
+ />
157
+ );
158
+ },
159
+ );
160
+
161
+ TriggerIcon.displayName = 'Input.TriggerIcon';
162
+
163
+ //
164
+ // Label
165
+ //
166
+
41
167
  type LabelProps = ThemedClassName<LabelPrimitiveProps> & { srOnly?: boolean };
42
168
 
43
- const Label = forwardRef<HTMLLabelElement, LabelProps>(({ srOnly, classNames, children, ...props }, forwardedRef) => {
169
+ const Label = forwardRef<HTMLLabelElement, LabelProps>(({ classNames, children, srOnly, ...props }, forwardedRef) => {
44
170
  const { tx } = useThemeContext();
45
171
  return (
46
- <LabelPrimitive {...props} className={tx('input.label', 'input__label', { srOnly }, classNames)} ref={forwardedRef}>
172
+ <LabelPrimitive {...props} className={tx('input.label', { srOnly }, classNames)} ref={forwardedRef}>
47
173
  {children}
48
174
  </LabelPrimitive>
49
175
  );
50
176
  });
51
177
 
178
+ Label.displayName = 'Input.Label';
179
+
180
+ //
181
+ // Description
182
+ //
183
+
52
184
  type DescriptionProps = ThemedClassName<DescriptionPrimitiveProps> & { srOnly?: boolean };
53
185
 
54
186
  const Description = forwardRef<HTMLSpanElement, DescriptionProps>(
55
- ({ srOnly, classNames, children, ...props }, forwardedRef) => {
187
+ ({ classNames, children, srOnly, ...props }, forwardedRef) => {
56
188
  const { tx } = useThemeContext();
57
189
  return (
58
- <DescriptionPrimitive
59
- {...props}
60
- className={tx('input.description', 'input__description', { srOnly }, classNames)}
61
- ref={forwardedRef}
62
- >
190
+ <DescriptionPrimitive {...props} className={tx('input.description', { srOnly }, classNames)} ref={forwardedRef}>
63
191
  {children}
64
192
  </DescriptionPrimitive>
65
193
  );
66
194
  },
67
195
  );
68
196
 
197
+ Description.displayName = 'Input.Description';
198
+
199
+ //
200
+ // Validation
201
+ //
202
+
69
203
  type ValidationProps = ThemedClassName<ValidationPrimitiveProps> & { srOnly?: boolean };
70
204
 
71
205
  const Validation = forwardRef<HTMLSpanElement, InputScopedProps<ValidationProps>>(
72
- ({ __inputScope, srOnly, classNames, children, ...props }, forwardedRef) => {
206
+ ({ __inputScope, classNames, children, srOnly, ...props }, forwardedRef) => {
73
207
  const { tx } = useThemeContext();
74
208
  const { validationValence } = useInputContext(INPUT_NAME, __inputScope);
75
209
  return (
76
210
  <ValidationPrimitive
77
211
  {...props}
78
- className={tx(
79
- 'input.validation',
80
- `input__validation-message input__validation-message--${validationValence}`,
81
- { srOnly, validationValence },
82
- classNames,
83
- )}
212
+ className={tx('input.validation', { srOnly, validationValence }, classNames)}
84
213
  ref={forwardedRef}
85
214
  >
86
215
  {children}
@@ -89,15 +218,21 @@ const Validation = forwardRef<HTMLSpanElement, InputScopedProps<ValidationProps>
89
218
  },
90
219
  );
91
220
 
221
+ Validation.displayName = 'Input.Validation';
222
+
223
+ //
224
+ // DescriptionAndValidation
225
+ //
226
+
92
227
  type DescriptionAndValidationProps = ThemedClassName<DescriptionAndValidationPrimitiveProps> & { srOnly?: boolean };
93
228
 
94
229
  const DescriptionAndValidation = forwardRef<HTMLParagraphElement, DescriptionAndValidationProps>(
95
- ({ srOnly, classNames, children, ...props }, forwardedRef) => {
230
+ ({ classNames, children, srOnly, ...props }, forwardedRef) => {
96
231
  const { tx } = useThemeContext();
97
232
  return (
98
233
  <DescriptionAndValidationPrimitive
99
234
  {...props}
100
- className={tx('input.descriptionAndValidation', 'input__description-and-validation', { srOnly }, classNames)}
235
+ className={tx('input.descriptionAndValidation', { srOnly }, classNames)}
101
236
  ref={forwardedRef}
102
237
  >
103
238
  {children}
@@ -106,80 +241,66 @@ const DescriptionAndValidation = forwardRef<HTMLParagraphElement, DescriptionAnd
106
241
  },
107
242
  );
108
243
 
109
- type PinInputProps = InputSharedProps &
110
- Omit<PinInputPrimitiveProps, 'segmentClassName' | 'inputClassName'> & {
111
- segmentClassName?: ClassNameValue;
112
- inputClassName?: ClassNameValue;
113
- };
244
+ DescriptionAndValidation.displayName = 'Input.DescriptionAndValidation';
245
+
246
+ //
247
+ // PinInput
248
+ //
249
+
250
+ type PinInputProps = ThemedClassName<InputSharedProps & Omit<PinInputPrimitiveProps, 'className' | 'segmentClassName'>>;
114
251
 
115
252
  const PinInput = forwardRef<HTMLInputElement, PinInputProps>(
116
- (
117
- {
118
- density: propsDensity,
119
- elevation: propsElevation,
120
- segmentClassName: propsSegmentClassName,
121
- inputClassName,
122
- variant,
123
- ...props
124
- },
125
- forwardedRef,
126
- ) => {
253
+ ({ classNames, density: propsDensity, elevation: propsElevation, ...props }, forwardedRef) => {
127
254
  const { hasIosKeyboard } = useThemeContext();
128
255
  const { tx } = useThemeContext();
129
256
  const density = useDensityContext(propsDensity);
130
257
  const elevation = useElevationContext(propsElevation);
131
258
 
132
- const segmentClassName = useCallback(
133
- ({ focused, validationValence }: Parameters<Exclude<PinInputPrimitiveProps['segmentClassName'], undefined>>[0]) =>
134
- tx(
135
- 'input.input',
136
- 'input--pin-segment',
137
- {
138
- variant: 'static',
139
- focused,
140
- disabled: props.disabled,
141
- density,
142
- elevation,
143
- validationValence,
144
- },
145
- propsSegmentClassName,
146
- ),
147
- [tx, props.disabled, elevation, propsElevation, density],
148
- );
149
259
  return (
150
260
  <PinInputPrimitive
151
261
  {...{
152
262
  ...props,
153
- segmentClassName,
154
263
  ...(props.autoFocus && !hasIosKeyboard && { autoFocus: true }),
155
264
  }}
156
- inputClassName={tx('input.inputWithSegments', 'input input--pin', { disabled: props.disabled }, inputClassName)}
265
+ className={tx('input.inputWithSegments', { disabled: props.disabled }, classNames) || ''}
266
+ segmentClassName={tx('input.segment', { disabled: props.disabled, density, elevation }) || ''}
157
267
  ref={forwardedRef}
158
268
  />
159
269
  );
160
270
  },
161
271
  );
162
272
 
273
+ PinInput.displayName = 'Input.PinInput';
274
+
275
+ //
276
+ // TextInput
163
277
  // TODO(burdon): Implement inline icon within button: e.g., https://www.radix-ui.com/themes/playground#text-field
278
+ //
279
+
280
+ type AutoFillProps = {
281
+ noAutoFill?: boolean;
282
+ };
164
283
 
165
- type TextInputProps = InputSharedProps & ThemedClassName<TextInputPrimitiveProps>;
284
+ type TextInputProps = InputSharedProps & ThemedClassName<TextInputPrimitiveProps> & AutoFillProps;
166
285
 
167
286
  const TextInput = forwardRef<HTMLInputElement, InputScopedProps<TextInputProps>>(
168
- ({ __inputScope, classNames, density: propsDensity, elevation: propsElevation, variant, ...props }, forwardedRef) => {
287
+ (
288
+ { __inputScope, classNames, density: densityProp, elevation: elevationProp, variant, noAutoFill, ...props },
289
+ forwardedRef,
290
+ ) => {
169
291
  const { hasIosKeyboard } = useThemeContext();
170
- const themeContextValue = useThemeContext();
171
- const density = useDensityContext(propsDensity);
172
- const elevation = useElevationContext(propsElevation);
292
+ const { tx } = useThemeContext();
293
+ const density = useDensityContext(densityProp);
294
+ const elevation = useElevationContext(elevationProp);
173
295
  const { validationValence } = useInputContext(INPUT_NAME, __inputScope);
174
296
 
175
- const { tx } = themeContextValue;
176
-
177
297
  return (
178
298
  <TextInputPrimitive
179
299
  {...props}
300
+ // TODO(wittjosiah): Factor out autofill properies.
301
+ {...{ 'data-1p-ignore': noAutoFill }}
180
302
  className={tx(
181
303
  'input.input',
182
- 'input',
183
304
  {
184
305
  variant,
185
306
  disabled: props.disabled,
@@ -196,6 +317,12 @@ const TextInput = forwardRef<HTMLInputElement, InputScopedProps<TextInputProps>>
196
317
  },
197
318
  );
198
319
 
320
+ TextInput.displayName = 'Input.TextInput';
321
+
322
+ //
323
+ // TextArea
324
+ //
325
+
199
326
  type TextAreaProps = InputSharedProps & ThemedClassName<TextAreaPrimitiveProps>;
200
327
 
201
328
  const TextArea = forwardRef<HTMLTextAreaElement, InputScopedProps<TextAreaProps>>(
@@ -210,8 +337,7 @@ const TextArea = forwardRef<HTMLTextAreaElement, InputScopedProps<TextAreaProps>
210
337
  <TextAreaPrimitive
211
338
  {...props}
212
339
  className={tx(
213
- 'input.input',
214
- 'input--text-area',
340
+ 'input.textArea',
215
341
  {
216
342
  variant,
217
343
  disabled: props.disabled,
@@ -219,7 +345,6 @@ const TextArea = forwardRef<HTMLTextAreaElement, InputScopedProps<TextAreaProps>
219
345
  elevation,
220
346
  validationValence,
221
347
  },
222
- '-mbe-labelSpacingBlock',
223
348
  classNames,
224
349
  )}
225
350
  {...(props.autoFocus && !hasIosKeyboard && { autoFocus: true })}
@@ -229,7 +354,13 @@ const TextArea = forwardRef<HTMLTextAreaElement, InputScopedProps<TextAreaProps>
229
354
  },
230
355
  );
231
356
 
232
- type CheckboxProps = ThemedClassName<Omit<CheckboxPrimitiveProps, 'children'>> & {
357
+ TextArea.displayName = 'Input.TextArea';
358
+
359
+ //
360
+ // Checkbox
361
+ //
362
+
363
+ type CheckboxProps = ThemedClassName<Omit<CheckboxPrimitive.CheckboxProps, 'children'>> & {
233
364
  size?: Size;
234
365
  };
235
366
 
@@ -240,11 +371,11 @@ const Checkbox: ForwardRefExoticComponent<CheckboxProps> = forwardRef<
240
371
  (
241
372
  {
242
373
  __inputScope,
374
+ classNames,
243
375
  checked: propsChecked,
244
376
  defaultChecked: propsDefaultChecked,
245
377
  onCheckedChange: propsOnCheckedChange,
246
378
  size,
247
- classNames,
248
379
  ...props
249
380
  },
250
381
  forwardedRef,
@@ -258,7 +389,7 @@ const Checkbox: ForwardRefExoticComponent<CheckboxProps> = forwardRef<
258
389
  const { tx } = useThemeContext();
259
390
 
260
391
  return (
261
- <CheckboxPrimitive
392
+ <CheckboxPrimitive.Root
262
393
  {...{
263
394
  ...props,
264
395
  checked,
@@ -269,19 +400,25 @@ const Checkbox: ForwardRefExoticComponent<CheckboxProps> = forwardRef<
269
400
  'aria-invalid': 'true' as const,
270
401
  'aria-errormessage': errorMessageId,
271
402
  }),
272
- className: tx('input.checkbox', 'input--checkbox', { size }, 'shrink-0', classNames),
403
+ className: tx('input.checkbox', { size }, 'shrink-0', classNames),
273
404
  }}
274
405
  ref={forwardedRef}
275
406
  >
276
407
  <Icon
277
408
  icon={checked === 'indeterminate' ? 'ph--minus--regular' : 'ph--check--regular'}
278
- classNames={tx('input.checkboxIndicator', 'input--checkbox__indicator', { size, checked })}
409
+ classNames={tx('input.checkboxIndicator', { size, checked })}
279
410
  />
280
- </CheckboxPrimitive>
411
+ </CheckboxPrimitive.Root>
281
412
  );
282
413
  },
283
414
  );
284
415
 
416
+ Checkbox.displayName = 'Input.Checkbox';
417
+
418
+ //
419
+ // Switch
420
+ //
421
+
285
422
  type SwitchProps = ThemedClassName<
286
423
  Omit<ComponentPropsWithRef<'input'>, 'children' | 'onChange'> & { onCheckedChange?: (checked: boolean) => void }
287
424
  >;
@@ -290,10 +427,10 @@ const Switch = forwardRef<HTMLInputElement, InputScopedProps<SwitchProps>>(
290
427
  (
291
428
  {
292
429
  __inputScope,
430
+ classNames,
293
431
  checked: propsChecked,
294
432
  defaultChecked: propsDefaultChecked,
295
433
  onCheckedChange: propsOnCheckedChange,
296
- classNames,
297
434
  ...props
298
435
  },
299
436
  forwardedRef,
@@ -327,11 +464,39 @@ const Switch = forwardRef<HTMLInputElement, InputScopedProps<SwitchProps>>(
327
464
  },
328
465
  );
329
466
 
467
+ Switch.displayName = 'Input.Switch';
468
+
469
+ //
470
+ // Date / Time / DateTime — segmented react-aria-components fields with locale-aware ordering,
471
+ // spinbutton semantics, and immutable separators. ISO string API:
472
+ // - Date `YYYY-MM-DD`
473
+ // - Time `HH:mm`
474
+ // - DateTime `YYYY-MM-DDTHH:mm`
475
+ // Pair `Input.Date` or `Input.DateTime` with a sibling `Input.TriggerIcon` inside an
476
+ // `Input.Root` to expose a calendar popover; `Input.Time` has no picker.
477
+ //
478
+
479
+ const Time = SegmentedTime;
480
+ const Date = SegmentedDate;
481
+ const DateTime = SegmentedDateTime;
482
+
483
+ type TimeProps = SegmentedTimeProps;
484
+ type DateInputProps = SegmentedDateProps;
485
+ type DateTimeInputProps = SegmentedDateTimeProps;
486
+
487
+ //
488
+ // Input
489
+ //
490
+
330
491
  export const Input = {
331
- Root: InputRoot,
492
+ Root,
493
+ TriggerIcon,
332
494
  PinInput,
333
495
  TextInput,
334
496
  TextArea,
497
+ Time,
498
+ Date,
499
+ DateTime,
335
500
  Checkbox,
336
501
  Switch,
337
502
  Label,
@@ -340,6 +505,8 @@ export const Input = {
340
505
  DescriptionAndValidation,
341
506
  };
342
507
 
508
+ export { useInputTrigger };
509
+
343
510
  export type {
344
511
  InputVariant,
345
512
  InputRootProps,
@@ -347,6 +514,9 @@ export type {
347
514
  PinInputProps,
348
515
  TextInputProps,
349
516
  TextAreaProps,
517
+ TimeProps,
518
+ DateInputProps,
519
+ DateTimeInputProps,
350
520
  CheckboxProps,
351
521
  SwitchProps,
352
522
  LabelProps,