@dxos/ui-theme 0.8.4-main.bc674ce → 0.8.4-main.c85a9c8dae

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 (371) hide show
  1. package/dist/lib/browser/index.mjs +556 -2523
  2. package/dist/lib/browser/index.mjs.map +4 -4
  3. package/dist/lib/browser/meta.json +1 -1
  4. package/dist/lib/node-esm/index.mjs +556 -2523
  5. package/dist/lib/node-esm/index.mjs.map +4 -4
  6. package/dist/lib/node-esm/meta.json +1 -1
  7. package/dist/plugin/node-cjs/meta.json +1 -1
  8. package/dist/plugin/node-cjs/plugins/ThemePlugin.cjs +144 -0
  9. package/dist/plugin/node-cjs/plugins/ThemePlugin.cjs.map +7 -0
  10. package/dist/plugin/node-cjs/theme.css +893 -817
  11. package/dist/plugin/node-cjs/theme.css.map +3 -3
  12. package/dist/plugin/node-esm/meta.json +1 -1
  13. package/dist/plugin/node-esm/plugins/ThemePlugin.mjs +112 -0
  14. package/dist/plugin/node-esm/plugins/ThemePlugin.mjs.map +7 -0
  15. package/dist/plugin/node-esm/theme.css +893 -817
  16. package/dist/plugin/node-esm/theme.css.map +3 -3
  17. package/dist/types/src/Theme.stories.d.ts +27 -0
  18. package/dist/types/src/Theme.stories.d.ts.map +1 -0
  19. package/dist/types/src/defs.d.ts +21 -0
  20. package/dist/types/src/defs.d.ts.map +1 -0
  21. package/dist/types/src/fragments/density.d.ts +7 -0
  22. package/dist/types/src/fragments/density.d.ts.map +1 -0
  23. package/dist/types/src/fragments/disabled.d.ts.map +1 -0
  24. package/dist/types/src/{styles/fragments → fragments}/elevation.d.ts +0 -6
  25. package/dist/types/src/fragments/elevation.d.ts.map +1 -0
  26. package/dist/types/src/fragments/focus.d.ts +4 -0
  27. package/dist/types/src/fragments/focus.d.ts.map +1 -0
  28. package/dist/types/src/fragments/hover.d.ts +10 -0
  29. package/dist/types/src/fragments/hover.d.ts.map +1 -0
  30. package/dist/types/src/{styles/fragments → fragments}/index.d.ts +0 -7
  31. package/dist/types/src/fragments/index.d.ts.map +1 -0
  32. package/dist/types/src/fragments/selected.d.ts +4 -0
  33. package/dist/types/src/fragments/selected.d.ts.map +1 -0
  34. package/dist/types/src/{styles/fragments → fragments}/size.d.ts +0 -2
  35. package/dist/types/src/fragments/size.d.ts.map +1 -0
  36. package/dist/types/src/fragments/text.d.ts +7 -0
  37. package/dist/types/src/fragments/text.d.ts.map +1 -0
  38. package/dist/types/src/fragments/valence.d.ts +4 -0
  39. package/dist/types/src/fragments/valence.d.ts.map +1 -0
  40. package/dist/types/src/index.d.ts +3 -10
  41. package/dist/types/src/index.d.ts.map +1 -1
  42. package/dist/types/src/plugins/ThemePlugin.d.ts +16 -0
  43. package/dist/types/src/plugins/ThemePlugin.d.ts.map +1 -0
  44. package/dist/types/src/plugins/dark-mode.d.ts +1 -0
  45. package/dist/types/src/plugins/dark-mode.d.ts.map +1 -0
  46. package/dist/types/src/theme/components/avatar.d.ts.map +1 -0
  47. package/dist/types/src/theme/components/breadcrumb.d.ts.map +1 -0
  48. package/dist/types/src/theme/components/button.d.ts +15 -0
  49. package/dist/types/src/theme/components/button.d.ts.map +1 -0
  50. package/dist/types/src/theme/components/card.d.ts +11 -0
  51. package/dist/types/src/theme/components/card.d.ts.map +1 -0
  52. package/dist/types/src/{styles → theme}/components/dialog.d.ts +2 -0
  53. package/dist/types/src/theme/components/dialog.d.ts.map +1 -0
  54. package/dist/types/src/theme/components/icon-button.d.ts.map +1 -0
  55. package/dist/types/src/theme/components/icon.d.ts.map +1 -0
  56. package/dist/types/src/{styles → theme}/components/index.d.ts +3 -1
  57. package/dist/types/src/theme/components/index.d.ts.map +1 -0
  58. package/dist/types/src/{styles → theme}/components/input.d.ts +25 -21
  59. package/dist/types/src/theme/components/input.d.ts.map +1 -0
  60. package/dist/types/src/theme/components/link.d.ts.map +1 -0
  61. package/dist/types/src/theme/components/list.d.ts.map +1 -0
  62. package/dist/types/src/{styles → theme}/components/main.d.ts +2 -7
  63. package/dist/types/src/theme/components/main.d.ts.map +1 -0
  64. package/dist/types/src/{styles → theme}/components/menu.d.ts +1 -1
  65. package/dist/types/src/theme/components/menu.d.ts.map +1 -0
  66. package/dist/types/src/{styles → theme}/components/message.d.ts +1 -0
  67. package/dist/types/src/theme/components/message.d.ts.map +1 -0
  68. package/dist/types/src/{styles → theme}/components/popover.d.ts +1 -1
  69. package/dist/types/src/theme/components/popover.d.ts.map +1 -0
  70. package/dist/types/src/theme/components/scroll-area.d.ts +22 -0
  71. package/dist/types/src/theme/components/scroll-area.d.ts.map +1 -0
  72. package/dist/types/src/theme/components/select.d.ts.map +1 -0
  73. package/dist/types/src/theme/components/separator.d.ts.map +1 -0
  74. package/dist/types/src/theme/components/skeleton.d.ts +7 -0
  75. package/dist/types/src/theme/components/skeleton.d.ts.map +1 -0
  76. package/dist/types/src/theme/components/splitter.d.ts +4 -0
  77. package/dist/types/src/theme/components/splitter.d.ts.map +1 -0
  78. package/dist/types/src/theme/components/status.d.ts.map +1 -0
  79. package/dist/types/src/theme/components/tag.d.ts.map +1 -0
  80. package/dist/types/src/theme/components/toast.d.ts.map +1 -0
  81. package/dist/types/src/theme/components/toolbar.d.ts +12 -0
  82. package/dist/types/src/theme/components/toolbar.d.ts.map +1 -0
  83. package/dist/types/src/theme/components/tooltip.d.ts.map +1 -0
  84. package/dist/types/src/theme/components/treegrid.d.ts.map +1 -0
  85. package/dist/types/src/theme/index.d.ts +3 -0
  86. package/dist/types/src/theme/index.d.ts.map +1 -0
  87. package/dist/types/src/theme/primitives/column.d.ts +7 -0
  88. package/dist/types/src/theme/primitives/column.d.ts.map +1 -0
  89. package/dist/types/src/theme/primitives/index.d.ts +3 -0
  90. package/dist/types/src/theme/primitives/index.d.ts.map +1 -0
  91. package/dist/types/src/theme/primitives/panel.d.ts +9 -0
  92. package/dist/types/src/theme/primitives/panel.d.ts.map +1 -0
  93. package/dist/types/src/theme/theme.d.ts +5 -0
  94. package/dist/types/src/theme/theme.d.ts.map +1 -0
  95. package/dist/types/src/util/hash-styles.d.ts +8 -5
  96. package/dist/types/src/util/hash-styles.d.ts.map +1 -1
  97. package/dist/types/src/util/mx.d.ts +8 -0
  98. package/dist/types/src/util/mx.d.ts.map +1 -1
  99. package/dist/types/tsconfig.tsbuildinfo +1 -1
  100. package/package.json +19 -27
  101. package/src/Theme.stories.tsx +224 -0
  102. package/src/css/base/base.css +43 -0
  103. package/src/{styles/layers → css/base}/typography.css +3 -5
  104. package/src/{styles/layers → css/components}/button.css +22 -14
  105. package/src/{styles/layers → css/components}/checkbox.css +12 -8
  106. package/src/{styles/layers → css/components}/dialog.css +16 -15
  107. package/src/{styles/layers → css/components}/focus-ring.css +45 -40
  108. package/src/css/components/link.css +9 -0
  109. package/src/css/components/panel.css +117 -0
  110. package/src/css/components/scrollbar.css +24 -0
  111. package/src/css/components/surface.css +34 -0
  112. package/src/css/components/tag.css +130 -0
  113. package/src/css/components/text.css +124 -0
  114. package/src/css/integrations/codemirror.css +32 -0
  115. package/src/css/integrations/tldraw.css +13 -0
  116. package/src/css/layout/main.css +212 -0
  117. package/src/{styles/layers → css/layout}/native.css +6 -4
  118. package/src/css/layout/positioning.css +19 -0
  119. package/src/{styles/layers → css/layout}/size.css +137 -108
  120. package/src/css/theme/animation.css +229 -0
  121. package/src/css/theme/border.css +23 -0
  122. package/src/css/theme/palette.css +28 -0
  123. package/src/css/theme/semantic.css +100 -0
  124. package/src/css/theme/spacing.css +130 -0
  125. package/src/css/theme/styles.css +145 -0
  126. package/src/css/theme/text.css +37 -0
  127. package/src/css/utilities.css +7 -0
  128. package/src/defs.ts +48 -0
  129. package/src/fragments/density.ts +13 -0
  130. package/src/{styles/fragments → fragments}/elevation.ts +6 -8
  131. package/src/fragments/focus.ts +11 -0
  132. package/src/fragments/hover.ts +18 -0
  133. package/src/{styles/fragments → fragments}/index.ts +2 -7
  134. package/src/fragments/selected.ts +12 -0
  135. package/src/fragments/size.ts +117 -0
  136. package/src/fragments/text.ts +11 -0
  137. package/src/fragments/valence.ts +33 -0
  138. package/src/index.ts +3 -14
  139. package/src/plugins/ThemePlugin.ts +137 -0
  140. package/src/plugins/dark-mode.ts +22 -0
  141. package/src/{styles → theme}/components/avatar.ts +11 -11
  142. package/src/theme/components/button.ts +48 -0
  143. package/src/theme/components/card.ts +94 -0
  144. package/src/{styles → theme}/components/dialog.ts +18 -10
  145. package/src/{styles → theme}/components/icon-button.ts +1 -1
  146. package/src/{styles → theme}/components/icon.ts +2 -2
  147. package/src/{styles → theme}/components/index.ts +3 -1
  148. package/src/theme/components/input.ts +186 -0
  149. package/src/{styles → theme}/components/link.ts +3 -3
  150. package/src/{styles → theme}/components/list.ts +3 -3
  151. package/src/{styles → theme}/components/main.ts +2 -6
  152. package/src/{styles → theme}/components/menu.ts +9 -19
  153. package/src/{styles → theme}/components/message.ts +11 -6
  154. package/src/{styles → theme}/components/popover.ts +13 -11
  155. package/src/theme/components/scroll-area.ts +103 -0
  156. package/src/{styles → theme}/components/select.ts +7 -14
  157. package/src/{styles → theme}/components/separator.ts +3 -3
  158. package/src/theme/components/skeleton.ts +23 -0
  159. package/src/theme/components/splitter.ts +20 -0
  160. package/src/{styles → theme}/components/status.ts +5 -5
  161. package/src/{styles → theme}/components/tag.ts +1 -1
  162. package/src/{styles → theme}/components/toast.ts +5 -6
  163. package/src/theme/components/toolbar.ts +41 -0
  164. package/src/{styles → theme}/components/tooltip.ts +4 -5
  165. package/src/{styles → theme}/components/treegrid.ts +8 -8
  166. package/src/{styles → theme}/index.ts +1 -2
  167. package/src/theme/primitives/column.ts +30 -0
  168. package/src/theme/primitives/index.ts +6 -0
  169. package/src/theme/primitives/panel.ts +47 -0
  170. package/src/{styles → theme}/theme.ts +25 -9
  171. package/src/theme.css +78 -4
  172. package/src/typings.d.ts +0 -1
  173. package/src/util/hash-styles.ts +118 -98
  174. package/src/util/mx.ts +54 -43
  175. package/dist/plugin/node-cjs/chunk-UUMDOU7E.cjs +0 -79
  176. package/dist/plugin/node-cjs/chunk-UUMDOU7E.cjs.map +0 -7
  177. package/dist/plugin/node-cjs/chunk-ZVALPM6U.cjs +0 -1619
  178. package/dist/plugin/node-cjs/chunk-ZVALPM6U.cjs.map +0 -7
  179. package/dist/plugin/node-cjs/config/tailwind.cjs +0 -29
  180. package/dist/plugin/node-cjs/config/tailwind.cjs.map +0 -7
  181. package/dist/plugin/node-cjs/plugins/esbuild-plugin.cjs +0 -90
  182. package/dist/plugin/node-cjs/plugins/esbuild-plugin.cjs.map +0 -7
  183. package/dist/plugin/node-cjs/plugins/plugin.cjs +0 -124
  184. package/dist/plugin/node-cjs/plugins/plugin.cjs.map +0 -7
  185. package/dist/plugin/node-esm/chunk-AFRHJHP4.mjs +0 -49
  186. package/dist/plugin/node-esm/chunk-AFRHJHP4.mjs.map +0 -7
  187. package/dist/plugin/node-esm/chunk-HJE6EZWE.mjs +0 -1614
  188. package/dist/plugin/node-esm/chunk-HJE6EZWE.mjs.map +0 -7
  189. package/dist/plugin/node-esm/config/tailwind.mjs +0 -8
  190. package/dist/plugin/node-esm/config/tailwind.mjs.map +0 -7
  191. package/dist/plugin/node-esm/plugins/esbuild-plugin.mjs +0 -63
  192. package/dist/plugin/node-esm/plugins/esbuild-plugin.mjs.map +0 -7
  193. package/dist/plugin/node-esm/plugins/plugin.mjs +0 -98
  194. package/dist/plugin/node-esm/plugins/plugin.mjs.map +0 -7
  195. package/dist/types/src/Tokens.stories.d.ts +0 -10
  196. package/dist/types/src/Tokens.stories.d.ts.map +0 -1
  197. package/dist/types/src/config/index.d.ts +0 -3
  198. package/dist/types/src/config/index.d.ts.map +0 -1
  199. package/dist/types/src/config/tailwind.d.ts +0 -9
  200. package/dist/types/src/config/tailwind.d.ts.map +0 -1
  201. package/dist/types/src/config/tokens/alias-colors.d.ts +0 -21
  202. package/dist/types/src/config/tokens/alias-colors.d.ts.map +0 -1
  203. package/dist/types/src/config/tokens/index.d.ts +0 -486
  204. package/dist/types/src/config/tokens/index.d.ts.map +0 -1
  205. package/dist/types/src/config/tokens/lengths.d.ts +0 -139
  206. package/dist/types/src/config/tokens/lengths.d.ts.map +0 -1
  207. package/dist/types/src/config/tokens/physical-colors.d.ts +0 -23
  208. package/dist/types/src/config/tokens/physical-colors.d.ts.map +0 -1
  209. package/dist/types/src/config/tokens/semantic-colors.d.ts +0 -187
  210. package/dist/types/src/config/tokens/semantic-colors.d.ts.map +0 -1
  211. package/dist/types/src/config/tokens/sememes-calls.d.ts +0 -3
  212. package/dist/types/src/config/tokens/sememes-calls.d.ts.map +0 -1
  213. package/dist/types/src/config/tokens/sememes-codemirror.d.ts +0 -43
  214. package/dist/types/src/config/tokens/sememes-codemirror.d.ts.map +0 -1
  215. package/dist/types/src/config/tokens/sememes-hue.d.ts +0 -4
  216. package/dist/types/src/config/tokens/sememes-hue.d.ts.map +0 -1
  217. package/dist/types/src/config/tokens/sememes-sheet.d.ts +0 -58
  218. package/dist/types/src/config/tokens/sememes-sheet.d.ts.map +0 -1
  219. package/dist/types/src/config/tokens/sememes-system.d.ts +0 -99
  220. package/dist/types/src/config/tokens/sememes-system.d.ts.map +0 -1
  221. package/dist/types/src/config/tokens/sizes.d.ts +0 -7
  222. package/dist/types/src/config/tokens/sizes.d.ts.map +0 -1
  223. package/dist/types/src/config/tokens/types.d.ts +0 -5
  224. package/dist/types/src/config/tokens/types.d.ts.map +0 -1
  225. package/dist/types/src/plugins/esbuild-plugin.d.ts +0 -9
  226. package/dist/types/src/plugins/esbuild-plugin.d.ts.map +0 -1
  227. package/dist/types/src/plugins/plugin.d.ts +0 -20
  228. package/dist/types/src/plugins/plugin.d.ts.map +0 -1
  229. package/dist/types/src/plugins/resolveContent.d.ts +0 -2
  230. package/dist/types/src/plugins/resolveContent.d.ts.map +0 -1
  231. package/dist/types/src/styles/components/anchored-overflow.d.ts +0 -6
  232. package/dist/types/src/styles/components/anchored-overflow.d.ts.map +0 -1
  233. package/dist/types/src/styles/components/avatar.d.ts.map +0 -1
  234. package/dist/types/src/styles/components/breadcrumb.d.ts.map +0 -1
  235. package/dist/types/src/styles/components/button.d.ts +0 -19
  236. package/dist/types/src/styles/components/button.d.ts.map +0 -1
  237. package/dist/types/src/styles/components/dialog.d.ts.map +0 -1
  238. package/dist/types/src/styles/components/icon-button.d.ts.map +0 -1
  239. package/dist/types/src/styles/components/icon.d.ts.map +0 -1
  240. package/dist/types/src/styles/components/index.d.ts.map +0 -1
  241. package/dist/types/src/styles/components/input.d.ts.map +0 -1
  242. package/dist/types/src/styles/components/link.d.ts.map +0 -1
  243. package/dist/types/src/styles/components/list.d.ts.map +0 -1
  244. package/dist/types/src/styles/components/main.d.ts.map +0 -1
  245. package/dist/types/src/styles/components/menu.d.ts.map +0 -1
  246. package/dist/types/src/styles/components/message.d.ts.map +0 -1
  247. package/dist/types/src/styles/components/popover.d.ts.map +0 -1
  248. package/dist/types/src/styles/components/scroll-area.d.ts +0 -9
  249. package/dist/types/src/styles/components/scroll-area.d.ts.map +0 -1
  250. package/dist/types/src/styles/components/select.d.ts.map +0 -1
  251. package/dist/types/src/styles/components/separator.d.ts.map +0 -1
  252. package/dist/types/src/styles/components/status.d.ts.map +0 -1
  253. package/dist/types/src/styles/components/tag.d.ts.map +0 -1
  254. package/dist/types/src/styles/components/toast.d.ts.map +0 -1
  255. package/dist/types/src/styles/components/toolbar.d.ts +0 -11
  256. package/dist/types/src/styles/components/toolbar.d.ts.map +0 -1
  257. package/dist/types/src/styles/components/tooltip.d.ts.map +0 -1
  258. package/dist/types/src/styles/components/treegrid.d.ts.map +0 -1
  259. package/dist/types/src/styles/fragments/density.d.ts +0 -13
  260. package/dist/types/src/styles/fragments/density.d.ts.map +0 -1
  261. package/dist/types/src/styles/fragments/dimension.d.ts +0 -5
  262. package/dist/types/src/styles/fragments/dimension.d.ts.map +0 -1
  263. package/dist/types/src/styles/fragments/disabled.d.ts.map +0 -1
  264. package/dist/types/src/styles/fragments/elevation.d.ts.map +0 -1
  265. package/dist/types/src/styles/fragments/focus.d.ts +0 -6
  266. package/dist/types/src/styles/fragments/focus.d.ts.map +0 -1
  267. package/dist/types/src/styles/fragments/group.d.ts +0 -5
  268. package/dist/types/src/styles/fragments/group.d.ts.map +0 -1
  269. package/dist/types/src/styles/fragments/hover.d.ts +0 -17
  270. package/dist/types/src/styles/fragments/hover.d.ts.map +0 -1
  271. package/dist/types/src/styles/fragments/index.d.ts.map +0 -1
  272. package/dist/types/src/styles/fragments/layout.d.ts +0 -3
  273. package/dist/types/src/styles/fragments/layout.d.ts.map +0 -1
  274. package/dist/types/src/styles/fragments/motion.d.ts +0 -2
  275. package/dist/types/src/styles/fragments/motion.d.ts.map +0 -1
  276. package/dist/types/src/styles/fragments/ornament.d.ts +0 -5
  277. package/dist/types/src/styles/fragments/ornament.d.ts.map +0 -1
  278. package/dist/types/src/styles/fragments/selected.d.ts +0 -13
  279. package/dist/types/src/styles/fragments/selected.d.ts.map +0 -1
  280. package/dist/types/src/styles/fragments/shimmer.d.ts +0 -3
  281. package/dist/types/src/styles/fragments/shimmer.d.ts.map +0 -1
  282. package/dist/types/src/styles/fragments/size.d.ts.map +0 -1
  283. package/dist/types/src/styles/fragments/surface.d.ts +0 -9
  284. package/dist/types/src/styles/fragments/surface.d.ts.map +0 -1
  285. package/dist/types/src/styles/fragments/text.d.ts +0 -7
  286. package/dist/types/src/styles/fragments/text.d.ts.map +0 -1
  287. package/dist/types/src/styles/fragments/valence.d.ts +0 -13
  288. package/dist/types/src/styles/fragments/valence.d.ts.map +0 -1
  289. package/dist/types/src/styles/index.d.ts +0 -4
  290. package/dist/types/src/styles/index.d.ts.map +0 -1
  291. package/dist/types/src/styles/theme.d.ts +0 -5
  292. package/dist/types/src/styles/theme.d.ts.map +0 -1
  293. package/dist/types/src/tailwind.d.ts +0 -3
  294. package/dist/types/src/tailwind.d.ts.map +0 -1
  295. package/dist/types/src/types.d.ts +0 -3
  296. package/dist/types/src/types.d.ts.map +0 -1
  297. package/dist/types/src/util/withLogical.d.ts +0 -164
  298. package/dist/types/src/util/withLogical.d.ts.map +0 -1
  299. package/src/Tokens.stories.tsx +0 -88
  300. package/src/config/index.ts +0 -6
  301. package/src/config/tailwind.ts +0 -264
  302. package/src/config/tokens/alias-colors.ts +0 -39
  303. package/src/config/tokens/index.ts +0 -92
  304. package/src/config/tokens/lengths.ts +0 -97
  305. package/src/config/tokens/physical-colors.ts +0 -125
  306. package/src/config/tokens/semantic-colors.ts +0 -27
  307. package/src/config/tokens/sememes-calls.ts +0 -17
  308. package/src/config/tokens/sememes-codemirror.ts +0 -50
  309. package/src/config/tokens/sememes-hue.ts +0 -54
  310. package/src/config/tokens/sememes-sheet.ts +0 -62
  311. package/src/config/tokens/sememes-system.ts +0 -302
  312. package/src/config/tokens/sizes.ts +0 -10
  313. package/src/config/tokens/types.ts +0 -9
  314. package/src/docs/theme.drawio.svg +0 -635
  315. package/src/plugins/esbuild-plugin.ts +0 -65
  316. package/src/plugins/plugin.ts +0 -130
  317. package/src/plugins/resolveContent.ts +0 -51
  318. package/src/styles/components/README.md +0 -6
  319. package/src/styles/components/anchored-overflow.ts +0 -20
  320. package/src/styles/components/button.ts +0 -48
  321. package/src/styles/components/input.ts +0 -177
  322. package/src/styles/components/scroll-area.ts +0 -43
  323. package/src/styles/components/toolbar.ts +0 -29
  324. package/src/styles/fragments/density.ts +0 -17
  325. package/src/styles/fragments/dimension.ts +0 -8
  326. package/src/styles/fragments/focus.ts +0 -16
  327. package/src/styles/fragments/group.ts +0 -12
  328. package/src/styles/fragments/hover.ts +0 -25
  329. package/src/styles/fragments/layout.ts +0 -7
  330. package/src/styles/fragments/motion.ts +0 -6
  331. package/src/styles/fragments/ornament.ts +0 -10
  332. package/src/styles/fragments/selected.ts +0 -45
  333. package/src/styles/fragments/shimmer.ts +0 -9
  334. package/src/styles/fragments/size.ts +0 -117
  335. package/src/styles/fragments/surface.ts +0 -29
  336. package/src/styles/fragments/text.ts +0 -12
  337. package/src/styles/fragments/valence.ts +0 -46
  338. package/src/styles/layers/README.md +0 -15
  339. package/src/styles/layers/anchored-overflow.css +0 -9
  340. package/src/styles/layers/animation.css +0 -17
  341. package/src/styles/layers/attention.css +0 -8
  342. package/src/styles/layers/base.css +0 -25
  343. package/src/styles/layers/can-scroll.css +0 -26
  344. package/src/styles/layers/drag-preview.css +0 -18
  345. package/src/styles/layers/hues.css +0 -110
  346. package/src/styles/layers/index.css +0 -26
  347. package/src/styles/layers/main.css +0 -227
  348. package/src/styles/layers/positioning.css +0 -23
  349. package/src/styles/layers/surfaces.css +0 -31
  350. package/src/styles/layers/tag.css +0 -132
  351. package/src/styles/layers/tldraw.css +0 -91
  352. package/src/styles/layers/tokens.css +0 -46
  353. package/src/tailwind.ts +0 -7
  354. package/src/types.ts +0 -7
  355. package/src/util/withLogical.ts +0 -114
  356. /package/dist/types/src/{styles/fragments → fragments}/disabled.d.ts +0 -0
  357. /package/dist/types/src/{styles → theme}/components/avatar.d.ts +0 -0
  358. /package/dist/types/src/{styles → theme}/components/breadcrumb.d.ts +0 -0
  359. /package/dist/types/src/{styles → theme}/components/icon-button.d.ts +0 -0
  360. /package/dist/types/src/{styles → theme}/components/icon.d.ts +0 -0
  361. /package/dist/types/src/{styles → theme}/components/link.d.ts +0 -0
  362. /package/dist/types/src/{styles → theme}/components/list.d.ts +0 -0
  363. /package/dist/types/src/{styles → theme}/components/select.d.ts +0 -0
  364. /package/dist/types/src/{styles → theme}/components/separator.d.ts +0 -0
  365. /package/dist/types/src/{styles → theme}/components/status.d.ts +0 -0
  366. /package/dist/types/src/{styles → theme}/components/tag.d.ts +0 -0
  367. /package/dist/types/src/{styles → theme}/components/toast.d.ts +0 -0
  368. /package/dist/types/src/{styles → theme}/components/tooltip.d.ts +0 -0
  369. /package/dist/types/src/{styles → theme}/components/treegrid.d.ts +0 -0
  370. /package/src/{styles/fragments → fragments}/disabled.ts +0 -0
  371. /package/src/{styles → theme}/components/breadcrumb.ts +0 -0
