aeon-ui-engine 1.0.3 → 1.2.0

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 (365) hide show
  1. package/CHANGELOG.md +34 -0
  2. package/CONSUMER.md +82 -40
  3. package/README.md +47 -16
  4. package/package.json +9 -2
  5. package/packages/cli/README.md +17 -0
  6. package/packages/cli/dist/bin.d.ts +1 -0
  7. package/packages/cli/dist/bin.js +35 -0
  8. package/packages/cli/dist/chunk-IW5NT2Z2.js +103 -0
  9. package/packages/cli/dist/index.d.ts +10 -0
  10. package/packages/cli/dist/index.js +6 -0
  11. package/packages/cli/node_modules/.bin/esbuild +21 -0
  12. package/packages/cli/node_modules/.bin/jiti +21 -0
  13. package/packages/cli/node_modules/.bin/tsc +21 -0
  14. package/packages/cli/node_modules/.bin/tsserver +21 -0
  15. package/packages/cli/node_modules/.bin/tsup +21 -0
  16. package/packages/cli/node_modules/.bin/tsup-node +21 -0
  17. package/packages/cli/node_modules/.bin/tsx +21 -0
  18. package/packages/cli/node_modules/.bin/vite +21 -0
  19. package/packages/cli/node_modules/.bin/vitest +21 -0
  20. package/packages/cli/package.json +50 -0
  21. package/packages/cli/src/bin.ts +34 -0
  22. package/packages/cli/src/index.ts +1 -0
  23. package/packages/cli/src/init.ts +107 -0
  24. package/packages/cli/tsconfig.json +10 -0
  25. package/packages/core/README.md +7 -1
  26. package/packages/core/dist/index.d.ts +255 -7
  27. package/packages/core/dist/index.js +372 -2
  28. package/packages/core/node_modules/.bin/esbuild +4 -4
  29. package/packages/core/node_modules/.bin/vite +4 -4
  30. package/packages/core/node_modules/.bin/vitest +2 -2
  31. package/packages/core/node_modules/.vite/vitest/da39a3ee5e6b4b0d3255bfef95601890afd80709/results.json +1 -1
  32. package/packages/core/package.json +17 -5
  33. package/packages/core/src/anatomy.ts +234 -5
  34. package/packages/core/src/brand-theme.ts +172 -0
  35. package/packages/core/src/index.ts +1 -0
  36. package/packages/core/src/machine.test.ts +62 -1
  37. package/packages/core/src/machine.ts +93 -0
  38. package/packages/core/src/theme.ts +105 -0
  39. package/packages/panda/aeon.css +8 -0
  40. package/packages/panda/package.json +1 -1
  41. package/packages/panda/panda.config.ts +58 -1
  42. package/packages/panda/src/recipes/app-shell.ts +137 -0
  43. package/packages/panda/src/recipes/avatar.ts +131 -0
  44. package/packages/panda/src/recipes/bar.ts +206 -0
  45. package/packages/panda/src/recipes/button-group.ts +12 -4
  46. package/packages/panda/src/recipes/button.ts +1 -0
  47. package/packages/panda/src/recipes/combobox.ts +2 -1
  48. package/packages/panda/src/recipes/composer.ts +81 -0
  49. package/packages/panda/src/recipes/content.ts +104 -0
  50. package/packages/panda/src/recipes/conversation.ts +106 -0
  51. package/packages/panda/src/recipes/entry.ts +217 -0
  52. package/packages/panda/src/recipes/field.ts +12 -2
  53. package/packages/panda/src/recipes/floating.ts +26 -13
  54. package/packages/panda/src/recipes/identity.ts +73 -0
  55. package/packages/panda/src/recipes/index.ts +15 -0
  56. package/packages/panda/src/recipes/list-row.ts +109 -0
  57. package/packages/panda/src/recipes/metric-strip.ts +80 -0
  58. package/packages/panda/src/recipes/nav.ts +155 -0
  59. package/packages/panda/src/recipes/panel.ts +156 -0
  60. package/packages/panda/src/recipes/pin-input.ts +3 -2
  61. package/packages/panda/src/recipes/profile-header.ts +120 -0
  62. package/packages/panda/src/recipes/select.ts +2 -1
  63. package/packages/panda/src/recipes/slider.ts +6 -4
  64. package/packages/panda/src/recipes/theme-switcher.ts +110 -0
  65. package/packages/panda/src/recipes/thread.ts +88 -0
  66. package/packages/panda/src/theme/catalog-types.ts +2 -0
  67. package/packages/panda/src/theme/catalog.ts +23 -0
  68. package/packages/panda/src/theme/chrome.css +2 -1
  69. package/packages/panda/src/theme/consumer-shell.css +129 -0
  70. package/packages/panda/src/theme/electron.css +30 -0
  71. package/packages/panda/src/theme/global-theme-css.ts +9 -0
  72. package/packages/panda/src/theme/omarchy.themes.ts +607 -0
  73. package/packages/panda/src/theme/palette.ts +3 -0
  74. package/packages/panda/src/theme/scrollbars.css +58 -21
  75. package/packages/panda/src/theme/themes.config.ts +39 -1
  76. package/packages/panda/styled-system/css/conditions.mjs +1 -1
  77. package/packages/panda/styled-system/css/css.mjs +1 -1
  78. package/packages/panda/styled-system/css/sva.mjs +9 -4
  79. package/packages/panda/styled-system/helpers.mjs +11 -22
  80. package/packages/panda/styled-system/jsx/create-style-context.d.ts +54 -0
  81. package/packages/panda/styled-system/jsx/create-style-context.mjs +121 -0
  82. package/packages/panda/styled-system/jsx/factory.mjs +14 -5
  83. package/packages/panda/styled-system/jsx/index.d.ts +1 -0
  84. package/packages/panda/styled-system/jsx/index.mjs +1 -0
  85. package/packages/panda/styled-system/jsx/is-valid-prop.mjs +2 -2
  86. package/packages/panda/styled-system/patterns/aspect-ratio.d.ts +0 -1
  87. package/packages/panda/styled-system/patterns/bleed.d.ts +0 -1
  88. package/packages/panda/styled-system/patterns/box.d.ts +0 -1
  89. package/packages/panda/styled-system/patterns/center.d.ts +0 -1
  90. package/packages/panda/styled-system/patterns/circle.d.ts +0 -1
  91. package/packages/panda/styled-system/patterns/container.d.ts +0 -1
  92. package/packages/panda/styled-system/patterns/cq.d.ts +0 -1
  93. package/packages/panda/styled-system/patterns/divider.d.ts +0 -1
  94. package/packages/panda/styled-system/patterns/flex.d.ts +0 -1
  95. package/packages/panda/styled-system/patterns/float.d.ts +0 -1
  96. package/packages/panda/styled-system/patterns/grid-item.d.ts +0 -1
  97. package/packages/panda/styled-system/patterns/grid.d.ts +0 -1
  98. package/packages/panda/styled-system/patterns/grid.mjs +1 -1
  99. package/packages/panda/styled-system/patterns/hstack.d.ts +0 -1
  100. package/packages/panda/styled-system/patterns/hstack.mjs +1 -1
  101. package/packages/panda/styled-system/patterns/link-overlay.d.ts +0 -1
  102. package/packages/panda/styled-system/patterns/spacer.d.ts +0 -1
  103. package/packages/panda/styled-system/patterns/spacer.mjs +6 -2
  104. package/packages/panda/styled-system/patterns/square.d.ts +0 -1
  105. package/packages/panda/styled-system/patterns/stack.d.ts +0 -1
  106. package/packages/panda/styled-system/patterns/stack.mjs +1 -1
  107. package/packages/panda/styled-system/patterns/visually-hidden.d.ts +0 -1
  108. package/packages/panda/styled-system/patterns/vstack.d.ts +0 -1
  109. package/packages/panda/styled-system/patterns/vstack.mjs +1 -1
  110. package/packages/panda/styled-system/patterns/wrap.d.ts +0 -1
  111. package/packages/panda/styled-system/patterns/wrap.mjs +1 -1
  112. package/packages/panda/styled-system/recipes/aeon-accordion.d.ts +4 -3
  113. package/packages/panda/styled-system/recipes/aeon-accordion.mjs +1 -0
  114. package/packages/panda/styled-system/recipes/aeon-app-shell.d.ts +34 -0
  115. package/packages/panda/styled-system/recipes/aeon-app-shell.mjs +70 -0
  116. package/packages/panda/styled-system/recipes/aeon-async.d.ts +4 -3
  117. package/packages/panda/styled-system/recipes/aeon-async.mjs +1 -0
  118. package/packages/panda/styled-system/recipes/aeon-avatar.d.ts +36 -0
  119. package/packages/panda/styled-system/recipes/aeon-avatar.mjs +57 -0
  120. package/packages/panda/styled-system/recipes/aeon-badge.d.ts +3 -0
  121. package/packages/panda/styled-system/recipes/aeon-bar.d.ts +40 -0
  122. package/packages/panda/styled-system/recipes/aeon-bar.mjs +77 -0
  123. package/packages/panda/styled-system/recipes/aeon-button-group.d.ts +3 -2
  124. package/packages/panda/styled-system/recipes/aeon-button.d.ts +3 -2
  125. package/packages/panda/styled-system/recipes/aeon-checkbox.d.ts +4 -1
  126. package/packages/panda/styled-system/recipes/aeon-checkbox.mjs +1 -0
  127. package/packages/panda/styled-system/recipes/aeon-combobox.d.ts +4 -3
  128. package/packages/panda/styled-system/recipes/aeon-combobox.mjs +1 -0
  129. package/packages/panda/styled-system/recipes/aeon-composer.d.ts +31 -0
  130. package/packages/panda/styled-system/recipes/aeon-composer.mjs +45 -0
  131. package/packages/panda/styled-system/recipes/aeon-content.d.ts +34 -0
  132. package/packages/panda/styled-system/recipes/aeon-content.mjs +70 -0
  133. package/packages/panda/styled-system/recipes/aeon-conversation.d.ts +31 -0
  134. package/packages/panda/styled-system/recipes/aeon-conversation.mjs +61 -0
  135. package/packages/panda/styled-system/recipes/aeon-dialog.d.ts +4 -1
  136. package/packages/panda/styled-system/recipes/aeon-dialog.mjs +1 -0
  137. package/packages/panda/styled-system/recipes/aeon-entry.d.ts +38 -0
  138. package/packages/panda/styled-system/recipes/aeon-entry.mjs +100 -0
  139. package/packages/panda/styled-system/recipes/aeon-field.d.ts +4 -3
  140. package/packages/panda/styled-system/recipes/aeon-field.mjs +1 -0
  141. package/packages/panda/styled-system/recipes/aeon-identity.d.ts +36 -0
  142. package/packages/panda/styled-system/recipes/aeon-identity.mjs +63 -0
  143. package/packages/panda/styled-system/recipes/aeon-list-row.d.ts +33 -0
  144. package/packages/panda/styled-system/recipes/aeon-list-row.mjs +49 -0
  145. package/packages/panda/styled-system/recipes/aeon-menu.d.ts +4 -1
  146. package/packages/panda/styled-system/recipes/aeon-menu.mjs +1 -0
  147. package/packages/panda/styled-system/recipes/aeon-metric-strip.d.ts +36 -0
  148. package/packages/panda/styled-system/recipes/aeon-metric-strip.mjs +54 -0
  149. package/packages/panda/styled-system/recipes/aeon-nav.d.ts +38 -0
  150. package/packages/panda/styled-system/recipes/aeon-nav.mjs +69 -0
  151. package/packages/panda/styled-system/recipes/aeon-panel.d.ts +34 -0
  152. package/packages/panda/styled-system/recipes/aeon-panel.mjs +58 -0
  153. package/packages/panda/styled-system/recipes/aeon-pin-input.d.ts +4 -1
  154. package/packages/panda/styled-system/recipes/aeon-pin-input.mjs +1 -0
  155. package/packages/panda/styled-system/recipes/aeon-popover.d.ts +4 -1
  156. package/packages/panda/styled-system/recipes/aeon-popover.mjs +1 -0
  157. package/packages/panda/styled-system/recipes/aeon-profile-header.d.ts +36 -0
  158. package/packages/panda/styled-system/recipes/aeon-profile-header.mjs +62 -0
  159. package/packages/panda/styled-system/recipes/aeon-progress.d.ts +4 -1
  160. package/packages/panda/styled-system/recipes/aeon-progress.mjs +1 -0
  161. package/packages/panda/styled-system/recipes/aeon-radio-group.d.ts +4 -1
  162. package/packages/panda/styled-system/recipes/aeon-radio-group.mjs +1 -0
  163. package/packages/panda/styled-system/recipes/aeon-scroll.d.ts +4 -3
  164. package/packages/panda/styled-system/recipes/aeon-scroll.mjs +1 -0
  165. package/packages/panda/styled-system/recipes/aeon-select.d.ts +4 -3
  166. package/packages/panda/styled-system/recipes/aeon-select.mjs +1 -0
  167. package/packages/panda/styled-system/recipes/aeon-separator.d.ts +4 -1
  168. package/packages/panda/styled-system/recipes/aeon-separator.mjs +1 -0
  169. package/packages/panda/styled-system/recipes/aeon-slider.d.ts +4 -1
  170. package/packages/panda/styled-system/recipes/aeon-slider.mjs +1 -0
  171. package/packages/panda/styled-system/recipes/aeon-switch.d.ts +4 -1
  172. package/packages/panda/styled-system/recipes/aeon-switch.mjs +1 -0
  173. package/packages/panda/styled-system/recipes/aeon-tabs.d.ts +4 -1
  174. package/packages/panda/styled-system/recipes/aeon-tabs.mjs +1 -0
  175. package/packages/panda/styled-system/recipes/aeon-theme-switcher.d.ts +34 -0
  176. package/packages/panda/styled-system/recipes/aeon-theme-switcher.mjs +59 -0
  177. package/packages/panda/styled-system/recipes/aeon-thread.d.ts +31 -0
  178. package/packages/panda/styled-system/recipes/aeon-thread.mjs +53 -0
  179. package/packages/panda/styled-system/recipes/aeon-toast.d.ts +4 -1
  180. package/packages/panda/styled-system/recipes/aeon-toast.mjs +1 -0
  181. package/packages/panda/styled-system/recipes/aeon-tooltip.d.ts +4 -1
  182. package/packages/panda/styled-system/recipes/aeon-tooltip.mjs +1 -0
  183. package/packages/panda/styled-system/recipes/index.d.ts +16 -1
  184. package/packages/panda/styled-system/recipes/index.mjs +16 -1
  185. package/packages/panda/styled-system/styles.css +2317 -450
  186. package/packages/panda/styled-system/tokens/index.mjs +43 -7
  187. package/packages/panda/styled-system/tokens/tokens.d.ts +5 -5
  188. package/packages/panda/styled-system/types/composition.d.ts +86 -23
  189. package/packages/panda/styled-system/types/conditions.d.ts +34 -10
  190. package/packages/panda/styled-system/types/csstype.d.ts +6405 -5133
  191. package/packages/panda/styled-system/types/jsx.d.ts +27 -10
  192. package/packages/panda/styled-system/types/pattern.d.ts +4 -4
  193. package/packages/panda/styled-system/types/prop-type.d.ts +11 -1
  194. package/packages/panda/styled-system/types/style-props.d.ts +2763 -2165
  195. package/packages/panda/styled-system/types/system-types.d.ts +38 -80
  196. package/packages/panda/theme-runtime.css +945 -0
  197. package/packages/primitives/dist/chunk-4NOKRUSG.js +81 -0
  198. package/packages/primitives/dist/chunk-R25CUHNF.js +46 -0
  199. package/packages/primitives/dist/chunk-RO2DMFN5.js +89 -0
  200. package/packages/primitives/dist/chunk-V5D7LS4J.js +61 -0
  201. package/packages/primitives/dist/chunk-YBPNI2LI.js +70 -0
  202. package/packages/primitives/dist/index.d.ts +5 -0
  203. package/packages/primitives/dist/index.js +46 -14
  204. package/packages/primitives/dist/machines/app-nav.d.ts +96 -0
  205. package/packages/primitives/dist/machines/app-nav.js +12 -0
  206. package/packages/primitives/dist/machines/app-shell.d.ts +57 -0
  207. package/packages/primitives/dist/machines/app-shell.js +8 -0
  208. package/packages/primitives/dist/machines/async.d.ts +4 -4
  209. package/packages/primitives/dist/machines/content-region.d.ts +72 -0
  210. package/packages/primitives/dist/machines/content-region.js +8 -0
  211. package/packages/primitives/dist/machines/panel.d.ts +50 -0
  212. package/packages/primitives/dist/machines/panel.js +6 -0
  213. package/packages/primitives/dist/machines/sticky-bar.d.ts +62 -0
  214. package/packages/primitives/dist/machines/sticky-bar.js +8 -0
  215. package/packages/primitives/node_modules/.bin/esbuild +21 -0
  216. package/packages/primitives/node_modules/.bin/vite +21 -0
  217. package/packages/primitives/node_modules/.bin/vitest +2 -2
  218. package/packages/primitives/node_modules/.vite/vitest/da39a3ee5e6b4b0d3255bfef95601890afd80709/results.json +1 -1
  219. package/packages/primitives/package.json +15 -5
  220. package/packages/primitives/scripts/xstate-introspect.mjs +35 -0
  221. package/packages/primitives/src/__tests__/app-nav.test.ts +30 -0
  222. package/packages/primitives/src/index.ts +5 -0
  223. package/packages/primitives/src/machines/app-nav.ts +107 -0
  224. package/packages/primitives/src/machines/app-shell.ts +63 -0
  225. package/packages/primitives/src/machines/content-region.ts +107 -0
  226. package/packages/primitives/src/machines/panel.ts +71 -0
  227. package/packages/primitives/src/machines/sticky-bar.ts +89 -0
  228. package/packages/react/dist/index.d.ts +536 -17
  229. package/packages/react/dist/index.js +2163 -479
  230. package/packages/react/node_modules/.bin/esbuild +21 -0
  231. package/packages/react/node_modules/.bin/vite +21 -0
  232. package/packages/react/node_modules/.bin/vitest +2 -2
  233. package/packages/react/node_modules/.vite/vitest/da39a3ee5e6b4b0d3255bfef95601890afd80709/results.json +1 -1
  234. package/packages/react/package.json +18 -7
  235. package/packages/react/src/app-nav/index.tsx +249 -0
  236. package/packages/react/src/app-shell/index.tsx +154 -0
  237. package/packages/react/src/async/index.tsx +6 -1
  238. package/packages/react/src/async/map-content-state.ts +18 -0
  239. package/packages/react/src/avatar/index.tsx +23 -1
  240. package/packages/react/src/bar/index.tsx +101 -0
  241. package/packages/react/src/button/index.tsx +4 -2
  242. package/packages/react/src/composer/index.tsx +75 -0
  243. package/packages/react/src/content/index.tsx +149 -0
  244. package/packages/react/src/conversation/index.tsx +78 -0
  245. package/packages/react/src/entry/index.tsx +85 -0
  246. package/packages/react/src/field/index.tsx +31 -18
  247. package/packages/react/src/hooks/use-fit-text.ts +59 -0
  248. package/packages/react/src/identity/index.tsx +110 -0
  249. package/packages/react/src/index.ts +19 -0
  250. package/packages/react/src/list-row/index.tsx +80 -0
  251. package/packages/react/src/metric-strip/index.tsx +88 -0
  252. package/packages/react/src/nav/index.tsx +155 -0
  253. package/packages/react/src/panel/index.tsx +267 -0
  254. package/packages/react/src/profile-header/index.tsx +91 -0
  255. package/packages/react/src/prompt/index.tsx +161 -0
  256. package/packages/react/src/radio-group/index.tsx +19 -7
  257. package/packages/react/src/slider/index.tsx +3 -1
  258. package/packages/react/src/status-banner/index.tsx +84 -0
  259. package/packages/react/src/sticky-bar/index.tsx +135 -0
  260. package/packages/react/src/switch/index.tsx +7 -1
  261. package/packages/react/src/theme-switcher/index.tsx +227 -0
  262. package/packages/react/src/thread/index.tsx +95 -0
  263. package/packages/react/src/toast/primitives.tsx +2 -2
  264. package/packages/react/src/tooltip/tooltip.test.tsx +9 -1
  265. package/packages/react/tsconfig.json +2 -1
  266. package/packages/schemas/README.md +52 -0
  267. package/packages/schemas/dist/index.d.ts +287 -0
  268. package/packages/schemas/dist/index.js +701 -0
  269. package/packages/schemas/json/accordion.json +132 -0
  270. package/packages/schemas/json/async.json +161 -0
  271. package/packages/schemas/json/button.json +170 -0
  272. package/packages/schemas/json/catalog.json +2299 -0
  273. package/packages/schemas/json/checkbox.json +136 -0
  274. package/packages/schemas/json/combobox.json +130 -0
  275. package/packages/schemas/json/dialog.json +154 -0
  276. package/packages/schemas/json/field.json +171 -0
  277. package/packages/schemas/json/menu.json +138 -0
  278. package/packages/schemas/json/popover.json +133 -0
  279. package/packages/schemas/json/progress.json +137 -0
  280. package/packages/schemas/json/scroll.json +129 -0
  281. package/packages/schemas/json/select.json +140 -0
  282. package/packages/schemas/json/switch.json +136 -0
  283. package/packages/schemas/json/tabs.json +135 -0
  284. package/packages/schemas/json/toast.json +141 -0
  285. package/packages/schemas/json/tooltip.json +123 -0
  286. package/packages/schemas/node_modules/.bin/esbuild +21 -0
  287. package/packages/schemas/node_modules/.bin/jiti +21 -0
  288. package/packages/schemas/node_modules/.bin/tsc +21 -0
  289. package/packages/schemas/node_modules/.bin/tsserver +21 -0
  290. package/packages/schemas/node_modules/.bin/tsup +21 -0
  291. package/packages/schemas/node_modules/.bin/tsup-node +21 -0
  292. package/packages/schemas/node_modules/.bin/tsx +21 -0
  293. package/packages/schemas/node_modules/.bin/vite +21 -0
  294. package/packages/schemas/node_modules/.bin/vitest +21 -0
  295. package/packages/schemas/node_modules/.vite/vitest/da39a3ee5e6b4b0d3255bfef95601890afd80709/results.json +1 -0
  296. package/packages/schemas/package.json +56 -0
  297. package/packages/schemas/prompts/cursorrules.md +64 -0
  298. package/packages/schemas/prompts/statecharts.md +31 -0
  299. package/packages/schemas/prompts/system.md +30 -0
  300. package/packages/schemas/registry/catalog.json +54 -0
  301. package/packages/schemas/registry/components/accordion.json +132 -0
  302. package/packages/schemas/registry/components/async.json +161 -0
  303. package/packages/schemas/registry/components/button.json +170 -0
  304. package/packages/schemas/registry/components/checkbox.json +136 -0
  305. package/packages/schemas/registry/components/combobox.json +130 -0
  306. package/packages/schemas/registry/components/dialog.json +154 -0
  307. package/packages/schemas/registry/components/field.json +171 -0
  308. package/packages/schemas/registry/components/menu.json +138 -0
  309. package/packages/schemas/registry/components/popover.json +133 -0
  310. package/packages/schemas/registry/components/progress.json +137 -0
  311. package/packages/schemas/registry/components/scroll.json +129 -0
  312. package/packages/schemas/registry/components/select.json +140 -0
  313. package/packages/schemas/registry/components/switch.json +136 -0
  314. package/packages/schemas/registry/components/tabs.json +135 -0
  315. package/packages/schemas/registry/components/toast.json +141 -0
  316. package/packages/schemas/registry/components/tooltip.json +123 -0
  317. package/packages/schemas/registry/machines/async.json +219 -0
  318. package/packages/schemas/registry/machines/buttonLifecycle.json +224 -0
  319. package/packages/schemas/registry/machines/dialog.json +143 -0
  320. package/packages/schemas/registry/machines/field.json +275 -0
  321. package/packages/schemas/scripts/emit.ts +61 -0
  322. package/packages/schemas/src/aeon-to-schema.test.ts +70 -0
  323. package/packages/schemas/src/aeon-to-schema.ts +206 -0
  324. package/packages/schemas/src/agent-bridge.ts +82 -0
  325. package/packages/schemas/src/components.ts +307 -0
  326. package/packages/schemas/src/index.test.ts +25 -0
  327. package/packages/schemas/src/index.ts +25 -0
  328. package/packages/schemas/src/prompts.ts +121 -0
  329. package/packages/schemas/src/registry.ts +73 -0
  330. package/packages/schemas/src/schema-builder.ts +87 -0
  331. package/packages/schemas/tsconfig.json +9 -0
  332. package/packages/solid/package.json +2 -2
  333. package/packages/svelte/node_modules/.bin/esbuild +21 -0
  334. package/packages/svelte/node_modules/.bin/vite +4 -4
  335. package/packages/svelte/package.json +15 -5
  336. package/packages/ui/README.md +19 -6
  337. package/packages/ui/dist/index.d.ts +254 -9
  338. package/packages/ui/dist/index.js +690 -139
  339. package/packages/ui/src/app-nav.tsx +2 -0
  340. package/packages/ui/src/app-shell.tsx +44 -0
  341. package/packages/ui/src/async.tsx +2 -1
  342. package/packages/ui/src/avatar.tsx +35 -0
  343. package/packages/ui/src/bar.tsx +34 -0
  344. package/packages/ui/src/composer.tsx +27 -0
  345. package/packages/ui/src/content.tsx +43 -0
  346. package/packages/ui/src/conversation.tsx +43 -0
  347. package/packages/ui/src/entry.tsx +76 -0
  348. package/packages/ui/src/field.tsx +5 -0
  349. package/packages/ui/src/identity.tsx +35 -0
  350. package/packages/ui/src/index.ts +20 -0
  351. package/packages/ui/src/list-row.tsx +30 -0
  352. package/packages/ui/src/metric-strip.tsx +29 -0
  353. package/packages/ui/src/nav.tsx +46 -0
  354. package/packages/ui/src/panel.tsx +39 -0
  355. package/packages/ui/src/profile-header.tsx +35 -0
  356. package/packages/ui/src/prompt.tsx +29 -0
  357. package/packages/ui/src/status-banner.tsx +1 -0
  358. package/packages/ui/src/sticky-bar.tsx +42 -0
  359. package/packages/ui/src/switch.tsx +17 -4
  360. package/packages/ui/src/theme-switcher.tsx +41 -0
  361. package/packages/ui/src/thread.tsx +35 -0
  362. package/packages/vue/package.json +3 -3
  363. package/scripts/vite-aliases.mjs +65 -3
  364. package/scripts/xstate-introspect.mjs +68 -0
  365. package/packages/react/src/async/legacy-region.tsx +0 -38
