@dxos/react-ui 0.1.12 → 0.1.14

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 (493) hide show
  1. package/README.md +83 -5
  2. package/dist/lib/browser/index.mjs +2092 -0
  3. package/dist/lib/browser/index.mjs.map +7 -0
  4. package/dist/lib/browser/meta.json +1 -0
  5. package/dist/plugin/node/esbuild-plugin.cjs +469 -0
  6. package/dist/plugin/node/esbuild-plugin.cjs.map +7 -0
  7. package/dist/plugin/node/meta.json +1 -0
  8. package/dist/plugin/node/plugin.cjs +460 -0
  9. package/dist/plugin/node/plugin.cjs.map +7 -0
  10. package/dist/{src → plugin/node}/theme.css +15 -19
  11. package/dist/plugin/node/theme.css.map +7 -0
  12. package/dist/{src → types/src}/components/Alert/Alert.d.ts +7 -2
  13. package/dist/types/src/components/Alert/Alert.d.ts.map +1 -0
  14. package/dist/{src → types/src}/components/Alert/Alert.stories.d.ts +1 -1
  15. package/dist/types/src/components/Alert/Alert.stories.d.ts.map +1 -0
  16. package/dist/{src → types/src}/components/Alert/index.d.ts +0 -0
  17. package/dist/types/src/components/Alert/index.d.ts.map +1 -0
  18. package/dist/types/src/components/AlertDialog/AlertDialog.d.ts +26 -0
  19. package/dist/types/src/components/AlertDialog/AlertDialog.d.ts.map +1 -0
  20. package/dist/{src → types/src}/components/AlertDialog/AlertDialog.stories.d.ts +1 -1
  21. package/dist/types/src/components/AlertDialog/AlertDialog.stories.d.ts.map +1 -0
  22. package/dist/{src → types/src}/components/AlertDialog/index.d.ts +0 -0
  23. package/dist/types/src/components/AlertDialog/index.d.ts.map +1 -0
  24. package/dist/types/src/components/Avatar/Avatar.d.ts +22 -0
  25. package/dist/types/src/components/Avatar/Avatar.d.ts.map +1 -0
  26. package/dist/types/src/components/Avatar/Avatar.stories.d.ts +12 -0
  27. package/dist/types/src/components/Avatar/Avatar.stories.d.ts.map +1 -0
  28. package/dist/{src → types/src}/components/Avatar/index.d.ts +0 -0
  29. package/dist/types/src/components/Avatar/index.d.ts.map +1 -0
  30. package/dist/types/src/components/Button/Button.d.ts +4 -0
  31. package/dist/types/src/components/Button/Button.d.ts.map +1 -0
  32. package/dist/types/src/components/Button/Button.stories.d.ts +13 -0
  33. package/dist/types/src/components/Button/Button.stories.d.ts.map +1 -0
  34. package/dist/{src → types/src}/components/Button/ButtonGroup.d.ts +0 -0
  35. package/dist/types/src/components/Button/ButtonGroup.d.ts.map +1 -0
  36. package/dist/{src → types/src}/components/Button/ButtonProps.d.ts +0 -2
  37. package/dist/types/src/components/Button/ButtonProps.d.ts.map +1 -0
  38. package/dist/{src → types/src}/components/Button/buttonStyles.d.ts +0 -0
  39. package/dist/types/src/components/Button/buttonStyles.d.ts.map +1 -0
  40. package/dist/{src → types/src}/components/Button/index.d.ts +0 -0
  41. package/dist/types/src/components/Button/index.d.ts.map +1 -0
  42. package/dist/{src → types/src}/components/CompoundButton/CompoundButton.d.ts +0 -0
  43. package/dist/types/src/components/CompoundButton/CompoundButton.d.ts.map +1 -0
  44. package/dist/{src → types/src}/components/CompoundButton/CompoundButton.stories.d.ts +0 -0
  45. package/dist/types/src/components/CompoundButton/CompoundButton.stories.d.ts.map +1 -0
  46. package/dist/{src → types/src}/components/CompoundButton/index.d.ts +0 -0
  47. package/dist/types/src/components/CompoundButton/index.d.ts.map +1 -0
  48. package/dist/types/src/components/Dialog/Dialog.d.ts +26 -0
  49. package/dist/types/src/components/Dialog/Dialog.d.ts.map +1 -0
  50. package/dist/{src → types/src}/components/Dialog/Dialog.stories.d.ts +1 -1
  51. package/dist/types/src/components/Dialog/Dialog.stories.d.ts.map +1 -0
  52. package/dist/{src → types/src}/components/Dialog/index.d.ts +0 -0
  53. package/dist/types/src/components/Dialog/index.d.ts.map +1 -0
  54. package/dist/{src → types/src}/components/Group/Group.d.ts +1 -1
  55. package/dist/types/src/components/Group/Group.d.ts.map +1 -0
  56. package/dist/{src → types/src}/components/Group/Group.stories.d.ts +1 -1
  57. package/dist/types/src/components/Group/Group.stories.d.ts.map +1 -0
  58. package/dist/{src → types/src}/components/Group/index.d.ts +0 -0
  59. package/dist/types/src/components/Group/index.d.ts.map +1 -0
  60. package/dist/{src → types/src}/components/Heading/Heading.d.ts +5 -8
  61. package/dist/types/src/components/Heading/Heading.d.ts.map +1 -0
  62. package/dist/{src → types/src}/components/Heading/Heading.stories.d.ts +5 -8
  63. package/dist/{src → types/src}/components/Heading/Heading.stories.d.ts.map +1 -1
  64. package/dist/{src → types/src}/components/Heading/index.d.ts +0 -0
  65. package/dist/types/src/components/Heading/index.d.ts.map +1 -0
  66. package/dist/{src → types/src}/components/Input/BarePinInput.d.ts +17 -16
  67. package/dist/types/src/components/Input/BarePinInput.d.ts.map +1 -0
  68. package/dist/types/src/components/Input/BareTextInput.d.ts +7 -0
  69. package/dist/types/src/components/Input/BareTextInput.d.ts.map +1 -0
  70. package/dist/types/src/components/Input/BareTextareaInput.d.ts +7 -0
  71. package/dist/types/src/components/Input/BareTextareaInput.d.ts.map +1 -0
  72. package/dist/types/src/components/Input/Input.d.ts +4 -0
  73. package/dist/types/src/components/Input/Input.d.ts.map +1 -0
  74. package/dist/{src → types/src}/components/Input/Input.stories.d.ts +1 -1
  75. package/dist/types/src/components/Input/Input.stories.d.ts.map +1 -0
  76. package/dist/types/src/components/Input/InputProps.d.ts +37 -0
  77. package/dist/types/src/components/Input/InputProps.d.ts.map +1 -0
  78. package/dist/{src → types/src}/components/Input/index.d.ts +0 -0
  79. package/dist/types/src/components/Input/index.d.ts.map +1 -0
  80. package/dist/types/src/components/Loading/Loading.d.ts +15 -0
  81. package/dist/types/src/components/Loading/Loading.d.ts.map +1 -0
  82. package/dist/{src → types/src}/components/Loading/Loading.stories.d.ts +1 -3
  83. package/dist/types/src/components/Loading/Loading.stories.d.ts.map +1 -0
  84. package/dist/{src → types/src}/components/Loading/index.d.ts +0 -0
  85. package/dist/types/src/components/Loading/index.d.ts.map +1 -0
  86. package/dist/{src → types/src}/components/NavMenu/NavMenu.d.ts +11 -3
  87. package/dist/types/src/components/NavMenu/NavMenu.d.ts.map +1 -0
  88. package/dist/{src → types/src}/components/NavMenu/NavMenu.stories.d.ts +1 -1
  89. package/dist/types/src/components/NavMenu/NavMenu.stories.d.ts.map +1 -0
  90. package/dist/{src → types/src}/components/NavMenu/index.d.ts +0 -0
  91. package/dist/types/src/components/NavMenu/index.d.ts.map +1 -0
  92. package/dist/types/src/components/Popover/Popover.d.ts +21 -0
  93. package/dist/types/src/components/Popover/Popover.d.ts.map +1 -0
  94. package/dist/{src → types/src}/components/Popover/Popover.stories.d.ts +1 -1
  95. package/dist/types/src/components/Popover/Popover.stories.d.ts.map +1 -0
  96. package/dist/{src → types/src}/components/Popover/index.d.ts +0 -0
  97. package/dist/types/src/components/Popover/index.d.ts.map +1 -0
  98. package/dist/types/src/components/QrCode/QrCode.d.ts +39 -0
  99. package/dist/types/src/components/QrCode/QrCode.d.ts.map +1 -0
  100. package/dist/{src → types/src}/components/QrCode/QrCode.stories.d.ts +1 -1
  101. package/dist/types/src/components/QrCode/QrCode.stories.d.ts.map +1 -0
  102. package/dist/{src → types/src}/components/QrCode/index.d.ts +0 -0
  103. package/dist/types/src/components/QrCode/index.d.ts.map +1 -0
  104. package/dist/types/src/components/Tag/Tag.d.ts +8 -0
  105. package/dist/types/src/components/Tag/Tag.d.ts.map +1 -0
  106. package/dist/{src → types/src}/components/Tag/Tag.stories.d.ts +1 -1
  107. package/dist/types/src/components/Tag/Tag.stories.d.ts.map +1 -0
  108. package/dist/{src → types/src}/components/Tag/index.d.ts +0 -0
  109. package/dist/types/src/components/Tag/index.d.ts.map +1 -0
  110. package/dist/{src → types/src}/components/Toast/Toast.d.ts +10 -1
  111. package/dist/types/src/components/Toast/Toast.d.ts.map +1 -0
  112. package/dist/{src → types/src}/components/Toast/Toast.stories.d.ts +1 -1
  113. package/dist/types/src/components/Toast/Toast.stories.d.ts.map +1 -0
  114. package/dist/{src → types/src}/components/Toast/index.d.ts +0 -0
  115. package/dist/types/src/components/Toast/index.d.ts.map +1 -0
  116. package/dist/types/src/components/Tooltip/Tooltip.d.ts +19 -0
  117. package/dist/types/src/components/Tooltip/Tooltip.d.ts.map +1 -0
  118. package/dist/{src → types/src}/components/Tooltip/Tooltip.stories.d.ts +1 -1
  119. package/dist/types/src/components/Tooltip/Tooltip.stories.d.ts.map +1 -0
  120. package/dist/{src → types/src}/components/Tooltip/index.d.ts +0 -0
  121. package/dist/types/src/components/Tooltip/index.d.ts.map +1 -0
  122. package/dist/{src → types/src}/components/UiProvider/UiProvider.d.ts +1 -1
  123. package/dist/types/src/components/UiProvider/UiProvider.d.ts.map +1 -0
  124. package/dist/{src → types/src}/components/UiProvider/index.d.ts +0 -0
  125. package/dist/types/src/components/UiProvider/index.d.ts.map +1 -0
  126. package/dist/{src → types/src}/components/index.d.ts +0 -0
  127. package/dist/types/src/components/index.d.ts.map +1 -0
  128. package/dist/types/src/config/index.d.ts +2 -0
  129. package/dist/types/src/config/index.d.ts.map +1 -0
  130. package/dist/types/src/config/tailwind.d.ts +7 -0
  131. package/dist/types/src/config/tailwind.d.ts.map +1 -0
  132. package/dist/types/src/esbuild-plugin.d.ts +6 -0
  133. package/dist/types/src/esbuild-plugin.d.ts.map +1 -0
  134. package/dist/{src → types/src}/hooks/index.d.ts +0 -0
  135. package/dist/types/src/hooks/index.d.ts.map +1 -0
  136. package/dist/{src → types/src}/hooks/useForwardedRef.d.ts +0 -0
  137. package/dist/types/src/hooks/useForwardedRef.d.ts.map +1 -0
  138. package/dist/{src → types/src}/hooks/useId.d.ts +0 -0
  139. package/dist/types/src/hooks/useId.d.ts.map +1 -0
  140. package/dist/{src → types/src}/hooks/useIsFocused.d.ts +0 -0
  141. package/dist/types/src/hooks/useIsFocused.d.ts.map +1 -0
  142. package/dist/{src → types/src}/index.d.ts +3 -2
  143. package/dist/types/src/index.d.ts.map +1 -0
  144. package/dist/{src → types/src}/plugin.d.ts +1 -1
  145. package/dist/types/src/plugin.d.ts.map +1 -0
  146. package/dist/types/src/props/Elevation.d.ts +2 -0
  147. package/dist/types/src/props/Elevation.d.ts.map +1 -0
  148. package/dist/types/src/props/MessageValence.d.ts +2 -0
  149. package/dist/types/src/props/MessageValence.d.ts.map +1 -0
  150. package/dist/types/src/props/Size.d.ts +2 -0
  151. package/dist/types/src/props/Size.d.ts.map +1 -0
  152. package/dist/{src → types/src}/props/index.d.ts +0 -0
  153. package/dist/types/src/props/index.d.ts.map +1 -0
  154. package/dist/{src → types/src}/styles/active.d.ts +0 -0
  155. package/dist/types/src/styles/active.d.ts.map +1 -0
  156. package/dist/{src → types/src}/styles/disabled.d.ts +0 -0
  157. package/dist/types/src/styles/disabled.d.ts.map +1 -0
  158. package/dist/{src → types/src}/styles/focus.d.ts +0 -0
  159. package/dist/types/src/styles/focus.d.ts.map +1 -0
  160. package/dist/{src → types/src}/styles/group.d.ts +0 -0
  161. package/dist/types/src/styles/group.d.ts.map +1 -0
  162. package/dist/{src → types/src}/styles/hover.d.ts +0 -0
  163. package/dist/types/src/styles/hover.d.ts.map +1 -0
  164. package/dist/{src → types/src}/styles/index.d.ts +0 -0
  165. package/dist/types/src/styles/index.d.ts.map +1 -0
  166. package/dist/types/src/styles/input.d.ts +11 -0
  167. package/dist/types/src/styles/input.d.ts.map +1 -0
  168. package/dist/{src → types/src}/styles/ornament.d.ts +0 -0
  169. package/dist/types/src/styles/ornament.d.ts.map +1 -0
  170. package/dist/{src → types/src}/styles/shimmer.d.ts +0 -0
  171. package/dist/types/src/styles/shimmer.d.ts.map +1 -0
  172. package/dist/{src → types/src}/styles/size.d.ts +1 -1
  173. package/dist/types/src/styles/size.d.ts.map +1 -0
  174. package/dist/{src → types/src}/styles/text.d.ts +0 -0
  175. package/dist/types/src/styles/text.d.ts.map +1 -0
  176. package/dist/{src → types/src}/styles/valence.d.ts +0 -0
  177. package/dist/types/src/styles/valence.d.ts.map +1 -0
  178. package/dist/{src → types/src}/testing/index.d.ts +0 -0
  179. package/dist/types/src/testing/index.d.ts.map +1 -0
  180. package/dist/{src → types/src}/testing/templateForComponent.d.ts +0 -0
  181. package/dist/types/src/testing/templateForComponent.d.ts.map +1 -0
  182. package/dist/types/src/util/index.d.ts +2 -0
  183. package/dist/types/src/util/index.d.ts.map +1 -0
  184. package/dist/types/src/util/mx.d.ts +2 -0
  185. package/dist/types/src/util/mx.d.ts.map +1 -0
  186. package/dist/types/src/util/withLogical.d.ts +3 -0
  187. package/dist/types/src/util/withLogical.d.ts.map +1 -0
  188. package/package.json +9 -5
  189. package/plugin.d.ts +1 -1
  190. package/plugin.js +1 -1
  191. package/src/components/Alert/Alert.tsx +12 -6
  192. package/src/components/AlertDialog/AlertDialog.tsx +31 -11
  193. package/src/components/Avatar/Avatar.tsx +35 -13
  194. package/src/components/Button/Button.tsx +11 -13
  195. package/src/components/Button/ButtonGroup.tsx +3 -2
  196. package/src/components/Button/ButtonProps.ts +0 -2
  197. package/src/components/Button/buttonStyles.ts +4 -7
  198. package/src/components/CompoundButton/CompoundButton.tsx +3 -3
  199. package/src/components/Dialog/Dialog.tsx +47 -14
  200. package/src/components/Group/Group.tsx +10 -5
  201. package/src/components/Heading/Heading.tsx +5 -4
  202. package/src/components/Input/BarePinInput.tsx +18 -13
  203. package/src/components/Input/BareTextInput.tsx +18 -15
  204. package/src/components/Input/BareTextareaInput.tsx +17 -16
  205. package/src/components/Input/Input.tsx +17 -23
  206. package/src/components/Input/InputProps.ts +23 -11
  207. package/src/components/Loading/Loading.tsx +18 -8
  208. package/src/components/NavMenu/NavMenu.stories.tsx +1 -1
  209. package/src/components/NavMenu/NavMenu.tsx +42 -19
  210. package/src/components/Popover/Popover.stories.tsx +7 -3
  211. package/src/components/Popover/Popover.tsx +54 -20
  212. package/src/components/QrCode/QrCode.tsx +61 -49
  213. package/src/components/Tag/Tag.tsx +6 -6
  214. package/src/components/Toast/Toast.tsx +48 -26
  215. package/src/components/Tooltip/Tooltip.tsx +32 -13
  216. package/src/components/UiProvider/UiProvider.tsx +3 -3
  217. package/src/config/index.ts +5 -0
  218. package/src/config/tailwind.ts +250 -0
  219. package/src/esbuild-plugin.ts +42 -0
  220. package/src/index.ts +3 -2
  221. package/src/plugin.ts +5 -240
  222. package/src/styles/active.ts +2 -2
  223. package/src/styles/group.ts +2 -3
  224. package/src/styles/input.ts +7 -26
  225. package/src/styles/size.ts +3 -4
  226. package/src/typings.d.ts +0 -1
  227. package/src/util/index.ts +5 -0
  228. package/src/util/mx.ts +28 -0
  229. package/src/util/withLogical.ts +103 -0
  230. package/dist/src/components/Alert/Alert.d.ts.map +0 -1
  231. package/dist/src/components/Alert/Alert.js +0 -21
  232. package/dist/src/components/Alert/Alert.js.map +0 -1
  233. package/dist/src/components/Alert/Alert.stories.d.ts.map +0 -1
  234. package/dist/src/components/Alert/Alert.stories.js +0 -30
  235. package/dist/src/components/Alert/Alert.stories.js.map +0 -1
  236. package/dist/src/components/Alert/index.d.ts.map +0 -1
  237. package/dist/src/components/Alert/index.js +0 -21
  238. package/dist/src/components/Alert/index.js.map +0 -1
  239. package/dist/src/components/AlertDialog/AlertDialog.d.ts +0 -17
  240. package/dist/src/components/AlertDialog/AlertDialog.d.ts.map +0 -1
  241. package/dist/src/components/AlertDialog/AlertDialog.js +0 -65
  242. package/dist/src/components/AlertDialog/AlertDialog.js.map +0 -1
  243. package/dist/src/components/AlertDialog/AlertDialog.stories.d.ts.map +0 -1
  244. package/dist/src/components/AlertDialog/AlertDialog.stories.js +0 -37
  245. package/dist/src/components/AlertDialog/AlertDialog.stories.js.map +0 -1
  246. package/dist/src/components/AlertDialog/index.d.ts.map +0 -1
  247. package/dist/src/components/AlertDialog/index.js +0 -21
  248. package/dist/src/components/AlertDialog/index.js.map +0 -1
  249. package/dist/src/components/Avatar/Avatar.d.ts +0 -13
  250. package/dist/src/components/Avatar/Avatar.d.ts.map +0 -1
  251. package/dist/src/components/Avatar/Avatar.js +0 -53
  252. package/dist/src/components/Avatar/Avatar.js.map +0 -1
  253. package/dist/src/components/Avatar/Avatar.stories.d.ts +0 -10
  254. package/dist/src/components/Avatar/Avatar.stories.d.ts.map +0 -1
  255. package/dist/src/components/Avatar/Avatar.stories.js +0 -30
  256. package/dist/src/components/Avatar/Avatar.stories.js.map +0 -1
  257. package/dist/src/components/Avatar/index.d.ts.map +0 -1
  258. package/dist/src/components/Avatar/index.js +0 -21
  259. package/dist/src/components/Avatar/index.js.map +0 -1
  260. package/dist/src/components/Button/Button.d.ts +0 -4
  261. package/dist/src/components/Button/Button.d.ts.map +0 -1
  262. package/dist/src/components/Button/Button.js +0 -37
  263. package/dist/src/components/Button/Button.js.map +0 -1
  264. package/dist/src/components/Button/Button.stories.d.ts +0 -13
  265. package/dist/src/components/Button/Button.stories.d.ts.map +0 -1
  266. package/dist/src/components/Button/Button.stories.js +0 -33
  267. package/dist/src/components/Button/Button.stories.js.map +0 -1
  268. package/dist/src/components/Button/ButtonGroup.d.ts.map +0 -1
  269. package/dist/src/components/Button/ButtonGroup.js +0 -16
  270. package/dist/src/components/Button/ButtonGroup.js.map +0 -1
  271. package/dist/src/components/Button/ButtonProps.d.ts.map +0 -1
  272. package/dist/src/components/Button/ButtonProps.js +0 -6
  273. package/dist/src/components/Button/ButtonProps.js.map +0 -1
  274. package/dist/src/components/Button/buttonStyles.d.ts.map +0 -1
  275. package/dist/src/components/Button/buttonStyles.js +0 -26
  276. package/dist/src/components/Button/buttonStyles.js.map +0 -1
  277. package/dist/src/components/Button/index.d.ts.map +0 -1
  278. package/dist/src/components/Button/index.js +0 -24
  279. package/dist/src/components/Button/index.js.map +0 -1
  280. package/dist/src/components/CompoundButton/CompoundButton.d.ts.map +0 -1
  281. package/dist/src/components/CompoundButton/CompoundButton.js +0 -27
  282. package/dist/src/components/CompoundButton/CompoundButton.js.map +0 -1
  283. package/dist/src/components/CompoundButton/CompoundButton.stories.d.ts.map +0 -1
  284. package/dist/src/components/CompoundButton/CompoundButton.stories.js +0 -40
  285. package/dist/src/components/CompoundButton/CompoundButton.stories.js.map +0 -1
  286. package/dist/src/components/CompoundButton/index.d.ts.map +0 -1
  287. package/dist/src/components/CompoundButton/index.js +0 -21
  288. package/dist/src/components/CompoundButton/index.js.map +0 -1
  289. package/dist/src/components/Dialog/Dialog.d.ts +0 -14
  290. package/dist/src/components/Dialog/Dialog.d.ts.map +0 -1
  291. package/dist/src/components/Dialog/Dialog.js +0 -59
  292. package/dist/src/components/Dialog/Dialog.js.map +0 -1
  293. package/dist/src/components/Dialog/Dialog.stories.d.ts.map +0 -1
  294. package/dist/src/components/Dialog/Dialog.stories.js +0 -37
  295. package/dist/src/components/Dialog/Dialog.stories.js.map +0 -1
  296. package/dist/src/components/Dialog/index.d.ts.map +0 -1
  297. package/dist/src/components/Dialog/index.js +0 -21
  298. package/dist/src/components/Dialog/index.js.map +0 -1
  299. package/dist/src/components/Group/Group.d.ts.map +0 -1
  300. package/dist/src/components/Group/Group.js +0 -22
  301. package/dist/src/components/Group/Group.js.map +0 -1
  302. package/dist/src/components/Group/Group.stories.d.ts.map +0 -1
  303. package/dist/src/components/Group/Group.stories.js +0 -27
  304. package/dist/src/components/Group/Group.stories.js.map +0 -1
  305. package/dist/src/components/Group/index.d.ts.map +0 -1
  306. package/dist/src/components/Group/index.js +0 -21
  307. package/dist/src/components/Group/index.js.map +0 -1
  308. package/dist/src/components/Heading/Heading.d.ts.map +0 -1
  309. package/dist/src/components/Heading/Heading.js +0 -28
  310. package/dist/src/components/Heading/Heading.js.map +0 -1
  311. package/dist/src/components/Heading/Heading.stories.js +0 -34
  312. package/dist/src/components/Heading/Heading.stories.js.map +0 -1
  313. package/dist/src/components/Heading/index.d.ts.map +0 -1
  314. package/dist/src/components/Heading/index.js +0 -21
  315. package/dist/src/components/Heading/index.js.map +0 -1
  316. package/dist/src/components/Input/BarePinInput.d.ts.map +0 -1
  317. package/dist/src/components/Input/BarePinInput.js +0 -62
  318. package/dist/src/components/Input/BarePinInput.js.map +0 -1
  319. package/dist/src/components/Input/BareTextInput.d.ts +0 -5
  320. package/dist/src/components/Input/BareTextInput.d.ts.map +0 -1
  321. package/dist/src/components/Input/BareTextInput.js +0 -29
  322. package/dist/src/components/Input/BareTextInput.js.map +0 -1
  323. package/dist/src/components/Input/BareTextareaInput.d.ts +0 -5
  324. package/dist/src/components/Input/BareTextareaInput.d.ts.map +0 -1
  325. package/dist/src/components/Input/BareTextareaInput.js +0 -23
  326. package/dist/src/components/Input/BareTextareaInput.js.map +0 -1
  327. package/dist/src/components/Input/Input.d.ts +0 -4
  328. package/dist/src/components/Input/Input.d.ts.map +0 -1
  329. package/dist/src/components/Input/Input.js +0 -87
  330. package/dist/src/components/Input/Input.js.map +0 -1
  331. package/dist/src/components/Input/Input.stories.d.ts.map +0 -1
  332. package/dist/src/components/Input/Input.stories.js +0 -86
  333. package/dist/src/components/Input/Input.stories.js.map +0 -1
  334. package/dist/src/components/Input/InputProps.d.ts +0 -26
  335. package/dist/src/components/Input/InputProps.d.ts.map +0 -1
  336. package/dist/src/components/Input/InputProps.js +0 -6
  337. package/dist/src/components/Input/InputProps.js.map +0 -1
  338. package/dist/src/components/Input/index.d.ts.map +0 -1
  339. package/dist/src/components/Input/index.js +0 -21
  340. package/dist/src/components/Input/index.js.map +0 -1
  341. package/dist/src/components/Loading/Loading.d.ts +0 -12
  342. package/dist/src/components/Loading/Loading.d.ts.map +0 -1
  343. package/dist/src/components/Loading/Loading.js +0 -29
  344. package/dist/src/components/Loading/Loading.js.map +0 -1
  345. package/dist/src/components/Loading/Loading.stories.d.ts.map +0 -1
  346. package/dist/src/components/Loading/Loading.stories.js +0 -39
  347. package/dist/src/components/Loading/Loading.stories.js.map +0 -1
  348. package/dist/src/components/Loading/index.d.ts.map +0 -1
  349. package/dist/src/components/Loading/index.js +0 -21
  350. package/dist/src/components/Loading/index.js.map +0 -1
  351. package/dist/src/components/NavMenu/NavMenu.d.ts.map +0 -1
  352. package/dist/src/components/NavMenu/NavMenu.js +0 -71
  353. package/dist/src/components/NavMenu/NavMenu.js.map +0 -1
  354. package/dist/src/components/NavMenu/NavMenu.stories.d.ts.map +0 -1
  355. package/dist/src/components/NavMenu/NavMenu.stories.js +0 -50
  356. package/dist/src/components/NavMenu/NavMenu.stories.js.map +0 -1
  357. package/dist/src/components/NavMenu/index.d.ts.map +0 -1
  358. package/dist/src/components/NavMenu/index.js +0 -21
  359. package/dist/src/components/NavMenu/index.js.map +0 -1
  360. package/dist/src/components/Popover/Popover.d.ts +0 -11
  361. package/dist/src/components/Popover/Popover.d.ts.map +0 -1
  362. package/dist/src/components/Popover/Popover.js +0 -56
  363. package/dist/src/components/Popover/Popover.js.map +0 -1
  364. package/dist/src/components/Popover/Popover.stories.d.ts.map +0 -1
  365. package/dist/src/components/Popover/Popover.stories.js +0 -39
  366. package/dist/src/components/Popover/Popover.stories.js.map +0 -1
  367. package/dist/src/components/Popover/index.d.ts.map +0 -1
  368. package/dist/src/components/Popover/index.js +0 -21
  369. package/dist/src/components/Popover/index.js.map +0 -1
  370. package/dist/src/components/QrCode/QrCode.d.ts +0 -22
  371. package/dist/src/components/QrCode/QrCode.d.ts.map +0 -1
  372. package/dist/src/components/QrCode/QrCode.js +0 -79
  373. package/dist/src/components/QrCode/QrCode.js.map +0 -1
  374. package/dist/src/components/QrCode/QrCode.stories.d.ts.map +0 -1
  375. package/dist/src/components/QrCode/QrCode.stories.js +0 -42
  376. package/dist/src/components/QrCode/QrCode.stories.js.map +0 -1
  377. package/dist/src/components/QrCode/index.d.ts.map +0 -1
  378. package/dist/src/components/QrCode/index.js +0 -21
  379. package/dist/src/components/QrCode/index.js.map +0 -1
  380. package/dist/src/components/Tag/Tag.d.ts +0 -8
  381. package/dist/src/components/Tag/Tag.d.ts.map +0 -1
  382. package/dist/src/components/Tag/Tag.js +0 -23
  383. package/dist/src/components/Tag/Tag.js.map +0 -1
  384. package/dist/src/components/Tag/Tag.stories.d.ts.map +0 -1
  385. package/dist/src/components/Tag/Tag.stories.js +0 -24
  386. package/dist/src/components/Tag/Tag.stories.js.map +0 -1
  387. package/dist/src/components/Tag/index.d.ts.map +0 -1
  388. package/dist/src/components/Tag/index.js +0 -21
  389. package/dist/src/components/Tag/index.js.map +0 -1
  390. package/dist/src/components/Toast/Toast.d.ts.map +0 -1
  391. package/dist/src/components/Toast/Toast.js +0 -54
  392. package/dist/src/components/Toast/Toast.js.map +0 -1
  393. package/dist/src/components/Toast/Toast.stories.d.ts.map +0 -1
  394. package/dist/src/components/Toast/Toast.stories.js +0 -32
  395. package/dist/src/components/Toast/Toast.stories.js.map +0 -1
  396. package/dist/src/components/Toast/index.d.ts.map +0 -1
  397. package/dist/src/components/Toast/index.js +0 -21
  398. package/dist/src/components/Toast/index.js.map +0 -1
  399. package/dist/src/components/Tooltip/Tooltip.d.ts +0 -12
  400. package/dist/src/components/Tooltip/Tooltip.d.ts.map +0 -1
  401. package/dist/src/components/Tooltip/Tooltip.js +0 -50
  402. package/dist/src/components/Tooltip/Tooltip.js.map +0 -1
  403. package/dist/src/components/Tooltip/Tooltip.stories.d.ts.map +0 -1
  404. package/dist/src/components/Tooltip/Tooltip.stories.js +0 -30
  405. package/dist/src/components/Tooltip/Tooltip.stories.js.map +0 -1
  406. package/dist/src/components/Tooltip/index.d.ts.map +0 -1
  407. package/dist/src/components/Tooltip/index.js +0 -21
  408. package/dist/src/components/Tooltip/index.js.map +0 -1
  409. package/dist/src/components/UiProvider/UiProvider.d.ts.map +0 -1
  410. package/dist/src/components/UiProvider/UiProvider.js +0 -21
  411. package/dist/src/components/UiProvider/UiProvider.js.map +0 -1
  412. package/dist/src/components/UiProvider/index.d.ts.map +0 -1
  413. package/dist/src/components/UiProvider/index.js +0 -21
  414. package/dist/src/components/UiProvider/index.js.map +0 -1
  415. package/dist/src/components/index.d.ts.map +0 -1
  416. package/dist/src/components/index.js +0 -37
  417. package/dist/src/components/index.js.map +0 -1
  418. package/dist/src/hooks/index.d.ts.map +0 -1
  419. package/dist/src/hooks/index.js +0 -23
  420. package/dist/src/hooks/index.js.map +0 -1
  421. package/dist/src/hooks/useForwardedRef.d.ts.map +0 -1
  422. package/dist/src/hooks/useForwardedRef.js +0 -24
  423. package/dist/src/hooks/useForwardedRef.js.map +0 -1
  424. package/dist/src/hooks/useId.d.ts.map +0 -1
  425. package/dist/src/hooks/useId.js +0 -20
  426. package/dist/src/hooks/useId.js.map +0 -1
  427. package/dist/src/hooks/useIsFocused.d.ts.map +0 -1
  428. package/dist/src/hooks/useIsFocused.js +0 -34
  429. package/dist/src/hooks/useIsFocused.js.map +0 -1
  430. package/dist/src/index.d.ts.map +0 -1
  431. package/dist/src/index.js +0 -24
  432. package/dist/src/index.js.map +0 -1
  433. package/dist/src/plugin.d.ts.map +0 -1
  434. package/dist/src/plugin.js +0 -276
  435. package/dist/src/plugin.js.map +0 -1
  436. package/dist/src/props/Elevation.d.ts +0 -2
  437. package/dist/src/props/Elevation.d.ts.map +0 -1
  438. package/dist/src/props/Elevation.js +0 -6
  439. package/dist/src/props/Elevation.js.map +0 -1
  440. package/dist/src/props/MessageValence.d.ts +0 -2
  441. package/dist/src/props/MessageValence.d.ts.map +0 -1
  442. package/dist/src/props/MessageValence.js +0 -6
  443. package/dist/src/props/MessageValence.js.map +0 -1
  444. package/dist/src/props/Size.d.ts +0 -2
  445. package/dist/src/props/Size.d.ts.map +0 -1
  446. package/dist/src/props/Size.js +0 -6
  447. package/dist/src/props/Size.js.map +0 -1
  448. package/dist/src/props/index.d.ts.map +0 -1
  449. package/dist/src/props/index.js +0 -23
  450. package/dist/src/props/index.js.map +0 -1
  451. package/dist/src/styles/active.d.ts.map +0 -1
  452. package/dist/src/styles/active.js +0 -12
  453. package/dist/src/styles/active.js.map +0 -1
  454. package/dist/src/styles/disabled.d.ts.map +0 -1
  455. package/dist/src/styles/disabled.js +0 -8
  456. package/dist/src/styles/disabled.js.map +0 -1
  457. package/dist/src/styles/focus.d.ts.map +0 -1
  458. package/dist/src/styles/focus.js +0 -9
  459. package/dist/src/styles/focus.js.map +0 -1
  460. package/dist/src/styles/group.d.ts.map +0 -1
  461. package/dist/src/styles/group.js +0 -26
  462. package/dist/src/styles/group.js.map +0 -1
  463. package/dist/src/styles/hover.d.ts.map +0 -1
  464. package/dist/src/styles/hover.js +0 -12
  465. package/dist/src/styles/hover.js.map +0 -1
  466. package/dist/src/styles/index.d.ts.map +0 -1
  467. package/dist/src/styles/index.js +0 -30
  468. package/dist/src/styles/index.js.map +0 -1
  469. package/dist/src/styles/input.d.ts +0 -17
  470. package/dist/src/styles/input.d.ts.map +0 -1
  471. package/dist/src/styles/input.js +0 -24
  472. package/dist/src/styles/input.js.map +0 -1
  473. package/dist/src/styles/ornament.d.ts.map +0 -1
  474. package/dist/src/styles/ornament.js +0 -9
  475. package/dist/src/styles/ornament.js.map +0 -1
  476. package/dist/src/styles/shimmer.d.ts.map +0 -1
  477. package/dist/src/styles/shimmer.js +0 -9
  478. package/dist/src/styles/shimmer.js.map +0 -1
  479. package/dist/src/styles/size.d.ts.map +0 -1
  480. package/dist/src/styles/size.js +0 -89
  481. package/dist/src/styles/size.js.map +0 -1
  482. package/dist/src/styles/text.d.ts.map +0 -1
  483. package/dist/src/styles/text.js +0 -11
  484. package/dist/src/styles/text.js.map +0 -1
  485. package/dist/src/styles/valence.d.ts.map +0 -1
  486. package/dist/src/styles/valence.js +0 -66
  487. package/dist/src/styles/valence.js.map +0 -1
  488. package/dist/src/testing/index.d.ts.map +0 -1
  489. package/dist/src/testing/index.js +0 -21
  490. package/dist/src/testing/index.js.map +0 -1
  491. package/dist/src/testing/templateForComponent.d.ts.map +0 -1
  492. package/dist/src/testing/templateForComponent.js +0 -18
  493. package/dist/src/testing/templateForComponent.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"valence.d.ts","sourceRoot":"","sources":["../../../../src/styles/valence.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAE1C,eAAO,MAAM,WAAW,+DAA+D,CAAC;AACxF,eAAO,MAAM,QAAQ,yDAAyD,CAAC;AAC/E,eAAO,MAAM,WAAW,+DAA+D,CAAC;AACxF,eAAO,MAAM,SAAS,2DAA2D,CAAC;AAElF,eAAO,MAAM,gBAAgB,aAAc,cAAc,gQAaxD,CAAC;AAEF,eAAO,MAAM,kBAAkB,+CAA+C,CAAC;AAC/E,eAAO,MAAM,kBAAkB,+CAA+C,CAAC;AAC/E,eAAO,MAAM,eAAe,yCAAyC,CAAC;AACtE,eAAO,MAAM,kBAAkB,+CAA+C,CAAC;AAC/E,eAAO,MAAM,gBAAgB,2CAA2C,CAAC;AAEzE,eAAO,MAAM,kBAAkB,aAAc,cAAc,mOAa1D,CAAC;AAEF,eAAO,MAAM,kBAAkB,+CAA+C,CAAC;AAC/E,eAAO,MAAM,kBAAkB,wHACwF,CAAC;AACxH,eAAO,MAAM,eAAe,sGACyE,CAAC;AACtG,eAAO,MAAM,kBAAkB,wHACwF,CAAC;AACxH,eAAO,MAAM,gBAAgB,4GAC8E,CAAC;AAE5G,eAAO,MAAM,kBAAkB,aAAc,cAAc,mfAa1D,CAAC"}
