@dxos/ui-theme 0.8.4-main.3eb6e50203 → 0.8.4-main.422d1c7879

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 (393) hide show
  1. package/dist/lib/browser/index.mjs +768 -2890
  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 +768 -2890
  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/main.css +1558 -0
  8. package/dist/plugin/node-cjs/main.css.map +7 -0
  9. package/dist/plugin/node-cjs/meta.json +1 -1
  10. package/dist/plugin/node-cjs/plugins/ThemePlugin.cjs +137 -0
  11. package/dist/plugin/node-cjs/plugins/ThemePlugin.cjs.map +7 -0
  12. package/dist/plugin/node-esm/main.css +1558 -0
  13. package/dist/plugin/node-esm/main.css.map +7 -0
  14. package/dist/plugin/node-esm/meta.json +1 -1
  15. package/dist/plugin/node-esm/plugins/ThemePlugin.mjs +105 -0
  16. package/dist/plugin/node-esm/plugins/ThemePlugin.mjs.map +7 -0
  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 +4 -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/fragments/hover.d.ts +10 -0
  25. package/dist/types/src/fragments/hover.d.ts.map +1 -0
  26. package/dist/types/src/fragments/index.d.ts +5 -0
  27. package/dist/types/src/fragments/index.d.ts.map +1 -0
  28. package/dist/types/src/fragments/text.d.ts +2 -0
  29. package/dist/types/src/fragments/text.d.ts.map +1 -0
  30. package/dist/types/src/index.d.ts +3 -11
  31. package/dist/types/src/index.d.ts.map +1 -1
  32. package/dist/types/src/plugins/ThemePlugin.d.ts +16 -0
  33. package/dist/types/src/plugins/ThemePlugin.d.ts.map +1 -0
  34. package/dist/types/src/plugins/dark-mode.d.ts +1 -0
  35. package/dist/types/src/plugins/dark-mode.d.ts.map +1 -0
  36. package/dist/types/src/theme/components/avatar.d.ts.map +1 -0
  37. package/dist/types/src/theme/components/breadcrumb.d.ts.map +1 -0
  38. package/dist/types/src/theme/components/button.d.ts +15 -0
  39. package/dist/types/src/theme/components/button.d.ts.map +1 -0
  40. package/dist/types/src/theme/components/card.d.ts +12 -0
  41. package/dist/types/src/theme/components/card.d.ts.map +1 -0
  42. package/dist/types/src/theme/components/dialog.d.ts.map +1 -0
  43. package/dist/types/src/theme/components/focus.d.ts +6 -0
  44. package/dist/types/src/theme/components/focus.d.ts.map +1 -0
  45. package/dist/types/src/theme/components/icon-button.d.ts.map +1 -0
  46. package/dist/types/src/{styles → theme}/components/icon.d.ts +3 -0
  47. package/dist/types/src/theme/components/icon.d.ts.map +1 -0
  48. package/dist/types/src/{styles → theme}/components/index.d.ts +3 -1
  49. package/dist/types/src/theme/components/index.d.ts.map +1 -0
  50. package/dist/types/src/{styles → theme}/components/input.d.ts +25 -20
  51. package/dist/types/src/theme/components/input.d.ts.map +1 -0
  52. package/dist/types/src/theme/components/link.d.ts.map +1 -0
  53. package/dist/types/src/theme/components/list.d.ts.map +1 -0
  54. package/dist/types/src/{styles → theme}/components/main.d.ts +2 -2
  55. package/dist/types/src/theme/components/main.d.ts.map +1 -0
  56. package/dist/types/src/{styles → theme}/components/menu.d.ts +1 -1
  57. package/dist/types/src/theme/components/menu.d.ts.map +1 -0
  58. package/dist/types/src/{styles → theme}/components/message.d.ts +1 -0
  59. package/dist/types/src/theme/components/message.d.ts.map +1 -0
  60. package/dist/types/src/{styles → theme}/components/popover.d.ts +1 -1
  61. package/dist/types/src/theme/components/popover.d.ts.map +1 -0
  62. package/dist/types/src/{styles → theme}/components/scroll-area.d.ts +17 -1
  63. package/dist/types/src/theme/components/scroll-area.d.ts.map +1 -0
  64. package/dist/types/src/theme/components/select.d.ts.map +1 -0
  65. package/dist/types/src/theme/components/separator.d.ts.map +1 -0
  66. package/dist/types/src/theme/components/skeleton.d.ts.map +1 -0
  67. package/dist/types/src/theme/components/splitter.d.ts +4 -0
  68. package/dist/types/src/theme/components/splitter.d.ts.map +1 -0
  69. package/dist/types/src/{styles → theme}/components/status.d.ts +1 -1
  70. package/dist/types/src/theme/components/status.d.ts.map +1 -0
  71. package/dist/types/src/theme/components/tag.d.ts.map +1 -0
  72. package/dist/types/src/theme/components/toast.d.ts.map +1 -0
  73. package/dist/types/src/{styles → theme}/components/toolbar.d.ts +2 -2
  74. package/dist/types/src/theme/components/toolbar.d.ts.map +1 -0
  75. package/dist/types/src/theme/components/tooltip.d.ts.map +1 -0
  76. package/dist/types/src/theme/components/treegrid.d.ts.map +1 -0
  77. package/dist/types/src/{styles → theme}/index.d.ts +0 -1
  78. package/dist/types/src/theme/index.d.ts.map +1 -0
  79. package/dist/types/src/theme/primitives/column.d.ts +29 -0
  80. package/dist/types/src/theme/primitives/column.d.ts.map +1 -0
  81. package/dist/types/src/theme/primitives/index.d.ts +3 -0
  82. package/dist/types/src/theme/primitives/index.d.ts.map +1 -0
  83. package/dist/types/src/theme/primitives/panel.d.ts +13 -0
  84. package/dist/types/src/theme/primitives/panel.d.ts.map +1 -0
  85. package/dist/types/src/theme/theme.d.ts.map +1 -0
  86. package/dist/types/src/{styles/fragments → util}/elevation.d.ts +0 -6
  87. package/dist/types/src/util/elevation.d.ts.map +1 -0
  88. package/dist/types/src/util/hash-styles.d.ts +8 -5
  89. package/dist/types/src/util/hash-styles.d.ts.map +1 -1
  90. package/dist/types/src/util/index.d.ts +3 -0
  91. package/dist/types/src/util/index.d.ts.map +1 -1
  92. package/dist/types/src/util/mx.d.ts +56 -0
  93. package/dist/types/src/util/mx.d.ts.map +1 -1
  94. package/dist/types/src/util/size.d.ts +27 -0
  95. package/dist/types/src/util/size.d.ts.map +1 -0
  96. package/dist/types/src/util/valence.d.ts +4 -0
  97. package/dist/types/src/util/valence.d.ts.map +1 -0
  98. package/dist/types/tsconfig.tsbuildinfo +1 -1
  99. package/package.json +22 -32
  100. package/src/Theme.stories.tsx +224 -0
  101. package/src/css/base/base.css +43 -0
  102. package/src/{styles/layers → css/base}/typography.css +3 -5
  103. package/src/{styles/layers → css/components}/button.css +23 -14
  104. package/src/{styles/layers → css/components}/checkbox.css +12 -8
  105. package/src/{styles/layers → css/components}/dialog.css +16 -11
  106. package/src/{styles/layers/focus-ring.css → css/components/focus.css} +60 -41
  107. package/src/css/components/icon.css +9 -0
  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/selected.css +30 -0
  112. package/src/css/components/surface.css +34 -0
  113. package/src/css/components/tag.css +132 -0
  114. package/src/css/components/text.css +124 -0
  115. package/src/css/integrations/codemirror.css +34 -0
  116. package/src/css/integrations/tldraw.css +14 -0
  117. package/src/css/layout/main.css +205 -0
  118. package/src/{styles/layers → css/layout}/native.css +6 -4
  119. package/src/css/layout/positioning.css +19 -0
  120. package/src/{styles/layers → css/layout}/size.css +117 -107
  121. package/src/css/theme/animation.css +260 -0
  122. package/src/css/theme/border.css +23 -0
  123. package/src/css/theme/palette.css +36 -0
  124. package/src/css/theme/semantic.css +116 -0
  125. package/src/css/theme/spacing.css +147 -0
  126. package/src/css/theme/styles.css +145 -0
  127. package/src/css/theme/text.css +37 -0
  128. package/src/css/utilities.css +118 -0
  129. package/src/defs.ts +48 -0
  130. package/src/fragments/AUDIT.md +57 -0
  131. package/src/fragments/density.ts +16 -0
  132. package/src/fragments/hover.ts +18 -0
  133. package/src/fragments/index.ts +10 -0
  134. package/src/fragments/text.ts +6 -0
  135. package/src/index.ts +3 -15
  136. package/src/main.css +87 -0
  137. package/src/plugins/ThemePlugin.ts +125 -0
  138. package/src/plugins/dark-mode.ts +22 -0
  139. package/src/plugins/main.css +45 -0
  140. package/src/{styles → theme}/components/avatar.ts +12 -13
  141. package/src/theme/components/button.ts +48 -0
  142. package/src/theme/components/card.ts +102 -0
  143. package/src/{styles → theme}/components/dialog.ts +13 -12
  144. package/src/theme/components/focus.ts +33 -0
  145. package/src/{styles → theme}/components/icon-button.ts +1 -3
  146. package/src/theme/components/icon.ts +28 -0
  147. package/src/{styles → theme}/components/index.ts +3 -1
  148. package/src/theme/components/input.ts +171 -0
  149. package/src/{styles → theme}/components/link.ts +3 -4
  150. package/src/{styles → theme}/components/list.ts +5 -5
  151. package/src/{styles → theme}/components/main.ts +2 -2
  152. package/src/{styles → theme}/components/menu.ts +11 -13
  153. package/src/{styles → theme}/components/message.ts +11 -7
  154. package/src/{styles → theme}/components/popover.ts +13 -12
  155. package/src/theme/components/scroll-area.ts +115 -0
  156. package/src/{styles → theme}/components/select.ts +8 -16
  157. package/src/{styles → theme}/components/separator.ts +3 -3
  158. package/src/{styles → theme}/components/skeleton.ts +2 -2
  159. package/src/theme/components/splitter.ts +20 -0
  160. package/src/{styles → theme}/components/status.ts +7 -7
  161. package/src/{styles → theme}/components/toast.ts +6 -8
  162. package/src/{styles → theme}/components/toolbar.ts +6 -7
  163. package/src/{styles → theme}/components/tooltip.ts +4 -6
  164. package/src/{styles → theme}/components/treegrid.ts +9 -9
  165. package/src/{styles → theme}/index.ts +1 -2
  166. package/src/theme/primitives/column.ts +71 -0
  167. package/src/theme/primitives/index.ts +6 -0
  168. package/src/theme/primitives/panel.ts +43 -0
  169. package/src/{styles → theme}/theme.ts +11 -6
  170. package/src/typings.d.ts +3 -1
  171. package/src/{styles/fragments → util}/elevation.ts +6 -8
  172. package/src/util/hash-styles.ts +118 -98
  173. package/src/util/index.ts +3 -0
  174. package/src/util/mx.ts +165 -43
  175. package/src/util/size.ts +103 -0
  176. package/src/util/valence.ts +33 -0
  177. package/dist/plugin/node-cjs/chunk-TH5YZMTA.cjs +0 -1633
  178. package/dist/plugin/node-cjs/chunk-TH5YZMTA.cjs.map +0 -7
  179. package/dist/plugin/node-cjs/chunk-UUMDOU7E.cjs +0 -79
  180. package/dist/plugin/node-cjs/chunk-UUMDOU7E.cjs.map +0 -7
  181. package/dist/plugin/node-cjs/config/tailwind.cjs +0 -29
  182. package/dist/plugin/node-cjs/config/tailwind.cjs.map +0 -7
  183. package/dist/plugin/node-cjs/plugins/esbuild-plugin.cjs +0 -90
  184. package/dist/plugin/node-cjs/plugins/esbuild-plugin.cjs.map +0 -7
  185. package/dist/plugin/node-cjs/plugins/plugin.cjs +0 -124
  186. package/dist/plugin/node-cjs/plugins/plugin.cjs.map +0 -7
  187. package/dist/plugin/node-cjs/theme.css +0 -1378
  188. package/dist/plugin/node-cjs/theme.css.map +0 -7
  189. package/dist/plugin/node-esm/chunk-6EGZAB2N.mjs +0 -1628
  190. package/dist/plugin/node-esm/chunk-6EGZAB2N.mjs.map +0 -7
  191. package/dist/plugin/node-esm/chunk-AFRHJHP4.mjs +0 -49
  192. package/dist/plugin/node-esm/chunk-AFRHJHP4.mjs.map +0 -7
  193. package/dist/plugin/node-esm/config/tailwind.mjs +0 -8
  194. package/dist/plugin/node-esm/config/tailwind.mjs.map +0 -7
  195. package/dist/plugin/node-esm/plugins/esbuild-plugin.mjs +0 -63
  196. package/dist/plugin/node-esm/plugins/esbuild-plugin.mjs.map +0 -7
  197. package/dist/plugin/node-esm/plugins/plugin.mjs +0 -98
  198. package/dist/plugin/node-esm/plugins/plugin.mjs.map +0 -7
  199. package/dist/plugin/node-esm/theme.css +0 -1378
  200. package/dist/plugin/node-esm/theme.css.map +0 -7
  201. package/dist/types/src/Tokens.stories.d.ts +0 -10
  202. package/dist/types/src/Tokens.stories.d.ts.map +0 -1
  203. package/dist/types/src/config/index.d.ts +0 -3
  204. package/dist/types/src/config/index.d.ts.map +0 -1
  205. package/dist/types/src/config/tailwind.d.ts +0 -9
  206. package/dist/types/src/config/tailwind.d.ts.map +0 -1
  207. package/dist/types/src/config/tokens/colors/alias-colors.d.ts +0 -21
  208. package/dist/types/src/config/tokens/colors/alias-colors.d.ts.map +0 -1
  209. package/dist/types/src/config/tokens/colors/index.d.ts +0 -5
  210. package/dist/types/src/config/tokens/colors/index.d.ts.map +0 -1
  211. package/dist/types/src/config/tokens/colors/physical-colors.d.ts +0 -23
  212. package/dist/types/src/config/tokens/colors/physical-colors.d.ts.map +0 -1
  213. package/dist/types/src/config/tokens/colors/semantic-colors.d.ts +0 -192
  214. package/dist/types/src/config/tokens/colors/semantic-colors.d.ts.map +0 -1
  215. package/dist/types/src/config/tokens/colors/sememes-calls.d.ts +0 -3
  216. package/dist/types/src/config/tokens/colors/sememes-calls.d.ts.map +0 -1
  217. package/dist/types/src/config/tokens/colors/sememes-codemirror.d.ts +0 -43
  218. package/dist/types/src/config/tokens/colors/sememes-codemirror.d.ts.map +0 -1
  219. package/dist/types/src/config/tokens/colors/sememes-hue.d.ts +0 -4
  220. package/dist/types/src/config/tokens/colors/sememes-hue.d.ts.map +0 -1
  221. package/dist/types/src/config/tokens/colors/sememes-sheet.d.ts +0 -58
  222. package/dist/types/src/config/tokens/colors/sememes-sheet.d.ts.map +0 -1
  223. package/dist/types/src/config/tokens/colors/sememes-system.d.ts +0 -104
  224. package/dist/types/src/config/tokens/colors/sememes-system.d.ts.map +0 -1
  225. package/dist/types/src/config/tokens/colors/types.d.ts +0 -5
  226. package/dist/types/src/config/tokens/colors/types.d.ts.map +0 -1
  227. package/dist/types/src/config/tokens/index.d.ts +0 -3
  228. package/dist/types/src/config/tokens/index.d.ts.map +0 -1
  229. package/dist/types/src/config/tokens/lengths.d.ts +0 -142
  230. package/dist/types/src/config/tokens/lengths.d.ts.map +0 -1
  231. package/dist/types/src/config/tokens/sizes.d.ts +0 -9
  232. package/dist/types/src/config/tokens/sizes.d.ts.map +0 -1
  233. package/dist/types/src/config/tokens/tokens.d.ts +0 -498
  234. package/dist/types/src/config/tokens/tokens.d.ts.map +0 -1
  235. package/dist/types/src/plugins/esbuild-plugin.d.ts +0 -9
  236. package/dist/types/src/plugins/esbuild-plugin.d.ts.map +0 -1
  237. package/dist/types/src/plugins/plugin.d.ts +0 -20
  238. package/dist/types/src/plugins/plugin.d.ts.map +0 -1
  239. package/dist/types/src/plugins/resolveContent.d.ts +0 -2
  240. package/dist/types/src/plugins/resolveContent.d.ts.map +0 -1
  241. package/dist/types/src/styles/components/anchored-overflow.d.ts +0 -6
  242. package/dist/types/src/styles/components/anchored-overflow.d.ts.map +0 -1
  243. package/dist/types/src/styles/components/avatar.d.ts.map +0 -1
  244. package/dist/types/src/styles/components/breadcrumb.d.ts.map +0 -1
  245. package/dist/types/src/styles/components/button.d.ts +0 -19
  246. package/dist/types/src/styles/components/button.d.ts.map +0 -1
  247. package/dist/types/src/styles/components/dialog.d.ts.map +0 -1
  248. package/dist/types/src/styles/components/icon-button.d.ts.map +0 -1
  249. package/dist/types/src/styles/components/icon.d.ts.map +0 -1
  250. package/dist/types/src/styles/components/index.d.ts.map +0 -1
  251. package/dist/types/src/styles/components/input.d.ts.map +0 -1
  252. package/dist/types/src/styles/components/link.d.ts.map +0 -1
  253. package/dist/types/src/styles/components/list.d.ts.map +0 -1
  254. package/dist/types/src/styles/components/main.d.ts.map +0 -1
  255. package/dist/types/src/styles/components/menu.d.ts.map +0 -1
  256. package/dist/types/src/styles/components/message.d.ts.map +0 -1
  257. package/dist/types/src/styles/components/popover.d.ts.map +0 -1
  258. package/dist/types/src/styles/components/scroll-area.d.ts.map +0 -1
  259. package/dist/types/src/styles/components/select.d.ts.map +0 -1
  260. package/dist/types/src/styles/components/separator.d.ts.map +0 -1
  261. package/dist/types/src/styles/components/skeleton.d.ts.map +0 -1
  262. package/dist/types/src/styles/components/status.d.ts.map +0 -1
  263. package/dist/types/src/styles/components/tag.d.ts.map +0 -1
  264. package/dist/types/src/styles/components/toast.d.ts.map +0 -1
  265. package/dist/types/src/styles/components/toolbar.d.ts.map +0 -1
  266. package/dist/types/src/styles/components/tooltip.d.ts.map +0 -1
  267. package/dist/types/src/styles/components/treegrid.d.ts.map +0 -1
  268. package/dist/types/src/styles/fragments/density.d.ts +0 -13
  269. package/dist/types/src/styles/fragments/density.d.ts.map +0 -1
  270. package/dist/types/src/styles/fragments/dimension.d.ts +0 -5
  271. package/dist/types/src/styles/fragments/dimension.d.ts.map +0 -1
  272. package/dist/types/src/styles/fragments/disabled.d.ts.map +0 -1
  273. package/dist/types/src/styles/fragments/elevation.d.ts.map +0 -1
  274. package/dist/types/src/styles/fragments/focus.d.ts +0 -6
  275. package/dist/types/src/styles/fragments/focus.d.ts.map +0 -1
  276. package/dist/types/src/styles/fragments/group.d.ts +0 -5
  277. package/dist/types/src/styles/fragments/group.d.ts.map +0 -1
  278. package/dist/types/src/styles/fragments/hover.d.ts +0 -17
  279. package/dist/types/src/styles/fragments/hover.d.ts.map +0 -1
  280. package/dist/types/src/styles/fragments/index.d.ts +0 -17
  281. package/dist/types/src/styles/fragments/index.d.ts.map +0 -1
  282. package/dist/types/src/styles/fragments/layout.d.ts +0 -3
  283. package/dist/types/src/styles/fragments/layout.d.ts.map +0 -1
  284. package/dist/types/src/styles/fragments/motion.d.ts +0 -2
  285. package/dist/types/src/styles/fragments/motion.d.ts.map +0 -1
  286. package/dist/types/src/styles/fragments/ornament.d.ts +0 -5
  287. package/dist/types/src/styles/fragments/ornament.d.ts.map +0 -1
  288. package/dist/types/src/styles/fragments/selected.d.ts +0 -13
  289. package/dist/types/src/styles/fragments/selected.d.ts.map +0 -1
  290. package/dist/types/src/styles/fragments/shimmer.d.ts +0 -3
  291. package/dist/types/src/styles/fragments/shimmer.d.ts.map +0 -1
  292. package/dist/types/src/styles/fragments/size.d.ts +0 -9
  293. package/dist/types/src/styles/fragments/size.d.ts.map +0 -1
  294. package/dist/types/src/styles/fragments/surface.d.ts +0 -9
  295. package/dist/types/src/styles/fragments/surface.d.ts.map +0 -1
  296. package/dist/types/src/styles/fragments/text.d.ts +0 -7
  297. package/dist/types/src/styles/fragments/text.d.ts.map +0 -1
  298. package/dist/types/src/styles/fragments/valence.d.ts +0 -13
  299. package/dist/types/src/styles/fragments/valence.d.ts.map +0 -1
  300. package/dist/types/src/styles/index.d.ts.map +0 -1
  301. package/dist/types/src/styles/primitives/container.d.ts +0 -15
  302. package/dist/types/src/styles/primitives/container.d.ts.map +0 -1
  303. package/dist/types/src/styles/primitives/index.d.ts +0 -2
  304. package/dist/types/src/styles/primitives/index.d.ts.map +0 -1
  305. package/dist/types/src/styles/theme.d.ts.map +0 -1
  306. package/dist/types/src/tailwind.d.ts +0 -3
  307. package/dist/types/src/tailwind.d.ts.map +0 -1
  308. package/dist/types/src/types.d.ts +0 -3
  309. package/dist/types/src/types.d.ts.map +0 -1
  310. package/dist/types/src/util/withLogical.d.ts +0 -164
  311. package/dist/types/src/util/withLogical.d.ts.map +0 -1
  312. package/src/Tokens.stories.tsx +0 -88
  313. package/src/config/index.ts +0 -6
  314. package/src/config/tailwind.ts +0 -265
  315. package/src/config/tokens/colors/alias-colors.ts +0 -39
  316. package/src/config/tokens/colors/index.ts +0 -8
  317. package/src/config/tokens/colors/physical-colors.ts +0 -125
  318. package/src/config/tokens/colors/semantic-colors.ts +0 -27
  319. package/src/config/tokens/colors/sememes-calls.ts +0 -17
  320. package/src/config/tokens/colors/sememes-codemirror.ts +0 -50
  321. package/src/config/tokens/colors/sememes-hue.ts +0 -54
  322. package/src/config/tokens/colors/sememes-sheet.ts +0 -62
  323. package/src/config/tokens/colors/sememes-system.ts +0 -311
  324. package/src/config/tokens/colors/types.ts +0 -9
  325. package/src/config/tokens/index.ts +0 -6
  326. package/src/config/tokens/lengths.ts +0 -105
  327. package/src/config/tokens/sizes.ts +0 -12
  328. package/src/config/tokens/tokens.ts +0 -87
  329. package/src/docs/theme.drawio.svg +0 -635
  330. package/src/plugins/esbuild-plugin.ts +0 -65
  331. package/src/plugins/plugin.ts +0 -130
  332. package/src/plugins/resolveContent.ts +0 -51
  333. package/src/styles/components/README.md +0 -6
  334. package/src/styles/components/anchored-overflow.ts +0 -20
  335. package/src/styles/components/button.ts +0 -48
  336. package/src/styles/components/icon.ts +0 -19
  337. package/src/styles/components/input.ts +0 -177
  338. package/src/styles/components/scroll-area.ts +0 -90
  339. package/src/styles/fragments/density.ts +0 -17
  340. package/src/styles/fragments/dimension.ts +0 -8
  341. package/src/styles/fragments/focus.ts +0 -16
  342. package/src/styles/fragments/group.ts +0 -12
  343. package/src/styles/fragments/hover.ts +0 -25
  344. package/src/styles/fragments/index.ts +0 -20
  345. package/src/styles/fragments/layout.ts +0 -7
  346. package/src/styles/fragments/motion.ts +0 -6
  347. package/src/styles/fragments/ornament.ts +0 -10
  348. package/src/styles/fragments/selected.ts +0 -45
  349. package/src/styles/fragments/shimmer.ts +0 -9
  350. package/src/styles/fragments/size.ts +0 -117
  351. package/src/styles/fragments/surface.ts +0 -29
  352. package/src/styles/fragments/text.ts +0 -12
  353. package/src/styles/fragments/valence.ts +0 -46
  354. package/src/styles/layers/README.md +0 -15
  355. package/src/styles/layers/anchored-overflow.css +0 -9
  356. package/src/styles/layers/animation.css +0 -17
  357. package/src/styles/layers/attention.css +0 -8
  358. package/src/styles/layers/base.css +0 -25
  359. package/src/styles/layers/can-scroll.css +0 -26
  360. package/src/styles/layers/drag-preview.css +0 -18
  361. package/src/styles/layers/hues.css +0 -110
  362. package/src/styles/layers/index.css +0 -27
  363. package/src/styles/layers/main.css +0 -183
  364. package/src/styles/layers/positioning.css +0 -23
  365. package/src/styles/layers/scrollbar.css +0 -11
  366. package/src/styles/layers/surfaces.css +0 -31
  367. package/src/styles/layers/tag.css +0 -132
  368. package/src/styles/layers/tldraw.css +0 -91
  369. package/src/styles/layers/tokens.css +0 -47
  370. package/src/styles/primitives/container.ts +0 -33
  371. package/src/styles/primitives/index.ts +0 -5
  372. package/src/tailwind.ts +0 -7
  373. package/src/theme.css +0 -9
  374. package/src/types.ts +0 -7
  375. package/src/util/withLogical.ts +0 -114
  376. /package/dist/types/src/{styles/fragments → fragments}/disabled.d.ts +0 -0
  377. /package/dist/types/src/{styles → theme}/components/avatar.d.ts +0 -0
  378. /package/dist/types/src/{styles → theme}/components/breadcrumb.d.ts +0 -0
  379. /package/dist/types/src/{styles → theme}/components/dialog.d.ts +0 -0
  380. /package/dist/types/src/{styles → theme}/components/icon-button.d.ts +0 -0
  381. /package/dist/types/src/{styles → theme}/components/link.d.ts +0 -0
  382. /package/dist/types/src/{styles → theme}/components/list.d.ts +0 -0
  383. /package/dist/types/src/{styles → theme}/components/select.d.ts +0 -0
  384. /package/dist/types/src/{styles → theme}/components/separator.d.ts +0 -0
  385. /package/dist/types/src/{styles → theme}/components/skeleton.d.ts +0 -0
  386. /package/dist/types/src/{styles → theme}/components/tag.d.ts +0 -0
  387. /package/dist/types/src/{styles → theme}/components/toast.d.ts +0 -0
  388. /package/dist/types/src/{styles → theme}/components/tooltip.d.ts +0 -0
  389. /package/dist/types/src/{styles → theme}/components/treegrid.d.ts +0 -0
  390. /package/dist/types/src/{styles → theme}/theme.d.ts +0 -0
  391. /package/src/{styles/fragments → fragments}/disabled.ts +0 -0
  392. /package/src/{styles → theme}/components/breadcrumb.ts +0 -0
  393. /package/src/{styles → theme}/components/tag.ts +0 -0
