@dxos/ui-theme 0.8.4-main.2244d791bb → 0.8.4-main.3fbcb4aa9b

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