@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,7 +1,13 @@
1
- @use '/shared';
2
1
  @use '/tokens';
2
+ @use 'css-utilities/background';
3
+ @use 'css-utilities/border';
3
4
  @use 'variables';
4
5
 
6
+ // The field renders inside an 'error', which takes its place in the layout, so the wrapper keeps it from shrinking.
7
+ .error:has(> .shortcut-recorder) {
8
+ flex-shrink: 0;
9
+ }
10
+
5
11
  .shortcut-recorder {
6
12
  @extend %background-state, %border-state;
7
13
  align-items: center;
@@ -32,7 +38,7 @@
32
38
  }
33
39
 
34
40
  &-dot {
35
- animation: shortcut-recorder-blink 1.1s ease-in-out infinite;
41
+ animation: shortcut-recorder-blink 1.1s var(--easing-in-out) infinite;
36
42
  background: var(--color-dot);
37
43
  border-radius: 50%;
38
44
  height: 6px;
@@ -44,11 +50,11 @@
44
50
  pointer-events: none;
45
51
 
46
52
  &--enter {
47
- animation: shortcut-recorder-enter 300ms var(--timing-function-spring) backwards;
53
+ animation: shortcut-recorder-enter var(--duration-moderate) var(--timing-function-spring) backwards;
48
54
  }
49
55
 
50
56
  &--settle {
51
- animation: shortcut-recorder-settle 300ms var(--timing-function-spring) calc(var(--index) * 30ms) backwards;
57
+ animation: shortcut-recorder-settle var(--duration-moderate) var(--timing-function-spring) calc(var(--index) * 30ms) backwards;
52
58
  }
53
59
  }
54
60
 
@@ -57,8 +63,8 @@
57
63
  color: var(--color-muted);
58
64
  display: flex;
59
65
  font-size: var(--font-size-small);
60
- gap: 6px;
61
- padding: 0 6px;
66
+ gap: calc(var(--size-300) / 2);
67
+ padding: 0 calc(var(--size-300) / 2);
62
68
  transition: color var(--transition-duration) var(--timing-function-out);
63
69
 
64
70
  &--fade {
@@ -77,11 +83,6 @@
77
83
  }
78
84
  }
79
85
 