@@ -1,2179 +1,276 @@
1
- // src/config/tailwind.ts
2
- import tailwindcssContainerQueries from "@tailwindcss/container-queries";
3
- import tailwindcssForms from "@tailwindcss/forms";
4
- import merge from "lodash.merge";
5
- import tailwindScrollbar from "tailwind-scrollbar";
6
- import defaultConfig from "tailwindcss/stubs/config.full.js";
7
- import tailwindcssLogical from "tailwindcss-logical";
8
- import tailwindcssRadix from "tailwindcss-radix";
9
-
10
- // src/config/tokens/sizes.ts
1
+ // src/defs.ts
2
+ var osTranslations = "org.dxos.i18n.os";
3
+ var hues = [
4
+ "red",
5
+ "orange",
6
+ "amber",
7
+ "yellow",
8
+ "lime",
9
+ "green",
10
+ "emerald",
11
+ "teal",
12
+ "cyan",
13
+ "sky",
14
+ "blue",
15
+ "indigo",
16
+ "violet",
17
+ "purple",
18
+ "fuchsia",
19
+ "pink",
20
+ "rose"
21
+ ];
22
+ var hueShades = [
23
+ 50,
24
+ 100,
25
+ 200,
26
+ 300,
27
+ 400,
28
+ 500,
29
+ 600,
30
+ 700,
31
+ 800,
32
+ 900,
33
+ 950
34
+ ];
35
+ var roles = [
36
+ "fill",
37
+ "surface",
38
+ "surface-text",
39
+ "text",
40
+ "border"
41
+ ];
11
42
  var cardMinInlineSize = 18;
12
43
  var cardDefaultInlineSize = 20;
13
44
  var cardMaxInlineSize = 22;
14
45
  var cardMinBlockSize = 18;
15
46
  var cardMaxBlockSize = 30;
16
47
 
17
- // src/config/tokens/tokens.ts
18
- import adapter from "@ch-ui/tailwind-tokens";
19
-
20
- // src/config/tokens/colors/physical-colors.ts
21
- var reflectiveRelation = {
22
- initial: 1e3,
23
- slope: -1e3,
24
- method: "floor"
25
- };
26
- var gamuts = [
27
- "srgb",
28
- "p3",
29
- "rec2020"
30
- ];
31
- var DEG_RAD = Math.PI / 180;
32
- var hueKeyPoint = (hue) => {
33
- const hueDeg = (360 * (hue / 17) + 26) % 360;
34
- return {
35
- keyPoint: [
36
- 0.5,
37
- 0.13 + 0.024 * Math.sin((hueDeg - 15) * DEG_RAD),
38
- hueDeg
39
- ],
40
- lowerCp: 1,
41
- upperCp: 1,
42
- torsion: 0
43
- };
44
- };
45
- var huePalettes = {
46
- red: hueKeyPoint(0),
47
- orange: hueKeyPoint(1),
48
- amber: hueKeyPoint(2),
49
- yellow: hueKeyPoint(3),
50
- lime: hueKeyPoint(4),
51
- green: hueKeyPoint(5),
52
- emerald: hueKeyPoint(6),
53
- teal: hueKeyPoint(7),
54
- cyan: hueKeyPoint(8),
55
- sky: hueKeyPoint(9),
56
- blue: hueKeyPoint(10),
57
- indigo: hueKeyPoint(11),
58
- violet: hueKeyPoint(12),
59
- purple: hueKeyPoint(13),
60
- fuchsia: hueKeyPoint(14),
61
- pink: hueKeyPoint(15),
62
- rose: hueKeyPoint(16)
63
- };
64
- var systemPalettes = {
65
- neutral: {
66
- keyPoint: [
67
- 0.5,
68
- 1e-3,
69
- 260
70
- ],
71
- lowerCp: 0,
72
- upperCp: 0,
73
- torsion: 0,
74
- // Values used directly.
75
- // TODO(burdon): Audit.
76
- values: [
77
- 25,
78
- 50,
79
- 75,
80
- 100,
81
- 150,
82
- 200,
83
- 250,
84
- 300,
85
- 400,
86
- 500,
87
- 600,
88
- 700,
89
- 750,
90
- 800,
91
- 850,
92
- 900
93
- ]
94
- },
95
- // https://oklch.com/#0.5,0.2,260,100 (#0559d2)
96
- primary: {
97
- keyPoint: [
98
- 0.5,
99
- 0.2,
100
- 260
101
- ],
102
- lowerCp: 0.86,
103
- upperCp: 1,
104
- torsion: -30,
105
- // Values used directly.
106
- // TODO(burdon): Audit.
107
- values: [
108
- 100,
109
- 150,
110
- 200,
111
- 350,
112
- 400,
113
- 450,
114
- 500,
115
- 750,
116
- 800,
117
- 850
118
- ]
119
- }
120
- };
121
- var physicalSeries = {
122
- ...huePalettes,
123
- ...systemPalettes
124
- };
125
- var physicalColors = {
126
- namespace: "dx-",
127
- definitions: {
128
- // @ts-ignore
129
- series: physicalSeries,
130
- accompanyingSeries: {
131
- reflectiveRelation
132
- }
133
- },
134
- conditions: {
135
- srgb: [
136
- ":root, .dark"
137
- ],
138
- p3: [
139
- "@media (color-gamut: p3)",
140
- ":root, .dark"
141
- ],
142
- rec2020: [
143
- "@media (color-gamut: rec2020)",
144
- ":root, .dark"
145
- ]
146
- },
147
- series: Object.entries(physicalSeries).reduce((acc, [id]) => {
148
- acc[id] = gamuts.reduce((acc2, gamut) => {
149
- acc2[gamut] = {
150
- extends: id,
151
- physicalValueRelation: {
152
- extends: "reflectiveRelation"
153
- }
154
- };
155
- return acc2;
156
- }, {});
157
- return acc;
158
- }, {})
159
- };
48
+ // src/fragments/density.ts
49
+ var fineBlockSize = "min-h-[2.5rem] pointer-fine:min-h-[2rem]";
50
+ var coarseBlockSize = "min-h-[2.5rem]";
51
+ var fineDimensions = `${fineBlockSize} px-2`;
52
+ var coarseDimensions = `${coarseBlockSize} px-3`;
53
+ var densityDimensions = (density = "fine") => density === "fine" ? fineDimensions : coarseDimensions;
54
+ var densityBlockSize = (density = "fine") => density === "fine" ? fineBlockSize : coarseBlockSize;
160
55
 
161
- // src/config/tokens/colors/sememes-hue.ts
162
- var hueSememes = [
163
- ...Object.keys(huePalettes),
164
- "neutral",
165
- "primary"
166
- ].reduce((acc, palette) => {
167
- acc[`${palette}Cursor`] = {
168
- light: [
169
- palette,
170
- 400
171
- ],
172
- dark: [
173
- palette,
174
- 300
175
- ]
176
- };
177
- acc[`${palette}Text`] = {
178
- light: [
179
- palette,
180
- 550
181
- ],
182
- dark: [
183
- palette,
184
- 300
185
- ]
186
- };
187
- acc[`${palette}Fill`] = {
188
- light: [
189
- palette,
190
- 500
191
- ],
192
- dark: [
193
- palette,
194
- 500
195
- ]
196
- };
197
- acc[`${palette}Surface`] = {
198
- light: [
199
- palette,
200
- 200
201
- ],
202
- dark: [
203
- palette,
204
- 700
205
- ]
206
- };
207
- acc[`${palette}SurfaceText`] = {
208
- light: [
209
- palette,
210
- 700
211
- ],
212
- dark: [
213
- palette,
214
- 200
215
- ]
216
- };
217
- acc[`${palette}Screen`] = {
218
- light: [
219
- palette,
220
- 100
221
- ],
222
- dark: [
223
- palette,
224
- 800
225
- ]
226
- };
227
- return acc;
228
- }, {});
229
- var valenceAliasSememeStems = [
230
- "Text",
231
- "Surface",
232
- "SurfaceText",
233
- "Fill",
234
- "Cursor"
235
- ];
236
- var valenceMapping = {
237
- emerald: [
238
- "success"
239
- ],
240
- cyan: [
241
- "info"
242
- ],
243
- amber: [
244
- "warning"
245
- ],
246
- rose: [
247
- "error"
248
- ],
249
- primary: [
250
- "current"
251
- ],
252
- fuchsia: [
253
- "internal"
254
- ]
255
- };
256
- var valenceAliases = valenceAliasSememeStems.reduce((acc, stem) => {
257
- return Object.entries(valenceMapping).reduce((acc2, [hue, valences]) => {
258
- acc2[`${hue}${stem}`] = {
259
- root: valences.map((valence) => `${valence}${stem}`)
260
- };
261
- return acc2;
262
- }, acc);
263
- }, {});
56
+ // src/fragments/disabled.ts
57
+ var staticDisabled = "opacity-40 cursor-not-allowed shadow-none";
58
+ var dataDisabled = "data-[disabled]:opacity-40 data-[disabled]:cursor-not-allowed";
264
59
 
265
- // src/config/tokens/colors/sememes-sheet.ts
266
- var sheetSememes = {
267
- // NOTE: background styles for the main content area must have transparency otherwise they will mask the selection.
268
- axisSurface: {
269
- light: [
270
- "neutral",
271
- 50
272
- ],
273
- dark: [
274
- "neutral",
275
- 800
276
- ]
277
- },
278
- axisText: {
279
- light: [
280
- "neutral",
281
- 800
282
- ],
283
- dark: [
284
- "neutral",
285
- 200
286
- ]
287
- },
288
- axisSelectedSurface: {
289
- light: [
290
- "neutral",
291
- 100
292
- ],
293
- dark: [
294
- "neutral",
295
- 900
296
- ]
297
- },
298
- axisSelectedText: {
299
- light: [
300
- "neutral",
301
- 100
302
- ],
303
- dark: [
304
- "neutral",
305
- 900
306
- ]
307
- },
308
- gridCell: {
309
- // TODO(thure): Why override only dark?
310
- light: [
311
- "neutral",
312
- "50/0"
313
- ],
314
- dark: [
315
- "neutral",
316
- 850
317
- ]
318
- },
319
- gridCellSelected: {
320
- // TODO(thure): Can this not just use `attention`?
321
- light: [
322
- "neutral",
323
- 50
324
- ],
325
- dark: [
326
- "neutral",
327
- 800
328
- ]
329
- },
330
- gridOverlay: {
331
- light: [
332
- "primary",
333
- "500/.5"
334
- ],
335
- dark: [
336
- "primary",
337
- "500/.5"
338
- ]
339
- },
340
- gridSelectionOverlay: {
341
- light: [
342
- "primary",
343
- "500/.2"
344
- ],
345
- dark: [
346
- "primary",
347
- "500/.2"
348
- ]
349
- },
350
- gridHighlight: {
351
- light: [
352
- "emerald",
353
- "500/.5"
354
- ],
355
- dark: [
356
- "emerald",
357
- "500/.5"
358
- ]
359
- },
360
- // TODO(burdon): Factor out def (in common with editor).
361
- gridCommented: {
362
- light: [
363
- "green",
364
- 200
365
- ],
366
- dark: [
367
- "green",
368
- 600
369
- ]
370
- },
371
- gridCommentedActive: {
372
- light: [
373
- "green",
374
- "200/.5"
375
- ],
376
- dark: [
377
- "green",
378
- "600/.5"
379
- ]
380
- }
381
- };
382
- var sheetAliases = {
383
- activeSurface: {
384
- root: [
385
- "gridLine"
386
- ]
387
- },
388
- accentFocusIndicator: {
389
- root: [
390
- "gridFocusIndicatorColor"
391
- ]
392
- },
393
- neutralFocusIndicator: {
394
- gridFocusStack: [
395
- "gridFocusIndicatorColor"
396
- ]
397
- }
398
- };
60
+ // src/fragments/hover.ts
61
+ var subtleHover = "hover:bg-hover-overlay";
62
+ var ghostHover = "hover:bg-hover-surface";
63
+ var ghostFocusWithin = "focus-within:bg-hover-surface";
64
+ var hoverableControls = "[--controls-opacity:1] hover-hover:[--controls-opacity:0] hover-hover:hover:[--controls-opacity:1]";
65
+ var groupHoverControlItemWithTransition = "transition-opacity duration-200 opacity-0 group-hover:opacity-100";
66
+ var hoverableFocusedKeyboardControls = "focus-visible:[--controls-opacity:1]";
67
+ var hoverableFocusedWithinControls = "focus-within:[--controls-opacity:1]";
68
+ var hoverableOpenControlItem = "hover-hover:aria-[expanded=true]:[--controls-opacity:1]";
69
+ var hoverableControlItem = "opacity-(--controls-opacity)";
399
70
 
400
- // src/config/tokens/colors/sememes-system.ts
401
- var getMapValue = (map, key, defaultValue) => {
402
- let value = map[key];
403
- if (!value) {
404
- value = defaultValue();
405
- map[key] = value;
406
- }
407
- return value;
408
- };
409
- var applyAlpha = (sememe, alpha) => {
410
- if (alpha >= 1) {
411
- return sememe;
412
- } else {
413
- return {
414
- light: [
415
- sememe.light[0],
416
- `${sememe.light[1]}/${alpha}`
417
- ],
418
- dark: [
419
- sememe.dark[0],
420
- `${sememe.dark[1]}/${alpha}`
421
- ]
422
- };
423
- }
424
- };
425
- var DARK_ELEVATION_MIN = 855;
426
- var DARK_ELEVATION_MAX = 731;
427
- var DARK_CONTRAST_MIN = 750;
428
- var DARK_CONTRAST_MAX = 665;
429
- var LIGHT_ELEVATION_MIN = 0;
430
- var LIGHT_ELEVATION_MAX = 0;
431
- var LIGHT_CONTRAST_MIN = 82;
432
- var LIGHT_CONTRAST_MAX = 24;
433
- var ELEVATION_SCALE = 2;
434
- var CONTRAST_SCALE = 3;
435
- var darkElevationCadence = (depth) => Math.round(DARK_ELEVATION_MAX + (DARK_ELEVATION_MIN - DARK_ELEVATION_MAX) * ((ELEVATION_SCALE - depth) / ELEVATION_SCALE));
436
- var darkContrastCadence = (depth) => Math.round(DARK_CONTRAST_MAX + (DARK_CONTRAST_MIN - DARK_CONTRAST_MAX) * ((ELEVATION_SCALE - depth) / ELEVATION_SCALE));
437
- var lightElevationCadence = (depth) => Math.round(LIGHT_ELEVATION_MIN + (LIGHT_ELEVATION_MAX - LIGHT_ELEVATION_MIN) * ((CONTRAST_SCALE - depth) / CONTRAST_SCALE));
438
- var lightContrastCadence = (depth) => Math.round(LIGHT_CONTRAST_MAX + (LIGHT_CONTRAST_MIN - LIGHT_CONTRAST_MAX) * (depth / CONTRAST_SCALE));
439
- var elevationCadence = (lightDepth, darkDepth = lightDepth, alpha = 1) => applyAlpha({
440
- light: [
441
- "neutral",
442
- lightElevationCadence(lightDepth)
443
- ],
444
- dark: [
445
- "neutral",
446
- darkElevationCadence(darkDepth)
447
- ]
448
- }, alpha);
449
- var contrastCadence = (lightDepth, darkDepth = lightDepth, alpha = 1) => applyAlpha({
450
- light: [
451
- "neutral",
452
- lightContrastCadence(lightDepth)
453
- ],
454
- dark: [
455
- "neutral",
456
- darkContrastCadence(darkDepth)
457
- ]
458
- }, alpha);
459
- var aliasDefs = {
460
- // Selected items, current items, other surfaces needing special contrast against baseSurface.
461
- activeSurface: {
462
- root: "inputSurfaceBase"
463
- },
464
- // Main sidebar panel.
465
- sidebarSurface: {
466
- root: "groupSurface"
467
- },
468
- // Plank header.
469
- headerSurface: {
470
- root: "groupSurface"
471
- },
472
- // Toolbars, table/sheet headers, etc.
473
- toolbarSurface: {
474
- root: "groupSurface"
475
- },
476
- // Forms, cards, etc.
477
- cardSurface: {
478
- root: "groupSurface"
479
- },
480
- // Secondary aliases.
481
- textInputSurface: {
482
- root: "textInputSurfaceBase",
483
- group: "textInputSurfaceGroup",
484
- modal: "textInputSurfaceModal"
485
- },
486
- inputSurface: {
487
- root: "inputSurfaceBase",
488
- group: "inputSurfaceGroup",
489
- modal: "inputSurfaceModal"
490
- },
491
- hoverSurface: {
492
- root: "hoverSurfaceBase",
493
- group: "hoverSurfaceGroup",
494
- modal: "hoverSurfaceModal"
495
- },
496
- // TODO(thure): Rename uses of this token to `focusSurface` and remove this alias.
497
- attention: {
498
- root: "focusSurface"
499
- },
500
- // In “master-detail” patterns, the background of the item in the list which is enumerated in the adjacent view.
501
- // TODO(burdon): Review tokens.
502
- currentRelated: {
503
- root: "modalSurface"
504
- },
505
- // Borders and dividers.
506
- separator: {
507
- root: "separatorBase",
508
- group: "separatorGroup",
509
- modal: "separatorModal"
510
- }
511
- };
512
- var systemSememes = {
513
- //
514
- // Elevation cadence tokens
515
- //
516
- baseSurface: elevationCadence(0),
517
- groupSurface: elevationCadence(1),
518
- modalSurface: elevationCadence(2, 1.7),
519
- //
520
- // Contrast cadence tokens
521
- //
522
- textInputSurfaceBase: contrastCadence(0, 0),
523
- textInputSurfaceGroup: contrastCadence(0, 0.5),
524
- textInputSurfaceModal: contrastCadence(0, 1),
525
- inputSurfaceBase: contrastCadence(0.8, 0.33),
526
- inputSurfaceGroup: contrastCadence(0.8, 0.66),
527
- inputSurfaceModal: contrastCadence(0.8, 1),
528
- hoverSurfaceBase: contrastCadence(2, 1.5),
529
- hoverSurfaceGroup: contrastCadence(2, 2),
530
- hoverSurfaceModal: contrastCadence(2, 2.5),
531
- separatorBase: contrastCadence(3, 2),
532
- separatorGroup: contrastCadence(3, 2.5),
533
- separatorModal: contrastCadence(3, 3),
534
- subduedSeparator: contrastCadence(3, 1),
535
- scrollbarTrack: contrastCadence(0),
536
- scrollbarThumbSubdued: contrastCadence(1, 1),
537
- scrollbarThumb: contrastCadence(2.5, 2.5),
538
- scrollbarThumbHover: contrastCadence(3.5, 3.5),
539
- scrollbarThumbActive: contrastCadence(4.5, 4.5),
540
- unAccent: {
541
- light: [
542
- "neutral",
543
- 400
544
- ],
545
- dark: [
546
- "neutral",
547
- 400
548
- ]
549
- },
550
- unAccentHover: {
551
- light: [
552
- "neutral",
553
- 450
554
- ],
555
- dark: [
556
- "neutral",
557
- 450
558
- ]
559
- },
560
- hoverOverlay: {
561
- light: [
562
- "neutral",
563
- "450/.1"
564
- ],
565
- dark: [
566
- "neutral",
567
- "450/.1"
568
- ]
569
- },
570
- //
571
- // Special surfaces.
572
- //
573
- // Screen overlay for modal dialogs.
574
- scrimSurface: applyAlpha({
575
- light: [
576
- "neutral",
577
- LIGHT_CONTRAST_MAX
578
- ],
579
- dark: [
580
- "neutral",
581
- DARK_ELEVATION_MIN
582
- ]
583
- }, 0.65),
584
- // High contrast for focused interactive elements. (Technically this is part of the surface cadence, but the contrast cadence is on the opposite side of the elevation cadence as this point.)
585
- focusSurface: {
586
- light: [
587
- "neutral",
588
- 0
589
- ],
590
- dark: [
591
- "neutral",
592
- 1e3
593
- ]
594
- },
595
- deckSurface: {
596
- light: [
597
- "neutral",
598
- 50
599
- ],
600
- dark: [
601
- "neutral",
602
- 950
603
- ]
604
- },
605
- // For tooltips only; the highest elevation from the opposite theme
606
- inverseSurface: {
607
- light: [
608
- "neutral",
609
- DARK_ELEVATION_MIN
610
- ],
611
- dark: [
612
- "neutral",
613
- LIGHT_ELEVATION_MIN
614
- ]
615
- },
616
- //
617
- // Accent surfaces
618
- //
619
- accentSurfaceRelated: {
620
- light: [
621
- "primary",
622
- "300/.1"
623
- ],
624
- dark: [
625
- "primary",
626
- "400/.1"
627
- ]
628
- },
629
- accentSurfaceHover: {
630
- light: [
631
- "primary",
632
- 600
633
- ],
634
- dark: [
635
- "primary",
636
- 475
637
- ]
638
- },
639
- accentSurface: {
640
- light: [
641
- "primary",
642
- 500
643
- ],
644
- dark: [
645
- "primary",
646
- 500
647
- ]
648
- },
649
- //
650
- // Text (text-) and other foregrounds
651
- // TODO(thure): Establish contrast-order cadence for text.
652
- //
653
- baseText: {
654
- light: [
655
- "neutral",
656
- 1e3
657
- ],
658
- dark: [
659
- "neutral",
660
- 50
661
- ]
662
- },
663
- inverseSurfaceText: {
664
- light: [
665
- "neutral",
666
- 50
667
- ],
668
- dark: [
669
- "neutral",
670
- 1e3
671
- ]
672
- },
673
- description: {
674
- light: [
675
- "neutral",
676
- 550
677
- ],
678
- dark: [
679
- "neutral",
680
- 350
681
- ]
682
- },
683
- subdued: {
684
- light: [
685
- "neutral",
686
- 700
687
- ],
688
- dark: [
689
- "neutral",
690
- 300
691
- ]
692
- },
693
- placeholder: {
694
- light: [
695
- "neutral",
696
- 500
697
- ],
698
- dark: [
699
- "neutral",
700
- 500
701
- ]
702
- },
703
- accentText: {
704
- light: [
705
- "primary",
706
- 550
707
- ],
708
- dark: [
709
- "primary",
710
- 400
711
- ]
712
- },
713
- accentSurfaceText: {
714
- light: [
715
- "neutral",
716
- 0
717
- ],
718
- dark: [
719
- "neutral",
720
- 0
721
- ]
722
- },
723
- accentTextHover: {
724
- light: [
725
- "primary",
726
- 500
727
- ],
728
- dark: [
729
- "primary",
730
- 350
731
- ]
732
- },
733
- accentFocusIndicator: {
734
- light: [
735
- "primary",
736
- 300
737
- ],
738
- dark: [
739
- "primary",
740
- 450
741
- ]
742
- },
743
- neutralFocusIndicator: {
744
- light: [
745
- "neutral",
746
- 300
747
- ],
748
- dark: [
749
- "neutral",
750
- 550
751
- ]
752
- }
753
- };
754
- var systemAliases = Object.entries(aliasDefs).reduce((aliases, [alias, values]) => {
755
- Object.entries(values).forEach(([key, sememe]) => {
756
- const record = getMapValue(aliases, sememe, () => ({}));
757
- const list = getMapValue(record, key, () => []);
758
- list.push(alias);
759
- });
760
- return aliases;
761
- }, {});
71
+ // src/fragments/text.ts
72
+ var descriptionMessage = "text-description border border-dashed border-separator rounded-sm p-4";
762
73
 