@@ -3,34 +3,34 @@
3
3
  @layer reset{
4
4
  html,:host {
5
5
  --font-fallback: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji';
6
+ line-height: 1.5;
6
7
  -webkit-text-size-adjust: 100%;
7
8
  -webkit-font-smoothing: antialiased;
8
9
  -moz-osx-font-smoothing: grayscale;
9
10
  -moz-tab-size: 4;
10
11
  tab-size: 4;
11
- -webkit-tap-highlight-color: transparent;
12
- line-height: 1.5;
13
12
  font-family: var(--global-font-body, var(--font-fallback));
13
+ -webkit-tap-highlight-color: transparent;
14
14
  }
15
15
 
16
16
  *,::before,::after,::backdrop,::file-selector-button {
17
17
  margin: 0px;
18
18
  padding: 0px;
19
- box-sizing: border-box;
20
19
  border-width: 0px;
21
20
  border-style: solid;
22
21
  border-color: var(--global-color-border, currentcolor);
22
+ box-sizing: border-box;
23
23
  }
24
24
 
25
25
  hr {
26
- height: 0px;
27
26
  color: inherit;
27
+ height: 0px;
28
28
  border-top-width: 1px;
29
29
  }
30
30
 
31
31
  body {
32
- height: 100%;
33
32
  line-height: inherit;
33
+ height: 100%;
34
34
  }
35
35
 
36
36
  img {
@@ -68,16 +68,16 @@
68
68
 
69
69
  button,input,optgroup,select,textarea,::file-selector-button {
70
70
  font: inherit;
71
+ background: var(--colors-transparent);
71
72
  font-feature-settings: inherit;
72
73
  font-variation-settings: inherit;
73
74
  letter-spacing: inherit;
74
75
  color: inherit;
75
- background: var(--colors-transparent);
76
76
  }
77
77
 
78
78
  ::placeholder {
79
- opacity: 1;
80
79
  --placeholder-fallback: rgba(0, 0, 0, 0.5);
80
+ opacity: 1;
81
81
  color: var(--global-color-placeholder, var(--placeholder-fallback));
82
82
  }
83
83
 
@@ -87,14 +87,18 @@
87
87
  }
88
88
  }
89
89
 
90
+ ::selection {
91
+ background-color: var(--global-color-selection, rgba(0, 115, 255, 0.3));
92
+ }
93
+
90
94
  textarea {
91
95
  resize: vertical;
92
96
  }
93
97
 
94
98
  table {
99
+ border-color: inherit;
95
100
  text-indent: 0px;
96
101
  border-collapse: collapse;
97
- border-color: inherit;
98
102
  }
99
103
 
100
104
  summary {
@@ -106,10 +110,10 @@
106
110
  }
107
111
 
108
112
  sub,sup {
109
- position: relative;
110
- vertical-align: baseline;
111
113
  font-size: 75%;
112
114
  line-height: 0;
115
+ position: relative;
116
+ vertical-align: baseline;
113
117
  }
114
118
 
115
119
  sub {
@@ -125,8 +129,8 @@
125
129
  }
126
130
 
127
131
  a {
128
- color: inherit;
129
132
  text-decoration: inherit;
133
+ color: inherit;
130
134
  }
131
135
 
132
136
  abbr:where([title]) {
@@ -139,10 +143,10 @@
139
143
 
140
144
  code,kbd,samp,pre {
141
145
  --font-mono-fallback: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New';
142
- font-feature-settings: normal;
143
- font-variation-settings: normal;
144
146
  font-family: var(--global-font-mono, var(--font-mono-fallback));
145
147
  font-size: 1em;
148
+ font-feature-settings: normal;
149
+ font-variation-settings: normal;
146
150
  }
147
151
 
148
152
  progress {
@@ -183,8 +187,8 @@
183
187
  margin: var(--spacing-0);
184
188
  background: var(--colors-bg);
185
189
  color: var(--colors-fg);
186
- -webkit-font-smoothing: antialiased;
187
190
  font-family: var(--fonts-body);
191
+ -webkit-font-smoothing: antialiased;
188
192
  }
189
193
 
190
194
  :root {
@@ -242,8 +246,8 @@
242
246
  }
243
247
 
244
248
  [data-aeon-scope="button"][data-aeon-part="group"] {
245
- display: inline-flex;
246
249
  gap: 0.5rem;
250
+ display: inline-flex;
247
251
  align-items: center;
248
252
  flex-wrap: wrap;
249
253
  }
@@ -266,8 +270,8 @@
266
270
  }
267
271
 
268
272
  [data-aeon-scope="button"][data-aeon-part="root"][data-aeon-state="failure"] {
269
- color: var(--colors-danger);
270
273
  border-color: var(--colors-danger);
274
+ color: var(--colors-danger);
271
275
  }
272
276
 
273
277
  [data-aeon-part="readout"][data-aeon-state="loading"] [data-aeon-part="readoutRail"] {
@@ -288,37 +292,37 @@
288
292
  }
289
293
 
290
294
  [data-aeon-part="readout"] {
291
- display: flex;
292
- width: 100%;
293
- min-height: 5.5rem;
294
- border-radius: var(--radii-lg);
295
- overflow: hidden;
296
295
  background: var(--colors-bg);
297
- align-items: stretch;
298
296
  border-width: 1px;
299
297
  border-style: solid;
300
298
  border-color: var(--colors-border);
299
+ border-radius: var(--radii-lg);
300
+ overflow: hidden;
301
+ display: flex;
302
+ align-items: stretch;
303
+ width: 100%;
304
+ min-height: 5.5rem;
301
305
  }
302
306
 
303
307
  [data-aeon-part="readoutRail"] {
304
- flex: 0 0 4px;
305
308
  background: var(--colors-border);
309
+ flex: 0 0 4px;
306
310
  align-self: stretch;
307
311
  }
308
312
 
309
313
  [data-aeon-part="readoutBody"] {
310
314
  flex: 1 1 auto;
311
- min-width: var(--sizes-0);
312
- display: flex;
313
315
  padding-inline: var(--spacing-pad-md);
314
316
  padding-block: var(--spacing-pad-md);
317
+ display: flex;
315
318
  align-items: center;
319
+ min-width: var(--sizes-0);
316
320
  }
317
321
 
318
322
  [data-aeon-part="readoutBody"] > * {
319
323
  margin: var(--spacing-0);
320
- max-width: 100%;
321
324
  line-height: 1.5;
325
+ max-width: 100%;
322
326
  }
323
327
 
324
328
  [data-aeon-part="track"] [data-aeon-part="segment"] {
@@ -331,11 +335,15 @@
331
335
  border-color: var(--colors-danger);
332
336
  }
333
337
 
334
- [data-aeon-scope="field"][data-aeon-state*="submission:pending"] [data-aeon-part="control"] {
338
+ [data-aeon-scope="field"][data-aeon-state="pending"] [data-aeon-part="control"],[data-aeon-scope="field"][data-aeon-submission="pending"] [data-aeon-part="control"] {
335
339
  opacity: 0.7;
336
340
  pointer-events: none;
337
341
  }
338
342
 
343
+ [data-aeon-scope="field"][data-aeon-state="invalid"] [data-aeon-part="control"],[data-aeon-scope="field"][data-aeon-validation="invalid"] [data-aeon-part="control"] {
344
+ border-color: var(--colors-danger);
345
+ }
346
+
339
347
  @keyframes aeonProgressIndeterminate {
340
348
  0% {
341
349
  transform: translateX(-100%);
@@ -344,6 +352,18 @@
344
352
  100% {
345
353
  transform: translateX(250%);
346
354
  }
355
+ }
356
+
357
+ @keyframes aeonToastIn {
358
+ 0% {
359
+ opacity: 0;
360
+ transform: translateY(0.5rem) scale(0.96);
361
+ }
362
+
363
+ 100% {
364
+ opacity: 1;
365
+ transform: translateY(0) scale(1);
366
+ }
347
367
  }
348
368
 
349
369
  [data-aeon-scope="radioGroup"] [data-aeon-part="item"] {
@@ -444,8 +464,8 @@
444
464
  --font-sizes-7xl: 4.5rem;
445
465
  --font-sizes-8xl: 6rem;
446
466
  --font-sizes-9xl: 8rem;
447
- --blurs-sm: 4px;
448
- --blurs-base: 8px;
467
+ --blurs-xs: 4px;
468
+ --blurs-sm: 8px;
449
469
  --blurs-md: 12px;
450
470
  --blurs-lg: 16px;
451
471
  --blurs-xl: 24px;
@@ -485,6 +505,8 @@
485
505
  --sizes-1\.5: 0.375rem;
486
506
  --sizes-2\.5: 0.625rem;
487
507
  --sizes-3\.5: 0.875rem;
508
+ --sizes-4\.5: 1.125rem;
509
+ --sizes-5\.5: 1.375rem;
488
510
  --sizes-xs: 20rem;
489
511
  --sizes-sm: 24rem;
490
512
  --sizes-md: 28rem;
@@ -773,13 +795,16 @@
773
795
  --radii-md: 0.5rem;
774
796
  --radii-lg: 0.625rem;
775
797
  --radii-site-lg: 10px;
798
+ --shadows-2xs: 0 1px rgb(0 0 0 / 0.05);
776
799
  --shadows-xs: 0 1px 2px 0 rgb(0 0 0 / 0.05);
777
800
  --shadows-sm: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1);
778
801
  --shadows-md: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);
779
802
  --shadows-lg: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
780
803
  --shadows-xl: 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1);
781
804
  --shadows-2xl: 0 25px 50px -12px rgb(0 0 0 / 0.25);
782
- --shadows-inner: inset 0 2px 4px 0 rgb(0 0 0 / 0.05);
805
+ --shadows-inset-2xs: inset 0 1px rgb(0 0 0 / 0.05);
806
+ --shadows-inset-xs: inset 0 1px 1px rgb(0 0 0 / 0.05);
807
+ --shadows-inset-sm: inset 0 2px 4px rgb(0 0 0 / 0.05);
783
808
  --shadows-panel: 0 8px 32px #00000066;
784
809
  --shadows-focus-ring: 0 0 0 2px #0c0e12, 0 0 0 4px #5eead4;
785
810
  --spacing-0: 0rem;
@@ -816,6 +841,8 @@
816
841
  --spacing-1\.5: 0.375rem;
817
842
  --spacing-2\.5: 0.625rem;
818
843
  --spacing-3\.5: 0.875rem;
844
+ --spacing-4\.5: 1.125rem;
845
+ --spacing-5\.5: 1.375rem;
819
846
  --spacing-control-x: 0.75rem;
820
847
  --spacing-control-y: 0.375rem;
821
848
  --spacing-control-x-sm: 0.625rem;
@@ -899,28 +926,27 @@
899
926
 
900
927
  .aeonBadge {
901
928
  border-radius: var(--radii-sm);
902
- letter-spacing: 0.06em;
903
- text-transform: uppercase;
929
+ border-width: 1px;
930
+ border-style: solid;
904
931
  padding-block: var(--spacing-badge-y);
905
932
  padding-inline: var(--spacing-badge-x);
906
933
  align-self: flex-start;
907
934
  font-size: 0.6875rem;
908
935
  font-weight: var(--font-weights-semibold);
909
- border-width: 1px;
910
- border-style: solid;
911
936
  line-height: 1.2;
937
+ letter-spacing: 0.06em;
938
+ text-transform: uppercase;
912
939
  }
913
940
 
914
941
  .aeonBadge,.aeonButton {
915
942
  display: inline-flex;
916
- white-space: nowrap;
917
943
  align-items: center;
918
944
  font-family: var(--fonts-ui);
945
+ white-space: nowrap;
919
946
  }
920
947
 
921
948
  .aeonButton {
922
949
  gap: var(--spacing-2);
923
- cursor: pointer;
924
950
  outline: var(--borders-none);
925
951
  justify-content: center;
926
952
  align-self: center;
@@ -930,9 +956,11 @@
930
956
  transition-property: color, background-color, border-color, box-shadow, transform;
931
957
  --transition-duration: var(--durations-normal);
932
958
  transition-duration: var(--durations-normal);
959
+ cursor: pointer;
960
+ flex-shrink: 0;
933
961
  }
934
962
 
935
- .aeonButton:is(:disabled, [disabled], [data-disabled]) {
963
+ .aeonButton:is(:disabled, [disabled], [data-disabled], [aria-disabled=true]) {
936
964
  opacity: 0.4;
937
965
  pointer-events: none;
938
966
  }
@@ -946,31 +974,38 @@
946
974
  }
947
975
 
948
976
  .aeonButtonGroup {
949
- display: inline-flex;
950
977
  gap: 0.5rem;
951
- vertical-align: middle;
978
+ display: inline-flex;
952
979
  flex-wrap: wrap;
953
980
  align-items: center;
954
981
  justify-content: flex-start;
982
+ vertical-align: middle;
983
+ min-width: var(--sizes-0);
984
+ max-width: 100%;
985
+ }
986
+
987
+ .aeonButtonGroup > * {
988
+ flex-shrink: 0;
989
+ min-width: var(--sizes-0);
955
990
  }
956
991
  }
957
992
 
958
993
  .aeonBadge--variant_default {
959
994
  background: var(--colors-surface-raised);
960
- color: var(--colors-muted);
961
995
  border-color: var(--colors-border);
996
+ color: var(--colors-muted);
962
997
  }
963
998
 
964
999
  .aeonBadge--variant_accent {
965
1000
  background: var(--colors-accent-dim);
966
- color: var(--colors-accent);
967
1001
  border-color: var(--colors-accent);
1002
+ color: var(--colors-accent);
968
1003
  }
969
1004
 
970
1005
  .aeonBadge--variant_danger {
971
1006
  background: var(--colors-danger-dim);
972
- color: var(--colors-danger);
973
1007
  border-color: var(--colors-danger);
1008
+ color: var(--colors-danger);
974
1009
  }
975
1010
 
976
1011
  .aeonButton--variant_solid {
@@ -986,41 +1021,41 @@
986
1021
  border-radius: var(--radii-md);
987
1022
  padding-block: 0.4375rem;
988
1023
  padding-inline: 0.875rem;
989
- min-height: controlMinHMd;
990
1024
  font-size: 0.875rem;
1025
+ min-height: controlMinHMd;
991
1026
  }
992
1027
 
993
1028
  .aeonButton--size_sm {
994
1029
  border-radius: var(--radii-sm);
995
1030
  padding-block: var(--spacing-control-y);
996
1031
  padding-inline: var(--spacing-control-x);
997
- min-height: controlMinHSm;
998
1032
  font-size: 0.8125rem;
1033
+ min-height: controlMinHSm;
999
1034
  }
1000
1035
 
1001
1036
  .aeonButton--size_xs {
1002
1037
  border-radius: var(--radii-sm);
1003
1038
  padding-block: var(--spacing-control-y-sm);
1004
1039
  padding-inline: var(--spacing-control-x-sm);
1005
- min-height: controlMinHXs;
1006
1040
  font-size: 0.75rem;
1007
1041
  font-weight: var(--font-weights-semibold);
1042
+ min-height: controlMinHXs;
1008
1043
  }
1009
1044
 
1010
1045
  .aeonButton--size_lg {
1011
1046
  border-radius: var(--radii-md);
1012
1047
  padding-block: var(--spacing-inset-y-sm);
1013
1048
  padding-inline: var(--spacing-inset-x-sm);
1014
- min-height: controlMinHLg;
1015
1049
  font-size: 0.9375rem;
1050
+ min-height: controlMinHLg;
1016
1051
  }
1017
1052
 
1018
1053
  .aeonButton--variant_outline {
1019
1054
  background: var(--colors-transparent);
1020
- color: var(--colors-fg);
1021
1055
  border-width: 1px;
1022
1056
  border-style: solid;
1023
1057
  border-color: var(--colors-border);
1058
+ color: var(--colors-fg);
1024
1059
  }
1025
1060
 
1026
1061
  .aeonButton--variant_outline:is(:hover, [data-hover]) {
@@ -1033,12 +1068,12 @@
1033
1068
  }
1034
1069
 