@@ -0,0 +1,94 @@
1
+ //
2
+ // Copyright 2025 DXOS.org
3
+ //
4
+
5
+ import { type ComponentFunction, type Theme } from '@dxos/ui-types';
6
+
7
+ import { mx } from '../../util';
8
+
9
+ export type CardStyleProps = {
10
+ border?: boolean;
11
+ fullWidth?: boolean;
12
+ srOnly?: boolean;
13
+ variant?: 'default' | 'subtitle' | 'description';
14
+ coarse?: boolean;
15
+ truncate?: boolean;
16
+ };
17
+
18
+ const cardRoot: ComponentFunction<CardStyleProps> = ({ border, fullWidth }, ...etc) =>
19
+ mx(
20
+ 'dx-card group/card relative flex flex-col w-full min-h-(--dx-rail-item) dx-card-min-width overflow-hidden',
21
+ border &&
22
+ 'bg-card-surface border border-separator dark:border-subdued-separator rounded-xs dx-focus-ring-group-y-indicator',
23
+ fullWidth && 'max-w-none!',
24
+ ...etc,
25
+ );
26
+
27
+ const cardToolbar: ComponentFunction<CardStyleProps> = ({ coarse }, ...etc) =>
28
+ mx(
29
+ 'dx-card__toolbar dx-density-fine bg-transparent col-span-3 !grid grid-cols-subgrid [contain:none]',
30
+ coarse && 'grid-cols-[var(--dx-l0-avatar-size)_minmax(0,1fr)_var(--dx-rail-item)]',
31
+ ...etc,
32
+ );
33
+
34
+ const cardTitle: ComponentFunction<CardStyleProps> = (_props, ...etc) => mx('dx-card__title grow truncate', ...etc);
35
+
36
+ const cardContent: ComponentFunction<CardStyleProps> = (_props, ...etc) =>
37
+ mx('dx-card__content contents [&>:last-child]:pb-1', ...etc);
38
+
39
+ const cardHeading: ComponentFunction<CardStyleProps> = ({ variant = 'default' }, ...etc) =>
40
+ mx(
41
+ 'dx-card__heading',
42
+ variant === 'default' && 'py-1',
43
+ variant === 'subtitle' && 'py-2 text-xs text-description font-medium uppercase',
44
+ ...etc,
45
+ );
46
+
47
+ const cardText: ComponentFunction<CardStyleProps> = ({ variant = 'default', truncate: _truncate }, ...etc) =>
48
+ mx(
49
+ 'dx-card__text flex overflow-hidden',
50
+ variant === 'default' && 'py-1',
51
+ variant === 'description' && 'py-1.5',
52
+ ...etc,
53
+ );
54
+
55
+ const cardTextSpan: ComponentFunction<CardStyleProps> = ({ variant = 'default', truncate }, ...etc) =>
56
+ mx(variant === 'description' && 'text-sm text-description line-clamp-3', truncate && 'truncate', ...etc);
57
+
58
+ const cardPoster: ComponentFunction<CardStyleProps> = (_props, ...etc) =>
59
+ mx('dx-card__poster col-span-3 max-h-[200px]', ...etc);
60
+
61
+ const cardPosterIcon: ComponentFunction<CardStyleProps> = (_props, ...etc) =>
62
+ mx('dx-card__poster-icon col-span-3 grid place-items-center bg-input-surface text-subdued max-h-[200px]', ...etc);
63
+
64
+ const cardAction: ComponentFunction<CardStyleProps> = (_props, ...etc) =>
65
+ mx('dx-card__acztion col-span-3 !grid grid-cols-subgrid p-0! w-full text-start overflow-hidden', ...etc);
66
+
67
+ const cardActionLabel: ComponentFunction<CardStyleProps> = (_props, ...etc) =>
68
+ mx('dx-card__action-label min-w-0 flex-1 truncate', ...etc);
69
+
70
+ const cardLink: ComponentFunction<CardStyleProps> = (_props, ...etc) =>
71
+ mx('dx-card__link col-span-3 !grid grid-cols-subgrid group p-0! dx-button dx-focus-ring min-h-1!', ...etc);
72
+
73
+ const cardLinkLabel: ComponentFunction<CardStyleProps> = (_props, ...etc) =>
74
+ mx('dx-card__link-label min-w-0 flex-1 truncate', ...etc);
75
+
76
+ const cardIconBlock: ComponentFunction<CardStyleProps> = (_props, ...etc) =>
77
+ mx('dx-card__icon-block grid h-[var(--dx-rail-item)] w-[var(--dx-rail-item)] place-items-center', ...etc);
78
+
79
+ export const cardTheme: Theme<CardStyleProps> = {
80
+ root: cardRoot,
81
+ toolbar: cardToolbar,
82
+ title: cardTitle,
83
+ content: cardContent,
84
+ heading: cardHeading,
85
+ text: cardText,
86
+ 'text-span': cardTextSpan,
87
+ poster: cardPoster,
88
+ 'poster-icon': cardPosterIcon,
89
+ action: cardAction,
90
+ 'action-label': cardActionLabel,
91
+ link: cardLink,
92
+ 'link-label': cardLinkLabel,
93
+ 'icon-block': cardIconBlock,
94
+ };
@@ -5,15 +5,14 @@
5
5
  import { type ComponentFunction, type Elevation, type Theme } from '@dxos/ui-types';