80
- // The field renders inside an 'error', which takes its place in the layout, so the wrapper keeps it from shrinking.
81
- .error:has(> .shortcut-recorder) {
82
- flex-shrink: 0;
83
- }
84
-
85
86
  @keyframes shortcut-recorder-blink {
86
87
  50% {
87
88
  opacity: 0.25;
@@ -90,7 +91,7 @@
90
91
 
91
92
  @keyframes shortcut-recorder-enter {
92
93
  from {
93
- filter: blur(3px);
94
+ filter: blur(var(--blur-400));
94
95
  opacity: 0;
95
96
  scale: 0.8;
96
97
  }
@@ -1,35 +1,34 @@
1
1
  @use '/tokens';
2
2
 
3
3
  .shortcut-recorder {
4
- --background-active: var(--color-white-300);
5
- --background-default: var(--color-grey-400);
6
- --background-hover: var(--color-white-300);
4
+ --background-active: var(--surface-background-active);
5
+ --background-default: var(--surface-background-default);
6
+ --background-hover: var(--surface-background-hover);
7
7
  // Held down it keeps the hover look until the click starts recording.
8
8
  --background-pressed: var(--background-hover);
9
- --border-color-active: var(--color-text-500);
10
- --border-color-default: var(--color-border-400);
9
+ --border-color-active: var(--color-primary-500);
10
+ --border-color-default: var(--surface-border-hover);
11
11
  --border-color-hover: var(--border-color-default);
12
12
  --border-color-pressed: var(--border-color-hover);
13
13
  --border-radius: var(--border-radius-500);
14
14
  --border-width: var(--border-width-default);
15
15
  --border-width-active: 1.5px;
16
- --border-width-default: 1px;
16
+ --border-width-default: var(--border-width-400);
17
17
  --color: var(--color-text-500);
18
18
  --color-dot: var(--color-red-400);
19
19
  --color-error: var(--color-red-400);
20
20
  --color-muted: var(--color-text-300);
21
- --focus-color: var(--color-text-500);
22
- --focus-offset: 2px;
23
- --focus-width: 2px;
21
+ --focus-color: var(--color-primary-500);
22
+ --focus-offset: calc(var(--size-100) / 4);
23
+ --focus-width: var(--border-width-500);
24
24
  --font-size: var(--font-size-400);
25
25
  --font-size-small: var(--font-size-300);
26
- --gap: 4px;
26
+ --gap: calc(var(--size-100) / 2);
27
27
  --height: 36px;
28
28
  --min-width: 96px;
29
- --padding-horizontal: 6px;
30
- --timing-function-out: cubic-bezier(0.23, 1, 0.32, 1);
29
+ --padding-horizontal: calc(var(--size-300) / 2);
30
+ --timing-function-out: var(--easing-spring);
31
31
  --timing-function-spring: cubic-bezier(0.34, 1.56, 0.64, 1);
32
- --transition-duration: 150ms;
33
32
 
34
33
  #{tokens.state(active)} {
35
34
  --border-width: var(--border-width-active);
@@ -1,4 +1,7 @@
1
- @use '/shared';
1
+ @use 'css-utilities/drag';
2
+ @use 'css-utilities/layer';
3
+ @use 'css-utilities/reset';
4
+ @use 'css-utilities/surface';
2
5
  @use 'variables';
3
6
 
4
7
  // Typed, so the drop can transition them; not inherited, so a write per frame restyles the copy alone.
@@ -21,44 +24,13 @@
21
24
  }
22
25
 
23
26
  .sortable {
24
- > * {
25
- @extend %drag-item;
26
- }
27
-
28
- // The dragged item stays in the list as its own placeholder: its contents fade out behind a dashed outline while
29
- // it moves through the list. Leaving the class drops the transition, so they are back at once on landing.
30
- > .sortable-item--held {
31
- background: var(--placeholder-background);
32
- border-color: transparent;
33
- box-shadow: none;
34
- color: transparent;
35
- outline: var(--placeholder-border-width) dashed var(--placeholder-border-color);
36
- outline-offset: calc(var(--placeholder-border-width) * -1);
37
- transition:
38
- background-color var(--transition-duration) var(--transition-timing-function),
39
- color var(--transition-duration) var(--transition-timing-function);
40
-
41
- > * {
42
- opacity: 0;
43
- transition: opacity var(--transition-duration) var(--transition-timing-function);
44
- }
45
- }
46
-
47
- // Shows again at once under the fading copy: its own transitions, or its contents', would ease it back in after the
48
- // copy has gone. Important, since they can come from any rule.
49
- > .sortable-item--revealing,
50
- > .sortable-item--revealing * {
51
- transition: none !important;
52
- }
53
-
54
-
55
27
  // The copy following the pointer, a popover in the top layer: fixed at the box the item was picked up from,
56
28
  // then moved by the pointer's offset and the swing, which JS writes every frame.
57
29
  &-drag {
58
- @extend %reset-popover;
30
+ @extend %reset-popover, %surface-raised-level;
59
31
  animation: var(--drag-animation);
60
32
  border-radius: var(--sortable-radius);
61
- box-shadow: var(--drag-box-shadow);
33
+ box-shadow: var(--surface-shadow-default);
62
34
  box-sizing: border-box;
63
35
  height: var(--sortable-height);
64
36
  left: var(--sortable-left);
@@ -77,14 +49,6 @@
77
49
  scale: 1;
78
50
  }
79
51
 
80
- // The copy takes the box the item was picked up from.
81
- > * {
82
- box-sizing: border-box;
83
- height: 100%;
84
- margin: 0;
85
- width: 100%;
86
- }
87
-
88
52
  // Shrinks onto the item, settling the lift, the swing and any animation on the way, then blurs and fades out
89
53
  // over it for the last quarter, as the item shows again under it. The fade eases plainly: the drop's
90
54
  // overshoot would clamp it at 0.
@@ -99,14 +63,22 @@
99
63
  --sortable-x var(--drop-duration) var(--drop-easing),
100
64
  --sortable-y var(--drop-duration) var(--drop-easing),
101
65
  box-shadow var(--drop-duration) var(--drop-easing),
102
- filter calc(var(--drop-duration) / 4) ease-out calc(var(--drop-duration) * 0.75),
66
+ filter calc(var(--drop-duration) / 4) var(--easing-out) calc(var(--drop-duration) * 0.75),
103
67
  height var(--drop-duration) var(--drop-easing),
104
- opacity calc(var(--drop-duration) / 4) ease-out calc(var(--drop-duration) * 0.75),
68
+ opacity calc(var(--drop-duration) / 4) var(--easing-out) calc(var(--drop-duration) * 0.75),
105
69
  rotate var(--drop-duration) var(--drop-easing),
106
70
  scale var(--drop-duration) var(--drop-easing),
107
71
  translate var(--drop-duration) var(--drop-easing),
108
72
  width var(--drop-duration) var(--drop-easing);
109
73
  }
74
+
75
+ // The copy takes the box the item was picked up from.
76
+ > * {
77
+ box-sizing: border-box;
78
+ height: 100%;
79
+ margin: 0;
80
+ width: 100%;
81
+ }
110
82
  }
111
83
 
112
84
  // Nested anywhere inside an item; shown only in the copy, which it covers.
@@ -135,6 +107,37 @@
135
107
  opacity: 0;
136
108
  }
137
109
  }