1035
1070
  .aeonButton--variant_ghost:is(:hover, [data-hover]) {
1036
- color: var(--colors-fg);
1037
1071
  background: var(--colors-surface-raised);
1072
+ color: var(--colors-fg);
1038
1073
  }
1039
1074
 
1040
1075
  .aeonButtonGroup--gap_sm {
1041
- gap: var(--spacing-gap-sm);
1076
+ gap: 0.5rem;
1042
1077
  }
1043
1078
  }
1044
1079
 
@@ -1046,44 +1081,44 @@
1046
1081
  @layer _base{
1047
1082
 
1048
1083
  .aeonAccordion__root {
1049
- display: flex;
1050
1084
  gap: var(--spacing-accordion-gap);
1085
+ display: flex;
1051
1086
  flex-direction: column;
1052
1087
  font-family: var(--fonts-ui);
1053
1088
  }
1054
1089
 
1055
1090
  .aeonAccordion__item {
1056
- border-radius: var(--radii-md);
1057
1091
  background: var(--colors-surface);
1092
+ border-radius: var(--radii-md);
1058
1093
  border-width: 1px;
1059
1094
  border-style: solid;
1060
1095
  border-color: var(--colors-border);
1061
1096
  }
1062
1097
 
1063
1098
  .aeonAccordion__itemTrigger {
1064
- width: 100%;
1065
- display: flex;
1099
+ font: inherit;
1100
+ background: var(--colors-surface);
1066
1101
  gap: var(--spacing-gap-lg);
1067
- text-align: left;
1068
- color: var(--colors-fg);
1069
1102
  padding-inline: var(--spacing-accordion-inset-x);
1070
1103
  padding-block: var(--spacing-accordion-trigger-y);
1071
- min-height: accordionTriggerMinH;
1072
- cursor: pointer;
1073
- appearance: none;
1074
- -webkit-appearance: none;
1075
- font: inherit;
1076
- background: var(--colors-surface);
1077
1104
  outline: var(--borders-none);
1105
+ display: flex;
1078
1106
  align-items: center;
1079
1107
  justify-content: space-between;
1108
+ text-align: left;
1080
1109
  font-size: var(--font-sizes-md);
1081
1110
  font-weight: var(--font-weights-medium);
1082
1111
  line-height: var(--line-heights-snug);
1112
+ color: var(--colors-fg);
1113
+ cursor: pointer;
1114
+ appearance: none;
1115
+ -webkit-appearance: none;
1083
1116
  --transition-prop: background-color;
1084
1117
  transition-property: background-color;
1085
1118
  --transition-duration: var(--durations-normal);
1086
1119
  transition-duration: var(--durations-normal);
1120
+ width: 100%;
1121
+ min-height: accordionTriggerMinH;
1087
1122
  border-top-left-radius: var(--radii-md);
1088
1123
  border-top-right-radius: var(--radii-md);
1089
1124
  }
@@ -1102,15 +1137,15 @@
1102
1137
  }
1103
1138
 
1104
1139
  .aeonAccordion__itemContent {
1105
- position: relative;
1106
- display: flex;
1107
- gap: var(--spacing-gap-sm);
1108
- color: var(--colors-muted);
1109
1140
  background: var(--colors-surface);
1141
+ gap: var(--spacing-gap-sm);
1110
1142
  padding-inline: var(--spacing-accordion-inset-x);
1143
+ position: relative;
1144
+ display: flex;
1111
1145
  flex-direction: column;
1112
1146
  align-items: stretch;
1113
1147
  font-size: var(--font-sizes-sm);
1148
+ color: var(--colors-muted);
1114
1149
  line-height: 1.55;
1115
1150
  padding-top: var(--spacing-pad-md);
1116
1151
  padding-bottom: var(--spacing-pad-md);
@@ -1123,26 +1158,132 @@
1123
1158
  }
1124
1159
 
1125
1160
  .aeonAccordion__itemContent::before {
1126
- position: absolute;
1127
- height: 1px;
1128
1161
  background: var(--colors-border);
1129
1162
  content: "";
1163
+ position: absolute;
1130
1164
  top: var(--spacing-0);
1131
1165
  left: var(--spacing-accordion-inset-x);
1132
1166
  right: var(--spacing-accordion-inset-x);
1167
+ height: 1px;
1133
1168
  }
1134
1169
 
1135
1170
  .aeonAccordion__itemIndicator {
1136
- color: var(--colors-muted);
1137
1171
  padding-inline: var(--spacing-1);
1138
1172
  flex-shrink: 0;
1173
+ color: var(--colors-muted);
1139
1174
  font-size: var(--font-sizes-sm);
1140
1175
  line-height: 1;
1141
1176
  }
1142
1177
 
1143
- .aeonAsync__root {
1178
+ .aeonAppShell__root {
1179
+ background: var(--colors-bg);
1180
+ display: flex;
1181
+ flex-direction: column;
1182
+ position: relative;
1183
+ color: var(--colors-fg);
1184
+ min-height: 100dvh;
1185
+ width: 100%;
1186
+ }
1187
+
1188
+ .aeonAppShell__root[data-aeon-state=overlayOpen] [data-aeon-part=content] {
1189
+ pointer-events: none;
1190
+ filter: blur(2px);
1191
+ opacity: 0.92;
1192
+ }
1193
+
1194
+ .aeonAppShell__header {
1195
+ background: var(--colors-surface);
1196
+ position: relative;
1197
+ flex-shrink: 0;
1198
+ z-index: 50;
1199
+ color: var(--colors-fg);
1200
+ width: 100%;
1201
+ border-bottom-width: 1px;
1202
+ border-bottom-color: var(--colors-border);
1203
+ }
1204
+
1205
+ .aeonAppShell__header [data-aeon-scope=bar] {
1206
+ background: var(--colors-transparent);
1207
+ position: relative;
1208
+ top: auto;
1209
+ left: auto;
1210
+ right: auto;
1211
+ }
1212
+
1213
+ .aeonAppShell__header:has([data-aeon-scope=bar] [data-aeon-part=seam]) {
1214
+ border-bottom-width: 0;
1215
+ }
1216
+
1217
+ .aeonAppShell__subheader {
1218
+ position: sticky;
1219
+ z-index: 36;
1220
+ top: var(--aeon-bar-offset, 4rem);
1221
+ width: 100%;
1222
+ }
1223
+
1224
+ .aeonAppShell__content {
1225
+ flex: 1 1 auto;
1226
+ padding-inline: 0.85rem;
1227
+ padding-block: 0.85rem;
1228
+ display: flex;
1229
+ flex-direction: column;
1230
+ --transition-prop: filter, opacity;
1231
+ transition-property: filter, opacity;
1232
+ --transition-duration: 0.2s;
1233
+ transition-duration: 0.2s;
1234
+ min-width: var(--sizes-0);
1235
+ min-height: var(--sizes-0);
1236
+ }
1237
+
1238
+ .aeonAppShell__aside {
1239
+ overflow: auto;
1240
+ position: sticky;
1241
+ z-index: 34;
1242
+ align-self: start;
1243
+ top: var(--aeon-bar-offset, 4rem);
1244
+ max-height: calc(100dvh - var(--aeon-bar-offset, 4rem));
1245
+ }
1246
+
1247
+ .aeonAppShell__footer {
1248
+ width: 100%;
1249
+ }
1250
+
1251
+ .aeonAppShell__dock {
1252
+ background: var(--colors-surface);
1253
+ padding-inline: 0.55rem;
1254
+ position: fixed;
1255
+ z-index: 55;
1144
1256
  display: flex;
1257
+ align-items: center;
1258
+ justify-content: center;
1259
+ color: var(--colors-fg);
1260
+ left: var(--spacing-0);
1261
+ right: var(--spacing-0);
1262
+ bottom: var(--spacing-0);
1263
+ padding-top: 0.4rem;
1264
+ padding-bottom: calc(0.4rem + env(safe-area-inset-bottom, 0px));
1265
+ border-top-width: 1px;
1266
+ border-top-color: var(--colors-border);
1267
+ }
1268
+
1269
+ .aeonAppShell__dock > [data-aeon-scope=nav],.aeonAppShell__dock > [data-aeon-part=root] {
1270
+ width: 100%;
1271
+ max-width: 22rem;
1272
+ }
1273
+
1274
+ .aeonAppShell__scrim {
1275
+ inset: var(--spacing-0);
1276
+ --mix-background: color-mix(in srgb, var(--colors-black) 40%, transparent);
1277
+ background: var(--mix-background, var(--colors-black));
1278
+ position: fixed;
1279
+ z-index: 45;
1280
+ backdrop-filter: blur(2px);
1281
+ -webkit-backdrop-filter: blur(2px);
1282
+ }
1283
+
1284
+ .aeonAsync__root {
1145
1285
  gap: var(--spacing-gap-lg);
1286
+ display: flex;
1146
1287
  flex-direction: column;
1147
1288
  }
1148
1289
 
@@ -1150,64 +1291,61 @@
1150
1291
  --aeon-state-track-count: 5;
1151
1292
  container-type: inline-size;
1152
1293
  display: grid;
1153
- width: 100%;
1154
- letter-spacing: clamp(0.02em, 0.12cqi, 0.06em);
1155
- text-transform: uppercase;
1156
1294
  grid-template-columns: repeat(var(--aeon-state-track-count), minmax(0, 1fr));
1157
1295
  align-items: stretch;
1158
1296
  font-family: var(--fonts-mono);
1159
1297
  font-size: clamp(0.5rem, 3cqi, 0.6875rem);
1160
1298
  font-weight: var(--font-weights-semibold);
1299
+ letter-spacing: clamp(0.02em, 0.12cqi, 0.06em);
1300
+ text-transform: uppercase;
1161
1301
  line-height: 1.2;
1302
+ width: 100%;
1162
1303
  }
1163
1304
 
1164
1305
  .aeonAsync__segment {
1165
- min-width: var(--sizes-0);
1166
1306
  padding-block: var(--spacing-2\.5);
1167
1307
  padding-inline: clamp(0.15rem, 2.5cqi, 0.85rem);
1168
- color: var(--colors-muted);
1169
- white-space: nowrap;
1170
1308
  align-items: center;
1171
1309
  justify-content: center;
1172
- border-width: 1px;
1173
- border-style: solid;
1174
- border-color: var(--colors-border);
1310
+ color: var(--colors-muted);
1311
+ white-space: nowrap;
1312
+ min-width: var(--sizes-0);
1175
1313
  }
1176
1314
 
1177
1315
  .aeonAsync__segment,.aeonAsync__readout {
1178
- display: flex;
1179
1316
  background: var(--colors-bg);
1317
+ border-width: 1px;
1318
+ border-style: solid;
1319
+ border-color: var(--colors-border);
1320
+ display: flex;
1180
1321
  }
1181
1322
 
1182
1323
  .aeonAsync__readout {
1183
- width: 100%;
1184
- min-height: 5.5rem;
1185
1324
  border-radius: var(--radii-lg);
1186
1325
  overflow: hidden;
1187
1326
  align-items: stretch;
1188
- border-width: 1px;
1189
- border-style: solid;
1190
- border-color: var(--colors-border);
1327
+ width: 100%;
1328
+ min-height: 5.5rem;
1191
1329
  }
1192
1330
 
1193
1331
  .aeonAsync__readoutRail {
1194
- flex: 0 0 4px;
1195
1332
  background: var(--colors-border);
1333
+ flex: 0 0 4px;
1196
1334
  align-self: stretch;
1197
- --transition-prop: background;
1198
- transition-property: background;
1335
+ --transition-prop: background, background-color, background-image, background-position;
1336
+ transition-property: background, background-color, background-image, background-position;
1199
1337
  --transition-duration: var(--durations-normal);
1200
1338
  transition-duration: var(--durations-normal);
1201
1339
  }
1202
1340
 
1203
1341
  .aeonAsync__readoutBody {
1204
1342
  flex: 1 1 auto;
1205
- min-width: var(--sizes-0);
1206
- display: flex;
1207
1343
  padding-inline: var(--spacing-pad-md);
1208
1344
  padding-block: var(--spacing-pad-md);
1345
+ display: flex;
1209
1346
  align-items: center;
1210
1347
  line-height: 1.5;
1348
+ min-width: var(--sizes-0);
1211
1349
  }
1212
1350
 
1213
1351
  .aeonAsync__actions {
@@ -1215,47 +1353,187 @@
1215
1353
  flex-wrap: wrap;
1216
1354
  }
1217
1355
 