6
6
 
7
7
  import { mx } from '../../util';
8
- import { descriptionText } from '../fragments';
9
8
 
10
9
  export type DialogSize = 'sm' | 'md' | 'lg' | 'xl';
11
10
 
12
11
  const sizeMap: Record<DialogSize, string> = {
13
- sm: 'md:!max-is-[24rem]',
14
- md: 'md:!max-is-[32rem]',
15
- lg: 'md:!max-is-[40rem]',
16
- xl: 'md:!max-is-[60rem]',
12
+ sm: 'md:max-w-[24rem]',
13
+ md: 'md:max-w-[32rem]!',
14
+ lg: 'md:max-w-[40rem]!',
15
+ xl: 'md:max-w-[60rem]!',
17
16
  };
18
17
 
19
18
  export type DialogStyleProps = {
@@ -25,28 +24,37 @@ export type DialogStyleProps = {
25
24
 
26
25
  export const dialogOverlay: ComponentFunction<DialogStyleProps> = (_props, ...etc) => mx('dx-dialog__overlay', ...etc);
27
26
 
28
- export const dialogContent: ComponentFunction<DialogStyleProps> = ({ inOverlayLayout, size }, ...etc) => {
27
+ export const dialogContent: ComponentFunction<DialogStyleProps> = ({ inOverlayLayout, size = 'md' }, ...etc) => {
29
28
  return mx(
30
- '@container dx-dialog__content dx-focus-ring modal-surface density-coarse is-full gap-2',
29
+ '@container',
30
+ 'dx-dialog__content dx-focus-ring dx-modal-surface dx-density-coarse py-4',
31
31
  !inOverlayLayout && 'fixed z-50 top-[50%] left-[50%] -translate-x-[50%] -translate-y-[50%]',
32
- size && sizeMap[size],
32
+ sizeMap[size],
33
33
  ...etc,
34
34
  );
35
35
  };
36
36
 
37
37
  export const dialogHeader: ComponentFunction<DialogStyleProps> = (_props, ...etc) =>
38
- mx('dx-dialog__header flex items-center justify-between', ...etc);
38
+ mx('dx-dialog__header flex pb-4 items-center justify-between', ...etc);
39
+
40
+ export const dialogBody: ComponentFunction<DialogStyleProps> = (_props, ...etc) =>
41
+ mx('dx-dialog__body flex flex-col h-full py-2 gap-2', ...etc);
42
+
43
+ export const dialogActionBar: ComponentFunction<DialogStyleProps> = (_props, ...etc) =>
44
+ mx('dx-dialog__actionbar flex items-center pt-4 gap-2 dx-density-coarse', ...etc);
39
45
 
40
46
  export const dialogTitle: ComponentFunction<DialogStyleProps> = ({ srOnly }, ...etc) =>
41
47
  mx('dx-dialog__title', srOnly && 'sr-only', ...etc);
42
48
 
43
49
  export const dialogDescription: ComponentFunction<DialogStyleProps> = ({ srOnly }, ...etc) =>
44
- mx('dx-dialog__description', descriptionText, srOnly && 'sr-only', ...etc);
50
+ mx('dx-dialog__description', 'text-description', srOnly && 'sr-only', ...etc);
45
51
 
46
52
  export const dialogTheme: Theme<DialogStyleProps> = {
47
53
  overlay: dialogOverlay,
48
54
  content: dialogContent,
49
55
  header: dialogHeader,
56
+ body: dialogBody,
57
+ actionbar: dialogActionBar,
50
58
  title: dialogTitle,
51
59
  description: dialogDescription,
52
60
  };
@@ -12,7 +12,7 @@ export type IconButtonStyleProps = ButtonStyleProps & { iconOnly?: boolean };
12
12
 
13
13
  // TODO(burdon): Gap/font size should depend on density.
14
14
  export const iconButtonRoot: ComponentFunction<IconButtonStyleProps> = ({ iconOnly }, ...etc) => {
15
- return mx('gap-2', iconOnly && 'p-iconButtonPadding min-bs-0', ...etc);
15
+ return mx('gap-2', iconOnly && 'p-icon-button-padding min-h-0', ...etc);
16
16
  };
17
17
 
18
18
  export const iconButtonTheme: Theme<IconButtonStyleProps> = {
@@ -4,15 +4,15 @@
4
4
 
5
5
  import { type ComponentFunction, type Size, type Theme } from '@dxos/ui-types';
6
6
 
7
+ import { getSize } from '../../fragments';
7
8
  import { mx } from '../../util';
8
- import { getSize } from '../fragments';
9
9
 
10
10
  export type IconStyleProps = {
11
11
  size?: Size;
12
12
  };
13
13
 
14
14
  export const iconRoot: ComponentFunction<IconStyleProps> = ({ size }, etc) =>
15
- mx('shrink-0 bs-[1em] is-[1em] text-[var(--icons-color,currentColor)]', size && getSize(size), etc);
15
+ mx('shrink-0 h-[1em] w-[1em] text-[var(--icons-color,currentColor)]', size && getSize(size), etc);
16
16
 
17
17
  export const iconTheme: Theme<IconStyleProps> = {
18
18
  root: iconRoot,
@@ -2,9 +2,9 @@
2
2
  // Copyright 2023 DXOS.org
3
3
  //
4
4
 
5
- export * from './anchored-overflow';
6
5
  export * from './avatar';
7
6
  export * from './breadcrumb';
7
+ export * from './card';
8
8
  export * from './button';
9
9
  export * from './dialog';
10
10
  export * from './icon';
@@ -18,7 +18,9 @@ export * from './message';
18
18
  export * from './popover';
19
19
  export * from './scroll-area';
20
20
  export * from './select';
21
+ export * from './splitter';
21
22
  export * from './separator';
23
+ export * from './skeleton';
22
24
  export * from './status';
23
25
  export * from './tag';
24
26
  export * from './toast';
@@ -0,0 +1,186 @@
1
+ //
2
+ // Copyright 2023 DXOS.org
3
+ //
4
+
5
+ import {
6
+ type ComponentFragment,
7
+ type ComponentFunction,
8
+ type Density,
9
+ type Elevation,
10
+ type MessageValence,
11
+ type Size,
12
+ } from '@dxos/ui-types';
13
+
14
+ import {
15
+ coarseBlockSize,
16
+ coarseDimensions,
17
+ computeSize,
18
+ fineBlockSize,
19
+ fineDimensions,
20
+ focusRing,
21
+ getSize,
22
+ getSizeHeight,
23
+ getSizeWidth,
24
+ sizeValue,
25
+ staticDisabled,
26
+ staticFocusRing,
27
+ subduedFocus,
28
+ textValence,
29
+ } from '../../fragments';
30
+ import { mx } from '../../util';
31
+
32
+ export type InputStyleProps = Partial<{
33
+ variant: 'default' | 'subdued' | 'static';
34
+ density: Density;
35
+ disabled: boolean;
36
+ elevation: Elevation;
37
+ focused: boolean;
38
+ validationValence: MessageValence;
39
+ size: Size;
40
+ checked: boolean;
41
+ }>;
42
+
43
+ export type InputMetaStyleProps = Partial<{
44
+ srOnly: boolean;
45
+ validationValence: MessageValence;
46
+ }>;
47
+
48
+ export const inputTextLabel = 'py-1 text-sm text-description';
49
+
50
+ const textInputSurfaceFocus =
51
+ 'transition-colors bg-input-surface focus:bg-focus-surface border border-separator focus:border-separator';
52
+
53
+ const textInputSurfaceHover = 'hover:bg-focus-surface';
54
+
55
+ const booleanInputSurface =
56
+ 'shadow-inner transition-colors bg-un-accent aria-checked:bg-accent-surface aria-[checked=mixed]:bg-accent-surface';
57
+
58
+ const booleanInputSurfaceHover =
59
+ 'hover:bg-un-accent-hover hover:aria-checked:bg-accent-surface-hover hover:aria-[checked=mixed]:bg-accent-surface-hover';
60
+
61
+ // TODO(burdon): Replace with semantic tokens.
62
+ const inputValence = (valence?: MessageValence) => {
63
+ switch (valence) {
64
+ case 'success':
65
+ return 'shadow-emerald-500/50 dark:shadow-emerald-600/50';
66
+ case 'info':
67
+ return 'shadow-cyan-500/50 dark:shadow-cyan-600/50';
68
+ case 'warning':
69
+ return 'shadow-amber-500/50 dark:shadow-amber-600/50';
70
+ case 'error':
71
+ return 'shadow-rose-500/50 dark:shadow-rose-600/50';
72
+ }
73
+ };
74
+
75
+ const sharedSubduedInputStyles: ComponentFragment<InputStyleProps> = (props) => [
76
+ 'py-0 w-full bg-transparent text-current placeholder-placeholder',
77
+ '[[data-drag-autoscroll="active"]_&]:pointer-events-none',
78
+ props.density === 'fine' ? fineBlockSize : coarseBlockSize,
79
+ subduedFocus,
80
+ props.disabled && staticDisabled,
81
+ ];
82
+
83
+ const sharedDefaultInputStyles: ComponentFragment<InputStyleProps> = (props) => [
84
+ 'py-0 w-full text-base-surface-text rounded-xs placeholder-placeholder',
85
+ '[[data-drag-autoscroll="active"]_&]:pointer-events-none',
86
+ textInputSurfaceFocus,
87
+ props.density === 'fine' ? fineDimensions : coarseDimensions,
88
+ props.disabled ? staticDisabled : textInputSurfaceHover,
89
+ ];
90
+
91
+ const sharedStaticInputStyles: ComponentFragment<InputStyleProps> = (props) => [
92
+ 'py-0 w-full text-base-surface-text rounded-xs placeholder-placeholder',
93
+ '[[data-drag-autoscroll="active"]_&]:pointer-events-none',
94
+ textInputSurfaceFocus,
95
+ textInputSurfaceHover,
96
+ props.focused && 'bg-attention-surface',
97
+ inputValence(props.validationValence),
98
+ props.disabled && staticDisabled,
99
+ props.focused && staticFocusRing,
100
+ ];
101
+
102
+ const inputInput: ComponentFunction<InputStyleProps> = (props, ...etc) =>
103
+ props.variant === 'subdued'
104
+ ? mx(...sharedSubduedInputStyles(props), ...etc)
105
+ : props.variant === 'static'
106
+ ? mx(...sharedStaticInputStyles(props), ...etc)
107
+ : mx(
108
+ ...sharedDefaultInputStyles(props),
109
+ !props.disabled && focusRing,
110
+ inputValence(props.validationValence),
111
+ ...etc,
112
+ );
113
+
114
+ const inputTextArea: ComponentFunction<InputStyleProps> = (props, ...etc) => inputInput(props, ...['-mb-1.5', ...etc]);
115
+
116
+ const inputCheckbox: ComponentFunction<InputStyleProps> = ({ size = 5 }, ...etc) =>
117
+ mx('dx-checkbox dx-focus-ring', getSize(size), ...etc);
118
+
119
+ const inputCheckboxIndicator: ComponentFunction<InputStyleProps> = ({ size = 5, checked }, ...etc) =>
120
+ mx(getSize(computeSize(sizeValue(size) * 0.65, 4)), !checked && 'invisible', ...etc);
121
+
122
+ const inputSwitch: ComponentFunction<InputStyleProps> = ({ size = 5, disabled }, ...etc) =>
123
+ mx(
124
+ getSizeHeight(size),
125
+ getSizeWidth(computeSize(sizeValue(size) * 1.75, 9)),
126
+ booleanInputSurface,
127
+ !disabled && booleanInputSurfaceHover,
128
+ // TODO(burdon): Added m-1 margin to make 40px width to align with 40px icon button.
129
+ 'cursor-pointer shrink-0 rounded-full px-1 mx-1 relative',
130
+ focusRing,
131
+ ...etc,
132
+ );
133
+
134
+ const inputSwitchThumb: ComponentFunction<InputStyleProps> = ({ size = 5 }, ...etc) =>
135
+ mx(
136
+ getSize(size === 'px' ? 'px' : ((size - 2) as Size)),
137
+ 'block bg-white rounded-full transition-transform duration-100 will-change-transform data-[state=checked]:translate-x-[100%]',
138
+ ...etc,
139
+ );
140
+
141
+ const inputWithSegmentsInput: ComponentFunction<InputStyleProps> = (props, ...etc) =>
142
+ mx(
143
+ 'font-mono selection:bg-transparent mx-auto',
144
+ props.density === 'fine' ? 'text-base pointer-fine:text-sm' : 'text-lg',
145
+ props.disabled && 'cursor-not-allowed',
146
+ ...etc,
147
+ );
148
+
149
+ const inputSegment: ComponentFunction<InputStyleProps> = (props, ...etc) =>
150
+ mx(
151
+ 'flex items-center justify-center font-mono',
152
+ props.density === 'fine' ? 'size-10 pointer-fine:size-8 rounded-xs' : 'size-12 rounded-xs',
153
+ 'bg-input-surface text-base-surface-text transition-colors border border-separator',
154
+ 'data-[focused]:bg-attention-surface data-[focused]:border-neutral-focus-indicator',
155
+ 'data-[focused]:ring-2 data-[focused]:ring-offset-0 data-[focused]:ring-neutral-focus-indicator',
156
+ inputValence(props.validationValence),
157
+ props.disabled && staticDisabled,
158
+ ...etc,
159
+ );
160
+
161
+ const inputLabel: ComponentFunction<InputMetaStyleProps> = (props, ...etc) =>
162
+ mx('block', inputTextLabel, props.srOnly && 'sr-only', ...etc);
163
+
164
+ const inputDescription: ComponentFunction<InputMetaStyleProps> = (props, ...etc) =>
165
+ mx('text-description', props.srOnly && 'sr-only', ...etc);
166
+
167
+ const inputDescriptionAndValidation: ComponentFunction<InputMetaStyleProps> = (props, ...etc) =>
168
+ mx('leading-none my-1.5', props.srOnly && 'sr-only', ...etc);
169
+
170
+ const inputValidation: ComponentFunction<InputMetaStyleProps> = (props, ...etc) =>
171
+ mx(inputTextLabel, props.srOnly ? 'sr-only' : textValence(props.validationValence), ...etc);
172
+
173
+ export const inputTheme = {
174
+ input: inputInput,
175
+ textArea: inputTextArea,
176
+ inputWithSegments: inputWithSegmentsInput,
177
+ segment: inputSegment,
178
+ checkbox: inputCheckbox,
179
+ checkboxIndicator: inputCheckboxIndicator,
180
+ label: inputLabel,
181
+ description: inputDescription,
182
+ switch: inputSwitch,
183
+ switchThumb: inputSwitchThumb,
184
+ validation: inputValidation,
185
+ descriptionAndValidation: inputDescriptionAndValidation,
186
+ };
@@ -4,8 +4,8 @@
4
4
 
5
5
  import { type ComponentFunction, type Theme } from '@dxos/ui-types';
6
6
 
7
+ import { focusRing } from '../../fragments';
7
8
  import { mx } from '../../util';
8
- import { focusRing } from '../fragments';
9
9
 
10
10
  export type LinkStyleProps = {
11
11
  variant?: 'accent' | 'neutral';
@@ -13,10 +13,10 @@ export type LinkStyleProps = {
13
13
 
14
14
  export const linkRoot: ComponentFunction<LinkStyleProps> = ({ variant }, ...etc) =>
15
15
  mx(
16
- 'underline decoration-1 underline-offset-2 transition-color rounded-sm',
16
+ 'underline decoration-1 underline-offset-2 transition-color rounded-xs',
17
17
  variant === 'neutral'
18
18
  ? 'text-inherit hover:opacity-90 visited:text-inherit visited:hover:opacity-90'
19
- : 'text-accentText hover:text-accentTextHover visited:text-accentText visited:hover:text-accentTextHover',
19
+ : 'text-accent-text hover:text-accent-text-hover visited:text-accent-text visited:hover:text-accent-text-hover',
20
20
  focusRing,
21
21
  ...etc,
22
22
  );
@@ -4,8 +4,8 @@
4
4
 
5
5
  import { type ComponentFunction, type Density, type Theme } from '@dxos/ui-types';
6
6
 
7
+ import { densityBlockSize, focusRing, getSize, ghostHover } from '../../fragments';
7
8
  import { mx } from '../../util';
8
- import { densityBlockSize, focusRing, getSize, ghostHover } from '../fragments';
9
9
 
10
10
  export type ListStyleProps = Partial<{
11
11
  density: Density;
@@ -24,10 +24,10 @@ export const listItemHeading: ComponentFunction<ListStyleProps> = ({ density },
24
24
  mx(densityBlockSize(density), 'flex items-center', ...etc);
25
25
 
26
26
  export const listItemDragHandleIcon: ComponentFunction<ListStyleProps> = (_props, ...etc) =>
27
- mx(getSize(5), 'mbs-2.5', ...etc);
27
+ mx(getSize(5), 'mt-2.5', ...etc);
28
28
 
29
29
  export const listItemOpenTrigger: ComponentFunction<ListStyleProps> = ({ density }, ...etc) =>
30
- mx('is-5 rounded flex justify-center items-center', densityBlockSize(density), ghostHover, focusRing, ...etc);
30
+ mx('w-5 rounded-sm flex justify-center items-center', densityBlockSize(density), ghostHover, focusRing, ...etc);
31
31
 
32
32
  export const listItemOpenTriggerIcon: ComponentFunction<ListStyleProps> = (_props, ...etc) => {
33
33
  return mx(getSize(5), ...etc);
@@ -7,8 +7,8 @@ import { type ComponentFunction } from '@dxos/ui-types';
7
7
  import { mx } from '../../util';
8
8
 
9
9
  // Padding to apply to in-flow elements which need to clear the fixed topbar/bottombar.
10
- export const topbarBlockPaddingStart = 'pbs-[--topbar-size] sticky-top-from-topbar-bottom';
11
- export const bottombarBlockPaddingEnd = 'pbe-[--statusbar-size] sticky-bottom-from-statusbar-bottom';
10
+ export const topbarBlockPaddingStart = 'py-(--dx-topbar-size) dx-sticky-top-from-topbar-bottom';
11
+ export const bottombarBlockPaddingEnd = 'pb-(--dx-statusbar-size) dx-sticky-bottom-from-statusbar-bottom';
12
12
 
13
13
  export const mainPadding = 'dx-main-content-padding';
14
14
  export const mainPaddingTransitions = 'dx-main-content-padding-transitions';
@@ -25,14 +25,10 @@ export const mainContent: ComponentFunction<MainStyleProps> = ({ bounce }, ...et
25
25
  export const mainSidebar: ComponentFunction<MainStyleProps> = (_, ...etc) =>
26
26
  mx('dx-main-sidebar', 'dx-focus-ring-inset-over-all', ...etc);
27
27
 
28
- export const mainDrawer: ComponentFunction<MainStyleProps> = (_, ...etc) =>
29
- mx('dx-main-drawer', 'dx-focus-ring-inset-over-all', ...etc);
30
-
31
28
  export const mainOverlay: ComponentFunction<MainStyleProps> = (_, ...etc) => mx('dx-main-overlay', ...etc);
32
29
 
33
30
  export const mainTheme = {
34
31
  content: mainContent,
35
32
  sidebar: mainSidebar,
36
- drawer: mainDrawer,
37
33
  overlay: mainOverlay,
38
34
  };
@@ -4,49 +4,39 @@
4
4
 
5
5
  import { type ComponentFunction, type Elevation, type Theme } from '@dxos/ui-types';
6
6
 
7
+ import { dataDisabled, subduedFocus, surfaceShadow, surfaceZIndex } from '../../fragments';
7
8
  import { mx } from '../../util';
8
- import {
9
- dataDisabled,
10
- descriptionText,
11
- modalSurface,
12
- popperMotion,
13
- subduedFocus,
14
- surfaceShadow,
15
- surfaceZIndex,
16
- } from '../fragments';
17
9
 
18
10
  export type MenuStyleProps = Partial<{
19
11
  constrainBlockSize: boolean;
20
12
  elevation: Elevation;
21
13
  }>;
22
14
 
23
- export const menuViewport: ComponentFunction<MenuStyleProps> = (_props, ...etc) =>
24
- mx('rounded p-1 max-bs-[--radix-dropdown-menu-content-available-height] overflow-y-auto', ...etc);
25
-
26
15
  export const menuContent: ComponentFunction<MenuStyleProps> = ({ elevation }, ...etc) =>
27
16
  mx(
28
- 'is-48 rounded md:is-56 border border-separator',
17
+ 'dx-modal-surface w-48 rounded-sm md:w-56 border border-separator',
29
18
  surfaceZIndex({ elevation, level: 'menu' }),
30
19
  surfaceShadow({ elevation: 'positioned' }),
31
- modalSurface,
32
- popperMotion,
33
20
  ...etc,
34
21
  );
35
22
 
23
+ export const menuViewport: ComponentFunction<MenuStyleProps> = (_props, ...etc) =>
24
+ mx('rounded-sm p-1 max-h-[var(--radix-dropdown-menu-content-available-height)] overflow-y-auto', ...etc);
25
+
36
26
  export const menuItem: ComponentFunction<MenuStyleProps> = (_props, ...etc) =>
37
27
  mx(
38
- 'flex cursor-pointer select-none items-center gap-2 rounded-sm pli-2 plb-2 text-sm',
39
- 'data-[highlighted]:bg-hoverSurface',
28
+ 'flex cursor-pointer select-none items-center gap-2 rounded-xs px-2 py-2 text-sm',
29
+ 'data-[highlighted]:bg-hover-surface',
40
30
  subduedFocus,
41
31
  dataDisabled,
42
32
  ...etc,
43
33
  );
44
34
 
45
35
  export const menuSeparator: ComponentFunction<MenuStyleProps> = (_props, ...etc) =>
46
- mx('mlb-1 mli-2 bs-px bg-separator', ...etc);
36
+ mx('my-1 mx-2 h-px bg-separator', ...etc);
47
37
 
48
38
  export const menuGroupLabel: ComponentFunction<MenuStyleProps> = (_props, ...etc) =>
49
- mx(descriptionText, 'select-none pli-2 plb-2', ...etc);
39
+ mx('text-description', 'select-none px-2 py-2', ...etc);
50
40
 
51
41
  export const menuArrow: ComponentFunction<MenuStyleProps> = (_props, ...etc) => mx('fill-separator', ...etc);
52
42
 
@@ -4,8 +4,8 @@
4
4
 
5
5
  import { type ComponentFunction, type Elevation, type MessageValence, type Theme } from '@dxos/ui-types';
6
6
 
7
+ import { messageValence } from '../../fragments';
7
8
  import { mx } from '../../util';
8
- import { messageValence } from '../fragments';
9
9
 
10
10
  export type MessageStyleProps = {
11
11
  valence?: MessageValence;
@@ -13,24 +13,29 @@ export type MessageStyleProps = {
13
13
  };
14
14
 
15
15
  export const messageRoot: ComponentFunction<MessageStyleProps> = ({ valence }, etc) => {
16
- return mx('p-trimSm rounded-md', messageValence(valence), etc);
16
+ return mx('grid grid-cols-[min-content_1fr] gap-x-2 p-trim-sm rounded-sm', messageValence(valence), etc);
17
+ };
18
+
19
+ export const messageHeader: ComponentFunction<MessageStyleProps> = (_, etc) => {
20
+ return mx('col-span-2 grid grid-cols-subgrid items-center', etc);
17
21
  };
18
22
 
19
23
  export const messageTitle: ComponentFunction<MessageStyleProps> = (_, etc) => {
20
- return mx('font-medium flex gap-trimSm', etc);
24
+ return mx('col-start-2 text-lg gap-trim-sm [&>svg]:inline-block', etc);
21
25
  };
22
26
 
23
27
  export const messageIcon: ComponentFunction<MessageStyleProps> = (_, etc) => {
24
- return mx('flex bs-[1lh] items-center', etc);
28
+ return mx('col-start-1', etc);
25
29
  };
26
30
 
27
31
  export const messageContent: ComponentFunction<MessageStyleProps> = (_, etc) => {
28
- return mx('first:font-medium', etc);
32
+ return mx('grid grid-cols-subgrid col-start-2 first:font-medium', etc);
29
33
  };
30
34
 
31
35
  export const messageTheme: Theme<MessageStyleProps> = {
32
36
  root: messageRoot,
33
- content: messageContent,
37
+ header: messageHeader,
34
38
  icon: messageIcon,
35
39
  title: messageTitle,
40
+ content: messageContent,
36
41
  };
@@ -4,8 +4,8 @@
4
4
 
5
5
  import { type ComponentFunction, type Elevation, type Theme } from '@dxos/ui-types';
6
6
 
7
+ import { focusRing, surfaceShadow, surfaceZIndex } from '../../fragments';
7
8
  import { mx } from '../../util';
8
- import { focusRing, modalSurface, surfaceShadow, surfaceZIndex } from '../fragments';
9
9
 
10
10
  export type PopoverStyleProps = Partial<{
11
11
  constrainBlock: boolean;
@@ -13,24 +13,26 @@ export type PopoverStyleProps = Partial<{
13
13
  elevation: Elevation;
14
14
  }>;
15
15
 
16
- export const popoverViewport: ComponentFunction<PopoverStyleProps> = ({ constrainBlock, constrainInline }, ...etc) =>
17
- mx(
18
- 'rounded-md',
19
- constrainBlock && 'max-bs-[--radix-popover-content-available-height] overflow-y-auto',
20
- constrainInline && 'max-is-[--radix-popover-content-available-width] overflow-x-auto',
21
- ...etc,
22
- );
23
-
24
16
  export const popoverContent: ComponentFunction<PopoverStyleProps> = ({ elevation }, ...etc) =>
25
17
  mx(
26
- 'border border-separator rounded-md',
27
- modalSurface,
18
+ 'dx-modal-surface border border-separator rounded-sm',
28
19
  surfaceShadow({ elevation: 'positioned' }),
29
20
  surfaceZIndex({ elevation, level: 'menu' }),
30
21
  focusRing,
31
22
  ...etc,
32
23
  );
33
24
 
25
+ export const popoverViewport: ComponentFunction<PopoverStyleProps> = ({ constrainBlock, constrainInline }, ...etc) =>
26
+ mx(
27
+ 'flex flex-col min-h-0 min-w-popover-min-width',
28
+ (constrainBlock || constrainInline) && 'overflow-hidden',
29
+ // Ensures it respects available height from Radix (or 100dvh).
30
+ constrainBlock &&
31
+ 'max-h-[min(var(--radix-popover-content-available-height),calc(100dvh-var(--spacing-screen-border)*2))]',
32
+ constrainInline && 'max-w-(--radix-popover-content-available-width)',
33
+ ...etc,
34
+ );
35
+
34
36
  export const popoverArrow: ComponentFunction<PopoverStyleProps> = (_props, ...etc) => mx('fill-separator', ...etc);
35
37
 
36
38
  export const popoverTheme: Theme<PopoverStyleProps> = {