File without changes
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/testing/index.ts"],"names":[],"mappings":"AAIA,cAAc,wBAAwB,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"templateForComponent.d.ts","sourceRoot":"","sources":["../../../../src/testing/templateForComponent.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAkB,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,KAAK,EAAE,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAElC,eAAO,MAAM,oBAAoB,kEAQ9B,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from './mx';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/util/index.ts"],"names":[],"mappings":"AAIA,cAAc,MAAM,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare const mx: (...classLists: import("tailwind-merge/dist/lib/tw-join").ClassNameValue[]) => string;
2
+ //# sourceMappingURL=mx.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mx.d.ts","sourceRoot":"","sources":["../../../../src/util/mx.ts"],"names":[],"mappings":"AAQA,eAAO,MAAM,EAAE,uFAmBd,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { Config } from 'tailwind-merge';
2
+ export declare const withLogical: (prevConfig: Config) => Config;
3
+ //# sourceMappingURL=withLogical.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"withLogical.d.ts","sourceRoot":"","sources":["../../../../src/util/withLogical.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,MAAM,EAA4B,MAAM,gBAAgB,CAAC;AAElE,eAAO,MAAM,WAAW,eAAgB,MAAM,KAAG,MA8FhD,CAAC"}
package/package.json CHANGED
@@ -1,13 +1,13 @@
1
1
  {
2
2
  "name": "@dxos/react-ui",
3
- "version": "0.1.12",
3
+ "version": "0.1.14",
4
4
  "description": "Vite plugin which configures a low-level design system for DXOS.",
5
5
  "homepage": "https://dxos.org",
6
6
  "bugs": "https://github.com/dxos/dxos/issues",
7
7
  "license": "MIT",
8
8
  "author": "DXOS.org",
9
- "main": "dist/src/index.js",
10
- "types": "dist/src/index.d.ts",
9
+ "main": "dist/lib/browser/index.mjs",
10
+ "types": "dist/types/src/index.d.ts",
11
11
  "files": [
12
12
  "dist",
13
13
  "src",
@@ -24,16 +24,18 @@
24
24
  "@radix-ui/react-dialog": "^1.0.0",
25
25
  "@radix-ui/react-navigation-menu": "^1.1.1",
26
26
  "@radix-ui/react-popover": "^1.0.2",
27
+ "@radix-ui/react-portal": "^1.0.1",
27
28
  "@radix-ui/react-toast": "^1.1.1",
29
+ "@radix-ui/react-toolbar": "^1.0.1",
28
30
  "@radix-ui/react-tooltip": "^1.0.2",
29
31
  "@tailwindcss/forms": "^0.5.3",
30
32
  "alea": "^1.0.1",
31
33
  "autoprefixer": "^10.4.12",
32
- "classnames": "^2.3.2",
33
34
  "jdenticon": "^3.2.0",
34
35
  "postcss": "^8.4.17",
35
36
  "qrcode.react": "^3.1.0",
36
37
  "rci": "^0.0.3",
38
+ "tailwind-merge": "^1.8.0",
37
39
  "tailwindcss": "^3.1.8",
38
40
  "tailwindcss-logical": "^3.0.0",
39
41
  "tailwindcss-radix": "^2.6.0"
@@ -42,11 +44,13 @@
42
44
  "@types/react": "^18.0.21",
43
45
  "@types/react-dom": "^18.0.6",
44
46
  "@vitejs/plugin-react": "^2.0.1",
47
+ "esbuild": "~0.14.1",
48
+ "esbuild-style-plugin": "^1.6.0",
45
49
  "phosphor-react": "^1.4.1",
46
50
  "react": "^18.2.0",
47
51
  "react-dom": "^18.2.0",
48
52
  "storybook-dark-mode": "^1.1.2",
49
- "vite": "3.0.9"
53
+ "vite": "3.2.5"
50
54
  },
51
55
  "peerDependencies": {
52
56
  "phosphor-react": "^1.4.1",
package/plugin.d.ts CHANGED
@@ -2,4 +2,4 @@
2
2
  // Copyright 2022 DXOS.org
3
3
  //
4
4
 
5
- export * from './dist/src/plugin';
5
+ export * from './dist/types/src/plugin';
package/plugin.js CHANGED
@@ -5,4 +5,4 @@
5
5
  // Not included in the main `index.ts` so that the apps are not bundled with it.
6
6
  // It contains native Node functionality so must not be included in the final app bundle, only during compilation/bundling.
7
7
 
8
- module.exports = require('./dist/src/plugin');
8
+ module.exports = require('./dist/plugin/node/plugin.cjs');
@@ -2,30 +2,36 @@
2
2
  // Copyright 2022 DXOS.org
3
3
  //
4
4
 
5
- import cx from 'classnames';
6
5
  import React, { ComponentProps, ReactNode } from 'react';
7
6
 
8
7
  import { useId } from '../../hooks';
9
8
  import { MessageValence } from '../../props';
10
9
  import { valenceAlertColors } from '../../styles';
10
+ import { mx } from '../../util';
11
11
 
12
- export interface AlertProps extends Omit<ComponentProps<'div'>, 'title'> {
12
+ export interface AlertSlots {
13
+ root?: Omit<ComponentProps<'div'>, 'children'>;
14
+ title?: Omit<ComponentProps<'p'>, 'children'>;
15
+ }
16
+
17
+ export interface AlertProps {
13
18
  title: ReactNode;
14
19
  assertive?: boolean;
15
20
  valence?: MessageValence;
16
21
  children?: ReactNode;
22
+ slots?: AlertSlots;
17
23
  }
18
24
 
19
- export const Alert = ({ title, children, assertive, valence, ...divProps }: AlertProps) => {
25
+ export const Alert = ({ title, children, assertive, valence, slots = {} }: AlertProps) => {
20
26
  const labelId = useId('alertLabel');
21
27
  return (
22
28
  <div
29
+ {...slots.root}
23
30
  role={assertive ? 'alert' : 'group'}
24
- {...divProps}
25
- className={cx('p-3 border rounded-md', valenceAlertColors(valence), divProps.className)}
26
31
  aria-labelledby={labelId}
32
+ className={mx('p-3 border rounded-md', valenceAlertColors(valence), slots.root?.className)}
27
33
  >
28
- <p id={labelId} className='font-medium mb-2'>
34
+ <p {...slots.title} id={labelId} className={mx('font-medium mb-2', slots.title?.className)}>
29
35
  {title}
30
36
  </p>
31
37
  {children}
@@ -4,12 +4,20 @@
4
4
 
5
5
  import { Transition } from '@headlessui/react';
6
6
  import * as AlertDialogPrimitive from '@radix-ui/react-alert-dialog';
7
- import cx from 'classnames';
8
- import React, { cloneElement, Fragment, ReactHTMLElement, ReactNode, useEffect, useState } from 'react';
7
+ import React, { cloneElement, ComponentProps, Fragment, ReactHTMLElement, ReactNode, useEffect, useState } from 'react';
9
8
 
10
9
  import { defaultDescription, defaultFocus } from '../../styles';
10
+ import { mx } from '../../util';
11
11
  import { Input, InputProps } from '../Input';
12
12
 
13
+ export interface AlertDialogSlots {
14
+ overlay?: Pick<ComponentProps<typeof AlertDialogPrimitive.Overlay>, 'className'>;
15
+ content?: Omit<ComponentProps<typeof AlertDialogPrimitive.Content>, 'children'>;
16
+ title?: Omit<ComponentProps<typeof AlertDialogPrimitive.Content>, 'children'>;
17
+ description?: Omit<ComponentProps<typeof AlertDialogPrimitive.Description>, 'children'>;
18
+ actions?: Omit<ComponentProps<'div'>, 'children'>;
19
+ }
20
+
13
21
  export interface AlertDialogProps {
14
22
  title: ReactNode;
15
23
  openTrigger?: ReactNode;
@@ -22,6 +30,7 @@ export interface AlertDialogProps {
22
30
  children?: ReactNode;
23
31
  initiallyOpen?: boolean;
24
32
  mountAsSibling?: boolean;
33
+ slots?: AlertDialogSlots;
25
34
  }
26
35
 
27
36
  export const AlertDialog = ({
@@ -35,7 +44,8 @@ export const AlertDialog = ({
35
44
  destructiveConfirmInputProps,
36
45
  children,
37
46
  initiallyOpen,
38
- mountAsSibling
47
+ mountAsSibling,
48
+ slots = {}
39
49
  }: AlertDialogProps) => {
40
50
  const [isOpen, setIsOpen] = useState(!!initiallyOpen);
41
51
  const [confirmDisabled, setConfirmDisabled] = useState(!!destructiveConfirmString);
@@ -58,7 +68,10 @@ export const AlertDialog = ({
58
68
  leaveFrom='opacity-100'
59
69
  leaveTo='opacity-0'
60
70
  >
61
- <AlertDialogPrimitive.Overlay forceMount className='fixed inset-0 z-20 bg-black/50' />
71
+ <AlertDialogPrimitive.Overlay
72
+ forceMount
73
+ className={mx('fixed inset-0 z-20 bg-black/50', slots.overlay?.className)}
74
+ />
62
75
  </Transition.Child>
63
76
  <Transition.Child
64
77
  as={Fragment}
@@ -71,26 +84,33 @@ export const AlertDialog = ({
71
84
  >
72
85
  <AlertDialogPrimitive.Content
73
86
  forceMount
74
- className={cx(
87
+ {...slots.content}
88
+ className={mx(
75
89
  'fixed z-50',
76
90
  'w-[95vw] max-w-md rounded-xl p-4 md:w-full',
77
91
  'top-[50%] left-[50%] -translate-x-[50%] -translate-y-[50%]',
78
92
  'shadow-2xl bg-white dark:bg-neutral-800 elevated-buttons',
79
- defaultFocus
93
+ defaultFocus,
94
+ slots.content?.className
80
95
  )}
81
96
  >
82
97
  <AlertDialogPrimitive.Title
83
- className={cx(
98
+ tabIndex={0}
99
+ {...slots.title}
100
+ className={mx(
84
101
  'text-2xl font-display font-medium text-neutral-900 dark:text-neutral-100 rounded-md',
85
102
  titleVisuallyHidden && 'sr-only',
86
- defaultFocus
103
+ defaultFocus,
104
+ slots.title?.className
87
105
  )}
88
- tabIndex={0}
89
106
  >
90
107
  {title}
91
108
  </AlertDialogPrimitive.Title>
92
109
  {description && (
93
- <AlertDialogPrimitive.Description className={cx('my-2', defaultDescription)}>
110
+ <AlertDialogPrimitive.Description
111
+ {...slots.description}
112
+ className={mx('my-2', defaultDescription, slots.description?.className)}
113
+ >
94
114
  {description}
95
115
  </AlertDialogPrimitive.Description>
96
116
  )}
@@ -99,7 +119,7 @@ export const AlertDialog = ({
99
119
 
100
120
  {destructiveConfirmInputProps && <Input {...destructiveConfirmInputProps} onChange={setConfirmStringValue} />}
101
121
 
102
- <div className='flex flex-wrap justify-end gap-4'>
122
+ <div {...slots.actions} className={mx('flex flex-wrap justify-end gap-4', slots.actions?.className)}>
103
123
  {cancelTrigger && (
104
124
  <AlertDialogPrimitive.Cancel asChild={typeof cancelTrigger !== 'string'}>
105
125
  {cancelTrigger}
@@ -3,7 +3,7 @@
3
3
  //
4
4
 
5
5
  import * as AvatarPrimitive from '@radix-ui/react-avatar';
6
- import cx from 'classnames';
6
+ import * as PortalPrimitive from '@radix-ui/react-portal';
7
7
  import { toSvg } from 'jdenticon';
8
8
  import React, {
9
9
  cloneElement,
@@ -19,14 +19,23 @@ import React, {
19
19
  import { useId } from '../../hooks';
20
20
  import { Size } from '../../props';
21
21
  import { getSize } from '../../styles';
22
+ import { mx } from '../../util';
22
23
 
23
- export interface AvatarProps extends ComponentProps<typeof AvatarPrimitive.Root> {
24
+ export interface AvatarSlots {
25
+ root?: Omit<ComponentProps<typeof AvatarPrimitive.Root>, 'children'>;
26
+ image?: Omit<ComponentProps<typeof AvatarPrimitive.Image>, 'children'>;
27
+ fallback?: Omit<ComponentProps<typeof AvatarPrimitive.Fallback>, 'children'>;
28
+ }
29
+
30
+ export interface AvatarProps {
24
31
  fallbackValue: string;
25
32
  label: string | Omit<ReactHTMLElement<HTMLElement>, 'ref'>;
26
33
  size?: Size;
27
34
  variant?: 'square' | 'circle';
28
35
  mediaSrc?: string;
36
+ mediaAlt?: string;
29
37
  children?: ReactNode;
38
+ slots?: AvatarSlots;
30
39
  }
31
40
 
32
41
  const shapeStyles = {
@@ -36,7 +45,15 @@ const shapeStyles = {
36
45
 
37
46
  export const Avatar = forwardRef(
38
47
  (
39
- { mediaSrc, fallbackValue, label, variant = 'square', size = 10, ...rootProps }: PropsWithChildren<AvatarProps>,
48
+ {
49
+ mediaSrc,
50
+ mediaAlt,
51
+ fallbackValue,
52
+ label,
53
+ variant = 'square',
54
+ size = 10,
55
+ slots = {}
56
+ }: PropsWithChildren<AvatarProps>,
40
57
  ref: ForwardedRef<HTMLSpanElement>
41
58
  ) => {
42
59
  const labelId = useId('avatarLabel');
@@ -47,32 +64,37 @@ export const Avatar = forwardRef(
47
64
  return (
48
65
  <>
49
66
  <AvatarPrimitive.Root
50
- {...rootProps}
51
- className={cx('relative inline-flex', getSize(size), rootProps.className)}
67
+ {...slots.root}
68
+ className={mx('relative inline-flex', getSize(size), slots.root?.className)}
52
69
  aria-labelledby={labelId}
53
70
  ref={ref}
54
71
  >
55
72
  {mediaSrc && (
56
73
  <AvatarPrimitive.Image
74
+ {...slots.image}
57
75
  src={mediaSrc}
58
- alt='Avatar'
59
- className={cx('h-full w-full object-cover overflow-hidden', shapeStyles[variant])}
76
+ alt={mediaAlt ?? 'Avatar'}
77
+ className={mx('h-full w-full object-cover overflow-hidden', shapeStyles[variant], slots.image?.className)}
60
78
  />
61
79
  )}
62
80
  <AvatarPrimitive.Fallback
63
- className={cx(
81
+ delayMs={0}
82
+ {...slots.fallback}
83
+ className={mx(
64
84
  'shrink-0 flex h-full w-full items-center justify-center bg-white dark:bg-neutral-800 overflow-hidden',
65
- shapeStyles[variant]
85
+ shapeStyles[variant],
86
+ slots.fallback?.className
66
87
  )}
67
- delayMs={0}
68
88
  >
69
89
  <img role='none' alt={fallbackValue} src={imgSrc} className='h-full w-full' />
70
90
  </AvatarPrimitive.Fallback>
71
91
  </AvatarPrimitive.Root>
72
92
  {typeof label === 'string' ? (
73
- <span id={labelId} className='sr-only'>
74
- {label}
75
- </span>
93
+ <PortalPrimitive.Root asChild>
94
+ <span id={labelId} className='sr-only'>
95
+ {label}
96
+ </span>
97
+ </PortalPrimitive.Root>
76
98
  ) : (
77
99
  cloneElement(label, { id: labelId })
78
100
  )}
@@ -2,21 +2,19 @@
2
2
  // Copyright 2022 DXOS.org
3
3
  //
4
4
 
5
- import cx from 'classnames';
6
5
  import React, { forwardRef } from 'react';
7
6
 
7
+ import { mx } from '../../util';
8
8
  import { ButtonProps } from './ButtonProps';
9
9
  import { buttonStyles } from './buttonStyles';
10
10
 
11
- export const Button = forwardRef<HTMLButtonElement, ButtonProps>(
12
- ({ children, compact, spacing, variant, rounding, ...props }, ref) => (
13
- <button
14
- ref={ref}
15
- {...props}
16
- className={cx(buttonStyles({ compact, spacing, variant, rounding, disabled: props.disabled }), props.className)}
17
- {...(props.disabled && { disabled: true })}
18
- >
19
- {children}
20
- </button>
21
- )
22
- );
11
+ export const Button = forwardRef<HTMLButtonElement, ButtonProps>(({ children, compact, variant, ...rootSlot }, ref) => (
12
+ <button
13
+ ref={ref}
14
+ {...rootSlot}
15
+ className={mx(buttonStyles({ compact, variant, disabled: rootSlot.disabled }), rootSlot.className)}
16
+ {...(rootSlot.disabled && { disabled: true })}
17
+ >
18
+ {children}
19
+ </button>
20
+ ));
@@ -2,9 +2,10 @@
2
2
  // Copyright 2022 DXOS.org
3
3
  //
4
4
 
5
- import cx from 'classnames';
6
5
  import React, { ComponentProps, ReactNode } from 'react';
7
6
 
7
+ import { mx } from '../../util';
8
+
8
9
  export interface ButtonGroupProps extends ComponentProps<'div'> {
9
10
  children?: ReactNode;
10
11
  }
@@ -14,7 +15,7 @@ export const ButtonGroup = ({ children, ...divProps }: ButtonGroupProps) => {
14
15
  <div
15
16
  role='none'
16
17
  {...divProps}
17
- className={cx('button-elevation [&>*]:grouped-buttons rounded-md', divProps.className)}
18
+ className={mx('button-elevation [&>*]:grouped-buttons rounded-md', divProps.className)}
18
19
  >
19
20
  {children}
20
21
  </div>
@@ -7,7 +7,5 @@ import { ComponentProps } from 'react';
7
7
  export interface ButtonProps extends ComponentProps<'button'> {
8
8
  variant?: 'default' | 'primary' | 'outline' | 'ghost';
9
9
  compact?: boolean;
10
- rounding?: string;
11
- spacing?: string;
12
10
  disabled?: boolean;
13
11
  }
@@ -2,9 +2,8 @@
2
2
  // Copyright 2022 DXOS.org
3
3
  //
4
4
 
5
- import cx from 'classnames';
6
-
7
5
  import { defaultDisabled, defaultFocus, defaultHover, defaultActive } from '../../styles';
6
+ import { mx } from '../../util';
8
7
  import { ButtonProps } from './ButtonProps';
9
8
 
10
9
  export const primaryButtonColors = 'bg-primary-600 text-white hover:bg-primary-650';
@@ -13,11 +12,9 @@ export const ghostButtonColors = '';
13
12
 
14
13
  export const buttonStyles = (props: ButtonProps) => {
15
14
  const resolvedVariant = props.variant || 'default';
16
- return cx(
17
- 'inline-flex select-none items-center justify-center text-sm font-medium',
18
- props.rounding ?? 'rounded-md',
19
- props.spacing ?? (props.compact ? 'p-1.5' : 'pli-4 plb-2'),
20
- 'transition-color duration-100',
15
+ return mx(
16
+ 'inline-flex select-none items-center justify-center text-sm font-medium rounded-md transition-color duration-100',
17
+ props.compact ? 'p-1.5' : 'pli-4 plb-2',
21
18
  defaultHover(props),
22
19
  resolvedVariant === 'default' && 'border border-neutral-100 dark:border-neutral-650',
23
20
  resolvedVariant !== 'ghost' && !props.disabled && 'hover:focus:border-neutral-100 hover:border-transparent',
@@ -2,11 +2,11 @@
2
2
  // Copyright 2022 DXOS.org
3
3
  //
4
4
 
5
- import cx from 'classnames';
6
5
  import React, { ReactNode } from 'react';
7
6
 
8
7
  import { useId } from '../../hooks';
9
8
  import { defaultDescription, primaryDescription } from '../../styles';
9
+ import { mx } from '../../util';
10
10
  import { ButtonProps, buttonStyles } from '../Button';
11
11
 
12
12
  export interface CompoundButtonProps extends ButtonProps {
@@ -23,7 +23,7 @@ export const CompoundButton = ({ children, description, before, after, ...button
23
23
  return (
24
24
  <button
25
25
  {...buttonProps}
26
- className={cx(buttonStyles(buttonProps), 'flex items-center gap-4 py-2.5', buttonProps.className)}
26
+ className={mx(buttonStyles(buttonProps), 'flex items-center gap-4 py-2.5', buttonProps.className)}
27
27
  aria-labelledby={labelId}
28
28
  {...(description && { 'aria-describedby': descriptionId })}
29
29
  >
@@ -37,7 +37,7 @@ export const CompoundButton = ({ children, description, before, after, ...button
37
37
  {description && (
38
38
  <p
39
39
  id={descriptionId}
40
- className={cx('text-xs font-normal mb-1', variant === 'primary' ? primaryDescription : defaultDescription)}
40
+ className={mx('text-xs font-normal mb-1', variant === 'primary' ? primaryDescription : defaultDescription)}
41
41
  >
42
42
  {description}
43
43
  </p>
@@ -4,13 +4,23 @@
4
4
 
5
5
  import { Transition } from '@headlessui/react';
6
6
  import * as DialogPrimitive from '@radix-ui/react-dialog';
7
- import cx from 'classnames';
8
7
  import { X } from 'phosphor-react';
9
- import React, { Fragment, ReactNode, useState } from 'react';
8
+ import React, { ComponentProps, Fragment, ReactNode, useState } from 'react';
10
9
 
11
- import { defaultDescription, defaultFocus, defaultHover } from '../../styles';
10
+ import { defaultDescription, defaultFocus, defaultHover, getSize } from '../../styles';
11
+ import { mx } from '../../util';
12
12
  import { Tooltip } from '../Tooltip';
13
13
 
14
+ export interface DialogSlots {
15
+ overlay?: Pick<ComponentProps<typeof DialogPrimitive.Overlay>, 'className'>;
16
+ content?: Omit<ComponentProps<typeof DialogPrimitive.Content>, 'children'>;
17
+ title?: Omit<ComponentProps<typeof DialogPrimitive.Content>, 'children'>;
18
+ description?: Omit<ComponentProps<typeof DialogPrimitive.Description>, 'children'>;
19
+ close?: Pick<ComponentProps<typeof DialogPrimitive.Close>, 'className'>;
20
+ closeIcon?: ComponentProps<typeof X>;
21
+ closeTriggers?: Omit<ComponentProps<'div'>, 'children'>;
22
+ }
23
+
14
24
  export interface DialogProps {
15
25
  title: ReactNode;
16
26
  openTrigger?: ReactNode;
@@ -21,6 +31,7 @@ export interface DialogProps {
21
31
  closeLabel?: string;
22
32
  initiallyOpen?: boolean;
23
33
  mountAsSibling?: boolean;
34
+ slots?: DialogSlots;
24
35
  }
25
36
 
26
37
  export const Dialog = ({
@@ -32,7 +43,8 @@ export const Dialog = ({
32
43
  closeTriggers,
33
44
  closeLabel,
34
45
  initiallyOpen,
35
- mountAsSibling
46
+ mountAsSibling,
47
+ slots = {}
36
48
  }: DialogProps) => {
37
49
  const [isOpen, setIsOpen] = useState(!!initiallyOpen);
38
50
 
@@ -47,7 +59,11 @@ export const Dialog = ({
47
59
  leaveFrom='opacity-100'
48
60
  leaveTo='opacity-0'
49
61
  >
50
- <DialogPrimitive.Overlay forceMount className='fixed inset-0 z-20 bg-black/50' />
62
+ <DialogPrimitive.Overlay
63
+ forceMount
64
+ {...slots.overlay}
65
+ className={mx('fixed inset-0 z-20 bg-black/50', slots.overlay?.className)}
66
+ />
51
67
  </Transition.Child>
52
68
  <Transition.Child
53
69
  as={Fragment}
@@ -60,26 +76,33 @@ export const Dialog = ({
60
76
  >
61
77
  <DialogPrimitive.Content
62
78
  forceMount
63
- className={cx(
79
+ {...slots.content}
80
+ className={mx(
64
81
  'fixed z-50',
65
82
  'w-[95vw] max-w-md rounded-xl p-4 md:w-full',
66
83
  'top-[50%] left-[50%] -translate-x-[50%] -translate-y-[50%]',
67
84
  'shadow-2xl bg-white dark:bg-neutral-800 elevated-buttons',
68
- defaultFocus
85
+ defaultFocus,
86
+ slots.content?.className
69
87
  )}
70
88
  >
71
89
  <DialogPrimitive.Title
72
- className={cx(
90
+ {...slots.title}
91
+ className={mx(
73
92
  'text-2xl font-display font-medium text-neutral-900 dark:text-neutral-100 rounded-md',
74
93
  titleVisuallyHidden && 'sr-only',
75
- defaultFocus
94
+ defaultFocus,
95
+ slots.content?.className
76
96
  )}
77
97
  tabIndex={0}
78
98
  >
79
99
  {title}
80
100
  </DialogPrimitive.Title>
81
101
  {description && (
82
- <DialogPrimitive.Description className={cx('mt-2', defaultDescription)}>
102
+ <DialogPrimitive.Description
103
+ {...slots.description}
104
+ className={mx('mt-2', defaultDescription, slots.description?.className)}
105
+ >
83
106
  {description}
84
107
  </DialogPrimitive.Description>
85
108
  )}
@@ -89,18 +112,28 @@ export const Dialog = ({
89
112
  {closeLabel && (
90
113
  <Tooltip zIndex='z-[51]' content={closeLabel}>
91
114
  <DialogPrimitive.Close
92
- className={cx(
115
+ className={mx(
93
116
  'absolute top-3.5 right-3.5 inline-flex items-center justify-center rounded-sm p-1',
94
117
  defaultFocus,
95
- defaultHover({})
118
+ defaultHover({}),
119
+ slots.close?.className
96
120
  )}
97
121
  >
98
- <X className='h-4 w-4 text-neutral-500 hover:text-neutral-700 dark:text-neutral-500 dark:hover:text-neutral-400' />
122
+ <X
123
+ className={mx(
124
+ getSize(4),
125
+ 'text-neutral-500 hover:text-neutral-700 dark:text-neutral-500 dark:hover:text-neutral-400',
126
+ slots.closeIcon?.className
127
+ )}
128
+ />
99
129
  </DialogPrimitive.Close>
100
130
  </Tooltip>
101
131
  )}
102
132
  {closeTriggers && (
103
- <div className='flex flex-wrap justify-end gap-4'>
133
+ <div
134
+ {...slots.closeTriggers}
135
+ className={mx('flex flex-wrap justify-end gap-4', slots.closeTriggers?.className)}
136
+ >
104
137
  {closeTriggers.map((closeTrigger, key) => (
105
138
  <DialogPrimitive.Close key={key}>{closeTrigger}</DialogPrimitive.Close>
106
139
  ))}
@@ -2,11 +2,11 @@
2
2
  // Copyright 2022 DXOS.org
3
3
  //
4
4
 
5
- import cx from 'classnames';
6
5
  import React, { ReactNode } from 'react';
7
6
 
8
7
  import { useId } from '../../hooks';
9
- import { defaultGroup } from '../../styles/group';
8
+ import { defaultGroup } from '../../styles';
9
+ import { mx } from '../../util';
10
10
  import { Heading, HeadingProps } from '../Heading';
11
11
 
12
12
  export interface GroupProps extends React.ComponentProps<'div'> {
@@ -16,11 +16,16 @@ export interface GroupProps extends React.ComponentProps<'div'> {
16
16
  children?: ReactNode;
17
17
  }
18
18
 
19
- export const Group = ({ elevation = 3, children, label, labelVisuallyHidden, className, ...props }: GroupProps) => {
19
+ export const Group = ({ elevation = 3, children, label, labelVisuallyHidden, ...rootSlot }: GroupProps) => {
20
20
  const labelId = useId('groupLabel');
21
21
  return (
22
- <div role='group' aria-labelledby={labelId} className={cx(defaultGroup({ elevation }), className)} {...props}>
23
- <Heading {...label} id={labelId} className={cx(labelVisuallyHidden && 'sr-only', 'mb-2', label?.className)} />
22
+ <div
23
+ role='group'
24
+ aria-labelledby={labelId}
25
+ {...rootSlot}
26
+ className={mx(defaultGroup({ elevation }), rootSlot?.className)}
27
+ >
28
+ <Heading {...label} id={labelId} className={mx(labelVisuallyHidden && 'sr-only', 'mb-2', label?.className)} />
24
29
  {children}
25
30
  </div>
26
31
  );