1218
- .aeonAsync__actions,.aeonCheckbox__root {
1356
+ .aeonAsync__actions,.aeonAvatar__root {
1219
1357
  display: inline-flex;
1220
1358
  align-items: center;
1221
1359
  }
1222
1360
 
1223
- .aeonCheckbox__root {
1224
- gap: var(--spacing-gap-lg);
1361
+ .aeonAvatar__root {
1362
+ border-radius: 9999px;
1363
+ overflow: visible;
1364
+ justify-content: center;
1365
+ vertical-align: middle;
1366
+ position: relative;
1367
+ flex-shrink: 0;
1368
+ aspect-ratio: 1 / 1;
1225
1369
  font-family: var(--fonts-ui);
1226
- line-height: 1.5;
1370
+ box-sizing: border-box;
1227
1371
  }
1228
1372
 
1229
- .aeonCheckbox__root,.aeonCheckbox__control {
1230
- cursor: pointer;
1231
- vertical-align: middle;
1373
+ .aeonAvatar__image {
1374
+ display: block;
1375
+ object-fit: cover;
1232
1376
  }
1233
1377
 
1234
- .aeonCheckbox__control {
1235
- margin: var(--spacing-0);
1236
- padding: var(--spacing-0);
1237
- font: inherit;
1238
- color: inherit;
1239
- box-sizing: border-box;
1240
- appearance: none;
1241
- -webkit-appearance: none;
1242
- width: 1.5rem;
1243
- height: 1.5rem;
1244
- border-radius: var(--radii-md);
1378
+ .aeonAvatar__image,.aeonAvatar__fallback {
1379
+ border-radius: 9999px;
1380
+ overflow: hidden;
1381
+ width: 100%;
1382
+ height: 100%;
1383
+ }
1384
+
1385
+ .aeonAvatar__fallback {
1386
+ background: var(--colors-surface-raised);
1387
+ padding-inline: 0.15rem;
1388
+ display: flex;
1389
+ align-items: center;
1390
+ justify-content: center;
1391
+ box-sizing: border-box;
1392
+ font-weight: var(--font-weights-semibold);
1393
+ letter-spacing: -0.04em;
1394
+ line-height: 1;
1395
+ text-transform: uppercase;
1396
+ color: var(--colors-fg);
1397
+ -webkit-user-select: none;
1398
+ user-select: none;
1399
+ }
1400
+
1401
+ .aeonAvatar__badge {
1402
+ background: var(--colors-muted);
1403
+ border-radius: 9999px;
1404
+ border-width: 2px;
1405
+ border-color: var(--colors-bg);
1406
+ position: absolute;
1407
+ bottom: var(--spacing-0);
1408
+ right: var(--spacing-0);
1409
+ }
1410
+
1411
+ .aeonAvatar__badge[data-aeon-state=active] {
1412
+ background: var(--colors-accent);
1413
+ }
1414
+
1415
+ .aeonAvatar__badge[data-aeon-state=away] {
1416
+ background: var(--colors-accent-dim);
1417
+ outline-width: 1px;
1418
+ outline-style: solid;
1419
+ outline-color: var(--colors-accent);
1420
+ }
1421
+
1422
+ .aeonAvatar__badge[data-aeon-state=busy] {
1423
+ background: var(--colors-danger);
1424
+ }
1425
+
1426
+ .aeonAvatar__badge[data-aeon-state=offline] {
1427
+ background: var(--colors-border);
1428
+ }
1429
+
1430
+ .aeonAvatar__badge[data-aeon-state=idle] {
1431
+ background: var(--colors-muted);
1432
+ }
1433
+
1434
+ .aeonBar__root {
1245
1435
  background: var(--colors-surface);
1436
+ overflow: hidden;
1437
+ display: grid;
1438
+ grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
1439
+ align-items: center;
1440
+ column-gap: 0.5rem;
1441
+ position: relative;
1442
+ color: var(--colors-fg);
1443
+ width: 100%;
1444
+ min-width: var(--sizes-0);
1445
+ min-height: 2.75rem;
1446
+ }
1447
+
1448
+ .aeonBar__leading {
1449
+ justify-content: flex-start;
1450
+ justify-self: start;
1451
+ }
1452
+
1453
+ .aeonBar__leading,.aeonBar__center {
1454
+ gap: 0.5rem;
1455
+ overflow: hidden;
1456
+ display: flex;
1457
+ align-items: center;
1458
+ min-width: var(--sizes-0);
1459
+ }
1460
+
1461
+ .aeonBar__center {
1462
+ justify-content: center;
1463
+ justify-self: center;
1464
+ text-align: center;
1465
+ font-weight: var(--font-weights-semibold);
1466
+ font-size: 0.95rem;
1467
+ letter-spacing: -0.02em;
1468
+ white-space: nowrap;
1469
+ text-overflow: ellipsis;
1470
+ max-width: 100%;
1471
+ }
1472
+
1473
+ .aeonBar__trailing {
1474
+ gap: 0.5rem;
1475
+ overflow: hidden;
1476
+ display: flex;
1477
+ align-items: center;
1478
+ justify-content: flex-end;
1479
+ justify-self: end;
1480
+ min-width: var(--sizes-0);
1481
+ }
1482
+
1483
+ .aeonBar__seam {
1484
+ background: var(--colors-border);
1485
+ position: absolute;
1486
+ pointer-events: none;
1487
+ left: var(--spacing-0);
1488
+ right: var(--spacing-0);
1489
+ bottom: var(--spacing-0);
1490
+ height: 1px;
1491
+ }
1492
+
1493
+ .aeonBar__seam[data-aeon-state=docked] {
1494
+ opacity: 1;
1495
+ }
1496
+
1497
+ .aeonBar__seam[data-aeon-state=floating] {
1498
+ opacity: 0.4;
1499
+ }
1500
+
1501
+ .aeonCheckbox__root {
1502
+ gap: var(--spacing-gap-lg);
1503
+ font-family: var(--fonts-ui);
1504
+ line-height: 1.5;
1505
+ }
1506
+
1507
+ .aeonCheckbox__root,.aeonCheckbox__control {
1246
1508
  display: inline-flex;
1247
- outline: var(--borders-none);
1248
- line-height: 1;
1249
- flex-shrink: 0;
1509
+ align-items: center;
1510
+ cursor: pointer;
1511
+ vertical-align: middle;
1512
+ }
1513
+
1514
+ .aeonCheckbox__control {
1515
+ margin: var(--spacing-0);
1516
+ padding: var(--spacing-0);
1517
+ font: inherit;
1518
+ background: var(--colors-surface);
1519
+ border-radius: var(--radii-md);
1250
1520
  border-width: 1px;
1251
1521
  border-style: solid;
1252
1522
  border-color: var(--colors-border);
1253
- align-items: center;
1523
+ outline: var(--borders-none);
1524
+ line-height: 1;
1525
+ color: inherit;
1526
+ box-sizing: border-box;
1527
+ appearance: none;
1528
+ -webkit-appearance: none;
1529
+ flex-shrink: 0;
1254
1530
  justify-content: center;
1255
1531
  --transition-prop: background-color, border-color;
1256
1532
  transition-property: background-color, border-color;
1257
1533
  --transition-duration: var(--durations-normal);
1258
1534
  transition-duration: var(--durations-normal);
1535
+ width: 1.5rem;
1536
+ height: 1.5rem;
1259
1537
  }
1260
1538
 
1261
1539
  .aeonCheckbox__control[data-aeon-state~="checked"] {
@@ -1274,10 +1552,10 @@
1274
1552
  }
1275
1553
 
1276
1554
  .aeonCheckbox__label {
1555
+ font-size: var(--font-sizes-sm);
1277
1556
  color: var(--colors-fg);
1278
1557
  -webkit-user-select: none;
1279
1558
  user-select: none;
1280
- font-size: var(--font-sizes-sm);
1281
1559
  line-height: 1.5;
1282
1560
  }
1283
1561
 
@@ -1290,31 +1568,27 @@
1290
1568
  }
1291
1569
 
1292
1570
  .aeonCombobox__input {
1293
- display: block;
1294
- width: 100%;
1295
- min-height: controlMinHSm;
1571
+ background: var(--colors-surface);
1296
1572
  padding-block: var(--spacing-control-y);
1297
1573
  border-radius: var(--radii-sm);
1298
- color: var(--colors-fg);
1299
- background: var(--colors-surface);
1574
+ border-width: 1px;
1575
+ border-style: solid;
1576
+ border-color: var(--colors-border);
1300
1577
  outline: var(--borders-none);
1301
- padding-left: var(--spacing-control-x);
1302
- padding-right: 2rem;
1578
+ display: block;
1303
1579
  font-size: 0.8125rem;
1304
1580
  font-weight: var(--font-weights-medium);
1305
1581
  font-family: var(--fonts-ui);
1306
1582
  line-height: 1.25;
1307
- border-width: 1px;
1308
- border-style: solid;
1309
- border-color: var(--colors-border);
1583
+ color: var(--colors-fg);
1310
1584
  --transition-prop: border-color, background-color;
1311
1585
  transition-property: border-color, background-color;
1312
1586
  --transition-duration: var(--durations-normal);
1313
1587
  transition-duration: var(--durations-normal);
1314
- }
1315
-
1316
- .aeonCombobox__input::placeholder,.aeonCombobox__input[data-placeholder] {
1317
- color: var(--colors-muted);
1588
+ width: 100%;
1589
+ min-height: controlMinHSm;
1590
+ padding-left: var(--spacing-control-x);
1591
+ padding-right: 2rem;
1318
1592
  }
1319
1593
 
1320
1594
  .aeonCombobox__input[data-aeon-state=open] {
@@ -1322,8 +1596,13 @@
1322
1596
  border-color: var(--colors-accent);
1323
1597
  }
1324
1598
 
1599
+ .aeonCombobox__input::placeholder,.aeonCombobox__input[data-placeholder] {
1600
+ color: var(--colors-muted);
1601
+ }
1602
+
1325
1603
  .aeonCombobox__input:is(:focus-visible, [data-focus-visible]) {
1326
- box-shadow: var(--shadows-focus-ring);
1604
+ border-color: var(--colors-accent);
1605
+ box-shadow: none;
1327
1606
  }
1328
1607
 
1329
1608
  .aeonCombobox__input:is(:hover, [data-hover]) {
@@ -1331,54 +1610,54 @@
1331
1610
  }
1332
1611
 
1333
1612
  .aeonCombobox__icon {
1334
- position: absolute;
1335
- width: 0.5rem;
1336
- height: 0.5rem;
1337
1613
  border-right: 2px solid;
1338
1614
  border-bottom: 2px solid;
1339
- transform: rotate(45deg) translateY(-1px);
1340
- pointer-events: none;
1341
- right: var(--spacing-control-x);
1342
- top: 50%;
1343
- margin-top: -0.35rem;
1344
1615
  border-color: var(--colors-muted);
1616
+ position: absolute;
1617
+ transform: rotate(45deg) translateY(-1px);
1345
1618
  --transition-prop: transform;
1346
1619
  transition-property: transform;
1347
1620
  --transition-duration: var(--durations-normal);
1348
1621
  transition-duration: var(--durations-normal);
1622
+ pointer-events: none;
1623
+ right: var(--spacing-control-x);
1624
+ top: 50%;
1625
+ width: 0.5rem;
1626
+ height: 0.5rem;
1627
+ margin-top: -0.35rem;
1349
1628
  }
1350
1629
 
1351
1630
  .aeonCombobox__content {
1352
- position: absolute;
1353
- z-index: 50;
1354
- max-height: 14rem;
1355
- padding-block: var(--spacing-inset-y-sm);
1356
1631
  background: var(--colors-surface);
1632
+ padding-block: var(--spacing-inset-y-sm);
1633
+ border-width: 1px;
1634
+ border-style: solid;
1635
+ border-color: var(--colors-border);
1357
1636
  border-radius: var(--radii-md);
1358
- box-shadow: var(--shadows-panel);
1359
1637
  outline: var(--borders-none);
1638
+ position: absolute;
1639
+ z-index: 50;
1640
+ box-shadow: var(--shadows-panel);
1360
1641
  top: calc(100% + 0.25rem);
1361
1642
  left: var(--spacing-0);
1362
1643
  right: var(--spacing-0);
1644
+ max-height: 14rem;
1363
1645
  overflow-y: auto;
1364
- border-width: 1px;
1365
- border-style: solid;
1366
- border-color: var(--colors-border);
1367
1646
  }
1368
1647
 
1369
1648
  .aeonCombobox__item {
1370
- display: block;
1371
- width: 100%;
1372
- padding-block: 0.5rem;
1373
- padding-inline: 1rem;
1374
- text-align: left;
1375
- color: var(--colors-fg);
1376
1649
  background: var(--colors-transparent);
1377
1650
  border: var(--borders-none);
1378
- cursor: pointer;
1651
+ padding-block: 0.5rem;
1652
+ padding-inline: 1rem;
1379
1653
  outline: var(--borders-none);
1654
+ display: block;
1380
1655
  font-size: 0.8125rem;
1381
1656
  font-family: var(--fonts-ui);
1657
+ text-align: left;
1658
+ color: var(--colors-fg);
1659
+ cursor: pointer;
1660
+ width: 100%;
1382
1661
  }
1383
1662
 
1384
1663
  .aeonCombobox__item[data-aeon-state=selected] {
@@ -1405,67 +1684,312 @@
1405
1684
  .aeonCombobox__empty {
1406
1685
  padding-block: 0.65rem;
1407
1686
  padding-inline: 1rem;
1408
- color: var(--colors-muted);
1409
1687
  font-size: 0.8125rem;
1688
+ color: var(--colors-muted);
1410
1689
  font-family: var(--fonts-ui);
1411
1690
  }
1412
1691
 
1413
- .aeonDialog__trigger {
1414
- border-radius: var(--radii-md);
1415
- color: var(--colors-fg);
1416
- padding-block: var(--spacing-inset-y);
1417
- padding-inline: var(--spacing-inset-x);
1418
- min-height: 2.75rem;
1419
- cursor: pointer;
1420
- border-width: 1px;
1421
- border-style: solid;
1422
- border-color: var(--colors-border);
1423
- font-size: var(--font-sizes-sm);
1424
- font-weight: var(--font-weights-medium);
1425
- font-family: var(--fonts-ui);
1426
- --transition-prop: border-color;
1427
- transition-property: border-color;
1428
- --transition-duration: var(--durations-normal);
1429
- transition-duration: var(--durations-normal);
1692
+ .aeonComposer__root {
1693
+ background: var(--colors-bg);
1694
+ padding-inline: 0.1rem;
1695
+ display: grid;
1696
+ grid-template-columns: minmax(0, 1fr) auto;
1697
+ align-items: end;
1698
+ column-gap: 0.4rem;
1699
+ width: 100%;
1700
+ padding-top: 0.45rem;
1701
+ padding-bottom: 0.75rem;
1702
+ border-top-width: 1px;
1703
+ border-top-color: var(--colors-border);
1430
1704
  }
1431
1705
 
1432
- .aeonDialog__trigger:is(:hover, [data-hover]) {
1433
- border-color: var(--colors-accent);
1706
+ .aeonComposer__root[data-aeon-state=disabled] {
1707
+ opacity: 0.55;
1708
+ pointer-events: none;
1434
1709
  }
1435
1710
 
1436
- .aeonDialog__backdrop {
1437
- z-index: 40;
1438
- --mix-background: color-mix(in srgb, var(--colors-black) 70%, transparent);
1439
- background: var(--mix-background, var(--colors-black));
1440
- backdrop-filter: blur(4px);
1441
- -webkit-backdrop-filter: blur(4px);
1711
+ .aeonComposer__root[data-aeon-state=sending] {
1712
+ opacity: 0.85;
1442
1713
  }
1443
1714
 
1444
- .aeonDialog__backdrop,.aeonDialog__positioner {
1445
- position: fixed;
1446
- inset: var(--spacing-0);
1715
+ .aeonComposer__root[data-aeon-state=error] {
1716
+ border-top-color: var(--colors-danger);
1447
1717
  }
1448
1718
 
1449
- .aeonDialog__positioner {
1450
- z-index: 50;
1719
+ .aeonComposer__input {
1720
+ background: var(--colors-surface);
1721
+ font: inherit;
1722
+ padding-inline: 0.75rem;
1723
+ padding-block: 0.35rem;
1724
+ border-radius: var(--radii-lg);
1725
+ border-width: 1px;
1726
+ border-color: var(--colors-border);
1727
+ outline: var(--borders-none);
1728
+ resize: none;
1729
+ box-sizing: border-box;
1730
+ color: var(--colors-fg);
1731
+ font-size: var(--font-sizes-sm);
1732
+ line-height: 1.25;
1733
+ width: 100%;
1734
+ min-height: controlMinHSm;
1735
+ height: controlMinHSm;
1736
+ max-height: 5.5rem;
1737
+ overflow-y: auto;
1738
+ }
1739
+
1740
+ .aeonComposer__input:is(:focus, [data-focus]),.aeonComposer__input:is(:focus-visible, [data-focus-visible]) {
1741
+ border-color: var(--colors-accent);
1742
+ box-shadow: none;
1743
+ }
1744
+
1745
+ .aeonComposer__actions {
1746
+ gap: 0.35rem;
1451
1747
  display: flex;
1452
- padding: var(--spacing-4);
1453
1748
  align-items: center;
1454
- justify-content: center;
1749
+ align-self: end;
1750
+ min-height: controlMinHSm;
1455
1751
  }
1456
1752
 
1457
- .aeonDialog__content {
1753
+ .aeonComposer__send {
1754
+ display: inline-flex;
1755
+ align-items: stretch;
1756
+ justify-content: center;
1757
+ min-height: controlMinHSm;
1758
+ }
1759
+
1760
+ .aeonComposer__send > [data-aeon-scope=button],.aeonComposer__send > button {
1761
+ align-self: center;
1762
+ min-height: controlMinHSm;
1763
+ height: controlMinHSm;
1764
+ }
1765
+
1766
+ .aeonContent__root {
1767
+ gap: 1rem;
1768
+ flex: 1 1 auto;
1769
+ display: flex;
1770
+ flex-direction: column;
1458
1771
  width: 100%;
1459
- max-width: var(--sizes-md);
1460
- border-radius: var(--radii-lg);
1461
- background: var(--colors-surface-raised);
1462
- box-shadow: var(--shadows-panel);
1772
+ min-width: var(--sizes-0);
1773
+ }
1774
+
1775
+ .aeonContent__toolbar {
1776
+ gap: 0.5rem;
1777
+ display: flex;
1778
+ align-items: center;
1779
+ width: 100%;
1780
+ }
1781
+
1782
+ .aeonContent__body {
1783
+ flex: 1 1 auto;
1784
+ gap: 0.85rem;
1785
+ display: flex;
1786
+ flex-direction: column;
1787
+ min-width: var(--sizes-0);
1788
+ }
1789
+
1790
+ .aeonContent__pending,.aeonContent__empty {
1791
+ place-items: center;
1792
+ display: grid;
1793
+ color: var(--colors-muted);
1794
+ text-align: center;
1795
+ min-height: 8rem;
1796
+ }
1797
+
1798
+ .aeonContent__empty {
1799
+ gap: 0.75rem;
1800
+ }
1801
+
1802
+ .aeonContent__error {
1803
+ place-items: center;
1804
+ gap: 0.75rem;
1805
+ display: grid;
1806
+ text-align: center;
1807
+ color: var(--colors-danger);
1808
+ min-height: 8rem;
1809
+ }
1810
+
1811
+ .aeonContent__success {
1812
+ place-items: center;
1813
+ gap: 0.75rem;
1814
+ display: grid;
1815
+ text-align: center;
1816
+ min-height: 4rem;
1817
+ }
1818
+
1819
+ .aeonContent__sentinel {
1820
+ height: 1px;
1821
+ width: 100%;
1822
+ }
1823
+
1824
+ .aeonContent__sentinel[data-aeon-state=loadingMore] {
1825
+ place-items: center;
1826
+ display: grid;
1827
+ height: 3rem;
1828
+ }
1829
+
1830
+ .aeonConversation__root {
1831
+ gap: 0.15rem;
1832
+ display: flex;
1833
+ flex-direction: column;
1834
+ width: 100%;
1835
+ min-width: var(--sizes-0);
1836
+ }
1837
+
1838
+ .aeonConversation__item {
1839
+ border: var(--borders-none);
1840
+ background: var(--colors-transparent);
1841
+ font: inherit;
1842
+ padding-inline: 0.65rem;
1843
+ padding-block: 0.55rem;
1844
+ border-radius: var(--radii-xl);
1845
+ display: grid;
1846
+ grid-template-columns: auto minmax(0, 1fr) auto;
1847
+ align-items: center;
1848
+ column-gap: 0.75rem;
1849
+ color: var(--colors-fg);
1850
+ text-align: left;
1851
+ cursor: pointer;
1852
+ --transition-prop: background, background-color, background-image, background-position;
1853
+ transition-property: background, background-color, background-image, background-position;
1854
+ --transition-duration: 0.15s;
1855
+ transition-duration: 0.15s;
1856
+ width: 100%;
1857
+ min-height: 3.5rem;
1858
+ }
1859
+
1860
+ .aeonConversation__item[data-aeon-state=selected] {
1861
+ background: var(--colors-accent-dim);
1862
+ }
1863
+
1864
+ .aeonConversation__item:is(:hover, [data-hover]) {
1865
+ background: var(--colors-surface);
1866
+ }
1867
+
1868
+ .aeonConversation__item[data-aeon-state=unread] [data-aeon-part=title] {
1869
+ font-weight: var(--font-weights-semibold);
1870
+ }
1871
+
1872
+ .aeonConversation__item[data-aeon-state=unread] [data-aeon-part=preview] {
1873
+ color: var(--colors-fg);
1874
+ }
1875
+
1876
+ .aeonConversation__leading {
1877
+ flex-shrink: 0;
1878
+ display: inline-flex;
1879
+ align-items: center;
1880
+ justify-content: center;
1881
+ }
1882
+
1883
+ .aeonConversation__body {
1884
+ gap: 0.15rem;
1885
+ display: flex;
1886
+ flex-direction: column;
1887
+ min-width: var(--sizes-0);
1888
+ }
1889
+
1890
+ .aeonConversation__title {
1891
+ font-size: var(--font-sizes-sm);
1892
+ font-weight: var(--font-weights-medium);
1893
+ color: var(--colors-fg);
1894
+ }
1895
+
1896
+ .aeonConversation__title,.aeonConversation__preview {
1897
+ overflow: hidden;
1898
+ text-overflow: ellipsis;
1899
+ white-space: nowrap;
1900
+ }
1901
+
1902
+ .aeonConversation__preview {
1903
+ font-size: var(--font-sizes-xs);
1904
+ color: var(--colors-muted);
1905
+ line-height: 1.35;
1906
+ }
1907
+
1908
+ .aeonConversation__meta {
1909
+ gap: 0.35rem;
1910
+ display: flex;
1911
+ flex-direction: column;
1912
+ align-items: flex-end;
1913
+ flex-shrink: 0;
1914
+ font-size: 0.65rem;
1915
+ color: var(--colors-muted);
1916
+ white-space: nowrap;
1917
+ }
1918
+
1919
+ .aeonConversation__badge {
1920
+ background: var(--colors-accent);
1921
+ place-items: center;
1922
+ padding-inline: 0.3rem;
1923
+ border-radius: var(--radii-full);
1924
+ display: inline-grid;
1925
+ color: var(--colors-bg);
1926
+ font-size: 0.65rem;
1927
+ font-weight: var(--font-weights-bold);
1928
+ line-height: 1;
1929
+ min-width: 1.15rem;
1930
+ height: 1.15rem;
1931
+ }
1932
+
1933
+ .aeonConversation__badge:empty {
1934
+ display: none;
1935
+ }
1936
+
1937
+ .aeonDialog__trigger {
1938
+ border-radius: var(--radii-md);
1939
+ border-width: 1px;
1940
+ border-style: solid;
1941
+ border-color: var(--colors-border);
1942
+ padding-block: var(--spacing-inset-y);
1943
+ padding-inline: var(--spacing-inset-x);
1944
+ font-size: var(--font-sizes-sm);
1945
+ font-weight: var(--font-weights-medium);
1463
1946
  color: var(--colors-fg);
1947
+ font-family: var(--fonts-ui);
1948
+ cursor: pointer;
1949
+ --transition-prop: border-color;
1950
+ transition-property: border-color;
1951
+ --transition-duration: var(--durations-normal);
1952
+ transition-duration: var(--durations-normal);
1953
+ min-height: 2.75rem;
1954
+ }
1955
+
1956
+ .aeonDialog__trigger:is(:hover, [data-hover]) {
1957
+ border-color: var(--colors-accent);
1958
+ }
1959
+
1960
+ .aeonDialog__backdrop {
1961
+ --mix-background: color-mix(in srgb, var(--colors-black) 70%, transparent);
1962
+ background: var(--mix-background, var(--colors-black));
1963
+ z-index: 40;
1964
+ backdrop-filter: blur(4px);
1965
+ -webkit-backdrop-filter: blur(4px);
1966
+ }
1967
+
1968
+ .aeonDialog__backdrop,.aeonDialog__positioner {
1969
+ inset: var(--spacing-0);
1970
+ position: fixed;
1971
+ }
1972
+
1973
+ .aeonDialog__positioner {
1974
+ padding: var(--spacing-4);
1975
+ z-index: 50;
1976
+ display: flex;
1977
+ align-items: center;
1978
+ justify-content: center;
1979
+ }
1980
+
1981
+ .aeonDialog__content {
1982
+ background: var(--colors-surface-raised);
1464
1983
  padding: var(--spacing-pad-xl);
1984
+ border-radius: var(--radii-lg);
1465
1985
  border-width: 1px;
1466
1986
  border-style: solid;
1467
1987
  border-color: var(--colors-border);
1988
+ box-shadow: var(--shadows-panel);
1989
+ color: var(--colors-fg);
1468
1990
  font-family: var(--fonts-ui);
1991
+ width: 100%;
1992
+ max-width: var(--sizes-md);
1469
1993
  }
1470
1994
 
1471
1995
  .aeonDialog__title {
@@ -1480,106 +2004,461 @@
1480
2004
  }
1481
2005
 
1482
2006
  .aeonDialog__description {
1483
- color: var(--colors-muted);
1484
2007
  margin: var(--spacing-0);
1485
2008
  font-size: var(--font-sizes-sm);
1486
- margin-bottom: var(--spacing-pad-md);
2009
+ color: var(--colors-muted);
1487
2010
  line-height: 1.65;
2011
+ margin-bottom: var(--spacing-pad-md);
1488
2012
  }
1489
2013
 
1490
2014
  .aeonDialog__closeTrigger {
1491
2015
  border-radius: var(--radii-md);
1492
- padding-block: var(--spacing-inset-y);
1493
- padding-inline: var(--spacing-inset-x);
1494
- min-height: 2.75rem;
1495
- cursor: pointer;
1496
2016
  border-width: 1px;
1497
2017
  border-style: solid;
1498
2018
  border-color: var(--colors-border);
2019
+ padding-block: var(--spacing-inset-y);
2020
+ padding-inline: var(--spacing-inset-x);
1499
2021
  font-size: var(--font-sizes-sm);
1500
2022
  font-family: var(--fonts-ui);
1501
- margin-top: var(--spacing-gap-lg);
2023
+ cursor: pointer;
1502
2024
  --transition-prop: border-color;
1503
2025
  transition-property: border-color;
1504
2026
  --transition-duration: var(--durations-normal);
1505
2027
  transition-duration: var(--durations-normal);
2028
+ min-height: 2.75rem;
2029
+ margin-top: var(--spacing-gap-lg);
1506
2030
  }
1507
2031
 
1508
2032
  .aeonDialog__closeTrigger:is(:hover, [data-hover]) {
1509
2033
  border-color: var(--colors-accent);
1510
2034
  }
1511
2035
 
1512
- .aeonField__root {
1513
- display: flex;
1514
- gap: var(--spacing-2);
1515
- width: 100%;
1516
- max-width: 24rem;
1517
- flex-direction: column;
1518
- align-items: flex-start;
1519
- }
1520
-
1521
- .aeonField__label {
1522
- font-weight: var(--font-weights-medium);
2036
+ .aeonEntry__list {
2037
+ gap: 0.55rem;
1523
2038
  }
1524
2039
 
1525
- .aeonField__label,.aeonField__control {
1526
- color: var(--colors-fg);
1527
- font-size: var(--font-sizes-sm);
2040
+ .aeonEntry__list,.aeonEntry__root {
2041
+ display: flex;
2042
+ flex-direction: column;
2043
+ width: 100%;
2044
+ min-width: var(--sizes-0);
1528
2045
  }
1529
2046
 
1530
- .aeonField__control {
1531
- width: 100%;
1532
- border-radius: var(--radii-md);
2047
+ .aeonEntry__root {
2048
+ padding: 0.65rem 0.7rem;
1533
2049
  background: var(--colors-surface);
1534
- padding-inline: var(--spacing-inset-x);
1535
- padding-block: var(--spacing-inset-y-sm);
1536
- outline: var(--borders-none);
1537
- font-family: var(--fonts-ui);
1538
- line-height: 1.5;
2050
+ gap: 0.45rem;
2051
+ border-radius: var(--radii-xl);
1539
2052
  border-width: 1px;
1540
- border-style: solid;
1541
2053
  border-color: var(--colors-border);
2054
+ color: var(--colors-fg);
2055
+ --transition-prop: background, border-color, opacity;
2056
+ transition-property: background, border-color, opacity;
2057
+ --transition-duration: 0.15s;
2058
+ transition-duration: 0.15s;
1542
2059
  }
1543
2060
 
1544
- .aeonField__control:is(:focus-visible, [data-focus-visible]) {
1545
- box-shadow: var(--shadows-focus-ring);
2061
+ .aeonEntry__root[data-aeon-state=selected] {
2062
+ background: var(--colors-accent-dim);
1546
2063
  border-color: var(--colors-accent);
1547
2064
  }
1548
2065
 
1549
- .aeonField__textarea {
1550
- width: 100%;
1551
- min-height: 6.5rem;
1552
- resize: vertical;
1553
- border-radius: var(--radii-md);
1554
- background: var(--colors-surface);
1555
- color: var(--colors-fg);
1556
- padding-inline: var(--spacing-inset-x);
1557
- padding-block: var(--spacing-inset-y-sm);
1558
- outline: var(--borders-none);
1559
- font-size: var(--font-sizes-sm);
1560
- font-family: var(--fonts-ui);
1561
- line-height: 1.5;
1562
- border-width: 1px;
1563
- border-style: solid;
1564
- border-color: var(--colors-border);
2066
+ .aeonEntry__root[data-aeon-state=muted] {
2067
+ opacity: 0.72;
1565
2068
  }
1566
2069
 
1567
- .aeonField__textarea:is(:focus-visible, [data-focus-visible]) {
1568
- box-shadow: var(--shadows-focus-ring);
1569
- border-color: var(--colors-accent);
2070
+ .aeonEntry__header {
2071
+ display: grid;
2072
+ grid-template-columns: auto minmax(0, 1fr) auto;
2073
+ align-items: center;
2074
+ column-gap: 0.55rem;
2075
+ width: 100%;
2076
+ min-width: var(--sizes-0);
1570
2077
  }
1571
2078
 
1572
- .aeonField__message {
1573
- color: var(--colors-danger);
2079
+ .aeonEntry__leading {
2080
+ flex-shrink: 0;
2081
+ display: inline-flex;
2082
+ align-items: center;
2083
+ justify-content: center;
1574
2084
  }
1575
2085
 
1576
- .aeonField__message,.aeonField__hint {
1577
- margin: var(--spacing-0);
1578
- font-size: var(--font-sizes-xs);
2086
+ .aeonEntry__leading:empty {
2087
+ display: none;
1579
2088
  }
1580
2089
 
1581
- .aeonField__hint {
1582
- color: var(--colors-muted);
2090
+ .aeonEntry__heading {
2091
+ gap: 0.1rem;
2092
+ display: flex;
2093
+ flex-direction: column;
2094
+ min-width: var(--sizes-0);
2095
+ }
2096
+
2097
+ .aeonEntry__title {
2098
+ font-size: 0.8125rem;
2099
+ font-weight: var(--font-weights-semibold);
2100
+ letter-spacing: -0.01em;
2101
+ line-height: 1.25;
2102
+ color: var(--colors-fg);
2103
+ }
2104
+
2105
+ .aeonEntry__title,.aeonEntry__subtitle {
2106
+ overflow: hidden;
2107
+ text-overflow: ellipsis;
2108
+ white-space: nowrap;
2109
+ }
2110
+
2111
+ .aeonEntry__subtitle {
2112
+ font-size: 0.68rem;
2113
+ color: var(--colors-muted);
2114
+ line-height: 1.3;
2115
+ }
2116
+
2117
+ .aeonEntry__subtitle:empty {
2118
+ display: none;
2119
+ }
2120
+
2121
+ .aeonEntry__meta {
2122
+ flex-shrink: 0;
2123
+ justify-self: end;
2124
+ font-size: 0.65rem;
2125
+ color: var(--colors-muted);
2126
+ white-space: nowrap;
2127
+ }
2128
+
2129
+ .aeonEntry__meta:empty,.aeonEntry__media {
2130
+ display: none;
2131
+ }
2132
+
2133
+ .aeonEntry__media {
2134
+ background: var(--colors-surface-raised);
2135
+ border-radius: var(--radii-lg);
2136
+ overflow: hidden;
2137
+ aspect-ratio: 16 / 10;
2138
+ width: 100%;
2139
+ }
2140
+
2141
+ .aeonEntry__media:not(:empty) {
2142
+ place-items: center;
2143
+ display: grid;
2144
+ }
2145
+
2146
+ .aeonEntry__media img {
2147
+ object-fit: cover;
2148
+ width: 100%;
2149
+ height: 100%;
2150
+ }
2151
+
2152
+ .aeonEntry__body {
2153
+ gap: 0.25rem;
2154
+ display: flex;
2155
+ flex-direction: column;
2156
+ font-size: 0.8125rem;
2157
+ color: var(--colors-fg);
2158
+ line-height: 1.45;
2159
+ min-width: var(--sizes-0);
2160
+ }
2161
+
2162
+ .aeonEntry__body > p {
2163
+ margin: var(--spacing-0);
2164
+ }
2165
+
2166
+ .aeonEntry__body:empty {
2167
+ display: none;
2168
+ }
2169
+
2170
+ .aeonEntry__values {
2171
+ gap: 0.35rem 0.65rem;
2172
+ display: flex;
2173
+ flex-wrap: wrap;
2174
+ align-items: center;
2175
+ width: 100%;
2176
+ min-width: var(--sizes-0);
2177
+ }
2178
+
2179
+ .aeonEntry__values:empty {
2180
+ display: none;
2181
+ }
2182
+
2183
+ .aeonEntry__value {
2184
+ gap: 0.25rem;
2185
+ display: inline-flex;
2186
+ align-items: baseline;
2187
+ font-size: 0.68rem;
2188
+ color: var(--colors-muted);
2189
+ line-height: 1.2;
2190
+ white-space: nowrap;
2191
+ }
2192
+
2193
+ .aeonEntry__value strong,.aeonEntry__value b,.aeonEntry__value [data-aeon-part=strong] {
2194
+ font-weight: var(--font-weights-semibold);
2195
+ color: var(--colors-fg);
2196
+ font-size: 0.75rem;
2197
+ }
2198
+
2199
+ .aeonEntry__actions {
2200
+ gap: 0.35rem;
2201
+ display: flex;
2202
+ flex-wrap: wrap;
2203
+ align-items: center;
2204
+ width: 100%;
2205
+ min-width: var(--sizes-0);
2206
+ }
2207
+
2208
+ .aeonEntry__actions > [data-aeon-scope=button] {
2209
+ flex: 0 0 auto;
2210
+ }
2211
+
2212
+ .aeonEntry__actions:empty {
2213
+ display: none;
2214
+ }
2215
+
2216
+ .aeonEntry__actions > * {
2217
+ flex-shrink: 0;
2218
+ }
2219
+
2220
+ .aeonEntry__footer {
2221
+ gap: 0.35rem;
2222
+ display: flex;
2223
+ align-items: center;
2224
+ font-size: 0.65rem;
2225
+ color: var(--colors-muted);
2226
+ width: 100%;
2227
+ }
2228
+
2229
+ .aeonEntry__footer:empty {
2230
+ display: none;
2231
+ }
2232
+
2233
+ .aeonField__root {
2234
+ gap: var(--spacing-2);
2235
+ display: flex;
2236
+ flex-direction: column;
2237
+ align-items: flex-start;
2238
+ width: 100%;
2239
+ max-width: 24rem;
2240
+ }
2241
+
2242
+ .aeonField__label {
2243
+ font-weight: var(--font-weights-medium);
2244
+ }
2245
+
2246
+ .aeonField__label,.aeonField__control {
2247
+ font-size: var(--font-sizes-sm);
2248
+ color: var(--colors-fg);
2249
+ }
2250
+
2251
+ .aeonField__control {
2252
+ background: var(--colors-surface);
2253
+ border-width: 1px;
2254
+ border-style: solid;
2255
+ border-color: var(--colors-border);
2256
+ border-radius: var(--radii-md);
2257
+ padding-inline: var(--spacing-inset-x);
2258
+ padding-block: var(--spacing-inset-y-sm);
2259
+ outline: var(--borders-none);
2260
+ box-sizing: border-box;
2261
+ font-family: var(--fonts-ui);
2262
+ line-height: 1.5;
2263
+ width: 100%;
2264
+ }
2265
+
2266
+ [data-aeon-state=invalid] > .aeonField__control,[data-aeon-validation=invalid] > .aeonField__control {
2267
+ border-color: var(--colors-danger);
2268
+ }
2269
+
2270
+ [data-aeon-state=pending] > .aeonField__control,[data-aeon-submission=pending] > .aeonField__control {
2271
+ opacity: 0.7;
2272
+ pointer-events: none;
2273
+ }
2274
+
2275
+ .aeonField__control:is(:focus-visible, [data-focus-visible]) {
2276
+ border-color: var(--colors-accent);
2277
+ box-shadow: none;
2278
+ }
2279
+
2280
+ .aeonField__textarea {
2281
+ background: var(--colors-surface);
2282
+ border-width: 1px;
2283
+ border-style: solid;
2284
+ border-color: var(--colors-border);
2285
+ border-radius: var(--radii-md);
2286
+ padding-inline: var(--spacing-inset-x);
2287
+ padding-block: var(--spacing-inset-y-sm);
2288
+ outline: var(--borders-none);
2289
+ box-sizing: border-box;
2290
+ resize: vertical;
2291
+ font-size: var(--font-sizes-sm);
2292
+ font-family: var(--fonts-ui);
2293
+ line-height: 1.5;
2294
+ color: var(--colors-fg);
2295
+ width: 100%;
2296
+ min-height: 6.5rem;
2297
+ }
2298
+
2299
+ .aeonField__textarea:is(:focus-visible, [data-focus-visible]) {
2300
+ border-color: var(--colors-accent);
2301
+ box-shadow: none;
2302
+ }
2303
+
2304
+ .aeonField__message {
2305
+ color: var(--colors-danger);
2306
+ }
2307
+
2308
+ .aeonField__message,.aeonField__hint {
2309
+ margin: var(--spacing-0);
2310
+ font-size: var(--font-sizes-xs);
2311
+ }
2312
+
2313
+ .aeonField__hint {
2314
+ color: var(--colors-muted);
2315
+ }
2316
+
2317
+ .aeonIdentity__root {
2318
+ gap: 0.625rem;
2319
+ display: flex;
2320
+ align-items: center;
2321
+ text-align: left;
2322
+ min-width: var(--sizes-0);
2323
+ max-width: 100%;
2324
+ }
2325
+
2326
+ .aeonIdentity__avatar {
2327
+ flex-shrink: 0;
2328
+ display: inline-flex;
2329
+ }
2330
+
2331
+ .aeonIdentity__title {
2332
+ font-size: var(--font-sizes-sm);
2333
+ font-weight: var(--font-weights-semibold);
2334
+ color: var(--colors-fg);
2335
+ }
2336
+
2337
+ .aeonIdentity__title,.aeonIdentity__subtitle {
2338
+ overflow: hidden;
2339
+ display: block;
2340
+ text-overflow: ellipsis;
2341
+ white-space: nowrap;
2342
+ line-height: var(--line-heights-tight);
2343
+ min-width: var(--sizes-0);
2344
+ }
2345
+
2346
+ .aeonIdentity__subtitle {
2347
+ font-size: var(--font-sizes-xs);
2348
+ color: var(--colors-muted);
2349
+ }
2350
+
2351
+ .aeonIdentity__meta,.aeonIdentity__trailing {
2352
+ flex-shrink: 0;
2353
+ display: inline-flex;
2354
+ align-items: center;
2355
+ }
2356
+
2357
+ .aeonIdentity__trailing {
2358
+ margin-left: auto;
2359
+ }
2360
+
2361
+ .aeonListRow__root {
2362
+ border: var(--borders-none);
2363
+ background: var(--colors-transparent);
2364
+ font: inherit;
2365
+ padding-inline: 0.65rem;
2366
+ padding-block: 0.45rem;
2367
+ border-radius: var(--radii-xl);
2368
+ display: grid;
2369
+ grid-template-columns: auto minmax(0, 1fr) auto;
2370
+ grid-template-rows: auto;
2371
+ align-items: center;
2372
+ column-gap: 0.75rem;
2373
+ row-gap: 0.1rem;
2374
+ color: var(--colors-fg);
2375
+ text-align: left;
2376
+ cursor: pointer;
2377
+ --transition-prop: background, background-color, background-image, background-position;
2378
+ transition-property: background, background-color, background-image, background-position;
2379
+ --transition-duration: 0.15s;
2380
+ transition-duration: 0.15s;
2381
+ width: 100%;
2382
+ min-height: 3rem;
2383
+ }
2384
+
2385
+ .aeonListRow__root:has([data-aeon-part=description]:not(:empty)) {
2386
+ padding-block: 0.5rem;
2387
+ grid-template-rows: auto auto;
2388
+ min-height: 3.35rem;
2389
+ }
2390
+
2391
+ .aeonListRow__root:has([data-aeon-part=description]:not(:empty)) > [data-aeon-part=leading] {
2392
+ grid-row: 1 / -1;
2393
+ align-self: center;
2394
+ }
2395
+
2396
+ .aeonListRow__root:has([data-aeon-part=description]:not(:empty)) > [data-aeon-part=label] {
2397
+ grid-column: 2;
2398
+ grid-row: 1;
2399
+ align-self: end;
2400
+ }
2401
+
2402
+ .aeonListRow__root:has([data-aeon-part=description]:not(:empty)) > [data-aeon-part=description] {
2403
+ grid-column: 2;
2404
+ grid-row: 2;
2405
+ align-self: start;
2406
+ }
2407
+
2408
+ .aeonListRow__root:has([data-aeon-part=description]:not(:empty)) > [data-aeon-part=trailing] {
2409
+ grid-row: 1 / -1;
2410
+ align-self: center;
2411
+ }
2412
+
2413
+ .aeonListRow__root:is(:hover, [data-hover]) {
2414
+ background: var(--colors-surface);
2415
+ }
2416
+
2417
+ .aeonListRow__leading {
2418
+ flex-shrink: 0;
2419
+ display: inline-flex;
2420
+ align-items: center;
2421
+ justify-content: center;
2422
+ color: var(--colors-muted);
2423
+ min-width: 1.25rem;
2424
+ min-height: 1.25rem;
2425
+ }
2426
+
2427
+ .aeonListRow__label {
2428
+ font-size: var(--font-sizes-sm);
2429
+ font-weight: var(--font-weights-medium);
2430
+ color: var(--colors-fg);
2431
+ line-height: 1.25;
2432
+ }
2433
+
2434
+ .aeonListRow__label,.aeonListRow__description {
2435
+ overflow: hidden;
2436
+ text-overflow: ellipsis;
2437
+ white-space: nowrap;
2438
+ min-width: var(--sizes-0);
2439
+ }
2440
+
2441
+ .aeonListRow__description {
2442
+ display: none;
2443
+ font-size: var(--font-sizes-xs);
2444
+ color: var(--colors-muted);
2445
+ line-height: 1.3;
2446
+ }
2447
+
2448
+ .aeonListRow__description:not(:empty) {
2449
+ display: block;
2450
+ }
2451
+
2452
+ .aeonListRow__trailing {
2453
+ gap: 0.35rem;
2454
+ flex-shrink: 0;
2455
+ display: inline-flex;
2456
+ align-items: center;
2457
+ justify-content: flex-end;
2458
+ color: var(--colors-muted);
2459
+ font-size: var(--font-sizes-xs);
2460
+ font-weight: var(--font-weights-medium);
2461
+ white-space: nowrap;
1583
2462
  }
1584
2463
 
1585
2464
  .aeonMenu__root {
@@ -1588,96 +2467,416 @@
1588
2467
  }
1589
2468
 
1590
2469
  .aeonMenu__trigger {
2470
+ background: var(--colors-surface);
1591
2471
  border-radius: var(--radii-md);
1592
- color: var(--colors-fg);
2472
+ border-width: 1px;
2473
+ border-style: solid;
2474
+ border-color: var(--colors-border);
1593
2475
  padding-block: var(--spacing-inset-y);
1594
2476
  padding-inline: var(--spacing-inset-x);
1595
- min-height: 2.5rem;
2477
+ font-size: var(--font-sizes-sm);
2478
+ font-weight: var(--font-weights-medium);
2479
+ color: var(--colors-fg);
2480
+ font-family: var(--fonts-ui);
1596
2481
  cursor: pointer;
1597
- background: var(--colors-surface);
2482
+ min-height: 2.5rem;
2483
+ }
2484
+
2485
+ .aeonMenu__trigger:is(:hover, [data-hover]) {
2486
+ border-color: var(--colors-accent);
2487
+ }
2488
+
2489
+ .aeonMenu__positioner {
2490
+ position: absolute;
2491
+ z-index: 50;
2492
+ top: calc(100% + 0.35rem);
2493
+ left: var(--spacing-0);
2494
+ min-width: 10rem;
2495
+ }
2496
+
2497
+ .aeonMenu__content {
2498
+ background: var(--colors-surface-raised);
2499
+ border-radius: var(--radii-md);
1598
2500
  border-width: 1px;
1599
2501
  border-style: solid;
1600
2502
  border-color: var(--colors-border);
2503
+ padding-block: var(--spacing-inset-y-sm);
2504
+ padding-inline: var(--spacing-0);
2505
+ box-shadow: var(--shadows-panel);
2506
+ }
2507
+
2508
+ .aeonMenu__content,.aeonMenu__item {
2509
+ color: var(--colors-fg);
2510
+ font-family: var(--fonts-ui);
1601
2511
  font-size: var(--font-sizes-sm);
2512
+ }
2513
+
2514
+ .aeonMenu__item {
2515
+ background: var(--colors-transparent);
2516
+ border: var(--borders-none);
2517
+ padding-block: var(--spacing-inset-y);
2518
+ padding-inline: var(--spacing-inset-x);
2519
+ display: flex;
2520
+ align-items: center;
2521
+ text-align: left;
2522
+ cursor: pointer;
2523
+ width: 100%;
2524
+ }
2525
+
2526
+ .aeonMenu__item:is(:focus-visible, [data-focus-visible]) {
2527
+ outline: var(--borders-none);
2528
+ box-shadow: var(--shadows-focus-ring);
2529
+ }
2530
+
2531
+ .aeonMenu__item:is(:hover, [data-hover]) {
2532
+ background: var(--colors-surface);
2533
+ }
2534
+
2535
+ .aeonMenu__separator {
2536
+ background: var(--colors-border);
2537
+ margin-block: var(--spacing-inset-y-sm);
2538
+ height: 1px;
2539
+ }
2540
+
2541
+ .aeonMetricStrip__root {
2542
+ background: var(--colors-surface);
2543
+ gap: var(--spacing-0);
2544
+ border-width: 1px;
2545
+ border-color: var(--colors-border);
2546
+ border-radius: var(--radii-md);
2547
+ overflow: hidden;
2548
+ display: flex;
2549
+ flex-wrap: wrap;
2550
+ align-items: stretch;
2551
+ width: fit-content;
2552
+ max-width: 100%;
2553
+ }
2554
+
2555
+ .aeonMetricStrip__root[data-aeon-density=loose] {
2556
+ background: var(--colors-transparent);
2557
+ gap: 0.75rem;
2558
+ border-width: 0;
2559
+ overflow: visible;
2560
+ width: 100%;
2561
+ }
2562
+
2563
+ .aeonMetricStrip__chip {
2564
+ gap: 0.05rem;
2565
+ padding-inline: 0.55rem;
2566
+ padding-block: 0.3rem;
2567
+ display: flex;
2568
+ flex-direction: column;
2569
+ align-items: center;
2570
+ justify-content: center;
2571
+ min-width: 2.75rem;
2572
+ border-right-width: 1px;
2573
+ border-right-color: var(--colors-border);
2574
+ }
2575
+
2576
+ [data-aeon-density=loose] .aeonMetricStrip__chip {
2577
+ padding-inline: var(--spacing-0);
2578
+ padding-block: var(--spacing-0);
2579
+ align-items: flex-start;
2580
+ border-right-width: 0;
2581
+ min-width: 4.5rem;
2582
+ }
2583
+
2584
+ .aeonMetricStrip__chip:last-child {
2585
+ border-right-width: 0;
2586
+ }
2587
+
2588
+ .aeonMetricStrip__value {
2589
+ font-size: 0.625rem;
2590
+ font-weight: var(--font-weights-bold);
2591
+ font-variant-numeric: tabular-nums;
2592
+ color: var(--colors-fg);
2593
+ line-height: 1;
2594
+ }
2595
+
2596
+ [data-aeon-density=loose] .aeonMetricStrip__value {
2597
+ font-size: var(--font-sizes-md);
2598
+ }
2599
+
2600
+ .aeonMetricStrip__label {
2601
+ font-size: 0.5rem;
1602
2602
  font-weight: var(--font-weights-medium);
1603
- font-family: var(--fonts-ui);
2603
+ text-transform: uppercase;
2604
+ letter-spacing: 0.1em;
2605
+ color: var(--colors-muted);
2606
+ line-height: 1;
2607
+ }
2608
+
2609
+ [data-aeon-density=loose] .aeonMetricStrip__label {
2610
+ font-size: 0.625rem;
2611
+ letter-spacing: 0.08em;
2612
+ }
2613
+
2614
+ .aeonNav__root {
2615
+ gap: 0.25rem;
2616
+ display: flex;
2617
+ align-items: center;
2618
+ color: var(--colors-fg);
2619
+ min-width: var(--sizes-0);
2620
+ width: 100%;
2621
+ }
2622
+
2623
+ .aeonNav__root[data-aeon-orientation=vertical] {
2624
+ flex-direction: column;
2625
+ align-items: stretch;
2626
+ }
2627
+
2628
+ .aeonNav__item {
2629
+ background: var(--colors-transparent);
2630
+ border: var(--borders-none);
2631
+ font: inherit;
2632
+ gap: 0.375rem;
2633
+ padding-inline: 0.75rem;
2634
+ padding-block: 0.5rem;
2635
+ border-radius: var(--radii-xl);
2636
+ display: inline-flex;
2637
+ align-items: center;
2638
+ justify-content: center;
2639
+ position: relative;
2640
+ cursor: pointer;
2641
+ color: var(--colors-muted);
2642
+ --transition-prop: color, background, opacity, transform;
2643
+ transition-property: color, background, opacity, transform;
2644
+ --transition-duration: 0.15s;
2645
+ transition-duration: 0.15s;
2646
+ }
2647
+
2648
+ .aeonNav__item[data-aeon-state=active] {
2649
+ background: var(--colors-accent-dim);
2650
+ color: var(--colors-accent);
2651
+ font-weight: var(--font-weights-medium);
2652
+ }
2653
+
2654
+ .aeonNav__item[data-aeon-state=inactive] {
2655
+ color: var(--colors-muted);
2656
+ }
2657
+
2658
+ .aeonNav__item[data-aeon-state=disabled],.aeonNav__item:disabled {
2659
+ opacity: 0.45;
2660
+ cursor: not-allowed;
2661
+ }
2662
+
2663
+ .aeonNav__item:is(:hover, [data-hover]) {
2664
+ background: var(--colors-surface-raised);
2665
+ color: var(--colors-fg);
2666
+ }
2667
+
2668
+ .aeonNav__indicator {
2669
+ background: var(--colors-accent);
2670
+ border-radius: var(--radii-full);
2671
+ position: absolute;
2672
+ opacity: 0;
2673
+ --transition-prop: opacity;
2674
+ transition-property: opacity;
2675
+ --transition-duration: 0.15s;
2676
+ transition-duration: 0.15s;
2677
+ bottom: var(--spacing-0);
2678
+ left: 0.75rem;
2679
+ right: 0.75rem;
2680
+ height: 2px;
2681
+ }
2682
+
2683
+ [data-aeon-state=active] > .aeonNav__indicator {
2684
+ opacity: 1;
2685
+ }
2686
+
2687
+ .aeonNav__label {
2688
+ font-size: var(--font-sizes-xs);
2689
+ font-weight: var(--font-weights-medium);
2690
+ letter-spacing: -0.01em;
2691
+ line-height: 1;
2692
+ color: currentColor;
2693
+ }
2694
+
2695
+ .aeonNav__icon {
2696
+ display: inline-flex;
2697
+ align-items: center;
2698
+ justify-content: center;
2699
+ flex-shrink: 0;
2700
+ color: currentColor;
2701
+ width: 1.35rem;
2702
+ height: 1.35rem;
2703
+ }
2704
+
2705
+ .aeonNav__icon svg {
2706
+ width: 100%;
2707
+ height: 100%;
2708
+ }
2709
+
2710
+ .aeonNav__badge {
2711
+ background: var(--colors-accent);
2712
+ padding-inline: 0.35rem;
2713
+ border-radius: var(--radii-full);
2714
+ font-size: var(--font-sizes-xs);
2715
+ color: var(--colors-bg);
1604
2716
  }
1605
2717
 
1606
- .aeonMenu__trigger:is(:hover, [data-hover]) {
1607
- border-color: var(--colors-accent);
2718
+ .aeonPanel__group {
2719
+ gap: 0.85rem;
2720
+ display: flex;
2721
+ align-items: stretch;
2722
+ min-width: var(--sizes-0);
2723
+ min-height: var(--sizes-0);
2724
+ width: 100%;
1608
2725
  }
1609
2726
 
1610
- .aeonMenu__positioner {
1611
- position: absolute;
1612
- z-index: 50;
1613
- min-width: 10rem;
1614
- top: calc(100% + 0.35rem);
1615
- left: var(--spacing-0);
2727
+ .aeonPanel__group[data-aeon-orientation=horizontal] {
2728
+ flex-direction: row;
1616
2729
  }
1617
2730
 
1618
- .aeonMenu__content {
1619
- border-radius: var(--radii-md);
1620
- background: var(--colors-surface-raised);
1621
- box-shadow: var(--shadows-panel);
1622
- padding-block: var(--spacing-inset-y-sm);
1623
- padding-inline: var(--spacing-0);
2731
+ .aeonPanel__group[data-aeon-orientation=vertical] {
2732
+ flex-direction: column;
2733
+ }
2734
+
2735
+ .aeonPanel__root {
2736
+ background: color-mix(in srgb, var(--aeon-bg) 60%, transparent);
2737
+ overflow: hidden;
1624
2738
  border-width: 1px;
1625
2739
  border-style: solid;
1626
- border-color: var(--colors-border);
2740
+ border-color: var(--border);
2741
+ border-radius: 8px;
2742
+ transition: flex-basis 0.2s ease, width 0.2s ease, min-width 0.2s ease;
2743
+ display: grid;
2744
+ grid-template-columns: minmax(0, 1fr) auto;
2745
+ grid-template-rows: auto minmax(0, 1fr);
2746
+ min-width: var(--sizes-0);
2747
+ min-height: var(--sizes-0);
1627
2748
  }
1628
2749
 
1629
- .aeonMenu__content,.aeonMenu__item {
1630
- color: var(--colors-fg);
1631
- font-family: var(--fonts-ui);
1632
- font-size: var(--font-sizes-sm);
2750
+ .aeonPanel__root[data-aeon-state=expanded] {
2751
+ flex: 1 1 0%;
1633
2752
  }
1634
2753
 
1635
- .aeonMenu__item {
2754
+ .aeonPanel__root[data-aeon-state=collapsed] {
2755
+ flex: 0 0 2.75rem;
2756
+ padding-block: 0.65rem;
2757
+ padding-inline: 0.2rem;
1636
2758
  display: flex;
1637
- width: 100%;
1638
- text-align: left;
1639
- padding-block: var(--spacing-inset-y);
1640
- padding-inline: var(--spacing-inset-x);
1641
- background: var(--colors-transparent);
2759
+ flex-direction: column;
2760
+ align-items: center;
2761
+ cursor: pointer;
2762
+ width: 2.75rem;
2763
+ min-width: 2.75rem;
2764
+ max-width: 2.75rem;
2765
+ }
2766
+
2767
+ .aeonPanel__trigger {
1642
2768
  border: var(--borders-none);
2769
+ background: var(--colors-transparent);
2770
+ padding: 0.85rem 0.65rem 0.35rem 0.25rem;
2771
+ border-radius: 4px;
2772
+ appearance: none;
2773
+ -webkit-appearance: none;
2774
+ color: var(--text-muted);
2775
+ font-size: 0.7rem;
2776
+ font-weight: 700;
2777
+ letter-spacing: 0.04em;
1643
2778
  cursor: pointer;
2779
+ align-self: start;
2780
+ line-height: 1;
2781
+ }
2782
+
2783
+ .aeonPanel__trigger:disabled {
2784
+ opacity: 0.4;
2785
+ cursor: default;
2786
+ }
2787
+
2788
+ .aeonPanel__trigger[data-aeon-state=collapsed] {
2789
+ display: none;
2790
+ }
2791
+
2792
+ .aeonPanel__trigger:hover {
2793
+ color: var(--aeon-accent);
2794
+ }
2795
+
2796
+ .aeonPanel__label {
2797
+ gap: 0.05rem;
2798
+ display: inline-flex;
1644
2799
  align-items: center;
2800
+ font-size: 0.65rem;
2801
+ font-weight: 700;
2802
+ letter-spacing: 0.12em;
2803
+ text-transform: uppercase;
2804
+ color: var(--text-muted);
2805
+ -webkit-user-select: none;
2806
+ user-select: none;
2807
+ min-width: var(--sizes-0);
1645
2808
  }
1646
2809
 
1647
- .aeonMenu__item:is(:focus-visible, [data-focus-visible]) {
1648
- outline: var(--borders-none);
1649
- box-shadow: var(--shadows-focus-ring);
2810
+ .aeonPanel__label[data-aeon-state=expanded] {
2811
+ padding: 0.85rem 0.25rem 0.5rem 0.95rem;
2812
+ overflow: hidden;
2813
+ text-overflow: ellipsis;
2814
+ white-space: nowrap;
2815
+ border-bottom-width: 1px;
2816
+ border-bottom-style: solid;
2817
+ border-bottom-color: var(--border);
1650
2818
  }
1651
2819
 
1652
- .aeonMenu__item:is(:hover, [data-hover]) {
1653
- background: var(--colors-surface);
2820
+ .aeonPanel__label[data-aeon-state=collapsed] {
2821
+ padding: var(--spacing-0);
2822
+ gap: 0.08rem;
2823
+ flex: 1 1 auto;
2824
+ border-bottom: var(--borders-none);
2825
+ flex-direction: column;
2826
+ align-items: center;
2827
+ justify-content: flex-start;
2828
+ writing-mode: horizontal-tb;
2829
+ cursor: pointer;
2830
+ color: var(--aeon-accent);
2831
+ height: 100%;
1654
2832
  }
1655
2833
 
1656
- .aeonMenu__separator {
1657
- height: 1px;
1658
- margin-block: var(--spacing-inset-y-sm);
1659
- background: var(--colors-border);
2834
+ .aeonPanel__label[data-aeon-state=collapsed] [data-aeon-part=label-char] {
2835
+ display: block;
2836
+ line-height: 1.15;
2837
+ font-size: 0.72rem;
2838
+ }
2839
+
2840
+ .aeonPanel__label[data-aeon-state=collapsed] [data-aeon-part=label-gap] {
2841
+ display: block;
2842
+ height: 0.55rem;
2843
+ }
2844
+
2845
+ .aeonPanel__content {
2846
+ padding: 0.75rem 0.95rem 1rem;
2847
+ grid-column: 1 / -1;
2848
+ flex: 1 1 auto;
2849
+ overflow: auto;
2850
+ display: flex;
2851
+ flex-direction: column;
2852
+ min-height: var(--sizes-0);
2853
+ min-width: var(--sizes-0);
2854
+ }
2855
+
2856
+ .aeonPanel__content[hidden] {
2857
+ display: none;
1660
2858
  }
1661
2859
 
1662
2860
  .aeonPinInput__root {
2861
+ gap: var(--spacing-gap-lg);
1663
2862
  display: inline-flex;
1664
- gap: var(--spacing-gap-sm);
1665
2863
  }
1666
2864
 
1667
2865
  .aeonPinInput__input {
1668
- width: 2.5rem;
1669
- height: 2.75rem;
1670
- text-align: center;
1671
- border-radius: var(--radii-md);
1672
2866
  background: var(--colors-surface);
1673
- color: var(--colors-fg);
2867
+ border-radius: var(--radii-md);
2868
+ border-width: 1px;
2869
+ border-style: solid;
2870
+ border-color: var(--colors-border);
1674
2871
  outline: var(--borders-none);
2872
+ text-align: center;
1675
2873
  font-size: var(--font-sizes-lg);
1676
2874
  font-family: var(--fonts-ui);
1677
2875
  font-weight: var(--font-weights-semibold);
1678
- border-width: 1px;
1679
- border-style: solid;
1680
- border-color: var(--colors-border);
2876
+ color: var(--colors-fg);
2877
+ box-sizing: border-box;
2878
+ width: 2.5rem;
2879
+ height: 2.75rem;
1681
2880
  }
1682
2881
 
1683
2882
  .aeonPinInput__input[data-aeon-state=filled] {
@@ -1685,8 +2884,8 @@
1685
2884
  }
1686
2885
 
1687
2886
  .aeonPinInput__input:is(:focus-visible, [data-focus-visible]) {
1688
- box-shadow: var(--shadows-focus-ring);
1689
2887
  border-color: var(--colors-accent);
2888
+ box-shadow: none;
1690
2889
  }
1691
2890
 
1692
2891
  .aeonPopover__root {
@@ -1695,19 +2894,19 @@
1695
2894
  }
1696
2895
 
1697
2896
  .aeonPopover__trigger {
1698
- border-radius: var(--radii-md);
1699
- color: var(--colors-fg);
1700
- padding-block: var(--spacing-inset-y);
1701
- padding-inline: var(--spacing-inset-x);
1702
- min-height: 2.5rem;
1703
- cursor: pointer;
1704
2897
  background: var(--colors-surface);
2898
+ border-radius: var(--radii-md);
1705
2899
  border-width: 1px;
1706
2900
  border-style: solid;
1707
2901
  border-color: var(--colors-border);
2902
+ padding-block: var(--spacing-inset-y);
2903
+ padding-inline: var(--spacing-inset-x);
1708
2904
  font-size: var(--font-sizes-sm);
1709
2905
  font-weight: var(--font-weights-medium);
2906
+ color: var(--colors-fg);
1710
2907
  font-family: var(--fonts-ui);
2908
+ cursor: pointer;
2909
+ min-height: 2.5rem;
1711
2910
  }
1712
2911
 
1713
2912
  .aeonPopover__trigger:is(:hover, [data-hover]) {
@@ -1717,22 +2916,22 @@
1717
2916
  .aeonPopover__positioner {
1718
2917
  position: absolute;
1719
2918
  z-index: 50;
1720
- min-width: 10rem;
1721
2919
  top: calc(100% + 0.35rem);
1722
2920
  left: var(--spacing-0);
2921
+ min-width: 10rem;
1723
2922
  }
1724
2923
 
1725
2924
  .aeonPopover__content {
1726
- border-radius: var(--radii-md);
1727
2925
  background: var(--colors-surface-raised);
1728
- box-shadow: var(--shadows-panel);
1729
- color: var(--colors-fg);
1730
- padding-block: var(--spacing-inset-y-sm);
1731
- padding-inline: var(--spacing-inset-x-sm);
1732
2926
  padding: var(--spacing-pad-md);
2927
+ border-radius: var(--radii-md);
1733
2928
  border-width: 1px;
1734
2929
  border-style: solid;
1735
2930
  border-color: var(--colors-border);
2931
+ padding-block: var(--spacing-inset-y-sm);
2932
+ padding-inline: var(--spacing-inset-x-sm);
2933
+ box-shadow: var(--shadows-panel);
2934
+ color: var(--colors-fg);
1736
2935
  }
1737
2936
 
1738
2937
  .aeonPopover__content,.aeonPopover__closeTrigger {
@@ -1750,82 +2949,186 @@
1750
2949
  color: var(--colors-fg);
1751
2950
  }
1752
2951
 
1753
- .aeonProgress__root {
2952
+ .aeonProfileHeader__root {
2953
+ padding: 0.75rem 0.85rem;
2954
+ background: var(--colors-surface);
2955
+ gap: 0.65rem;
2956
+ border-radius: var(--radii-xl);
2957
+ border-width: 1px;
2958
+ border-color: var(--colors-border);
1754
2959
  display: flex;
1755
- gap: var(--spacing-gap-sm);
2960
+ flex-direction: column;
2961
+ width: 100%;
2962
+ min-width: var(--sizes-0);
2963
+ }
2964
+
2965
+ .aeonProfileHeader__media {
2966
+ background: var(--colors-surface-raised);
2967
+ border-radius: var(--radii-lg);
2968
+ overflow: hidden;
2969
+ display: none;
2970
+ aspect-ratio: 3 / 1;
2971
+ width: 100%;
2972
+ }
2973
+
2974
+ .aeonProfileHeader__media:not(:empty) {
2975
+ place-items: center;
2976
+ display: grid;
2977
+ }
2978
+
2979
+ .aeonProfileHeader__identity {
2980
+ gap: 0.75rem;
2981
+ }
2982
+
2983
+ .aeonProfileHeader__identity,.aeonProfileHeader__metrics {
2984
+ display: flex;
2985
+ align-items: center;
2986
+ min-width: var(--sizes-0);
2987
+ width: 100%;
2988
+ }
2989
+
2990
+ .aeonProfileHeader__metrics:empty {
2991
+ display: none;
2992
+ }
2993
+
2994
+ .aeonProfileHeader__actions {
2995
+ gap: 0.5rem;
2996
+ display: flex;
2997
+ flex-wrap: wrap;
2998
+ align-items: stretch;
2999
+ justify-content: flex-start;
3000
+ width: 100%;
3001
+ min-width: var(--sizes-0);
3002
+ }
3003
+
3004
+ .aeonProfileHeader__actions > [data-aeon-scope=button] {
3005
+ flex: 1 1 5.5rem;
3006
+ }
3007
+
3008
+ .aeonProfileHeader__actions > [data-aeon-part=group] {
3009
+ gap: 0.5rem;
3010
+ display: flex;
3011
+ flex-wrap: wrap;
1756
3012
  width: 100%;
3013
+ min-width: var(--sizes-0);
3014
+ }
3015
+
3016
+ .aeonProfileHeader__actions > [data-aeon-part=group] > [data-aeon-scope=button] {
3017
+ flex: 1 1 5.5rem;
3018
+ min-width: var(--sizes-0);
3019
+ max-width: 100%;
3020
+ }
3021
+
3022
+ .aeonProfileHeader__actions > [data-aeon-part=group] > * {
3023
+ flex-shrink: 1;
3024
+ min-width: var(--sizes-0);
3025
+ }
3026
+
3027
+ .aeonProfileHeader__actions:empty {
3028
+ display: none;
3029
+ }
3030
+
3031
+ .aeonProfileHeader__actions > * {
3032
+ flex-shrink: 1;
3033
+ min-width: var(--sizes-0);
3034
+ max-width: 100%;
3035
+ }
3036
+
3037
+ .aeonProfileHeader__body {
3038
+ gap: 0.45rem;
3039
+ display: flex;
3040
+ flex-direction: column;
3041
+ font-size: var(--font-sizes-sm);
3042
+ color: var(--colors-muted);
3043
+ line-height: 1.45;
3044
+ min-width: var(--sizes-0);
3045
+ }
3046
+
3047
+ .aeonProfileHeader__body > p {
3048
+ margin: var(--spacing-0);
3049
+ color: var(--colors-muted);
3050
+ }
3051
+
3052
+ .aeonProfileHeader__body:empty {
3053
+ display: none;
3054
+ }
3055
+
3056
+ .aeonProgress__root {
3057
+ gap: var(--spacing-gap-sm);
3058
+ display: flex;
1757
3059
  flex-direction: column;
1758
3060
  font-family: var(--fonts-ui);
3061
+ width: 100%;
1759
3062
  }
1760
3063
 
1761
3064
  .aeonProgress__root[data-aeon-state=loading] .aeonProgress__range {
1762
- width: 40% !important;
1763
3065
  animation: aeonProgressIndeterminate 1.2s ease-in-out infinite;
3066
+ width: 40% !important;
1764
3067
  }
1765
3068
 
1766
3069
  .aeonProgress__track {
1767
- position: relative;
1768
- width: 100%;
1769
- height: 0.5rem;
1770
- border-radius: var(--radii-full);
1771
3070
  background: var(--colors-surface);
1772
- overflow: hidden;
3071
+ border-radius: var(--radii-full);
1773
3072
  border-width: 1px;
1774
3073
  border-style: solid;
1775
3074
  border-color: var(--colors-border);
3075
+ overflow: hidden;
3076
+ position: relative;
3077
+ width: 100%;
3078
+ height: 0.5rem;
1776
3079
  }
1777
3080
 
1778
3081
  .aeonProgress__range {
1779
- height: 100%;
1780
- border-radius: var(--radii-full);
1781
3082
  background: var(--colors-accent);
3083
+ border-radius: var(--radii-full);
1782
3084
  --transition-prop: width;
1783
3085
  transition-property: width;
1784
3086
  --transition-duration: var(--durations-normal);
1785
3087
  transition-duration: var(--durations-normal);
3088
+ height: 100%;
1786
3089
  }
1787
3090
 
1788
3091
  .aeonProgress__label {
1789
- color: var(--colors-muted);
1790
3092
  font-size: var(--font-sizes-sm);
3093
+ color: var(--colors-muted);
1791
3094
  line-height: var(--line-heights-snug);
1792
3095
  }
1793
3096
 
1794
3097
  .aeonRadioGroup__root {
1795
- display: flex;
1796
3098
  gap: var(--spacing-gap-sm);
3099
+ display: flex;
1797
3100
  flex-direction: column;
1798
3101
  font-family: var(--fonts-ui);
1799
3102
  }
1800
3103
 
1801
3104
  .aeonRadioGroup__item {
1802
3105
  gap: var(--spacing-gap-lg);
1803
- vertical-align: middle;
1804
3106
  font-family: var(--fonts-ui);
1805
3107
  line-height: 1.5;
3108
+ vertical-align: middle;
1806
3109
  }
1807
3110
 
1808
3111
  .aeonRadioGroup__item,.aeonRadioGroup__itemControl {
1809
3112
  display: inline-flex;
1810
- cursor: pointer;
1811
3113
  align-items: center;
3114
+ cursor: pointer;
1812
3115
  }
1813
3116
 
1814
3117
  .aeonRadioGroup__itemControl {
1815
- width: 1.5rem;
1816
- height: 1.5rem;
1817
- border-radius: var(--radii-full);
1818
3118
  background: var(--colors-surface);
1819
- outline: var(--borders-none);
1820
- justify-content: center;
1821
- flex-shrink: 0;
3119
+ border-radius: var(--radii-full);
1822
3120
  border-width: 1px;
1823
3121
  border-style: solid;
1824
3122
  border-color: var(--colors-border);
3123
+ outline: var(--borders-none);
3124
+ justify-content: center;
3125
+ flex-shrink: 0;
1825
3126
  --transition-prop: background-color, border-color;
1826
3127
  transition-property: background-color, border-color;
1827
3128
  --transition-duration: var(--durations-normal);
1828
3129
  transition-duration: var(--durations-normal);
3130
+ width: 1.5rem;
3131
+ height: 1.5rem;
1829
3132
  }
1830
3133
 
1831
3134
  .aeonRadioGroup__itemControl[data-aeon-state=selected] {
@@ -1837,37 +3140,37 @@
1837
3140
  }
1838
3141
 
1839
3142
  .aeonRadioGroup__itemIndicator {
3143
+ background: var(--colors-accent);
3144
+ border-radius: var(--radii-full);
1840
3145
  width: 0.625rem;
1841
3146
  height: 0.625rem;
1842
- border-radius: var(--radii-full);
1843
- background: var(--colors-accent);
1844
3147
  }
1845
3148
 
1846
3149
  .aeonRadioGroup__itemLabel {
3150
+ font-size: var(--font-sizes-sm);
1847
3151
  color: var(--colors-fg);
1848
3152
  -webkit-user-select: none;
1849
- user-select: none;
1850
- cursor: pointer;
1851
- font-size: var(--font-sizes-sm);
3153
+ user-select: none;
1852
3154
  line-height: 1.5;
3155
+ cursor: pointer;
1853
3156
  }
1854
3157
 
1855
3158
  .aeonScroll__root {
1856
- display: flex;
1857
3159
  gap: var(--spacing-gap-sm);
1858
- min-width: var(--sizes-0);
3160
+ display: flex;
1859
3161
  flex-direction: column;
3162
+ min-width: var(--sizes-0);
1860
3163
  }
1861
3164
 
1862
3165
  .aeonScroll__viewport {
1863
- position: relative;
1864
- min-width: var(--sizes-0);
1865
- overflow: auto;
1866
- border-radius: var(--radii-md);
1867
3166
  background: var(--colors-bg);
3167
+ overflow: auto;
1868
3168
  border-width: 1px;
1869
3169
  border-style: solid;
1870
3170
  border-color: var(--colors-border);
3171
+ border-radius: var(--radii-md);
3172
+ position: relative;
3173
+ min-width: var(--sizes-0);
1871
3174
  }
1872
3175
 
1873
3176
  .aeonScroll__content {
@@ -1881,31 +3184,31 @@
1881
3184
  }
1882
3185
 
1883
3186
  .aeonSelect__trigger {
1884
- display: inline-flex;
3187
+ background: var(--colors-surface);
1885
3188
  gap: var(--spacing-gap-sm);
1886
- width: 100%;
1887
- box-sizing: border-box;
1888
- min-height: controlMinHSm;
1889
3189
  padding-block: var(--spacing-control-y);
1890
3190
  padding-inline: var(--spacing-control-x);
1891
3191
  border-radius: var(--radii-sm);
1892
- color: var(--colors-fg);
1893
- background: var(--colors-surface);
1894
- cursor: pointer;
3192
+ border-width: 1px;
3193
+ border-style: solid;
3194
+ border-color: var(--colors-border);
1895
3195
  outline: var(--borders-none);
3196
+ display: inline-flex;
1896
3197
  align-items: center;
1897
3198
  justify-content: space-between;
3199
+ box-sizing: border-box;
1898
3200
  font-size: 0.8125rem;
1899
3201
  font-weight: var(--font-weights-medium);
1900
3202
  font-family: var(--fonts-ui);
1901
3203
  line-height: 1.25;
1902
- border-width: 1px;
1903
- border-style: solid;
1904
- border-color: var(--colors-border);
3204
+ color: var(--colors-fg);
3205
+ cursor: pointer;
1905
3206
  --transition-prop: border-color, background-color;
1906
3207
  transition-property: border-color, background-color;
1907
3208
  --transition-duration: var(--durations-normal);
1908
3209
  transition-duration: var(--durations-normal);
3210
+ width: 100%;
3211
+ min-height: controlMinHSm;
1909
3212
  }
1910
3213
 
1911
3214
  .aeonSelect__trigger[data-aeon-state=open] {
@@ -1918,7 +3221,8 @@
1918
3221
  }
1919
3222
 
1920
3223
  .aeonSelect__trigger:is(:focus-visible, [data-focus-visible]) {
1921
- box-shadow: var(--shadows-focus-ring);
3224
+ border-color: var(--colors-accent);
3225
+ box-shadow: none;
1922
3226
  }
1923
3227
 
1924
3228
  .aeonSelect__trigger:is(:hover, [data-hover]) {
@@ -1927,25 +3231,25 @@
1927
3231
 
1928
3232
  .aeonSelect__value {
1929
3233
  flex: 1 1 0%;
3234
+ overflow: hidden;
1930
3235
  text-align: left;
1931
3236
  white-space: nowrap;
1932
- overflow: hidden;
1933
3237
  text-overflow: ellipsis;
1934
3238
  }
1935
3239
 
1936
3240
  .aeonSelect__icon {
1937
- width: 0.5rem;
1938
- height: 0.5rem;
1939
3241
  border-right: 2px solid;
1940
3242
  border-bottom: 2px solid;
3243
+ border-color: var(--colors-muted);
3244
+ flex-shrink: 0;
1941
3245
  transform: rotate(45deg) translateY(-1px);
1942
3246
  transform-origin: center;
1943
- flex-shrink: 0;
1944
- border-color: var(--colors-muted);
1945
3247
  --transition-prop: transform;
1946
3248
  transition-property: transform;
1947
3249
  --transition-duration: var(--durations-normal);
1948
3250
  transition-duration: var(--durations-normal);
3251
+ width: 0.5rem;
3252
+ height: 0.5rem;
1949
3253
  }
1950
3254
 
1951
3255
  .aeonSelect__positioner {
@@ -1953,31 +3257,31 @@
1953
3257
  }
1954
3258
 
1955
3259
  .aeonSelect__content {
1956
- max-height: 14rem;
1957
- padding-block: var(--spacing-inset-y-sm);
1958
3260
  background: var(--colors-surface);
1959
- border-radius: var(--radii-md);
1960
- box-shadow: var(--shadows-panel);
1961
- outline: var(--borders-none);
1962
- overflow-y: auto;
3261
+ padding-block: var(--spacing-inset-y-sm);
1963
3262
  border-width: 1px;
1964
3263
  border-style: solid;
1965
3264
  border-color: var(--colors-border);
3265
+ border-radius: var(--radii-md);
3266
+ outline: var(--borders-none);
3267
+ box-shadow: var(--shadows-panel);
3268
+ max-height: 14rem;
3269
+ overflow-y: auto;
1966
3270
  }
1967
3271
 
1968
3272
  .aeonSelect__item {
1969
- display: block;
1970
- width: 100%;
1971
- padding-block: 0.5rem;
1972
- padding-inline: 1rem;
1973
- text-align: left;
1974
- color: var(--colors-fg);
1975
3273
  background: var(--colors-transparent);
1976
3274
  border: var(--borders-none);
1977
- cursor: pointer;
3275
+ padding-block: 0.5rem;
3276
+ padding-inline: 1rem;
1978
3277
  outline: var(--borders-none);
3278
+ display: block;
1979
3279
  font-size: 0.8125rem;
1980
3280
  font-family: var(--fonts-ui);
3281
+ text-align: left;
3282
+ color: var(--colors-fg);
3283
+ cursor: pointer;
3284
+ width: 100%;
1981
3285
  }
1982
3286
 
1983
3287
  .aeonSelect__item[data-aeon-state=selected] {
@@ -2003,50 +3307,52 @@
2003
3307
  }
2004
3308
 
2005
3309
  .aeonSlider__root {
2006
- position: relative;
3310
+ gap: gapXs;
2007
3311
  display: flex;
2008
- gap: var(--spacing-gap-sm);
2009
- width: 100%;
2010
- min-width: 8rem;
2011
3312
  flex-direction: column;
3313
+ min-width: 8rem;
2012
3314
  }
2013
3315
 
2014
- .aeonSlider__track {
3316
+ .aeonSlider__root,.aeonSlider__track {
2015
3317
  position: relative;
2016
- height: 0.35rem;
2017
- border-radius: var(--radii-full);
3318
+ width: 100%;
3319
+ }
3320
+
3321
+ .aeonSlider__track {
2018
3322
  background: var(--colors-surface);
2019
- cursor: pointer;
2020
- touch-action: none;
3323
+ border-radius: var(--radii-full);
2021
3324
  border-width: 1px;
2022
3325
  border-style: solid;
2023
3326
  border-color: var(--colors-border);
3327
+ cursor: pointer;
3328
+ touch-action: none;
3329
+ height: 0.5rem;
2024
3330
  }
2025
3331
 
2026
3332
  .aeonSlider__range {
2027
- height: 100%;
2028
3333
  background: var(--colors-accent-dim);
2029
3334
  pointer-events: none;
2030
3335
  top: var(--spacing-0);
2031
3336
  left: var(--spacing-0);
3337
+ height: 100%;
2032
3338
  }
2033
3339
 
2034
3340
  .aeonSlider__range,.aeonSlider__thumb {
2035
- position: absolute;
2036
3341
  border-radius: var(--radii-full);
3342
+ position: absolute;
2037
3343
  }
2038
3344
 
2039
3345
  .aeonSlider__thumb {
2040
- width: 1rem;
2041
- height: 1rem;
2042
3346
  background: var(--colors-accent);
3347
+ border-width: 2px;
3348
+ border-style: solid;
3349
+ border-color: var(--colors-surface-raised);
2043
3350
  transform: translate(-50%, -50%);
2044
3351
  cursor: grab;
2045
3352
  box-shadow: var(--shadows-panel);
2046
3353
  top: 50%;
2047
- border-width: 2px;
2048
- border-style: solid;
2049
- border-color: var(--colors-surface-raised);
3354
+ width: 1.125rem;
3355
+ height: 1.125rem;
2050
3356
  }
2051
3357
 
2052
3358
  .aeonSlider__thumb[data-aeon-state=dragging] {
@@ -2058,9 +3364,10 @@
2058
3364
  }
2059
3365
 
2060
3366
  .aeonSlider__valueText {
2061
- color: var(--colors-muted);
2062
3367
  font-size: var(--font-sizes-xs);
2063
3368
  font-family: var(--fonts-ui);
3369
+ color: var(--colors-muted);
3370
+ text-align: center;
2064
3371
  }
2065
3372
 
2066
3373
  .aeonSwitch__root {
@@ -2071,33 +3378,33 @@
2071
3378
 
2072
3379
  .aeonSwitch__root,.aeonSwitch__control {
2073
3380
  display: inline-flex;
3381
+ align-items: center;
2074
3382
  cursor: pointer;
2075
3383
  vertical-align: middle;
2076
- align-items: center;
2077
3384
  }
2078
3385
 
2079
3386
  .aeonSwitch__control {
2080
3387
  margin: var(--spacing-0);
2081
3388
  padding: 3px;
2082
3389
  font: inherit;
3390
+ background: var(--colors-surface);
3391
+ border-radius: var(--radii-full);
3392
+ border-width: 1px;
3393
+ border-style: solid;
3394
+ border-color: var(--colors-border);
3395
+ outline: var(--borders-none);
3396
+ line-height: 1;
2083
3397
  color: inherit;
2084
3398
  box-sizing: border-box;
2085
3399
  appearance: none;
2086
3400
  -webkit-appearance: none;
2087
- width: 3rem;
2088
- height: 1.75rem;
2089
- border-radius: var(--radii-full);
2090
- background: var(--colors-surface);
2091
- outline: var(--borders-none);
2092
- line-height: 1;
2093
3401
  flex-shrink: 0;
2094
- border-width: 1px;
2095
- border-style: solid;
2096
- border-color: var(--colors-border);
2097
3402
  --transition-prop: background-color, border-color;
2098
3403
  transition-property: background-color, border-color;
2099
3404
  --transition-duration: var(--durations-normal);
2100
3405
  transition-duration: var(--durations-normal);
3406
+ width: 3rem;
3407
+ height: 1.75rem;
2101
3408
  }
2102
3409
 
2103
3410
  .aeonSwitch__control[data-aeon-state~="checked"] {
@@ -2110,16 +3417,16 @@
2110
3417
  }
2111
3418
 
2112
3419
  .aeonSwitch__thumb {
2113
- width: 1.125rem;
2114
- height: 1.125rem;
2115
- border-radius: var(--radii-full);
2116
3420
  background: var(--colors-fg);
2117
- pointer-events: none;
3421
+ border-radius: var(--radii-full);
2118
3422
  flex-shrink: 0;
3423
+ pointer-events: none;
2119
3424
  --transition-prop: margin, background-color;
2120
3425
  transition-property: margin, background-color;
2121
3426
  --transition-duration: var(--durations-normal);
2122
3427
  transition-duration: var(--durations-normal);
3428
+ width: 1.125rem;
3429
+ height: 1.125rem;
2123
3430
  }
2124
3431
 
2125
3432
  .aeonSwitch__thumb[data-aeon-state~="checked"] {
@@ -2128,140 +3435,321 @@
2128
3435
  }
2129
3436
 
2130
3437
  .aeonSwitch__label {
3438
+ font-size: var(--font-sizes-sm);
2131
3439
  color: var(--colors-fg);
2132
3440
  -webkit-user-select: none;
2133
3441
  user-select: none;
2134
- font-size: var(--font-sizes-sm);
2135
3442
  line-height: 1.5;
2136
3443
  }
2137
3444
 
2138
3445
  .aeonTabs__root {
2139
- display: flex;
2140
3446
  gap: var(--spacing-4);
3447
+ display: flex;
2141
3448
  flex-direction: column;
2142
3449
  font-family: var(--fonts-ui);
2143
3450
  }
2144
3451
 
2145
3452
  .aeonTabs__list {
2146
- display: inline-flex;
2147
- border-radius: var(--radii-md);
2148
3453
  background: var(--colors-surface);
2149
3454
  padding: var(--spacing-inset-y-sm);
2150
- gap: var(--spacing-inset-y-sm);
3455
+ border-radius: var(--radii-md);
2151
3456
  border-width: 1px;
2152
3457
  border-style: solid;
2153
3458
  border-color: var(--colors-border);
3459
+ gap: var(--spacing-inset-y-sm);
3460
+ display: inline-flex;
2154
3461
  }
2155
3462
 
2156
3463
  .aeonTabs__trigger {
2157
3464
  border-radius: 0.375rem;
2158
- color: var(--colors-muted);
2159
3465
  padding-block: var(--spacing-inset-y);
2160
3466
  padding-inline: var(--spacing-inset-x-sm);
2161
- min-height: 2.5rem;
2162
- cursor: pointer;
2163
3467
  outline: var(--borders-none);
2164
3468
  font-size: var(--font-sizes-sm);
3469
+ color: var(--colors-muted);
3470
+ cursor: pointer;
2165
3471
  --transition-prop: color, background-color;
2166
3472
  transition-property: color, background-color;
2167
3473
  --transition-duration: var(--durations-normal);
2168
3474
  transition-duration: var(--durations-normal);
3475
+ min-height: 2.5rem;
3476
+ }
3477
+
3478
+ .aeonTabs__trigger[data-aeon-state=selected] {
3479
+ background: var(--colors-surface-raised);
3480
+ color: var(--colors-accent);
3481
+ }
3482
+
3483
+ .aeonTabs__trigger:is(:focus-visible, [data-focus-visible]) {
3484
+ box-shadow: var(--shadows-focus-ring);
3485
+ }
3486
+
3487
+ .aeonTabs__content {
3488
+ padding-inline: var(--spacing-inset-x-sm);
3489
+ font-size: var(--font-sizes-sm);
3490
+ color: var(--colors-fg);
3491
+ line-height: 1.65;
3492
+ padding-top: var(--spacing-pad-md);
3493
+ }
3494
+
3495
+ .aeonThemeSwitcher__root {
3496
+ gap: 0.375rem;
3497
+ overflow: hidden;
3498
+ display: flex;
3499
+ flex-wrap: nowrap;
3500
+ align-items: center;
3501
+ min-width: var(--sizes-0);
3502
+ }
3503
+
3504
+ .aeonThemeSwitcher__modes {
3505
+ padding: 2px;
3506
+ border: 1px solid var(--colors-border);
3507
+ background: color-mix(in srgb, var(--colors-surface) 92%, var(--colors-bg));
3508
+ gap: 0.125rem;
3509
+ border-radius: var(--radii-md);
3510
+ display: inline-flex;
3511
+ align-items: stretch;
3512
+ flex-shrink: 0;
3513
+ }
3514
+
3515
+ .aeonThemeSwitcher__modeBtn {
3516
+ border: var(--borders-none);
3517
+ background: var(--colors-transparent);
3518
+ padding-inline: 0.4rem;
3519
+ border-radius: var(--radii-sm);
3520
+ transition: background 0.15s, color 0.15s, box-shadow 0.15s;
3521
+ display: inline-flex;
3522
+ align-items: center;
3523
+ justify-content: center;
3524
+ cursor: pointer;
3525
+ font-family: var(--fonts-ui);
3526
+ font-size: var(--font-sizes-xs);
3527
+ font-weight: var(--font-weights-medium);
3528
+ color: var(--colors-muted);
3529
+ min-width: 2.25rem;
3530
+ height: auto;
3531
+ }
3532
+
3533
+ .aeonThemeSwitcher__modeBtn:is(:hover, [data-hover]) {
3534
+ background: var(--colors-surface-raised);
3535
+ color: text;
3536
+ }
3537
+
3538
+ .aeonThemeSwitcher__themeSelect {
3539
+ flex: 0 1 auto;
3540
+ overflow: hidden;
3541
+ min-width: var(--sizes-0);
3542
+ max-width: 6rem;
3543
+ }
3544
+
3545
+ .aeonThemeSwitcher__themeTrigger {
3546
+ border: 1px solid var(--colors-border);
3547
+ background: color-mix(in srgb, var(--colors-surface) 92%, var(--colors-bg));
3548
+ gap: 0.25rem;
3549
+ padding-inline: 0.4rem 1.25rem;
3550
+ border-radius: var(--radii-md);
3551
+ overflow: hidden;
3552
+ transition: background 0.15s;
3553
+ display: inline-flex;
3554
+ align-items: center;
3555
+ cursor: pointer;
3556
+ font-family: var(--fonts-ui);
3557
+ font-size: var(--font-sizes-xs);
3558
+ font-weight: var(--font-weights-medium);
3559
+ color: text;
3560
+ text-overflow: ellipsis;
3561
+ white-space: nowrap;
3562
+ width: 100%;
3563
+ max-width: 100%;
3564
+ min-width: var(--sizes-0);
3565
+ }
3566
+
3567
+ .aeonThemeSwitcher__themeTrigger:is(:hover, [data-hover]) {
3568
+ background: var(--colors-surface-raised);
3569
+ }
3570
+
3571
+ .aeonThread__root {
3572
+ min-width: var(--sizes-0);
3573
+ width: 100%;
3574
+ }
3575
+
3576
+ .aeonThread__root,.aeonThread__list {
3577
+ flex: 1 1 auto;
3578
+ display: flex;
3579
+ flex-direction: column;
3580
+ min-height: var(--sizes-0);
3581
+ }
3582
+
3583
+ .aeonThread__list {
3584
+ gap: 0.55rem;
3585
+ overflow: auto;
3586
+ padding-inline: 0.15rem;
3587
+ padding-block: 0.35rem;
3588
+ }
3589
+
3590
+ .aeonThread__item {
3591
+ gap: 0.2rem;
3592
+ display: flex;
3593
+ flex-direction: column;
3594
+ max-width: 85%;
3595
+ }
3596
+
3597
+ .aeonThread__item[data-aeon-state=mine],.aeonThread__item[data-aeon-state~=mine] {
3598
+ align-self: flex-end;
3599
+ align-items: flex-end;
3600
+ }
3601
+
3602
+ .aeonThread__item[data-aeon-state=theirs],.aeonThread__item[data-aeon-state~=theirs] {
3603
+ align-self: flex-start;
3604
+ align-items: flex-start;
3605
+ }
3606
+
3607
+ .aeonThread__item[data-aeon-state~=pending] {
3608
+ opacity: 0.7;
3609
+ }
3610
+
3611
+ .aeonThread__item[data-aeon-state~=failed] {
3612
+ opacity: 0.9;
3613
+ }
3614
+
3615
+ .aeonThread__bubble {
3616
+ background: var(--colors-surface-raised);
3617
+ padding-inline: 0.85rem;
3618
+ padding-block: 0.55rem;
3619
+ border-radius: var(--radii-xl);
3620
+ font-size: var(--font-sizes-sm);
3621
+ line-height: 1.45;
3622
+ color: var(--colors-fg);
3623
+ word-break: break-word;
3624
+ max-width: 100%;
3625
+ }
3626
+
3627
+ [data-aeon-state=mine] > .aeonThread__bubble,[data-aeon-state~=mine] > .aeonThread__bubble {
3628
+ background: var(--colors-accent-dim);
3629
+ color: var(--colors-fg);
3630
+ border-bottom-right-radius: var(--radii-sm);
3631
+ }
3632
+
3633
+ [data-aeon-state=theirs] > .aeonThread__bubble,[data-aeon-state~=theirs] > .aeonThread__bubble {
3634
+ background: var(--colors-surface);
3635
+ border-width: 1px;
3636
+ border-color: var(--colors-border);
3637
+ border-bottom-left-radius: var(--radii-sm);
2169
3638
  }
2170
3639
 
2171
- .aeonTabs__trigger[data-aeon-state=selected] {
2172
- background: var(--colors-surface-raised);
2173
- color: var(--colors-accent);
3640
+ [data-aeon-state~=failed] > .aeonThread__bubble {
3641
+ border-width: 1px;
3642
+ border-color: var(--colors-danger);
2174
3643
  }
2175
3644
 
2176
- .aeonTabs__trigger:is(:focus-visible, [data-focus-visible]) {
2177
- box-shadow: var(--shadows-focus-ring);
3645
+ .aeonThread__meta {
3646
+ padding-inline: 0.2rem;
2178
3647
  }
2179
3648
 
2180
- .aeonTabs__content {
2181
- color: var(--colors-fg);
2182
- padding-inline: var(--spacing-inset-x-sm);
2183
- font-size: var(--font-sizes-sm);
2184
- line-height: 1.65;
2185
- padding-top: var(--spacing-pad-md);
3649
+ .aeonThread__meta,.aeonThread__day {
3650
+ font-size: 0.65rem;
3651
+ color: var(--colors-muted);
3652
+ }
3653
+
3654
+ .aeonThread__day {
3655
+ padding-block: 0.5rem;
3656
+ align-self: center;
3657
+ letter-spacing: 0.06em;
3658
+ text-transform: uppercase;
2186
3659
  }
2187
3660
 
2188
3661
  .aeonToast__viewport {
3662
+ gap: var(--spacing-gap-sm);
3663
+ outline: var(--borders-none);
2189
3664
  position: fixed;
2190
3665
  z-index: 60;
2191
3666
  display: flex;
2192
- gap: var(--spacing-gap-sm);
2193
- max-width: var(--sizes-full);
2194
- pointer-events: none;
2195
- outline: var(--borders-none);
2196
3667
  flex-direction: column;
3668
+ pointer-events: none;
3669
+ max-width: 26rem;
2197
3670
  }
2198
3671
 
2199
3672
  .aeonToast__viewport[data-placement="top-start"] {
3673
+ align-items: flex-start;
2200
3674
  top: var(--spacing-pad-md);
2201
3675
  left: var(--spacing-pad-md);
2202
- align-items: flex-start;
2203
3676
  }
2204
3677
 
2205
3678
  .aeonToast__viewport[data-placement="top-end"] {
3679
+ align-items: flex-end;
2206
3680
  top: var(--spacing-pad-md);
2207
3681
  right: var(--spacing-pad-md);
2208
- align-items: flex-end;
2209
3682
  }
2210
3683
 
2211
3684
  .aeonToast__viewport[data-placement="bottom-start"] {
3685
+ align-items: flex-start;
2212
3686
  bottom: var(--spacing-pad-md);
2213
3687
  left: var(--spacing-pad-md);
2214
- align-items: flex-start;
2215
3688
  }
2216
3689
 
2217
3690
  .aeonToast__viewport[data-placement="bottom-end"] {
3691
+ align-items: flex-end;
2218
3692
  bottom: var(--spacing-pad-md);
2219
3693
  right: var(--spacing-pad-md);
2220
- align-items: flex-end;
2221
3694
  }
2222
3695
 
2223
3696
  .aeonToast__root {
2224
- pointer-events: auto;
2225
- display: flex;
2226
- gap: var(--spacing-gap-sm);
2227
- max-width: var(--sizes-sm);
2228
3697
  padding: var(--spacing-pad-md);
2229
- border-radius: var(--radii-lg);
2230
3698
  background: var(--colors-surface-raised);
2231
- box-shadow: var(--shadows-panel);
2232
- color: var(--colors-fg);
3699
+ animation: aeonToastIn 0.25s ease-out;
3700
+ gap: var(--spacing-2);
3701
+ border-radius: var(--radii-md);
3702
+ border-left: 3px solid;
3703
+ pointer-events: auto;
3704
+ position: relative;
3705
+ display: flex;
2233
3706
  flex-direction: column;
2234
- border-width: 1px;
2235
- border-style: solid;
2236
- border-color: var(--colors-border);
3707
+ box-shadow: 0 4px 12px rgba(0,0,0,0.15);
3708
+ color: var(--colors-fg);
2237
3709
  font-family: var(--fonts-ui);
3710
+ max-width: 26rem;
3711
+ padding-left: var(--spacing-pad-lg);
3712
+ border-left-color: var(--colors-accent);
2238
3713
  }
2239
3714
 
2240
3715
  .aeonToast__title {
3716
+ font-size: var(--font-sizes-sm);
2241
3717
  font-weight: var(--font-weights-semibold);
2242
3718
  }
2243
3719
 
2244
3720
  .aeonToast__title,.aeonToast__description {
2245
3721
  margin: var(--spacing-0);
2246
- font-size: var(--font-sizes-sm);
3722
+ line-height: 1.4;
2247
3723
  }
2248
3724
 
2249
3725
  .aeonToast__description {
3726
+ font-size: var(--font-sizes-xs);
2250
3727
  color: var(--colors-muted);
2251
- line-height: 1.5;
2252
3728
  }
2253
3729
 
2254
3730
  .aeonToast__closeTrigger {
2255
- color: var(--colors-muted);
2256
- cursor: pointer;
2257
3731
  background: var(--colors-transparent);
2258
3732
  border: var(--borders-none);
2259
- align-self: flex-end;
2260
- font-size: var(--font-sizes-xs);
3733
+ padding: var(--spacing-0);
3734
+ margin: var(--spacing-0);
3735
+ border-radius: var(--radii-sm);
3736
+ position: absolute;
3737
+ display: inline-flex;
3738
+ align-items: center;
3739
+ justify-content: center;
3740
+ font-size: 0.75rem;
3741
+ line-height: 1;
3742
+ color: var(--colors-muted);
3743
+ cursor: pointer;
2261
3744
  font-family: var(--fonts-ui);
3745
+ top: var(--spacing-pad-sm);
3746
+ right: var(--spacing-pad-sm);
3747
+ width: 1.25rem;
3748
+ height: 1.25rem;
2262
3749
  }
2263
3750
 
2264
3751
  .aeonToast__closeTrigger:is(:hover, [data-hover]) {
3752
+ background: var(--colors-surface);
2265
3753
  color: var(--colors-fg);
2266
3754
  }
2267
3755
 
@@ -2278,26 +3766,316 @@
2278
3766
  .aeonTooltip__positioner {
2279
3767
  position: absolute;
2280
3768
  z-index: 50;
2281
- min-width: 10rem;
2282
3769
  top: auto;
2283
3770
  left: var(--spacing-0);
3771
+ min-width: 10rem;
2284
3772
  bottom: calc(100% + 0.35rem);
2285
3773
  }
2286
3774
 
2287
3775
  .aeonTooltip__content {
2288
- border-radius: var(--radii-md);
2289
3776
  background: var(--colors-surface-raised);
2290
- box-shadow: var(--shadows-panel);
2291
- color: var(--colors-fg);
2292
- padding-block: var(--spacing-inset-y-sm);
2293
- padding-inline: var(--spacing-inset-x);
2294
- max-width: 16rem;
3777
+ border-radius: var(--radii-md);
2295
3778
  border-width: 1px;
2296
3779
  border-style: solid;
2297
3780
  border-color: var(--colors-border);
3781
+ padding-block: var(--spacing-inset-y-sm);
3782
+ padding-inline: var(--spacing-inset-x);
3783
+ box-shadow: var(--shadows-panel);
3784
+ color: var(--colors-fg);
2298
3785
  font-family: var(--fonts-ui);
2299
3786
  font-size: var(--font-sizes-xs);
3787
+ max-width: 16rem;
3788
+ }
3789
+ }
3790
+
3791
+ .aeonAppShell__content--contentAlign_start {
3792
+ align-items: stretch;
3793
+ }
3794
+
3795
+ .aeonAppShell__content--contentAlign_center {
3796
+ align-items: center;
3797
+ justify-content: safe center;
3798
+ text-align: center;
3799
+ }
3800
+
3801
+ .aeonAvatar__root--size_md {
3802
+ width: 2.75rem;
3803
+ height: 2.75rem;
3804
+ }
3805
+
3806
+ .aeonAvatar__root--size_md [data-aeon-part=fallback] {
3807
+ font-size: 0.8125rem;
3808
+ }
3809
+
3810
+ .aeonAvatar__root--size_md [data-aeon-part=badge] {
3811
+ width: 0.7rem;
3812
+ height: 0.7rem;
3813
+ }
3814
+
3815
+ .aeonAvatar__root--size_xs {
3816
+ width: 1.75rem;
3817
+ height: 1.75rem;
3818
+ }
3819
+
3820
+ .aeonAvatar__root--size_xs [data-aeon-part=badge] {
3821
+ border-width: 1px;
3822
+ width: 0.45rem;
3823
+ height: 0.45rem;
3824
+ }
3825
+
3826
+ .aeonAvatar__root--size_xs [data-aeon-part=fallback] {
3827
+ font-size: 0.625rem;
3828
+ }
3829
+
3830
+ .aeonAvatar__root--size_sm {
3831
+ width: 2.25rem;
3832
+ height: 2.25rem;
3833
+ }
3834
+
3835
+ .aeonAvatar__root--size_sm [data-aeon-part=fallback] {
3836
+ font-size: 0.7rem;
3837
+ }
3838
+
3839
+ .aeonAvatar__root--size_sm [data-aeon-part=badge] {
3840
+ width: 0.55rem;
3841
+ height: 0.55rem;
3842
+ }
3843
+
3844
+ .aeonAvatar__root--size_lg {
3845
+ width: 3.25rem;
3846
+ height: 3.25rem;
3847
+ }
3848
+
3849
+ .aeonAvatar__root--size_lg [data-aeon-part=fallback] {
3850
+ font-size: 0.9375rem;
3851
+ }
3852
+
3853
+ .aeonAvatar__root--size_lg [data-aeon-part=badge] {
3854
+ width: 0.8rem;
3855
+ height: 0.8rem;
3856
+ }
3857
+
3858
+ .aeonAvatar__root--size_xl {
3859
+ width: 4.25rem;
3860
+ height: 4.25rem;
3861
+ }
3862
+
3863
+ .aeonAvatar__root--size_xl [data-aeon-part=fallback] {
3864
+ font-size: 1.125rem;
3865
+ }
3866
+
3867
+ .aeonAvatar__root--size_xl [data-aeon-part=badge] {
3868
+ width: 0.95rem;
3869
+ height: 0.95rem;
3870
+ }
3871
+
3872
+ .aeonBar__root--size_sm {
3873
+ padding-inline: 0.75rem;
3874
+ padding-block: 0.375rem;
3875
+ gap: 0.5rem;
3876
+ }
3877
+
3878
+ .aeonBar__leading--size_sm,.aeonBar__center--size_sm,.aeonBar__trailing--size_sm {
3879
+ gap: 0.375rem;
3880
+ }
3881
+
3882
+ .aeonBar__root--placement_top {
3883
+ position: relative;
3884
+ z-index: 50;
3885
+ width: 100%;
3886
+ }
3887
+
3888
+ .aeonBar__root--placement_top[data-aeon-state=collapsed] {
3889
+ padding-block: 0.25rem;
3890
+ min-height: 2.5rem;
3891
+ }
3892
+
3893
+ .aeonBar__root--size_xs {
3894
+ padding-inline: 0.5rem;
3895
+ padding-block: 0.25rem;
3896
+ gap: 0.25rem;
3897
+ }
3898
+
3899
+ .aeonBar__leading--size_xs,.aeonBar__center--size_xs,.aeonBar__trailing--size_xs {
3900
+ gap: 0.25rem;
3901
+ }
3902
+
3903
+ .aeonBar__root--size_md {
3904
+ padding-inline: 1rem;
3905
+ padding-block: 0.5rem;
3906
+ gap: 0.75rem;
3907
+ }
3908
+
3909
+ .aeonBar__leading--size_md,.aeonBar__center--size_md,.aeonBar__trailing--size_md {
3910
+ gap: 0.5rem;
3911
+ }
3912
+
3913
+ .aeonBar__root--size_lg {
3914
+ padding-inline: 1.5rem;
3915
+ padding-block: 0.75rem;
3916
+ gap: 1rem;
3917
+ }
3918
+
3919
+ .aeonBar__leading--size_lg,.aeonBar__center--size_lg,.aeonBar__trailing--size_lg {
3920
+ gap: 0.75rem;
3921
+ }
3922
+
3923
+ .aeonBar__root--placement_bottom {
3924
+ position: fixed;
3925
+ z-index: 55;
3926
+ left: var(--spacing-0);
3927
+ right: var(--spacing-0);
3928
+ bottom: var(--spacing-0);
3929
+ padding-bottom: env(safe-area-inset-bottom, 0px);
3930
+ }
3931
+
3932
+ .aeonBar__root--placement_inline {
3933
+ position: relative;
3934
+ z-index: 1;
3935
+ }
3936
+
3937
+ .aeonContent__root--align_center {
3938
+ align-items: center;
3939
+ justify-content: safe center;
3940
+ text-align: center;
3941
+ min-height: var(--sizes-0);
3942
+ }
3943
+
3944
+ .aeonContent__root--align_center [data-aeon-part=body] {
3945
+ align-items: center;
3946
+ width: 100%;
3947
+ max-width: 20rem;
3948
+ }
3949
+
3950
+ .aeonContent__root--align_center [data-aeon-part=toolbar] {
3951
+ justify-content: center;
3952
+ }
3953
+
3954
+ .aeonEntry__root--density_cozy {
3955
+ padding: 0.85rem;
3956
+ gap: 0.65rem;
3957
+ }
3958
+
3959
+ .aeonEntry__title--density_cozy,.aeonEntry__body--density_cozy {
3960
+ font-size: 0.875rem;
3961
+ }
3962
+
3963
+ .aeonEntry__root--layout_split {
3964
+ display: grid;
3965
+ grid-template-columns: 5.75rem minmax(0, 1fr);
3966
+ grid-template-rows: auto;
3967
+ column-gap: 0.65rem;
3968
+ align-items: start;
3969
+ }
3970
+
3971
+ .aeonEntry__root--layout_split > [data-aeon-part=media] {
3972
+ grid-column: 1;
3973
+ grid-row: 1 / span 6;
3974
+ aspect-ratio: 1;
3975
+ align-self: stretch;
3976
+ min-height: 5.75rem;
3977
+ }
3978
+
3979
+ .aeonEntry__root--layout_split > [data-aeon-part=header],.aeonEntry__root--layout_split > [data-aeon-part=body],.aeonEntry__root--layout_split > [data-aeon-part=values],.aeonEntry__root--layout_split > [data-aeon-part=actions],.aeonEntry__root--layout_split > [data-aeon-part=footer] {
3980
+ grid-column: 2;
3981
+ }
3982
+
3983
+ .aeonNav__item--size_sm {
3984
+ padding-inline: 0.5rem;
3985
+ padding-block: 0.375rem;
3986
+ }
3987
+
3988
+ .aeonNav__label--size_sm {
3989
+ font-size: var(--font-sizes-xs);
3990
+ }
3991
+
3992
+ .aeonNav__icon--size_sm {
3993
+ width: 1.2rem;
3994
+ height: 1.2rem;
3995
+ }
3996
+
3997
+ .aeonNav__item--size_lg {
3998
+ padding-inline: 1rem;
3999
+ padding-block: 0.625rem;
4000
+ }
4001
+
4002
+ .aeonNav__label--size_lg {
4003
+ font-size: var(--font-sizes-md);
4004
+ }
4005
+
4006
+ .aeonNav__icon--size_lg {
4007
+ width: 1.5rem;
4008
+ height: 1.5rem;
4009
+ }
4010
+
4011
+ .aeonNav__root--layout_dock {
4012
+ gap: 0.1rem;
4013
+ display: flex;
4014
+ align-items: stretch;
4015
+ justify-content: space-between;
4016
+ width: 100%;
4017
+ min-height: 2.75rem;
4018
+ }
4019
+
4020
+ .aeonNav__root--layout_dock [data-aeon-part=item] {
4021
+ flex: 1 1 0%;
4022
+ gap: 0.12rem;
4023
+ padding-inline: 0.12rem;
4024
+ padding-block: 0.22rem;
4025
+ border-radius: var(--radii-md);
4026
+ flex-direction: column;
4027
+ align-items: center;
4028
+ justify-content: center;
4029
+ min-width: var(--sizes-0);
4030
+ }
4031
+
4032
+ .aeonNav__root--layout_dock [data-aeon-part=label] {
4033
+ overflow: hidden;
4034
+ font-size: 0.62rem;
4035
+ text-overflow: ellipsis;
4036
+ white-space: nowrap;
4037
+ max-width: 100%;
4038
+ }
4039
+
4040
+ .aeonNav__root--layout_dock [data-aeon-part=indicator] {
4041
+ display: none;
4042
+ }
4043
+
4044
+ .aeonNav__root--layout_dock [data-aeon-part=icon] {
4045
+ width: 1.25rem;
4046
+ height: 1.25rem;
4047
+ }
4048
+
4049
+ .aeonPanel__root--size_lg[data-aeon-state=collapsed] {
4050
+ flex-basis: 3rem;
4051
+ width: 3rem;
4052
+ min-width: 3rem;
4053
+ max-width: 3rem;
4054
+ }
4055
+
4056
+ .aeonProfileHeader__root--align_center {
4057
+ align-items: center;
4058
+ text-align: center;
4059
+ }
4060
+
4061
+ .aeonProfileHeader__root--align_center [data-aeon-part=media] {
4062
+ border-radius: var(--radii-full);
4063
+ aspect-ratio: 1;
4064
+ max-width: 7.5rem;
4065
+ }
4066
+
4067
+ .aeonProfileHeader__root--align_center [data-aeon-part=identity] {
4068
+ flex-direction: column;
4069
+ justify-content: center;
4070
+ }
4071
+
4072
+ .aeonProfileHeader__root--align_center [data-aeon-part=metrics],.aeonProfileHeader__root--align_center [data-aeon-part=actions] {
4073
+ justify-content: center;
2300
4074
  }
4075
+
4076
+ .aeonProfileHeader__root--align_center [data-aeon-part=body] {
4077
+ align-items: center;
4078
+ text-align: center;
2301
4079
  }
2302
4080
 
2303
4081
  .aeonScroll__viewport--axis_both {
@@ -2316,18 +4094,107 @@
2316
4094
  width: 100%;
2317
4095
  height: 1px;
2318
4096
  }
4097
+
4098
+ .aeonThemeSwitcher__root--size_sm {
4099
+ gap: 0.375rem;
2319
4100
  }
2320
4101
 
2321
- @layer utilities{
4102
+ .aeonThemeSwitcher__modeBtn--size_sm {
4103
+ padding-inline: 0.4rem;
4104
+ font-size: var(--font-sizes-xs);
4105
+ min-width: 2.25rem;
4106
+ }
4107
+
4108
+ .aeonThemeSwitcher__themeSelect--size_sm {
4109
+ max-width: 6rem;
4110
+ }
4111
+
4112
+ .aeonThemeSwitcher__themeTrigger--size_sm {
4113
+ padding-inline: 0.4rem 1.25rem;
4114
+ font-size: var(--font-sizes-xs);
4115
+ }
2322
4116
 
2323
- .max-h_sm {
2324
- max-height: var(--sizes-sm);
4117
+ .aeonThemeSwitcher__root--size_xs {
4118
+ gap: 0.25rem;
2325
4119
  }
2326
4120
 
4121
+ .aeonThemeSwitcher__modeBtn--size_xs {
4122
+ padding-inline: 0.3rem;
4123
+ font-size: var(--font-sizes-xs);
4124
+ min-width: 2rem;
4125
+ min-height: 2rem;
4126
+ }
4127
+
4128
+ .aeonThemeSwitcher__themeSelect--size_xs {
4129
+ max-width: 4.5rem;
4130
+ }
4131
+
4132
+ .aeonThemeSwitcher__themeTrigger--size_xs {
4133
+ padding-inline: 0.3rem 1rem;
4134
+ font-size: var(--font-sizes-xs);
4135
+ min-height: 2rem;
4136
+ }
4137
+
4138
+ .aeonThemeSwitcher__root--size_md {
4139
+ gap: 0.5rem;
4140
+ }
4141
+
4142
+ .aeonThemeSwitcher__modeBtn--size_md {
4143
+ padding-inline: 0.5rem;
4144
+ font-size: var(--font-sizes-sm);
4145
+ min-width: 2.75rem;
4146
+ }
4147
+
4148
+ .aeonThemeSwitcher__themeSelect--size_md {
4149
+ max-width: 7.5rem;
4150
+ }
4151
+
4152
+ .aeonThemeSwitcher__themeTrigger--size_md {
4153
+ padding-inline: 0.5rem 1.5rem;
4154
+ font-size: var(--font-sizes-sm);
4155
+ }
4156
+
4157
+ @media (max-width: 640px) {
4158
+ .aeonBar__root--collapse_wrap {
4159
+ flex-wrap: wrap;
4160
+ }
4161
+ .aeonBar__leading--collapse_wrap {
4162
+ flex: 1 1 100%;
4163
+ order: 1;
4164
+ }
4165
+ .aeonBar__center--collapse_wrap {
4166
+ flex: 1 1 100%;
4167
+ order: 2;
4168
+ }
4169
+ .aeonBar__trailing--collapse_wrap {
4170
+ flex: 1 1 100%;
4171
+ order: 3;
4172
+ justify-content: flex-end;
4173
+ }
4174
+ .aeonBar__center--collapse_collapse-center {
4175
+ display: none;
4176
+ }
4177
+ }
4178
+ }
4179
+
4180
+ @layer utilities{
4181
+
2327
4182
  .flex_1 {
2328
4183
  flex: 1 1 0%;
2329
4184
  }
2330
4185
 
4186
+ .columns_4 {
4187
+ columns: 4;
4188
+ }
4189
+
4190
+ .stk-w_2 {
4191
+ stroke-width: 2;
4192
+ }
4193
+
4194
+ .stk-w_1\.75 {
4195
+ stroke-width: 1.75;
4196
+ }
4197
+
2331
4198
  .min-w_0 {
2332
4199
  min-width: var(--sizes-0);
2333
4200
  }