110
+
111
+ > * {
112
+ @extend %drag-item;
113
+ }
114
+
115
+
116
+ // The dragged item stays in the list as its own placeholder: its contents fade out behind a dashed outline while
117
+ // it moves through the list. Leaving the class drops the transition, so they are back at once on landing.
118
+ > .sortable-item--held {
119
+ background: var(--placeholder-background);
120
+ border-color: transparent;
121
+ box-shadow: none;
122
+ color: transparent;
123
+ outline: var(--placeholder-border-width) dashed var(--placeholder-border-color);
124
+ outline-offset: calc(var(--placeholder-border-width) * -1);
125
+ transition:
126
+ background-color var(--transition-duration) var(--transition-timing-function),
127
+ color var(--transition-duration) var(--transition-timing-function);
128
+
129
+ > * {
130
+ opacity: 0;
131
+ transition: opacity var(--transition-duration) var(--transition-timing-function);
132
+ }
133
+ }
134
+
135
+ // Shows again at once under the fading copy: its own transitions, or its contents', would ease it back in after the
136
+ // copy has gone. Important, since they can come from any rule.
137
+ > .sortable-item--revealing,
138
+ > .sortable-item--revealing * {
139
+ transition: none !important;
140
+ }
138
141
  }
139
142
 
140
143
 
