@esportsplus/ui 0.57.0 → 0.58.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 (490) hide show
  1. package/README.md +123 -39
  2. package/build/components/accordion/group.d.ts +14 -0
  3. package/build/components/accordion/group.js +21 -0
  4. package/build/components/accordion/index.d.ts +9 -0
  5. package/build/components/accordion/index.js +20 -3
  6. package/build/components/accordion/scss/index.scss +1 -1
  7. package/build/components/announcement/scss/index.scss +1 -1
  8. package/build/components/breadcrumb/scss/index.scss +1 -1
  9. package/build/components/button/scss/index.scss +1 -1
  10. package/build/components/button/sidebar.d.ts +3 -0
  11. package/build/components/button/sidebar.js +40 -10
  12. package/build/components/capslock/index.js +1 -1
  13. package/build/components/capslock/scss/index.scss +1 -1
  14. package/build/components/card/scss/index.scss +1 -1
  15. package/build/components/cc/scss/index.scss +1 -1
  16. package/build/components/chat-minimap/scss/index.scss +1 -1
  17. package/build/components/checkbox/scss/index.scss +1 -1
  18. package/build/components/color-picker/index.d.ts +1 -0
  19. package/build/components/color-picker/index.js +166 -136
  20. package/build/components/color-picker/scss/index.scss +1 -1
  21. package/build/components/command/index.d.ts +0 -1
  22. package/build/components/command/index.js +3 -2
  23. package/build/components/command/scss/index.scss +1 -1
  24. package/build/components/copy/scss/index.scss +1 -1
  25. package/build/components/counter/scss/index.scss +1 -1
  26. package/build/components/datalist/index.js +3 -3
  27. package/build/components/datalist/scss/index.scss +1 -1
  28. package/build/components/dock/scss/index.scss +1 -1
  29. package/build/components/editor/code/index.d.ts +0 -1
  30. package/build/components/editor/code/index.js +0 -1
  31. package/build/components/editor/code/minimap.d.ts +2 -1
  32. package/build/components/editor/code/minimap.js +5 -2
  33. package/build/components/editor/code/view.d.ts +3 -1
  34. package/build/components/editor/code/view.js +37 -26
  35. package/build/components/editor/diffs/index.d.ts +0 -1
  36. package/build/components/editor/diffs/index.js +0 -1
  37. package/build/components/editor/diffs/merge.js +7 -3
  38. package/build/components/editor/diffs/view.js +3 -1
  39. package/build/components/editor/index.d.ts +4 -1
  40. package/build/components/editor/index.js +2 -1
  41. package/build/components/editor/markdown/editing.js +22 -3
  42. package/build/components/editor/markdown/erase.d.ts +9 -0
  43. package/build/components/editor/markdown/erase.js +78 -0
  44. package/build/components/editor/markdown/index.d.ts +0 -1
  45. package/build/components/editor/markdown/index.js +0 -1
  46. package/build/components/editor/markdown/layout.d.ts +2 -9
  47. package/build/components/editor/markdown/layout.js +2 -7
  48. package/build/components/editor/markdown/render.d.ts +0 -1
  49. package/build/components/editor/markdown/render.js +287 -235
  50. package/build/components/editor/markdown/view.js +566 -667
  51. package/build/components/editor/viewer/index.d.ts +27 -0
  52. package/build/components/editor/viewer/index.js +250 -0
  53. package/build/components/editor/viewer/model.d.ts +15 -0
  54. package/build/components/editor/viewer/model.js +73 -0
  55. package/build/components/editor/workspace/index.d.ts +6 -2
  56. package/build/components/editor/workspace/index.js +243 -137
  57. package/build/components/editor/workspace/keybindings.d.ts +37 -0
  58. package/build/components/editor/workspace/keybindings.js +288 -0
  59. package/build/components/editor/workspace/model.d.ts +55 -2
  60. package/build/components/editor/workspace/model.js +141 -3
  61. package/build/components/editor/workspace/navigate.d.ts +19 -0
  62. package/build/components/editor/workspace/navigate.js +118 -0
  63. package/build/components/editor/workspace/session.d.ts +29 -0
  64. package/build/components/editor/workspace/session.js +373 -0
  65. package/build/components/editor/workspace/shortcuts.d.ts +19 -0
  66. package/build/components/editor/workspace/shortcuts.js +185 -0
  67. package/build/components/editor/workspace/status.d.ts +34 -0
  68. package/build/components/editor/workspace/status.js +193 -0
  69. package/build/components/editor/workspace/statusbar.d.ts +15 -0
  70. package/build/components/editor/workspace/statusbar.js +190 -0
  71. package/build/components/editor/workspace/strip.d.ts +27 -0
  72. package/build/components/editor/workspace/strip.js +239 -0
  73. package/build/components/editor/workspace/tabs.d.ts +15 -0
  74. package/build/components/editor/workspace/tabs.js +63 -0
  75. package/build/components/error/index.js +1 -1
  76. package/build/components/error/scss/index.scss +1 -1
  77. package/build/components/filter/index.js +5 -3
  78. package/build/components/filter/scss/index.scss +1 -1
  79. package/build/components/frame/scss/index.scss +1 -1
  80. package/build/components/heatmap/index.js +3 -3
  81. package/build/components/heatmap/scss/index.scss +1 -1
  82. package/build/components/highlight/scss/index.scss +1 -1
  83. package/build/components/icon/scss/index.scss +1 -1
  84. package/build/components/image/scss/index.scss +1 -1
  85. package/build/components/index.d.ts +2 -0
  86. package/build/components/index.js +2 -0
  87. package/build/components/inline-edit/scss/index.scss +1 -1
  88. package/build/components/input/scss/index.scss +1 -1
  89. package/build/components/link/scss/index.scss +1 -1
  90. package/build/components/loading/scss/index.scss +1 -1
  91. package/build/components/marquee/scss/index.scss +1 -1
  92. package/build/components/metric/scss/index.scss +1 -1
  93. package/build/components/nav/index.d.ts +1 -1
  94. package/build/components/nav/scss/index.scss +1 -1
  95. package/build/components/nav/tree.d.ts +3 -1
  96. package/build/components/nav/tree.js +30 -60
  97. package/build/components/notification/scss/index.scss +1 -1
  98. package/build/components/overlay/scss/index.scss +1 -1
  99. package/build/components/page/scss/index.scss +1 -1
  100. package/build/components/pagination/arrows.d.ts +15 -0
  101. package/build/components/pagination/arrows.js +65 -0
  102. package/build/components/pagination/cards.d.ts +23 -0
  103. package/build/components/pagination/cards.js +66 -0
  104. package/build/components/pagination/index.d.ts +5 -0
  105. package/build/components/pagination/index.js +3 -1
  106. package/build/components/pagination/scss/index.scss +1 -1
  107. package/build/components/progress/scss/index.scss +1 -1
  108. package/build/components/pull-to-refresh/scss/index.scss +1 -1
  109. package/build/components/range/index.js +1 -1
  110. package/build/components/range/scss/index.scss +1 -1
  111. package/build/components/relative-time/scss/index.scss +1 -1
  112. package/build/components/root/scss/index.scss +1 -1
  113. package/build/components/section/scss/index.scss +2 -0
  114. package/build/components/select/index.d.ts +1 -0
  115. package/build/components/select/index.js +16 -11
  116. package/build/components/select/scss/index.scss +1 -1
  117. package/build/components/shortcut-recorder/scss/index.scss +1 -1
  118. package/build/components/sortable/scss/index.scss +1 -1
  119. package/build/components/sticky-header/index.js +3 -3
  120. package/build/components/sticky-header/scss/index.scss +1 -1
  121. package/build/components/story/scss/index.scss +1 -1
  122. package/build/components/surface-field/scss/index.scss +1 -1
  123. package/build/components/tasklist/scss/index.scss +1 -1
  124. package/build/components/text/scss/index.scss +1 -1
  125. package/build/components/textarea/scss/index.scss +1 -1
  126. package/build/{css-utilities → components}/theme/index.d.ts +1 -1
  127. package/build/{css-utilities → components}/theme/index.js +15 -5
  128. package/build/components/theme/scss/index.scss +2 -0
  129. package/build/components/theme-picker/index.d.ts +52 -0
  130. package/build/components/theme-picker/index.js +167 -0
  131. package/build/components/theme-picker/scss/index.scss +2 -0
  132. package/build/components/toast/index.js +3 -5
  133. package/build/components/toast/scss/index.scss +1 -1
  134. package/build/components/tooltip/menu.js +3 -1
  135. package/build/components/tooltip/scss/index.scss +1 -1
  136. package/build/components/typewriter/scss/index.scss +1 -1
  137. package/build/components/uptime/scss/index.scss +1 -1
  138. package/build/components/usage-meter/scss/index.scss +1 -1
  139. package/build/{css-utilities → modifiers}/glass/index.d.ts +2 -2
  140. package/build/modifiers/glass/index.js +28 -0
  141. package/build/modifiers/glass/scss/index.scss +2 -0
  142. package/build/{css-utilities → modifiers}/index.d.ts +0 -1
  143. package/build/{css-utilities → modifiers}/index.js +0 -1
  144. package/build/modifiers/scrollbar/index.d.ts +72 -0
  145. package/build/{css-utilities → modifiers}/scrollbar/index.js +52 -19
  146. package/build/modifiers/scrollbar/scss/index.scss +2 -0
  147. package/build/normalize/scss/index.scss +1 -2
  148. package/layer.scss +1 -1
  149. package/package.json +11 -18
  150. package/scripts/code-editor-markdown.test.mjs +45 -14
  151. package/scripts/code-viewer.test.mjs +69 -0
  152. package/scripts/workspace-keybindings.test.mjs +273 -0
  153. package/scripts/workspace-session.test.mjs +349 -0
  154. package/scripts/workspace-status.test.mjs +229 -0
  155. package/scripts/workspace-tabs.test.mjs +142 -0
  156. package/src/components/accordion/group.ts +39 -0
  157. package/src/components/accordion/index.ts +32 -6
  158. package/src/components/accordion/scss/index.scss +12 -21
  159. package/src/components/accordion/scss/variables.scss +18 -3
  160. package/src/components/announcement/scss/index.scss +4 -4
  161. package/src/components/announcement/scss/variables.scss +6 -6
  162. package/src/components/banner/scss/index.scss +1 -1
  163. package/src/components/breadcrumb/scss/index.scss +35 -50
  164. package/src/components/breadcrumb/scss/variables.scss +23 -31
  165. package/src/components/button/scss/_fan.scss +39 -43
  166. package/src/components/button/scss/_morph.scss +66 -78
  167. package/src/components/button/scss/_sidebar.scss +41 -30
  168. package/src/components/button/scss/_split.scss +9 -9
  169. package/src/components/button/scss/index.scss +23 -19
  170. package/src/components/button/scss/variables.scss +94 -90
  171. package/src/components/button/sidebar.ts +36 -24
  172. package/src/components/capslock/index.ts +2 -2
  173. package/src/components/capslock/scss/index.scss +11 -6
  174. package/src/components/capslock/scss/variables.scss +3 -5
  175. package/src/components/card/scss/_expand.scss +58 -64
  176. package/src/components/card/scss/index.scss +40 -21
  177. package/src/components/card/scss/variables.scss +40 -31
  178. package/src/components/cc/scss/index.scss +68 -68
  179. package/src/components/cc/scss/variables.scss +13 -14
  180. package/src/components/chat-minimap/scss/index.scss +24 -16
  181. package/src/components/chat-minimap/scss/variables.scss +37 -37
  182. package/src/components/checkbox/scss/index.scss +54 -52
  183. package/src/components/checkbox/scss/variables.scss +37 -39
  184. package/src/components/color-picker/index.ts +157 -120
  185. package/src/components/color-picker/scss/index.scss +159 -96
  186. package/src/components/color-picker/scss/variables.scss +33 -15
  187. package/src/components/command/index.ts +3 -2
  188. package/src/components/command/scss/index.scss +10 -14
  189. package/src/components/command/scss/variables.scss +12 -35
  190. package/src/components/copy/scss/index.scss +6 -6
  191. package/src/components/copy/scss/variables.scss +12 -15
  192. package/src/components/counter/scss/index.scss +14 -14
  193. package/src/components/counter/scss/variables.scss +1 -1
  194. package/src/components/datalist/index.ts +3 -3
  195. package/src/components/datalist/scss/index.scss +7 -6
  196. package/src/components/datalist/scss/variables.scss +7 -3
  197. package/src/components/dock/scss/index.scss +10 -15
  198. package/src/components/dock/scss/variables.scss +29 -25
  199. package/src/components/editor/code/index.ts +0 -1
  200. package/src/components/editor/code/minimap.ts +13 -5
  201. package/src/components/editor/code/scss/_editor.scss +83 -81
  202. package/src/components/editor/code/scss/_features.scss +106 -97
  203. package/src/components/editor/code/scss/_services.scss +27 -25
  204. package/src/components/editor/code/scss/index.scss +0 -1
  205. package/src/components/editor/code/scss/variables.scss +30 -26
  206. package/src/components/editor/code/view.ts +14 -5
  207. package/src/components/editor/diffs/index.ts +0 -1
  208. package/src/components/editor/diffs/merge.ts +2 -1
  209. package/src/components/editor/diffs/scss/_diffs.scss +67 -57
  210. package/src/components/editor/diffs/scss/_merge.scss +17 -14
  211. package/src/components/editor/diffs/scss/index.scss +0 -1
  212. package/src/components/editor/diffs/scss/variables.scss +25 -18
  213. package/src/components/editor/diffs/view.ts +2 -1
  214. package/src/components/editor/index.ts +7 -1
  215. package/src/components/editor/markdown/editing.ts +38 -3
  216. package/src/components/editor/markdown/erase.ts +124 -0
  217. package/src/components/editor/markdown/index.ts +0 -1
  218. package/src/components/editor/markdown/layout.ts +3 -12
  219. package/src/components/editor/markdown/render.ts +65 -37
  220. package/src/components/editor/markdown/scss/index.scss +92 -124
  221. package/src/components/editor/markdown/scss/variables.scss +39 -19
  222. package/src/components/editor/markdown/view.ts +737 -786
  223. package/src/components/editor/tree/scss/index.scss +121 -110
  224. package/src/components/editor/tree/scss/variables.scss +48 -54
  225. package/src/components/editor/viewer/index.ts +321 -0
  226. package/src/components/editor/viewer/model.ts +130 -0
  227. package/src/components/editor/viewer/scss/_viewer.scss +302 -0
  228. package/src/components/editor/viewer/scss/index.scss +2 -0
  229. package/src/components/editor/viewer/scss/variables.scss +69 -0
  230. package/src/components/editor/workspace/index.ts +159 -31
  231. package/src/components/editor/workspace/keybindings.ts +447 -0
  232. package/src/components/editor/workspace/model.ts +233 -3
  233. package/src/components/editor/workspace/navigate.ts +194 -0
  234. package/src/components/editor/workspace/scss/index.scss +72 -59
  235. package/src/components/editor/workspace/scss/keybindings.scss +190 -0
  236. package/src/components/editor/workspace/scss/status.scss +122 -0
  237. package/src/components/editor/workspace/scss/tabs.scss +56 -0
  238. package/src/components/editor/workspace/session.ts +551 -0
  239. package/src/components/editor/workspace/shortcuts.ts +255 -0
  240. package/src/components/editor/workspace/status.ts +259 -0
  241. package/src/components/editor/workspace/statusbar.ts +255 -0
  242. package/src/components/editor/workspace/strip.ts +273 -0
  243. package/src/components/editor/workspace/tabs.ts +106 -0
  244. package/src/components/error/index.ts +1 -1
  245. package/src/components/error/scss/index.scss +19 -19
  246. package/src/components/error/scss/variables.scss +2 -2
  247. package/src/components/filter/index.ts +7 -2
  248. package/src/components/filter/scss/index.scss +1 -1
  249. package/src/components/filter/scss/variables.scss +11 -10
  250. package/src/components/frame/scss/index.scss +12 -12
  251. package/src/components/frame/scss/variables.scss +8 -8
  252. package/src/components/heatmap/index.ts +3 -3
  253. package/src/components/heatmap/scss/index.scss +28 -26
  254. package/src/components/heatmap/scss/variables.scss +18 -17
  255. package/src/components/highlight/scss/index.scss +17 -13
  256. package/src/components/highlight/scss/variables.scss +8 -10
  257. package/src/components/icon/scss/index.scss +10 -0
  258. package/src/components/icon/scss/variables.scss +5 -0
  259. package/src/components/image/scss/index.scss +9 -9
  260. package/src/components/image/scss/variables.scss +7 -2
  261. package/src/components/index.ts +2 -0
  262. package/src/components/inline-edit/scss/index.scss +99 -104
  263. package/src/components/inline-edit/scss/variables.scss +40 -39
  264. package/src/components/input/scss/_field.scss +6 -20
  265. package/src/components/input/scss/_scrub.scss +10 -8
  266. package/src/components/input/scss/_tag.scss +35 -37
  267. package/src/components/input/scss/variables.scss +100 -99
  268. package/src/components/link/scss/index.scss +4 -1
  269. package/src/components/loading/scss/index.scss +1 -1
  270. package/src/components/loading/scss/variables.scss +1 -1
  271. package/src/components/marquee/scss/index.scss +9 -5
  272. package/src/components/marquee/scss/variables.scss +3 -1
  273. package/src/components/metric/scss/_flash.scss +3 -1
  274. package/src/components/metric/scss/index.scss +8 -6
  275. package/src/components/metric/scss/variables.scss +26 -20
  276. package/src/components/nav/index.ts +1 -1
  277. package/src/components/nav/scss/index.scss +12 -40
  278. package/src/components/nav/scss/variables.scss +30 -11
  279. package/src/components/nav/tree.ts +19 -62
  280. package/src/components/notification/scss/index.scss +7 -7
  281. package/src/components/notification/scss/variables.scss +7 -9
  282. package/src/components/overlay/scss/index.scss +181 -170
  283. package/src/components/overlay/scss/variables.scss +26 -57
  284. package/src/components/page/scss/index.scss +12 -11
  285. package/src/components/page/scss/variables.scss +5 -0
  286. package/src/components/pagination/arrows.ts +58 -0
  287. package/src/components/pagination/cards.ts +57 -0
  288. package/src/components/pagination/index.ts +4 -1
  289. package/src/components/pagination/scss/_arrows.scss +69 -0
  290. package/src/components/pagination/scss/_cards.scss +121 -0
  291. package/src/components/pagination/scss/_dots.scss +2 -5
  292. package/src/components/pagination/scss/index.scss +8 -6
  293. package/src/components/pagination/scss/variables.scss +87 -37
  294. package/src/components/progress/scss/_text.scss +21 -18
  295. package/src/components/progress/scss/index.scss +1 -1
  296. package/src/components/progress/scss/variables.scss +12 -12
  297. package/src/components/pull-to-refresh/scss/index.scss +2 -1
  298. package/src/components/pull-to-refresh/scss/variables.scss +11 -6
  299. package/src/components/range/index.ts +1 -1
  300. package/src/components/range/scss/_filter.scss +62 -51
  301. package/src/components/range/scss/_slider.scss +78 -75
  302. package/src/components/range/scss/_vertical.scss +6 -6
  303. package/src/components/range/scss/index.scss +3 -2
  304. package/src/components/range/scss/variables.scss +26 -23
  305. package/src/components/relative-time/scss/index.scss +27 -27
  306. package/src/components/relative-time/scss/variables.scss +10 -12
  307. package/src/components/root/scss/index.scss +71 -43
  308. package/src/components/root/scss/variables.scss +35 -31
  309. package/src/components/section/scss/index.scss +31 -0
  310. package/src/components/section/scss/variables.scss +21 -0
  311. package/src/components/select/index.ts +11 -6
  312. package/src/components/select/scss/index.scss +21 -32
  313. package/src/components/select/scss/variables.scss +25 -18
  314. package/src/components/shortcut-recorder/scss/index.scss +13 -12
  315. package/src/components/shortcut-recorder/scss/variables.scss +12 -13
  316. package/src/components/sortable/scss/index.scss +47 -44
  317. package/src/components/sortable/scss/variables.scss +4 -5
  318. package/src/components/sticky-header/index.ts +4 -4
  319. package/src/components/sticky-header/scss/index.scss +14 -13
  320. package/src/components/sticky-header/scss/variables.scss +9 -9
  321. package/src/components/story/scss/index.scss +26 -30
  322. package/src/components/story/scss/variables.scss +16 -9
  323. package/src/components/surface-field/scss/index.scss +45 -40
  324. package/src/components/surface-field/scss/variables.scss +5 -6
  325. package/src/components/tasklist/scss/index.scss +19 -19
  326. package/src/components/tasklist/scss/variables.scss +26 -29
  327. package/src/components/text/scss/index.scss +2 -1
  328. package/src/components/textarea/scss/variables.scss +1 -1
  329. package/src/{css-utilities → components}/theme/index.ts +17 -3
  330. package/src/components/theme/scss/index.scss +1 -0
  331. package/src/components/theme/scss/variables.scss +78 -0
  332. package/src/components/theme-picker/index.ts +231 -0
  333. package/src/components/theme-picker/scss/index.scss +264 -0
  334. package/src/components/toast/index.ts +28 -30
  335. package/src/components/toast/scss/index.scss +87 -87
  336. package/src/components/toast/scss/variables.scss +39 -39
  337. package/src/components/tooltip/menu.ts +4 -1
  338. package/src/components/tooltip/scss/_east.scss +10 -10
  339. package/src/components/tooltip/scss/_menu.scss +284 -269
  340. package/src/components/tooltip/scss/_north.scss +10 -10
  341. package/src/components/tooltip/scss/_shared.scss +7 -7
  342. package/src/components/tooltip/scss/_south.scss +10 -10
  343. package/src/components/tooltip/scss/_west.scss +10 -10
  344. package/src/components/tooltip/scss/index.scss +21 -20
  345. package/src/components/tooltip/scss/variables.scss +104 -96
  346. package/src/components/typewriter/scss/_retype.scss +12 -11
  347. package/src/components/typewriter/scss/_rotate.scss +2 -1
  348. package/src/components/typewriter/scss/variables.scss +41 -39
  349. package/src/components/uptime/scss/index.scss +15 -15
  350. package/src/components/uptime/scss/variables.scss +8 -8
  351. package/src/components/usage-meter/scss/index.scss +3 -1
  352. package/src/components/usage-meter/scss/variables.scss +5 -5
  353. package/src/css-utilities/absolute.scss +64 -0
  354. package/src/css-utilities/background.scss +43 -0
  355. package/src/css-utilities/border.scss +45 -0
  356. package/src/css-utilities/box-shadow.scss +29 -0
  357. package/src/css-utilities/color.scss +41 -0
  358. package/src/css-utilities/flex.scss +64 -0
  359. package/src/css-utilities/font/geist/{scss/index.scss → index.scss} +12 -4
  360. package/src/css-utilities/font/montserrat/Montserrat-Italic-Variable.woff2 +0 -0
  361. package/src/css-utilities/font/montserrat/Montserrat-Variable.woff2 +0 -0
  362. package/src/css-utilities/font/montserrat/OFL.txt +93 -0
  363. package/src/css-utilities/font/montserrat/index.scss +38 -0
  364. package/src/{shared/scss → css-utilities}/icon.scss +1 -1
  365. package/src/css-utilities/{inline/scss/index.scss → inline.scss} +1 -1
  366. package/src/css-utilities/{skeleton/scss/index.scss → skeleton.scss} +11 -11
  367. package/src/css-utilities/surface.scss +266 -0
  368. package/src/css-utilities/text.scss +191 -0
  369. package/src/modifiers/glass/index.ts +44 -0
  370. package/src/{css-utilities → modifiers}/glass/scss/index.scss +6 -6
  371. package/src/{css-utilities → modifiers}/glass/scss/variables.scss +1 -1
  372. package/src/{css-utilities → modifiers}/index.ts +0 -1
  373. package/src/{css-utilities → modifiers}/scrollbar/index.ts +92 -17
  374. package/src/{css-utilities → modifiers}/scrollbar/scss/index.scss +178 -177
  375. package/src/{css-utilities → modifiers}/scrollbar/scss/variables.scss +28 -21
  376. package/src/normalize/scss/index.scss +4 -2
  377. package/src/shared/scss/color-weights.scss +19 -0
  378. package/src/shared/scss/index.scss +1 -12
  379. package/src/tokens/scss/blur.scss +5 -0
  380. package/src/tokens/scss/color.scss +74 -50
  381. package/src/tokens/scss/index.scss +1 -2
  382. package/src/tokens/scss/size.scss +0 -2
  383. package/src/tokens/scss/state.scss +3 -2
  384. package/src/tokens/scss/transition.scss +19 -2
  385. package/storage/svg/monitor.svg +1 -0
  386. package/storage/svg/moon.svg +1 -0
  387. package/storage/svg/pin.svg +1 -0
  388. package/storage/svg/sun.svg +1 -0
  389. package/vite.config.ts +33 -8
  390. package/build/css-utilities/background/scss/index.scss +0 -2
  391. package/build/css-utilities/border/scss/index.scss +0 -2
  392. package/build/css-utilities/color/scss/index.scss +0 -2
  393. package/build/css-utilities/flex/scss/index.scss +0 -2
  394. package/build/css-utilities/font/geist/index.d.ts +0 -1
  395. package/build/css-utilities/font/geist/index.js +0 -1
  396. package/build/css-utilities/font/geist/scss/index.scss +0 -2
  397. package/build/css-utilities/font/montserrat/index.d.ts +0 -1
  398. package/build/css-utilities/font/montserrat/index.js +0 -1
  399. package/build/css-utilities/font/montserrat/scss/Montserrat-Bold.woff +0 -0
  400. package/build/css-utilities/font/montserrat/scss/Montserrat-Bold.woff2 +0 -0
  401. package/build/css-utilities/font/montserrat/scss/Montserrat-BoldItalic.woff +0 -0
  402. package/build/css-utilities/font/montserrat/scss/Montserrat-BoldItalic.woff2 +0 -0
  403. package/build/css-utilities/font/montserrat/scss/Montserrat-Italic.woff +0 -0
  404. package/build/css-utilities/font/montserrat/scss/Montserrat-Italic.woff2 +0 -0
  405. package/build/css-utilities/font/montserrat/scss/Montserrat-Medium.woff +0 -0
  406. package/build/css-utilities/font/montserrat/scss/Montserrat-Medium.woff2 +0 -0
  407. package/build/css-utilities/font/montserrat/scss/Montserrat-MediumItalic.woff +0 -0
  408. package/build/css-utilities/font/montserrat/scss/Montserrat-MediumItalic.woff2 +0 -0
  409. package/build/css-utilities/font/montserrat/scss/Montserrat-Regular.woff +0 -0
  410. package/build/css-utilities/font/montserrat/scss/Montserrat-Regular.woff2 +0 -0
  411. package/build/css-utilities/font/montserrat/scss/Montserrat-SemiBold.woff +0 -0
  412. package/build/css-utilities/font/montserrat/scss/Montserrat-SemiBold.woff2 +0 -0
  413. package/build/css-utilities/font/montserrat/scss/Montserrat-SemiBoldItalic.woff +0 -0
  414. package/build/css-utilities/font/montserrat/scss/Montserrat-SemiBoldItalic.woff2 +0 -0
  415. package/build/css-utilities/font/montserrat/scss/index.scss +0 -2
  416. package/build/css-utilities/glass/index.js +0 -26
  417. package/build/css-utilities/glass/scss/index.scss +0 -2
  418. package/build/css-utilities/index.scss +0 -2
  419. package/build/css-utilities/inline/scss/index.scss +0 -2
  420. package/build/css-utilities/scrollbar/index.d.ts +0 -42
  421. package/build/css-utilities/scrollbar/scss/index.scss +0 -2
  422. package/build/css-utilities/skeleton/scss/index.scss +0 -2
  423. package/build/css-utilities/text/scss/index.scss +0 -2
  424. package/build/themes/dark/index.d.ts +0 -3
  425. package/build/themes/dark/index.js +0 -3
  426. package/build/themes/dark/input.d.ts +0 -3
  427. package/build/themes/dark/input.js +0 -12
  428. package/build/themes/dark/select.d.ts +0 -3
  429. package/build/themes/dark/select.js +0 -23
  430. package/build/themes/dark/textarea.d.ts +0 -2186
  431. package/build/themes/dark/textarea.js +0 -11
  432. package/src/css-utilities/background/scss/index.scss +0 -1
  433. package/src/css-utilities/background/scss/variables.scss +0 -18
  434. package/src/css-utilities/border/scss/index.scss +0 -1
  435. package/src/css-utilities/border/scss/variables.scss +0 -23
  436. package/src/css-utilities/color/scss/index.scss +0 -1
  437. package/src/css-utilities/color/scss/variables.scss +0 -17
  438. package/src/css-utilities/flex/scss/index.scss +0 -57
  439. package/src/css-utilities/flex/scss/variables.scss +0 -16
  440. package/src/css-utilities/font/geist/index.ts +0 -1
  441. package/src/css-utilities/font/montserrat/index.ts +0 -1
  442. package/src/css-utilities/font/montserrat/scss/Montserrat-Bold.woff +0 -0
  443. package/src/css-utilities/font/montserrat/scss/Montserrat-Bold.woff2 +0 -0
  444. package/src/css-utilities/font/montserrat/scss/Montserrat-BoldItalic.woff +0 -0
  445. package/src/css-utilities/font/montserrat/scss/Montserrat-BoldItalic.woff2 +0 -0
  446. package/src/css-utilities/font/montserrat/scss/Montserrat-Italic.woff +0 -0
  447. package/src/css-utilities/font/montserrat/scss/Montserrat-Italic.woff2 +0 -0
  448. package/src/css-utilities/font/montserrat/scss/Montserrat-Medium.woff +0 -0
  449. package/src/css-utilities/font/montserrat/scss/Montserrat-Medium.woff2 +0 -0
  450. package/src/css-utilities/font/montserrat/scss/Montserrat-MediumItalic.woff +0 -0
  451. package/src/css-utilities/font/montserrat/scss/Montserrat-MediumItalic.woff2 +0 -0
  452. package/src/css-utilities/font/montserrat/scss/Montserrat-Regular.woff +0 -0
  453. package/src/css-utilities/font/montserrat/scss/Montserrat-Regular.woff2 +0 -0
  454. package/src/css-utilities/font/montserrat/scss/Montserrat-SemiBold.woff +0 -0
  455. package/src/css-utilities/font/montserrat/scss/Montserrat-SemiBold.woff2 +0 -0
  456. package/src/css-utilities/font/montserrat/scss/Montserrat-SemiBoldItalic.woff +0 -0
  457. package/src/css-utilities/font/montserrat/scss/Montserrat-SemiBoldItalic.woff2 +0 -0
  458. package/src/css-utilities/font/montserrat/scss/index.scss +0 -94
  459. package/src/css-utilities/glass/index.ts +0 -42
  460. package/src/css-utilities/index.scss +0 -13
  461. package/src/css-utilities/skeleton/scss/variables.scss +0 -3
  462. package/src/css-utilities/text/scss/index.scss +0 -152
  463. package/src/css-utilities/text/scss/variables.scss +0 -22
  464. package/src/shared/scss/absolute.scss +0 -28
  465. package/src/shared/scss/background.scss +0 -21
  466. package/src/shared/scss/border.scss +0 -21
  467. package/src/shared/scss/color.scss +0 -21
  468. package/src/shared/scss/position.scss +0 -55
  469. package/src/shared/scss/text.scss +0 -31
  470. package/src/themes/dark/index.ts +0 -3
  471. package/src/themes/dark/input.ts +0 -16
  472. package/src/themes/dark/select.ts +0 -28
  473. package/src/themes/dark/textarea.ts +0 -13
  474. package/src/tokens/scss/box-shadow.scss +0 -23
  475. package/src/tokens/scss/font-family.scss +0 -5
  476. package/storage/code.md +0 -180
  477. package/storage/editor-features.md +0 -227
  478. package/build/css-utilities/font/geist/{scss/Geist-Italic-Variable.woff2 → Geist-Italic-Variable.woff2} +0 -0
  479. package/build/css-utilities/font/geist/{scss/Geist-Variable.woff2 → Geist-Variable.woff2} +0 -0
  480. package/build/css-utilities/font/geist/{scss/GeistMono-Italic-Variable.woff2 → GeistMono-Italic-Variable.woff2} +0 -0
  481. package/build/css-utilities/font/geist/{scss/GeistMono-Variable.woff2 → GeistMono-Variable.woff2} +0 -0
  482. package/src/{shared/scss → css-utilities}/anchor.scss +6 -6
  483. package/src/{shared/scss → css-utilities}/drag.scss +0 -0
  484. package/src/css-utilities/font/geist/{scss/Geist-Italic-Variable.woff2 → Geist-Italic-Variable.woff2} +0 -0
  485. package/src/css-utilities/font/geist/{scss/Geist-Variable.woff2 → Geist-Variable.woff2} +0 -0
  486. package/src/css-utilities/font/geist/{scss/GeistMono-Italic-Variable.woff2 → GeistMono-Italic-Variable.woff2} +0 -0
  487. package/src/css-utilities/font/geist/{scss/GeistMono-Variable.woff2 → GeistMono-Variable.woff2} +0 -0
  488. package/src/{shared/scss → css-utilities}/hidden.scss +11 -11
  489. /package/src/{shared/scss → css-utilities}/layer.scss +0 -0
  490. /package/src/{shared/scss → css-utilities}/reset.scss +0 -0
