@dxos/ui-theme 0.8.4-main.fbb7a13 → 0.8.4-staging.ac66bdf99f

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