@dxos/ui-theme 0.8.4-main.fbb7a13 → 0.8.4-main.fcc0d83b33

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