@dxos/ui-theme 0.8.4-main.ef1bc66f44 → 0.8.4-main.fcfe5033a5

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