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

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