@@ -1,5 +1,10 @@
1
- @use '/shared';
2
1
  @use '/tokens';
2
+ @use 'css-utilities/absolute';
3
+ @use 'css-utilities/background';
4
+ @use 'css-utilities/drag';
5
+ @use 'css-utilities/reset';
6
+ @use 'css-utilities/surface';
7
+ @use 'css-utilities/text';
3
8
  @use 'variables';
4
9
 
5
10
  // The folder's bottom edge mid-motion, 0 to --motion-rows rows down, read from the element's own progress.
@@ -76,7 +81,7 @@ $edge: calc(var(--file-tree-progress) * var(--motion-rows) * var(--row-height));
76
81
  }
77
82
 
78
83
  &-chevron {
79
- transition: rotate var(--chevron-duration) ease-out;
84
+ transition: rotate var(--chevron-duration) var(--easing-spring);
80
85
 
81
86
  // Mirrored to point left, so opening turns it the other way to still point down.
82
87
  &:dir(rtl) {
@@ -94,10 +99,10 @@ $edge: calc(var(--file-tree-progress) * var(--motion-rows) * var(--row-height));
94
99
 
95
100
  // The drag moves it to the pointer by its 'translate'.
96
101
  &-drag {
97
- @extend %reset-popover;
98
- background: var(--drag-background);
102
+ @extend %reset-popover, %surface-raised-level;
103
+ background: var(--surface-background-default);
99
104
  border-radius: var(--drag-radius);
100
- box-shadow: var(--drag-box-shadow);
105
+ box-shadow: 0 0 0 var(--border-width-400) var(--surface-border-default), var(--surface-shadow-default);
101
106
  color: var(--color);
102
107
  font-size: var(--font-size);
103
108
  gap: var(--item-gap);
@@ -107,11 +112,6 @@ $edge: calc(var(--file-tree-progress) * var(--motion-rows) * var(--row-height));
107
112
  top: 0;
108
113
  white-space: nowrap;
109
114
 
110
- &:popover-open {
111
- align-items: center;
112
- display: flex;
113
- }
114
-
115
115
  &--copy {
116
116
  --drag-copy-display: block;
117
117
  }
@@ -128,6 +128,24 @@ $edge: calc(var(--file-tree-progress) * var(--motion-rows) * var(--row-height));
128
128
  font-variant-numeric: tabular-nums;
129
129
  font-weight: var(--badge-font-weight);
130
130
  }
131
+
132
+ &:popover-open {
133
+ align-items: center;
134
+ display: flex;
135
+ }
136
+ }
137
+
138
+ // Laid over the viewport, which stays the tree's one tab stop.
139
+ &-empty {
140
+ @extend %absolute-full;
141
+ align-items: center;
142
+ color: var(--empty-color);
143
+ display: flex;
144
+ flex-direction: column;
145
+ gap: var(--size-200);
146
+ justify-content: center;
147
+ padding: var(--size-400);
148
+ text-align: center;
131
149
  }
132
150
 
133
151
  // Over the rows rather than above them, so the list and the sticky folders keep their places as it comes and goes.
@@ -141,19 +159,24 @@ $edge: calc(var(--file-tree-progress) * var(--motion-rows) * var(--row-height));
141
159
  z-index: 2;
142
160
 
143
161
  &-bar {
162
+ @extend %surface-raised-level;
144
163
  align-items: center;
145
- background: var(--find-background);
164
+ background: var(--surface-background-default);
146
165
  border: 1px solid var(--find-border-color);
147
166
  border-radius: var(--find-radius);
148
- box-shadow: var(--find-shadow);
167
+ box-shadow: var(--surface-shadow-default);
149
168
  display: flex;
150
169
  gap: var(--find-gap);
151
170
  padding: var(--find-padding);
152
171
  }
153
172
 
154
173
  &-button {
174
+ @extend %background-state;
175
+ --background-active: inherit;
176
+ --background-hover: inherit;
177
+ --background-pressed: var(--background-hover);
155
178
  align-items: center;
156
- background: none;
179
+ background: var(--background);
157
180
  border: 0;
158
181
  border-radius: var(--input-radius);
159
182
  color: inherit;
@@ -167,20 +190,18 @@ $edge: calc(var(--file-tree-progress) * var(--motion-rows) * var(--row-height));
167
190
  width: var(--find-button-size);
168
191
 
169
192
  &:disabled {
193
+ --background-hover: var(--background-default);
170
194
  cursor: default;
171
195
  opacity: 0.4;
172
196
  }
173
197
 
174
198
  &:focus-visible {
175
- outline-width: 1px;
176
- }
177
-
178
- &:not(:disabled):hover {
179
- background: var(--background-hover);
199
+ outline-width: var(--border-width-400);
180
200
  }
181
201
 
182
202
  &[aria-pressed='true'] {
183
- background: var(--background-active);
203
+ --background-default: var(--background-active);
204
+ --background-hover: var(--background-active);
184
205
  box-shadow: inset 0 0 0 1px var(--input-border-color);
185
206
  }
186
207
  }
@@ -199,7 +220,7 @@ $edge: calc(var(--file-tree-progress) * var(--motion-rows) * var(--row-height));
199
220
  }
