@dxos/ui-theme 0.8.4-main.9735255 → 0.8.4-main.9be5663bfe

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 +745 -2792
  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 +745 -2792
  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 +1529 -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 +1529 -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 +7 -0
  22. package/dist/types/src/fragments/density.d.ts.map +1 -0
  23. package/dist/types/src/fragments/disabled.d.ts.map +1 -0
  24. package/dist/types/src/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 +3 -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/theme/components/icon-button.d.ts.map +1 -0
  47. package/dist/types/src/{styles → theme}/components/icon.d.ts +3 -0
  48. package/dist/types/src/theme/components/icon.d.ts.map +1 -0
  49. package/dist/types/src/{styles → theme}/components/index.d.ts +4 -1
  50. package/dist/types/src/theme/components/index.d.ts.map +1 -0
  51. package/dist/types/src/{styles → theme}/components/input.d.ts +25 -21
  52. package/dist/types/src/theme/components/input.d.ts.map +1 -0
  53. package/dist/types/src/theme/components/link.d.ts.map +1 -0
  54. package/dist/types/src/theme/components/list.d.ts.map +1 -0
  55. package/dist/types/src/{styles → theme}/components/main.d.ts +2 -7
  56. package/dist/types/src/theme/components/main.d.ts.map +1 -0
  57. package/dist/types/src/{styles → theme}/components/menu.d.ts +1 -1
  58. package/dist/types/src/theme/components/menu.d.ts.map +1 -0
  59. package/dist/types/src/{styles → theme}/components/message.d.ts +1 -0
  60. package/dist/types/src/theme/components/message.d.ts.map +1 -0
  61. package/dist/types/src/{styles → theme}/components/popover.d.ts +1 -1
  62. package/dist/types/src/theme/components/popover.d.ts.map +1 -0
  63. package/dist/types/src/theme/components/scroll-area.d.ts +32 -0
  64. package/dist/types/src/theme/components/scroll-area.d.ts.map +1 -0
  65. package/dist/types/src/theme/components/select.d.ts.map +1 -0
  66. package/dist/types/src/theme/components/separator.d.ts.map +1 -0
  67. package/dist/types/src/theme/components/skeleton.d.ts +7 -0
  68. package/dist/types/src/theme/components/skeleton.d.ts.map +1 -0
  69. package/dist/types/src/theme/components/splitter.d.ts +4 -0
  70. package/dist/types/src/theme/components/splitter.d.ts.map +1 -0
  71. package/dist/types/src/{styles → theme}/components/status.d.ts +1 -1
  72. package/dist/types/src/theme/components/status.d.ts.map +1 -0
  73. package/dist/types/src/theme/components/tag.d.ts.map +1 -0
  74. package/dist/types/src/theme/components/toast.d.ts.map +1 -0
  75. package/dist/types/src/theme/components/toolbar.d.ts +11 -0
  76. package/dist/types/src/theme/components/toolbar.d.ts.map +1 -0
  77. package/dist/types/src/theme/components/tooltip.d.ts.map +1 -0
  78. package/dist/types/src/theme/components/treegrid.d.ts.map +1 -0
  79. package/dist/types/src/theme/index.d.ts +4 -0
  80. package/dist/types/src/theme/index.d.ts.map +1 -0
  81. package/dist/types/src/theme/primitives/column.d.ts +12 -0
  82. package/dist/types/src/theme/primitives/column.d.ts.map +1 -0
  83. package/dist/types/src/theme/primitives/index.d.ts +3 -0
  84. package/dist/types/src/theme/primitives/index.d.ts.map +1 -0
  85. package/dist/types/src/theme/primitives/panel.d.ts +13 -0
  86. package/dist/types/src/theme/primitives/panel.d.ts.map +1 -0
  87. package/dist/types/src/theme/theme.d.ts +5 -0
  88. package/dist/types/src/theme/theme.d.ts.map +1 -0
  89. package/dist/types/src/{styles/fragments → util}/elevation.d.ts +0 -6
  90. package/dist/types/src/util/elevation.d.ts.map +1 -0
  91. package/dist/types/src/util/hash-styles.d.ts +8 -5
  92. package/dist/types/src/util/hash-styles.d.ts.map +1 -1
  93. package/dist/types/src/util/index.d.ts +3 -0
  94. package/dist/types/src/util/index.d.ts.map +1 -1
  95. package/dist/types/src/util/mx.d.ts +36 -0
  96. package/dist/types/src/util/mx.d.ts.map +1 -1
  97. package/dist/types/src/util/size.d.ts +27 -0
  98. package/dist/types/src/util/size.d.ts.map +1 -0
  99. package/dist/types/src/util/valence.d.ts +4 -0
  100. package/dist/types/src/util/valence.d.ts.map +1 -0
  101. package/dist/types/tsconfig.tsbuildinfo +1 -1
  102. package/package.json +24 -27
  103. package/src/Theme.stories.tsx +224 -0
  104. package/src/css/base/base.css +43 -0
  105. package/src/{styles/layers → css/base}/typography.css +3 -5
  106. package/src/{styles/layers → css/components}/button.css +23 -14
  107. package/src/{styles/layers → css/components}/checkbox.css +12 -8
  108. package/src/{styles/layers → css/components}/dialog.css +16 -15
  109. package/src/{styles/layers/focus-ring.css → css/components/focus.css} +60 -41
  110. package/src/css/components/icon.css +9 -0
  111. package/src/css/components/link.css +9 -0
  112. package/src/css/components/panel.css +117 -0
  113. package/src/css/components/scrollbar.css +24 -0
  114. package/src/css/components/selected.css +30 -0
  115. package/src/css/components/surface.css +34 -0
  116. package/src/css/components/tag.css +130 -0
  117. package/src/css/components/text.css +124 -0
  118. package/src/css/integrations/codemirror.css +34 -0
  119. package/src/css/integrations/tldraw.css +14 -0
  120. package/src/css/layout/main.css +205 -0
  121. package/src/{styles/layers → css/layout}/native.css +6 -4
  122. package/src/css/layout/positioning.css +19 -0
  123. package/src/{styles/layers → css/layout}/size.css +117 -109
  124. package/src/css/theme/animation.css +229 -0
  125. package/src/css/theme/border.css +23 -0
  126. package/src/css/theme/palette.css +36 -0
  127. package/src/css/theme/semantic.css +116 -0
  128. package/src/css/theme/spacing.css +148 -0
  129. package/src/css/theme/styles.css +145 -0
  130. package/src/css/theme/text.css +37 -0
  131. package/src/css/utilities.css +76 -0
  132. package/src/defs.ts +48 -0
  133. package/src/fragments/AUDIT.md +58 -0
  134. package/src/fragments/density.ts +13 -0
  135. package/src/fragments/hover.ts +18 -0
  136. package/src/fragments/index.ts +10 -0
  137. package/src/fragments/text.ts +6 -0
  138. package/src/index.ts +3 -14
  139. package/src/main.css +87 -0
  140. package/src/plugins/ThemePlugin.ts +125 -0
  141. package/src/plugins/dark-mode.ts +22 -0
  142. package/src/plugins/main.css +45 -0
  143. package/src/{styles → theme}/components/avatar.ts +12 -13
  144. package/src/theme/components/button.ts +48 -0
  145. package/src/theme/components/card.ts +98 -0
  146. package/src/{styles → theme}/components/dialog.ts +17 -10
  147. package/src/theme/components/focus.ts +33 -0
  148. package/src/{styles → theme}/components/icon-button.ts +1 -3
  149. package/src/theme/components/icon.ts +28 -0
  150. package/src/{styles → theme}/components/index.ts +4 -1
  151. package/src/theme/components/input.ts +171 -0
  152. package/src/{styles → theme}/components/link.ts +3 -4
  153. package/src/{styles → theme}/components/list.ts +5 -5
  154. package/src/{styles → theme}/components/main.ts +2 -6
  155. package/src/{styles → theme}/components/menu.ts +11 -21
  156. package/src/{styles → theme}/components/message.ts +11 -7
  157. package/src/{styles → theme}/components/popover.ts +13 -12
  158. package/src/theme/components/scroll-area.ts +110 -0
  159. package/src/{styles → theme}/components/select.ts +8 -16
  160. package/src/{styles → theme}/components/separator.ts +3 -3
  161. package/src/theme/components/skeleton.ts +23 -0
  162. package/src/theme/components/splitter.ts +20 -0
  163. package/src/{styles → theme}/components/status.ts +7 -7
  164. package/src/{styles → theme}/components/tag.ts +1 -1
  165. package/src/{styles → theme}/components/toast.ts +6 -8
  166. package/src/theme/components/toolbar.ts +35 -0
  167. package/src/{styles → theme}/components/tooltip.ts +4 -6
  168. package/src/{styles → theme}/components/treegrid.ts +9 -9
  169. package/src/{styles → theme}/index.ts +2 -2
  170. package/src/theme/primitives/column.ts +47 -0
  171. package/src/theme/primitives/index.ts +6 -0
  172. package/src/theme/primitives/panel.ts +43 -0
  173. package/src/{styles → theme}/theme.ts +27 -9
  174. package/src/typings.d.ts +3 -1
  175. package/src/{styles/fragments → util}/elevation.ts +6 -8
  176. package/src/util/hash-styles.ts +118 -98
  177. package/src/util/index.ts +3 -0
  178. package/src/util/mx.ts +165 -43
  179. package/src/util/size.ts +103 -0
  180. package/src/util/valence.ts +33 -0
  181. package/dist/plugin/node-cjs/chunk-UUMDOU7E.cjs +0 -79
  182. package/dist/plugin/node-cjs/chunk-UUMDOU7E.cjs.map +0 -7
  183. package/dist/plugin/node-cjs/chunk-ZVALPM6U.cjs +0 -1619
  184. package/dist/plugin/node-cjs/chunk-ZVALPM6U.cjs.map +0 -7
  185. package/dist/plugin/node-cjs/config/tailwind.cjs +0 -29
  186. package/dist/plugin/node-cjs/config/tailwind.cjs.map +0 -7
  187. package/dist/plugin/node-cjs/plugins/esbuild-plugin.cjs +0 -90
  188. package/dist/plugin/node-cjs/plugins/esbuild-plugin.cjs.map +0 -7
  189. package/dist/plugin/node-cjs/plugins/plugin.cjs +0 -124
  190. package/dist/plugin/node-cjs/plugins/plugin.cjs.map +0 -7
  191. package/dist/plugin/node-cjs/theme.css +0 -1418
  192. package/dist/plugin/node-cjs/theme.css.map +0 -7
  193. package/dist/plugin/node-esm/chunk-AFRHJHP4.mjs +0 -49
  194. package/dist/plugin/node-esm/chunk-AFRHJHP4.mjs.map +0 -7
  195. package/dist/plugin/node-esm/chunk-HJE6EZWE.mjs +0 -1614
  196. package/dist/plugin/node-esm/chunk-HJE6EZWE.mjs.map +0 -7
  197. package/dist/plugin/node-esm/config/tailwind.mjs +0 -8
  198. package/dist/plugin/node-esm/config/tailwind.mjs.map +0 -7
  199. package/dist/plugin/node-esm/plugins/esbuild-plugin.mjs +0 -63
  200. package/dist/plugin/node-esm/plugins/esbuild-plugin.mjs.map +0 -7
  201. package/dist/plugin/node-esm/plugins/plugin.mjs +0 -98
  202. package/dist/plugin/node-esm/plugins/plugin.mjs.map +0 -7
  203. package/dist/plugin/node-esm/theme.css +0 -1418
  204. package/dist/plugin/node-esm/theme.css.map +0 -7
  205. package/dist/types/src/Tokens.stories.d.ts +0 -10
  206. package/dist/types/src/Tokens.stories.d.ts.map +0 -1
  207. package/dist/types/src/config/index.d.ts +0 -3
  208. package/dist/types/src/config/index.d.ts.map +0 -1
  209. package/dist/types/src/config/tailwind.d.ts +0 -9
  210. package/dist/types/src/config/tailwind.d.ts.map +0 -1
  211. package/dist/types/src/config/tokens/alias-colors.d.ts +0 -21
  212. package/dist/types/src/config/tokens/alias-colors.d.ts.map +0 -1
  213. package/dist/types/src/config/tokens/index.d.ts +0 -486
  214. package/dist/types/src/config/tokens/index.d.ts.map +0 -1
  215. package/dist/types/src/config/tokens/lengths.d.ts +0 -139
  216. package/dist/types/src/config/tokens/lengths.d.ts.map +0 -1
  217. package/dist/types/src/config/tokens/physical-colors.d.ts +0 -23
  218. package/dist/types/src/config/tokens/physical-colors.d.ts.map +0 -1
  219. package/dist/types/src/config/tokens/semantic-colors.d.ts +0 -187
  220. package/dist/types/src/config/tokens/semantic-colors.d.ts.map +0 -1
  221. package/dist/types/src/config/tokens/sememes-calls.d.ts +0 -3
  222. package/dist/types/src/config/tokens/sememes-calls.d.ts.map +0 -1
  223. package/dist/types/src/config/tokens/sememes-codemirror.d.ts +0 -43
  224. package/dist/types/src/config/tokens/sememes-codemirror.d.ts.map +0 -1
  225. package/dist/types/src/config/tokens/sememes-hue.d.ts +0 -4
  226. package/dist/types/src/config/tokens/sememes-hue.d.ts.map +0 -1
  227. package/dist/types/src/config/tokens/sememes-sheet.d.ts +0 -58
  228. package/dist/types/src/config/tokens/sememes-sheet.d.ts.map +0 -1
  229. package/dist/types/src/config/tokens/sememes-system.d.ts +0 -99
  230. package/dist/types/src/config/tokens/sememes-system.d.ts.map +0 -1
  231. package/dist/types/src/config/tokens/sizes.d.ts +0 -7
  232. package/dist/types/src/config/tokens/sizes.d.ts.map +0 -1
  233. package/dist/types/src/config/tokens/types.d.ts +0 -5
  234. package/dist/types/src/config/tokens/types.d.ts.map +0 -1
  235. package/dist/types/src/plugins/esbuild-plugin.d.ts +0 -9
  236. package/dist/types/src/plugins/esbuild-plugin.d.ts.map +0 -1
  237. package/dist/types/src/plugins/plugin.d.ts +0 -20
  238. package/dist/types/src/plugins/plugin.d.ts.map +0 -1
  239. package/dist/types/src/plugins/resolveContent.d.ts +0 -2
  240. package/dist/types/src/plugins/resolveContent.d.ts.map +0 -1
  241. package/dist/types/src/styles/components/anchored-overflow.d.ts +0 -6
  242. package/dist/types/src/styles/components/anchored-overflow.d.ts.map +0 -1
  243. package/dist/types/src/styles/components/avatar.d.ts.map +0 -1
  244. package/dist/types/src/styles/components/breadcrumb.d.ts.map +0 -1
  245. package/dist/types/src/styles/components/button.d.ts +0 -19
  246. package/dist/types/src/styles/components/button.d.ts.map +0 -1
  247. package/dist/types/src/styles/components/dialog.d.ts.map +0 -1
  248. package/dist/types/src/styles/components/icon-button.d.ts.map +0 -1
  249. package/dist/types/src/styles/components/icon.d.ts.map +0 -1
  250. package/dist/types/src/styles/components/index.d.ts.map +0 -1
  251. package/dist/types/src/styles/components/input.d.ts.map +0 -1
  252. package/dist/types/src/styles/components/link.d.ts.map +0 -1
  253. package/dist/types/src/styles/components/list.d.ts.map +0 -1
  254. package/dist/types/src/styles/components/main.d.ts.map +0 -1
  255. package/dist/types/src/styles/components/menu.d.ts.map +0 -1
  256. package/dist/types/src/styles/components/message.d.ts.map +0 -1
  257. package/dist/types/src/styles/components/popover.d.ts.map +0 -1
  258. package/dist/types/src/styles/components/scroll-area.d.ts +0 -9
  259. package/dist/types/src/styles/components/scroll-area.d.ts.map +0 -1
  260. package/dist/types/src/styles/components/select.d.ts.map +0 -1
  261. package/dist/types/src/styles/components/separator.d.ts.map +0 -1
  262. package/dist/types/src/styles/components/status.d.ts.map +0 -1
  263. package/dist/types/src/styles/components/tag.d.ts.map +0 -1
  264. package/dist/types/src/styles/components/toast.d.ts.map +0 -1
  265. package/dist/types/src/styles/components/toolbar.d.ts +0 -11
  266. package/dist/types/src/styles/components/toolbar.d.ts.map +0 -1
  267. package/dist/types/src/styles/components/tooltip.d.ts.map +0 -1
  268. package/dist/types/src/styles/components/treegrid.d.ts.map +0 -1
  269. package/dist/types/src/styles/fragments/density.d.ts +0 -13
  270. package/dist/types/src/styles/fragments/density.d.ts.map +0 -1
  271. package/dist/types/src/styles/fragments/dimension.d.ts +0 -5
  272. package/dist/types/src/styles/fragments/dimension.d.ts.map +0 -1
  273. package/dist/types/src/styles/fragments/disabled.d.ts.map +0 -1
  274. package/dist/types/src/styles/fragments/elevation.d.ts.map +0 -1
  275. package/dist/types/src/styles/fragments/focus.d.ts +0 -6
  276. package/dist/types/src/styles/fragments/focus.d.ts.map +0 -1
  277. package/dist/types/src/styles/fragments/group.d.ts +0 -5
  278. package/dist/types/src/styles/fragments/group.d.ts.map +0 -1
  279. package/dist/types/src/styles/fragments/hover.d.ts +0 -17
  280. package/dist/types/src/styles/fragments/hover.d.ts.map +0 -1
  281. package/dist/types/src/styles/fragments/index.d.ts +0 -17
  282. package/dist/types/src/styles/fragments/index.d.ts.map +0 -1
  283. package/dist/types/src/styles/fragments/layout.d.ts +0 -3
  284. package/dist/types/src/styles/fragments/layout.d.ts.map +0 -1
  285. package/dist/types/src/styles/fragments/motion.d.ts +0 -2
  286. package/dist/types/src/styles/fragments/motion.d.ts.map +0 -1
  287. package/dist/types/src/styles/fragments/ornament.d.ts +0 -5
  288. package/dist/types/src/styles/fragments/ornament.d.ts.map +0 -1
  289. package/dist/types/src/styles/fragments/selected.d.ts +0 -13
  290. package/dist/types/src/styles/fragments/selected.d.ts.map +0 -1
  291. package/dist/types/src/styles/fragments/shimmer.d.ts +0 -3
  292. package/dist/types/src/styles/fragments/shimmer.d.ts.map +0 -1
  293. package/dist/types/src/styles/fragments/size.d.ts +0 -9
  294. package/dist/types/src/styles/fragments/size.d.ts.map +0 -1
  295. package/dist/types/src/styles/fragments/surface.d.ts +0 -9
  296. package/dist/types/src/styles/fragments/surface.d.ts.map +0 -1
  297. package/dist/types/src/styles/fragments/text.d.ts +0 -7
  298. package/dist/types/src/styles/fragments/text.d.ts.map +0 -1
  299. package/dist/types/src/styles/fragments/valence.d.ts +0 -13
  300. package/dist/types/src/styles/fragments/valence.d.ts.map +0 -1
  301. package/dist/types/src/styles/index.d.ts +0 -4
  302. package/dist/types/src/styles/index.d.ts.map +0 -1
  303. package/dist/types/src/styles/theme.d.ts +0 -5
  304. package/dist/types/src/styles/theme.d.ts.map +0 -1
  305. package/dist/types/src/tailwind.d.ts +0 -3
  306. package/dist/types/src/tailwind.d.ts.map +0 -1
  307. package/dist/types/src/types.d.ts +0 -3
  308. package/dist/types/src/types.d.ts.map +0 -1
  309. package/dist/types/src/util/withLogical.d.ts +0 -164
  310. package/dist/types/src/util/withLogical.d.ts.map +0 -1
  311. package/src/Tokens.stories.tsx +0 -88
  312. package/src/config/index.ts +0 -6
  313. package/src/config/tailwind.ts +0 -264
  314. package/src/config/tokens/alias-colors.ts +0 -39
  315. package/src/config/tokens/index.ts +0 -92
  316. package/src/config/tokens/lengths.ts +0 -97
  317. package/src/config/tokens/physical-colors.ts +0 -125
  318. package/src/config/tokens/semantic-colors.ts +0 -27
  319. package/src/config/tokens/sememes-calls.ts +0 -17
  320. package/src/config/tokens/sememes-codemirror.ts +0 -50
  321. package/src/config/tokens/sememes-hue.ts +0 -54
  322. package/src/config/tokens/sememes-sheet.ts +0 -62
  323. package/src/config/tokens/sememes-system.ts +0 -302
  324. package/src/config/tokens/sizes.ts +0 -10
  325. package/src/config/tokens/types.ts +0 -9
  326. package/src/docs/theme.drawio.svg +0 -635
  327. package/src/plugins/esbuild-plugin.ts +0 -65
  328. package/src/plugins/plugin.ts +0 -130
  329. package/src/plugins/resolveContent.ts +0 -51
  330. package/src/styles/components/README.md +0 -6
  331. package/src/styles/components/anchored-overflow.ts +0 -20
  332. package/src/styles/components/button.ts +0 -48
  333. package/src/styles/components/icon.ts +0 -19
  334. package/src/styles/components/input.ts +0 -177
  335. package/src/styles/components/scroll-area.ts +0 -43
  336. package/src/styles/components/toolbar.ts +0 -29
  337. package/src/styles/fragments/density.ts +0 -17
  338. package/src/styles/fragments/dimension.ts +0 -8
  339. package/src/styles/fragments/focus.ts +0 -16
  340. package/src/styles/fragments/group.ts +0 -12
  341. package/src/styles/fragments/hover.ts +0 -25
  342. package/src/styles/fragments/index.ts +0 -20
  343. package/src/styles/fragments/layout.ts +0 -7
  344. package/src/styles/fragments/motion.ts +0 -6
  345. package/src/styles/fragments/ornament.ts +0 -10
  346. package/src/styles/fragments/selected.ts +0 -45
  347. package/src/styles/fragments/shimmer.ts +0 -9
  348. package/src/styles/fragments/size.ts +0 -117
  349. package/src/styles/fragments/surface.ts +0 -29
  350. package/src/styles/fragments/text.ts +0 -12
  351. package/src/styles/fragments/valence.ts +0 -46
  352. package/src/styles/layers/README.md +0 -15
  353. package/src/styles/layers/anchored-overflow.css +0 -9
  354. package/src/styles/layers/animation.css +0 -17
  355. package/src/styles/layers/attention.css +0 -8
  356. package/src/styles/layers/base.css +0 -25
  357. package/src/styles/layers/can-scroll.css +0 -26
  358. package/src/styles/layers/drag-preview.css +0 -18
  359. package/src/styles/layers/hues.css +0 -110
  360. package/src/styles/layers/index.css +0 -26
  361. package/src/styles/layers/main.css +0 -227
  362. package/src/styles/layers/positioning.css +0 -23
  363. package/src/styles/layers/surfaces.css +0 -31
  364. package/src/styles/layers/tag.css +0 -132
  365. package/src/styles/layers/tldraw.css +0 -91
  366. package/src/styles/layers/tokens.css +0 -46
  367. package/src/tailwind.ts +0 -7
  368. package/src/theme.css +0 -9
  369. package/src/types.ts +0 -7
  370. package/src/util/withLogical.ts +0 -114
  371. /package/dist/types/src/{styles/fragments → fragments}/disabled.d.ts +0 -0
  372. /package/dist/types/src/{styles → theme}/components/avatar.d.ts +0 -0
  373. /package/dist/types/src/{styles → theme}/components/breadcrumb.d.ts +0 -0
  374. /package/dist/types/src/{styles → theme}/components/icon-button.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"