@@ -1,13 +1,12 @@
1
1
  .sortable {
2
2
  --drag-animation: none;
3
- --drag-box-shadow: var(--box-shadow-400);
4
3
  --drag-scale: 1.06;
5
- --drop-blur: 4px;
6
- --drop-duration: 0.26s;
4
+ --drop-blur: var(--blur-400);
5
+ --drop-duration: var(--duration-moderate);
7
6
  --drop-easing: cubic-bezier(0.34, 1.3, 0.64, 1);
8
- --overlay-transition-duration: 0.16s;
7
+ --overlay-transition-duration: var(--duration-fast);
9
8
  --placeholder-background: transparent;
10
- --placeholder-border-color: var(--color-border-500);
9
+ --placeholder-border-color: var(--surface-border-pressed);
11
10
  --placeholder-border-width: var(--border-width-400);
12
11
  // Read once per drag (JS): how the items around the placeholder slide when it moves.
13
12
  --shift-duration: 0.22s;
@@ -1,6 +1,6 @@
1
1
  import { reactive } from '@esportsplus/reactivity';
2
2
  import { component, html, type Attributes, type Renderable } from '@esportsplus/template';
3
- import scrollbar from '~/css-utilities/scrollbar';
3
+ import scrollbar from '~/modifiers/scrollbar';
4
4
  import '~/components/card/scss/index.scss';
5
5
  import './scss/index.scss';
6
6
 
@@ -13,7 +13,7 @@ let uid = 0;
13
13
 
14
14
 
15
15
  // Engines without scroll-driven animations get the progress and the swap from scroll events instead of the timeline.
16
- function fallback(fade: ReturnType<typeof scrollbar.fade>) {
16
+ function fallback(fade: ReturnType<typeof scrollbar>) {
17
17
  let range = 0,
18
18
  state = reactive({ progress: 0 });
19
19
 
@@ -42,7 +42,7 @@ export default component<Attributes & {
42
42
  before: Renderable<unknown>;
43
43
  }>(
44
44
  function({ after, before, ...attributes }, content) {
45
- let fade = scrollbar.fade(),
45
+ let fade = scrollbar({ fade: true }),
46
46
  id = `sticky-header-${++uid}`,
47
47
  legacy = typeof CSS === 'undefined' || CSS.supports('timeline-scope: none') ? null : fallback(fade);
48
48
 
@@ -50,7 +50,7 @@ export default component<Attributes & {
50
50
  <div class='card sticky-header' ${attributes} ${legacy?.root}>
51
51
  <div
52
52
  aria-labelledby='${id}'
53
- class='sticky-header-scroll --scrollbar'
53
+ class='sticky-header-scroll'
54
54
  role='region'
55
55
  tabindex='0'
56
56
  ${legacy?.scroll ?? fade}
@@ -1,4 +1,5 @@
1
- @use '/shared';
1
+ @use 'css-utilities/absolute';
2
+ @use 'css-utilities/layer';
2
3
  @use 'variables';
3
4
 
4
5
  // The scroller's timeline is scoped to the whole header so the bar, its sibling, can run on it.
@@ -6,13 +7,6 @@
6
7
  timeline-scope: --sticky-header;
7
8
 
8
9
 
9
- // Covers the whole card and clips to its corners, since the card itself can't clip without losing its shadow;
10
- // the plate slides up past the top and the edges hang below the header.
11
- &-bar {
12
- @extend %layer;
13
- overflow: clip;
14
- }
15
-
16
10
  &-after {
17
11
  @extend %absolute-top;
18
12
  align-items: center;
@@ -31,6 +25,13 @@
31
25
  }
32
26
  }
33
27
 
28
+ // Covers the whole card and clips to its corners, since the card itself can't clip without losing its shadow;
29
+ // the plate slides up past the top and the edges hang below the header.
30
+ &-bar {
31
+ @extend %layer;
32
+ overflow: clip;
33
+ }
34
+
34
35
  &-before {
35
36
  @extend %absolute-top;
36
37
  opacity: clamp(0, 1 - var(--sticky-header-progress) / 0.45, 1);
@@ -48,7 +49,7 @@
48
49
 
49
50
  &--fade {
50
51
  background: linear-gradient(var(--background), transparent);
51
- height: 20px;
52
+ height: var(--size-500);
52
53
  }
53
54
 
54
55
  &--line {
@@ -91,6 +92,10 @@
91
92
  // Scroll-linked, not eased: the scroll itself is the motion. The sides swap at the midpoint, where both are
92
93
  // faded out, and hiding the faded one keeps it out of the tab order, the pointer and the accessibility tree.
93
94
  @supports (timeline-scope: none) {
95
+ &-after {
96
+ animation-name: sticky-header-after;
97
+ }
98
+
94
99
  &-after,
95
100
  &-bar,
96
101
  &-before {
@@ -101,10 +106,6 @@
101
106
  animation-timing-function: linear;
102
107
  }
103
108
 
104
- &-after {
105
- animation-name: sticky-header-after;
106
- }
107
-
108
109
  &-bar {
109
110
  animation-name: sticky-header-progress;
110
111
  }
@@ -14,16 +14,16 @@
14
14
 
15
15
  // Surface comes from '.card'.
16
16
  .sticky-header {
17
- --background-default: var(--color-white-300);
18
- --border-color-default: var(--color-border-300);
17
+ --background-default: var(--surface-background-default);
18
+ --border-color-default: var(--surface-border-default);
19
19
  --border-radius: var(--border-radius-600);
20
20
  --border-width: 0px;
21
21
  --box-shadow-default:
22
22
  0 0 0 var(--border-width-400) var(--border-color),
23
- 0 1px 2px oklch(from var(--color-black-300) l c h / 0.06),
24
- 0 4px 10px -8px oklch(from var(--color-black-300) l c h / 0.45);
23
+ 0 1px 2px oklch(from var(--surface-shadow-color) l c h / calc(alpha * 0.6)),
24
+ 0 4px 10px -8px oklch(from var(--surface-shadow-color) l c h / calc(alpha * 5));
25
25
  --compact-height: 48px;
26
- --edge-shadow: 0 6px 16px -10px oklch(from var(--color-black-300) l c h / 0.4);
26
+ --edge-shadow: 0 6px 16px -10px oklch(from var(--surface-shadow-color) l c h / calc(alpha * 4.4));
27
27
  --expanded-height: 68px;
28
28
  --focus-color: var(--color-blue-300);
29
29
  // Its own name: the global per-element reset would swallow '--padding-horizontal' on the bar's children.
@@ -34,13 +34,13 @@
34
34
  --sticky-header-range: max(64px, var(--travel) * 3);
35
35
  --travel: calc(var(--expanded-height) - var(--compact-height));
36
36
 
37
+ &-after {
38
+ --reveal: clamp(0, (var(--sticky-header-progress) - 0.55) / 0.35, 1);
39
+ }
40
+
37
41
  // Derived here rather than on the root, so they follow the progress animated on the bar.
38
42
  &-bar {
39
43
  --lifted: clamp(0, var(--sticky-header-progress) / 0.12, 1);
40
44
  --offset: calc(var(--travel) * var(--sticky-header-progress));
41
45
  }
42
-
43
- &-after {
44
- --reveal: clamp(0, (var(--sticky-header-progress) - 0.55) / 0.35, 1);
45
- }
46
46
  }
@@ -1,5 +1,7 @@
1
- @use '/shared';
2
1
  @use '/tokens';
2
+ @use 'css-utilities/color';
3
+ @use 'css-utilities/hidden';
4
+ @use 'css-utilities/icon';
3
5
  @use 'variables';
4
6
 
5
7
  .story {
@@ -18,11 +20,6 @@
18
20
  user-select: none;
19
21
  width: min(var(--max-width), 100%);
20
22
 
21
- &:focus-visible {
22
- outline: 2px solid var(--focus-ring-color);
23
- outline-offset: 2px;
24
- }
25
-
26
23
  &--paused {
27
24
  --play-state: paused;
28
25
  }
@@ -46,13 +43,13 @@
46
43
 
47
44
  &-bars {
48
45
  display: flex;
49
- gap: 4px;
46
+ gap: calc(var(--size-100) / 2);
50
47
  padding: 12px 12px 0;
51
48
  }
52
49
 
53
50
  &-count {
54
51
  color: var(--muted-color);
55
- font-size: 12px;
52
+ font-size: var(--font-size-300);
56
53
  font-variant-numeric: tabular-nums;
57
54
  }
58
55
 
@@ -71,7 +68,7 @@
71
68
  display: flex;
72
69
  height: 44px;
73
70
  justify-content: space-between;
74
- padding: 0 16px;
71
+ padding: 0 var(--size-400);
75
72
  }
76
73
 
77
74
  // Static cue for the paused state, so the frozen bar isn't the only signal.
@@ -79,14 +76,8 @@
79
76
  &-play {
80
77
  @extend %icon-swap;
81
78
  grid-area: 1 / 1;
82
- height: 16px;
83
- width: 16px;
84
- }
85
-
86
- // Keyed off the toggle, since the icons are <svg>s, which take no dynamic class.
87
- &-toggle:not(.story-toggle--paused) &-pause,
88
- &-toggle--paused &-play {
89
- @extend %icon-swap-active;
79
+ height: var(--size-400);
80
+ width: var(--size-400);
90
81
  }
91
82
 
92
83
  &-slide {
@@ -108,29 +99,29 @@
108
99
  background: transparent;
109
100
  border: 0;
110
101
  border-radius: 999px;
111
- color: var(--muted-color);
102
+ @extend %color-state;
103
+ --color-default: var(--muted-color);
104
+ --color-hover: var(--toggle-color-hover);
105
+ --color-pressed: var(--color-hover);
106
+ color: var(--color);
112
107
  cursor: pointer;
113
108
  display: grid;
114
109
  height: 40px;
115
- margin-right: -8px;
110
+ margin-right: calc(var(--size-100) * -1);
116
111
  outline: none;
117
112
  padding: 0;
118
113
  place-items: center;
119
- transition:
120
- color 0.15s ease-out,
121
- scale 0.15s ease-out;
114
+ transition: color var(--duration-fast) var(--easing-spring);
122
115
  width: 40px;
123
116
 
124
- &:active {
125
- scale: 0.96;
126
- }
127
-
128
117
  &:focus-visible {
129
118
  outline: 2px solid var(--focus-ring-color);
130
119
  }
131
120
 
132
- &:hover {
133
- color: var(--color);
121
+ // Keyed off the toggle, since the icons are <svg>s, which take no dynamic class.
122
+ &:not(.story-toggle--paused) .story-pause,
123
+ &--paused .story-play {
124
+ @extend %icon-swap-active;
134
125
  }
135
126
  }
136
127
 
@@ -140,7 +131,7 @@
140
131
  flex: 1;
141
132
  min-height: 0;
142
133
  position: relative;
143
- transition: opacity 0.2s ease-out;
134
+ transition: opacity var(--duration-fast) var(--easing-spring);
144
135
  z-index: 1;
145
136
 
146
137
  &--dimmed {
@@ -171,9 +162,14 @@
171
162
  top: 60px;
172
163
  }
173
164
 
165
+ &:focus-visible {
166
+ outline: 2px solid var(--focus-ring-color);
167
+ outline-offset: calc(var(--size-100) / 4);
168
+ }
169
+
174
170
  @media (prefers-reduced-motion: reduce) {
175
171
  &-toggle {
176
- transition: color 0.15s ease-out;
172
+ transition: color var(--duration-fast) var(--easing-spring);
177
173
  }
178
174
  }
179
175
  }
@@ -1,25 +1,32 @@
1
+ @use 'css-utilities/background';
2
+ @use 'css-utilities/box-shadow';
3
+ @use 'css-utilities/surface';
4
+
5
+
6
+
7
+ // A surface: a level above whatever it sits in.
1
8
  .story {
2
- --background: var(--color-grey-400);
3
- --bar-color: oklch(from var(--color-text-500) l c h / 0.15);
9
+ @extend %background-state, %box-shadow-state, %surface-raised-level;
10
+ --background-default: var(--surface-background-default);
11
+ --bar-color: oklch(from var(--color-primary-500) l c h / 0.15);
4
12
  --bar-height: 3px;
5
- --box-shadow:
6
- 0 0 0 var(--border-width-400) oklch(from var(--color-black-500) l c h / 0.06),
7
- 0 1px 2px oklch(from var(--color-black-500) l c h / 0.06),
8
- 0 6px 16px -6px oklch(from var(--color-black-500) l c h / 0.12);
13
+ --box-shadow-default: var(--surface-shadow-default);
9
14
  --color: var(--color-text-500);
10
15
  --dim-opacity: 0.6;
11
16
  // Long enough to read a short caption, the same as Instagram's default.
12
17
  --duration: 4s;
13
- --fill-color: var(--color-text-500);
14
- --focus-ring-color: oklch(from var(--color-text-500) l c h / 0.38);
18
+ --fill-color: var(--color-primary-500);
19
+ --focus-ring-color: var(--surface-border-pressed);
15
20
  --height: 480px;
16
- --icon-swap-duration: 0.3s;
21
+ --icon-swap-duration: var(--duration-moderate);
17
22
  --icon-swap-timing-function: var(--spring);
18
23
  --max-width: 320px;
19
24
  --muted-color: var(--color-text-300);
20
25
  --radius: 24px;
21
26
  // Critically damped spring (no bounce) sampled over its duration.
22
27
  --spring: linear(0, 0.0575, 0.1803, 0.3208, 0.4551, 0.5729, 0.6711, 0.7501, 0.8122, 0.8601, 0.8966, 0.924, 0.9445, 0.9596, 0.9708, 0.9789, 0.9848, 0.9891, 0.9922, 0.9944, 0.996, 0.9972, 0.998, 0.9986, 1);
28
+ // Resolved here, since the toggle's color state redefines --color on it.
29
+ --toggle-color-hover: var(--color);
23
30
 
24
31
  // Neighbours dragged into view read at full strength, like the story they are about to become.
25
32
  &-slide.frame {