200
221
 
201
222
  &-input {
202
- background: var(--input-background);
223
+ background: var(--surface-background-default);
203
224
  border: 1px solid transparent;
204
225
  border-radius: var(--input-radius);
205
226
  color: inherit;
@@ -221,8 +242,9 @@ $edge: calc(var(--file-tree-progress) * var(--motion-rows) * var(--row-height));
221
242
  }
222
243
 
223
244
  &-note {
245
+ @extend %surface-raised-level;
224
246
  align-self: flex-end;
225
- background: var(--find-background);
247
+ background: var(--surface-background-default);
226
248
  border: 1px solid var(--find-border-color);
227
249
  border-block-start: 0;
228
250
  border-end-end-radius: var(--find-radius);
@@ -235,7 +257,8 @@ $edge: calc(var(--file-tree-progress) * var(--motion-rows) * var(--row-height));
235
257
  }
236
258
 
237
259
  &-input {
238
- background: var(--input-background);
260
+ @extend %surface-raised-level;
261
+ background: var(--surface-background-default);
239
262
  border: 1px solid var(--input-border-color);
240
263
  border-radius: var(--input-radius);
241
264
  color: inherit;
@@ -278,19 +301,6 @@ $edge: calc(var(--file-tree-progress) * var(--motion-rows) * var(--row-height));
278
301
  z-index: 1;
279
302
  }