228
- ];
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 ?? []
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
755
34
  ];
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
- };
1048
-
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}`;
48
+ // src/fragments/density.ts
49
+ var coarseBlockSize = "min-h-[2.5rem]";
50
+ var coarseDimensions = `${coarseBlockSize} px-3`;
51
+ var fineBlockSize = "min-h-[2.5rem] pointer-fine:min-h-[2rem]";
52
+ var fineDimensions = `${fineBlockSize} px-2`;
1619
53
  var densityBlockSize = (density = "coarse") => density === "fine" ? fineBlockSize : coarseBlockSize;
1620
54
 
1621
- // src/styles/fragments/disabled.ts
55
+ // src/fragments/disabled.ts
1622
56
  var staticDisabled = "opacity-40 cursor-not-allowed shadow-none";
1623
57
  var dataDisabled = "data-[disabled]:opacity-40 data-[disabled]:cursor-not-allowed";
1624
58
 
1625
- // src/styles/fragments/dimension.ts
1626
- var textBlockWidth = "is-full mli-auto max-is-[--text-content]";
59
+ // src/fragments/hover.ts
60
+ var subtleHover = "hover:bg-hover-overlay";
61
+ var ghostHover = "hover:bg-hover-surface";
62
+ var ghostFocusWithin = "focus-within:bg-hover-surface";
63
+ var hoverableControls = "[--controls-opacity:1] hover-hover:[--controls-opacity:0] hover-hover:hover:[--controls-opacity:1]";
64
+ var groupHoverControlItemWithTransition = "transition-opacity duration-200 opacity-0 group-hover:opacity-100";
65
+ var hoverableFocusedKeyboardControls = "focus-visible:[--controls-opacity:1]";
66
+ var hoverableFocusedWithinControls = "focus-within:[--controls-opacity:1]";
67
+ var hoverableOpenControlItem = "hover-hover:aria-[expanded=true]:[--controls-opacity:1]";
68
+ var hoverableControlItem = "opacity-(--controls-opacity)";
1627
69
 
1628
- // src/styles/fragments/elevation.ts
1629
- var contentShadow = (_) => [
1630
- "shadow-none"
1631
- ];
70
+ // src/fragments/text.ts
71
+ var descriptionTextPrimary = "text-sm font-normal text-base-surface-text";
72
+ var descriptionMessage = "text-description border border-dashed border-separator rounded-sm p-4";
73
+
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"
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"
1866
252
  }
1867
253
  ];
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";
254
+ var palette = {
255
+ neutral,
256
+ hues: styles
1873
257
  };
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
- ]
258
+ var getStyles = (hue) => {
259
+ return styles.find((color) => color.hue === hue) || neutral;
2190
260
  };
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
- });
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,279 @@ 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
+ }, {
345
+ F: __dxlog_file,
346
+ L: 125,
347
+ S: this,
348
+ C: (f, a) => f(...a)
349
+ });
350
+ }
351
+ } catch {
352
+ }
353
+ }
354
+ const result = render(props, forwardedRef);
355
+ if (warn) {
356
+ return createElement("div", {
357
+ role: "none",
358
+ className: "dx-slot-warning"
359
+ }, result);
360
+ }
361
+ return result;
362
+ };
363
+ const component = forwardRef(wrapped);
364
+ component[COMPOSABLE] = true;
365
+ return component;
366
+ }
367
+ function composable(render) {
368
+ const component = forwardRef(render);
369
+ component[COMPOSABLE] = true;
370
+ return component;
371
+ }
2336
372
 
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)) {
373
+ // src/util/size.ts
374
+ var sizeMap = {
375
+ 0: {
376
+ w: "w-0",
377
+ h: "h-0"
378
+ },
379
+ px: {
380
+ w: "w-px",
381
+ h: "h-px"
382
+ },
383
+ 0.5: {
384
+ w: "w-0.5",
385
+ h: "h-0.5"
386
+ },
387
+ 1: {
388
+ w: "w-1",
389
+ h: "h-1"
390
+ },
391
+ 1.5: {
392
+ w: "w-1.5",
393
+ h: "h-1.5"
394
+ },
395
+ 2: {
396
+ w: "w-2",
397
+ h: "h-2"
398
+ },
399
+ 2.5: {
400
+ w: "w-2.5",
401
+ h: "h-2.5"
402
+ },
403
+ 3: {
404
+ w: "w-3",
405
+ h: "h-3"
406
+ },
407
+ 3.5: {
408
+ w: "w-3.5",
409
+ h: "h-3.5"
410
+ },
411
+ 4: {
412
+ w: "w-4",
413
+ h: "h-4"
414
+ },
415
+ 5: {
416
+ w: "w-5",
417
+ h: "h-5"
418
+ },
419
+ 6: {
420
+ w: "w-6",
421
+ h: "h-6"
422
+ },
423
+ 7: {
424
+ w: "w-7",
425
+ h: "h-7"
426
+ },
427
+ 8: {
428
+ w: "w-8",
429
+ h: "h-8"
430
+ },
431
+ 9: {
432
+ w: "w-9",
433
+ h: "h-9"
434
+ },
435
+ 10: {
436
+ w: "w-10",
437
+ h: "h-10"
438
+ },
439
+ 11: {
440
+ w: "w-11",
441
+ h: "h-11"
442
+ },
443
+ 12: {
444
+ w: "w-12",
445
+ h: "h-12"
446
+ },
447
+ 14: {
448
+ w: "w-14",
449
+ h: "h-14"
450
+ },
451
+ 16: {
452
+ w: "w-16",
453
+ h: "h-16"
454
+ },
455
+ 20: {
456
+ w: "w-20",
457
+ h: "h-20"
458
+ },
459
+ 24: {
460
+ w: "w-24",
461
+ h: "h-24"
462
+ },
463
+ 28: {
464
+ w: "w-28",
465
+ h: "h-28"
466
+ },
467
+ 32: {
468
+ w: "w-32",
469
+ h: "h-32"
470
+ },
471
+ 36: {
472
+ w: "w-36",
473
+ h: "h-36"
474
+ },
475
+ 40: {
476
+ w: "w-40",
477
+ h: "h-40"
478
+ },
479
+ 44: {
480
+ w: "w-44",
481
+ h: "h-44"
482
+ },
483
+ 48: {
484
+ w: "w-48",
485
+ h: "h-48"
486
+ },
487
+ 52: {
488
+ w: "w-52",
489
+ h: "h-52"
490
+ },
491
+ 56: {
492
+ w: "w-56",
493
+ h: "h-56"
494
+ },
495
+ 60: {
496
+ w: "w-60",
497
+ h: "h-60"
498
+ },
499
+ 64: {
500
+ w: "w-64",
501
+ h: "h-64"
502
+ },
503
+ 72: {
504
+ w: "w-72",
505
+ h: "h-72"
506
+ },
507
+ 80: {
508
+ w: "w-80",
509
+ h: "h-80"
510
+ },
511
+ 96: {
512
+ w: "w-96",
513
+ h: "h-96"
514
+ }
515
+ };
516
+ var SIZE_VALUES = Object.keys(sizeMap).map((key) => key === "px" ? "px" : Number(key));
517
+ var getHeight = (size) => sizeMap[size]?.h;
518
+ var getWidth = (size) => sizeMap[size]?.w;
519
+ var getSize = (size) => mx(getHeight(size), getWidth(size));
520
+ var sizeValue = (size) => size === "px" ? 1 : size;
521
+ var sizeToRem = (size) => size === "px" ? "1px" : `${size * 0.25}rem`;
522
+ var iconSize = (size) => ({
523
+ "--icon-size": size ? sizeToRem(size) : "initial"
524
+ });
525
+ var snapSize = (value, defaultSize) => {
526
+ if (SIZE_VALUES.includes(value)) {
2628
527
  return value;
2629
528
  } else if (value <= 0) {
2630
529
  return 0;
2631
- } else if (value === 1) {
530
+ } else if (value < 0.5) {
2632
531
  return "px";
2633
532
  } else {
2634
533
  const wholeSeries = Math.floor(value);
2635
534
  const halfSeries = Math.floor(value * 2) / 2;
2636
535
  const doubleSeries = Math.floor(value / 2) * 2;
2637
536
  const quadrupleSeries = Math.floor(value / 4) * 4;
2638
- if (sizes.has(halfSeries)) {
537
+ if (SIZE_VALUES.includes(halfSeries)) {
2639
538
  return halfSeries;
2640
- } else if (sizes.has(wholeSeries)) {
539
+ } else if (SIZE_VALUES.includes(wholeSeries)) {
2641
540
  return wholeSeries;
2642
- } else if (sizes.has(doubleSeries)) {
541
+ } else if (SIZE_VALUES.includes(doubleSeries)) {
2643
542
  return doubleSeries;
2644
- } else if (sizes.has(quadrupleSeries)) {
543
+ } else if (SIZE_VALUES.includes(quadrupleSeries)) {
2645
544
  return quadrupleSeries;
2646
545
  } else {
2647
546
  return defaultSize;
2648
547
  }
2649
548
  }
2650
549
  };
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
550
 
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) => {
551
+ // src/util/valence.ts
552
+ var textValence = (valence) => {
2670
553
  switch (valence) {
2671
554
  case "success":
2672
- return successText;
555
+ return "font-medium text-success-text";
2673
556
  case "info":
2674
- return infoText;
557
+ return "font-medium text-info-text";
2675
558
  case "warning":
2676
- return warningText;
559
+ return "font-medium text-warning-text";
2677
560
  case "error":
2678
- return errorText;
2679
- default:
2680
- return void 0;
561
+ return "font-medium text-error-text";
2681
562
  }
2682
563
  };
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
564
  var messageValence = (valence) => {
2689
565
  switch (valence) {
2690
566
  case "success":
2691
- return successMessageColors;
567
+ return "font-medium text-success-text border-success-text bg-success-surface";
2692
568
  case "info":
2693
- return infoMessageColors;
569
+ return "font-medium text-info-text border-info-text bg-info-surface";
2694
570
  case "warning":
2695
- return warningMessageColors;
571
+ return "font-medium text-warning-text border-warning-text bg-warning-surface";
2696
572
  case "error":
2697
- return errorMessageColors;
573
+ return "font-medium text-error-text border-error-text bg-error-surface";
2698
574
  default:
2699
- return neutralMessageColors;
575
+ return "font-medium text-neutral-text border-neutral-text bg-neutral-surface";
2700
576
  }
2701
577
  };
2702
578
 
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);
579
+ // src/theme/components/avatar.ts
580
+ var avatarRoot = ({ size = 10, inGroup }, ...etc) => mx("relative inline-flex shrink-0", getSize(size), inGroup && (size === "px" || size <= 3 ? "-mr-1" : "-mr-2"), ...etc);
2713
581
  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);
582
+ var avatarDescription = ({ srOnly }, ...etc) => mx("text-description", srOnly && "sr-only", ...etc);
583
+ var avatarFrame = ({ variant }, ...etc) => mx("h-full w-full bg-(--surface-bg)", variant === "circle" ? "rounded-full" : "rounded-sm", ...etc);
584
+ var avatarStatusIcon = ({ status, size = 3 }, ...etc) => mx("absolute bottom-0 end-0", getSize(size), status === "inactive" ? "text-amber-400 dark:text-amber-300" : status === "active" ? "text-emerald-400 dark:text-emerald-300" : "text-neutral-400 dark:text-neutral-300", ...etc);
585
+ var avatarRing = ({ status, variant, animation }, ...etc) => mx("absolute inset-0 border-2", variant === "circle" ? "rounded-full" : "rounded-sm", status === "current" ? "border-primary-400 dark:border-primary-500" : status === "active" ? "border-emerald-400 dark:border-emerald-400" : status === "error" ? "border-rose-400 dark:border-rose-500" : status === "warning" ? "border-amber-400 dark:border-amber-500" : status === "inactive" ? "border-separator" : status === "internal" ? "border-fuchsia-600" : "border-[color:var(--surface-bg)]", animation === "pulse" ? "animate-halo-pulse" : "", ...etc);
2718
586
  var avatarFallbackText = (_props, ...etc) => mx("fill-white", ...etc);
2719
587
  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);
588
+ var avatarGroupLabel = ({ size, srOnly }, ...etc) => mx(srOnly ? "sr-only" : "rounded-full truncate text-sm leading-none py-1 px-2 relative z-[1] flex items-center justify-center", size && getHeight(size), ...etc);
589
+ var avatarGroupDescription = ({ srOnly }, ...etc) => mx(srOnly ? "sr-only" : "text-description", ...etc);
2722
590
  var avatarTheme = {
2723
591
  root: avatarRoot,
2724
592
  label: avatarLabel,
@@ -2732,7 +600,7 @@ var avatarTheme = {
2732
600
  groupDescription: avatarGroupDescription
2733
601
  };
2734
602
 
2735
- // src/styles/components/breadcrumb.ts
603
+ // src/theme/components/breadcrumb.ts
2736
604
  var breadcrumbRoot = (_props, ...etc) => mx("shrink-0 flex items-center", ...etc);
2737
605
  var breadcrumbList = (_props, ...etc) => mx("contents", ...etc);
2738
606
  var breadcrumbListItem = (_props, ...etc) => mx("contents", ...etc);
@@ -2746,152 +614,194 @@ var breadcrumbTheme = {
2746
614
  separator: breadcrumbSeparator
2747
615
  };
2748
616
 
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");
617
+ // src/theme/components/card.ts
618
+ var cardRoot = ({ border, fullWidth }, ...etc) => mx("dx-card dx-card-min-width dx-card-max-width min-h-(--dx-rail-item) group/card relative overflow-hidden", border && "bg-card-surface border border-separator dark:border-subdued-separator rounded-xs dx-focus-ring-group-y-indicator", fullWidth && "max-w-none!", ...etc);
619
+ var cardToolbar = (_, ...etc) => mx("dx-card__toolbar dx-density-fine bg-transparent p-0! gap-0! col-span-3 grid! grid-cols-subgrid! [contain:none]", ...etc);
620
+ var cardTitle = (_props, ...etc) => mx("dx-card__title grow truncate", ...etc);
621
+ var cardContent = (_props, ...etc) => mx("dx-card__content contents pb-1 last:pb-0", ...etc);
622
+ var cardHeading = ({ variant = "default" }, ...etc) => mx("dx-card__heading", variant === "default" && "py-1", variant === "subtitle" && "py-2 text-xs text-description font-medium uppercase", ...etc);
623
+ var cardText = ({ variant = "default", truncate: _truncate }, ...etc) => mx("dx-card__text items-center overflow-hidden", variant === "default" && "py-1", variant === "description" && "py-1.5 text-description", ...etc);
624
+ var cardTextSpan = ({ variant = "default", truncate }, ...etc) => mx(variant === "description" && "text-sm text-description line-clamp-3", truncate && "truncate", ...etc);
625
+ var cardPoster = (_props, ...etc) => mx("dx-card__poster col-span-3 max-h-[200px]", ...etc);
626
+ var cardPosterIcon = (_props, ...etc) => mx("dx-card__poster-icon col-span-3 grid place-items-center bg-input-surface text-subdued max-h-[200px]", ...etc);
627
+ var cardAction = (_props, ...etc) => mx("dx-card__acztion col-span-3 !grid grid-cols-subgrid p-0! w-full text-start overflow-hidden", ...etc);
628
+ var cardActionLabel = (_props, ...etc) => mx("dx-card__action-label min-w-0 flex-1 truncate", ...etc);
629
+ var cardLink = (_props, ...etc) => mx("dx-card__link col-span-3 !grid grid-cols-subgrid group p-0! dx-button dx-focus-ring min-h-1!", ...etc);
630
+ var cardLinkLabel = (_props, ...etc) => mx("dx-card__link-label min-w-0 flex-1 truncate", ...etc);
631
+ var 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);
632
+ var cardTheme = {
633
+ root: cardRoot,
634
+ toolbar: cardToolbar,
635
+ title: cardTitle,
636
+ content: cardContent,
637
+ heading: cardHeading,
638
+ text: cardText,
639
+ "text-span": cardTextSpan,
640
+ poster: cardPoster,
641
+ "poster-icon": cardPosterIcon,
642
+ action: cardAction,
643
+ "action-label": cardActionLabel,
644
+ link: cardLink,
645
+ "link-label": cardLinkLabel,
646
+ "icon-block": cardIconBlock
647
+ };
648
+
649
+ // src/theme/components/button.ts
650
+ 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";
651
+ var staticDefaultButtonColors = "bg-input-surface text-input-surface-text";
652
+ 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");
653
+ 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
654
  var buttonRoot = (_props, ...etc) => {
2755
- return mx("dx-button dx-focus-ring group max-is-full [&_span]:truncate", ...etc);
655
+ return mx("dx-button dx-focus-ring group [&_span]:truncate", ...etc);
2756
656
  };
2757
657
  var buttonGroup = (_props, ...etc) => {
2758
- return mx("inline-flex rounded-sm [&>:first-child]:rounded-is-sm [&>:last-child]:rounded-ie-sm [&>button]:relative", ...etc);
658
+ return mx("inline-flex rounded-xs [&>:first-child]:rounded-w-sm [&>:last-child]:rounded-ie-sm [&>button]:relative", ...etc);
2759
659
  };
2760
660
  var buttonTheme = {
2761
661
  root: buttonRoot,
2762
662
  group: buttonGroup
2763
663
  };
2764
664
 
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]"
665
+ // src/theme/components/dialog.ts
666
+ var sizeMap2 = {
667
+ sm: "md:max-w-[24rem]",
668
+ md: "md:max-w-[32rem]!",
669
+ lg: "md:max-w-[40rem]!",
670
+ xl: "md:max-w-[60rem]!"
2771
671
  };
2772
672
  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);
673
+ var dialogContent = ({ inOverlayLayout, size = "md" }, ...etc) => {
674
+ 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
675
  };
2776
- var dialogHeader = (_props, ...etc) => mx("dx-dialog__header flex items-center justify-between", ...etc);
676
+ var dialogHeader = (_props, ...etc) => mx("dx-dialog__header flex pb-4 items-center justify-between", ...etc);
677
+ var dialogBody = (_props, ...etc) => mx("dx-dialog__body", ...etc);
678
+ var dialogActionBar = (_props, ...etc) => mx("dx-dialog__actionbar flex items-center pt-4 gap-2 dx-density-coarse", ...etc);
2777
679
  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);
680
+ var dialogDescription = ({ srOnly }, ...etc) => mx("dx-dialog__description", "text-description", srOnly && "sr-only", ...etc);
2779
681
  var dialogTheme = {
2780
682
  overlay: dialogOverlay,
2781
683
  content: dialogContent,
2782
684
  header: dialogHeader,
685
+ body: dialogBody,
686
+ actionbar: dialogActionBar,
2783
687
  title: dialogTitle,
2784
688
  description: dialogDescription
2785
689
  };
2786
690
 
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);
691
+ // src/theme/components/focus.ts
692
+ 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);
693
+ var focusTheme = {
694
+ group: focusRing,
695
+ item: focusRing
696
+ };
697
+
698
+ // src/theme/components/icon.ts
699
+ var iconRoot = ({ size }, etc) => {
700
+ 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);
701
+ };
2789
702
  var iconTheme = {
2790
703
  root: iconRoot
2791
704
  };
2792
705
 
2793
- // src/styles/components/icon-button.ts
706
+ // src/theme/components/icon-button.ts
2794
707
  var iconButtonRoot = ({ iconOnly }, ...etc) => {
2795
- return mx("gap-2", iconOnly && "p-iconButtonPadding min-bs-0", ...etc);
708
+ return mx("px-1.5", !iconOnly && "gap-2", ...etc);
2796
709
  };
2797
710
  var iconButtonTheme = {
2798
711
  root: iconButtonRoot
2799
712
  };
2800
713
 
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";
714
+ // src/theme/components/input.ts
715
+ var inputTextLabel = "py-1 text-sm text-description";
716
+ var textInputSurfaceFocus = "transition-colors bg-input-surface focus:bg-focus-surface border border-separator focus:border-separator";
717
+ var textInputSurfaceHover = "hover:bg-focus-surface";
718
+ var booleanInputSurface = "shadow-inner transition-colors bg-un-accent aria-checked:bg-accent-surface aria-[checked=mixed]:bg-accent-surface";
719
+ var booleanInputSurfaceHover = "hover:bg-un-accent-hover hover:aria-checked:bg-accent-surface-hover hover:aria-[checked=mixed]:bg-accent-surface-hover";
2812
720
  var inputValence = (valence) => {
2813
721
  switch (valence) {
2814
722
  case "success":
2815
- return successInputValence;
723
+ return "shadow-emerald-500/50 dark:shadow-emerald-600/50";
2816
724
  case "info":
2817
- return infoInputValence;
725
+ return "shadow-cyan-500/50 dark:shadow-cyan-600/50";
2818
726
  case "warning":
2819
- return warningInputValence;
727
+ return "shadow-amber-500/50 dark:shadow-amber-600/50";
2820
728
  case "error":
2821
- return errorInputValence;
2822
- default:
2823
- return null;
729
+ return "shadow-rose-500/50 dark:shadow-rose-600/50";
2824
730
  }
2825
731
  };
2826
732
  var sharedSubduedInputStyles = (props) => [
2827
- 'plb-0 is-full bg-transparent text-current [[data-drag-autoscroll="active"]_&]:pointer-events-none',
733
+ "py-0 w-full bg-transparent text-current placeholder-placeholder",
734
+ '[[data-drag-autoscroll="active"]_&]:pointer-events-none',
2828
735
  props.density === "fine" ? fineBlockSize : coarseBlockSize,
2829
- placeholderText,
2830
- subduedFocus,
736
+ "dx-focus-subdued",
2831
737
  props.disabled && staticDisabled
2832
738
  ];
2833
739
  var sharedDefaultInputStyles = (props) => [
2834
- 'plb-0 is-full text-baseText rounded-sm text-[color:var(--surface-text)] [[data-drag-autoscroll="active"]_&]:pointer-events-none',
740
+ "py-0 w-full text-base-surface-text rounded-xs placeholder-placeholder",
741
+ '[[data-drag-autoscroll="active"]_&]:pointer-events-none',
2835
742
  textInputSurfaceFocus,
2836
- placeholderText,
2837
743
  props.density === "fine" ? fineDimensions : coarseDimensions,
2838
744
  props.disabled ? staticDisabled : textInputSurfaceHover
2839
745
  ];
2840
746
  var sharedStaticInputStyles = (props) => [
2841
- 'plb-0 is-full text-baseText rounded-sm text-[color:var(--surface-text)] [[data-drag-autoscroll="active"]_&]:pointer-events-none',
747
+ "py-0 w-full text-base-surface-text rounded-xs placeholder-placeholder",
748
+ '[[data-drag-autoscroll="active"]_&]:pointer-events-none',
2842
749
  textInputSurfaceFocus,
2843
750
  textInputSurfaceHover,
2844
- props.focused && "bg-attention",
2845
- placeholderText,
751
+ props.focused && "bg-attention-surface",
2846
752
  inputValence(props.validationValence),
2847
753
  props.disabled && staticDisabled,
2848
- props.focused && staticFocusRing
754
+ props.focused && "dx-focus-static"
2849
755
  ];
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);
756
+ 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);
757
+ var inputTextArea = (props, ...etc) => inputInput(props, ...etc);
2851
758
  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);
759
+ var inputCheckboxIndicator = ({ size = 5, checked }, ...etc) => mx(getSize(snapSize(sizeValue(size) * 0.65, 4)), !checked && "invisible", ...etc);
2853
760
  var inputSwitch = ({ size = 5, disabled }, ...etc) => mx(
2854
- getSizeHeight(size),
2855
- getSizeWidth(computeSize(sizeValue(size) * 1.75, 9)),
761
+ getHeight(size),
762
+ getWidth(snapSize(sizeValue(size) * 1.75, 9)),
2856
763
  booleanInputSurface,
2857
764
  !disabled && booleanInputSurfaceHover,
2858
765
  // 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,
766
+ "cursor-pointer shrink-0 rounded-full px-1 mx-1 relative",
767
+ "dx-focus-ring",
2861
768
  ...etc
2862
769
  );
2863
770
  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);
771
+ 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);
772
+ 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
773
  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);
774
+ var inputDescription = (props, ...etc) => mx("text-description", props.srOnly && "sr-only", ...etc);
775
+ var inputDescriptionAndValidation = (props, ...etc) => mx("leading-none my-1.5", props.srOnly && "sr-only", ...etc);
776
+ var inputValidation = (props, ...etc) => mx(inputTextLabel, props.srOnly ? "sr-only" : textValence(props.validationValence), ...etc);
2869
777
  var inputTheme = {
2870
778
  input: inputInput,
779
+ textArea: inputTextArea,
2871
780
  inputWithSegments: inputWithSegmentsInput,
781
+ segment: inputSegment,
2872
782
  checkbox: inputCheckbox,
2873
783
  checkboxIndicator: inputCheckboxIndicator,
2874
784
  label: inputLabel,
2875
785
  description: inputDescription,
2876
- validation: inputValidation,
2877
786
  switch: inputSwitch,
2878
787
  switchThumb: inputSwitchThumb,
788
+ validation: inputValidation,
2879
789
  descriptionAndValidation: inputDescriptionAndValidation
2880
790
  };
2881
791
 
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);
792
+ // src/theme/components/link.ts
793
+ 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
794
  var linkTheme = {
2885
795
  root: linkRoot
2886
796
  };
2887
797
 
2888
- // src/styles/components/list.ts
798
+ // src/theme/components/list.ts
2889
799
  var listRoot = (_, ...etc) => mx(...etc);
2890
800
  var listItem = ({ collapsible }, ...etc) => mx(!collapsible && "flex", ...etc);
2891
801
  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);
802
+ var listItemHeading = ({ density }, ...etc) => mx(densityBlockSize(density), "flex items-center overflow-hidden [&>span]:truncate", ...etc);
803
+ var listItemDragHandleIcon = (_props, ...etc) => mx(getSize(5), "mt-2.5", ...etc);
804
+ var listItemOpenTrigger = ({ density }, ...etc) => mx("w-5 rounded-sm flex justify-center items-center", densityBlockSize(density), ghostHover, "dx-focus-ring", ...etc);
2895
805
  var listItemOpenTriggerIcon = (_props, ...etc) => {
2896
806
  return mx(getSize(5), ...etc);
2897
807
  };
@@ -2907,34 +817,32 @@ var listTheme = {
2907
817
  }
2908
818
  };
2909
819
 
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";
820
+ // src/theme/components/main.ts
821
+ var topbarBlockPaddingStart = "py-(--dx-topbar-size) dx-sticky-top-from-topbar-bottom";
822
+ var bottombarBlockPaddingEnd = "pb-(--dx-statusbar-size) dx-sticky-bottom-from-statusbar-bottom";
2913
823
  var mainPadding = "dx-main-content-padding";
2914
824
  var mainPaddingTransitions = "dx-main-content-padding-transitions";
2915
825
  var mainIntrinsicSize = "dx-main-intrinsic-size";
2916
826
  var mainContent = ({ bounce }, ...etc) => mx(mainPadding, mainPaddingTransitions, bounce && "dx-main-bounce-layout", "dx-focus-ring-main", ...etc);
2917
827
  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
828
  var mainOverlay = (_, ...etc) => mx("dx-main-overlay", ...etc);
2920
829
  var mainTheme = {
2921
830
  content: mainContent,
2922
831
  sidebar: mainSidebar,
2923
- drawer: mainDrawer,
2924
832
  overlay: mainOverlay
2925
833
  };
2926
834
 
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({
835
+ // src/theme/components/menu.ts
836
+ var menuContent = ({ elevation }, ...etc) => mx("dx-modal-surface w-48 rounded-sm md:w-56 border border-separator", surfaceZIndex({
2930
837
  elevation,
2931
838
  level: "menu"
2932
839
  }), surfaceShadow({
2933
840
  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);
841
+ }), ...etc);
842
+ var menuViewport = (_props, ...etc) => mx("rounded-sm p-1 max-h-[var(--radix-dropdown-menu-content-available-height)] overflow-y-auto", ...etc);
843
+ 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);
844
+ var menuSeparator = (_props, ...etc) => mx("my-1 mx-2 h-px bg-separator", ...etc);
845
+ var menuGroupLabel = (_props, ...etc) => mx("text-description", "select-none px-2 py-2", ...etc);
2938
846
  var menuArrow = (_props, ...etc) => mx("fill-separator", ...etc);
2939
847
  var menuTheme = {
2940
848
  content: menuContent,
@@ -2945,34 +853,38 @@ var menuTheme = {
2945
853
  arrow: menuArrow
2946
854
  };
2947
855
 
2948
- // src/styles/components/message.ts
856
+ // src/theme/components/message.ts
2949
857
  var messageRoot = ({ valence }, etc) => {
2950
- return mx("p-trimSm rounded-md", messageValence(valence), etc);
858
+ return mx("grid grid-cols-[min-content_1fr] gap-x-2 p-trim-sm rounded-sm", messageValence(valence), etc);
859
+ };
860
+ var messageHeader = (_, etc) => {
861
+ return mx("col-span-2 grid grid-cols-subgrid items-center", etc);
2951
862
  };
2952
863
  var messageTitle = (_, etc) => {
2953
- return mx("font-medium flex gap-trimSm", etc);
864
+ return mx("col-start-2 gap-trim-sm [&>svg]:inline-block", etc);
2954
865
  };
2955
866
  var messageIcon = (_, etc) => {
2956
- return mx("flex bs-[1lh] items-center", etc);
867
+ return mx("col-start-1", etc);
2957
868
  };
2958
869
  var messageContent = (_, etc) => {
2959
- return mx("first:font-medium", etc);
870
+ return mx("grid grid-cols-subgrid col-start-2 first:font-medium", etc);
2960
871
  };
2961
872
  var messageTheme = {
2962
873
  root: messageRoot,
2963
- content: messageContent,
874
+ header: messageHeader,
2964
875
  icon: messageIcon,
2965
- title: messageTitle
876
+ title: messageTitle,
877
+ content: messageContent
2966
878
  };
2967
879
 
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({
880
+ // src/theme/components/popover.ts
881
+ var popoverContent = ({ elevation }, ...etc) => mx("dx-modal-surface border border-separator rounded-sm", surfaceShadow({
2971
882
  elevation: "positioned"
2972
883
  }), surfaceZIndex({
2973
884
  elevation,
2974
885
  level: "menu"
2975
- }), focusRing, ...etc);
886
+ }), "dx-focus-ring", ...etc);
887
+ var popoverViewport = ({ constrainBlock, constrainInline }, ...etc) => mx("flex flex-col 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
888
  var popoverArrow = (_props, ...etc) => mx("fill-separator", ...etc);
2977
889
  var popoverTheme = {
2978
890
  content: popoverContent,
@@ -2980,26 +892,72 @@ var popoverTheme = {
2980
892
  arrow: popoverArrow
2981
893
  };
2982
894
 
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)
895
+ // src/theme/components/scroll-area.ts
896
+ var scrollbar = {
897
+ thin: {
898
+ size: 4,
899
+ padding: 4
900
+ },
901
+ coarse: {
902
+ size: 8,
903
+ padding: 8
904
+ }
905
+ };
906
+ var scrollAreaRoot = ({ orientation }, ...etc) => mx(
907
+ // Expand
908
+ "dx-container",
909
+ orientation === "vertical" && "group/scroll-v flex flex-col",
910
+ orientation === "horizontal" && "group/scroll-h flex",
911
+ orientation === "all" && "group/scroll-all",
912
+ // Apply col-span-full only when inside a Column.Root grid (detected via dx-column marker).
913
+ "[.dx-column_&]:col-span-full",
914
+ ...etc
2988
915
  );
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);
916
+ var scrollAreaViewport = ({ orientation, centered, padding, snap, thin, autoHide }, ...etc) => {
917
+ return mx(
918
+ "h-full w-full",
919
+ orientation === "vertical" && "flex flex-col overflow-y-scroll",
920
+ orientation === "horizontal" && "flex overflow-x-scroll overscroll-x-contain",
921
+ orientation === "all" && "overflow-scroll",
922
+ "[&::-webkit-scrollbar-corner]:bg-transparent",
923
+ "[&::-webkit-scrollbar-track]:bg-transparent",
924
+ "[&::-webkit-scrollbar-thumb]:rounded-none",
925
+ "[&::-webkit-scrollbar]:w-[var(--scroll-width)] [&::-webkit-scrollbar]:h-[var(--scroll-width)]",
926
+ // If contained within Column.Root grid the gutter is set by that component (--gutter CSS variable).
927
+ // If centered, left padding compensates for scrollbar width so content is visually centered.
928
+ (orientation === "vertical" || orientation === "all") && (padding ? [
929
+ centered ? "pl-[var(--gutter,calc(var(--scroll-width)+var(--scroll-padding)))]" : "pl-[var(--gutter,0)]",
930
+ "pr-[calc(var(--gutter,calc(var(--scroll-width)+var(--scroll-padding)))-var(--scroll-width))]"
931
+ ] : centered && "pl-[var(--scroll-width)]"),
932
+ (orientation === "horizontal" || orientation === "all") && (padding ? [
933
+ centered && "pt-[calc(var(--scroll-width)+var(--scroll-padding))]",
934
+ "pb-[var(--scroll-padding)]"
935
+ ] : centered && "pt-[var(--scroll-width)]"),
936
+ snap && [
937
+ orientation === "vertical" && "snap-y snap-mandatory",
938
+ orientation === "horizontal" && "snap-x snap-mandatory",
939
+ orientation === "all" && "snap-both snap-mandatory"
940
+ ],
941
+ autoHide ? [
942
+ orientation === "vertical" && "group-hover/scroll-v:[&::-webkit-scrollbar-thumb]:bg-scrollbar-thumb",
943
+ orientation === "horizontal" && "group-hover/scroll-h:[&::-webkit-scrollbar-thumb]:bg-scrollbar-thumb",
944
+ orientation === "all" && "group-hover/scroll-all:[&::-webkit-scrollbar-thumb]:bg-scrollbar-thumb"
945
+ ] : [
946
+ orientation === "vertical" && "[&::-webkit-scrollbar-thumb]:bg-scrollbar-thumb",
947
+ orientation === "horizontal" && "[&::-webkit-scrollbar-thumb]:bg-scrollbar-thumb",
948
+ orientation === "all" && "[&::-webkit-scrollbar-thumb]:bg-scrollbar-thumb"
949
+ ],
950
+ ...etc
951
+ );
952
+ };
2992
953
  var scrollAreaTheme = {
2993
954
  root: scrollAreaRoot,
2994
- viewport: scrollAreaViewport,
2995
- scrollbar: scrollAreaScrollbar,
2996
- thumb: scrollAreaThumb,
2997
- corner: scrollAreaCorner
955
+ viewport: scrollAreaViewport
2998
956
  };
2999
957
 
3000
- // src/styles/components/select.ts
958
+ // src/theme/components/select.ts
3001
959
  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({
960
+ 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
961
  elevation: "positioned"
3004
962
  }), surfaceZIndex({
3005
963
  elevation,
@@ -3007,11 +965,11 @@ var selectContent = ({ elevation }, ...etc) => {
3007
965
  }), ...etc);
3008
966
  };
3009
967
  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);
968
+ 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
969
  var selectItemIndicator = (_props, ...etc) => mx("items-center", ...etc);
3012
970
  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);
971
+ var selectSeparator = (_props, ...etc) => mx("self-stretch border-b my-1 border-separator", ...etc);
972
+ var selectScrollButton = (_props, ...etc) => mx("dx-modal-surface flex items-center justify-center cursor-default h-6 w-full", ...etc);
3015
973
  var selectTheme = {
3016
974
  content: selectContent,
3017
975
  viewport: selectViewport,
@@ -3022,40 +980,54 @@ var selectTheme = {
3022
980
  scrollButton: selectScrollButton
3023
981
  };
3024
982
 
3025
- // src/styles/components/separator.ts
3026
- var separatorRoot = ({ orientation, subdued }, ...etc) => mx(orientation === "vertical" ? inlineSeparator : blockSeparator, subdued ? subduedSeparatorBorderColor : separatorBorderColor, ...etc);
983
+ // src/theme/components/splitter.ts
984
+ var splitterRoot = (_props, ...etc) => mx("relative h-full overflow-hidden", ...etc);
985
+ var splitterPanel = (_props, ...etc) => mx("absolute inset-x-0 flex flex-col overflow-hidden", ...etc);
986
+ var splitterTheme = {
987
+ root: splitterRoot,
988
+ panel: splitterPanel
989
+ };
990
+
991
+ // src/theme/components/separator.ts
992
+ 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
993
  var separatorTheme = {
3028
994
  root: separatorRoot
3029
995
  };
3030
996
 
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);
997
+ // src/theme/components/skeleton.ts
998
+ 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);
999
+ var skeletonTheme = {
1000
+ root: skeletonRoot
1001
+ };
1002
+
1003
+ // src/theme/components/status.ts
1004
+ 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);
1005
+ 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
1006
  var statusTheme = {
3035
1007
  root: statusRoot,
3036
1008
  bar: statusBar
3037
1009
  };
3038
1010
 
3039
- // src/styles/components/tag.ts
3040
- var tagRoot = ({ palette = "neutral" }, ...etc) => mx("dx-tag", ...etc);
1011
+ // src/theme/components/tag.ts
1012
+ var tagRoot = (_, ...etc) => mx("dx-tag", ...etc);
3041
1013
  var tagTheme = {
3042
1014
  root: tagRoot
3043
1015
  };
3044
1016
 
3045
- // src/styles/components/toast.ts
1017
+ // src/theme/components/toast.ts
3046
1018
  var toastViewport = (_props, ...etc) => mx(
3047
1019
  // 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",
1020
+ "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
1021
  "rounded-md flex flex-col gap-2",
3050
1022
  ...etc
3051
1023
  );
3052
- var toastRoot = (_props, ...etc) => mx("rounded-md flex p-2 gap-2", modalSurface, surfaceShadow({
1024
+ var toastRoot = (_props, ...etc) => mx("dx-modal-surface rounded-md flex p-2 gap-2", surfaceShadow({
3053
1025
  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);
1026
+ }), "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);
1027
+ var toastBody = (_props, ...etc) => mx("grow flex flex-col gap-1 justify-center pl-2", ...etc);
3056
1028
  var toastActions = (_props, ...etc) => mx("shrink-0 flex flex-col gap-1 justify-center", ...etc);
3057
1029
  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);
1030
+ var toastDescription = ({ srOnly }, ...etc) => mx("text-description", "shrink-0", srOnly && "sr-only", ...etc);
3059
1031
  var toastTheme = {
3060
1032
  viewport: toastViewport,
3061
1033
  root: toastRoot,
@@ -3065,73 +1037,69 @@ var toastTheme = {
3065
1037
  actions: toastActions
3066
1038
  };
3067
1039
 
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);
1040
+ // src/theme/components/toolbar.ts
1041
+ var toolbarLayout = "w-full shrink-0 flex flex-nowrap p-1 gap-1 items-center overflow-x-auto scrollbar-none dx-contain-layout";
1042
+ var toolbarRoot = ({ density, disabled, layoutManaged }, ...etc) => {
1043
+ return mx("bg-toolbar-surface dx-toolbar", density === "coarse" && "h-(--dx-rail-size) px-3!", disabled && "*:opacity-20", !layoutManaged && toolbarLayout, ...etc);
1044
+ };
1045
+ var toolbarText = (_, ...etc) => {
1046
+ return mx("px-2 grow truncate items-center", ...etc);
3079
1047
  };
3080
1048
  var toolbarTheme = {
3081
1049
  root: toolbarRoot,
3082
- inner: toolbarInner
1050
+ text: toolbarText
3083
1051
  };
3084
1052
 
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({
1053
+ // src/theme/components/tooltip.ts
1054
+ 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
1055
  elevation: "positioned"
3088
1056
  }), surfaceZIndex({
3089
1057
  elevation,
3090
1058
  level: "tooltip"
3091
- }), chromeText, ...etc);
3092
- var tooltipArrow = (_props, ...etc) => mx("fill-inverseSurface", ...etc);
1059
+ }), ...etc);
1060
+ var tooltipArrow = (_props, ...etc) => mx("fill-inverse-surface", ...etc);
3093
1061
  var tooltipTheme = {
3094
1062
  content: tooltipContent,
3095
1063
  arrow: tooltipArrow
3096
1064
  };
3097
1065
 
3098
- // src/styles/components/treegrid.ts
1066
+ // src/theme/components/treegrid.ts
3099
1067
  var levelStyles = /* @__PURE__ */ new Map([
3100
1068
  [
3101
1069
  1,
3102
- "[&>.indent:first-of-type]:pis-0 font-medium"
1070
+ "[&>.indent:first-of-type]:pl-0 font-medium"
3103
1071
  ],
3104
1072
  [
3105
1073
  2,
3106
- "[&>.indent:first-of-type]:pis-0"
1074
+ "[&>.indent:first-of-type]:pl-0"
3107
1075
  ],
3108
1076
  [
3109
1077
  3,
3110
- "[&>.indent:first-of-type]:pis-1"
1078
+ "[&>.indent:first-of-type]:pl-1"
3111
1079
  ],
3112
1080
  [
3113
1081
  4,
3114
- "[&>.indent:first-of-type]:pis-2"
1082
+ "[&>.indent:first-of-type]:pl-2"
3115
1083
  ],
3116
1084
  [
3117
1085
  5,
3118
- "[&>.indent:first-of-type]:pis-3"
1086
+ "[&>.indent:first-of-type]:pl-3"
3119
1087
  ],
3120
1088
  [
3121
1089
  6,
3122
- "[&>.indent:first-of-type]:pis-4"
1090
+ "[&>.indent:first-of-type]:pl-4"
3123
1091
  ],
3124
1092
  [
3125
1093
  7,
3126
- "[&>.indent:first-of-type]:pis-5"
1094
+ "[&>.indent:first-of-type]:pl-5"
3127
1095
  ],
3128
1096
  [
3129
1097
  8,
3130
- "[&>.indent:first-of-type]:pis-6"
1098
+ "[&>.indent:first-of-type]:pl-6"
3131
1099
  ]
3132
1100
  ]);
3133
1101
  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);
1102
+ var treegridRow = ({ level = 1 }, ...etc) => mx(levelStyles.get(Math.min(Math.max(Math.round(level), 1), 8)), ...etc);
3135
1103
  var treegridCell = ({ indent }, ...etc) => mx(indent && "indent", ...etc);
3136
1104
  var treegridTheme = {
3137
1105
  root: treegridRoot,
@@ -3139,15 +1107,67 @@ var treegridTheme = {
3139
1107
  cell: treegridCell
3140
1108
  };
3141
1109
 
3142
- // src/styles/theme.ts
3143
- import { get } from "@dxos/util";
1110
+ // src/theme/primitives/column.ts
1111
+ var columnRoot = (_, ...etc) => {
1112
+ return mx("dx-column grid", ...etc);
1113
+ };
1114
+ var columnContent = (_, ...etc) => {
1115
+ return mx("col-span-full grid grid-cols-subgrid min-h-0 [&>:not(.dx-container)]:col-start-2", ...etc);
1116
+ };
1117
+ var columnViewport = (_, ...etc) => {
1118
+ return mx(...etc);
1119
+ };
1120
+ var columnRow = ({ fullWidth, center }, ...etc) => {
1121
+ return mx("col-span-3 grid grid-cols-subgrid", fullWidth ? "col-span-3" : center && "col-start-2 col-span-1", ...etc);
1122
+ };
1123
+ var columnTheme = {
1124
+ root: columnRoot,
1125
+ content: columnContent,
1126
+ viewport: columnViewport,
1127
+ row: columnRow
1128
+ };
1129
+
1130
+ // src/theme/primitives/panel.ts
1131
+ var sizes = {
1132
+ lg: "h-(--dx-topbar-size)",
1133
+ md: "h-(--dx-toolbar-size)",
1134
+ sm: "h-(--dx-statusbar-size)"
1135
+ };
1136
+ var panelRoot = (_, ...etc) => mx(
1137
+ // prettier-ignore
1138
+ "dx-container grid grid-cols-[100%] overflow-hidden",
1139
+ // Add uncategorized children to content slot.
1140
+ "[&>*:not([data-slot])]:[grid-area:content]",
1141
+ ...etc
1142
+ );
1143
+ var panelToolbar = ({ size = "md" }, ...etc) => mx("[grid-area:toolbar]", "shrink-0", sizes[size], ...etc);
1144
+ var panelContent = (_, ...etc) => mx("[grid-area:content] min-h-0", ...etc);
1145
+ var panelStatusbar = ({ size = "md" }, ...etc) => mx("[grid-area:statusbar]", "shrink-0", sizes[size], ...etc);
1146
+ var panelTheme = {
1147
+ root: panelRoot,
1148
+ toolbar: panelToolbar,
1149
+ content: panelContent,
1150
+ statusbar: panelStatusbar
1151
+ };
1152
+
1153
+ // src/theme/theme.ts
1154
+ import { getDeep } from "@dxos/util";
3144
1155
  var defaultTheme = {
3145
1156
  themeName: () => "default",
3146
- anchoredOverflow: anchoredOverflowTheme,
1157
+ //
1158
+ // Primitives
1159
+ //
1160
+ column: columnTheme,
1161
+ panel: panelTheme,
1162
+ //
1163
+ // Components
1164
+ //
3147
1165
  avatar: avatarTheme,
3148
1166
  breadcrumb: breadcrumbTheme,
3149
1167
  button: buttonTheme,
1168
+ card: cardTheme,
3150
1169
  dialog: dialogTheme,
1170
+ focus: focusTheme,
3151
1171
  icon: iconTheme,
3152
1172
  iconButton: iconButtonTheme,
3153
1173
  input: inputTheme,
@@ -3157,9 +1177,11 @@ var defaultTheme = {
3157
1177
  message: messageTheme,
3158
1178
  menu: menuTheme,
3159
1179
  popover: popoverTheme,
3160
- select: selectTheme,
3161
1180
  scrollArea: scrollAreaTheme,
1181
+ select: selectTheme,
3162
1182
  separator: separatorTheme,
1183
+ skeleton: skeletonTheme,
1184
+ splitter: splitterTheme,
3163
1185
  status: statusTheme,
3164
1186
  tag: tagTheme,
3165
1187
  toast: toastTheme,
@@ -3168,23 +1190,13 @@ var defaultTheme = {
3168
1190
  treegrid: treegridTheme
3169
1191
  };
3170
1192
  var bindTheme = (theme) => {
3171
- return (path, defaultClassName, styleProps, ...options) => {
3172
- const result = get(theme, path);
3173
- return typeof result === "function" ? result(styleProps, ...options) : defaultClassName;
1193
+ return (path, styleProps, ...etc) => {
1194
+ const result = getDeep(theme, path.split("."));
1195
+ return typeof result === "function" ? result(styleProps ?? {}, ...etc) : void 0;
3174
1196
  };
3175
1197
  };
3176
1198
  var defaultTx = bindTheme(defaultTheme);
3177
-
3178
- // src/index.ts
3179
- var tokens = tailwindConfig({}).theme;
3180
- var osTranslations = "dxos.org/i18n/os";
3181
1199
  export {
3182
- accentSurface,
3183
- activeSurface,
3184
- anchoredOverflowAnchor,
3185
- anchoredOverflowRoot,
3186
- anchoredOverflowTheme,
3187
- attentionSurface,
3188
1200
  avatarDescription,
3189
1201
  avatarFallbackText,
3190
1202
  avatarFrame,
@@ -3196,104 +1208,68 @@ export {
3196
1208
  avatarRoot,
3197
1209
  avatarStatusIcon,
3198
1210
  avatarTheme,
3199
- baseSurface,
3200
1211
  bindTheme,
3201
- blockSeparator,
3202
1212
  bottombarBlockPaddingEnd,
3203
- bounceLayout,
3204
1213
  breadcrumbCurrent,
3205
1214
  breadcrumbList,
3206
1215
  breadcrumbListItem,
3207
1216
  breadcrumbRoot,
3208
1217
  breadcrumbSeparator,
3209
1218
  breadcrumbTheme,
3210
- buttonGroup,
3211
- buttonRoot,
3212
1219
  buttonTheme,
3213
1220
  cardDefaultInlineSize,
1221
+ cardMaxBlockSize,
3214
1222
  cardMaxInlineSize,
1223
+ cardMinBlockSize,
3215
1224
  cardMinInlineSize,
3216
- chromeText,
1225
+ cardTheme,
3217
1226
  coarseBlockSize,
3218
- coarseButtonDimensions,
3219
- coarseButtonPadding,
3220
1227
  coarseDimensions,
3221
- coarseTextPadding,
3222
- computeSize,
3223
- contentShadow,
1228
+ columnTheme,
1229
+ composable,
1230
+ composableProps,
3224
1231
  dataDisabled,
3225
1232
  defaultButtonColors,
3226
1233
  defaultTheme,
3227
1234
  defaultTx,
3228
1235
  densityBlockSize,
3229
1236
  descriptionMessage,
3230
- descriptionText,
3231
1237
  descriptionTextPrimary,
1238
+ dialogActionBar,
1239
+ dialogBody,
3232
1240
  dialogContent,
3233
1241
  dialogDescription,
3234
1242
  dialogHeader,
3235
1243
  dialogOverlay,
3236
1244
  dialogTheme,
3237
1245
  dialogTitle,
3238
- dropRing,
3239
- dropRingInner,
3240
- errorInputValence,
3241
- errorMessageColors,
3242
- errorText,
3243
1246
  fineBlockSize,
3244
- fineButtonDimensions,
3245
- fineButtonPadding,
3246
1247
  fineDimensions,
3247
- fineTextPadding,
3248
- fixedInsetFlexLayout,
3249
- focusRing,
1248
+ focusTheme,
3250
1249
  getHashHue,
3251
1250
  getHashStyles,
1251
+ getHeight,
3252
1252
  getSize,
3253
- getSizeHeight,
3254
- getSizeWidth,
3255
1253
  getStyles,
1254
+ getWidth,
3256
1255
  ghostButtonColors,
3257
1256
  ghostFocusWithin,
3258
- ghostHighlighted,
3259
1257
  ghostHover,
3260
- ghostSelected,
3261
- ghostSelectedContainerMd,
3262
- ghostSelectedCurrent,
3263
- ghostSelectedTrackingInterFromNormal,
3264
- group,
3265
- groupBorder,
3266
1258
  groupHoverControlItemWithTransition,
3267
- hoverColors,
3268
1259
  hoverableControlItem,
3269
- hoverableControlItemTransition,
3270
1260
  hoverableControls,
3271
- hoverableFocusedControls,
3272
1261
  hoverableFocusedKeyboardControls,
3273
1262
  hoverableFocusedWithinControls,
3274
1263
  hoverableOpenControlItem,
1264
+ hueShades,
3275
1265
  hues,
3276
1266
  iconButtonRoot,
3277
1267
  iconButtonTheme,
3278
1268
  iconRoot,
1269
+ iconSize,
3279
1270
  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
1271
  inputTextLabel,
3293
1272
  inputTheme,
3294
- inputValence,
3295
- inputValidation,
3296
- inputWithSegmentsInput,
3297
1273
  linkRoot,
3298
1274
  linkTheme,
3299
1275
  listItem,
@@ -3305,7 +1281,6 @@ export {
3305
1281
  listRoot,
3306
1282
  listTheme,
3307
1283
  mainContent,
3308
- mainDrawer,
3309
1284
  mainIntrinsicSize,
3310
1285
  mainOverlay,
3311
1286
  mainPadding,
@@ -3320,29 +1295,26 @@ export {
3320
1295
  menuTheme,
3321
1296
  menuViewport,
3322
1297
  messageContent,
1298
+ messageHeader,
3323
1299
  messageIcon,
3324
1300
  messageRoot,
3325
1301
  messageTheme,
3326
1302
  messageTitle,
3327
1303
  messageValence,
3328
- modalSurface,
3329
1304
  mx,
3330
- neutralInputValence,
3331
- neutralMessageColors,
3332
1305
  osTranslations,
3333
- placeholderText,
1306
+ palette,
1307
+ panelTheme,
3334
1308
  popoverArrow,
3335
1309
  popoverContent,
3336
1310
  popoverTheme,
3337
1311
  popoverViewport,
3338
- popperMotion,
3339
1312
  primaryButtonColors,
3340
- scrollAreaCorner,
1313
+ roles,
3341
1314
  scrollAreaRoot,
3342
- scrollAreaScrollbar,
3343
1315
  scrollAreaTheme,
3344
- scrollAreaThumb,
3345
1316
  scrollAreaViewport,
1317
+ scrollbar,
3346
1318
  selectArrow,
3347
1319
  selectContent,
3348
1320
  selectItem,
@@ -3351,38 +1323,26 @@ export {
3351
1323
  selectSeparator,
3352
1324
  selectTheme,
3353
1325
  selectViewport,
3354
- separatorBorderColor,
3355
1326
  separatorRoot,
3356
1327
  separatorTheme,
3357
- shimmer,
3358
- sidebarBorder,
3359
- sidebarSurface,
3360
- sizeHeightMap,
1328
+ sizeToRem,
3361
1329
  sizeValue,
3362
- sizeWidthMap,
1330
+ skeletonRoot,
1331
+ skeletonTheme,
1332
+ slottable,
1333
+ snapSize,
1334
+ splitterTheme,
3363
1335
  staticDefaultButtonColors,
3364
1336
  staticDisabled,
3365
- staticFocusRing,
3366
- staticGhostSelected,
3367
- staticGhostSelectedCurrent,
3368
- staticHoverableControls,
3369
- staticPlaceholderText,
3370
1337
  statusBar,
3371
1338
  statusRoot,
3372
1339
  statusTheme,
3373
- strongShimmer,
3374
- styles,
3375
- subduedFocus,
3376
- subduedSeparatorBorderColor,
3377
1340
  subtleHover,
3378
- successInputValence,
3379
- successMessageColors,
3380
- successText,
3381
1341
  surfaceShadow,
3382
1342
  surfaceZIndex,
3383
1343
  tagRoot,
3384
1344
  tagTheme,
3385
- textBlockWidth,
1345
+ textValence,
3386
1346
  toastActions,
3387
1347
  toastBody,
3388
1348
  toastDescription,
@@ -3390,11 +1350,9 @@ export {
3390
1350
  toastTheme,
3391
1351
  toastTitle,
3392
1352
  toastViewport,
3393
- tokens,
3394
- toolbarInactive,
3395
- toolbarInner,
3396
1353
  toolbarLayout,
3397
1354
  toolbarRoot,
1355
+ toolbarText,
3398
1356
  toolbarTheme,
3399
1357
  tooltipArrow,
3400
1358
  tooltipContent,
@@ -3403,11 +1361,6 @@ export {
3403
1361
  treegridCell,
3404
1362
  treegridRoot,
3405
1363
  treegridRow,
3406
- treegridTheme,
3407
- userDefaultTokenSet,
3408
- valenceColorText,
3409
- warningInputValence,
3410
- warningMessageColors,
3411
- warningText
1364
+ treegridTheme
3412
1365
  };
3413
1366
  //# sourceMappingURL=index.mjs.map