763
- // src/config/tokens/colors/alias-colors.ts
764
- var groupAliases = [
765
- "groupSurface",
766
- ...systemAliases.groupSurface?.root ?? []
767
- ];
768
- var modalAliases = [
769
- "modalSurface",
770
- ...systemAliases.modalSurface?.root ?? []
74
+ // src/util/elevation.ts
75
+ var surfaceShadow = ({ elevation }) => [
76
+ elevation === "positioned" ? "shadow-sm" : elevation === "dialog" || elevation === "toast" ? "shadow-md" : "shadow-none"
771
77
  ];
772
- var aliasColors = {
773
- conditions: {
774
- root: [
775
- ":root, .dark"
776
- ],
777
- group: [
778
- [
779
- ".sidebar-surface, .dark .sidebar-surface",
780
- ...groupAliases.map((alias) => `.bg-${alias}, .dark .bg-${alias}`)
781
- ].join(", ")
782
- ],
783
- modal: [
784
- [
785
- ".modal-surface, .dark .modal-surface",
786
- ...modalAliases.map((alias) => `.bg-${alias}, .dark .bg-${alias}`)
787
- ].join(", ")
788
- ],
789
- gridFocusStack: [
790
- '[data-grid-focus-indicator-variant="stack"]'
791
- ]
792
- },
793
- aliases: {
794
- // TODO(thure): Aliases should be merged more elegantly, this causes overwrites.
795
- ...sheetAliases,
796
- ...systemAliases,
797
- ...valenceAliases
798
- },
799
- namespace: "dx-"
800
- };
801
-
802
- // src/config/tokens/colors/sememes-calls.ts
803
- var callsSememes = {
804
- callActive: {
805
- light: [
806
- "green",
807
- "500"
808
- ],
809
- dark: [
810
- "green",
811
- "500"
812
- ]
813
- },
814
- callAlert: {
815
- light: [
816
- "rose",
817
- "500"
818
- ],
819
- dark: [
820
- "rose",
821
- "500"
822
- ]
823
- }
824
- };
825
-
826
- // src/config/tokens/colors/sememes-codemirror.ts
827
- var codemirrorSememes = {
828
- // NOTE: background styles for the main content area must have transparency otherwise they will mask the selection.
829
- cmCodeblock: {
830
- light: [
831
- "neutral",
832
- "500/.1"
833
- ],
834
- dark: [
835
- "neutral",
836
- "500/.1"
837
- ]
838
- },
839
- cmActiveLine: {
840
- light: [
841
- "neutral",
842
- "200/.5"
843
- ],
844
- dark: [
845
- "neutral",
846
- "800/.5"
847
- ]
848
- },
849
- cmSeparator: {
850
- light: [
851
- "primary",
852
- 500
853
- ],
854
- dark: [
855
- "primary",
856
- 500
857
- ]
858
- },
859
- cmCursor: {
860
- light: [
861
- "neutral",
862
- 900
863
- ],
864
- dark: [
865
- "neutral",
866
- 100
867
- ]
868
- },
869
- cmSelection: {
870
- light: [
871
- "primary",
872
- "400/.5"
873
- ],
874
- dark: [
875
- "primary",
876
- "600/.5"
877
- ]
878
- },
879
- cmFocusedSelection: {
880
- light: [
881
- "primary",
882
- 400
883
- ],
884
- dark: [
885
- "primary",
886
- 600
887
- ]
888
- },
889
- cmHighlight: {
890
- light: [
891
- "neutral",
892
- 950
893
- ],
894
- dark: [
895
- "neutral",
896
- 50
897
- ]
898
- },
899
- cmHighlightSurface: {
900
- light: [
901
- "sky",
902
- 200
903
- ],
904
- dark: [
905
- "cyan",
906
- 600
907
- ]
908
- },
909
- // TODO(burdon): Factor out defs in common with sheet.
910
- cmCommentText: {
911
- light: [
912
- "neutral",
913
- 50
914
- ],
915
- dark: [
916
- "neutral",
917
- 950
918
- ]
919
- },
920
- cmCommentSurface: {
921
- light: [
922
- "amber",
923
- 700
924
- ],
925
- dark: [
926
- "amber",
927
- 200
928
- ]
929
- }
930
- };
931
-
932
- // src/config/tokens/colors/semantic-colors.ts
933
- var semanticColors = {
934
- conditions: {
935
- light: [
936
- ":root"
937
- ],
938
- dark: [
939
- ".dark"
940
- ]
941
- },
942
- sememes: {
943
- // Define each set of sememes in its own file.
944
- ...callsSememes,
945
- ...codemirrorSememes,
946
- ...hueSememes,
947
- ...sheetSememes,
948
- ...systemSememes
949
- },
950
- namespace: "dx-"
951
- };
952
-
953
- // src/config/tokens/lengths.ts
954
- var lengthsFacet = {
955
- physical: {
956
- namespace: "dx-",
957
- conditions: {
958
- root: [
959
- ":root"
960
- ]
961
- },
962
- series: {
963
- line: {
964
- root: {
965
- unit: "px",
966
- initial: 0,
967
- slope: 1
968
- }
969
- },
970
- // "gap"
971
- lacuna: {
972
- root: {
973
- unit: "rem",
974
- initial: 0,
975
- slope: 0.125
976
- }
977
- }
978
- }
979
- },
980
- semantic: {
981
- namespace: "dx-",
982
- conditions: {
983
- root: [
984
- ":root"
985
- ]
986
- },
987
- sememes: {
988
- noLine: {
989
- root: [
990
- "line",
991
- 0
992
- ]
993
- },
994
- hairLine: {
995
- root: [
996
- "line",
997
- 1
998
- ]
999
- },
1000
- thickLine: {
1001
- root: [
1002
- "line",
1003
- 2
1004
- ]
1005
- },
1006
- trimXs: {
1007
- root: [
1008
- "lacuna",
1009
- 3
1010
- ]
1011
- },
1012
- trimSm: {
1013
- root: [
1014
- "lacuna",
1015
- 4
1016
- ]
1017
- },
1018
- trimMd: {
1019
- root: [
1020
- "lacuna",
1021
- 6
1022
- ]
1023
- },
1024
- trimLg: {
1025
- root: [
1026
- "lacuna",
1027
- 12
1028
- ]
1029
- },
1030
- inputFine: {
1031
- root: [
1032
- "lacuna",
1033
- 3
1034
- ]
1035
- },
1036
- inputCoarse: {
1037
- root: [
1038
- "lacuna",
1039
- 4
1040
- ]
1041
- }
1042
- }
1043
- },
1044
- alias: {
1045
- namespace: "dx-",
1046
- conditions: {
1047
- fine: [
1048
- ":root, .density-fine"
1049
- ],
1050
- coarse: [
1051
- ".density-coarse"
1052
- ],
1053
- flush: [
1054
- ".density-flush"
1055
- ],
1056
- gridFocusStack: [
1057
- '[data-grid-focus-indicator-variant="stack"]'
1058
- ]
1059
- },
1060
- aliases: {
1061
- noLine: {
1062
- fine: [
1063
- "focusOffset"
1064
- ]
1065
- },
1066
- hairLine: {
1067
- fine: [
1068
- "modalLine",
1069
- "landmarkLine",
1070
- "positionedLine",
1071
- "gridGap",
1072
- "gridFocusIndicatorWidth"
1073
- ]
1074
- },
1075
- thickLine: {
1076
- fine: [
1077
- "focusLine"
1078
- ],
1079
- gridFocusStack: [
1080
- "gridFocusIndicatorWidth"
1081
- ]
1082
- },
1083
- inputFine: {
1084
- fine: [
1085
- "iconButtonPadding"
1086
- ]
1087
- },
1088
- inputCoarse: {
1089
- coarse: [
1090
- "iconButtonPadding"
1091
- ]
1092
- },
1093
- trimXs: {
1094
- fine: [
1095
- "cardSpacingChrome",
1096
- "labelSpacingBlock",
1097
- "inputSpacingBlock"
1098
- ]
1099
- },
1100
- trimSm: {
1101
- fine: [
1102
- "cardSpacingInline",
1103
- "cardSpacingBlock",
1104
- "cardSpacingGap"
1105
- ]
1106
- },
1107
- trimMd: {
1108
- coarse: [
1109
- "cardSpacingInline",
1110
- "cardSpacingBlock",
1111
- "cardSpacingGap"
1112
- ]
1113
- }
1114
- }
1115
- }
1116
- };
1117
- var maxSizesFacet = {
1118
- physical: {
1119
- namespace: "dx-",
1120
- conditions: {
1121
- root: [
1122
- ":root"
1123
- ]
1124
- },
1125
- series: {
1126
- size: {
1127
- root: {
1128
- unit: "rem",
1129
- initial: 0,
1130
- slope: 1
1131
- }
1132
- }
1133
- }
1134
- },
1135
- semantic: {
1136
- namespace: "dx-",
1137
- conditions: {
1138
- root: [
1139
- ":root"
1140
- ]
1141
- },
1142
- sememes: {
1143
- "prose-max-width": {
1144
- root: [
1145
- "size",
1146
- 50
1147
- ]
1148
- },
1149
- "container-max-width": {
1150
- root: [
1151
- "size",
1152
- 50
1153
- ]
1154
- },
1155
- "card-default-width": {
1156
- root: [
1157
- "size",
1158
- cardDefaultInlineSize
1159
- ]
1160
- },
1161
- "card-min-width": {
1162
- root: [
1163
- "size",
1164
- cardMinInlineSize
1165
- ]
1166
- },
1167
- "card-max-width": {
1168
- root: [
1169
- "size",
1170
- cardMaxInlineSize
1171
- ]
1172
- },
1173
- "card-min-height": {
1174
- root: [
1175
- "size",
1176
- cardMinBlockSize
1177
- ]
1178
- },
1179
- "card-max-height": {
1180
- root: [
1181
- "size",
1182
- cardMaxBlockSize
1183
- ]
1184
- }
1185
- }
1186
- }
1187
- };
1188
-
1189
- // src/config/tokens/tokens.ts
1190
- var adapterConfig = {
1191
- colors: {
1192
- facet: "colors",
1193
- disposition: "overwrite",
1194
- tokenization: "recursive"
1195
- },
1196
- borderWidth: {
1197
- facet: "lengths",
1198
- disposition: "extend",
1199
- tokenization: "omit-series"
1200
- },
1201
- ringWidth: {
1202
- facet: "lengths",
1203
- disposition: "extend",
1204
- tokenization: "omit-series"
1205
- },
1206
- ringOffsetWidth: {
1207
- facet: "lengths",
1208
- disposition: "extend",
1209
- tokenization: "omit-series"
1210
- },
1211
- outlineWidth: {
1212
- facet: "lengths",
1213
- disposition: "extend",
1214
- tokenization: "omit-series"
1215
- },
1216
- spacing: {
1217
- facet: "lengths",
1218
- disposition: "extend",
1219
- tokenization: "keep-series"
1220
- }
1221
- };
1222
- var hues = Object.keys(huePalettes);
1223
- var tokenSet = {
1224
- colors: {
1225
- physical: physicalColors,
1226
- semantic: semanticColors,
1227
- alias: aliasColors
1228
- },
1229
- lengths: lengthsFacet,
1230
- maxSizes: maxSizesFacet
1231
- };
1232
- var userDefaultTokenSet = {
1233
- colors: {
1234
- physical: {
1235
- definitions: {
1236
- series: {
1237
- neutral: physicalColors.definitions.series.neutral,
1238
- primary: physicalColors.definitions.series.primary
1239
- },
1240
- accompanyingSeries: physicalColors.definitions.accompanyingSeries
1241
- },
1242
- conditions: physicalColors.conditions,
1243
- series: {
1244
- neutral: physicalColors.series.neutral,
1245
- primary: physicalColors.series.primary
1246
- },
1247
- namespace: physicalColors.namespace
1248
- },
1249
- semantic: {
1250
- conditions: semanticColors.conditions,
1251
- sememes: systemSememes,
1252
- namespace: semanticColors.namespace
1253
- },
1254
- alias: {
1255
- conditions: aliasColors.conditions,
1256
- aliases: systemAliases,
1257
- namespace: aliasColors.namespace
1258
- }
78
+ var surfaceZIndex = ({ level, elevation }) => {
79
+ switch (level) {
80
+ case "tooltip":
81
+ return elevation === "dialog" ? [
82
+ "z-[53]"
83
+ ] : elevation === "toast" ? [
84
+ "z-[43]"
85
+ ] : [
86
+ "z-50"
87
+ ];
88
+ case "menu":
89
+ return elevation === "dialog" ? [
90
+ "z-[52]"
91
+ ] : elevation === "toast" ? [
92
+ "z-[42]"
93
+ ] : [
94
+ "z-20"
95
+ ];
96
+ default:
97
+ return elevation === "dialog" ? [
98
+ "z-[51]"
99
+ ] : elevation === "toast" ? [
100
+ "z-[41]"
101
+ ] : [
102
+ "z-[1]"
103
+ ];
1259
104
  }
1260
105
  };
1261
- var tokensTailwindConfig = adapter(tokenSet, adapterConfig);
1262
-
1263
- // src/config/tailwind.ts
1264
- var { extend: extendTokens, ...overrideTokens } = tokensTailwindConfig;
1265
- var tailwindConfig = ({ env = "production", content = [], extensions = [] }) => ({
1266
- darkMode: "class",
1267
- theme: {
1268
- // Configure fonts in theme.css and package.json.
1269
- fontFamily: {
1270
- body: [
1271
- "Inter Variable",
1272
- ...defaultConfig.theme.fontFamily.sans
1273
- ],
1274
- mono: [
1275
- "JetBrains Mono Variable",
1276
- ...defaultConfig.theme.fontFamily.mono
1277
- ]
1278
- },
1279
- extend: merge({
1280
- // Generates is-card-default-width, is-card-min-width, etc.
1281
- spacing: {
1282
- "prose-max-width": "var(--dx-prose-max-width)",
1283
- "container-max-width": "var(--dx-container-max-width)",
1284
- "card-default-width": "var(--dx-card-default-width)",
1285
- "card-min-width": "var(--dx-card-min-width)",
1286
- "card-max-width": "var(--dx-card-max-width)",
1287
- "card-min-height": "var(--dx-card-min-height)",
1288
- "card-max-height": "var(--dx-card-max-height)"
1289
- },
1290
- backgroundImage: {
1291
- "gradient-radial": "radial-gradient(var(--tw-gradient-stops))",
1292
- "gradient-conic": "conic-gradient(from 180deg at 50% 50%, var(--tw-gradient-stops))"
1293
- },
1294
- borderRadius: {
1295
- none: "0",
1296
- sm: "0.25rem",
1297
- DEFAULT: "0.5rem",
1298
- md: "0.75rem",
1299
- lg: "1rem"
1300
- },
1301
- screens: {
1302
- "pointer-fine": {
1303
- raw: "(pointer: fine)"
1304
- },
1305
- "hover-hover": {
1306
- raw: "(hover: hover)"
1307
- },
1308
- "md": "768px",
1309
- "lg": "1024px"
1310
- },
1311
- fontSize: {
1312
- // Base size 16px
1313
- // Scale 1.125
1314
- "xs": [
1315
- "0.790rem",
1316
- {
1317
- lineHeight: "1rem"
1318
- }
1319
- ],
1320
- "sm": [
1321
- "0.889rem",
1322
- {
1323
- lineHeight: "1.25rem"
1324
- }
1325
- ],
1326
- "base": [
1327
- "1rem",
1328
- {
1329
- lineHeight: "1.5rem"
1330
- }
1331
- ],
1332
- "lg": [
1333
- "1.125rem",
1334
- {
1335
- lineHeight: "1.75rem"
1336
- }
1337
- ],
1338
- "xl": [
1339
- "1.266rem",
1340
- {
1341
- lineHeight: "1.75rem"
1342
- }
1343
- ],
1344
- "2xl": [
1345
- "1.424rem",
1346
- {
1347
- lineHeight: "2rem"
1348
- }
1349
- ],
1350
- "3xl": [
1351
- "1.602rem",
1352
- {
1353
- lineHeight: "2.25rem"
1354
- }
1355
- ],
1356
- "4xl": [
1357
- "1.802rem",
1358
- {
1359
- lineHeight: "2.5rem"
1360
- }
1361
- ],
1362
- "5xl": [
1363
- "2.027rem",
1364
- {
1365
- lineHeight: "2.5rem"
1366
- }
1367
- ],
1368
- "6xl": [
1369
- "2.281rem",
1370
- {
1371
- lineHeight: "2.5rem"
1372
- }
1373
- ],
1374
- "7xl": [
1375
- "2.566rem",
1376
- {
1377
- lineHeight: "2.75rem"
1378
- }
1379
- ],
1380
- "8xl": [
1381
- "2.887rem",
1382
- {
1383
- lineHeight: "3rem"
1384
- }
1385
- ],
1386
- "9xl": [
1387
- "3.247rem",
1388
- {
1389
- lineHeight: "3.25rem"
1390
- }
1391
- ]
1392
- },
1393
- boxShadow: {
1394
- "slider": "0 0 0 5px rgba(0, 0, 0, 0.3)"
1395
- },
1396
- transitionProperty: {
1397
- "max-height": "max-height"
1398
- },
1399
- transitionTimingFunction: {
1400
- "in-out-symmetric": "cubic-bezier(0.5, 0, 0.5, 1)"
1401
- },
1402
- keyframes: {
1403
- // Fade
1404
- "fade-in": {
1405
- from: {
1406
- opacity: 0
1407
- },
1408
- to: {
1409
- opacity: 1
1410
- }
1411
- },
1412
- "fade-out": {
1413
- from: {
1414
- opacity: 1
1415
- },
1416
- to: {
1417
- opacity: 0
1418
- }
1419
- },
1420
- // Popper chrome
1421
- "slide-down-and-fade": {
1422
- from: {
1423
- opacity: 1,
1424
- transform: "translateY(0)"
1425
- },
1426
- to: {
1427
- opacity: 0,
1428
- transform: "translateY(16px)"
1429
- }
1430
- },
1431
- "slide-left-and-fade": {
1432
- from: {
1433
- opacity: 0,
1434
- transform: "translateX(-16px)"
1435
- },
1436
- to: {
1437
- opacity: 1,
1438
- transform: "translateX(0)"
1439
- }
1440
- },
1441
- "slide-up-and-fade": {
1442
- from: {
1443
- opacity: 0,
1444
- transform: "translateY(16px)"
1445
- },
1446
- to: {
1447
- opacity: 1,
1448
- transform: "translateY(0)"
1449
- }
1450
- },
1451
- "slide-right-and-fade": {
1452
- from: {
1453
- opacity: 0,
1454
- transform: "translateX(16px)"
1455
- },
1456
- to: {
1457
- opacity: 1,
1458
- transform: "translateX(0)"
1459
- }
1460
- },
1461
- // Toast
1462
- "toast-hide": {
1463
- "0%": {
1464
- opacity: "1"
1465
- },
1466
- "100%": {
1467
- opacity: "0"
1468
- }
1469
- },
1470
- "toast-slide-in-right": {
1471
- "0%": {
1472
- transform: "translateX(calc(100% + 1rem))"
1473
- },
1474
- "100%": {
1475
- transform: "translateX(0)"
1476
- }
1477
- },
1478
- "toast-slide-in-bottom": {
1479
- "0%": {
1480
- transform: "translateY(calc(100% + 1rem))"
1481
- },
1482
- "100%": {
1483
- transform: "translateY(0)"
1484
- }
1485
- },
1486
- "toast-swipe-out": {
1487
- "0%": {
1488
- transform: "translateX(var(--radix-toast-swipe-end-x))"
1489
- },
1490
- "100%": {
1491
- transform: "translateX(calc(100% + 1rem))"
1492
- }
1493
- },
1494
- // Accordion
1495
- "slide-down": {
1496
- from: {
1497
- height: "0px"
1498
- },
1499
- to: {
1500
- height: "var(--radix-accordion-content-height)"
1501
- }
1502
- },
1503
- "slide-up": {
1504
- from: {
1505
- height: "var(--radix-accordion-content-height)"
1506
- },
1507
- to: {
1508
- height: "0px"
1509
- }
1510
- },
1511
- // Shimmer
1512
- "shimmer-loop": {
1513
- "100%": {
1514
- transform: "translateX(100%)"
1515
- }
1516
- },
1517
- // HALO
1518
- "halo-pulse": {
1519
- "0%": {
1520
- opacity: 0.3
1521
- },
1522
- "5%": {
1523
- opacity: 1
1524
- },
1525
- "100%": {
1526
- opacity: 0.3
1527
- }
1528
- },
1529
- // Progress
1530
- "progress-indeterminate": {
1531
- "0%": {
1532
- left: 0,
1533
- width: "0%"
1534
- },
1535
- "25%": {
1536
- left: "25%",
1537
- width: "50%"
1538
- },
1539
- "75%": {
1540
- left: "50%",
1541
- width: "100%"
1542
- },
1543
- "100%": {
1544
- left: "100%",
1545
- width: "0%"
1546
- }
1547
- },
1548
- // Border trail effect
1549
- "trail": {
1550
- to: {
1551
- "offset-distance": "100%"
1552
- }
1553
- },
1554
- "trail-offset": {
1555
- "0%": {
1556
- "offset-distance": "50%"
1557
- },
1558
- "100%": {
1559
- "offset-distance": "150%"
1560
- }
1561
- }
1562
- },
1563
- animation: {
1564
- // Fade
1565
- "fade-in": "fade-in 200ms ease-out",
1566
- "fade-out": "fade-out 400ms ease-out",
1567
- // Popper chrome
1568
- "slide-down-and-fade": "slide-down-and-fade 400ms cubic-bezier(0.16, 1, 0.3, 1)",
1569
- "slide-left-and-fade": "slide-left-and-fade 400ms cubic-bezier(0.16, 1, 0.3, 1)",
1570
- "slide-up-and-fade": "slide-up-and-fade 400ms cubic-bezier(0.16, 1, 0.3, 1)",
1571
- "slide-right-and-fade": "slide-right-and-fade 400ms cubic-bezier(0.16, 1, 0.3, 1)",
1572
- // Toast
1573
- "toast-hide": "toast-hide 100ms ease-in forwards",
1574
- "toast-slide-in-right": "toast-slide-in-right 150ms cubic-bezier(0.16, 1, 0.3, 1)",
1575
- "toast-slide-in-bottom": "toast-slide-in-bottom 150ms cubic-bezier(0.16, 1, 0.3, 1)",
1576
- "toast-swipe-out": "toast-swipe-out 100ms ease-out forwards",
1577
- // Accordion
1578
- "slide-down": "slide-down 300ms cubic-bezier(0.87, 0, 0.13, 1)",
1579
- "slide-up": "slide-up 300ms cubic-bezier(0.87, 0, 0.13, 1)",
1580
- // Border trail effect
1581
- "trail": "trail 6s linear infinite",
1582
- "trail-offset": "trail-offset 6s linear infinite",
1583
- // Progress effects
1584
- "spin": "spin 1.5s linear infinite",
1585
- "spin-slow": "spin 3s linear infinite",
1586
- "shimmer": "shimmer-loop 2s infinite",
1587
- "halo-pulse": "halo-pulse 2s ease-out infinite",
1588
- "progress-indeterminate": "progress-indeterminate 2s ease-out infinite",
1589
- "progress-linear": "progress-linear 2s ease-out infinite"
1590
- }
1591
- }, extendTokens, ...extensions),
1592
- ...overrideTokens,
1593
- colors: {
1594
- ...overrideTokens.colors,
1595
- inherit: "inherit",
1596
- current: "currentColor",
1597
- transparent: "transparent",
1598
- black: "black",
1599
- white: "white"
1600
- }
1601
- },
1602
- plugins: [
1603
- tailwindcssContainerQueries,
1604
- tailwindcssForms,
1605
- tailwindcssLogical,
1606
- tailwindcssRadix(),
1607
- // https://adoxography.github.io/tailwind-scrollbar/utilities
1608
- tailwindScrollbar({
1609
- nocompatible: true,
1610
- preferredStrategy: "pseudoelements"
1611
- })
1612
- ],
1613
- ...env === "development" && {
1614
- mode: "jit"
1615
- },
1616
- content,
1617
- future: {
1618
- hoverOnlyWhenSupported: true
1619
- }
1620
- });
1621
106
 
1622
107
  // src/util/hash-styles.ts
1623
- var neutralColor = {
108
+ var neutral = {
1624
109
  hue: "neutral",
1625
- text: "text-neutralFill",
1626
- icon: "text-neutralSurfaceText",
1627
- bg: "bg-neutralFill",
1628
- surface: "bg-neutralSurface",
1629
- border: "border-neutralFill"
110
+ fill: "bg-neutral-fill",
111
+ surface: "bg-neutral-surface",
112
+ surfaceText: "text-neutral-surface-text",
113
+ text: "text-neutral-text",
114
+ border: "border-neutral-border"
1630
115
  };
1631
116
  var styles = [
117
+ {
118
+ hue: "red",
119
+ fill: "bg-red-fill",
120
+ surface: "bg-red-surface",
121
+ surfaceText: "text-red-surface-text",
122
+ text: "text-red-text",
123
+ border: "border-red-border"
124
+ },
1632
125
  {
1633
126
  hue: "orange",
1634
- text: "text-orangeFill",
1635
- icon: "text-orangeSurfaceText",
1636
- bg: "bg-orangeFill",
1637
- surface: "bg-orangeSurface",
1638
- border: "border-orangeFill"
127
+ fill: "bg-orange-fill",
128
+ surface: "bg-orange-surface",
129
+ surfaceText: "text-orange-surface-text",
130
+ text: "text-orange-text",
131
+ border: "border-orange-border"
1639
132
  },
1640
133
  {
1641
134
  hue: "amber",
1642
- text: "text-amberFill",
1643
- icon: "text-amberSurfaceText",
1644
- bg: "bg-amberFill",
1645
- surface: "bg-amberSurface",
1646
- border: "border-amberFill"
135
+ fill: "bg-amber-fill",
136
+ surface: "bg-amber-surface",
137
+ surfaceText: "text-amber-surface-text",
138
+ text: "text-amber-text",
139
+ border: "border-amber-border"
1647
140
  },
1648
141
  {
1649
142
  hue: "yellow",
1650
- text: "text-yellowFill",
1651
- icon: "text-yellowSurfaceText",
1652
- bg: "bg-yellowFill",
1653
- surface: "bg-yellowSurface",
1654
- border: "border-yellowFill"
143
+ fill: "bg-yellow-fill",
144
+ surface: "bg-yellow-surface",
145
+ surfaceText: "text-yellow-surface-text",
146
+ text: "text-yellow-text",
147
+ border: "border-yellow-border"
1655
148
  },
1656
149
  {
1657
150
  hue: "lime",
1658
- text: "text-limeFill",
1659
- icon: "text-limeSurfaceText",
1660
- bg: "bg-limeFill",
1661
- surface: "bg-limeSurface",
1662
- border: "border-limeFill"
151
+ fill: "bg-lime-fill",
152
+ surface: "bg-lime-surface",
153
+ surfaceText: "text-lime-surface-text",
154
+ text: "text-lime-text",
155
+ border: "border-lime-border"
1663
156
  },
1664
157
  {
1665
158
  hue: "green",
1666
- text: "text-greenFill",
1667
- icon: "text-greenSurfaceText",
1668
- bg: "bg-greenFill",
1669
- surface: "bg-greenSurface",
1670
- border: "border-greenFill"
159
+ fill: "bg-green-fill",
160
+ surface: "bg-green-surface",
161
+ surfaceText: "text-green-surface-text",
162
+ text: "text-green-text",
163
+ border: "border-green-border"
1671
164
  },
1672
165
  {
1673
166
  hue: "emerald",
1674
- text: "text-emeraldFill",
1675
- icon: "text-emeraldSurfaceText",
1676
- bg: "bg-emeraldFill",
1677
- surface: "bg-emeraldSurface",
1678
- border: "border-emeraldFill"
167
+ fill: "bg-emerald-fill",
168
+ surface: "bg-emerald-surface",
169
+ surfaceText: "text-emerald-surface-text",
170
+ text: "text-emerald-text",
171
+ border: "border-emerald-border"
1679
172
  },
1680
173
  {
1681
174
  hue: "teal",
1682
- text: "text-tealFill",
1683
- icon: "text-tealSurfaceText",
1684
- bg: "bg-tealFill",
1685
- surface: "bg-tealSurface",
1686
- border: "border-tealFill"
175
+ fill: "bg-teal-fill",
176
+ surface: "bg-teal-surface",
177
+ surfaceText: "text-teal-surface-text",
178
+ text: "text-teal-text",
179
+ border: "border-teal-border"
1687
180
  },
1688
181
  {
1689
182
  hue: "cyan",
1690
- text: "text-cyanFill",
1691
- icon: "text-cyanSurfaceText",
1692
- bg: "bg-cyanFill",
1693
- surface: "bg-cyanSurface",
1694
- border: "border-cyanFill"
183
+ fill: "bg-cyan-fill",
184
+ surface: "bg-cyan-surface",
185
+ surfaceText: "text-cyan-surface-text",
186
+ text: "text-cyan-text",
187
+ border: "border-cyan-border"
1695
188
  },
1696
189
  {
1697
190
  hue: "sky",
1698
- text: "text-skyFill",
1699
- icon: "text-skySurfaceText",
1700
- bg: "bg-skyFill",
1701
- surface: "bg-skySurface",
1702
- border: "border-skyFill"
191
+ fill: "bg-sky-fill",
192
+ surface: "bg-sky-surface",
193
+ surfaceText: "text-sky-surface-text",
194
+ text: "text-sky-text",
195
+ border: "border-sky-border"
196
+ },
197
+ {
198
+ hue: "blue",
199
+ fill: "bg-blue-fill",
200
+ surface: "bg-blue-surface",
201
+ surfaceText: "text-blue-surface-text",
202
+ text: "text-blue-text",
203
+ border: "border-blue-border"
1703
204
  },
1704
205
  {
1705
206
  hue: "indigo",
1706
- text: "text-indigoFill",
1707
- icon: "text-indigoSurfaceText",
1708
- bg: "bg-indigoFill",
1709
- surface: "bg-indigoSurface",
1710
- border: "border-indigoFill"
207
+ fill: "bg-indigo-fill",
208
+ surface: "bg-indigo-surface",
209
+ surfaceText: "text-indigo-surface-text",
210
+ text: "text-indigo-text",
211
+ border: "border-indigo-border"
1711
212
  },
1712
213
  {
1713
214
  hue: "violet",
1714
- text: "text-violetFill",
1715
- icon: "text-violetSurfaceText",
1716
- bg: "bg-violetFill",
1717
- surface: "bg-violetSurface",
1718
- border: "border-violetFill"
215
+ fill: "bg-violet-fill",
216
+ surface: "bg-violet-surface",
217
+ surfaceText: "text-violet-surface-text",
218
+ text: "text-violet-text",
219
+ border: "border-violet-border"
1719
220
  },
1720
221
  {
1721
222
  hue: "purple",
1722
- text: "text-purpleFill",
1723
- icon: "text-purpleSurfaceText",
1724
- bg: "bg-purpleFill",
1725
- surface: "bg-purpleSurface",
1726
- border: "border-purpleFill"
223
+ fill: "bg-purple-fill",
224
+ surface: "bg-purple-surface",
225
+ surfaceText: "text-purple-surface-text",
226
+ text: "text-purple-text",
227
+ border: "border-purple-border"
1727
228
  },
1728
229
  {
1729
230
  hue: "fuchsia",
1730
- text: "text-fuchsiaFill",
1731
- icon: "text-fuchsiaSurfaceText",
1732
- bg: "bg-fuchsiaFill",
1733
- surface: "bg-fuchsiaSurface",
1734
- border: "border-fuchsiaFill"
231
+ fill: "bg-fuchsia-fill",
232
+ surface: "bg-fuchsia-surface",
233
+ surfaceText: "text-fuchsia-surface-text",
234
+ text: "text-fuchsia-text",
235
+ border: "border-fuchsia-border"
1735
236
  },
1736
237
  {
1737
- hue: "rose",
1738
- text: "text-roseFill",
1739
- icon: "text-roseSurfaceText",
1740
- bg: "bg-roseFill",
1741
- surface: "bg-roseSurface",
1742
- border: "border-roseFill"
238
+ hue: "pink",
239
+ fill: "bg-pink-fill",
240
+ surface: "bg-pink-surface",
241
+ surfaceText: "text-pink-surface-text",
242
+ text: "text-pink-text",
243
+ border: "border-pink-border"
1743
244
  },
1744
245
  {
1745
- hue: "pink",
1746
- text: "text-pinkFill",
1747
- icon: "text-pinkSurfaceText",
1748
- bg: "bg-pinkFill",
1749
- surface: "bg-pinkSurface",
1750
- border: "border-pinkFill"
246
+ hue: "rose",
247
+ fill: "bg-rose-fill",
248
+ surface: "bg-rose-surface",
249
+ surfaceText: "text-rose-surface-text",
250
+ text: "text-rose-text",
251
+ border: "border-rose-border"
1751
252
  }
1752
253
  ];
254
+ var palette = {
255
+ neutral,
256
+ hues: styles
257
+ };
1753
258
  var getStyles = (hue) => {
1754
- return styles.find((color) => color.hue === hue) || neutralColor;
259
+ return styles.find((color) => color.hue === hue) || neutral;
260
+ };
261
+ var getHashStyles = (id) => {
262
+ return getStyles(getHashHue(id));
1755
263
  };
1756
264
  var getHashHue = (id) => {
1757
265
  return id ? styles[getHash(id) % styles.length].hue : "neutral";
1758
266
  };
1759
- var getHashStyles = (id) => {
1760
- const hue = getHashHue(id);
1761
- return getStyles(hue);
1762
- };
1763
267
  var getHash = (id) => id.split("").reduce((acc, char) => acc + char.charCodeAt(0), 0);
1764
268
 
1765
269
  // src/util/mx.ts
1766
- import { extendTailwindMerge, validators as validators2 } from "tailwind-merge";
1767
-
1768
- // src/util/withLogical.ts
1769
- import { mergeConfigs, validators } from "tailwind-merge";
1770
- var getLength = () => [
1771
- validators.isLength,
1772
- validators.isArbitraryLength
1773
- ];
1774
- var getLengthWithAuto = () => [
1775
- "auto",
1776
- validators.isLength,
1777
- validators.isArbitraryLength
1778
- ];
1779
- var getLengthWithEmpty = () => [
1780
- "",
1781
- validators.isLength,
1782
- validators.isArbitraryLength
1783
- ];
1784
- var getAny = () => [
1785
- validators.isAny
1786
- ];
1787
- var getRounded = () => [
1788
- "none",
1789
- "",
1790
- validators.isTshirtSize,
1791
- "full",
1792
- validators.isArbitraryLength
1793
- ];
1794
- var classGroupsConfig = {
1795
- float: [
1796
- {
1797
- float: [
1798
- "start",
1799
- "end"
1800
- ]
1801
- }
1802
- ],
1803
- clear: [
1804
- {
1805
- clear: [
1806
- "start",
1807
- "end"
1808
- ]
1809
- }
1810
- ],
1811
- resize: [
1812
- {
1813
- resize: [
1814
- "block ",
1815
- "inline"
1816
- ]
1817
- }
1818
- ],
1819
- "text-alignment": [
1820
- {
1821
- text: [
1822
- "start",
1823
- "end"
1824
- ]
1825
- }
1826
- ],
1827
- "logical.overscroll-b": [
1828
- {
1829
- "overscroll-b": [
1830
- "auto ",
1831
- "contain",
1832
- "auto"
1833
- ]
1834
- }
1835
- ],
1836
- "logical.overscroll-i": [
1837
- {
1838
- "overscroll-b": [
1839
- "auto ",
1840
- "contain",
1841
- "auto"
1842
- ]
1843
- }
1844
- ],
1845
- "logical.bs": [
1846
- {
1847
- bs: getLength()
1848
- }
1849
- ],
1850
- "logical.min-bs": [
1851
- {
1852
- "min-bs": getAny()
1853
- }
1854
- ],
1855
- "logical.max-bs": [
1856
- {
1857
- "max-bs": getAny()
1858
- }
1859
- ],
1860
- "logical.is": [
1861
- {
1862
- is: getLength()
1863
- }
1864
- ],
1865
- "logical.min-is": [
1866
- {
1867
- "min-is": getAny()
1868
- }
1869
- ],
1870
- "logical.max-is": [
1871
- {
1872
- "max-is": getAny()
1873
- }
1874
- ],
1875
- "logical.mlb": [
1876
- {
1877
- mlb: getAny()
1878
- }
1879
- ],
1880
- "logical.mli": [
1881
- {
1882
- mli: getAny()
1883
- }
1884
- ],
1885
- "logical.mbs": [
1886
- {
1887
- mbs: getAny()
1888
- }
1889
- ],
1890
- "logical.mbe": [
1891
- {
1892
- mbe: getAny()
1893
- }
1894
- ],
1895
- "logical.mis": [
1896
- {
1897
- mis: getAny()
1898
- }
1899
- ],
1900
- "logical.mie": [
1901
- {
1902
- mie: getAny()
1903
- }
1904
- ],
1905
- "logical.plb": [
1906
- {
1907
- plb: getAny()
1908
- }
1909
- ],
1910
- "logical.pli": [
1911
- {
1912
- pli: getAny()
1913
- }
1914
- ],
1915
- "logical.pbs": [
1916
- {
1917
- pbs: getAny()
1918
- }
1919
- ],
1920
- "logical.pbe": [
1921
- {
1922
- pbe: getAny()
1923
- }
1924
- ],
1925
- "logical.pis": [
1926
- {
1927
- pis: getAny()
1928
- }
1929
- ],
1930
- "logical.pie": [
1931
- {
1932
- pie: getAny()
1933
- }
1934
- ],
1935
- "logical.space-b": [
1936
- {
1937
- "space-b": getLength()
1938
- }
1939
- ],
1940
- "logical.space-i": [
1941
- {
1942
- "space-i": getLength()
1943
- }
1944
- ],
1945
- "logical.inset-block": [
1946
- {
1947
- "inset-block": getLengthWithAuto()
1948
- }
1949
- ],
1950
- "logical.inset-inline": [
1951
- {
1952
- "inset-inline": getLengthWithAuto()
1953
- }
1954
- ],
1955
- "logical.block-start": [
1956
- {
1957
- "block-start": getLengthWithAuto()
1958
- }
1959
- ],
1960
- "logical.block-end": [
1961
- {
1962
- "block-end": getLengthWithAuto()
1963
- }
1964
- ],
1965
- "logical.inline-start": [
1966
- {
1967
- "inline-start": getLengthWithAuto()
1968
- }
1969
- ],
1970
- "logical.inline-end": [
1971
- {
1972
- "inline-end": getLengthWithAuto()
1973
- }
1974
- ],
1975
- "logical.border-li": [
1976
- {
1977
- "border-li": getLengthWithEmpty()
1978
- }
1979
- ],
1980
- "logical.border-lb": [
1981
- {
1982
- "border-lb": getLengthWithEmpty()
1983
- }
1984
- ],
1985
- "logical.border-bs": [
1986
- {
1987
- "border-bs": getLengthWithEmpty()
1988
- }
1989
- ],
1990
- "logical.border-be": [
1991
- {
1992
- "border-be": getLengthWithEmpty()
1993
- }
1994
- ],
1995
- "logical.border-is": [
1996
- {
1997
- "border-is": getLengthWithEmpty()
1998
- }
1999
- ],
2000
- "logical.border-ie": [
2001
- {
2002
- "border-ie": getLengthWithEmpty()
2003
- }
2004
- ],
2005
- "logical.border-color-bs": [
2006
- {
2007
- "border-bs": getAny()
2008
- }
2009
- ],
2010
- "logical.border-color-be": [
2011
- {
2012
- "border-be": getAny()
2013
- }
2014
- ],
2015
- "logical.border-color-is": [
2016
- {
2017
- "border-is": getAny()
2018
- }
2019
- ],
2020
- "logical.border-color-ie": [
2021
- {
2022
- "border-ie": getAny()
2023
- }
2024
- ],
2025
- "logical.rounded-bs": [
2026
- {
2027
- "rounded-bs": getRounded()
2028
- }
2029
- ],
2030
- "logical.rounded-be": [
2031
- {
2032
- "rounded-be": getRounded()
2033
- }
2034
- ],
2035
- "logical.rounded-is": [
2036
- {
2037
- "rounded-is": getRounded()
2038
- }
2039
- ],
2040
- "logical.rounded-ie": [
2041
- {
2042
- "rounded-ie": getRounded()
2043
- }
2044
- ],
2045
- "logical.rounded-ss": [
2046
- {
2047
- "rounded-ss": getRounded()
2048
- }
2049
- ],
2050
- "logical.rounded-se": [
2051
- {
2052
- "rounded-se": getRounded()
2053
- }
2054
- ],
2055
- "logical.rounded-es": [
2056
- {
2057
- "rounded-es": getRounded()
2058
- }
2059
- ],
2060
- "logical.rounded-ee": [
2061
- {
2062
- "rounded-ee": getRounded()
2063
- }
2064
- ],
2065
- "logical.divide-b": [
2066
- {
2067
- "divide-b": getLengthWithEmpty()
2068
- }
2069
- ],
2070
- "logical.divide-i": [
2071
- {
2072
- "divide-i": getLengthWithEmpty()
2073
- }
2074
- ]
2075
- };
2076
- var withLogical = (prevConfig) => {
2077
- return mergeConfigs(prevConfig, {
2078
- extend: {
2079
- classGroups: classGroupsConfig,
2080
- conflictingClassGroups: {
2081
- "inset-block": [
2082
- "logical.block-start",
2083
- "logical.block-end"
2084
- ],
2085
- "inset-inline": [
2086
- "logical.inline-start",
2087
- "logical.inline-end"
2088
- ],
2089
- p: [
2090
- "logical.plb",
2091
- "logical.pli",
2092
- "logical.pbs",
2093
- "logical.pbe",
2094
- "logical.pis",
2095
- "logical.pie"
2096
- ],
2097
- pli: [
2098
- "logical.pis",
2099
- "logical.pie"
2100
- ],
2101
- plb: [
2102
- "logical.pbs",
2103
- "logical.pbe"
2104
- ],
2105
- m: [
2106
- "logical.mlb",
2107
- "logical.mli",
2108
- "logical.mbs",
2109
- "logical.mbe",
2110
- "logical.mis",
2111
- "logical.mie"
2112
- ],
2113
- mli: [
2114
- "logical.mis",
2115
- "logical.mie"
2116
- ],
2117
- mlb: [
2118
- "logical.mbs",
2119
- "logical.mbe"
2120
- ],
2121
- overscroll: [
2122
- "overscroll-i",
2123
- "overscroll-b"
2124
- ],
2125
- rounded: [
2126
- "logical.rounded-bs",
2127
- "logical.rounded-be",
2128
- "logical.rounded-is",
2129
- "logical.rounded-ie",
2130
- "logical.rounded-ss",
2131
- "logical.rounded-se",
2132
- "logical.rounded-es",
2133
- "logical.rounded-ee"
2134
- ],
2135
- "logical.rounded-bs": [
2136
- "logical.rounded-ss",
2137
- "logical.rounded-se"
2138
- ],
2139
- "logical.rounded-be": [
2140
- "logical.rounded-es",
2141
- "logical.rounded-ee"
2142
- ],
2143
- "logical.rounded-is": [
2144
- "logical.rounded-ss",
2145
- "logical.rounded-es"
2146
- ],
2147
- "logical.rounded-ie": [
2148
- "logical.rounded-ee",
2149
- "logical.rounded-se"
2150
- ],
2151
- "logical.border-li": [
2152
- "logical.border-is",
2153
- "logical.border-ie"
2154
- ],
2155
- "logical.border-lb": [
2156
- "logical.border-bs",
2157
- "logical.border-be"
2158
- ],
2159
- "border-color": [
2160
- "logical.border-color-bs",
2161
- "logical.border-color-be",
2162
- "logical.border-color-is",
2163
- "logical.border-color-ie"
2164
- ],
2165
- border: [
2166
- "logical.border-bs",
2167
- "logical.border-be",
2168
- "logical.border-is",
2169
- "logical.border-ie"
2170
- ]
2171
- }
2172
- }
2173
- });
2174
- };
2175
-
2176
- // src/util/mx.ts
270
+ import { Children, createElement, forwardRef, isValidElement } from "react";
271
+ import { extendTailwindMerge, validators } from "tailwind-merge";
272
+ import { log } from "@dxos/log";
273
+ var __dxlog_file = "/__w/dxos/dxos/packages/ui/ui-theme/src/util/mx.ts";
2177
274
  var mx = extendTailwindMerge({
2178
275
  extend: {
2179
276
  classGroups: {
@@ -2193,11 +290,11 @@ var mx = extendTailwindMerge({
2193
290
  "font-extrabold",
2194
291
  "font-black",
2195
292
  // Arbitrary numbers
2196
- validators2.isArbitraryNumber
293
+ validators.isArbitraryNumber
2197
294
  ],
2198
295
  density: [
2199
- "density-fine",
2200
- "density-coarse"
296
+ "dx-density-fine",
297
+ "dx-density-coarse"
2201
298
  ],
2202
299
  "dx-focus-ring": [
2203
300
  "dx-focus-ring",
@@ -2217,522 +314,279 @@ var mx = extendTailwindMerge({
2217
314
  ]
2218
315
  }
2219
316
  }
2220
- }, withLogical);
2221
-
2222
- // src/styles/components/anchored-overflow.ts
2223
- var anchoredOverflowRoot = (_props, ...etc) => mx("overflow-anchored overflow-auto", ...etc);
2224
- var anchoredOverflowAnchor = (_props, ...etc) => mx("overflow-anchor is-px bs-px", ...etc);
2225
- var anchoredOverflowTheme = {
2226
- root: anchoredOverflowRoot,
2227
- anchor: anchoredOverflowAnchor
2228
- };
2229
-
2230
- // src/styles/fragments/density.ts
2231
- var coarseBlockSize = "min-bs-[2.5rem]";
2232
- var coarseTextPadding = "pli-3";
2233
- var coarseButtonPadding = "pli-4";
2234
- var coarseDimensions = `${coarseBlockSize} ${coarseTextPadding}`;
2235
- var coarseButtonDimensions = `${coarseBlockSize} ${coarseButtonPadding}`;
2236
- var fineBlockSize = "min-bs-[2.5rem] pointer-fine:min-bs-[2rem]";
2237
- var fineTextPadding = "pli-2";
2238
- var fineButtonPadding = "pli-2.5";
2239
- var fineDimensions = `${fineBlockSize} ${fineTextPadding}`;
2240
- var fineButtonDimensions = `${fineBlockSize} ${fineButtonPadding}`;
2241
- var densityBlockSize = (density = "coarse") => density === "fine" ? fineBlockSize : coarseBlockSize;
2242
-
2243
- // src/styles/fragments/disabled.ts
2244
- var staticDisabled = "opacity-40 cursor-not-allowed shadow-none";
2245
- var dataDisabled = "data-[disabled]:opacity-40 data-[disabled]:cursor-not-allowed";
2246
-
2247
- // src/styles/fragments/dimension.ts
2248
- var textBlockWidth = "is-full mli-auto max-is-[--text-content]";
317
+ });
318
+ var composableProps = ({ className, classNames, role, style, ...props }, { classNames: defaultClassNames, ...defaults } = {}) => ({
319
+ // Default props.
320
+ ...defaults,
321
+ // Spread supplied props.
322
+ ...props,
323
+ // Prefer explicit role, then defaults role, then 'none'.
324
+ role: role ?? defaults.role ?? "none",
325
+ // Merge styles.
326
+ style: {
327
+ ...defaults.style,
328
+ ...style
329
+ },
330
+ // Compose classnames.
331
+ className: mx(defaultClassNames, className, classNames)
332
+ });
333
+ var COMPOSABLE = /* @__PURE__ */ Symbol.for("dxos.composable");
334
+ function slottable(render) {
335
+ const wrapped = (props, forwardedRef) => {
336
+ let warn = false;
337
+ if (props.asChild) {
338
+ try {
339
+ const child = Children.only(props.children);
340
+ if (isValidElement(child) && typeof child.type !== "string" && !child.type[COMPOSABLE]) {
341
+ warn = true;
342
+ log.warn("slot child is not composable; create it with composable() or slottable()", {
343
+ child: child.type.displayName ?? child.type.name
344
+ }, {
345
+ F: __dxlog_file,
346
+ L: 125,
347
+ S: this,
348
+ C: (f, a) => f(...a)
349
+ });
350
+ }
351
+ } catch {
352
+ }
353
+ }
354
+ const result = render(props, forwardedRef);
355
+ if (warn) {
356
+ return createElement("div", {
357
+ role: "none",
358
+ className: "dx-slot-warning"
359
+ }, result);
360
+ }
361
+ return result;
362
+ };
363
+ const component = forwardRef(wrapped);
364
+ component[COMPOSABLE] = true;
365
+ return component;
366
+ }
367
+ function composable(render) {
368
+ const component = forwardRef(render);
369
+ component[COMPOSABLE] = true;
370
+ return component;
371
+ }
2249
372
 
2250
- // src/styles/fragments/elevation.ts
2251
- var contentShadow = (_) => [
2252
- "shadow-none"
2253
- ];
2254
- var surfaceShadow = ({ elevation }) => [
2255
- elevation === "positioned" ? "shadow" : elevation === "dialog" || elevation === "toast" ? "shadow-md" : "shadow-none"
2256
- ];
2257
- var surfaceZIndex = ({ level, elevation }) => {
2258
- switch (level) {
2259
- case "tooltip":
2260
- return elevation === "dialog" ? [
2261
- "z-[53]"
2262
- ] : elevation === "toast" ? [
2263
- "z-[43]"
2264
- ] : [
2265
- "z-30"
2266
- ];
2267
- case "menu":
2268
- return elevation === "dialog" ? [
2269
- "z-[52]"
2270
- ] : elevation === "toast" ? [
2271
- "z-[42]"
2272
- ] : [
2273
- "z-20"
2274
- ];
2275
- default:
2276
- return elevation === "dialog" ? [
2277
- "z-[51]"
2278
- ] : elevation === "toast" ? [
2279
- "z-[41]"
2280
- ] : [
2281
- "z-[1]"
2282
- ];
373
+ // src/util/size.ts
374
+ var sizeMap = {
375
+ 0: {
376
+ w: "w-0",
377
+ h: "h-0"
378
+ },
379
+ px: {
380
+ w: "w-px",
381
+ h: "h-px"
382
+ },
383
+ 0.5: {
384
+ w: "w-0.5",
385
+ h: "h-0.5"
386
+ },
387
+ 1: {
388
+ w: "w-1",
389
+ h: "h-1"
390
+ },
391
+ 1.5: {
392
+ w: "w-1.5",
393
+ h: "h-1.5"
394
+ },
395
+ 2: {
396
+ w: "w-2",
397
+ h: "h-2"
398
+ },
399
+ 2.5: {
400
+ w: "w-2.5",
401
+ h: "h-2.5"
402
+ },
403
+ 3: {
404
+ w: "w-3",
405
+ h: "h-3"
406
+ },
407
+ 3.5: {
408
+ w: "w-3.5",
409
+ h: "h-3.5"
410
+ },
411
+ 4: {
412
+ w: "w-4",
413
+ h: "h-4"
414
+ },
415
+ 5: {
416
+ w: "w-5",
417
+ h: "h-5"
418
+ },
419
+ 6: {
420
+ w: "w-6",
421
+ h: "h-6"
422
+ },
423
+ 7: {
424
+ w: "w-7",
425
+ h: "h-7"
426
+ },
427
+ 8: {
428
+ w: "w-8",
429
+ h: "h-8"
430
+ },
431
+ 9: {
432
+ w: "w-9",
433
+ h: "h-9"
434
+ },
435
+ 10: {
436
+ w: "w-10",
437
+ h: "h-10"
438
+ },
439
+ 11: {
440
+ w: "w-11",
441
+ h: "h-11"
442
+ },
443
+ 12: {
444
+ w: "w-12",
445
+ h: "h-12"
446
+ },
447
+ 14: {
448
+ w: "w-14",
449
+ h: "h-14"
450
+ },
451
+ 16: {
452
+ w: "w-16",
453
+ h: "h-16"
454
+ },
455
+ 20: {
456
+ w: "w-20",
457
+ h: "h-20"
458
+ },
459
+ 24: {
460
+ w: "w-24",
461
+ h: "h-24"
462
+ },
463
+ 28: {
464
+ w: "w-28",
465
+ h: "h-28"
466
+ },
467
+ 32: {
468
+ w: "w-32",
469
+ h: "h-32"
470
+ },
471
+ 36: {
472
+ w: "w-36",
473
+ h: "h-36"
474
+ },
475
+ 40: {
476
+ w: "w-40",
477
+ h: "h-40"
478
+ },
479
+ 44: {
480
+ w: "w-44",
481
+ h: "h-44"
482
+ },
483
+ 48: {
484
+ w: "w-48",
485
+ h: "h-48"
486
+ },
487
+ 52: {
488
+ w: "w-52",
489
+ h: "h-52"
490
+ },
491
+ 56: {
492
+ w: "w-56",
493
+ h: "h-56"
494
+ },
495
+ 60: {
496
+ w: "w-60",
497
+ h: "h-60"
498
+ },
499
+ 64: {
500
+ w: "w-64",
501
+ h: "h-64"
502
+ },
503
+ 72: {
504
+ w: "w-72",
505
+ h: "h-72"
506
+ },
507
+ 80: {
508
+ w: "w-80",
509
+ h: "h-80"
510
+ },
511
+ 96: {
512
+ w: "w-96",
513
+ h: "h-96"
2283
514
  }
2284
515
  };
2285
-
2286
- // src/styles/fragments/focus.ts
2287
- var focusRing = "dx-focus-ring";
2288
- var dropRing = "ring-1 ring-offset-0 ring-primary-350 ring-offset-white dark:ring-primary-450 dark:ring-offset-black";
2289
- var dropRingInner = "before:z-[1] before:absolute before:inset-0 before:ring-1 before:ring-inset before:ring-primary-350 before:dark:ring-primary-450";
2290
- var subduedFocus = "focus:outline-none focus-visible:outline-none focus:ring-0 ring-0 focus:border-0 border-0";
2291
- var staticFocusRing = "ring-2 ring-offset-0 ring-primary-350 ring-offset-white dark:ring-primary-450 dark:ring-offset-black";
2292
-
2293
- // src/styles/fragments/group.ts
2294
- var group = (props) => [
2295
- props.elevation === "base" ? "bg-transparent border border-separator" : "bg-modalSurface",
2296
- surfaceShadow(props)
2297
- ];
2298
-
2299
- // src/styles/fragments/hover.ts
2300
- var hoverColors = "transition-colors duration-100 linear hover:bg-hoverSurface";
2301
- var ghostHover = "hover:bg-hoverSurface";
2302
- var ghostFocusWithin = "focus-within:bg-hoverSurface";
2303
- var subtleHover = "hover:bg-hoverOverlay";
2304
- var hoverableControls = "[--controls-opacity:1] hover-hover:[--controls-opacity:0] hover-hover:hover:[--controls-opacity:1]";
2305
- var groupHoverControlItemWithTransition = "transition-opacity duration-200 opacity-0 group-hover:opacity-100";
2306
- var hoverableFocusedKeyboardControls = "focus-visible:[--controls-opacity:1]";
2307
- var hoverableFocusedWithinControls = "focus-within:[--controls-opacity:1]";
2308
- var hoverableFocusedControls = "focus:[--controls-opacity:1]";
2309
- var hoverableOpenControlItem = "hover-hover:aria-[expanded=true]:[--controls-opacity:1]";
2310
- var hoverableControlItem = "opacity-[--controls-opacity]";
2311
- var hoverableControlItemTransition = "transition-opacity duration-200";
2312
- var staticHoverableControls = "hover-hover:[--controls-opacity:1]";
2313
-
2314
- // src/styles/fragments/layout.ts
2315
- var bounceLayout = "fixed inset-0 z-0 overflow-auto overscroll-auto";
2316
- var fixedInsetFlexLayout = "flex flex-col fixed inset-0 overflow-hidden overscroll-none";
2317
-
2318
- // src/styles/fragments/motion.ts
2319
- var popperMotion = "will-change-[opacity,transform] data-[side=top]:animate-slide-down-and-fade data-[side=right]:animate-slide-left-and-fade data-[side=bottom]:animate-slide-up-and-fade data-[side=left]:animate-slide-right-and-fade";
2320
-
2321
- // src/styles/fragments/ornament.ts
2322
- var separatorBorderColor = "border-separator";
2323
- var subduedSeparatorBorderColor = "border-subduedSeparator";
2324
- var inlineSeparator = "self-stretch border-ie mli-1";
2325
- var blockSeparator = "self-stretch border-be mlb-1";
2326
-
2327
- // src/styles/fragments/selected.ts
2328
- var ghostSelectedCurrent = [
2329
- ghostHover,
2330
- "aria-[current]:bg-inputSurface hover:aria-[current]:bg-hoverSurface",
2331
- "aria-selected:bg-primary-100 dark:aria-selected:bg-primary-850 hover:aria-selected:bg-primary-150 hover:dark:aria-selected:bg-primary-800",
2332
- "aria-[current]:aria-selected:bg-primary-200 dark:aria-[current]:aria-selected:bg-primary-750 hover:aria-[current]:aria-selected:bg-primary-200 hover:dark:aria-[current]:aria-selected:bg-primary-750"
2333
- ];
2334
- var ghostHighlighted = "data-[highlighted]:bg-primary-100 dark:data-[highlighted]:bg-primary-600 hover:data-[highlighted]:bg-primary-150 hover:dark:data-[highlighted]:bg-primary-500";
2335
- var ghostSelectedTrackingInterFromNormal = "tracking-[0.0092em]";
2336
- var ghostSelected = "aria-selected:bg-baseSurface aria-selected:text-accentText hover:aria-selected:text-accentTextHover aria-selected:font-semibold aria-selected:tracking-normal transition-[color,font-variation-settings,letter-spacing]";
2337
- var ghostSelectedContainerMd = "@md:aria-selected:bg-baseSurface @md:aria-selected:text-accentText @md:hover:aria-selected:text-accentTextHover @md:aria-selected:font-semibold @md:aria-selected:tracking-normal @md:transition-[color,font-variation-settings,letter-spacing]";
2338
- var staticGhostSelectedCurrent = ({ current, selected }) => [
2339
- current && selected ? "bg-primary-200 dark:bg-primary-750 hover:bg-primary-200 hover:dark:bg-primary-750" : current ? "bg-inputSurface hover:bg-hoverSurface" : selected ? "bg-primary-100 dark:bg-primary-850 hover:bg-primary-150 hover:dark:bg-primary-800" : ghostHover
2340
- ];
2341
- var staticGhostSelected = ({ selected }) => selected ? [
2342
- "bg-primary-200 dark:bg-primary-750"
2343
- ] : [];
2344
-
2345
- // src/styles/fragments/shimmer.ts
2346
- var shimmer = "relative before:absolute before:inset-0 before:-translate-x-full before:animate-shimmer before:bg-gradient-to-r before:from-transparent before:via-neutral-100/10 before:to-transparent isolate overflow-hidden";
2347
- var strongShimmer = "relative before:absolute before:inset-0 before:-translate-x-full before:animate-shimmer before:bg-gradient-to-r before:from-transparent before:via-primary-100/80 before:to-transparent isolate overflow-hidden";
2348
-
2349
- // src/styles/fragments/surface.ts
2350
- var baseSurface = "base-surface";
2351
- var sidebarSurface = "sidebar-surface backdrop-blur-md dark:backdrop-blur-lg";
2352
- var sidebarBorder = "border-separator";
2353
- var activeSurface = "base-surface";
2354
- var groupBorder = "border-separator";
2355
- var modalSurface = "modal-surface backdrop-blur-md";
2356
- var attentionSurface = "attention-surface";
2357
- var accentSurface = "bg-accentSurface text-accentSurfaceText";
2358
-
2359
- // src/styles/fragments/size.ts
2360
- var sizeWidthMap = /* @__PURE__ */ new Map([
2361
- [
2362
- 0,
2363
- "is-0"
2364
- ],
2365
- [
2366
- "px",
2367
- "is-px"
2368
- ],
2369
- [
2370
- 0.5,
2371
- "is-0.5"
2372
- ],
2373
- [
2374
- 1,
2375
- "is-1"
2376
- ],
2377
- [
2378
- 1.5,
2379
- "is-1.5"
2380
- ],
2381
- [
2382
- 2,
2383
- "is-2"
2384
- ],
2385
- [
2386
- 2.5,
2387
- "is-2.5"
2388
- ],
2389
- [
2390
- 3,
2391
- "is-3"
2392
- ],
2393
- [
2394
- 3.5,
2395
- "is-3.5"
2396
- ],
2397
- [
2398
- 4,
2399
- "is-4"
2400
- ],
2401
- [
2402
- 5,
2403
- "is-5"
2404
- ],
2405
- [
2406
- 6,
2407
- "is-6"
2408
- ],
2409
- [
2410
- 7,
2411
- "is-7"
2412
- ],
2413
- [
2414
- 8,
2415
- "is-8"
2416
- ],
2417
- [
2418
- 9,
2419
- "is-9"
2420
- ],
2421
- [
2422
- 10,
2423
- "is-10"
2424
- ],
2425
- [
2426
- 11,
2427
- "is-11"
2428
- ],
2429
- [
2430
- 12,
2431
- "is-12"
2432
- ],
2433
- [
2434
- 14,
2435
- "is-14"
2436
- ],
2437
- [
2438
- 16,
2439
- "is-16"
2440
- ],
2441
- [
2442
- 20,
2443
- "is-20"
2444
- ],
2445
- [
2446
- 24,
2447
- "is-24"
2448
- ],
2449
- [
2450
- 28,
2451
- "is-28"
2452
- ],
2453
- [
2454
- 32,
2455
- "is-32"
2456
- ],
2457
- [
2458
- 36,
2459
- "is-36"
2460
- ],
2461
- [
2462
- 40,
2463
- "is-40"
2464
- ],
2465
- [
2466
- 44,
2467
- "is-44"
2468
- ],
2469
- [
2470
- 48,
2471
- "is-48"
2472
- ],
2473
- [
2474
- 52,
2475
- "is-52"
2476
- ],
2477
- [
2478
- 56,
2479
- "is-56"
2480
- ],
2481
- [
2482
- 60,
2483
- "is-60"
2484
- ],
2485
- [
2486
- 64,
2487
- "is-64"
2488
- ],
2489
- [
2490
- 72,
2491
- "is-72"
2492
- ],
2493
- [
2494
- 80,
2495
- "is-80"
2496
- ],
2497
- [
2498
- 96,
2499
- "is-96"
2500
- ]
2501
- ]);
2502
- var sizeHeightMap = /* @__PURE__ */ new Map([
2503
- [
2504
- 0,
2505
- "bs-0"
2506
- ],
2507
- [
2508
- "px",
2509
- "bs-px"
2510
- ],
2511
- [
2512
- 0.5,
2513
- "bs-0.5"
2514
- ],
2515
- [
2516
- 1,
2517
- "bs-1"
2518
- ],
2519
- [
2520
- 1.5,
2521
- "bs-1.5"
2522
- ],
2523
- [
2524
- 2,
2525
- "bs-2"
2526
- ],
2527
- [
2528
- 2.5,
2529
- "bs-2.5"
2530
- ],
2531
- [
2532
- 3,
2533
- "bs-3"
2534
- ],
2535
- [
2536
- 3.5,
2537
- "bs-3.5"
2538
- ],
2539
- [
2540
- 4,
2541
- "bs-4"
2542
- ],
2543
- [
2544
- 5,
2545
- "bs-5"
2546
- ],
2547
- [
2548
- 6,
2549
- "bs-6"
2550
- ],
2551
- [
2552
- 7,
2553
- "bs-7"
2554
- ],
2555
- [
2556
- 8,
2557
- "bs-8"
2558
- ],
2559
- [
2560
- 9,
2561
- "bs-9"
2562
- ],
2563
- [
2564
- 10,
2565
- "bs-10"
2566
- ],
2567
- [
2568
- 11,
2569
- "bs-11"
2570
- ],
2571
- [
2572
- 12,
2573
- "bs-12"
2574
- ],
2575
- [
2576
- 14,
2577
- "bs-14"
2578
- ],
2579
- [
2580
- 16,
2581
- "bs-16"
2582
- ],
2583
- [
2584
- 20,
2585
- "bs-20"
2586
- ],
2587
- [
2588
- 24,
2589
- "bs-24"
2590
- ],
2591
- [
2592
- 28,
2593
- "bs-28"
2594
- ],
2595
- [
2596
- 32,
2597
- "bs-32"
2598
- ],
2599
- [
2600
- 36,
2601
- "bs-36"
2602
- ],
2603
- [
2604
- 40,
2605
- "bs-40"
2606
- ],
2607
- [
2608
- 44,
2609
- "bs-44"
2610
- ],
2611
- [
2612
- 48,
2613
- "bs-48"
2614
- ],
2615
- [
2616
- 52,
2617
- "bs-52"
2618
- ],
2619
- [
2620
- 56,
2621
- "bs-56"
2622
- ],
2623
- [
2624
- 60,
2625
- "bs-60"
2626
- ],
2627
- [
2628
- 64,
2629
- "bs-64"
2630
- ],
2631
- [
2632
- 72,
2633
- "bs-72"
2634
- ],
2635
- [
2636
- 80,
2637
- "bs-80"
2638
- ],
2639
- [
2640
- 96,
2641
- "bs-96"
2642
- ]
2643
- ]);
2644
- var sizes = new Set(sizeWidthMap.keys());
2645
- var getSizeHeight = sizeHeightMap.get.bind(sizeHeightMap);
2646
- var getSizeWidth = sizeWidthMap.get.bind(sizeWidthMap);
2647
- var getSize = (size) => mx(getSizeHeight(size), getSizeWidth(size));
2648
- var computeSize = (value, defaultSize) => {
2649
- if (sizes.has(value)) {
516
+ var SIZE_VALUES = Object.keys(sizeMap).map((key) => key === "px" ? "px" : Number(key));
517
+ var getHeight = (size) => sizeMap[size]?.h;
518
+ var getWidth = (size) => sizeMap[size]?.w;
519
+ var getSize = (size) => mx(getHeight(size), getWidth(size));
520
+ var sizeValue = (size) => size === "px" ? 1 : size;
521
+ var sizeToRem = (size) => size === "px" ? "1px" : `${size * 0.25}rem`;
522
+ var iconSize = (size) => ({
523
+ "--icon-size": size ? sizeToRem(size) : "initial"
524
+ });
525
+ var snapSize = (value, defaultSize) => {
526
+ if (SIZE_VALUES.includes(value)) {
2650
527
  return value;
2651
528
  } else if (value <= 0) {
2652
529
  return 0;
2653
- } else if (value === 1) {
530
+ } else if (value < 0.5) {
2654
531
  return "px";
2655
532
  } else {
2656
533
  const wholeSeries = Math.floor(value);
2657
534
  const halfSeries = Math.floor(value * 2) / 2;
2658
535
  const doubleSeries = Math.floor(value / 2) * 2;
2659
536
  const quadrupleSeries = Math.floor(value / 4) * 4;
2660
- if (sizes.has(halfSeries)) {
537
+ if (SIZE_VALUES.includes(halfSeries)) {
2661
538
  return halfSeries;
2662
- } else if (sizes.has(wholeSeries)) {
539
+ } else if (SIZE_VALUES.includes(wholeSeries)) {
2663
540
  return wholeSeries;
2664
- } else if (sizes.has(doubleSeries)) {
541
+ } else if (SIZE_VALUES.includes(doubleSeries)) {
2665
542
  return doubleSeries;
2666
- } else if (sizes.has(quadrupleSeries)) {
543
+ } else if (SIZE_VALUES.includes(quadrupleSeries)) {
2667
544
  return quadrupleSeries;
2668
545
  } else {
2669
546
  return defaultSize;
2670
547
  }
2671
548
  }
2672
549
  };
2673
- var sizeValue = (size) => size === "px" ? 1 : size;
2674
-
2675
- // src/styles/fragments/text.ts
2676
- var placeholderText = "placeholder-neutral-300 dark:placeholder-neutral-500";
2677
- var staticPlaceholderText = "text-neutral-300 dark:text-neutral-500";
2678
- var descriptionText = "text-sm font-normal text-description";
2679
- var descriptionTextPrimary = "text-sm font-normal text-baseText";
2680
- var descriptionMessage = [
2681
- descriptionText,
2682
- "border border-dashed border-separator rounded p-4"
2683
- ];
2684
- var chromeText = "text-sm font-normal";
2685
550
 
2686
- // src/styles/fragments/valence.ts
2687
- var successText = "text-xs font-medium text-successText";
2688
- var infoText = "text-xs font-medium text-infoText";
2689
- var warningText = "text-xs font-medium text-warningText";
2690
- var errorText = "text-xs font-medium text-errorText";
2691
- var valenceColorText = (valence) => {
551
+ // src/util/valence.ts
552
+ var textValence = (valence) => {
2692
553
  switch (valence) {
2693
554
  case "success":
2694
- return successText;
555
+ return "font-medium text-success-text";
2695
556
  case "info":
2696
- return infoText;
557
+ return "font-medium text-info-text";
2697
558
  case "warning":
2698
- return warningText;
559
+ return "font-medium text-warning-text";
2699
560
  case "error":
2700
- return errorText;
2701
- default:
2702
- return void 0;
561
+ return "font-medium text-error-text";
2703
562
  }
2704
563
  };
2705
- var neutralMessageColors = "border border-dashed border-separator text-subdued";
2706
- var successMessageColors = "text-successSurfaceText bg-successSurface";
2707
- var infoMessageColors = "text-infoSurfaceText bg-infoSurface";
2708
- var warningMessageColors = "text-warningSurfaceText bg-warningSurface";
2709
- var errorMessageColors = "text-errorSurfaceText bg-errorSurface";
2710
564
  var messageValence = (valence) => {
2711
565
  switch (valence) {
2712
566
  case "success":
2713
- return successMessageColors;
567
+ return "font-medium text-success-text border-success-text bg-success-surface";
2714
568
  case "info":
2715
- return infoMessageColors;
569
+ return "font-medium text-info-text border-info-text bg-info-surface";
2716
570
  case "warning":
2717
- return warningMessageColors;
571
+ return "font-medium text-warning-text border-warning-text bg-warning-surface";
2718
572
  case "error":
2719
- return errorMessageColors;
573
+ return "font-medium text-error-text border-error-text bg-error-surface";
2720
574
  default:
2721
- return neutralMessageColors;
575
+ return "font-medium text-neutral-text border-neutral-text bg-neutral-surface";
2722
576
  }
2723
577
  };
2724
578
 
2725
- // src/styles/components/avatar.ts
2726
- var avatarRoot = ({ size = 10, inGroup }, ...etc) => mx("relative inline-flex shrink-0", getSize(size), inGroup && (size === "px" || size <= 3 ? "-mie-1" : "-mie-2"), ...etc);
579
+ // src/theme/components/avatar.ts
580
+ var avatarRoot = ({ size = 10, inGroup }, ...etc) => mx("relative inline-flex shrink-0", getSize(size), inGroup && (size === "px" || size <= 3 ? "-mr-1" : "-mr-2"), ...etc);
2727
581
  var avatarLabel = ({ srOnly }, ...etc) => mx(srOnly && "sr-only", ...etc);
2728
- var avatarDescription = ({ srOnly }, ...etc) => mx(descriptionText, srOnly && "sr-only", ...etc);
2729
- var avatarFrame = ({ variant }, ...etc) => mx("is-full bs-full bg-[--surface-bg]", variant === "circle" ? "rounded-full" : "rounded", ...etc);
2730
- var avatarStatusIcon = ({ status, size = 3 }, ...etc) => mx("absolute block-end-0 inline-end-0", getSize(size), status === "inactive" ? "text-amber-350 dark:text-amber-250" : status === "active" ? "text-emerald-350 dark:text-emerald-250" : "text-neutral-350 dark:text-neutral-250", ...etc);
2731
- var avatarRing = ({ status, variant, animation }, ...etc) => mx("absolute inset-0 border-2", variant === "circle" ? "rounded-full" : "rounded", status === "current" ? "border-primary-400 dark:border-primary-500" : status === "active" ? "border-emerald-400 dark:border-emerald-400" : status === "error" ? "border-rose-400 dark:border-rose-500" : status === "warning" ? "border-amber-400 dark:border-amber-500" : status === "inactive" ? "border-separator" : status === "internal" ? "border-fuchsia-600" : "border-[color:var(--surface-bg)]", animation === "pulse" ? "animate-halo-pulse" : "", ...etc);
582
+ var avatarDescription = ({ srOnly }, ...etc) => mx("text-description", srOnly && "sr-only", ...etc);
583
+ var avatarFrame = ({ variant }, ...etc) => mx("h-full w-full bg-(--surface-bg)", variant === "circle" ? "rounded-full" : "rounded-sm", ...etc);
584
+ var avatarStatusIcon = ({ status, size = 3 }, ...etc) => mx("absolute bottom-0 end-0", getSize(size), status === "inactive" ? "text-amber-400 dark:text-amber-300" : status === "active" ? "text-emerald-400 dark:text-emerald-300" : "text-neutral-400 dark:text-neutral-300", ...etc);
585
+ var avatarRing = ({ status, variant, animation }, ...etc) => mx("absolute inset-0 border-2", variant === "circle" ? "rounded-full" : "rounded-sm", status === "current" ? "border-primary-400 dark:border-primary-500" : status === "active" ? "border-emerald-400 dark:border-emerald-400" : status === "error" ? "border-rose-400 dark:border-rose-500" : status === "warning" ? "border-amber-400 dark:border-amber-500" : status === "inactive" ? "border-separator" : status === "internal" ? "border-fuchsia-600" : "border-[color:var(--surface-bg)]", animation === "pulse" ? "animate-halo-pulse" : "", ...etc);
2732
586
  var avatarFallbackText = (_props, ...etc) => mx("fill-white", ...etc);
2733
587
  var avatarGroup = (_props, ...etc) => mx("inline-flex items-center", ...etc);
2734
- var avatarGroupLabel = ({ size, srOnly }, ...etc) => mx(srOnly ? "sr-only" : "rounded-full truncate text-sm leading-none plb-1 pli-2 relative z-[1] flex items-center justify-center", size && getSizeHeight(size), ...etc);
2735
- var avatarGroupDescription = ({ srOnly }, ...etc) => mx(srOnly ? "sr-only" : descriptionText, ...etc);
588
+ var avatarGroupLabel = ({ size, srOnly }, ...etc) => mx(srOnly ? "sr-only" : "rounded-full truncate text-sm leading-none py-1 px-2 relative z-[1] flex items-center justify-center", size && getHeight(size), ...etc);
589
+ var avatarGroupDescription = ({ srOnly }, ...etc) => mx(srOnly ? "sr-only" : "text-description", ...etc);
2736
590
  var avatarTheme = {
2737
591
  root: avatarRoot,
2738
592
  label: avatarLabel,
@@ -2746,7 +600,7 @@ var avatarTheme = {
2746
600
  groupDescription: avatarGroupDescription
2747
601
  };
2748
602
 
2749
- // src/styles/components/breadcrumb.ts
603
+ // src/theme/components/breadcrumb.ts
2750
604
  var breadcrumbRoot = (_props, ...etc) => mx("shrink-0 flex items-center", ...etc);
2751
605
  var breadcrumbList = (_props, ...etc) => mx("contents", ...etc);
2752
606
  var breadcrumbListItem = (_props, ...etc) => mx("contents", ...etc);
@@ -2760,38 +614,101 @@ var breadcrumbTheme = {
2760
614
  separator: breadcrumbSeparator
2761
615
  };
2762
616
 
2763
- // src/styles/components/button.ts
2764
- var primaryButtonColors = "text-accentSurfaceText bg-accentSurface hover:bg-accentSurfaceHover aria-pressed:bg-primary-500 dark:aria-pressed:bg-primary-500 data-[state=open]:bg-primary-500 dark:data-[state=open]:bg-primary-500 aria-checked:bg-primary-500 dark:aria-checked:bg-primary-500 aria-checked:text-primary-100";
2765
- var staticDefaultButtonColors = "bg-inputSurface";
2766
- var defaultButtonColors = mx(staticDefaultButtonColors, "data-[state=open]:bg-inputSurface aria-pressed:text-accentText aria-pressed:bg-baseSurface aria-checked:text-accentText aria-checked:bg-baseSurface");
2767
- var ghostButtonColors = mx(ghostHover, "hover:text-inherit data-[state=open]:bg-inputSurface aria-pressed:text-accentText aria-pressed:bg-baseSurface aria-checked:text-accentText aria-checked:bg-baseSurface");
617
+ // src/theme/components/card.ts
618
+ var cardRoot = ({ border, fullWidth }, ...etc) => mx("dx-card dx-card-min-width dx-card-max-width min-h-(--dx-rail-item) group/card relative overflow-hidden", border && "bg-card-surface border border-separator dark:border-subdued-separator rounded-xs dx-focus-ring-group-y-indicator", fullWidth && "max-w-none!", ...etc);
619
+ var cardToolbar = (_, ...etc) => mx("dx-card__toolbar dx-density-fine bg-transparent p-0! gap-0! col-span-3 grid! grid-cols-subgrid! [contain:none]", ...etc);
620
+ var cardTitle = (_props, ...etc) => mx("dx-card__title grow truncate", ...etc);
621
+ var cardContent = (_props, ...etc) => mx("dx-card__content contents pb-1 last:pb-0", ...etc);
622
+ var cardHeading = ({ variant = "default" }, ...etc) => mx("dx-card__heading", variant === "default" && "py-1", variant === "subtitle" && "py-2 text-xs text-description font-medium uppercase", ...etc);
623
+ var cardText = ({ variant = "default", truncate: _truncate }, ...etc) => mx("dx-card__text items-center overflow-hidden", variant === "default" && "py-1", variant === "description" && "py-1.5 text-description", ...etc);
624
+ var cardTextSpan = ({ variant = "default", truncate }, ...etc) => mx(variant === "description" && "text-sm text-description line-clamp-3", truncate && "truncate", ...etc);
625
+ var cardPoster = (_props, ...etc) => mx("dx-card__poster col-span-3 max-h-[200px]", ...etc);
626
+ var cardPosterIcon = (_props, ...etc) => mx("dx-card__poster-icon col-span-3 grid place-items-center bg-input-surface text-subdued max-h-[200px]", ...etc);
627
+ var cardAction = (_props, ...etc) => mx("dx-card__acztion col-span-3 !grid grid-cols-subgrid p-0! w-full text-start overflow-hidden", ...etc);
628
+ var cardActionLabel = (_props, ...etc) => mx("dx-card__action-label min-w-0 flex-1 truncate", ...etc);
629
+ var cardLink = (_props, ...etc) => mx("dx-card__link col-span-3 !grid grid-cols-subgrid group p-0! dx-button dx-focus-ring min-h-1!", ...etc);
630
+ var cardLinkLabel = (_props, ...etc) => mx("dx-card__link-label min-w-0 flex-1 truncate", ...etc);
631
+ var cardRow = (_, ...etc) => mx("dx-card__row col-span-3 grid grid-cols-subgrid", ...etc);
632
+ var cardIconBlock = ({ padding }, ...etc) => mx("dx-card__icon-block grid h-[var(--dx-rail-item)] w-[var(--dx-rail-item)] place-items-center", padding && "[&>*]:p-1", ...etc);
633
+ var cardTheme = {
634
+ root: cardRoot,
635
+ toolbar: cardToolbar,
636
+ title: cardTitle,
637
+ content: cardContent,
638
+ row: cardRow,
639
+ heading: cardHeading,
640
+ text: cardText,
641
+ "text-span": cardTextSpan,
642
+ poster: cardPoster,
643
+ "poster-icon": cardPosterIcon,
644
+ action: cardAction,
645
+ "action-label": cardActionLabel,
646
+ link: cardLink,
647
+ "link-label": cardLinkLabel,
648
+ "icon-block": cardIconBlock
649
+ };
650
+
651
+ // src/theme/components/button.ts
652
+ var primaryButtonColors = "text-accent-surface-text bg-accent-surface hover:bg-accent-surface-hover aria-pressed:bg-primary-500 dark:aria-pressed:bg-primary-500 data-[state=open]:bg-primary-500 dark:data-[state=open]:bg-primary-500 aria-checked:bg-primary-500 dark:aria-checked:bg-primary-500 aria-checked:text-primary-100";
653
+ var staticDefaultButtonColors = "bg-input-surface text-input-surface-text";
654
+ var defaultButtonColors = mx(staticDefaultButtonColors, "data-[state=open]:bg-input-surface aria-pressed:text-accent-text aria-pressed:bg-base-surface aria-checked:text-accent-text aria-checked:bg-base-surface");
655
+ var ghostButtonColors = mx(ghostHover, "hover:text-inherit data-[state=open]:bg-input-surface aria-pressed:text-accent-text aria-pressed:bg-base-surface aria-checked:text-accent-text aria-checked:bg-base-surface");
2768
656
  var buttonRoot = (_props, ...etc) => {
2769
- return mx("dx-button dx-focus-ring group max-is-full [&_span]:truncate", ...etc);
657
+ return mx("dx-button dx-focus-ring group [&_span]:truncate", ...etc);
2770
658
  };
2771
659
  var buttonGroup = (_props, ...etc) => {
2772
- return mx("inline-flex rounded-sm [&>:first-child]:rounded-is-sm [&>:last-child]:rounded-ie-sm [&>button]:relative", ...etc);
660
+ return mx("inline-flex rounded-xs [&>:first-child]:rounded-w-sm [&>:last-child]:rounded-ie-sm [&>button]:relative", ...etc);
2773
661
  };
2774
662
  var buttonTheme = {
2775
663
  root: buttonRoot,
2776
664
  group: buttonGroup
2777
665
  };
2778
666
 
2779
- // src/styles/components/dialog.ts
2780
- var sizeMap = {
2781
- sm: "md:!max-is-[24rem]",
2782
- md: "md:!max-is-[32rem]",
2783
- lg: "md:!max-is-[40rem]",
2784
- xl: "md:!max-is-[60rem]"
667
+ // src/theme/primitives/column.ts
668
+ var withColumn = {
669
+ /** Centers element in the Column grid via --dx-col. No-op outside Column or inside ScrollArea. */
670
+ center: () => "[grid-column:var(--dx-col,auto)]",
671
+ /** Propagates the Column grid to children via subgrid. No-op outside Column.
672
+ * Direct children default to center column unless they are a dx-container (ScrollArea). */
673
+ propagate: () => "[.dx-column-root_&]:col-span-full [.dx-column-root_&]:grid [.dx-column-root_&]:grid-cols-subgrid [.dx-column-root_&]:[&>*:not(.dx-container)]:[grid-column:var(--dx-col,auto)]",
674
+ /** Resets --dx-col after consuming --gutter. Applied by ScrollArea.Viewport. */
675
+ consumed: () => "[--dx-col:auto]"
676
+ };
677
+ var columnRoot = (_, ...etc) => {
678
+ return mx("dx-column-root grid", ...etc);
679
+ };
680
+ var columnRow = (_, ...etc) => {
681
+ return mx("col-span-3 grid grid-cols-subgrid", ...etc);
682
+ };
683
+ var columnBleed = (_, ...etc) => {
684
+ return mx("col-span-full grid grid-cols-subgrid min-h-0", ...etc);
685
+ };
686
+ var columnCenter = (_, ...etc) => {
687
+ return mx(withColumn.center(), "min-h-0", ...etc);
688
+ };
689
+ var columnTheme = {
690
+ root: columnRoot,
691
+ row: columnRow,
692
+ bleed: columnBleed,
693
+ center: columnCenter
694
+ };
695
+
696
+ // src/theme/components/dialog.ts
697
+ var sizeMap2 = {
698
+ sm: "md:max-w-[24rem]",
699
+ md: "md:max-w-[32rem]!",
700
+ lg: "md:max-w-[40rem]!",
701
+ xl: "md:max-w-[60rem]!"
2785
702
  };
2786
703
  var dialogOverlay = (_props, ...etc) => mx("dx-dialog__overlay", ...etc);
2787
- var dialogContent = ({ inOverlayLayout, size }, ...etc) => {
2788
- return mx("@container dx-dialog__content dx-focus-ring modal-surface density-coarse is-full gap-4", !inOverlayLayout && "fixed z-50 top-[50%] left-[50%] -translate-x-[50%] -translate-y-[50%]", size && sizeMap[size], ...etc);
704
+ var dialogContent = ({ inOverlayLayout, size = "md" }, ...etc) => {
705
+ return mx("@container", "dx-dialog__content dx-focus-ring dx-modal-surface dx-density-coarse py-4", !inOverlayLayout && "fixed z-50 top-[50%] left-[50%] -translate-x-[50%] -translate-y-[50%]", sizeMap2[size], ...etc);
2789
706
  };
2790
- var dialogHeader = (_props, ...etc) => mx("dx-dialog__header flex items-center justify-between", ...etc);
2791
- var dialogBody = (_props, ...etc) => mx("dx-dialog__body flex flex-col gap-4 bs-full overflow-hidden", ...etc);
2792
- var dialogActionBar = (_props, ...etc) => mx("dx-dialog__actionbar flex items-center density-coarse", ...etc);
707
+ var dialogHeader = (_props, ...etc) => mx("dx-dialog__header flex pb-4 items-center justify-between", withColumn.center(), ...etc);
708
+ var dialogBody = (_props, ...etc) => mx("dx-dialog__body dx-expander", withColumn.propagate(), ...etc);
709
+ var dialogActionBar = (_props, ...etc) => mx("dx-dialog__actionbar flex items-center pt-4 gap-2 dx-density-coarse", withColumn.center(), ...etc);
2793
710
  var dialogTitle = ({ srOnly }, ...etc) => mx("dx-dialog__title", srOnly && "sr-only", ...etc);
2794
- var dialogDescription = ({ srOnly }, ...etc) => mx("dx-dialog__description", descriptionText, srOnly && "sr-only", ...etc);
711
+ var dialogDescription = ({ srOnly }, ...etc) => mx("dx-dialog__description", "text-description", srOnly && "sr-only", ...etc);
2795
712
  var dialogTheme = {
2796
713
  overlay: dialogOverlay,
2797
714
  content: dialogContent,
@@ -2802,114 +719,120 @@ var dialogTheme = {
2802
719
  description: dialogDescription
2803
720
  };
2804
721
 
2805
- // src/styles/components/icon.ts
2806
- var iconRoot = ({ size }, etc) => mx("shrink-0 bs-[1em] is-[1em] text-[var(--icons-color,currentColor)]", size && getSize(size), etc);
722
+ // src/theme/components/focus.ts
723
+ var focusRing = ({ border }, ...etc) => mx("dx-ring-pseudo outline-hidden", "focus:after:ring-neutral-focus-indicator", "data-[focus-state=active]:after:ring-neutral-focus-indicator", "data-[focus-state=error]:after:ring-rose-500", border && "border border-separator", ...etc);
724
+ var focusTheme = {
725
+ group: focusRing,
726
+ item: focusRing
727
+ };
728
+
729
+ // src/theme/components/icon.ts
730
+ var iconRoot = ({ size }, etc) => {
731
+ return mx("shrink-0 text-[var(--icons-color,currentColor)]", size ? getSize(size) : "[width:var(--icon-size,var(--dx-default-icons-size))] [height:var(--icon-size,var(--dx-default-icons-size))]", etc);
732
+ };
2807
733
  var iconTheme = {
2808
734
  root: iconRoot
2809
735
  };
2810
736
 
2811
- // src/styles/components/icon-button.ts
737
+ // src/theme/components/icon-button.ts
2812
738
  var iconButtonRoot = ({ iconOnly }, ...etc) => {
2813
- return mx("gap-2", iconOnly && "p-iconButtonPadding min-bs-0", ...etc);
739
+ return mx("px-1.5", !iconOnly && "gap-2", ...etc);
2814
740
  };
2815
741
  var iconButtonTheme = {
2816
742
  root: iconButtonRoot
2817
743
  };
2818
744
 
2819
- // src/styles/components/input.ts
2820
- var neutralInputValence = "";
2821
- var successInputValence = "shadow-emerald-500/50 dark:shadow-emerald-600/50";
2822
- var infoInputValence = "shadow-cyan-500/50 dark:shadow-cyan-600/50";
2823
- var warningInputValence = "shadow-amber-500/50 dark:shadow-amber-600/50";
2824
- var errorInputValence = "shadow-rose-500/50 dark:shadow-rose-600/50";
2825
- var textInputSurfaceFocus = "transition-colors bg-textInputSurface focus:bg-focusSurface border border-separator focus:border-separator";
2826
- var textInputSurfaceHover = "hover:bg-textInputSurface focus:hover:bg-focusSurface";
2827
- var booleanInputSurface = "shadow-inner transition-colors bg-unAccent aria-checked:bg-accentSurface aria-[checked=mixed]:bg-accentSurface";
2828
- var booleanInputSurfaceHover = "hover:bg-unAccentHover hover:aria-checked:bg-accentSurfaceHover hover:aria-[checked=mixed]:bg-accentSurfaceHover";
2829
- var inputTextLabel = "text-sm text-description plb-1";
745
+ // src/theme/components/input.ts
746
+ var inputTextLabel = "py-1 text-sm text-description";
747
+ var textInputSurfaceFocus = "transition-colors bg-input-surface focus:bg-focus-surface border border-separator focus:border-separator";
748
+ var textInputSurfaceHover = "hover:bg-focus-surface";
749
+ var booleanInputSurface = "shadow-inner transition-colors bg-un-accent aria-checked:bg-accent-surface aria-[checked=mixed]:bg-accent-surface";
750
+ var booleanInputSurfaceHover = "hover:bg-un-accent-hover hover:aria-checked:bg-accent-surface-hover hover:aria-[checked=mixed]:bg-accent-surface-hover";
2830
751
  var inputValence = (valence) => {
2831
752
  switch (valence) {
2832
753
  case "success":
2833
- return successInputValence;
754
+ return "shadow-emerald-500/50 dark:shadow-emerald-600/50";
2834
755
  case "info":
2835
- return infoInputValence;
756
+ return "shadow-cyan-500/50 dark:shadow-cyan-600/50";
2836
757
  case "warning":
2837
- return warningInputValence;
758
+ return "shadow-amber-500/50 dark:shadow-amber-600/50";
2838
759
  case "error":
2839
- return errorInputValence;
2840
- default:
2841
- return null;
760
+ return "shadow-rose-500/50 dark:shadow-rose-600/50";
2842
761
  }
2843
762
  };
2844
763
  var sharedSubduedInputStyles = (props) => [
2845
- 'plb-0 is-full bg-transparent text-current [[data-drag-autoscroll="active"]_&]:pointer-events-none',
2846
- props.density === "fine" ? fineBlockSize : coarseBlockSize,
2847
- placeholderText,
2848
- subduedFocus,
764
+ '[[data-drag-autoscroll="active"]_&]:pointer-events-none',
765
+ "py-0 w-full bg-transparent text-current placeholder-placeholder",
766
+ "dx-focus-subdued",
767
+ densityDimensions(props.density),
2849
768
  props.disabled && staticDisabled
2850
769
  ];
2851
770
  var sharedDefaultInputStyles = (props) => [
2852
- 'plb-0 is-full text-baseText rounded-sm text-[color:var(--surface-text)] [[data-drag-autoscroll="active"]_&]:pointer-events-none',
771
+ '[[data-drag-autoscroll="active"]_&]:pointer-events-none',
772
+ "py-0 w-full text-base-surface-text rounded-xs placeholder-placeholder",
2853
773
  textInputSurfaceFocus,
2854
- placeholderText,
2855
- props.density === "fine" ? fineDimensions : coarseDimensions,
774
+ densityDimensions(props.density),
2856
775
  props.disabled ? staticDisabled : textInputSurfaceHover
2857
776
  ];
2858
777
  var sharedStaticInputStyles = (props) => [
2859
- 'plb-0 is-full text-baseText rounded-sm text-[color:var(--surface-text)] [[data-drag-autoscroll="active"]_&]:pointer-events-none',
778
+ '[[data-drag-autoscroll="active"]_&]:pointer-events-none',
779
+ "py-0 w-full text-base-surface-text rounded-xs placeholder-placeholder",
2860
780
  textInputSurfaceFocus,
2861
781
  textInputSurfaceHover,
2862
- props.focused && "bg-attention",
2863
- placeholderText,
782
+ props.focused && "bg-attention-surface",
2864
783
  inputValence(props.validationValence),
2865
784
  props.disabled && staticDisabled,
2866
- props.focused && staticFocusRing
785
+ props.focused && "dx-focus-static"
2867
786
  ];
2868
- var inputInput = (props, ...etc) => props.variant === "subdued" ? mx(...sharedSubduedInputStyles(props), ...etc) : props.variant === "static" ? mx(...sharedStaticInputStyles(props), ...etc) : mx(...sharedDefaultInputStyles(props), !props.disabled && focusRing, inputValence(props.validationValence) || neutralInputValence, ...etc);
787
+ var inputInput = (props, ...etc) => props.variant === "subdued" ? mx(...sharedSubduedInputStyles(props), ...etc) : props.variant === "static" ? mx(...sharedStaticInputStyles(props), ...etc) : mx(...sharedDefaultInputStyles(props), !props.disabled && "dx-focus-ring", inputValence(props.validationValence), ...etc);
788
+ var inputTextArea = (props, ...etc) => inputInput(props, ...etc);
2869
789
  var inputCheckbox = ({ size = 5 }, ...etc) => mx("dx-checkbox dx-focus-ring", getSize(size), ...etc);
2870
- var inputCheckboxIndicator = ({ size = 5, checked }, ...etc) => mx(getSize(computeSize(sizeValue(size) * 0.65, 4)), !checked && "invisible", ...etc);
790
+ var inputCheckboxIndicator = ({ size = 5, checked }, ...etc) => mx(getSize(snapSize(sizeValue(size) * 0.65, 4)), !checked && "invisible", ...etc);
2871
791
  var inputSwitch = ({ size = 5, disabled }, ...etc) => mx(
2872
- getSizeHeight(size),
2873
- getSizeWidth(computeSize(sizeValue(size) * 1.75, 9)),
792
+ getHeight(size),
793
+ getWidth(snapSize(sizeValue(size) * 1.75, 9)),
2874
794
  booleanInputSurface,
2875
795
  !disabled && booleanInputSurfaceHover,
2876
796
  // TODO(burdon): Added m-1 margin to make 40px width to align with 40px icon button.
2877
- "cursor-pointer shrink-0 rounded-full pli-1 mx-1 relative",
2878
- focusRing,
797
+ "cursor-pointer shrink-0 rounded-full px-1 mx-1 relative",
798
+ "dx-focus-ring",
2879
799
  ...etc
2880
800
  );
2881
801
  var inputSwitchThumb = ({ size = 5 }, ...etc) => mx(getSize(size === "px" ? "px" : size - 2), "block bg-white rounded-full transition-transform duration-100 will-change-transform data-[state=checked]:translate-x-[100%]", ...etc);
2882
- var inputWithSegmentsInput = (props, ...etc) => mx("font-mono selection:bg-transparent mli-auto", props.disabled && "cursor-not-allowed", ...etc);
802
+ var inputWithSegmentsInput = (props, ...etc) => mx("font-mono selection:bg-transparent mx-auto", props.density === "fine" ? "text-base pointer-fine:text-sm" : "text-lg", props.disabled && "cursor-not-allowed", ...etc);
803
+ var inputSegment = (props, ...etc) => mx("flex items-center justify-center font-mono", props.density === "fine" ? "size-10 pointer-fine:size-8 rounded-xs" : "size-12 rounded-xs", "bg-input-surface text-base-surface-text transition-colors border border-separator", "data-[focused]:bg-attention-surface data-[focused]:border-neutral-focus-indicator", "data-[focused]:ring-2 data-[focused]:ring-offset-0 data-[focused]:ring-neutral-focus-indicator", inputValence(props.validationValence), props.disabled && staticDisabled, ...etc);
2883
804
  var inputLabel = (props, ...etc) => mx("block", inputTextLabel, props.srOnly && "sr-only", ...etc);
2884
- var inputDescription = (props, ...etc) => mx(descriptionText, props.srOnly && "sr-only", ...etc);
2885
- var inputDescriptionAndValidation = (props, ...etc) => mx("leading-none mlb-labelSpacingBlock", props.srOnly && "sr-only", ...etc);
2886
- var inputValidation = (props, ...etc) => mx(descriptionText, props.srOnly ? "sr-only" : valenceColorText(props.validationValence), ...etc);
805
+ var inputDescription = (props, ...etc) => mx("text-description", props.srOnly && "sr-only", ...etc);
806
+ var inputDescriptionAndValidation = (props, ...etc) => mx("leading-none my-1.5", props.srOnly && "sr-only", ...etc);
807
+ var inputValidation = (props, ...etc) => mx(inputTextLabel, props.srOnly ? "sr-only" : textValence(props.validationValence), ...etc);
2887
808
  var inputTheme = {
2888
809
  input: inputInput,
810
+ textArea: inputTextArea,
2889
811
  inputWithSegments: inputWithSegmentsInput,
812
+ segment: inputSegment,
2890
813
  checkbox: inputCheckbox,
2891
814
  checkboxIndicator: inputCheckboxIndicator,
2892
815
  label: inputLabel,
2893
816
  description: inputDescription,
2894
- validation: inputValidation,
2895
817
  switch: inputSwitch,
2896
818
  switchThumb: inputSwitchThumb,
819
+ validation: inputValidation,
2897
820
  descriptionAndValidation: inputDescriptionAndValidation
2898
821
  };
2899
822
 
2900
- // src/styles/components/link.ts
2901
- var linkRoot = ({ variant }, ...etc) => mx("underline decoration-1 underline-offset-2 transition-color rounded-sm", variant === "neutral" ? "text-inherit hover:opacity-90 visited:text-inherit visited:hover:opacity-90" : "text-accentText hover:text-accentTextHover visited:text-accentText visited:hover:text-accentTextHover", focusRing, ...etc);
823
+ // src/theme/components/link.ts
824
+ var linkRoot = ({ variant }, ...etc) => mx("underline decoration-1 underline-offset-2 transition-color rounded-xs", variant === "neutral" ? "text-inherit hover:opacity-90 visited:text-inherit visited:hover:opacity-90" : "text-accent-text hover:text-accent-text-hover visited:text-accent-text visited:hover:text-accent-text-hover", "dx-focus-ring", ...etc);
2902
825
  var linkTheme = {
2903
826
  root: linkRoot
2904
827
  };
2905
828
 
2906
- // src/styles/components/list.ts
829
+ // src/theme/components/list.ts
2907
830
  var listRoot = (_, ...etc) => mx(...etc);
2908
831
  var listItem = ({ collapsible }, ...etc) => mx(!collapsible && "flex", ...etc);
2909
832
  var listItemEndcap = ({ density }, ...etc) => mx(density === "fine" ? getSize(8) : getSize(10), "shrink-0 flex items-center justify-center", ...etc);
2910
- var listItemHeading = ({ density }, ...etc) => mx(densityBlockSize(density), "flex items-center", ...etc);
2911
- var listItemDragHandleIcon = (_props, ...etc) => mx(getSize(5), "mbs-2.5", ...etc);
2912
- var listItemOpenTrigger = ({ density }, ...etc) => mx("is-5 rounded flex justify-center items-center", densityBlockSize(density), ghostHover, focusRing, ...etc);
833
+ var listItemHeading = ({ density }, ...etc) => mx(densityBlockSize(density), "flex items-center overflow-hidden [&>span]:truncate", ...etc);
834
+ var listItemDragHandleIcon = (_props, ...etc) => mx(getSize(5), "mt-2.5", ...etc);
835
+ var listItemOpenTrigger = ({ density }, ...etc) => mx("w-5 rounded-sm flex justify-center items-center", densityBlockSize(density), ghostHover, "dx-focus-ring", ...etc);
2913
836
  var listItemOpenTriggerIcon = (_props, ...etc) => {
2914
837
  return mx(getSize(5), ...etc);
2915
838
  };
@@ -2925,9 +848,9 @@ var listTheme = {
2925
848
  }
2926
849
  };
2927
850
 
2928
- // src/styles/components/main.ts
2929
- var topbarBlockPaddingStart = "pbs-[--topbar-size] sticky-top-from-topbar-bottom";
2930
- var bottombarBlockPaddingEnd = "pbe-[--statusbar-size] sticky-bottom-from-statusbar-bottom";
851
+ // src/theme/components/main.ts
852
+ var topbarBlockPaddingStart = "py-(--dx-topbar-size) dx-sticky-top-from-topbar-bottom";
853
+ var bottombarBlockPaddingEnd = "pb-(--dx-statusbar-size) dx-sticky-bottom-from-statusbar-bottom";
2931
854
  var mainPadding = "dx-main-content-padding";
2932
855
  var mainPaddingTransitions = "dx-main-content-padding-transitions";
2933
856
  var mainIntrinsicSize = "dx-main-intrinsic-size";
@@ -2940,23 +863,17 @@ var mainTheme = {
2940
863
  overlay: mainOverlay
2941
864
  };
2942
865
 
2943
- // src/styles/components/menu.ts
2944
- var menuViewport = (_props, ...etc) => mx("rounded p-1 max-bs-[--radix-dropdown-menu-content-available-height] overflow-y-auto", ...etc);
2945
- var menuContent = ({ elevation }, ...etc) => mx(
2946
- "is-48 rounded md:is-56 border border-separator",
2947
- surfaceZIndex({
2948
- elevation,
2949
- level: "menu"
2950
- }),
2951
- surfaceShadow({
2952
- elevation: "positioned"
2953
- }),
2954
- modalSurface,
2955
- ...etc
2956
- );
2957
- var menuItem = (_props, ...etc) => mx("flex cursor-pointer select-none items-center gap-2 rounded-sm pli-2 plb-2 text-sm", "data-[highlighted]:bg-hoverSurface", subduedFocus, dataDisabled, ...etc);
2958
- var menuSeparator = (_props, ...etc) => mx("mlb-1 mli-2 bs-px bg-separator", ...etc);
2959
- var menuGroupLabel = (_props, ...etc) => mx(descriptionText, "select-none pli-2 plb-2", ...etc);
866
+ // src/theme/components/menu.ts
867
+ var menuContent = ({ elevation }, ...etc) => mx("dx-modal-surface w-48 rounded-sm md:w-56 border border-separator", surfaceZIndex({
868
+ elevation,
869
+ level: "menu"
870
+ }), surfaceShadow({
871
+ elevation: "positioned"
872
+ }), ...etc);
873
+ var menuViewport = (_props, ...etc) => mx("rounded-sm p-1 max-h-[var(--radix-dropdown-menu-content-available-height)] overflow-y-auto", ...etc);
874
+ var menuItem = (_props, ...etc) => mx("flex cursor-pointer select-none items-center gap-2 rounded-xs px-2 py-2 text-sm", "hover:bg-hover-surface data-[highlighted]:bg-hover-surface", "dx-focus-subdued", dataDisabled, ...etc);
875
+ var menuSeparator = (_props, ...etc) => mx("my-1 mx-2 h-px bg-separator", ...etc);
876
+ var menuGroupLabel = (_props, ...etc) => mx("text-description", "select-none px-2 py-2", ...etc);
2960
877
  var menuArrow = (_props, ...etc) => mx("fill-separator", ...etc);
2961
878
  var menuTheme = {
2962
879
  content: menuContent,
@@ -2967,34 +884,38 @@ var menuTheme = {
2967
884
  arrow: menuArrow
2968
885
  };
2969
886
 
2970
- // src/styles/components/message.ts
887
+ // src/theme/components/message.ts
2971
888
  var messageRoot = ({ valence }, etc) => {
2972
- return mx("p-trimSm rounded-md", messageValence(valence), etc);
889
+ return mx("grid grid-cols-[min-content_1fr] gap-x-2 p-trim-sm rounded-sm", messageValence(valence), etc);
890
+ };
891
+ var messageHeader = (_, etc) => {
892
+ return mx("col-span-2 grid grid-cols-subgrid items-center", etc);
2973
893
  };
2974
894
  var messageTitle = (_, etc) => {
2975
- return mx("font-medium flex gap-trimSm", etc);
895
+ return mx("col-start-2 gap-trim-sm [&>svg]:inline-block", etc);
2976
896
  };
2977
897
  var messageIcon = (_, etc) => {
2978
- return mx("flex bs-[1lh] items-center", etc);
898
+ return mx("col-start-1", etc);
2979
899
  };
2980
900
  var messageContent = (_, etc) => {
2981
- return mx("first:font-medium", etc);
901
+ return mx("grid grid-cols-subgrid col-start-2 first:font-medium", etc);
2982
902
  };
2983
903
  var messageTheme = {
2984
904
  root: messageRoot,
2985
- content: messageContent,
905
+ header: messageHeader,
2986
906
  icon: messageIcon,
2987
- title: messageTitle
907
+ title: messageTitle,
908
+ content: messageContent
2988
909
  };
2989
910
 
2990
- // src/styles/components/popover.ts
2991
- var popoverViewport = ({ constrainBlock, constrainInline }, ...etc) => mx("flex flex-col rounded-md", constrainBlock && "max-bs-[--radix-popover-content-available-height] overflow-hidden", constrainInline && "max-is-[--radix-popover-content-available-width] overflow-hidden", ...etc);
2992
- var popoverContent = ({ elevation }, ...etc) => mx("border border-separator rounded-md", modalSurface, surfaceShadow({
911
+ // src/theme/components/popover.ts
912
+ var popoverContent = ({ elevation }, ...etc) => mx("dx-modal-surface border border-separator rounded-sm", surfaceShadow({
2993
913
  elevation: "positioned"
2994
914
  }), surfaceZIndex({
2995
915
  elevation,
2996
916
  level: "menu"
2997
- }), focusRing, ...etc);
917
+ }), "dx-focus-ring", ...etc);
918
+ var popoverViewport = ({ constrainBlock, constrainInline }, ...etc) => mx("grid grid-rows-[1fr] min-h-0 min-w-popover-min-width", (constrainBlock || constrainInline) && "overflow-hidden", constrainBlock && "max-h-(--radix-popover-content-available-height)", constrainBlock && "max-h-[min(var(--radix-popover-content-available-height),calc(100dvh-var(--spacing-screen-border)*2))]", constrainInline && "max-w-(--radix-popover-content-available-width)", ...etc);
2998
919
  var popoverArrow = (_props, ...etc) => mx("fill-separator", ...etc);
2999
920
  var popoverTheme = {
3000
921
  content: popoverContent,
@@ -3002,60 +923,75 @@ var popoverTheme = {
3002
923
  arrow: popoverArrow
3003
924
  };
3004
925
 
3005
- // src/styles/components/scroll-area.ts
3006
- var scrollAreaRoot = ({ orientation, margin, thin }, ...etc) => mx(
3007
- "overflow-hidden",
3008
- orientation === "vertical" && "group/scroll-v bs-full is-full min-bs-0",
3009
- orientation === "horizontal" && "group/scroll-h bs-full is-full min-is-0",
3010
- orientation === "all" && "group/scroll-all bs-full is-full min-bs-0 min-is-0",
3011
- // Balance left/right, top/bottom "margin" with scrollbar.
3012
- margin && [
3013
- orientation === "vertical" && (thin ? "pis-[4px]" : "pis-[8px]"),
3014
- orientation === "horizontal" && (thin ? "pbs-[4px]" : "pbs-[8px]"),
3015
- orientation === "all" && (thin ? "pis-[4px] pbs-[8px]" : "pis-[8px] pbs-[8px]")
3016
- ],
3017
- ...etc
3018
- );
3019
- var scrollAreaViewport = ({ orientation, autoHide, padding: padding2, snap, thin }, ...etc) => mx(
3020
- "bs-full is-full",
3021
- orientation === "vertical" && "flex flex-col overflow-y-scroll",
3022
- orientation === "horizontal" && "flex overflow-x-scroll",
3023
- orientation === "all" && "overflow-scroll",
3024
- thin ? "[&::-webkit-scrollbar]:is-[4px] [&::-webkit-scrollbar]:bs-[4px]" : "[&::-webkit-scrollbar]:is-[8px] [&::-webkit-scrollbar]:bs-[8px]",
3025
- // '[&::-webkit-scrollbar-thumb]:rounded-full',
3026
- "[&::-webkit-scrollbar-thumb]:bg-transparent",
3027
- "[&::-webkit-scrollbar-corner]:bg-transparent",
3028
- // TODO(burdon): Define token.
3029
- autoHide ? [
3030
- orientation === "vertical" && "group-hover/scroll-v:[&::-webkit-scrollbar-thumb]:bg-subduedSeparator",
3031
- orientation === "horizontal" && "group-hover/scroll-h:[&::-webkit-scrollbar-thumb]:bg-subduedSeparator",
3032
- orientation === "all" && "group-hover/scroll-all:[&::-webkit-scrollbar-thumb]:bg-subduedSeparator"
3033
- ] : [
3034
- orientation === "vertical" && "[&::-webkit-scrollbar-thumb]:bg-subduedSeparator",
3035
- orientation === "horizontal" && "[&::-webkit-scrollbar-thumb]:bg-subduedSeparator",
3036
- orientation === "all" && "[&::-webkit-scrollbar-thumb]:bg-subduedSeparator"
3037
- ],
3038
- // TODO(burdon): Are scrollbars reserved on native devices?
3039
- padding2 && [
3040
- orientation === "vertical" && "pli-[4px]",
3041
- orientation === "horizontal" && "pbe-[4px]",
3042
- orientation === "all" && "pis-[4px] pbe-[4px]"
3043
- ],
3044
- snap && [
3045
- orientation === "vertical" && "snap-y snap-mandatory",
3046
- orientation === "horizontal" && "snap-x snap-mandatory",
3047
- orientation === "all" && "snap-both snap-mandatory"
3048
- ],
926
+ // src/theme/components/scroll-area.ts
927
+ var scrollbar = {
928
+ thin: {
929
+ size: 4,
930
+ padding: 4
931
+ },
932
+ coarse: {
933
+ size: 8,
934
+ padding: 8
935
+ }
936
+ };
937
+ var scrollAreaRoot = ({ orientation }, ...etc) => mx(
938
+ // Expand
939
+ "dx-container",
940
+ orientation === "vertical" && "group/scroll-v flex flex-col",
941
+ orientation === "horizontal" && "group/scroll-h flex",
942
+ orientation === "all" && "group/scroll-all",
943
+ // Apply col-span-full only when inside a Column.Root grid (detected via dx-column-root marker).
944
+ "[.dx-column-root_&]:col-span-full",
3049
945
  ...etc
3050
946
  );
947
+ var scrollAreaViewport = ({ orientation, centered, padding, snap, autoHide }, ...etc) => {
948
+ return mx(
949
+ "flex-1 min-h-0 w-full",
950
+ // Reset --dx-col so nested components don't try to grid-position themselves.
951
+ // ScrollArea has already consumed --gutter for padding.
952
+ withColumn.consumed(),
953
+ orientation === "vertical" && "overflow-y-scroll",
954
+ orientation === "horizontal" && "flex overflow-x-scroll overscroll-x-contain",
955
+ orientation === "all" && "overflow-scroll",
956
+ "[&::-webkit-scrollbar-corner]:bg-transparent",
957
+ "[&::-webkit-scrollbar-track]:bg-transparent",
958
+ "[&::-webkit-scrollbar-thumb]:rounded-none",
959
+ "[&::-webkit-scrollbar]:w-[var(--scroll-width)] [&::-webkit-scrollbar]:h-[var(--scroll-width)]",
960
+ // If contained within Column.Root grid the gutter is set by that component (--gutter CSS variable).
961
+ // If centered, left padding compensates for scrollbar width so content is visually centered.
962
+ (orientation === "vertical" || orientation === "all") && (padding ? [
963
+ centered ? "pl-[var(--gutter,calc(var(--scroll-width)+var(--scroll-padding)))]" : "pl-[var(--gutter,0)]",
964
+ "pr-[calc(var(--gutter,calc(var(--scroll-width)+var(--scroll-padding)))-var(--scroll-width))]"
965
+ ] : centered && "pl-[var(--scroll-width)]"),
966
+ (orientation === "horizontal" || orientation === "all") && (padding ? [
967
+ centered && "pt-[calc(var(--scroll-width)+var(--scroll-padding))]",
968
+ "pb-[var(--scroll-padding)]"
969
+ ] : centered && "pt-[var(--scroll-width)]"),
970
+ snap && [
971
+ orientation === "vertical" && "snap-y snap-mandatory",
972
+ orientation === "horizontal" && "snap-x snap-mandatory",
973
+ orientation === "all" && "snap-both snap-mandatory"
974
+ ],
975
+ autoHide ? [
976
+ orientation === "vertical" && "group-hover/scroll-v:[&::-webkit-scrollbar-thumb]:bg-scrollbar-thumb",
977
+ orientation === "horizontal" && "group-hover/scroll-h:[&::-webkit-scrollbar-thumb]:bg-scrollbar-thumb",
978
+ orientation === "all" && "group-hover/scroll-all:[&::-webkit-scrollbar-thumb]:bg-scrollbar-thumb"
979
+ ] : [
980
+ orientation === "vertical" && "[&::-webkit-scrollbar-thumb]:bg-scrollbar-thumb",
981
+ orientation === "horizontal" && "[&::-webkit-scrollbar-thumb]:bg-scrollbar-thumb",
982
+ orientation === "all" && "[&::-webkit-scrollbar-thumb]:bg-scrollbar-thumb"
983
+ ],
984
+ ...etc
985
+ );
986
+ };
3051
987
  var scrollAreaTheme = {
3052
988
  root: scrollAreaRoot,
3053
989
  viewport: scrollAreaViewport
3054
990
  };
3055
991
 
3056
- // src/styles/components/select.ts
992
+ // src/theme/components/select.ts
3057
993
  var selectContent = ({ elevation }, ...etc) => {
3058
- return mx("min-w-[--radix-select-trigger-width] rounded max-bs-[--radix-select-content-available-height] border border-separator", modalSurface, surfaceShadow({
994
+ return mx("dx-modal-surface rounded-sm border border-separator", "min-w-(--radix-select-trigger-width) max-h-(--radix-select-content-available-height)", surfaceShadow({
3059
995
  elevation: "positioned"
3060
996
  }), surfaceZIndex({
3061
997
  elevation,
@@ -3063,11 +999,11 @@ var selectContent = ({ elevation }, ...etc) => {
3063
999
  }), ...etc);
3064
1000
  };
3065
1001
  var selectViewport = (_props, ...etc) => mx(...etc);
3066
- var selectItem = (_props, ...etc) => mx("flex items-center min-bs-[2rem] pli-3 plb-1 gap-2", "text-baseText leading-none select-none outline-none", "[&>svg]:invisible [&[data-state=checked]>svg]:visible", ghostHighlighted, ...etc);
1002
+ var selectItem = (_props, ...etc) => mx("flex items-center min-h-[2rem] px-3 py-1 gap-2", "text-base-surface-text leading-none select-none outline-hidden", "[&>svg]:invisible [&[data-state=checked]>svg]:visible", "dx-highlighted", ...etc);
3067
1003
  var selectItemIndicator = (_props, ...etc) => mx("items-center", ...etc);
3068
1004
  var selectArrow = (_props, ...etc) => mx("fill-separator", ...etc);
3069
- var selectSeparator = (_props, ...etc) => mx(blockSeparator, separatorBorderColor, ...etc);
3070
- var selectScrollButton = (_props, ...etc) => mx(modalSurface, "flex items-center justify-center cursor-default bs-6 is-full", ...etc);
1005
+ var selectSeparator = (_props, ...etc) => mx("self-stretch border-b my-1 border-separator", ...etc);
1006
+ var selectScrollButton = (_props, ...etc) => mx("dx-modal-surface flex items-center justify-center cursor-default h-6 w-full", ...etc);
3071
1007
  var selectTheme = {
3072
1008
  content: selectContent,
3073
1009
  viewport: selectViewport,
@@ -3078,46 +1014,54 @@ var selectTheme = {
3078
1014
  scrollButton: selectScrollButton
3079
1015
  };
3080
1016
 
3081
- // src/styles/components/separator.ts
3082
- var separatorRoot = ({ orientation, subdued }, ...etc) => mx(orientation === "vertical" ? inlineSeparator : blockSeparator, subdued ? subduedSeparatorBorderColor : separatorBorderColor, ...etc);
1017
+ // src/theme/components/splitter.ts
1018
+ var splitterRoot = (_props, ...etc) => mx("relative h-full overflow-hidden", ...etc);
1019
+ var splitterPanel = (_props, ...etc) => mx("absolute inset-x-0 flex flex-col overflow-hidden", ...etc);
1020
+ var splitterTheme = {
1021
+ root: splitterRoot,
1022
+ panel: splitterPanel
1023
+ };
1024
+
1025
+ // src/theme/components/separator.ts
1026
+ var separatorRoot = ({ orientation, subdued }, ...etc) => mx("self-stretch", orientation === "vertical" ? "border-e mx-1" : "border-b my-1", subdued ? "border-subdued-separator" : "border-separator", ...etc);
3083
1027
  var separatorTheme = {
3084
1028
  root: separatorRoot
3085
1029
  };
3086
1030
 
3087
- // src/styles/components/skeleton.ts
3088
- var skeletonRoot = ({ variant = "default" }, ...etc) => mx("animate-pulse bg-neutral-250 dark:bg-neutral-750 rounded-md", variant === "circle" && "rounded-full", variant === "text" && "rounded", ...etc);
1031
+ // src/theme/components/skeleton.ts
1032
+ var skeletonRoot = ({ variant = "default" }, ...etc) => mx("animate-pulse bg-neutral-300 dark:bg-neutral-700 rounded-md", variant === "circle" && "rounded-full", variant === "text" && "rounded-sm", ...etc);
3089
1033
  var skeletonTheme = {
3090
1034
  root: skeletonRoot
3091
1035
  };
3092
1036
 
3093
- // src/styles/components/status.ts
3094
- var statusRoot = ({ variant = "default" }, ...etc) => mx("bs-1 relative bg-hoverOverlay rounded-full overflow-hidden", variant === "main-bottom" ? "is-full block" : "is-20 inline-block", ...etc);
3095
- var statusBar = ({ indeterminate, variant = "default" }, ...etc) => mx("absolute inset-block-0 block rounded-full", variant === "main-bottom" ? "bg-accentSurface" : "bg-unAccent", indeterminate ? "animate-progress-indeterminate" : "inline-start-0", ...etc);
1037
+ // src/theme/components/status.ts
1038
+ var statusRoot = ({ variant = "default" }, ...etc) => mx("h-1 relative rounded-full overflow-hidden", variant === "main-bottom" ? "w-full block" : "inline-20 inline-block bg-base-surface", ...etc);
1039
+ var statusBar = ({ variant = "default", indeterminate }, ...etc) => mx("absolute inset-y-0 block rounded-full", variant === "main-bottom" ? "bg-composer-300" : "bg-un-accent", indeterminate ? "animate-progress-indeterminate" : "start-0", ...etc);
3096
1040
  var statusTheme = {
3097
1041
  root: statusRoot,
3098
1042
  bar: statusBar
3099
1043
  };
3100
1044
 
3101
- // src/styles/components/tag.ts
1045
+ // src/theme/components/tag.ts
3102
1046
  var tagRoot = (_, ...etc) => mx("dx-tag", ...etc);
3103
1047
  var tagTheme = {
3104
1048
  root: tagRoot
3105
1049
  };
3106
1050
 
3107
- // src/styles/components/toast.ts
1051
+ // src/theme/components/toast.ts
3108
1052
  var toastViewport = (_props, ...etc) => mx(
3109
1053
  // TODO(burdon): block-end should take into account status bar.
3110
- "z-40 fixed block-end-[calc(env(safe-area-inset-bottom)+1rem)] inset-start-[calc(env(safe-area-inset-left)+1rem)] inset-end-[calc(env(safe-area-inset-right)+1rem)] is-auto md:inline-end-[calc(env(safe-area-inset-right)+1rem)] md:inline-start-auto md:is-full md:max-is-sm",
1054
+ "z-40 fixed bottom-[calc(env(safe-area-inset-bottom)+1rem)] inset-start-[calc(env(safe-area-inset-left)+1rem)] inset-end-[calc(env(safe-area-inset-right)+1rem)] w-auto md:end-[calc(env(safe-area-inset-right)+1rem)] md:left-auto md:w-full md:max-w-sm",
3111
1055
  "rounded-md flex flex-col gap-2",
3112
1056
  ...etc
3113
1057
  );
3114
- var toastRoot = (_props, ...etc) => mx("rounded-md flex p-2 gap-2", modalSurface, surfaceShadow({
1058
+ var toastRoot = (_props, ...etc) => mx("dx-modal-surface rounded-md flex p-2 gap-2", surfaceShadow({
3115
1059
  elevation: "toast"
3116
- }), "radix-state-open:animate-toast-slide-in-bottom md:radix-state-open:animate-toast-slide-in-right", "radix-state-closed:animate-toast-hide", "radix-swipe-end:animate-toast-swipe-out", "translate-x-radix-toast-swipe-move-x", "radix-swipe-cancel:translate-x-0 radix-swipe-cancel:duration-200 radix-swipe-cancel:ease-[ease]", focusRing, ...etc);
3117
- var toastBody = (_props, ...etc) => mx("grow flex flex-col gap-1 justify-center pis-2", ...etc);
1060
+ }), "radix-state-open:animate-toast-slide-in-bottom md:radix-state-open:animate-toast-slide-in-right", "radix-state-closed:animate-toast-hide", "radix-swipe-end:animate-toast-swipe-out", "translate-x-radix-toast-swipe-move-x", "radix-swipe-cancel:translate-x-0 radix-swipe-cancel:duration-200 radix-swipe-cancel:ease-[ease]", "dx-focus-ring", ...etc);
1061
+ var toastBody = (_props, ...etc) => mx("grow flex flex-col gap-1 justify-center pl-2", ...etc);
3118
1062
  var toastActions = (_props, ...etc) => mx("shrink-0 flex flex-col gap-1 justify-center", ...etc);
3119
1063
  var toastTitle = ({ srOnly }, ...etc) => mx("shrink-0 font-medium", srOnly && "sr-only", ...etc);
3120
- var toastDescription = ({ srOnly }, ...etc) => mx(descriptionText, "shrink-0", srOnly && "sr-only", ...etc);
1064
+ var toastDescription = ({ srOnly }, ...etc) => mx("text-description", "shrink-0", srOnly && "sr-only", ...etc);
3121
1065
  var toastTheme = {
3122
1066
  viewport: toastViewport,
3123
1067
  root: toastRoot,
@@ -3127,79 +1071,69 @@ var toastTheme = {
3127
1071
  actions: toastActions
3128
1072
  };
3129
1073
 
3130
- // src/styles/components/toolbar.ts
3131
- var toolbarLayout = "is-full shrink-0 flex flex-nowrap p-1 gap-1 items-center overflow-x-auto scrollbar-none contain-layout";
1074
+ // src/theme/components/toolbar.ts
1075
+ var toolbarLayout = "w-full shrink-0 flex flex-nowrap p-1 gap-1 items-center overflow-x-auto scrollbar-none dx-contain-layout";
3132
1076
  var toolbarRoot = ({ density, disabled, layoutManaged }, ...etc) => {
3133
- return mx("bg-toolbarSurface dx-toolbar", density === "coarse" && "bs-[var(--rail-size)] !pli-3", disabled && "*:opacity-20", !layoutManaged && toolbarLayout, ...etc);
1077
+ return mx("bg-toolbar-surface dx-toolbar", density === "coarse" && "h-(--dx-rail-size) px-3!", disabled && "*:opacity-20", !layoutManaged && toolbarLayout, ...etc);
3134
1078
  };
3135
- var toolbarInner = ({ layoutManaged }, ...etc) => {
3136
- return mx(!layoutManaged && [
3137
- "flex gap-1",
3138
- textBlockWidth
3139
- ], ...etc);
1079
+ var toolbarText = (_, ...etc) => {
1080
+ return mx("px-2 grow truncate items-center", ...etc);
3140
1081
  };
3141
1082
  var toolbarTheme = {
3142
1083
  root: toolbarRoot,
3143
- inner: toolbarInner
1084
+ text: toolbarText
3144
1085
  };
3145
1086
 
3146
- // src/styles/components/tooltip.ts
3147
- var tooltipContent = ({ elevation }, ...etc) => mx(
3148
- "inline-flex items-center rounded-sm plb-1 pli-2 max-is-64 bg-inverseSurface text-inverseSurfaceText",
3149
- // popperMotion,
3150
- surfaceShadow({
3151
- elevation: "positioned"
3152
- }),
3153
- surfaceZIndex({
3154
- elevation,
3155
- level: "tooltip"
3156
- }),
3157
- chromeText,
3158
- ...etc
3159
- );
3160
- var tooltipArrow = (_props, ...etc) => mx("fill-inverseSurface", ...etc);
1087
+ // src/theme/components/tooltip.ts
1088
+ var tooltipContent = ({ elevation }, ...etc) => mx("inline-flex items-center p-1 max-w-64 text-sm bg-inverse-surface text-inverse-surface-text rounded-sm", surfaceShadow({
1089
+ elevation: "positioned"
1090
+ }), surfaceZIndex({
1091
+ elevation,
1092
+ level: "tooltip"
1093
+ }), ...etc);
1094
+ var tooltipArrow = (_props, ...etc) => mx("fill-inverse-surface", ...etc);
3161
1095
  var tooltipTheme = {
3162
1096
  content: tooltipContent,
3163
1097
  arrow: tooltipArrow
3164
1098
  };
3165
1099
 
3166
- // src/styles/components/treegrid.ts
1100
+ // src/theme/components/treegrid.ts
3167
1101
  var levelStyles = /* @__PURE__ */ new Map([
3168
1102
  [
3169
1103
  1,
3170
- "[&>.indent:first-of-type]:pis-0 font-medium"
1104
+ "[&>.indent:first-of-type]:pl-0 font-medium"
3171
1105
  ],
3172
1106
  [
3173
1107
  2,
3174
- "[&>.indent:first-of-type]:pis-0"
1108
+ "[&>.indent:first-of-type]:pl-0"
3175
1109
  ],
3176
1110
  [
3177
1111
  3,
3178
- "[&>.indent:first-of-type]:pis-1"
1112
+ "[&>.indent:first-of-type]:pl-1"
3179
1113
  ],
3180
1114
  [
3181
1115
  4,
3182
- "[&>.indent:first-of-type]:pis-2"
1116
+ "[&>.indent:first-of-type]:pl-2"
3183
1117
  ],
3184
1118
  [
3185
1119
  5,
3186
- "[&>.indent:first-of-type]:pis-3"
1120
+ "[&>.indent:first-of-type]:pl-3"
3187
1121
  ],
3188
1122
  [
3189
1123
  6,
3190
- "[&>.indent:first-of-type]:pis-4"
1124
+ "[&>.indent:first-of-type]:pl-4"
3191
1125
  ],
3192
1126
  [
3193
1127
  7,
3194
- "[&>.indent:first-of-type]:pis-5"
1128
+ "[&>.indent:first-of-type]:pl-5"
3195
1129
  ],
3196
1130
  [
3197
1131
  8,
3198
- "[&>.indent:first-of-type]:pis-6"
1132
+ "[&>.indent:first-of-type]:pl-6"
3199
1133
  ]
3200
1134
  ]);
3201
1135
  var treegridRoot = (_, ...etc) => mx("grid", ...etc);
3202
- var treegridRow = ({ level = 1 }, ...etc) => mx("contents", levelStyles.get(Math.min(Math.max(Math.round(level), 1), 8)), ...etc);
1136
+ var treegridRow = ({ level = 1 }, ...etc) => mx(levelStyles.get(Math.min(Math.max(Math.round(level), 1), 8)), ...etc);
3203
1137
  var treegridCell = ({ indent }, ...etc) => mx(indent && "indent", ...etc);
3204
1138
  var treegridTheme = {
3205
1139
  root: treegridRoot,
@@ -3207,33 +1141,47 @@ var treegridTheme = {
3207
1141
  cell: treegridCell
3208
1142
  };
3209
1143
 
3210
- // src/styles/primitives/container.ts
3211
- var padding = {
3212
- sm: "pli-2",
3213
- md: "pli-3",
3214
- lg: "pli-6"
3215
- };
3216
- var containerColumn = ({ variant }, ...etc) => mx(variant && padding[variant], ...etc);
3217
- var containerTheme = {
3218
- column: containerColumn
1144
+ // src/theme/primitives/panel.ts
1145
+ var sizes = {
1146
+ lg: "h-(--dx-topbar-size)",
1147
+ md: "h-(--dx-toolbar-size)",
1148
+ sm: "h-(--dx-statusbar-size)"
1149
+ };
1150
+ var panelRoot = (_, ...etc) => mx(
1151
+ // prettier-ignore
1152
+ "dx-container grid grid-cols-[100%] overflow-hidden",
1153
+ // Add uncategorized children to content slot.
1154
+ "[&>*:not([data-slot])]:[grid-area:content]",
1155
+ ...etc
1156
+ );
1157
+ var panelToolbar = ({ size = "md" }, ...etc) => mx("[grid-area:toolbar]", "shrink-0", sizes[size], ...etc);
1158
+ var panelContent = (_, ...etc) => mx("[grid-area:content] min-h-0", ...etc);
1159
+ var panelStatusbar = ({ size = "md" }, ...etc) => mx("[grid-area:statusbar]", "shrink-0", sizes[size], ...etc);
1160
+ var panelTheme = {
1161
+ root: panelRoot,
1162
+ toolbar: panelToolbar,
1163
+ content: panelContent,
1164
+ statusbar: panelStatusbar
3219
1165
  };
3220
1166
 
3221
- // src/styles/theme.ts
3222
- import { get } from "@dxos/util";
1167
+ // src/theme/theme.ts
1168
+ import { getDeep } from "@dxos/util";
3223
1169
  var defaultTheme = {
3224
1170
  themeName: () => "default",
3225
1171
  //
3226
1172
  // Primitives
3227
1173
  //
3228
- container: containerTheme,
1174
+ column: columnTheme,
1175
+ panel: panelTheme,
3229
1176
  //
3230
1177
  // Components
3231
1178
  //
3232
- anchoredOverflow: anchoredOverflowTheme,
3233
1179
  avatar: avatarTheme,
3234
1180
  breadcrumb: breadcrumbTheme,
3235
1181
  button: buttonTheme,
1182
+ card: cardTheme,
3236
1183
  dialog: dialogTheme,
1184
+ focus: focusTheme,
3237
1185
  icon: iconTheme,
3238
1186
  iconButton: iconButtonTheme,
3239
1187
  input: inputTheme,
@@ -3247,6 +1195,7 @@ var defaultTheme = {
3247
1195
  select: selectTheme,
3248
1196
  separator: separatorTheme,
3249
1197
  skeleton: skeletonTheme,
1198
+ splitter: splitterTheme,
3250
1199
  status: statusTheme,
3251
1200
  tag: tagTheme,
3252
1201
  toast: toastTheme,
@@ -3256,22 +1205,12 @@ var defaultTheme = {
3256
1205
  };
3257
1206
  var bindTheme = (theme) => {
3258
1207
  return (path, styleProps, ...etc) => {
3259
- const result = get(theme, path);
1208
+ const result = getDeep(theme, path.split("."));
3260
1209
  return typeof result === "function" ? result(styleProps ?? {}, ...etc) : void 0;
3261
1210
  };
3262
1211
  };
3263
1212
  var defaultTx = bindTheme(defaultTheme);
3264
-
3265
- // src/index.ts
3266
- var { theme: tokens } = tailwindConfig({});
3267
- var osTranslations = "dxos.org/i18n/os";
3268
1213
  export {
3269
- accentSurface,
3270
- activeSurface,
3271
- anchoredOverflowAnchor,
3272
- anchoredOverflowRoot,
3273
- anchoredOverflowTheme,
3274
- attentionSurface,
3275
1214
  avatarDescription,
3276
1215
  avatarFallbackText,
3277
1216
  avatarFrame,
@@ -3283,40 +1222,31 @@ export {
3283
1222
  avatarRoot,
3284
1223
  avatarStatusIcon,
3285
1224
  avatarTheme,
3286
- baseSurface,
3287
1225
  bindTheme,
3288
- blockSeparator,
3289
1226
  bottombarBlockPaddingEnd,
3290
- bounceLayout,
3291
1227
  breadcrumbCurrent,
3292
1228
  breadcrumbList,
3293
1229
  breadcrumbListItem,
3294
1230
  breadcrumbRoot,
3295
1231
  breadcrumbSeparator,
3296
1232
  breadcrumbTheme,
3297
- buttonGroup,
3298
- buttonRoot,
3299
1233
  buttonTheme,
3300
1234
  cardDefaultInlineSize,
1235
+ cardMaxBlockSize,
3301
1236
  cardMaxInlineSize,
1237
+ cardMinBlockSize,
3302
1238
  cardMinInlineSize,
3303
- chromeText,
3304
- coarseBlockSize,
3305
- coarseButtonDimensions,
3306
- coarseButtonPadding,
3307
- coarseDimensions,
3308
- coarseTextPadding,
3309
- computeSize,
3310
- containerTheme,
3311
- contentShadow,
1239
+ cardTheme,
1240
+ columnTheme,
1241
+ composable,
1242
+ composableProps,
3312
1243
  dataDisabled,
3313
1244
  defaultButtonColors,
3314
1245
  defaultTheme,
3315
1246
  defaultTx,
3316
1247
  densityBlockSize,
1248
+ densityDimensions,
3317
1249
  descriptionMessage,
3318
- descriptionText,
3319
- descriptionTextPrimary,
3320
1250
  dialogActionBar,
3321
1251
  dialogBody,
3322
1252
  dialogContent,
@@ -3325,64 +1255,31 @@ export {
3325
1255
  dialogOverlay,
3326
1256
  dialogTheme,
3327
1257
  dialogTitle,
3328
- dropRing,
3329
- dropRingInner,
3330
- errorInputValence,
3331
- errorMessageColors,
3332
- errorText,
3333
- fineBlockSize,
3334
- fineButtonDimensions,
3335
- fineButtonPadding,
3336
- fineDimensions,
3337
- fineTextPadding,
3338
- fixedInsetFlexLayout,
3339
- focusRing,
1258
+ focusTheme,
3340
1259
  getHashHue,
3341
1260
  getHashStyles,
1261
+ getHeight,
3342
1262
  getSize,
3343
- getSizeHeight,
3344
- getSizeWidth,
3345
1263
  getStyles,
1264
+ getWidth,
3346
1265
  ghostButtonColors,
3347
1266
  ghostFocusWithin,
3348
- ghostHighlighted,
3349
1267
  ghostHover,
3350
- ghostSelected,
3351
- ghostSelectedContainerMd,
3352
- ghostSelectedCurrent,
3353
- ghostSelectedTrackingInterFromNormal,
3354
- group,
3355
- groupBorder,
3356
1268
  groupHoverControlItemWithTransition,
3357
- hoverColors,
3358
1269
  hoverableControlItem,
3359
- hoverableControlItemTransition,
3360
1270
  hoverableControls,
3361
- hoverableFocusedControls,
3362
1271
  hoverableFocusedKeyboardControls,
3363
1272
  hoverableFocusedWithinControls,
3364
1273
  hoverableOpenControlItem,
1274
+ hueShades,
3365
1275
  hues,
3366
1276
  iconButtonRoot,
3367
1277
  iconButtonTheme,
3368
1278
  iconRoot,
1279
+ iconSize,
3369
1280
  iconTheme,
3370
- infoInputValence,
3371
- infoMessageColors,
3372
- infoText,
3373
- inlineSeparator,
3374
- inputCheckbox,
3375
- inputCheckboxIndicator,
3376
- inputDescription,
3377
- inputDescriptionAndValidation,
3378
- inputInput,
3379
- inputLabel,
3380
- inputSwitch,
3381
- inputSwitchThumb,
1281
+ inputTextLabel,
3382
1282
  inputTheme,
3383
- inputValence,
3384
- inputValidation,
3385
- inputWithSegmentsInput,
3386
1283
  linkRoot,
3387
1284
  linkTheme,
3388
1285
  listItem,
@@ -3408,26 +1305,26 @@ export {
3408
1305
  menuTheme,
3409
1306
  menuViewport,
3410
1307
  messageContent,
1308
+ messageHeader,
3411
1309
  messageIcon,
3412
1310
  messageRoot,
3413
1311
  messageTheme,
3414
1312
  messageTitle,
3415
1313
  messageValence,
3416
- modalSurface,
3417
1314
  mx,
3418
- neutralInputValence,
3419
- neutralMessageColors,
3420
1315
  osTranslations,
3421
- placeholderText,
1316
+ palette,
1317
+ panelTheme,
3422
1318
  popoverArrow,
3423
1319
  popoverContent,
3424
1320
  popoverTheme,
3425
1321
  popoverViewport,
3426
- popperMotion,
3427
1322
  primaryButtonColors,
1323
+ roles,
3428
1324
  scrollAreaRoot,
3429
1325
  scrollAreaTheme,
3430
1326
  scrollAreaViewport,
1327
+ scrollbar,
3431
1328
  selectArrow,
3432
1329
  selectContent,
3433
1330
  selectItem,
@@ -3436,40 +1333,26 @@ export {
3436
1333
  selectSeparator,
3437
1334
  selectTheme,
3438
1335
  selectViewport,
3439
- separatorBorderColor,
3440
1336
  separatorRoot,
3441
1337
  separatorTheme,
3442
- shimmer,
3443
- sidebarBorder,
3444
- sidebarSurface,
3445
- sizeHeightMap,
1338
+ sizeToRem,
3446
1339
  sizeValue,
3447
- sizeWidthMap,
3448
1340
  skeletonRoot,
3449
1341
  skeletonTheme,
1342
+ slottable,
1343
+ snapSize,
1344
+ splitterTheme,
3450
1345
  staticDefaultButtonColors,
3451
1346
  staticDisabled,
3452
- staticFocusRing,
3453
- staticGhostSelected,
3454
- staticGhostSelectedCurrent,
3455
- staticHoverableControls,
3456
- staticPlaceholderText,
3457
1347
  statusBar,
3458
1348
  statusRoot,
3459
1349
  statusTheme,
3460
- strongShimmer,
3461
- styles,
3462
- subduedFocus,
3463
- subduedSeparatorBorderColor,
3464
1350
  subtleHover,
3465
- successInputValence,
3466
- successMessageColors,
3467
- successText,
3468
1351
  surfaceShadow,
3469
1352
  surfaceZIndex,
3470
1353
  tagRoot,
3471
1354
  tagTheme,
3472
- textBlockWidth,
1355
+ textValence,
3473
1356
  toastActions,
3474
1357
  toastBody,
3475
1358
  toastDescription,
@@ -3477,10 +1360,9 @@ export {
3477
1360
  toastTheme,
3478
1361
  toastTitle,
3479
1362
  toastViewport,
3480
- tokens,
3481
- toolbarInner,
3482
1363
  toolbarLayout,
3483
1364
  toolbarRoot,
1365
+ toolbarText,
3484
1366
  toolbarTheme,
3485
1367
  tooltipArrow,
3486
1368
  tooltipContent,
@@ -3490,10 +1372,6 @@ export {
3490
1372
  treegridRoot,
3491
1373
  treegridRow,
3492
1374
  treegridTheme,
3493
- userDefaultTokenSet,
3494
- valenceColorText,
3495
- warningInputValence,
3496
- warningMessageColors,
3497
- warningText
1375
+ withColumn
3498
1376
  };
3499
1377
  //# sourceMappingURL=index.mjs.map