280
303
 
281
- // Laid over the viewport, which stays the tree's one tab stop.
282
- &-empty {
283
- @extend %absolute-full;
284
- align-items: center;
285
- color: var(--empty-color);
286
- display: flex;
287
- flex-direction: column;
288
- gap: var(--size-200);
289
- justify-content: center;
290
- padding: var(--size-400);
291
- text-align: center;
292
- }
293
-
294
304
  // Laid over the viewport's visible box; the layer starts at the folder's bottom edge.
295
305
  &-motion {
296
306
  display: none;
@@ -338,40 +348,11 @@ $edge: calc(var(--file-tree-progress) * var(--motion-rows) * var(--row-height));
338
348
  position: relative;
339
349
  user-select: none;
340
350
 
341
- &:dir(rtl) {
342
- --guide-direction: -1;
343
- }
344
-
345
- // One guide per ancestor under each ancestor's chevron, outside the row's box so the highlight covers the row
346
- // alone; rows carry no vertical margins, so each row's share joins into an unbroken line. The parent's guide
347
- // is a 1px box and the others are its shadows ('--guides'), whole indents further out: boxes snap to whole
348
- // pixels the same way on every row, where a gradient's line falls between pixels and each row rounds it its
349
- // own way.
350
- &::before {
351
- background: currentColor;
352
- box-shadow: var(--guides);
353
- color: var(--indicator-color);
354
- content: '';
355
- display: var(--indicator-display, none);
356
- inset-block: 0;
357
- inset-inline-start: calc(var(--padding) + var(--twistie-size) / 2 - 0.5px - var(--indent));
358
- opacity: var(--indicator-opacity, 1);
359
- position: absolute;
360
- transition: opacity var(--indicator-duration) ease-out;
361
- // Top-level rows have no parent to draw.
362
- width: calc(min(var(--depth), 1) * 1px);
363
- }
364
-
365
351
  // The contents alone, so the guide and a selection behind the row keep their strength.
366
352
  &--cut > * {
367
353
  opacity: var(--cut-opacity);
368
354
  }
369
355
 
370
- &.--disabled {
371
- cursor: var(--drag-cursor, not-allowed);
372
- opacity: 0.5;
373
- }
374
-
375
356
  &--deleted {
376
357
  --name-decoration: line-through;
377
358
  }
@@ -381,25 +362,6 @@ $edge: calc(var(--file-tree-progress) * var(--motion-rows) * var(--row-height));
381
362
  opacity: var(--dragged-opacity);
382
363
  }
