@dxos/ui-theme 0.8.4-main.1068cf700f → 0.8.4-main.1c7ec43d41

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