383
364
 
384
- // A root's header, set apart from the folders under it as VS Code sets its workspace folders.
385
- &--root {
386
- font-size: var(--root-font-size);
387
- font-weight: var(--root-font-weight);
388
- text-transform: uppercase;
389
- }
390
-
391
- // The drop target and its open contents read as one box, from the folder's indent down to its last row.
392
- &--drop::after {
393
- background: var(--drop-background);
394
- border: 0 solid var(--drop-border-color);
395
- border-inline-width: var(--border-width-400);
396
- content: '';
397
- inset-block: 0;
398
- inset-inline: calc((var(--drop-depth) - var(--depth)) * var(--indent)) 0;
399
- pointer-events: none;
400
- position: absolute;
401
- }
402
-
403
365
  &--drop-end::after,
404
366
  &--drop-only::after {
405
367
  border-block-end-width: var(--border-width-400);
@@ -414,6 +376,18 @@ $edge: calc(var(--file-tree-progress) * var(--motion-rows) * var(--row-height));
414
376
  border-start-start-radius: var(--row-radius);
415
377
  }
416
378
 
379
+ // The drop target and its open contents read as one box, from the folder's indent down to its last row.
380
+ &--drop::after {
381
+ background: var(--drop-background);
382
+ border: 0 solid var(--drop-border-color);
383
+ border-inline-width: var(--border-width-400);
384
+ content: '';
385
+ inset-block: 0;
386
+ inset-inline: calc((var(--drop-depth) - var(--depth)) * var(--indent)) 0;
387
+ pointer-events: none;
388
+ position: absolute;
389
+ }
390
+
417
391
  // Every match tinted, the one the find bar is on outlined as well; a selected match shows its selection.
418
392
  &--match {
419
393
  background: var(--found-background);
@@ -423,14 +397,31 @@ $edge: calc(var(--file-tree-progress) * var(--motion-rows) * var(--row-height));
423
397
  box-shadow: inset 0 0 0 1px var(--found-border-color);
424
398
  }
425
399
 
426
- // Selected rows besides the primary, which the highlight covers.
427
- &--selected {
428
- background: var(--background-selected);
400
+ // A copy in the sticky stack, which covers the highlight, so it shows its own hover and selection.
401
+ &--pinned {
402
+ --background-selected: var(--background-active);
403
+
404
+ // The deepest folder, pushed up by the rows after its own, slides under the one above it.
405
+ &:last-child {
406
+ clip-path: inset(var(--sticky-push, 0px) calc(var(--depth) * var(--indent) * -1) 0);
407
+ margin-block-start: calc(var(--sticky-push, 0px) * -1);
408
+ }
409
+
410
+ &:not(.--disabled, .file-tree-row--selected):hover {
411
+ background: var(--background-hover);
412
+ }
429
413
  }
430
414
 
431
415
  // A folder's rows fade in a beat behind the opening.
432
416
  &--reveal {
433
- animation: file-tree-reveal var(--reveal-duration) ease-out var(--reveal-delay) backwards;
417
+ animation: file-tree-reveal var(--reveal-duration) var(--easing-spring) var(--reveal-delay) backwards;
418
+ }
419
+
420
+ // A root's header, set apart from the folders under it as VS Code sets its workspace folders.
421
+ &--root {
422
+ font-size: var(--root-font-size);
423
+ font-weight: var(--root-font-weight);
424
+ text-transform: uppercase;
434
425
  }
435
426
 
436
427
  // A square band across the tree's full width, back past the row's depth inset, so a scope's rows join into
@@ -449,23 +440,42 @@ $edge: calc(var(--file-tree-progress) * var(--motion-rows) * var(--row-height));
449
440
  }
450
441
  }
451
442
 
452
- // A copy in the sticky stack, which covers the highlight, so it shows its own hover and selection.
453
- &--pinned {
454
- --background-selected: var(--background-active);
443
+ // Selected rows besides the primary, which the highlight covers.
444
+ &--selected {
445
+ background: var(--background-selected);
446
+ }
455
447
 
456
- &:not(.--disabled, .file-tree-row--selected):hover {
457
- background: var(--background-hover);
458
- }
448
+ &.--disabled {
449
+ cursor: var(--drag-cursor, not-allowed);
450
+ opacity: 0.5;
451
+ }
459
452
 
460
- // The deepest folder, pushed up by the rows after its own, slides under the one above it.
461
- &:last-child {
462
- clip-path: inset(var(--sticky-push, 0px) calc(var(--depth) * var(--indent) * -1) 0);
463
- margin-block-start: calc(var(--sticky-push, 0px) * -1);
464
- }
453
+ // One guide per ancestor under each ancestor's chevron, outside the row's box so the highlight covers the row
454
+ // alone; rows carry no vertical margins, so each row's share joins into an unbroken line. The parent's guide
455
+ // is a 1px box and the others are its shadows ('--guides'), whole indents further out: boxes snap to whole
456
+ // pixels the same way on every row, where a gradient's line falls between pixels and each row rounds it its
457
+ // own way.
458
+ &::before {
459
+ background: currentColor;
460
+ box-shadow: var(--guides);
461
+ color: var(--indicator-color);
462
+ content: '';
463
+ display: var(--indicator-display, none);
464
+ inset-block: 0;
465
+ inset-inline-start: calc(var(--padding) + var(--twistie-size) / 2 - 0.5px - var(--indent));
466
+ opacity: var(--indicator-opacity, 1);
467
+ position: absolute;
468
+ transition: opacity var(--indicator-duration) var(--easing-spring);
469
+ // Top-level rows have no parent to draw.
470
+ width: calc(min(var(--depth), 1) * 1px);
471
+ }
472
+
473
+ &:dir(rtl) {
474
+ --guide-direction: -1;
465
475
  }
466
476
 
467
477
  .file-tree-viewport:focus-visible &--focused {
468
- outline-width: 1px;
478
+ outline-width: var(--border-width-400);
469
479
  }
470
480
  }
471
481
 
@@ -479,14 +489,14 @@ $edge: calc(var(--file-tree-progress) * var(--motion-rows) * var(--row-height));
479
489
  text-decoration: underline;
480
490
  }
481
491
 
482
- &--match-current {
483
- box-shadow: inset 0 0 0 1px var(--found-border-color);
484
- }
485
-
486
492
  &--drop {
487
493
  background: var(--drop-background);
488
494
  box-shadow: inset 0 0 0 var(--border-width-400) var(--drop-border-color);
489
495
  }
496
+
497
+ &--match-current {
498
+ box-shadow: inset 0 0 0 1px var(--found-border-color);
499
+ }
490
500
  }
491
501
 
492
502
  &-separator {
@@ -506,7 +516,8 @@ $edge: calc(var(--file-tree-progress) * var(--motion-rows) * var(--row-height));
506
516
  z-index: 1;
507
517
 
508
518
  &-rows {
509
- background: var(--sticky-background);
519
+ @extend %surface-raised-level;
520
+ background: var(--surface-background-default);
510
521
  box-shadow: var(--sticky-shadow);
511
522
 
512
523
  &:not(:has(> .file-tree-row)) {
@@ -520,11 +531,11 @@ $edge: calc(var(--file-tree-progress) * var(--motion-rows) * var(--row-height));
520
531
  height: 32px;
521
532
  inset-inline-end: var(--size-100);
522
533
  outline: 0 solid var(--focus-color);
523
- outline-offset: 2px;
534
+ outline-offset: calc(var(--size-100) / 4);
524
535
  position: absolute;
525
536
 
526
537
  &:focus-visible {
527
- outline-width: 2px;
538
+ outline-width: var(--border-width-500);
528
539
  }
529
540
  }
530
541
 
@@ -586,7 +597,7 @@ $edge: calc(var(--file-tree-progress) * var(--motion-rows) * var(--row-height));
586
597
  }
587
598
 
588
599
  &-layer--close {
589
- animation: file-tree-collapse var(--collapse-duration) var(--motion-easing) forwards, file-tree-conceal var(--conceal-duration) ease-out forwards;
600
+ animation: file-tree-collapse var(--collapse-duration) var(--motion-easing) forwards, file-tree-conceal var(--conceal-duration) var(--easing-spring) forwards;
590
601
  height: $edge;
591
602
  overflow: hidden;
592
603
  }
@@ -606,7 +617,7 @@ $edge: calc(var(--file-tree-progress) * var(--motion-rows) * var(--row-height));
606
617
 
607
618
  // Marked only while opening.
608
619
  &--reveal {
609
- animation: file-tree-expand var(--expand-duration) var(--motion-easing) forwards, file-tree-reveal var(--reveal-duration) ease-out var(--reveal-delay) backwards;
620
+ animation: file-tree-expand var(--expand-duration) var(--motion-easing) forwards, file-tree-reveal var(--reveal-duration) var(--easing-spring) var(--reveal-delay) backwards;
610
621
  // Open at the sides, so the guides drawn outside the row still show.
611
622
  clip-path: inset(
612
623
  0
@@ -703,7 +714,7 @@ $edge: calc(var(--file-tree-progress) * var(--motion-rows) * var(--row-height));
703
714
 
704
715
  @keyframes file-tree-conceal {
705
716
  to {
706
- filter: blur(2px);
717
+ filter: blur(var(--blur-300));
707
718
  opacity: 0;
708
719
  }
709
720
  }
@@ -726,7 +737,7 @@ $edge: calc(var(--file-tree-progress) * var(--motion-rows) * var(--row-height));
726
737
 
727
738
  @keyframes file-tree-reveal {
728
739
  from {
729
- filter: blur(2px);
740
+ filter: blur(var(--blur-300));
730
741
  opacity: 0;
731
742
  }
732
743
  }
@@ -82,7 +82,7 @@ $icons: (
82
82
  .file-tree {
83
83
  // Git and problem colors, after VS Code's; the token scales are tuned for dark surfaces, so lightness is
84
84
  // pinned to stay legible on light ones.
85
- --added-color: oklch(from var(--color-green-500) 0.58 c h);
85
+ --added-color: light-dark(oklch(from var(--color-green-500) 0.58 c h), oklch(from var(--color-green-500) 0.76 0.17 h));
86
86
  --additions-color: var(--added-color);
87
87
  // Read by the row highlight and the toggle button: the selected row takes the full tint, hover a dimmer one.
88
88
  --background-active: color-mix(in srgb, currentColor 10%, transparent);
@@ -91,43 +91,39 @@ $icons: (
91
91
  --background-selected: var(--background-active);
92
92
  --badge-font-size: var(--font-size-200);
93
93
  --badge-font-weight: var(--font-weight-500);
94
- --badge-gap: 6px;
95
- --chevron-duration: 150ms;
94
+ --badge-gap: calc(var(--size-300) / 2);
95
+ --chevron-duration: var(--duration-fast);
96
96
  // Open and close timings, after the tree view's.
97
- --collapse-duration: 0.2s;
97
+ --collapse-duration: var(--duration-moderate-exit);
98
98
  --color: var(--color-text-500);
99
- --conceal-duration: 0.12s;
100
- --conflict-color: oklch(from var(--color-red-300) 0.6 c h);
99
+ --conceal-duration: var(--duration-fast-exit);
100
+ --conflict-color: light-dark(oklch(from var(--color-red-300) 0.6 c h), oklch(from var(--color-red-300) 0.72 0.16 h));
101
101
  --cut-opacity: 0.5;
102
- --deleted-color: var(--color-red-500);
102
+ --deleted-color: light-dark(var(--color-red-500), oklch(from var(--color-red-500) 0.7 0.17 h));
103
103
  --deletions-color: var(--deleted-color);
104
104
  // The label that follows the pointer while dragging, offset so it never covers the row being aimed at.
105
- --drag-background: var(--color-grey-400);
106
- --drag-box-shadow: 0 0 0 var(--border-width-400) var(--color-border-300), var(--box-shadow-300);
107
105
  --drag-offset: var(--size-300);
108
- --drag-padding: 2px var(--size-100);
106
+ --drag-padding: calc(var(--size-100) / 4) var(--size-100);
109
107
  --drag-radius: var(--border-radius-300);
110
108
  // Rows being moved, not copied, dim while they travel.
111
109
  --dragged-opacity: 0.5;
112
110
  --drop-background: color-mix(in srgb, var(--drop-color) 10%, transparent);
113
111
  --drop-border-color: color-mix(in srgb, var(--drop-color) 60%, transparent);
114
- --drop-color: var(--color-primary-400);
112
+ --drop-color: var(--color-accent-400);
115
113
  --empty-color: var(--color-text-300);
116
- --error-color: var(--color-red-400);
117
- --expand-duration: 0.25s;
114
+ --error-color: light-dark(var(--color-red-400), oklch(from var(--color-red-400) 0.7 0.18 h));
115
+ --expand-duration: var(--duration-moderate);
118
116
  // The find bar over the tree's top corner; the offset keeps it clear of the scrollbar.
119
- --find-background: var(--color-white-300);
120
- --find-border-color: var(--color-border-300);
117
+ --find-border-color: var(--surface-border-default);
121
118
  --find-button-size: var(--size-500);
122
- --find-gap: 2px;
119
+ --find-gap: calc(var(--size-100) / 4);
123
120
  --find-input-width: calc(var(--size-900) * 2);
124
121
  --find-note-color: var(--color-text-300);
125
122
  --find-note-font-size: var(--font-size-200);
126
123
  --find-offset: var(--size-300);
127
- --find-padding: 3px;
124
+ --find-padding: calc(var(--size-300) / 4);
128
125
  --find-radius: var(--border-radius-300);
129
- --find-shadow: var(--box-shadow-300);
130
- --focus-color: oklch(from var(--color-text-500) l c h / 0.38);
126
+ --focus-color: var(--surface-border-pressed);
131
127
  --font-size: var(--font-size-300);
132
128
  // Rows the find bar matches; the current one is outlined.
133
129
  --found-background: color-mix(in srgb, var(--found-color) 14%, transparent);
@@ -142,33 +138,32 @@ $icons: (
142
138
  // Past '--padding' plus half '--twistie-size', so a nested row, and the highlight on it, starts clear of its
143
139
  // parent's guide.
144
140
  --indent: var(--size-500);
145
- --indicator-color: var(--color-grey-500);
146
- --indicator-duration: 0.15s;
147
- --indicator-hover: var(--color-border-500);
148
- --input-background: var(--color-white-300);
141
+ --indicator-color: var(--surface-border-default);
142
+ --indicator-duration: var(--duration-fast);
143
+ --indicator-hover: var(--surface-border-pressed);
149
144
  --input-border-color: var(--color-blue-400);
150
- --input-padding: 3px;
145
+ --input-padding: calc(var(--size-300) / 4);
151
146
  --input-radius: var(--border-radius-200);
152
- --item-gap: 4px;
147
+ --item-gap: calc(var(--size-100) / 2);
153
148
  // The symlink and read-only glyphs beside the name.
154
- --marker-color: var(--color-text-300);
149
+ --marker-color: var(--color-primary-300);
155
150
  --marker-size: var(--size-300);
156
151
  // Characters a fuzzy query matched: heavier, on a faint wash, in whatever color the name's git tone gives it.
157
- --match-background: color-mix(in srgb, var(--color-primary-400) 18%, transparent);
152
+ --match-background: color-mix(in srgb, var(--color-accent-400) 18%, transparent);
158
153
  --match-color: inherit;
159
154
  --match-font-weight: var(--font-weight-600);
160
155
  --match-radius: var(--border-radius-100);
161
156
  // Opaque, since it covers the rows below the input.
162
- --message-background: color-mix(in srgb, var(--error-color) 10%, var(--input-background));
157
+ --message-background: color-mix(in srgb, var(--error-color) 10%, var(--surface-background-default));
163
158
  --message-font-size: var(--font-size-200);
164
- --message-padding: 2px 6px;
165
- --modified-color: oklch(from var(--color-yellow-500) 0.62 c h);
166
- --motion-easing: cubic-bezier(0.23, 1, 0.32, 1);
159
+ --message-padding: calc(var(--size-100) / 4) calc(var(--size-300) / 2);
160
+ --modified-color: light-dark(oklch(from var(--color-yellow-500) 0.62 c h), oklch(from var(--color-yellow-500) 0.76 c h));
161
+ --motion-easing: var(--easing-spring);
167
162
  --notice-color: var(--color-text-300);
168
- --open-color: var(--color-text-300);
163
+ --open-color: var(--color-primary-300);
169
164
  --padding: var(--size-100);
170
165
  --reveal-delay: 0.05s;
171
- --reveal-duration: 0.2s;
166
+ --reveal-duration: var(--duration-fast);
172
167
  --root-font-size: var(--font-size-200);
173
168
  --root-font-weight: var(--font-weight-600);
174
169
  --row-height: 22px;
@@ -176,36 +171,40 @@ $icons: (
176
171
  // How much of a scope's color tints its rows; faint, so git colors and the highlight still read over it.
177
172
  --scope-tint: 12%;
178
173
  // The slash between a compact row's folders.
179
- --separator-color: var(--color-text-300);
174
+ --separator-color: var(--color-primary-300);
180
175
  --separator-gap: 1px;
181
- --staged-padding: 3px;
176
+ --staged-padding: calc(var(--size-300) / 4);
182
177
  --staged-radius: var(--border-radius-100);
183
178
  --staged-tint: 18%;
184
179
  // Rows scroll under the pinned folders, so these hide them with the surface the tree sits on.
185
- --sticky-background: var(--color-white-300);
186
- --sticky-shadow: 0 6px 16px -10px oklch(from var(--color-black-300) l c h / 0.4);
187
- --submodule-color: oklch(from var(--color-blue-400) 0.6 c h);
180
+ --sticky-shadow: 0 6px 16px -10px oklch(from var(--surface-shadow-color) l c h / calc(alpha * 4.4));
181
+ --submodule-color: light-dark(oklch(from var(--color-blue-400) 0.6 c h), oklch(from var(--color-blue-400) 0.74 0.14 h));
188
182
  --toggle-color: var(--color);
189
183
  --twistie-size: var(--size-400);
190
184
  --unsaved-color: var(--color);
191
- --warning-color: oklch(from var(--color-yellow-500) 0.62 c calc(h - 25));
185
+ --warning-color: light-dark(oklch(from var(--color-yellow-500) 0.62 c calc(h - 25)), oklch(from var(--color-yellow-500) 0.76 c calc(h - 25)));
186
+
187
+ // A tree's own icons take its '--icon-size', which may be set on the tree.
188
+ & &-icon.icon {
189
+ --icon-size: inherit;
190
+ }
192
191
 
193
192
  &-chevron.icon {
194
193
  --size: var(--twistie-size);
195
194
  }
196
195
 
196
+ &-find-icon.icon {
197
+ --size: var(--size-300);
198
+ }
199
+
197
200
  // The highlight declares its own defaults, so the tree's values are pulled through explicitly.
198
201
  &-highlight.highlight {
199
202
  --background-active: inherit;
200
203
  --background-hover: inherit;
201
- --glide-duration: 0.3s;
204
+ --glide-duration: var(--duration-moderate);
202
205
  --glide-duration-active: 0s;
203
206
  }
204
207
 
205
- &-find-icon.icon {
206
- --size: var(--size-300);
207
- }
208
-
209
208
  // Overridden per family, per icon by '--icon-color-<icon>', or all at once by '--icon-color'. Icons drawn outside a
210
209
  // tree, as in tabs or a palette's rows, fall back to the same families and size themselves rather than read some
211
210
  // other component's '--icon-size'.
@@ -223,21 +222,11 @@ $icons: (
223
222
  }
224
223
  }
225
224
 
226
- // A tree's own icons take its '--icon-size', which may be set on the tree.
227
- & &-icon.icon {
228
- --icon-size: inherit;
229
- }
230
-
231
225
  &-marker.icon {
232
226
  --color: var(--marker-color);
233
227
  --size: var(--marker-size);
234
228
  }
235
229
 
236
- &-spinner.loading {
237
- --color: currentColor;
238
- --size: var(--icon-size);
239
- }
240
-
241
230
  &-row {
242
231
  @each $tone in added, conflict, deleted, error, ignored, modified, warning {
243
232
  &--#{$tone} {
@@ -246,6 +235,11 @@ $icons: (
246
235
  }
247
236
  }
248
237
 
238
+ &-spinner.loading {
239
+ --color: currentColor;
240
+ --size: var(--icon-size);
241
+ }
242
+
249
243
  &-toggle.button {
250
244
  --background-hover: inherit;
251
245
  --color-default: var(--toggle-color);