@esportsplus/ui 0.56.4 → 0.57.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 (1613) hide show
  1. package/NOTICE +232 -0
  2. package/README.md +129 -138
  3. package/build/components/accordion/index.d.ts +23 -9
  4. package/build/components/accordion/index.js +95 -11
  5. package/build/components/accordion/scss/index.scss +1 -1
  6. package/build/components/announcement/index.d.ts +2167 -0
  7. package/build/components/announcement/index.js +35 -0
  8. package/build/components/announcement/scss/index.scss +2 -0
  9. package/build/components/banner/scss/index.scss +1 -1
  10. package/build/components/breadcrumb/index.d.ts +25 -25
  11. package/build/components/breadcrumb/index.js +189 -17
  12. package/build/components/breadcrumb/scss/index.scss +1 -1
  13. package/build/components/button/copy.js +6 -6
  14. package/build/components/button/faces.js +4 -4
  15. package/build/components/button/fan.js +85 -84
  16. package/build/components/button/hold.js +8 -10
  17. package/build/components/button/icons.js +33 -10
  18. package/build/components/button/index.d.ts +6 -0
  19. package/build/components/button/index.js +4 -1
  20. package/build/components/button/kbd.js +25 -25
  21. package/build/components/button/loading.js +7 -7
  22. package/build/components/button/morph.d.ts +22 -0
  23. package/build/components/button/morph.js +115 -0
  24. package/build/components/button/scss/index.scss +1 -1
  25. package/build/components/button/sidebar.d.ts +18 -0
  26. package/build/components/button/sidebar.js +19 -0
  27. package/build/components/button/split.d.ts +23 -0
  28. package/build/components/button/split.js +41 -0
  29. package/build/components/capslock/index.d.ts +19 -0
  30. package/build/components/capslock/index.js +39 -0
  31. package/build/components/capslock/scss/index.scss +2 -0
  32. package/build/components/card/expand.d.ts +22 -0
  33. package/build/components/card/expand.js +118 -0
  34. package/build/components/card/index.d.ts +6 -0
  35. package/build/components/card/index.js +4 -0
  36. package/build/components/card/scss/index.scss +1 -1
  37. package/build/components/cc/index.d.ts +30 -0
  38. package/build/components/cc/index.js +569 -0
  39. package/build/components/cc/scss/index.scss +2 -0
  40. package/build/components/chat-minimap/index.d.ts +28 -0
  41. package/build/components/chat-minimap/index.js +223 -0
  42. package/build/components/chat-minimap/range.d.ts +9 -0
  43. package/build/components/chat-minimap/range.js +30 -0
  44. package/build/components/chat-minimap/scss/index.scss +2 -0
  45. package/build/components/chat-minimap/spy.d.ts +14 -0
  46. package/build/components/chat-minimap/spy.js +107 -0
  47. package/build/components/checkbox/group.d.ts +33 -0
  48. package/build/components/checkbox/group.js +156 -0
  49. package/build/components/checkbox/index.d.ts +3 -1456
  50. package/build/components/checkbox/index.js +3 -69
  51. package/build/components/checkbox/options.d.ts +6513 -0
  52. package/build/components/checkbox/options.js +79 -0
  53. package/build/components/checkbox/scss/index.scss +1 -1
  54. package/build/components/clipboard/copy.js +5 -5
  55. package/build/components/clipboard/index.d.ts +15 -3
  56. package/build/components/color-picker/index.d.ts +5 -7
  57. package/build/components/color-picker/index.js +175 -222
  58. package/build/components/color-picker/scss/index.scss +1 -1
  59. package/build/components/command/index.d.ts +83 -17
  60. package/build/components/command/index.js +556 -143
  61. package/build/components/command/scss/index.scss +1 -1
  62. package/build/components/container/scss/index.scss +1 -1
  63. package/build/components/copy/index.d.ts +23 -0
  64. package/build/components/copy/index.js +61 -0
  65. package/build/components/copy/scss/index.scss +2 -0
  66. package/build/components/counter/index.d.ts +3 -2
  67. package/build/components/counter/index.js +41 -73
  68. package/build/components/counter/scss/index.scss +1 -1
  69. package/build/components/datalist/index.d.ts +5 -0
  70. package/build/components/datalist/index.js +76 -49
  71. package/build/components/datalist/scss/index.scss +1 -1
  72. package/build/components/dock/index.d.ts +5 -4
  73. package/build/components/dock/index.js +62 -171
  74. package/build/components/dock/scss/index.scss +1 -1
  75. package/build/components/editor/code/changes.d.ts +15 -0
  76. package/build/components/editor/code/changes.js +60 -0
  77. package/build/components/editor/code/clipboard.d.ts +6 -0
  78. package/build/components/editor/code/clipboard.js +50 -0
  79. package/build/components/editor/code/colors.d.ts +11 -0
  80. package/build/components/editor/code/colors.js +172 -0
  81. package/build/components/editor/code/commands.d.ts +22 -0
  82. package/build/components/editor/code/commands.js +556 -0
  83. package/build/components/editor/code/composition.d.ts +23 -0
  84. package/build/components/editor/code/composition.js +67 -0
  85. package/build/components/editor/code/conflicts.d.ts +21 -0
  86. package/build/components/editor/code/conflicts.js +91 -0
  87. package/build/components/editor/code/document.d.ts +127 -0
  88. package/build/components/editor/code/document.js +477 -0
  89. package/build/components/editor/code/editor.d.ts +21 -0
  90. package/build/components/editor/code/editor.js +30 -0
  91. package/build/components/editor/code/features.d.ts +77 -0
  92. package/build/components/editor/code/features.js +833 -0
  93. package/build/components/editor/code/field.d.ts +14 -0
  94. package/build/components/editor/code/field.js +57 -0
  95. package/build/components/editor/code/find.d.ts +83 -0
  96. package/build/components/editor/code/find.js +312 -0
  97. package/build/components/editor/code/folding.d.ts +34 -0
  98. package/build/components/editor/code/folding.js +433 -0
  99. package/build/components/editor/code/goto.d.ts +22 -0
  100. package/build/components/editor/code/goto.js +91 -0
  101. package/build/components/editor/code/gutter.d.ts +5 -0
  102. package/build/components/editor/code/gutter.js +22 -0
  103. package/build/components/editor/code/index.d.ts +17 -0
  104. package/build/components/editor/code/index.js +7 -0
  105. package/build/components/editor/code/keymap.d.ts +30 -0
  106. package/build/components/editor/code/keymap.js +356 -0
  107. package/build/components/editor/code/layout.d.ts +67 -0
  108. package/build/components/editor/code/layout.js +350 -0
  109. package/build/components/editor/code/links.d.ts +8 -0
  110. package/build/components/editor/code/links.js +32 -0
  111. package/build/components/editor/code/minimap.d.ts +46 -0
  112. package/build/components/editor/code/minimap.js +172 -0
  113. package/build/components/editor/code/navigation.d.ts +17 -0
  114. package/build/components/editor/code/navigation.js +49 -0
  115. package/build/components/editor/code/pointer.d.ts +40 -0
  116. package/build/components/editor/code/pointer.js +134 -0
  117. package/build/components/editor/code/projection.d.ts +43 -0
  118. package/build/components/editor/code/projection.js +200 -0
  119. package/build/components/editor/code/rows.d.ts +50 -0
  120. package/build/components/editor/code/rows.js +296 -0
  121. package/build/components/editor/code/search.d.ts +24 -0
  122. package/build/components/editor/code/search.js +231 -0
  123. package/build/components/editor/code/selection.d.ts +2 -0
  124. package/build/components/editor/code/selection.js +53 -0
  125. package/build/components/editor/code/services/completion.d.ts +27 -0
  126. package/build/components/editor/code/services/completion.js +90 -0
  127. package/build/components/editor/code/services/diagnostics.d.ts +28 -0
  128. package/build/components/editor/code/services/diagnostics.js +98 -0
  129. package/build/components/editor/code/services/hover.d.ts +14 -0
  130. package/build/components/editor/code/services/hover.js +66 -0
  131. package/build/components/editor/code/services/index.d.ts +27 -0
  132. package/build/components/editor/code/services/index.js +64 -0
  133. package/build/components/editor/code/services/model.d.ts +35 -0
  134. package/build/components/editor/code/services/model.js +167 -0
  135. package/build/components/editor/code/services/protocol.d.ts +68 -0
  136. package/build/components/editor/code/services/protocol.js +1 -0
  137. package/build/components/editor/code/services/session.d.ts +54 -0
  138. package/build/components/editor/code/services/session.js +496 -0
  139. package/build/components/editor/code/services/transport.d.ts +12 -0
  140. package/build/components/editor/code/services/transport.js +18 -0
  141. package/build/components/editor/code/syntax.d.ts +83 -0
  142. package/build/components/editor/code/syntax.js +1106 -0
  143. package/build/components/editor/code/unicode.d.ts +10 -0
  144. package/build/components/editor/code/unicode.js +117 -0
  145. package/build/components/editor/code/view.d.ts +122 -0
  146. package/build/components/editor/code/view.js +1560 -0
  147. package/build/components/editor/diffs/diff3.d.ts +25 -0
  148. package/build/components/editor/diffs/diff3.js +152 -0
  149. package/build/components/editor/diffs/engine.d.ts +18 -0
  150. package/build/components/editor/diffs/engine.js +110 -0
  151. package/build/components/editor/diffs/hunks.d.ts +41 -0
  152. package/build/components/editor/diffs/hunks.js +96 -0
  153. package/build/components/editor/diffs/index.d.ts +18 -0
  154. package/build/components/editor/diffs/index.js +10 -0
  155. package/build/components/editor/diffs/merge.d.ts +23 -0
  156. package/build/components/editor/diffs/merge.js +324 -0
  157. package/build/components/editor/diffs/render.d.ts +6 -0
  158. package/build/components/editor/diffs/render.js +56 -0
  159. package/build/components/editor/diffs/view.d.ts +44 -0
  160. package/build/components/editor/diffs/view.js +363 -0
  161. package/build/components/editor/diffs/words.d.ts +8 -0
  162. package/build/components/editor/diffs/words.js +47 -0
  163. package/build/components/editor/index.d.ts +21 -0
  164. package/build/components/editor/index.js +11 -0
  165. package/build/components/editor/markdown/editing.d.ts +7 -0
  166. package/build/components/editor/markdown/editing.js +55 -0
  167. package/build/components/editor/markdown/html.d.ts +24 -0
  168. package/build/components/editor/markdown/html.js +108 -0
  169. package/build/components/editor/markdown/index.d.ts +25 -0
  170. package/build/components/editor/markdown/index.js +33 -0
  171. package/build/components/editor/markdown/inline.d.ts +16 -0
  172. package/build/components/editor/markdown/inline.js +259 -0
  173. package/build/components/editor/markdown/layout.d.ts +63 -0
  174. package/build/components/editor/markdown/layout.js +252 -0
  175. package/build/components/editor/markdown/model.d.ts +53 -0
  176. package/build/components/editor/markdown/model.js +463 -0
  177. package/build/components/editor/markdown/render.d.ts +29 -0
  178. package/build/components/editor/markdown/render.js +561 -0
  179. package/build/components/editor/markdown/structure.d.ts +7 -0
  180. package/build/components/editor/markdown/structure.js +87 -0
  181. package/build/components/editor/markdown/view.d.ts +18 -0
  182. package/build/components/editor/markdown/view.js +1841 -0
  183. package/build/components/editor/tree/clipboard.d.ts +12 -0
  184. package/build/components/editor/tree/clipboard.js +48 -0
  185. package/build/components/editor/tree/compact.d.ts +23 -0
  186. package/build/components/editor/tree/compact.js +57 -0
  187. package/build/components/editor/tree/decorations.d.ts +39 -0
  188. package/build/components/editor/tree/decorations.js +126 -0
  189. package/build/components/editor/tree/drag.d.ts +45 -0
  190. package/build/components/editor/tree/drag.js +462 -0
  191. package/build/components/editor/tree/edit.d.ts +43 -0
  192. package/build/components/editor/tree/edit.js +134 -0
  193. package/build/components/editor/tree/filter.d.ts +7 -0
  194. package/build/components/editor/tree/filter.js +47 -0
  195. package/build/components/editor/tree/find.d.ts +55 -0
  196. package/build/components/editor/tree/find.js +291 -0
  197. package/build/components/editor/tree/glob.d.ts +2 -0
  198. package/build/components/editor/tree/glob.js +57 -0
  199. package/build/components/editor/tree/glyph.d.ts +6 -0
  200. package/build/components/editor/tree/glyph.js +31 -0
  201. package/build/components/editor/tree/history.d.ts +61 -0
  202. package/build/components/editor/tree/history.js +172 -0
  203. package/build/components/editor/tree/icons.d.ts +29 -0
  204. package/build/components/editor/tree/icons.js +417 -0
  205. package/build/components/editor/tree/index.d.ts +118 -0
  206. package/build/components/editor/tree/index.js +2227 -0
  207. package/build/components/editor/tree/jump.d.ts +8 -0
  208. package/build/components/editor/tree/jump.js +45 -0
  209. package/build/components/editor/tree/lazy.d.ts +24 -0
  210. package/build/components/editor/tree/lazy.js +71 -0
  211. package/build/components/editor/tree/model.d.ts +33 -0
  212. package/build/components/editor/tree/model.js +128 -0
  213. package/build/components/editor/tree/selection.d.ts +13 -0
  214. package/build/components/editor/tree/selection.js +55 -0
  215. package/build/components/editor/tree/shortcuts.d.ts +6 -0
  216. package/build/components/editor/tree/shortcuts.js +44 -0
  217. package/build/components/editor/tree/sort.d.ts +13 -0
  218. package/build/components/editor/tree/sort.js +53 -0
  219. package/build/components/editor/tree/spoken.d.ts +9 -0
  220. package/build/components/editor/tree/spoken.js +38 -0
  221. package/build/components/editor/tree/sprites.d.ts +4 -0
  222. package/build/components/editor/tree/sprites.js +152 -0
  223. package/build/components/editor/tree/sticky.d.ts +11 -0
  224. package/build/components/editor/tree/sticky.js +102 -0
  225. package/build/components/editor/tree/transfer.d.ts +15 -0
  226. package/build/components/editor/tree/transfer.js +75 -0
  227. package/build/components/editor/workspace/index.d.ts +64 -0
  228. package/build/components/editor/workspace/index.js +1125 -0
  229. package/build/components/editor/workspace/model.d.ts +161 -0
  230. package/build/components/editor/workspace/model.js +690 -0
  231. package/build/components/error/index.d.ts +31 -0
  232. package/build/components/error/index.js +150 -0
  233. package/build/components/error/scss/index.scss +2 -0
  234. package/build/components/filter/index.d.ts +38 -0
  235. package/build/components/filter/index.js +307 -0
  236. package/build/components/filter/scss/index.scss +2 -0
  237. package/build/components/form/action.js +1 -2
  238. package/build/components/form/index.d.ts +10 -1
  239. package/build/components/form/input.d.ts +12 -2
  240. package/build/components/form/input.js +12 -7
  241. package/build/components/form/scss/index.scss +1 -1
  242. package/build/components/frame/scss/index.scss +2 -0
  243. package/build/components/grid/scss/index.scss +1 -1
  244. package/build/components/heatmap/index.d.ts +32 -0
  245. package/build/components/heatmap/index.js +209 -0
  246. package/build/components/heatmap/scss/index.scss +2 -0
  247. package/build/components/highlight/easing.d.ts +2 -0
  248. package/build/components/highlight/easing.js +19 -0
  249. package/build/components/highlight/index.d.ts +6 -0
  250. package/build/components/highlight/index.js +334 -112
  251. package/build/components/highlight/scss/index.scss +1 -1
  252. package/build/components/icon/index.js +1 -1
  253. package/build/components/icon/scss/index.scss +1 -1
  254. package/build/components/image/index.d.ts +17 -12
  255. package/build/components/image/index.js +3 -61
  256. package/build/components/image/lazyload.d.ts +15 -0
  257. package/build/components/image/lazyload.js +72 -0
  258. package/build/components/image/scss/index.scss +1 -1
  259. package/build/components/index.d.ts +15 -79
  260. package/build/components/index.js +15 -79
  261. package/build/components/inline-edit/format.d.ts +29 -0
  262. package/build/components/inline-edit/format.js +112 -0
  263. package/build/components/inline-edit/history.d.ts +14 -0
  264. package/build/components/inline-edit/history.js +40 -0
  265. package/build/components/inline-edit/index.d.ts +13 -7
  266. package/build/components/inline-edit/index.js +44 -38
  267. package/build/components/inline-edit/markdown.d.ts +7 -0
  268. package/build/components/inline-edit/markdown.js +314 -0
  269. package/build/components/inline-edit/model.d.ts +61 -0
  270. package/build/components/inline-edit/model.js +192 -0
  271. package/build/components/inline-edit/rich.d.ts +39 -0
  272. package/build/components/inline-edit/rich.js +1236 -0
  273. package/build/components/inline-edit/scss/index.scss +1 -1
  274. package/build/components/inline-edit/selection.d.ts +7 -0
  275. package/build/components/inline-edit/selection.js +114 -0
  276. package/build/components/inline-edit/status.d.ts +24 -0
  277. package/build/components/inline-edit/status.js +196 -0
  278. package/build/components/inline-edit/utilities.d.ts +4 -0
  279. package/build/components/inline-edit/utilities.js +12 -0
  280. package/build/components/input/field.d.ts +14 -0
  281. package/build/components/input/field.js +34 -0
  282. package/build/components/input/index.d.ts +7 -14
  283. package/build/components/input/index.js +5 -41
  284. package/build/components/input/scrub.d.ts +30 -0
  285. package/build/components/input/scrub.js +221 -0
  286. package/build/components/input/scss/index.scss +1 -1
  287. package/build/components/input/tag.d.ts +24 -0
  288. package/build/components/input/tag.js +288 -0
  289. package/build/components/json/download.js +4 -3
  290. package/build/components/link/scss/index.scss +1 -1
  291. package/build/components/loading/index.d.ts +1 -1
  292. package/build/components/loading/scss/index.scss +1 -1
  293. package/build/components/marquee/index.d.ts +10 -1
  294. package/build/components/marquee/index.js +240 -174
  295. package/build/components/marquee/scss/index.scss +1 -1
  296. package/build/components/marquee/velocity.d.ts +17 -0
  297. package/build/components/marquee/velocity.js +78 -0
  298. package/build/components/metric/flash.d.ts +11 -0
  299. package/build/components/metric/flash.js +116 -0
  300. package/build/components/metric/index.d.ts +33 -0
  301. package/build/components/metric/index.js +271 -0
  302. package/build/components/metric/scss/index.scss +2 -0
  303. package/build/components/nav/index.d.ts +13 -0
  304. package/build/components/nav/index.js +6 -0
  305. package/build/components/nav/scss/index.scss +2 -0
  306. package/build/components/nav/spy.d.ts +9 -0
  307. package/build/components/nav/spy.js +157 -0
  308. package/build/components/nav/toc.d.ts +26 -0
  309. package/build/components/nav/toc.js +22 -0
  310. package/build/components/nav/tree.d.ts +39 -0
  311. package/build/components/nav/tree.js +123 -0
  312. package/build/components/notification/index.d.ts +15 -0
  313. package/build/components/notification/index.js +98 -0
  314. package/build/components/notification/scss/index.scss +2 -0
  315. package/build/components/overlay/index.d.ts +28 -9
  316. package/build/components/overlay/index.js +346 -8
  317. package/build/components/overlay/popup.d.ts +31 -0
  318. package/build/components/overlay/popup.js +150 -0
  319. package/build/components/overlay/scss/index.scss +1 -1
  320. package/build/components/page/scss/index.scss +1 -1
  321. package/build/components/pagination/dots.d.ts +21 -0
  322. package/build/components/pagination/dots.js +110 -0
  323. package/build/components/pagination/index.d.ts +8 -3
  324. package/build/components/pagination/index.js +36 -59
  325. package/build/components/pagination/scss/index.scss +1 -1
  326. package/build/components/progress/index.d.ts +7 -2
  327. package/build/components/progress/index.js +14 -10
  328. package/build/components/progress/scss/index.scss +1 -1
  329. package/build/components/progress/text.d.ts +12 -0
  330. package/build/components/progress/text.js +124 -0
  331. package/build/components/pull-to-refresh/index.d.ts +3 -11
  332. package/build/components/pull-to-refresh/index.js +127 -165
  333. package/build/components/pull-to-refresh/scss/index.scss +1 -1
  334. package/build/components/radio/index.d.ts +2 -2
  335. package/build/components/radio/index.js +2 -2
  336. package/build/components/range/filter.d.ts +22 -0
  337. package/build/components/range/filter.js +322 -0
  338. package/build/components/range/index.d.ts +9 -2
  339. package/build/components/range/index.js +13 -9
  340. package/build/components/range/scss/index.scss +1 -1
  341. package/build/components/relative-time/index.d.ts +15 -8
  342. package/build/components/relative-time/index.js +206 -193
  343. package/build/components/relative-time/scss/index.scss +1 -1
  344. package/build/components/root/scss/index.scss +1 -1
  345. package/build/components/select/index.d.ts +35 -16
  346. package/build/components/select/index.js +358 -92
  347. package/build/components/select/placement.d.ts +15 -0
  348. package/build/components/select/placement.js +31 -0
  349. package/build/components/select/scss/index.scss +1 -1
  350. package/build/components/shortcut-recorder/index.d.ts +7 -2
  351. package/build/components/shortcut-recorder/index.js +107 -99
  352. package/build/components/shortcut-recorder/scss/index.scss +1 -1
  353. package/build/components/sortable/index.d.ts +722 -4
  354. package/build/components/sortable/index.js +329 -213
  355. package/build/components/sortable/scss/index.scss +1 -1
  356. package/build/components/sticky-header/index.d.ts +22 -15
  357. package/build/components/sticky-header/index.js +41 -81
  358. package/build/components/sticky-header/scss/index.scss +1 -1
  359. package/build/components/story/index.d.ts +21 -0
  360. package/build/components/story/index.js +253 -0
  361. package/build/components/story/scss/index.scss +2 -0
  362. package/build/components/surface-field/engine.d.ts +65 -0
  363. package/build/components/surface-field/engine.js +970 -0
  364. package/build/components/surface-field/index.d.ts +2247 -1470
  365. package/build/components/surface-field/index.js +394 -371
  366. package/build/components/surface-field/scss/index.scss +1 -1
  367. package/build/components/surface-field/surface.d.ts +39 -0
  368. package/build/components/surface-field/surface.js +159 -0
  369. package/build/components/surface-field/worker/index.d.ts +9 -0
  370. package/build/components/surface-field/worker/index.js +19 -0
  371. package/build/components/switch/index.d.ts +2 -2
  372. package/build/components/switch/index.js +2 -2
  373. package/build/components/tasklist/index.d.ts +25 -717
  374. package/build/components/tasklist/index.js +151 -97
  375. package/build/components/tasklist/scss/index.scss +1 -1
  376. package/build/components/text/scss/index.scss +1 -1
  377. package/build/components/textarea/index.d.ts +15 -3
  378. package/build/components/textarea/index.js +124 -32
  379. package/build/components/textarea/scss/index.scss +1 -1
  380. package/build/components/toast/index.d.ts +40 -7
  381. package/build/components/toast/index.js +192 -145
  382. package/build/components/toast/scss/index.scss +1 -1
  383. package/build/components/tooltip/index.d.ts +3 -4
  384. package/build/components/tooltip/index.js +3 -4
  385. package/build/components/tooltip/menu.d.ts +47 -21
  386. package/build/components/tooltip/menu.js +525 -18
  387. package/build/components/tooltip/onclick.d.ts +1 -0
  388. package/build/components/tooltip/onclick.js +50 -33
  389. package/build/components/tooltip/onhover.d.ts +721 -10
  390. package/build/components/tooltip/onhover.js +129 -43
  391. package/build/components/tooltip/scss/index.scss +1 -1
  392. package/build/components/tooltip/shared.d.ts +34 -0
  393. package/build/components/tooltip/shared.js +569 -0
  394. package/build/components/tooltip/utilities.d.ts +23 -3
  395. package/build/components/tooltip/utilities.js +46 -21
  396. package/build/components/typewriter/index.d.ts +1439 -10
  397. package/build/components/typewriter/index.js +7 -2
  398. package/build/components/typewriter/retype.d.ts +7 -0
  399. package/build/components/typewriter/retype.js +83 -0
  400. package/build/components/typewriter/rotate.d.ts +13 -0
  401. package/build/components/typewriter/rotate.js +186 -0
  402. package/build/components/typewriter/scss/index.scss +1 -1
  403. package/build/components/uptime/index.js +61 -61
  404. package/build/components/uptime/scss/index.scss +1 -1
  405. package/build/components/usage-meter/index.d.ts +15 -3
  406. package/build/components/usage-meter/index.js +19 -19
  407. package/build/components/usage-meter/scss/index.scss +1 -1
  408. package/build/css-utilities/background/scss/index.scss +1 -1
  409. package/build/css-utilities/border/scss/index.scss +1 -1
  410. package/build/css-utilities/color/scss/index.scss +1 -1
  411. package/build/css-utilities/flex/scss/index.scss +1 -1
  412. package/build/css-utilities/font/geist/scss/index.scss +1 -1
  413. package/build/css-utilities/font/montserrat/scss/index.scss +1 -1
  414. package/build/css-utilities/glass/index.d.ts +10 -0
  415. package/build/css-utilities/glass/index.js +26 -0
  416. package/build/css-utilities/glass/scss/index.scss +1 -1
  417. package/build/css-utilities/index.d.ts +3 -0
  418. package/build/css-utilities/index.js +3 -0
  419. package/build/css-utilities/index.scss +1 -1
  420. package/build/css-utilities/inline/scss/index.scss +1 -1
  421. package/build/css-utilities/scrollbar/index.d.ts +42 -0
  422. package/build/css-utilities/scrollbar/index.js +155 -0
  423. package/build/css-utilities/scrollbar/scss/index.scss +1 -1
  424. package/build/css-utilities/skeleton/scss/index.scss +1 -1
  425. package/build/css-utilities/text/scss/index.scss +1 -1
  426. package/build/css-utilities/theme/index.d.ts +16 -0
  427. package/build/css-utilities/theme/index.js +60 -0
  428. package/build/normalize/scss/index.scss +3 -0
  429. package/build/shared/anchor.d.ts +7 -0
  430. package/build/shared/anchor.js +18 -0
  431. package/build/shared/animation.d.ts +6 -0
  432. package/build/shared/animation.js +57 -0
  433. package/build/shared/clamp.d.ts +2 -0
  434. package/build/shared/clamp.js +4 -0
  435. package/build/shared/deadline.d.ts +2 -0
  436. package/build/shared/deadline.js +94 -0
  437. package/build/shared/dismiss.d.ts +2 -0
  438. package/build/shared/dismiss.js +5 -0
  439. package/build/shared/drag.d.ts +47 -0
  440. package/build/shared/drag.js +189 -0
  441. package/build/shared/fuzzy.d.ts +6 -0
  442. package/build/shared/fuzzy.js +153 -0
  443. package/build/shared/keystep.d.ts +2 -0
  444. package/build/shared/keystep.js +21 -0
  445. package/build/shared/platform.d.ts +2 -0
  446. package/build/shared/platform.js +3 -0
  447. package/build/shared/press.d.ts +15 -0
  448. package/build/shared/press.js +83 -0
  449. package/build/shared/resize.d.ts +18 -0
  450. package/build/shared/resize.js +137 -0
  451. package/build/shared/subscribe.d.ts +3 -0
  452. package/build/shared/subscribe.js +12 -0
  453. package/build/shared/ticker.d.ts +3 -0
  454. package/build/shared/ticker.js +34 -0
  455. package/build/shared/transition.d.ts +11 -0
  456. package/build/shared/transition.js +49 -0
  457. package/build/shared/viewport.d.ts +7 -0
  458. package/build/shared/viewport.js +11 -0
  459. package/build/shared/visible.d.ts +8 -0
  460. package/build/shared/visible.js +79 -0
  461. package/build/themes/dark/input.d.ts +3 -721
  462. package/build/themes/dark/input.js +4 -2
  463. package/build/themes/dark/select.js +2 -1
  464. package/build/themes/dark/textarea.d.ts +15 -3
  465. package/build/themes/dark/textarea.js +1 -0
  466. package/package.json +11 -4
  467. package/pnpm-workspace.yaml +3 -18
  468. package/scripts/animation.test.mjs +45 -0
  469. package/scripts/chat-minimap.test.mjs +53 -0
  470. package/scripts/code-editor-features.test.mjs +287 -0
  471. package/scripts/code-editor-markdown.test.mjs +527 -0
  472. package/scripts/code-editor-services.test.mjs +361 -0
  473. package/scripts/code-editor-workspace.test.mjs +398 -0
  474. package/scripts/code-editor.test.mjs +1615 -0
  475. package/scripts/css-variables.test.mjs +1 -1
  476. package/scripts/deadline.test.mjs +191 -0
  477. package/scripts/diffs.test.mjs +189 -0
  478. package/scripts/file-tree-features.test.mjs +137 -0
  479. package/scripts/file-tree-icons.test.mjs +234 -0
  480. package/scripts/highlight.test.mjs +52 -0
  481. package/scripts/resize.test.mjs +247 -0
  482. package/scripts/resolve.mjs +52 -0
  483. package/scripts/slides.test.mjs +126 -0
  484. package/scripts/subscribe.test.mjs +49 -0
  485. package/scripts/ticker.test.mjs +126 -0
  486. package/scripts/transition.test.mjs +83 -0
  487. package/scripts/viewport.test.mjs +82 -0
  488. package/scripts/visible.test.mjs +186 -0
  489. package/shared.scss +2 -0
  490. package/src/components/accordion/index.ts +71 -12
  491. package/src/components/accordion/scss/index.scss +32 -129
  492. package/src/components/accordion/scss/variables.scss +7 -0
  493. package/src/components/announcement/index.ts +26 -0
  494. package/src/components/announcement/scss/index.scss +47 -0
  495. package/src/components/announcement/scss/variables.scss +23 -0
  496. package/src/components/banner/scss/index.scss +4 -8
  497. package/src/components/banner/scss/variables.scss +6 -0
  498. package/src/components/breadcrumb/index.ts +222 -25
  499. package/src/components/breadcrumb/scss/index.scss +217 -34
  500. package/src/components/breadcrumb/scss/variables.scss +73 -8
  501. package/src/components/button/copy.ts +1 -1
  502. package/src/components/button/faces.ts +1 -2
  503. package/src/components/button/fan.ts +111 -114
  504. package/src/components/button/hold.ts +9 -9
  505. package/src/components/button/icons.ts +15 -32
  506. package/src/components/button/index.ts +13 -1
  507. package/src/components/button/kbd.ts +6 -6
  508. package/src/components/button/loading.ts +1 -1
  509. package/src/components/button/morph.ts +153 -0
  510. package/src/components/button/scss/_kbd.scss +2 -1
  511. package/src/components/button/scss/_morph.scss +119 -0
  512. package/src/components/button/scss/_sidebar.scss +50 -0
  513. package/src/components/button/scss/_split.scss +53 -0
  514. package/src/components/button/scss/index.scss +45 -31
  515. package/src/components/button/scss/variables.scss +85 -34
  516. package/src/components/button/sidebar.ts +60 -0
  517. package/src/components/button/split.ts +60 -0
  518. package/src/components/capslock/index.ts +54 -0
  519. package/src/components/capslock/scss/index.scss +55 -0
  520. package/src/components/capslock/scss/variables.scss +26 -0
  521. package/src/components/card/expand.ts +141 -0
  522. package/src/components/card/index.ts +8 -0
  523. package/src/components/card/scss/_expand.scss +240 -0
  524. package/src/components/card/scss/index.scss +52 -9
  525. package/src/components/card/scss/variables.scss +85 -19
  526. package/src/components/cc/index.ts +558 -0
  527. package/src/components/cc/scss/index.scss +429 -0
  528. package/src/components/cc/scss/variables.scss +68 -0
  529. package/src/components/chat-minimap/index.ts +265 -0
  530. package/src/components/chat-minimap/range.ts +59 -0
  531. package/src/components/chat-minimap/scss/index.scss +140 -0
  532. package/src/components/chat-minimap/scss/variables.scss +97 -0
  533. package/src/components/chat-minimap/spy.ts +151 -0
  534. package/src/components/checkbox/group.ts +216 -0
  535. package/src/components/checkbox/index.ts +3 -41
  536. package/src/components/checkbox/options.ts +55 -0
  537. package/src/components/checkbox/scss/index.scss +69 -17
  538. package/src/components/checkbox/scss/variables.scss +28 -7
  539. package/src/components/clipboard/copy.ts +5 -5
  540. package/src/components/color-picker/index.ts +160 -233
  541. package/src/components/color-picker/scss/index.scss +51 -93
  542. package/src/components/color-picker/scss/variables.scss +68 -10
  543. package/src/components/command/index.ts +788 -206
  544. package/src/components/command/scss/index.scss +168 -158
  545. package/src/components/command/scss/variables.scss +118 -25
  546. package/src/components/copy/index.ts +69 -0
  547. package/src/components/copy/scss/index.scss +52 -0
  548. package/src/components/copy/scss/variables.scss +22 -0
  549. package/src/components/counter/index.ts +69 -94
  550. package/src/components/counter/scss/index.scss +20 -48
  551. package/src/components/counter/scss/variables.scss +24 -35
  552. package/src/components/datalist/index.ts +49 -29
  553. package/src/components/datalist/scss/index.scss +43 -24
  554. package/src/components/datalist/scss/variables.scss +7 -4
  555. package/src/components/dock/index.ts +61 -231
  556. package/src/components/dock/scss/index.scss +73 -39
  557. package/src/components/dock/scss/variables.scss +77 -16
  558. package/src/components/editor/code/changes.ts +111 -0
  559. package/src/components/editor/code/clipboard.ts +81 -0
  560. package/src/components/editor/code/colors.ts +278 -0
  561. package/src/components/editor/code/commands.ts +879 -0
  562. package/src/components/editor/code/composition.ts +85 -0
  563. package/src/components/editor/code/conflicts.ts +160 -0
  564. package/src/components/editor/code/document.ts +789 -0
  565. package/src/components/editor/code/editor.ts +68 -0
  566. package/src/components/editor/code/features.ts +1144 -0
  567. package/src/components/editor/code/field.ts +96 -0
  568. package/src/components/editor/code/find.ts +340 -0
  569. package/src/components/editor/code/folding.ts +689 -0
  570. package/src/components/editor/code/goto.ts +89 -0
  571. package/src/components/editor/code/gutter.ts +47 -0
  572. package/src/components/editor/code/index.ts +29 -0
  573. package/src/components/editor/code/keymap.ts +518 -0
  574. package/src/components/editor/code/layout.ts +565 -0
  575. package/src/components/editor/code/links.ts +55 -0
  576. package/src/components/editor/code/minimap.ts +260 -0
  577. package/src/components/editor/code/navigation.ts +95 -0
  578. package/src/components/editor/code/pointer.ts +199 -0
  579. package/src/components/editor/code/projection.ts +342 -0
  580. package/src/components/editor/code/rows.ts +412 -0
  581. package/src/components/editor/code/scss/_editor.scss +432 -0
  582. package/src/components/editor/code/scss/_features.scss +311 -0
  583. package/src/components/editor/code/scss/_services.scss +154 -0
  584. package/src/components/editor/code/scss/index.scss +6 -0
  585. package/src/components/editor/code/scss/variables.scss +194 -0
  586. package/src/components/editor/code/search.ts +391 -0
  587. package/src/components/editor/code/selection.ts +83 -0
  588. package/src/components/editor/code/services/completion.ts +114 -0
  589. package/src/components/editor/code/services/diagnostics.ts +168 -0
  590. package/src/components/editor/code/services/hover.ts +74 -0
  591. package/src/components/editor/code/services/index.ts +118 -0
  592. package/src/components/editor/code/services/model.ts +270 -0
  593. package/src/components/editor/code/services/protocol.ts +55 -0
  594. package/src/components/editor/code/services/session.ts +721 -0
  595. package/src/components/editor/code/services/transport.ts +36 -0
  596. package/src/components/editor/code/syntax.ts +1673 -0
  597. package/src/components/editor/code/unicode.ts +156 -0
  598. package/src/components/editor/code/view.ts +2139 -0
  599. package/src/components/editor/diffs/diff3.ts +280 -0
  600. package/src/components/editor/diffs/engine.ts +192 -0
  601. package/src/components/editor/diffs/hunks.ts +196 -0
  602. package/src/components/editor/diffs/index.ts +20 -0
  603. package/src/components/editor/diffs/merge.ts +377 -0
  604. package/src/components/editor/diffs/render.ts +95 -0
  605. package/src/components/editor/diffs/scss/_diffs.scss +352 -0
  606. package/src/components/editor/diffs/scss/_merge.scss +121 -0
  607. package/src/components/editor/diffs/scss/index.scss +5 -0
  608. package/src/components/editor/diffs/scss/variables.scss +70 -0
  609. package/src/components/editor/diffs/view.ts +464 -0
  610. package/src/components/editor/diffs/words.ts +85 -0
  611. package/src/components/editor/index.ts +59 -0
  612. package/src/components/editor/markdown/editing.ts +92 -0
  613. package/src/components/editor/markdown/html.ts +192 -0
  614. package/src/components/editor/markdown/index.ts +72 -0
  615. package/src/components/editor/markdown/inline.ts +399 -0
  616. package/src/components/editor/markdown/layout.ts +446 -0
  617. package/src/components/editor/markdown/model.ts +737 -0
  618. package/src/components/editor/markdown/render.ts +461 -0
  619. package/src/components/editor/markdown/scss/index.scss +456 -0
  620. package/src/components/editor/markdown/scss/variables.scss +109 -0
  621. package/src/components/editor/markdown/structure.ts +136 -0
  622. package/src/components/editor/markdown/view.ts +2417 -0
  623. package/src/components/editor/tree/clipboard.ts +80 -0
  624. package/src/components/editor/tree/compact.ts +93 -0
  625. package/src/components/editor/tree/decorations.ts +210 -0
  626. package/src/components/editor/tree/drag.ts +652 -0
  627. package/src/components/editor/tree/edit.ts +234 -0
  628. package/src/components/editor/tree/filter.ts +81 -0
  629. package/src/components/editor/tree/find.ts +500 -0
  630. package/src/components/editor/tree/glob.ts +76 -0
  631. package/src/components/editor/tree/glyph.ts +49 -0
  632. package/src/components/editor/tree/history.ts +282 -0
  633. package/src/components/editor/tree/icons.ts +507 -0
  634. package/src/components/editor/tree/index.ts +3438 -0
  635. package/src/components/editor/tree/jump.ts +78 -0
  636. package/src/components/editor/tree/lazy.ts +111 -0
  637. package/src/components/editor/tree/model.ts +235 -0
  638. package/src/components/editor/tree/scss/index.scss +732 -0
  639. package/src/components/editor/tree/scss/variables.scss +260 -0
  640. package/src/components/editor/tree/selection.ts +85 -0
  641. package/src/components/editor/tree/shortcuts.ts +64 -0
  642. package/src/components/editor/tree/sort.ts +104 -0
  643. package/src/components/editor/tree/spoken.ts +67 -0
  644. package/src/components/editor/tree/sprites.ts +159 -0
  645. package/src/components/editor/tree/sticky.ts +154 -0
  646. package/src/components/editor/tree/transfer.ts +134 -0
  647. package/src/components/editor/workspace/index.ts +1357 -0
  648. package/src/components/editor/workspace/model.ts +1023 -0
  649. package/src/components/editor/workspace/scss/index.scss +547 -0
  650. package/src/components/error/index.ts +189 -0
  651. package/src/components/error/scss/index.scss +89 -0
  652. package/src/components/error/scss/variables.scss +13 -0
  653. package/src/components/filter/index.ts +420 -0
  654. package/src/components/filter/scss/index.scss +6 -0
  655. package/src/components/filter/scss/variables.scss +17 -0
  656. package/src/components/form/action.ts +4 -4
  657. package/src/components/form/input.ts +13 -7
  658. package/src/components/frame/scss/index.scss +107 -0
  659. package/src/components/frame/scss/variables.scss +27 -0
  660. package/src/components/heatmap/index.ts +281 -0
  661. package/src/components/heatmap/scss/index.scss +131 -0
  662. package/src/components/heatmap/scss/variables.scss +58 -0
  663. package/src/components/highlight/easing.ts +33 -0
  664. package/src/components/highlight/index.ts +580 -77
  665. package/src/components/highlight/scss/index.scss +49 -9
  666. package/src/components/highlight/scss/variables.scss +62 -3
  667. package/src/components/icon/scss/index.scss +0 -1
  668. package/src/components/image/index.ts +3 -76
  669. package/src/components/image/lazyload.ts +95 -0
  670. package/src/components/image/scss/index.scss +71 -57
  671. package/src/components/image/scss/variables.scss +39 -14
  672. package/src/components/index.ts +27 -79
  673. package/src/components/inline-edit/format.ts +183 -0
  674. package/src/components/inline-edit/history.ts +71 -0
  675. package/src/components/inline-edit/index.ts +44 -38
  676. package/src/components/inline-edit/markdown.ts +485 -0
  677. package/src/components/inline-edit/model.ts +366 -0
  678. package/src/components/inline-edit/rich.ts +1518 -0
  679. package/src/components/inline-edit/scss/index.scss +431 -41
  680. package/src/components/inline-edit/scss/variables.scss +105 -0
  681. package/src/components/inline-edit/selection.ts +188 -0
  682. package/src/components/inline-edit/status.ts +194 -0
  683. package/src/components/inline-edit/utilities.ts +18 -0
  684. package/src/components/input/field.ts +32 -0
  685. package/src/components/input/index.ts +5 -38
  686. package/src/components/input/scrub.ts +338 -0
  687. package/src/components/input/scss/_field.scss +53 -0
  688. package/src/components/input/scss/_scrub.scss +91 -0
  689. package/src/components/input/scss/_tag.scss +162 -0
  690. package/src/components/input/scss/index.scss +5 -18
  691. package/src/components/input/scss/variables.scss +108 -38
  692. package/src/components/input/tag.ts +403 -0
  693. package/src/components/json/download.ts +9 -6
  694. package/src/components/link/scss/index.scss +9 -4
  695. package/src/components/link/scss/variables.scss +1 -31
  696. package/src/components/loading/index.ts +1 -1
  697. package/src/components/loading/scss/index.scss +3 -6
  698. package/src/components/marquee/index.ts +246 -169
  699. package/src/components/marquee/scss/index.scss +21 -28
  700. package/src/components/marquee/scss/variables.scss +16 -0
  701. package/src/components/marquee/velocity.ts +144 -0
  702. package/src/components/metric/flash.ts +128 -0
  703. package/src/components/metric/index.ts +315 -0
  704. package/src/components/metric/scss/_flash.scss +163 -0
  705. package/src/components/metric/scss/index.scss +163 -0
  706. package/src/components/metric/scss/variables.scss +133 -0
  707. package/src/components/nav/index.ts +13 -0
  708. package/src/components/nav/scss/index.scss +123 -0
  709. package/src/components/nav/scss/variables.scss +60 -0
  710. package/src/components/nav/spy.ts +203 -0
  711. package/src/components/nav/toc.ts +48 -0
  712. package/src/components/nav/tree.ts +181 -0
  713. package/src/components/notification/index.ts +111 -0
  714. package/src/components/notification/scss/index.scss +123 -0
  715. package/src/components/notification/scss/variables.scss +54 -0
  716. package/src/components/overlay/index.ts +487 -5
  717. package/src/components/overlay/popup.ts +214 -0
  718. package/src/components/overlay/scss/index.scss +379 -7
  719. package/src/components/overlay/scss/variables.scss +117 -0
  720. package/src/components/pagination/dots.ts +132 -0
  721. package/src/components/pagination/index.ts +34 -45
  722. package/src/components/pagination/scss/_dots.scss +67 -0
  723. package/src/components/pagination/scss/index.scss +15 -8
  724. package/src/components/pagination/scss/variables.scss +59 -0
  725. package/src/components/progress/index.ts +18 -8
  726. package/src/components/progress/scss/_text.scss +132 -0
  727. package/src/components/progress/scss/index.scss +1 -0
  728. package/src/components/progress/scss/variables.scss +42 -0
  729. package/src/components/progress/text.ts +158 -0
  730. package/src/components/pull-to-refresh/index.ts +126 -248
  731. package/src/components/pull-to-refresh/scss/index.scss +65 -29
  732. package/src/components/pull-to-refresh/scss/variables.scss +24 -1
  733. package/src/components/radio/index.ts +3 -3
  734. package/src/components/range/filter.ts +398 -0
  735. package/src/components/range/index.ts +27 -16
  736. package/src/components/range/scss/_filter.scss +374 -0
  737. package/src/components/range/scss/_slider.scss +140 -0
  738. package/src/components/range/scss/_vertical.scss +22 -0
  739. package/src/components/range/scss/index.scss +26 -14
  740. package/src/components/range/scss/variables.scss +78 -13
  741. package/src/components/relative-time/index.ts +218 -233
  742. package/src/components/relative-time/scss/index.scss +42 -18
  743. package/src/components/relative-time/scss/variables.scss +25 -0
  744. package/src/components/root/scss/index.scss +7 -3
  745. package/src/components/root/scss/variables.scss +21 -12
  746. package/src/components/select/index.ts +506 -153
  747. package/src/components/select/placement.ts +75 -0
  748. package/src/components/select/scss/index.scss +182 -45
  749. package/src/components/select/scss/variables.scss +58 -44
  750. package/src/components/shortcut-recorder/index.ts +145 -106
  751. package/src/components/shortcut-recorder/scss/index.scss +34 -121
  752. package/src/components/shortcut-recorder/scss/variables.scss +27 -39
  753. package/src/components/sortable/index.ts +380 -272
  754. package/src/components/sortable/scss/index.scss +107 -38
  755. package/src/components/sortable/scss/variables.scss +12 -1
  756. package/src/components/sticky-header/index.ts +43 -92
  757. package/src/components/sticky-header/scss/index.scss +76 -86
  758. package/src/components/sticky-header/scss/variables.scss +36 -12
  759. package/src/components/story/index.ts +305 -0
  760. package/src/components/story/scss/index.scss +189 -0
  761. package/src/components/story/scss/variables.scss +28 -0
  762. package/src/components/surface-field/engine.ts +1631 -0
  763. package/src/components/surface-field/index.ts +574 -608
  764. package/src/components/surface-field/scss/index.scss +74 -17
  765. package/src/components/surface-field/scss/variables.scss +23 -0
  766. package/src/components/surface-field/surface.ts +260 -0
  767. package/src/components/surface-field/worker/index.ts +41 -0
  768. package/src/components/switch/index.ts +3 -3
  769. package/src/components/tasklist/index.ts +197 -119
  770. package/src/components/tasklist/scss/index.scss +45 -128
  771. package/src/components/tasklist/scss/variables.scss +97 -70
  772. package/src/components/text/scss/index.scss +2 -15
  773. package/src/components/textarea/index.ts +142 -39
  774. package/src/components/textarea/scss/index.scss +41 -18
  775. package/src/components/textarea/scss/variables.scss +5 -46
  776. package/src/components/toast/index.ts +270 -157
  777. package/src/components/toast/scss/index.scss +244 -225
  778. package/src/components/toast/scss/variables.scss +68 -9
  779. package/src/components/tooltip/index.ts +9 -4
  780. package/src/components/tooltip/menu.ts +599 -37
  781. package/src/components/tooltip/onclick.ts +28 -22
  782. package/src/components/tooltip/onhover.ts +155 -73
  783. package/src/components/tooltip/scss/_menu.scss +352 -0
  784. package/src/components/tooltip/scss/_shared.scss +109 -0
  785. package/src/components/tooltip/scss/_south.scss +0 -1
  786. package/src/components/tooltip/scss/index.scss +16 -97
  787. package/src/components/tooltip/scss/variables.scss +103 -59
  788. package/src/components/tooltip/shared.ts +819 -0
  789. package/src/components/tooltip/utilities.ts +78 -23
  790. package/src/components/typewriter/index.ts +8 -1
  791. package/src/components/typewriter/retype.ts +99 -0
  792. package/src/components/typewriter/rotate.ts +279 -0
  793. package/src/components/typewriter/scss/_caret.scss +34 -0
  794. package/src/components/typewriter/scss/_retype.scss +67 -0
  795. package/src/components/typewriter/scss/_rotate.scss +28 -0
  796. package/src/components/typewriter/scss/index.scss +3 -33
  797. package/src/components/typewriter/scss/variables.scss +60 -10
  798. package/src/components/uptime/index.ts +50 -49
  799. package/src/components/uptime/scss/index.scss +67 -47
  800. package/src/components/uptime/scss/variables.scss +32 -4
  801. package/src/components/usage-meter/index.ts +17 -17
  802. package/src/components/usage-meter/scss/index.scss +19 -31
  803. package/src/components/usage-meter/scss/variables.scss +15 -7
  804. package/src/css-utilities/background/scss/index.scss +1 -1
  805. package/src/css-utilities/background/scss/variables.scss +2 -17
  806. package/src/css-utilities/border/scss/index.scss +1 -1
  807. package/src/css-utilities/border/scss/variables.scss +7 -23
  808. package/src/css-utilities/color/scss/index.scss +1 -1
  809. package/src/css-utilities/color/scss/variables.scss +2 -17
  810. package/src/css-utilities/flex/scss/variables.scss +0 -1
  811. package/src/css-utilities/font/geist/scss/index.scss +2 -2
  812. package/src/css-utilities/font/montserrat/scss/index.scss +2 -2
  813. package/src/css-utilities/glass/index.ts +42 -0
  814. package/src/css-utilities/glass/scss/index.scss +65 -1
  815. package/src/css-utilities/glass/scss/variables.scss +6 -1
  816. package/src/css-utilities/index.scss +0 -5
  817. package/src/css-utilities/index.ts +3 -0
  818. package/src/css-utilities/scrollbar/index.ts +200 -0
  819. package/src/css-utilities/scrollbar/scss/index.scss +300 -36
  820. package/src/css-utilities/scrollbar/scss/variables.scss +38 -3
  821. package/src/css-utilities/text/scss/index.scss +97 -6
  822. package/src/css-utilities/text/scss/variables.scss +22 -0
  823. package/src/css-utilities/theme/index.ts +71 -0
  824. package/src/normalize/scss/index.scss +42 -0
  825. package/src/shared/anchor.ts +34 -0
  826. package/src/shared/animation.ts +106 -0
  827. package/src/shared/clamp.ts +6 -0
  828. package/src/shared/deadline.ts +153 -0
  829. package/src/shared/dismiss.ts +6 -0
  830. package/src/shared/drag.ts +348 -0
  831. package/src/shared/fuzzy.ts +263 -0
  832. package/src/shared/keystep.ts +28 -0
  833. package/src/shared/platform.ts +10 -0
  834. package/src/shared/press.ts +144 -0
  835. package/src/shared/resize.ts +232 -0
  836. package/src/shared/scss/absolute.scss +28 -0
  837. package/src/shared/scss/anchor.scss +63 -0
  838. package/src/shared/scss/background.scss +21 -0
  839. package/src/shared/scss/border.scss +21 -0
  840. package/src/shared/scss/color.scss +21 -0
  841. package/src/shared/scss/drag.scss +7 -0
  842. package/src/shared/scss/hidden.scss +22 -0
  843. package/src/shared/scss/icon.scss +36 -0
  844. package/src/shared/scss/index.scss +16 -0
  845. package/src/shared/scss/layer.scss +20 -0
  846. package/src/shared/scss/list.scss +64 -0
  847. package/src/shared/scss/reset.scss +21 -0
  848. package/src/shared/scss/string.scss +18 -0
  849. package/src/shared/scss/text.scss +31 -0
  850. package/src/shared/subscribe.ts +20 -0
  851. package/src/shared/ticker.ts +56 -0
  852. package/src/shared/transition.ts +61 -0
  853. package/src/shared/viewport.ts +23 -0
  854. package/src/shared/visible.ts +127 -0
  855. package/src/themes/dark/input.ts +6 -2
  856. package/src/themes/dark/select.ts +3 -2
  857. package/src/themes/dark/textarea.ts +1 -0
  858. package/src/tokens/scss/box-shadow.scss +12 -16
  859. package/src/tokens/scss/color.scss +3 -2
  860. package/src/tokens/scss/font-family.scss +5 -0
  861. package/src/tokens/scss/index.scss +10 -0
  862. package/src/tokens/scss/state.scss +10 -8
  863. package/storage/code.md +180 -0
  864. package/storage/editor-features.md +227 -0
  865. package/storage/svg/amex.svg +1 -0
  866. package/storage/svg/arrow-down.svg +1 -0
  867. package/storage/svg/arrow-up.svg +1 -0
  868. package/storage/svg/bold.svg +1 -0
  869. package/storage/svg/caps-lock.svg +1 -0
  870. package/storage/svg/card.svg +1 -0
  871. package/storage/svg/chevron-down.svg +1 -0
  872. package/storage/svg/chevron-left.svg +1 -0
  873. package/storage/svg/chevron-right.svg +1 -0
  874. package/storage/svg/chevron-up.svg +1 -0
  875. package/storage/svg/chevrons-up-down.svg +1 -0
  876. package/storage/svg/chip.svg +1 -0
  877. package/storage/svg/circle.svg +1 -0
  878. package/storage/svg/clear-format.svg +1 -0
  879. package/storage/svg/close.svg +1 -0
  880. package/storage/svg/code.svg +1 -0
  881. package/storage/svg/command.svg +1 -0
  882. package/storage/svg/contrast.svg +1 -0
  883. package/storage/svg/copy.svg +1 -0
  884. package/storage/svg/corner-down-right.svg +1 -0
  885. package/storage/svg/credit-card.svg +1 -0
  886. package/storage/svg/dash.svg +1 -0
  887. package/storage/svg/discover.svg +1 -0
  888. package/storage/svg/document.svg +1 -0
  889. package/storage/svg/dots.svg +1 -0
  890. package/storage/svg/download.svg +1 -0
  891. package/storage/svg/enter.svg +1 -0
  892. package/storage/svg/expand.svg +1 -0
  893. package/storage/svg/external-link.svg +1 -0
  894. package/storage/svg/eye-off.svg +1 -0
  895. package/storage/svg/eye.svg +1 -0
  896. package/storage/svg/file-agents.svg +1 -0
  897. package/storage/svg/file-astro.svg +1 -0
  898. package/storage/svg/file-babel.svg +1 -0
  899. package/storage/svg/file-bash.svg +1 -0
  900. package/storage/svg/file-biome.svg +1 -0
  901. package/storage/svg/file-bootstrap.svg +1 -0
  902. package/storage/svg/file-browserslist.svg +1 -0
  903. package/storage/svg/file-bun.svg +1 -0
  904. package/storage/svg/file-c.svg +1 -0
  905. package/storage/svg/file-claude.svg +1 -0
  906. package/storage/svg/file-css.svg +1 -0
  907. package/storage/svg/file-database.svg +1 -0
  908. package/storage/svg/file-docker.svg +1 -0
  909. package/storage/svg/file-eslint.svg +1 -0
  910. package/storage/svg/file-font.svg +1 -0
  911. package/storage/svg/file-git.svg +1 -0
  912. package/storage/svg/file-go.svg +1 -0
  913. package/storage/svg/file-graphql.svg +1 -0
  914. package/storage/svg/file-html.svg +1 -0
  915. package/storage/svg/file-image.svg +1 -0
  916. package/storage/svg/file-javascript.svg +1 -0
  917. package/storage/svg/file-json.svg +1 -0
  918. package/storage/svg/file-markdown.svg +1 -0
  919. package/storage/svg/file-mcp.svg +1 -0
  920. package/storage/svg/file-nextjs.svg +1 -0
  921. package/storage/svg/file-npm.svg +1 -0
  922. package/storage/svg/file-oxc.svg +1 -0
  923. package/storage/svg/file-package.svg +1 -0
  924. package/storage/svg/file-pnpm.svg +1 -0
  925. package/storage/svg/file-postcss.svg +1 -0
  926. package/storage/svg/file-prettier.svg +1 -0
  927. package/storage/svg/file-python.svg +1 -0
  928. package/storage/svg/file-react.svg +1 -0
  929. package/storage/svg/file-readme.svg +1 -0
  930. package/storage/svg/file-ruby.svg +1 -0
  931. package/storage/svg/file-rust.svg +1 -0
  932. package/storage/svg/file-sass.svg +1 -0
  933. package/storage/svg/file-stylelint.svg +1 -0
  934. package/storage/svg/file-svelte.svg +1 -0
  935. package/storage/svg/file-svg.svg +1 -0
  936. package/storage/svg/file-svgo.svg +1 -0
  937. package/storage/svg/file-swift.svg +1 -0
  938. package/storage/svg/file-table.svg +1 -0
  939. package/storage/svg/file-tailwind.svg +1 -0
  940. package/storage/svg/file-terraform.svg +1 -0
  941. package/storage/svg/file-text.svg +1 -0
  942. package/storage/svg/file-tsconfig.svg +1 -0
  943. package/storage/svg/file-typescript.svg +1 -0
  944. package/storage/svg/file-vite.svg +1 -0
  945. package/storage/svg/file-vscode.svg +1 -0
  946. package/storage/svg/file-vue.svg +1 -0
  947. package/storage/svg/file-wasm.svg +1 -0
  948. package/storage/svg/file-webpack.svg +1 -0
  949. package/storage/svg/file-yml.svg +1 -0
  950. package/storage/svg/file-zig.svg +1 -0
  951. package/storage/svg/file-zip.svg +1 -0
  952. package/storage/svg/file.svg +1 -0
  953. package/storage/svg/folder-assets-open.svg +1 -0
  954. package/storage/svg/folder-assets.svg +1 -0
  955. package/storage/svg/folder-components-open.svg +1 -0
  956. package/storage/svg/folder-components.svg +1 -0
  957. package/storage/svg/folder-docs-open.svg +1 -0
  958. package/storage/svg/folder-docs.svg +1 -0
  959. package/storage/svg/folder-git-open.svg +1 -0
  960. package/storage/svg/folder-git.svg +1 -0
  961. package/storage/svg/folder-open.svg +1 -0
  962. package/storage/svg/folder-output-open.svg +1 -0
  963. package/storage/svg/folder-output.svg +1 -0
  964. package/storage/svg/folder-packages-open.svg +1 -0
  965. package/storage/svg/folder-packages.svg +1 -0
  966. package/storage/svg/folder-public-open.svg +1 -0
  967. package/storage/svg/folder-public.svg +1 -0
  968. package/storage/svg/folder-scripts-open.svg +1 -0
  969. package/storage/svg/folder-scripts.svg +1 -0
  970. package/storage/svg/folder-src-open.svg +1 -0
  971. package/storage/svg/folder-src.svg +1 -0
  972. package/storage/svg/folder-test-open.svg +1 -0
  973. package/storage/svg/folder-test.svg +1 -0
  974. package/storage/svg/folder.svg +1 -0
  975. package/storage/svg/gear.svg +1 -0
  976. package/storage/svg/help.svg +1 -0
  977. package/storage/svg/highlight.svg +1 -0
  978. package/storage/svg/home.svg +1 -0
  979. package/storage/svg/inbox.svg +1 -0
  980. package/storage/svg/italic.svg +1 -0
  981. package/storage/svg/keyboard.svg +1 -0
  982. package/storage/svg/link.svg +1 -0
  983. package/storage/svg/list-checks.svg +1 -0
  984. package/storage/svg/lock.svg +1 -0
  985. package/storage/svg/log-out.svg +1 -0
  986. package/storage/svg/map.svg +1 -0
  987. package/storage/svg/mastercard.svg +1 -0
  988. package/storage/svg/pause.svg +1 -0
  989. package/storage/svg/pencil.svg +1 -0
  990. package/storage/svg/play.svg +1 -0
  991. package/storage/svg/plus.svg +1 -0
  992. package/storage/svg/redo.svg +1 -0
  993. package/storage/svg/save.svg +1 -0
  994. package/storage/svg/sidebar-filled.svg +1 -0
  995. package/storage/svg/sidebar.svg +1 -0
  996. package/storage/svg/slash.svg +1 -0
  997. package/storage/svg/sliders.svg +1 -0
  998. package/storage/svg/strikethrough.svg +1 -0
  999. package/storage/svg/trash.svg +1 -0
  1000. package/storage/svg/triangle.svg +1 -0
  1001. package/storage/svg/undo.svg +1 -0
  1002. package/storage/svg/unlink.svg +1 -0
  1003. package/storage/svg/user.svg +1 -0
  1004. package/storage/svg/visa.svg +1 -0
  1005. package/storage/svg/zoom-in.svg +1 -0
  1006. package/storage/svg/zoom-out.svg +1 -0
  1007. package/tokens.scss +1 -1
  1008. package/vite.config.ts +47 -46
  1009. package/build/components/accordion/more.d.ts +0 -20
  1010. package/build/components/accordion/more.js +0 -76
  1011. package/build/components/anchor/scss/index.scss +0 -2
  1012. package/build/components/announcement-banner/index.d.ts +0 -33
  1013. package/build/components/announcement-banner/index.js +0 -61
  1014. package/build/components/announcement-banner/scss/index.scss +0 -2
  1015. package/build/components/autosave/index.d.ts +0 -12
  1016. package/build/components/autosave/index.js +0 -140
  1017. package/build/components/autosave/scss/index.scss +0 -2
  1018. package/build/components/back-to-top/index.d.ts +0 -16
  1019. package/build/components/back-to-top/index.js +0 -182
  1020. package/build/components/back-to-top/scss/index.scss +0 -2
  1021. package/build/components/bento-grid/index.d.ts +0 -25
  1022. package/build/components/bento-grid/index.js +0 -38
  1023. package/build/components/bento-grid/scss/index.scss +0 -2
  1024. package/build/components/bento-grid-spotlight/index.d.ts +0 -35
  1025. package/build/components/bento-grid-spotlight/index.js +0 -108
  1026. package/build/components/bento-grid-spotlight/scss/index.scss +0 -2
  1027. package/build/components/bookmark-button/index.d.ts +0 -23
  1028. package/build/components/bookmark-button/index.js +0 -120
  1029. package/build/components/bookmark-button/scss/index.scss +0 -2
  1030. package/build/components/breadcrumb/ellipsis.d.ts +0 -12
  1031. package/build/components/breadcrumb/ellipsis.js +0 -11
  1032. package/build/components/breadcrumb/item.d.ts +0 -12
  1033. package/build/components/breadcrumb/item.js +0 -9
  1034. package/build/components/breadcrumb/link.d.ts +0 -15
  1035. package/build/components/breadcrumb/link.js +0 -14
  1036. package/build/components/breadcrumb/list.d.ts +0 -12
  1037. package/build/components/breadcrumb/list.js +0 -9
  1038. package/build/components/breadcrumb/menu.d.ts +0 -13
  1039. package/build/components/breadcrumb/menu.js +0 -16
  1040. package/build/components/breadcrumb/page.d.ts +0 -12
  1041. package/build/components/breadcrumb/page.js +0 -9
  1042. package/build/components/breadcrumb/separator.d.ts +0 -12
  1043. package/build/components/breadcrumb/separator.js +0 -11
  1044. package/build/components/breadcrumb/svg/caret.svg +0 -1
  1045. package/build/components/breadcrumb/svg/chevron.svg +0 -1
  1046. package/build/components/breadcrumb/svg/more.svg +0 -1
  1047. package/build/components/breadcrumbs/index.d.ts +0 -27
  1048. package/build/components/breadcrumbs/index.js +0 -324
  1049. package/build/components/breadcrumbs/scss/index.scss +0 -2
  1050. package/build/components/button/svg/plus.svg +0 -1
  1051. package/build/components/card-input/index.d.ts +0 -31
  1052. package/build/components/card-input/index.js +0 -562
  1053. package/build/components/card-input/scss/index.scss +0 -2
  1054. package/build/components/carousel-3d/index.d.ts +0 -27
  1055. package/build/components/carousel-3d/index.js +0 -248
  1056. package/build/components/carousel-3d/scss/index.scss +0 -2
  1057. package/build/components/checkbox-group/index.d.ts +0 -30
  1058. package/build/components/checkbox-group/index.js +0 -101
  1059. package/build/components/checkbox-group/scss/index.scss +0 -2
  1060. package/build/components/code-morph/index.d.ts +0 -25
  1061. package/build/components/code-morph/index.js +0 -401
  1062. package/build/components/code-morph/scss/index.scss +0 -2
  1063. package/build/components/collapsible-sidebar/index.d.ts +0 -41
  1064. package/build/components/collapsible-sidebar/index.js +0 -105
  1065. package/build/components/collapsible-sidebar/scss/index.scss +0 -2
  1066. package/build/components/command/constants.d.ts +0 -3
  1067. package/build/components/command/constants.js +0 -3
  1068. package/build/components/command-palette/index.d.ts +0 -51
  1069. package/build/components/command-palette/index.js +0 -319
  1070. package/build/components/command-palette/scss/index.scss +0 -2
  1071. package/build/components/composer/index.d.ts +0 -29
  1072. package/build/components/composer/index.js +0 -79
  1073. package/build/components/composer/scss/index.scss +0 -2
  1074. package/build/components/composer/svg/arrow-up.svg +0 -1
  1075. package/build/components/contribution-heatmap/index.d.ts +0 -30
  1076. package/build/components/contribution-heatmap/index.js +0 -236
  1077. package/build/components/contribution-heatmap/scss/index.scss +0 -2
  1078. package/build/components/date-range-picker/index.d.ts +0 -28
  1079. package/build/components/date-range-picker/index.js +0 -443
  1080. package/build/components/date-range-picker/scss/index.scss +0 -2
  1081. package/build/components/dynamic-island/index.d.ts +0 -23
  1082. package/build/components/dynamic-island/index.js +0 -179
  1083. package/build/components/dynamic-island/scss/index.scss +0 -2
  1084. package/build/components/email-typo-fix/index.d.ts +0 -28
  1085. package/build/components/email-typo-fix/index.js +0 -416
  1086. package/build/components/email-typo-fix/scss/index.scss +0 -2
  1087. package/build/components/expanding-card/index.d.ts +0 -26
  1088. package/build/components/expanding-card/index.js +0 -265
  1089. package/build/components/expanding-card/scss/index.scss +0 -2
  1090. package/build/components/feature-spotlight/index.d.ts +0 -37
  1091. package/build/components/feature-spotlight/index.js +0 -248
  1092. package/build/components/feature-spotlight/scss/index.scss +0 -2
  1093. package/build/components/file-tree/index.d.ts +0 -31
  1094. package/build/components/file-tree/index.js +0 -208
  1095. package/build/components/file-tree/scss/index.scss +0 -2
  1096. package/build/components/filter-grid/index.d.ts +0 -23
  1097. package/build/components/filter-grid/index.js +0 -240
  1098. package/build/components/filter-grid/scss/index.scss +0 -2
  1099. package/build/components/gradient-text/index.d.ts +0 -19
  1100. package/build/components/gradient-text/index.js +0 -14
  1101. package/build/components/gradient-text/scss/index.scss +0 -2
  1102. package/build/components/header/index.d.ts +0 -41
  1103. package/build/components/header/index.js +0 -281
  1104. package/build/components/header/scss/index.scss +0 -2
  1105. package/build/components/hover-card/index.d.ts +0 -47
  1106. package/build/components/hover-card/index.js +0 -197
  1107. package/build/components/hover-card/scss/index.scss +0 -2
  1108. package/build/components/kanban-board/index.d.ts +0 -23
  1109. package/build/components/kanban-board/index.js +0 -235
  1110. package/build/components/kanban-board/scss/index.scss +0 -2
  1111. package/build/components/lightbox/index.d.ts +0 -32
  1112. package/build/components/lightbox/index.js +0 -396
  1113. package/build/components/lightbox/scss/index.scss +0 -2
  1114. package/build/components/lightbox/spring.d.ts +0 -16
  1115. package/build/components/lightbox/spring.js +0 -71
  1116. package/build/components/line-shadow-text/index.d.ts +0 -17
  1117. package/build/components/line-shadow-text/index.js +0 -15
  1118. package/build/components/line-shadow-text/scss/index.scss +0 -2
  1119. package/build/components/log/index.d.ts +0 -20
  1120. package/build/components/log/index.js +0 -125
  1121. package/build/components/log/scss/index.scss +0 -2
  1122. package/build/components/long-press/bind.d.ts +0 -21
  1123. package/build/components/long-press/bind.js +0 -136
  1124. package/build/components/long-press/button.d.ts +0 -21
  1125. package/build/components/long-press/button.js +0 -25
  1126. package/build/components/long-press/index.d.ts +0 -2181
  1127. package/build/components/long-press/index.js +0 -4
  1128. package/build/components/long-press/scss/index.scss +0 -2
  1129. package/build/components/modal/index.d.ts +0 -24
  1130. package/build/components/modal/index.js +0 -75
  1131. package/build/components/modal/scss/index.scss +0 -2
  1132. package/build/components/morphing-button/index.d.ts +0 -24
  1133. package/build/components/morphing-button/index.js +0 -127
  1134. package/build/components/morphing-button/scss/index.scss +0 -2
  1135. package/build/components/morphing-nav/index.d.ts +0 -38
  1136. package/build/components/morphing-nav/index.js +0 -342
  1137. package/build/components/morphing-nav/scss/index.scss +0 -2
  1138. package/build/components/multi-step-form/index.d.ts +0 -32
  1139. package/build/components/multi-step-form/index.js +0 -305
  1140. package/build/components/multi-step-form/scss/index.scss +0 -2
  1141. package/build/components/navigation-menu/index.d.ts +0 -28
  1142. package/build/components/navigation-menu/index.js +0 -419
  1143. package/build/components/navigation-menu/scss/index.scss +0 -2
  1144. package/build/components/nested-menu/index.d.ts +0 -27
  1145. package/build/components/nested-menu/index.js +0 -374
  1146. package/build/components/nested-menu/scss/index.scss +0 -2
  1147. package/build/components/normalize/scss/index.scss +0 -3
  1148. package/build/components/notification-bell/index.d.ts +0 -13
  1149. package/build/components/notification-bell/index.js +0 -87
  1150. package/build/components/notification-bell/scss/index.scss +0 -2
  1151. package/build/components/onboarding-checklist/index.d.ts +0 -29
  1152. package/build/components/onboarding-checklist/index.js +0 -196
  1153. package/build/components/onboarding-checklist/scss/index.scss +0 -2
  1154. package/build/components/page-dots/index.d.ts +0 -24
  1155. package/build/components/page-dots/index.js +0 -116
  1156. package/build/components/page-dots/scss/index.scss +0 -2
  1157. package/build/components/pagination/svg/arrow-left.svg +0 -1
  1158. package/build/components/pagination/svg/arrow-right.svg +0 -1
  1159. package/build/components/password/constants.d.ts +0 -2
  1160. package/build/components/password/constants.js +0 -2
  1161. package/build/components/password/index.d.ts +0 -22
  1162. package/build/components/password/index.js +0 -74
  1163. package/build/components/password/scss/index.scss +0 -2
  1164. package/build/components/plan-card/index.d.ts +0 -36
  1165. package/build/components/plan-card/index.js +0 -257
  1166. package/build/components/plan-card/scss/index.scss +0 -2
  1167. package/build/components/radio-cards/index.d.ts +0 -36
  1168. package/build/components/radio-cards/index.js +0 -106
  1169. package/build/components/radio-cards/scss/index.scss +0 -2
  1170. package/build/components/range-filter/index.d.ts +0 -20
  1171. package/build/components/range-filter/index.js +0 -216
  1172. package/build/components/range-filter/scss/index.scss +0 -2
  1173. package/build/components/range-slider/index.d.ts +0 -30
  1174. package/build/components/range-slider/index.js +0 -287
  1175. package/build/components/range-slider/scss/index.scss +0 -2
  1176. package/build/components/reading-progress/index.d.ts +0 -13
  1177. package/build/components/reading-progress/index.js +0 -106
  1178. package/build/components/reading-progress/scss/index.scss +0 -2
  1179. package/build/components/scroll-fade/index.d.ts +0 -39
  1180. package/build/components/scroll-fade/index.js +0 -104
  1181. package/build/components/scroll-fade/scss/index.scss +0 -2
  1182. package/build/components/scroll-spine/index.d.ts +0 -26
  1183. package/build/components/scroll-spine/index.js +0 -204
  1184. package/build/components/scroll-spine/scss/index.scss +0 -2
  1185. package/build/components/scroll-velocity/index.d.ts +0 -22
  1186. package/build/components/scroll-velocity/index.js +0 -160
  1187. package/build/components/scroll-velocity/scss/index.scss +0 -2
  1188. package/build/components/scrub-input/index.d.ts +0 -39
  1189. package/build/components/scrub-input/index.js +0 -221
  1190. package/build/components/scrub-input/scss/index.scss +0 -2
  1191. package/build/components/select-menu/index.d.ts +0 -34
  1192. package/build/components/select-menu/index.js +0 -329
  1193. package/build/components/select-menu/scss/index.scss +0 -2
  1194. package/build/components/selection-toolbar/index.d.ts +0 -36
  1195. package/build/components/selection-toolbar/index.js +0 -442
  1196. package/build/components/selection-toolbar/scss/index.scss +0 -2
  1197. package/build/components/settings/index.d.ts +0 -43
  1198. package/build/components/settings/index.js +0 -147
  1199. package/build/components/settings/scss/index.scss +0 -2
  1200. package/build/components/settings/svg/close.svg +0 -1
  1201. package/build/components/settings/svg/saved.svg +0 -1
  1202. package/build/components/share-button/index.d.ts +0 -29
  1203. package/build/components/share-button/index.js +0 -191
  1204. package/build/components/share-button/scss/index.scss +0 -2
  1205. package/build/components/sheet/index.d.ts +0 -33
  1206. package/build/components/sheet/index.js +0 -110
  1207. package/build/components/sheet/scss/index.scss +0 -2
  1208. package/build/components/shiny-text/index.d.ts +0 -17
  1209. package/build/components/shiny-text/index.js +0 -14
  1210. package/build/components/shiny-text/scss/index.scss +0 -2
  1211. package/build/components/shortcut-sheet/index.d.ts +0 -48
  1212. package/build/components/shortcut-sheet/index.js +0 -304
  1213. package/build/components/shortcut-sheet/scss/index.scss +0 -2
  1214. package/build/components/sidebar/index.d.ts +0 -13
  1215. package/build/components/sidebar/index.js +0 -13
  1216. package/build/components/sidebar/scss/index.scss +0 -2
  1217. package/build/components/slider/index.d.ts +0 -25
  1218. package/build/components/slider/index.js +0 -188
  1219. package/build/components/slider/scss/index.scss +0 -2
  1220. package/build/components/sliding-tabs/index.d.ts +0 -28
  1221. package/build/components/sliding-tabs/index.js +0 -188
  1222. package/build/components/sliding-tabs/scss/index.scss +0 -2
  1223. package/build/components/snap-carousel/index.d.ts +0 -30
  1224. package/build/components/snap-carousel/index.js +0 -233
  1225. package/build/components/snap-carousel/scss/index.scss +0 -2
  1226. package/build/components/sparkline/index.d.ts +0 -26
  1227. package/build/components/sparkline/index.js +0 -173
  1228. package/build/components/sparkline/scss/index.scss +0 -2
  1229. package/build/components/stacked-drawer/index.d.ts +0 -24
  1230. package/build/components/stacked-drawer/index.js +0 -211
  1231. package/build/components/stacked-drawer/scss/index.scss +0 -2
  1232. package/build/components/stat-counter/index.d.ts +0 -32
  1233. package/build/components/stat-counter/index.js +0 -216
  1234. package/build/components/stat-counter/scss/index.scss +0 -2
  1235. package/build/components/status-picker/index.d.ts +0 -32
  1236. package/build/components/status-picker/index.js +0 -198
  1237. package/build/components/status-picker/scss/index.scss +0 -2
  1238. package/build/components/sticky-stack/index.d.ts +0 -33
  1239. package/build/components/sticky-stack/index.js +0 -184
  1240. package/build/components/sticky-stack/scss/index.scss +0 -2
  1241. package/build/components/story-progress/index.d.ts +0 -26
  1242. package/build/components/story-progress/index.js +0 -196
  1243. package/build/components/story-progress/scss/index.scss +0 -2
  1244. package/build/components/swipe-deck/index.d.ts +0 -19
  1245. package/build/components/swipe-deck/index.js +0 -300
  1246. package/build/components/swipe-deck/scss/index.scss +0 -2
  1247. package/build/components/tabs/scss/index.scss +0 -2
  1248. package/build/components/tag-input/index.d.ts +0 -27
  1249. package/build/components/tag-input/index.js +0 -309
  1250. package/build/components/tag-input/scss/index.scss +0 -2
  1251. package/build/components/task-list/index.d.ts +0 -28
  1252. package/build/components/task-list/index.js +0 -107
  1253. package/build/components/task-list/scss/index.scss +0 -2
  1254. package/build/components/tasklist/constants.d.ts +0 -2
  1255. package/build/components/tasklist/constants.js +0 -2
  1256. package/build/components/text-animate/index.d.ts +0 -30
  1257. package/build/components/text-animate/index.js +0 -97
  1258. package/build/components/text-animate/scss/index.scss +0 -2
  1259. package/build/components/text-progress/index.d.ts +0 -13
  1260. package/build/components/text-progress/index.js +0 -114
  1261. package/build/components/text-progress/scss/index.scss +0 -2
  1262. package/build/components/thumbnail/scss/index.scss +0 -2
  1263. package/build/components/toast/manager.d.ts +0 -64
  1264. package/build/components/toast/manager.js +0 -221
  1265. package/build/components/toast/svg/check.svg +0 -1
  1266. package/build/components/toast/svg/chevron.svg +0 -1
  1267. package/build/components/toast/svg/close.svg +0 -1
  1268. package/build/components/toast/svg/copy.svg +0 -1
  1269. package/build/components/toast/svg/info.svg +0 -1
  1270. package/build/components/tooltip/context.d.ts +0 -22
  1271. package/build/components/tooltip/context.js +0 -66
  1272. package/build/components/tooltip/group.d.ts +0 -29
  1273. package/build/components/tooltip/group.js +0 -128
  1274. package/build/components/tooltip/options.d.ts +0 -7
  1275. package/build/components/tooltip/options.js +0 -21
  1276. package/build/components/tree/index.d.ts +0 -28
  1277. package/build/components/tree/index.js +0 -182
  1278. package/build/components/tree/scss/index.scss +0 -2
  1279. package/build/components/tree-view/index.d.ts +0 -25
  1280. package/build/components/tree-view/index.js +0 -205
  1281. package/build/components/tree-view/scss/index.scss +0 -2
  1282. package/build/components/typewriter-retype/index.d.ts +0 -8
  1283. package/build/components/typewriter-retype/index.js +0 -122
  1284. package/build/components/typewriter-retype/scss/index.scss +0 -2
  1285. package/build/components/undo-toast/index.d.ts +0 -30
  1286. package/build/components/undo-toast/index.js +0 -262
  1287. package/build/components/undo-toast/scss/index.scss +0 -2
  1288. package/build/components/value-flash/index.d.ts +0 -12
  1289. package/build/components/value-flash/index.js +0 -106
  1290. package/build/components/value-flash/scss/index.scss +0 -2
  1291. package/build/components/waitlist-join/index.d.ts +0 -34
  1292. package/build/components/waitlist-join/index.js +0 -402
  1293. package/build/components/waitlist-join/scss/index.scss +0 -2
  1294. package/build/components/web-search/brands.d.ts +0 -121
  1295. package/build/components/web-search/brands.js +0 -138
  1296. package/build/components/web-search/index.d.ts +0 -31
  1297. package/build/components/web-search/index.js +0 -245
  1298. package/build/components/web-search/scss/index.scss +0 -2
  1299. package/build/components/word-rotator/index.d.ts +0 -14
  1300. package/build/components/word-rotator/index.js +0 -196
  1301. package/build/components/word-rotator/scss/index.scss +0 -2
  1302. package/build/css-utilities/absolute/scss/index.scss +0 -2
  1303. package/build/css-utilities/disabled/scss/index.scss +0 -2
  1304. package/build/css-utilities/hidden/scss/index.scss +0 -2
  1305. package/build/css-utilities/not-allowed/scss/index.scss +0 -2
  1306. package/build/css-utilities/tabular/scss/index.scss +0 -2
  1307. package/lib.scss +0 -2
  1308. package/src/components/accordion/more.ts +0 -97
  1309. package/src/components/anchor/scss/index.scss +0 -56
  1310. package/src/components/anchor/scss/variables.scss +0 -4
  1311. package/src/components/announcement-banner/index.ts +0 -81
  1312. package/src/components/announcement-banner/scss/index.scss +0 -183
  1313. package/src/components/announcement-banner/scss/variables.scss +0 -18
  1314. package/src/components/autosave/index.ts +0 -113
  1315. package/src/components/autosave/scss/index.scss +0 -155
  1316. package/src/components/autosave/scss/variables.scss +0 -22
  1317. package/src/components/back-to-top/index.ts +0 -293
  1318. package/src/components/back-to-top/scss/index.scss +0 -111
  1319. package/src/components/back-to-top/scss/variables.scss +0 -30
  1320. package/src/components/bento-grid/index.ts +0 -63
  1321. package/src/components/bento-grid/scss/index.scss +0 -175
  1322. package/src/components/bento-grid/scss/variables.scss +0 -19
  1323. package/src/components/bento-grid-spotlight/index.ts +0 -133
  1324. package/src/components/bento-grid-spotlight/scss/index.scss +0 -226
  1325. package/src/components/bento-grid-spotlight/scss/variables.scss +0 -36
  1326. package/src/components/bookmark-button/index.ts +0 -174
  1327. package/src/components/bookmark-button/scss/index.scss +0 -162
  1328. package/src/components/bookmark-button/scss/variables.scss +0 -28
  1329. package/src/components/breadcrumb/ellipsis.ts +0 -17
  1330. package/src/components/breadcrumb/item.ts +0 -10
  1331. package/src/components/breadcrumb/link.ts +0 -21
  1332. package/src/components/breadcrumb/list.ts +0 -10
  1333. package/src/components/breadcrumb/menu.ts +0 -20
  1334. package/src/components/breadcrumb/page.ts +0 -16
  1335. package/src/components/breadcrumb/separator.ts +0 -17
  1336. package/src/components/breadcrumb/svg/caret.svg +0 -1
  1337. package/src/components/breadcrumb/svg/chevron.svg +0 -1
  1338. package/src/components/breadcrumb/svg/more.svg +0 -1
  1339. package/src/components/breadcrumbs/index.ts +0 -479
  1340. package/src/components/breadcrumbs/scss/index.scss +0 -235
  1341. package/src/components/breadcrumbs/scss/variables.scss +0 -30
  1342. package/src/components/button/svg/plus.svg +0 -1
  1343. package/src/components/card-input/index.ts +0 -594
  1344. package/src/components/card-input/scss/index.scss +0 -512
  1345. package/src/components/card-input/scss/variables.scss +0 -29
  1346. package/src/components/carousel-3d/index.ts +0 -405
  1347. package/src/components/carousel-3d/scss/index.scss +0 -155
  1348. package/src/components/carousel-3d/scss/variables.scss +0 -25
  1349. package/src/components/checkbox/svg/check.svg +0 -1
  1350. package/src/components/checkbox-group/index.ts +0 -171
  1351. package/src/components/checkbox-group/scss/index.scss +0 -229
  1352. package/src/components/checkbox-group/scss/variables.scss +0 -28
  1353. package/src/components/code-morph/index.ts +0 -459
  1354. package/src/components/code-morph/scss/index.scss +0 -384
  1355. package/src/components/code-morph/scss/variables.scss +0 -33
  1356. package/src/components/collapsible-sidebar/index.ts +0 -193
  1357. package/src/components/collapsible-sidebar/scss/index.scss +0 -220
  1358. package/src/components/collapsible-sidebar/scss/variables.scss +0 -42
  1359. package/src/components/command/constants.ts +0 -6
  1360. package/src/components/command-palette/index.ts +0 -456
  1361. package/src/components/command-palette/scss/index.scss +0 -235
  1362. package/src/components/command-palette/scss/variables.scss +0 -42
  1363. package/src/components/composer/index.ts +0 -117
  1364. package/src/components/composer/scss/index.scss +0 -105
  1365. package/src/components/composer/scss/variables.scss +0 -82
  1366. package/src/components/composer/svg/arrow-up.svg +0 -1
  1367. package/src/components/contribution-heatmap/index.ts +0 -348
  1368. package/src/components/contribution-heatmap/scss/index.scss +0 -151
  1369. package/src/components/contribution-heatmap/scss/variables.scss +0 -39
  1370. package/src/components/date-range-picker/index.ts +0 -641
  1371. package/src/components/date-range-picker/scss/index.scss +0 -380
  1372. package/src/components/date-range-picker/scss/variables.scss +0 -22
  1373. package/src/components/dynamic-island/index.ts +0 -161
  1374. package/src/components/dynamic-island/scss/index.scss +0 -278
  1375. package/src/components/dynamic-island/scss/variables.scss +0 -39
  1376. package/src/components/email-typo-fix/index.ts +0 -615
  1377. package/src/components/email-typo-fix/scss/index.scss +0 -213
  1378. package/src/components/email-typo-fix/scss/variables.scss +0 -18
  1379. package/src/components/expanding-card/index.ts +0 -377
  1380. package/src/components/expanding-card/scss/index.scss +0 -232
  1381. package/src/components/expanding-card/scss/variables.scss +0 -22
  1382. package/src/components/feature-spotlight/index.ts +0 -437
  1383. package/src/components/feature-spotlight/scss/index.scss +0 -254
  1384. package/src/components/feature-spotlight/scss/variables.scss +0 -36
  1385. package/src/components/file-tree/index.ts +0 -319
  1386. package/src/components/file-tree/scss/index.scss +0 -138
  1387. package/src/components/file-tree/scss/variables.scss +0 -18
  1388. package/src/components/filter-grid/index.ts +0 -344
  1389. package/src/components/filter-grid/scss/index.scss +0 -142
  1390. package/src/components/filter-grid/scss/variables.scss +0 -41
  1391. package/src/components/gradient-text/index.ts +0 -26
  1392. package/src/components/gradient-text/scss/index.scss +0 -20
  1393. package/src/components/gradient-text/scss/variables.scss +0 -6
  1394. package/src/components/header/index.ts +0 -318
  1395. package/src/components/header/scss/index.scss +0 -508
  1396. package/src/components/header/scss/variables.scss +0 -21
  1397. package/src/components/hover-card/index.ts +0 -319
  1398. package/src/components/hover-card/scss/index.scss +0 -117
  1399. package/src/components/hover-card/scss/variables.scss +0 -25
  1400. package/src/components/kanban-board/index.ts +0 -326
  1401. package/src/components/kanban-board/scss/index.scss +0 -126
  1402. package/src/components/kanban-board/scss/variables.scss +0 -39
  1403. package/src/components/lightbox/index.ts +0 -594
  1404. package/src/components/lightbox/scss/index.scss +0 -194
  1405. package/src/components/lightbox/scss/variables.scss +0 -24
  1406. package/src/components/lightbox/spring.ts +0 -118
  1407. package/src/components/line-shadow-text/index.ts +0 -24
  1408. package/src/components/line-shadow-text/scss/index.scss +0 -45
  1409. package/src/components/line-shadow-text/scss/variables.scss +0 -6
  1410. package/src/components/log/index.ts +0 -156
  1411. package/src/components/log/scss/index.scss +0 -269
  1412. package/src/components/log/scss/variables.scss +0 -19
  1413. package/src/components/long-press/bind.ts +0 -159
  1414. package/src/components/long-press/button.ts +0 -46
  1415. package/src/components/long-press/index.ts +0 -6
  1416. package/src/components/long-press/scss/index.scss +0 -60
  1417. package/src/components/long-press/scss/variables.scss +0 -9
  1418. package/src/components/modal/index.ts +0 -91
  1419. package/src/components/modal/scss/index.scss +0 -81
  1420. package/src/components/modal/scss/variables.scss +0 -42
  1421. package/src/components/morphing-button/index.ts +0 -188
  1422. package/src/components/morphing-button/scss/index.scss +0 -154
  1423. package/src/components/morphing-button/scss/variables.scss +0 -21
  1424. package/src/components/morphing-nav/index.ts +0 -496
  1425. package/src/components/morphing-nav/scss/index.scss +0 -284
  1426. package/src/components/morphing-nav/scss/variables.scss +0 -36
  1427. package/src/components/multi-step-form/index.ts +0 -368
  1428. package/src/components/multi-step-form/scss/index.scss +0 -397
  1429. package/src/components/multi-step-form/scss/variables.scss +0 -22
  1430. package/src/components/navigation-menu/index.ts +0 -608
  1431. package/src/components/navigation-menu/scss/index.scss +0 -213
  1432. package/src/components/navigation-menu/scss/variables.scss +0 -24
  1433. package/src/components/nested-menu/index.ts +0 -446
  1434. package/src/components/nested-menu/scss/index.scss +0 -219
  1435. package/src/components/nested-menu/scss/variables.scss +0 -26
  1436. package/src/components/normalize/scss/index.scss +0 -35
  1437. package/src/components/notification-bell/index.ts +0 -102
  1438. package/src/components/notification-bell/scss/index.scss +0 -132
  1439. package/src/components/notification-bell/scss/variables.scss +0 -41
  1440. package/src/components/notification-bell/svg/bell.svg +0 -1
  1441. package/src/components/onboarding-checklist/index.ts +0 -252
  1442. package/src/components/onboarding-checklist/scss/index.scss +0 -414
  1443. package/src/components/onboarding-checklist/scss/variables.scss +0 -17
  1444. package/src/components/page-dots/index.ts +0 -137
  1445. package/src/components/page-dots/scss/index.scss +0 -95
  1446. package/src/components/page-dots/scss/variables.scss +0 -26
  1447. package/src/components/pagination/svg/arrow-left.svg +0 -1
  1448. package/src/components/pagination/svg/arrow-right.svg +0 -1
  1449. package/src/components/password/constants.ts +0 -4
  1450. package/src/components/password/index.ts +0 -97
  1451. package/src/components/password/scss/index.scss +0 -188
  1452. package/src/components/password/scss/variables.scss +0 -50
  1453. package/src/components/plan-card/index.ts +0 -404
  1454. package/src/components/plan-card/scss/index.scss +0 -513
  1455. package/src/components/plan-card/scss/variables.scss +0 -33
  1456. package/src/components/radio-cards/index.ts +0 -145
  1457. package/src/components/radio-cards/scss/index.scss +0 -232
  1458. package/src/components/radio-cards/scss/variables.scss +0 -32
  1459. package/src/components/range-filter/index.ts +0 -295
  1460. package/src/components/range-filter/scss/index.scss +0 -257
  1461. package/src/components/range-filter/scss/variables.scss +0 -20
  1462. package/src/components/range-slider/index.ts +0 -277
  1463. package/src/components/range-slider/scss/index.scss +0 -234
  1464. package/src/components/range-slider/scss/variables.scss +0 -26
  1465. package/src/components/reading-progress/index.ts +0 -160
  1466. package/src/components/reading-progress/scss/index.scss +0 -115
  1467. package/src/components/reading-progress/scss/variables.scss +0 -31
  1468. package/src/components/scroll-fade/index.ts +0 -131
  1469. package/src/components/scroll-fade/scss/index.scss +0 -104
  1470. package/src/components/scroll-fade/scss/variables.scss +0 -10
  1471. package/src/components/scroll-spine/index.ts +0 -355
  1472. package/src/components/scroll-spine/scss/index.scss +0 -209
  1473. package/src/components/scroll-spine/scss/variables.scss +0 -22
  1474. package/src/components/scroll-velocity/index.ts +0 -269
  1475. package/src/components/scroll-velocity/scss/index.scss +0 -29
  1476. package/src/components/scroll-velocity/scss/variables.scss +0 -3
  1477. package/src/components/scrub-input/index.ts +0 -339
  1478. package/src/components/scrub-input/scss/index.scss +0 -105
  1479. package/src/components/scrub-input/scss/variables.scss +0 -23
  1480. package/src/components/select-menu/index.ts +0 -499
  1481. package/src/components/select-menu/scss/index.scss +0 -192
  1482. package/src/components/select-menu/scss/variables.scss +0 -41
  1483. package/src/components/selection-toolbar/index.ts +0 -510
  1484. package/src/components/selection-toolbar/scss/index.scss +0 -221
  1485. package/src/components/selection-toolbar/scss/variables.scss +0 -24
  1486. package/src/components/settings/index.ts +0 -184
  1487. package/src/components/settings/scss/index.scss +0 -327
  1488. package/src/components/settings/scss/variables.scss +0 -50
  1489. package/src/components/settings/svg/close.svg +0 -1
  1490. package/src/components/settings/svg/saved.svg +0 -1
  1491. package/src/components/share-button/index.ts +0 -328
  1492. package/src/components/share-button/scss/index.scss +0 -191
  1493. package/src/components/share-button/scss/variables.scss +0 -24
  1494. package/src/components/sheet/index.ts +0 -170
  1495. package/src/components/sheet/scss/index.scss +0 -65
  1496. package/src/components/sheet/scss/variables.scss +0 -27
  1497. package/src/components/shiny-text/index.ts +0 -19
  1498. package/src/components/shiny-text/scss/index.scss +0 -32
  1499. package/src/components/shiny-text/scss/variables.scss +0 -7
  1500. package/src/components/shortcut-sheet/index.ts +0 -454
  1501. package/src/components/shortcut-sheet/scss/index.scss +0 -306
  1502. package/src/components/shortcut-sheet/scss/variables.scss +0 -36
  1503. package/src/components/sidebar/index.ts +0 -13
  1504. package/src/components/sidebar/scss/index.scss +0 -49
  1505. package/src/components/sidebar/scss/variables.scss +0 -20
  1506. package/src/components/slider/index.ts +0 -232
  1507. package/src/components/slider/scss/index.scss +0 -182
  1508. package/src/components/slider/scss/variables.scss +0 -15
  1509. package/src/components/sliding-tabs/index.ts +0 -291
  1510. package/src/components/sliding-tabs/scss/index.scss +0 -174
  1511. package/src/components/sliding-tabs/scss/variables.scss +0 -34
  1512. package/src/components/snap-carousel/index.ts +0 -324
  1513. package/src/components/snap-carousel/scss/index.scss +0 -174
  1514. package/src/components/snap-carousel/scss/variables.scss +0 -31
  1515. package/src/components/sparkline/index.ts +0 -234
  1516. package/src/components/sparkline/scss/index.scss +0 -169
  1517. package/src/components/sparkline/scss/variables.scss +0 -30
  1518. package/src/components/stacked-drawer/index.ts +0 -272
  1519. package/src/components/stacked-drawer/scss/index.scss +0 -122
  1520. package/src/components/stacked-drawer/scss/variables.scss +0 -20
  1521. package/src/components/stat-counter/index.ts +0 -337
  1522. package/src/components/stat-counter/scss/index.scss +0 -246
  1523. package/src/components/stat-counter/scss/variables.scss +0 -24
  1524. package/src/components/status-picker/index.ts +0 -323
  1525. package/src/components/status-picker/scss/index.scss +0 -290
  1526. package/src/components/status-picker/scss/variables.scss +0 -29
  1527. package/src/components/sticky-stack/index.ts +0 -313
  1528. package/src/components/sticky-stack/scss/index.scss +0 -167
  1529. package/src/components/sticky-stack/scss/variables.scss +0 -50
  1530. package/src/components/story-progress/index.ts +0 -247
  1531. package/src/components/story-progress/scss/index.scss +0 -205
  1532. package/src/components/story-progress/scss/variables.scss +0 -21
  1533. package/src/components/swipe-deck/index.ts +0 -438
  1534. package/src/components/swipe-deck/scss/index.scss +0 -275
  1535. package/src/components/swipe-deck/scss/variables.scss +0 -24
  1536. package/src/components/tabs/scss/index.scss +0 -62
  1537. package/src/components/tabs/scss/variables.scss +0 -4
  1538. package/src/components/tag-input/index.ts +0 -415
  1539. package/src/components/tag-input/scss/index.scss +0 -186
  1540. package/src/components/tag-input/scss/variables.scss +0 -30
  1541. package/src/components/task-list/index.ts +0 -137
  1542. package/src/components/task-list/scss/index.scss +0 -171
  1543. package/src/components/task-list/scss/variables.scss +0 -8
  1544. package/src/components/tasklist/constants.ts +0 -4
  1545. package/src/components/text/scss/variables.scss +0 -9
  1546. package/src/components/text-animate/index.ts +0 -142
  1547. package/src/components/text-animate/scss/index.scss +0 -106
  1548. package/src/components/text-animate/scss/variables.scss +0 -17
  1549. package/src/components/text-progress/index.ts +0 -170
  1550. package/src/components/text-progress/scss/index.scss +0 -148
  1551. package/src/components/text-progress/scss/variables.scss +0 -26
  1552. package/src/components/thumbnail/scss/index.scss +0 -62
  1553. package/src/components/thumbnail/scss/variables.scss +0 -19
  1554. package/src/components/toast/manager.ts +0 -342
  1555. package/src/components/toast/svg/check.svg +0 -1
  1556. package/src/components/toast/svg/chevron.svg +0 -1
  1557. package/src/components/toast/svg/close.svg +0 -1
  1558. package/src/components/toast/svg/copy.svg +0 -1
  1559. package/src/components/toast/svg/error.svg +0 -1
  1560. package/src/components/toast/svg/info.svg +0 -1
  1561. package/src/components/toast/svg/loading.svg +0 -1
  1562. package/src/components/toast/svg/success.svg +0 -1
  1563. package/src/components/toast/svg/warning.svg +0 -1
  1564. package/src/components/tooltip/context.ts +0 -96
  1565. package/src/components/tooltip/group.ts +0 -162
  1566. package/src/components/tooltip/options.ts +0 -33
  1567. package/src/components/tooltip/scss/_group.scss +0 -164
  1568. package/src/components/tree/index.ts +0 -259
  1569. package/src/components/tree/scss/index.scss +0 -105
  1570. package/src/components/tree/scss/variables.scss +0 -48
  1571. package/src/components/tree-view/index.ts +0 -285
  1572. package/src/components/tree-view/scss/index.scss +0 -169
  1573. package/src/components/tree-view/scss/variables.scss +0 -18
  1574. package/src/components/typewriter-retype/index.ts +0 -164
  1575. package/src/components/typewriter-retype/scss/index.scss +0 -142
  1576. package/src/components/typewriter-retype/scss/variables.scss +0 -46
  1577. package/src/components/undo-toast/index.ts +0 -359
  1578. package/src/components/undo-toast/scss/index.scss +0 -216
  1579. package/src/components/undo-toast/scss/variables.scss +0 -20
  1580. package/src/components/value-flash/index.ts +0 -121
  1581. package/src/components/value-flash/scss/index.scss +0 -193
  1582. package/src/components/value-flash/scss/variables.scss +0 -47
  1583. package/src/components/waitlist-join/index.ts +0 -545
  1584. package/src/components/waitlist-join/scss/index.scss +0 -401
  1585. package/src/components/waitlist-join/scss/variables.scss +0 -23
  1586. package/src/components/web-search/brands.ts +0 -155
  1587. package/src/components/web-search/index.ts +0 -316
  1588. package/src/components/web-search/scss/index.scss +0 -270
  1589. package/src/components/web-search/scss/variables.scss +0 -8
  1590. package/src/components/word-rotator/index.ts +0 -296
  1591. package/src/components/word-rotator/scss/index.scss +0 -33
  1592. package/src/components/word-rotator/scss/variables.scss +0 -7
  1593. package/src/css-utilities/absolute/scss/index.scss +0 -36
  1594. package/src/css-utilities/disabled/scss/index.scss +0 -4
  1595. package/src/css-utilities/hidden/scss/index.scss +0 -28
  1596. package/src/css-utilities/not-allowed/scss/index.scss +0 -7
  1597. package/src/css-utilities/tabular/scss/index.scss +0 -3
  1598. package/src/lib/index.scss +0 -7
  1599. package/src/lib/scss/breakpoint.scss +0 -41
  1600. package/src/lib/scss/color.scss +0 -1
  1601. package/src/lib/scss/list.scss +0 -77
  1602. package/src/lib/scss/string.scss +0 -34
  1603. package/src/tokens/index.scss +0 -9
  1604. package/storage/psd/Color Palette.psd +0 -0
  1605. /package/src/{lib → shared}/scss/css-variables.scss +0 -0
  1606. /package/src/{lib → shared}/scss/map.scss +0 -0
  1607. /package/src/{lib → shared}/scss/position.scss +0 -0
  1608. /package/{build/components/notification-bell → storage}/svg/bell.svg +0 -0
  1609. /package/{build/components/checkbox → storage}/svg/check.svg +0 -0
  1610. /package/{build/components/toast/svg/error.svg → storage/svg/circle-alert.svg} +0 -0
  1611. /package/{build/components/toast/svg/success.svg → storage/svg/circle-check.svg} +0 -0
  1612. /package/{build/components/toast/svg/loading.svg → storage/svg/spinner.svg} +0 -0
  1613. /package/{build/components/toast → storage}/svg/warning.svg +0 -0
@@ -1,13 +1,31 @@
1
1
  import { component, html, type Attributes } from '@esportsplus/template';
2
+ import { effect, read as get, signal, untrack, write } from '@esportsplus/reactivity';
3
+ import { pool } from '@esportsplus/workers';
4
+ import { observer, type Observer } from '~/shared/resize';
5
+ import { observeIntersection } from '~/shared/visible';
6
+ import engine, { scheduler, type Camera, type Link as Path, type Rgb, type Settings, type Shape } from './engine';
7
+ import surface from './surface';
8
+ import type { Actions, Call, Field } from './worker';
2
9
  import './scss/index.scss';
3
10
 
4
11
 
5
- // Maps world space onto the field: screen = world * zoom + (x, y). Read every frame, so mutating the same object pans
6
- // and zooms the grid without a re-render.
7
- type Camera = { x: number, y: number, zoom: number };
12
+ // A channel through the field between two surfaces: the dots lift into a lit vein and the lattice parts round it.
13
+ type Link = {
14
+ // Surface names (`name` on a surface, or the value of `data-surface-field`) at either end.
15
+ from?: string;
16
+ // `loop` sends a crest from `from` to `to`, `bounce` sends it back and forth.
17
+ motion?: 'bounce' | 'loop' | 'still';
18
+ // The path itself, in field px (world units when a camera is set); wins over the curve between `from` and `to`.
19
+ points?: { x: number, y: number }[];
20
+ // Crest speed in px per second.
21
+ speed?: number;
22
+ to?: string;
23
+ // Width of the lit vein in px.
24
+ width?: number;
25
+ };
8
26
 
9
27
  type Options = {
10
- // Colour the lit dots and lines drift toward, blended in by `tint`.
28
+ // Colour the lit dots and lines drift toward, blended in by `tint`; defaults to the `--accent` custom property.
11
29
  accent?: string;
12
30
  // Resting opacity of an unlit dot.
13
31
  base?: number;
@@ -15,21 +33,25 @@ type Options = {
15
33
  breathe?: number;
16
34
  // 0 – 1: peak opacity the light lifts lines to; dots rise proportionally higher.
17
35
  brightness?: number;
18
- // Anchors the grid to a pannable, zoomable world (for example a node editor's viewport) instead of centring it.
36
+ // Anchors the grid to a pannable, zoomable world (for example a node editor's viewport) instead of centring it. It
37
+ // pans with the world and scales less than it, as a floor below the content.
19
38
  camera?: Camera | null;
20
39
  // Draw grid lines between neighbouring dots where the light reaches.
21
40
  connected?: boolean;
22
- // Distance between dots in px (world units when a camera is set).
41
+ // Distance between dots in px.
23
42
  gap?: number;
24
43
  // Radius of the pointer light's line reach in px.
25
44
  lineRadius?: number;
45
+ links?: Link[] | null;
26
46
  // How far dots under the pointer are nudged away, in px.
27
47
  pointerPush?: number;
28
48
  // Radius of the pointer light in px.
29
49
  radius?: number;
30
- // How far a click's ripple displaces the dots it passes, in px.
50
+ // Each new value sends a ring out from that point, in field px.
51
+ ripple?: { x: number, y: number } | null;
52
+ // How far a ring displaces the dots it passes, in px.
31
53
  ripplePush?: number;
32
- // Render a static texture: no pointer light, ripples, breathing or wandering.
54
+ // Render a static texture: no pointer light, rings, breathing, wandering or moving links.
33
55
  still?: boolean;
34
56
  // Widens (positive) or narrows (negative) the empty band around each surface, in px.
35
57
  surfacePadding?: number;
@@ -39,32 +61,14 @@ type Options = {
39
61
  wander?: boolean;
40
62
  };
41
63
 
42
- type Rect = { bottom: number, left: number, right: number, top: number };
43
-
44
- type Ripple = { born: number, x: number, y: number };
64
+ type Style = { ellipse: boolean, radius: number, rotation: number };
45
65
 
46
- type Geometry = { height: number, width: number, x: number, y: number };
47
-
48
- type Surface = Attributes & {
49
- // Keep the surface inside its parent. Turn off for surfaces in an unbounded world such as a pannable canvas.
50
- bounded?: boolean;
51
- height?: number;
52
- // Names the surface in its move and resize controls' accessible labels.
53
- label?: string;
54
- minHeight?: number;
55
- minWidth?: number;
56
- // Seeds the geometry and receives every move and resize, so edges or a minimap can follow the surface.
57
- state?: Geometry;
58
- width?: number;
59
- x?: number;
60
- y?: number;
61
- };
62
66
 
67
+ const ANGLE = /(-?[\d.]+)(deg|grad|rad|turn)\s*$/;
63
68
 
64
- const ALPHA_LEVELS = 32;
65
69
 
66
70
  const DEFAULTS: Required<Options> = {
67
- accent: '#6683e8',
71
+ accent: '',
68
72
  base: 0.14,
69
73
  breathe: 0,
70
74
  brightness: 0.2,
@@ -72,8 +76,10 @@ const DEFAULTS: Required<Options> = {
72
76
  connected: true,
73
77
  gap: 22,
74
78
  lineRadius: 200,
79
+ links: null,
75
80
  pointerPush: 2,
76
81
  radius: 250,
82
+ ripple: null,
77
83
  ripplePush: 6,
78
84
  still: false,
79
85
  surfacePadding: 0,
@@ -81,49 +87,58 @@ const DEFAULTS: Required<Options> = {
81
87
  wander: false
82
88
  };
83
89
 
84
- // Pointer absence, in ms, before a wandering light takes over.
85
- const IDLE = 1500;
86
-
87
90
  const KEYS = Object.keys(DEFAULTS) as (keyof Options)[];
88
91
 
89
- // Share of a surface's halo added to the light around it.
90
- const HALO = 0.75;
91
-
92
- const RIPPLE_LIFE = 1.4;
93
-
94
- const RIPPLE_SPEED = 520;
95
-
96
- const RIPPLE_WIDTH = 36;
92
+ // Kept in step with the engine's methods by `satisfies`; `dispose` and `flush` are the proxy's own.
93
+ const METHODS = [
94
+ 'camera',
95
+ 'cancel',
96
+ 'configure',
97
+ 'links',
98
+ 'pointer',
99
+ 'press',
100
+ 'recolor',
101
+ 'release',
102
+ 'resize',
103
+ 'ripple',
104
+ 'surfaces',
105
+ 'visible'
106
+ ] as const satisfies (keyof Field)[];
97
107
 
98
108
  // Elements the field clears a space around and lights up.
99
109
  const SELECTOR = '.surface-field-surface, [data-surface-field]';
100
110
 
101
- const TAU = Math.PI * 2;
102
-
103
- const TINT_LEVELS = 5;
104
-
111
+ const SETTINGS: (keyof Settings)[] = [
112
+ 'base',
113
+ 'breathe',
114
+ 'brightness',
115
+ 'connected',
116
+ 'gap',
117
+ 'lineRadius',
118
+ 'pointerPush',
119
+ 'radius',
120
+ 'ripplePush',
121
+ 'still',
122
+ 'surfacePadding',
123
+ 'tint',
124
+ 'wander'
125
+ ];
105
126
 
106
- let colors = new Map<string, [number, number, number]>(),
107
- probe: CanvasRenderingContext2D | null = null,
108
- z = 1;
127
+ const UNITS: Record<string, number> = { deg: 1, grad: 0.9, rad: 180 / Math.PI, turn: 360 };
109
128
 
110
129
 
111
- function clamp(value: number, min: number, max: number) {
112
- return Math.min(max, Math.max(min, value));
113
- }
130
+ let colors = new Map<string, Rgb>(),
131
+ probe: CanvasRenderingContext2D | null = null;
114
132
 
115
- function falloff(distance: number, radius: number) {
116
- if (radius <= 0 || distance >= radius) {
117
- return 0;
118
- }
119
133
 
120
- let t = distance / radius;
134
+ function angle(value: string) {
135
+ let match = ANGLE.exec(value);
121
136
 
122
- return (1 - t * t) * (1 - t * t);
137
+ return match ? parseFloat(match[1]) * UNITS[match[2]] : 0;
123
138
  }
124
139
 
125
140
  // Resolves any CSS colour (oklch, named, hex…) to rgb by painting it once.
126
- function rgb(color: string) {
141
+ function rgb(color: string): Rgb {
127
142
  let cached = colors.get(color);
128
143
 
129
144
  if (cached) {
@@ -137,7 +152,7 @@ function rgb(color: string) {
137
152
  probe.fillRect(0, 0, 1, 1);
138
153
 
139
154
  let data = probe.getImageData(0, 0, 1, 1).data,
140
- value: [number, number, number] = [data[0], data[1], data[2]];
155
+ value: Rgb = [data[0], data[1], data[2]];
141
156
 
142
157
  if (colors.size > 64) {
143
158
  colors.clear();
@@ -148,669 +163,620 @@ function rgb(color: string) {
148
163
  return value;
149
164
  }
150
165
 
166
+ function same(a: Shape[], b: Shape[]) {
167
+ if (a.length !== b.length) {
168
+ return false;
169
+ }
151
170
 
152
- const surface = component<Surface>(
153
- function(this, { bounded = true, height = 160, label = 'surface', minHeight = 72, minWidth = 120, state, width = 240, x = 0, y = 0, ...attributes }, content) {
154
- let element: HTMLElement | undefined,
155
- start: { h: number, pointerX: number, pointerY: number, scale: number, w: number, x: number, y: number } | null = null;
171
+ for (let i = 0, n = a.length; i < n; i++) {
172
+ let x = a[i],
173
+ y = b[i];
156
174
 
157
- if (state) {
158
- ({ height, width, x, y } = state);
175
+ if (
176
+ x.active !== y.active || x.ellipse !== y.ellipse || x.height !== y.height || x.id !== y.id
177
+ || x.radius !== y.radius || x.rotation !== y.rotation || x.width !== y.width || x.x !== y.x || x.y !== y.y
178
+ ) {
179
+ return false;
159
180
  }
181
+ }
160
182
 
161
- // Written straight to the element: the field reads this geometry every frame, so a reactive binding would
162
- // leave the grid a frame behind the drag.
163
- function apply() {
164
- if (!element) {
165
- return;
166
- }
167
-
168
- let parent = element.parentElement;
183
+ return true;
184
+ }
169
185
 
170
- width = Math.max(minWidth, width);
171
- height = Math.max(minHeight, height);
186
+ // Corner radius and turn from the element's own styles, so the clearing matches the corners and rotation drawn.
187
+ function style(element: Element): Style {
188
+ let computed = getComputedStyle(element),
189
+ corner = computed.borderTopLeftRadius,
190
+ rotation = computed.rotate && computed.rotate !== 'none' ? angle(computed.rotate) : 0,
191
+ transform = computed.transform;
172
192
 
173
- if (bounded && parent) {
174
- let pw = parent.clientWidth,
175
- ph = parent.clientHeight;
193
+ if (transform && transform !== 'none') {
194
+ let m = transform.slice(transform.indexOf('(') + 1, -1).split(',');
176
195
 
177
- width = clamp(width, minWidth, Math.max(minWidth, pw));
178
- height = clamp(height, minHeight, Math.max(minHeight, ph));
179
- x = clamp(x, 0, Math.max(0, pw - width));
180
- y = clamp(y, 0, Math.max(0, ph - height));
181
- }
196
+ rotation += Math.atan2(parseFloat(m[1]), parseFloat(m[0])) * 180 / Math.PI;
197
+ }
182
198
 
183
- element.style.height = `${height}px`;
184
- element.style.translate = `${x}px ${y}px`;
185
- element.style.width = `${width}px`;
199
+ if (corner.endsWith('%')) {
200
+ let percent = parseFloat(corner);
186
201
 
187
- if (state && (state.height !== height || state.width !== width || state.x !== x || state.y !== y)) {
188
- state.height = height;
189
- state.width = width;
190
- state.x = x;
191
- state.y = y;
192
- }
202
+ if (percent >= 50) {
203
+ return { ellipse: true, radius: 0, rotation };
193
204
  }
194
205
 
195
- function begin(event: PointerEvent) {
196
- if (event.button !== 0 || !element) {
197
- return;
206
+ let { height, width } = element.getBoundingClientRect();
207
+
208
+ return { ellipse: false, radius: Math.min(width, height) * percent / 100, rotation };
209
+ }
210
+
211
+ return { ellipse: false, radius: parseFloat(corner) || 0, rotation };
212
+ }
213
+
214
+
215
+ export default component(
216
+ function(this, attributes: Attributes & Options & { state?: Options, worker?: string }, content) {
217
+ let given: Options = {},
218
+ rest: Attributes = {},
219
+ state = attributes.state,
220
+ url = attributes.worker;
221
+
222
+ for (let key in attributes) {
223
+ if (key === 'state' || key === 'worker') {
224
+ continue;
198
225
  }
199
226
 
200
- (event.currentTarget as HTMLElement).setPointerCapture(event.pointerId);
201
- element.classList.add('--active');
202
- element.style.zIndex = String(++z);
203
- // Inside a zoomed world the pointer travels in screen px; dividing by the rendered scale keeps the surface
204
- // under the cursor.
205
- start = {
206
- h: height,
207
- pointerX: event.clientX,
208
- pointerY: event.clientY,
209
- scale: element.getBoundingClientRect().width / element.offsetWidth || 1,
210
- w: width,
211
- x,
212
- y
213
- };
227
+ if ((KEYS as string[]).includes(key)) {
228
+ (given as Record<string, unknown>)[key] = attributes[key];
229
+ }
230
+ else {
231
+ rest[key] = attributes[key];
232
+ }
214
233
  }
215
234
 
216
- function end() {
217
- element?.classList.remove('--active');
218
- start = null;
235
+ let bounds: DOMRect | null = null,
236
+ canvas: HTMLCanvasElement | undefined,
237
+ elements: Element[] | null = null,
238
+ field: Field | null = null,
239
+ // Bumped when the worker fails, so the template renders a fresh canvas the page can draw on again.
240
+ generation = signal(0),
241
+ host: HTMLElement | undefined,
242
+ last = { accent: '', camera: null as Camera | null, color: '', shapes: [] as Shape[], size: '' },
243
+ // Ends everything a connection listens to and observes, presses still held included.
244
+ listening: AbortController | undefined,
245
+ measuring = 0,
246
+ relink = true,
247
+ resizer: Observer | undefined,
248
+ running = 0,
249
+ settle = 0,
250
+ shown = true,
251
+ styles = new WeakMap<Element, Style>();
252
+
253
+ function box() {
254
+ return bounds ??= host!.getBoundingClientRect();
219
255
  }
220
256
 
221
- function nudge(event: KeyboardEvent, resize: boolean) {
222
- let step = event.shiftKey ? 32 : 8,
223
- dx = event.key === 'ArrowLeft' ? -step : event.key === 'ArrowRight' ? step : 0,
224
- dy = event.key === 'ArrowUp' ? -step : event.key === 'ArrowDown' ? step : 0;
257
+ function collect() {
258
+ elements = Array.from(host!.querySelectorAll(SELECTOR));
259
+ resizer?.disconnect();
260
+ resizer?.observe(host!);
225
261
 
226
- if (!dx && !dy) {
227
- return;
262
+ for (let i = 0, n = elements.length; i < n; i++) {
263
+ resizer?.observe(elements[i]);
228
264
  }
229
265
 
230
- event.preventDefault();
266
+ return elements;
267
+ }
268
+
269
+ function curve(a: Shape | undefined, b: Shape | undefined) {
270
+ let points: number[] = [];
231
271
 
232
- if (resize) {
233
- width += dx;
234
- height += dy;
272
+ if (!a || !b) {
273
+ return points;
235
274
  }
236
- else {
237
- x += dx;
238
- y += dy;
275
+
276
+ // Leaves and arrives along the dominant axis, the way a connector between two cards does.
277
+ let dx = b.x - a.x,
278
+ dy = b.y - a.y,
279
+ across = Math.abs(dx) >= Math.abs(dy),
280
+ c1x = across ? a.x + dx / 2 : a.x,
281
+ c1y = across ? a.y : a.y + dy / 2,
282
+ c2x = across ? b.x - dx / 2 : b.x,
283
+ c2y = across ? b.y : b.y - dy / 2;
284
+
285
+ for (let i = 0; i <= 32; i++) {
286
+ let t = i / 32,
287
+ u = 1 - t;
288
+
289
+ points.push(
290
+ u * u * u * a.x + 3 * u * u * t * c1x + 3 * u * t * t * c2x + t * t * t * b.x,
291
+ u * u * u * a.y + 3 * u * u * t * c1y + 3 * u * t * t * c2y + t * t * t * b.y
292
+ );
239
293
  }
240
294
 
241
- apply();
295
+ return points;
242
296
  }
243
297
 
244
- return html`
245
- <div
246
- class='surface-field-surface'
247
- ${this?.attributes}
248
- ${attributes}
249
- ${{
250
- onconnect: (el: HTMLElement) => {
251
- element = el;
252
- apply();
253
- }
254
- }}
255
- >
256
- <button
257
- aria-label='${`Move ${label} surface with arrow keys`}'
258
- class='surface-field-surface-handle'
259
- type='button'
260
- ${{
261
- onkeydown: (event: KeyboardEvent) => nudge(event, false),
262
- onlostpointercapture: end,
263
- onpointerdown: begin,
264
- onpointermove: (event: PointerEvent) => {
265
- if (!start) {
266
- return;
267
- }
298
+ function measure() {
299
+ measuring = 0;
268
300
 
269
- x = start.x + (event.clientX - start.pointerX) / start.scale;
270
- y = start.y + (event.clientY - start.pointerY) / start.scale;
271
- apply();
272
- }
273
- }}
274
- ></button>
275
- <div class='surface-field-surface-content'>${content}</div>
276
- <button
277
- aria-label='${`Resize ${label} surface with arrow keys; right and down make it larger`}'
278
- class='surface-field-surface-resize'
279
- type='button'
280
- ${{
281
- onkeydown: (event: KeyboardEvent) => nudge(event, true),
282
- onlostpointercapture: end,
283
- onpointerdown: begin,
284
- onpointermove: (event: PointerEvent) => {
285
- if (!start) {
286
- return;
287
- }
301
+ if (!host || !field) {
302
+ return;
303
+ }
288
304
 
289
- width = start.w + (event.clientX - start.pointerX) / start.scale;
290
- height = start.h + (event.clientY - start.pointerY) / start.scale;
291
- apply();
292
- }
293
- }}
294
- ></button>
295
- </div>
296
- `;
297
- }
298
- );
305
+ let changed = false,
306
+ height = host.clientHeight,
307
+ width = host.clientWidth,
308
+ dpr = Math.min(2, devicePixelRatio || 1),
309
+ size = `${width} ${height} ${dpr}`;
299
310
 
311
+ bounds = host.getBoundingClientRect();
300
312
 
301
- export default Object.assign(
302
- component<Attributes & Options & { state?: Options }>(
303
- function(this, attributes, content) {
304
- let given: Options = {},
305
- rest: Attributes = {},
306
- state = attributes.state;
313
+ if (size !== last.size) {
314
+ changed = true;
315
+ field.resize(width, height, dpr);
316
+ last.size = size;
317
+ }
307
318
 
308
- for (let key in attributes) {
309
- if (key === 'state') {
310
- continue;
311
- }
319
+ let list = elements ?? collect(),
320
+ shapes: Shape[] = [];
312
321
 
313
- if ((KEYS as string[]).includes(key)) {
314
- (given as Record<string, unknown>)[key] = attributes[key];
315
- }
316
- else {
317
- rest[key] = attributes[key];
318
- }
319
- }
322
+ for (let i = 0, n = list.length; i < n; i++) {
323
+ let element = list[i],
324
+ r = element.getBoundingClientRect();
320
325
 
321
- let canvas: HTMLCanvasElement | undefined,
322
- context: CanvasRenderingContext2D | null = null,
323
- frame = 0,
324
- host: HTMLElement | undefined,
325
- key = '',
326
- last = 0,
327
- light = { intensity: 0, x: 0, y: 0 },
328
- reduced = matchMedia('(prefers-reduced-motion: reduce)'),
329
- observer: IntersectionObserver | undefined,
330
- pointer = { at: -Infinity, inside: false, x: 0, y: 0 },
331
- ripples: Ripple[] = [],
332
- size = { dpr: 0, height: 0, width: 0 },
333
- visible = false;
334
-
335
- // Grid buffers, regrown only when the dot count rises.
336
- let bucket = new Uint16Array(0),
337
- dotAlpha = new Float32Array(0),
338
- dotLight = new Float32Array(0),
339
- lineLight = new Float32Array(0),
340
- order = new Uint32Array(0),
341
- px = new Float32Array(0),
342
- py = new Float32Array(0),
343
- segment = new Uint32Array(0),
344
- segmentBucket = new Uint16Array(0),
345
- segmentOrder = new Uint32Array(0),
346
- seed = new Float32Array(0);
347
-
348
- function options() {
349
- let snapshot = {} as Required<Options>;
350
-
351
- for (let i = 0, n = KEYS.length; i < n; i++) {
352
- let k = KEYS[i];
353
-
354
- (snapshot as Record<string, unknown>)[k] = state?.[k] ?? given[k] ?? DEFAULTS[k];
326
+ if (!r.width || !r.height) {
327
+ continue;
355
328
  }
356
329
 
357
- // Copied so the frame works from (and compares against) the values of this moment, not a live object.
358
- let camera = snapshot.camera;
330
+ let s = styles.get(element);
359
331
 
360
- if (camera) {
361
- snapshot.camera = { x: camera.x, y: camera.y, zoom: camera.zoom };
332
+ if (!s) {
333
+ s = style(element);
334
+ styles.set(element, s);
362
335
  }
363
336
 
364
- return snapshot;
337
+ // Layout size is the box before any transform; the rendered box tells how far it has been scaled.
338
+ let turn = s.rotation * Math.PI / 180,
339
+ cos = Math.abs(Math.cos(turn)),
340
+ sin = Math.abs(Math.sin(turn)),
341
+ w = (element as HTMLElement).offsetWidth || r.width,
342
+ h = (element as HTMLElement).offsetHeight || r.height,
343
+ scale = r.width / (w * cos + h * sin) || 1;
344
+
345
+ shapes.push({
346
+ active: element.classList.contains('--active'),
347
+ ellipse: s.ellipse,
348
+ height: h * scale,
349
+ id: element.getAttribute('data-surface-field') ?? '',
350
+ radius: s.radius * scale,
351
+ rotation: s.rotation,
352
+ width: w * scale,
353
+ x: r.left - bounds.left + r.width / 2,
354
+ y: r.top - bounds.top + r.height / 2
355
+ });
365
356
  }
366
357
 
367
- function grow(n: number) {
368
- if (px.length >= n) {
369
- return;
370
- }
371
-
372
- bucket = new Uint16Array(n);
373
- dotAlpha = new Float32Array(n);
374
- dotLight = new Float32Array(n);
375
- lineLight = new Float32Array(n);
376
- order = new Uint32Array(n);
377
- px = new Float32Array(n);
378
- py = new Float32Array(n);
379
- segment = new Uint32Array(n * 4);
380
- segmentBucket = new Uint16Array(n * 2);
381
- segmentOrder = new Uint32Array(n * 2);
382
- seed = new Float32Array(n);
358
+ if (!same(shapes, last.shapes)) {
359
+ changed = relink = true;
360
+ field.surfaces(shapes);
361
+ last.shapes = shapes;
383
362
  }
384
363
 
385
- function start() {
386
- if (!frame && visible && host?.isConnected) {
387
- last = performance.now();
388
- frame = requestAnimationFrame(tick);
364
+ let camera = read('camera');
365
+
366
+ if (camera) {
367
+ if (!last.camera || last.camera.x !== camera.x || last.camera.y !== camera.y || last.camera.zoom !== camera.zoom) {
368
+ changed = relink = true;
369
+ last.camera = { x: camera.x, y: camera.y, zoom: camera.zoom };
370
+ field.camera(last.camera);
389
371
  }
390
372
  }
391
-
392
- function stop() {
393
- cancelAnimationFrame(frame);
394
- frame = 0;
373
+ else if (last.camera) {
374
+ changed = relink = true;
375
+ last.camera = null;
376
+ field.camera(null);
395
377
  }
396
378
 
397
- function tick(now: number) {
398
- frame = requestAnimationFrame(tick);
379
+ if (relink) {
380
+ relink = false;
381
+ field.links(paths());
382
+ }
399
383
 
400
- if (!host || !canvas || !context) {
401
- return;
402
- }
384
+ field.flush();
403
385
 
404
- let dt = Math.min(64, now - last) / 1000,
405
- o = options(),
406
- width = host.clientWidth,
407
- height = host.clientHeight,
408
- dpr = Math.min(2, devicePixelRatio || 1);
386
+ // Keeps following for a frame after the last change, and for as long as a transition or animation runs.
387
+ if (changed || running > 0) {
388
+ settle = 0;
389
+ schedule();
390
+ }
391
+ else if (++settle < 2) {
392
+ schedule();
393
+ }
394
+ }
409
395
 
410
- last = now;
396
+ function paths() {
397
+ let links = read('links'),
398
+ camera = last.camera,
399
+ named: Map<string, Shape> | undefined,
400
+ result: Path[] = [];
411
401
 
412
- if (width !== size.width || height !== size.height || dpr !== size.dpr) {
413
- canvas.height = Math.max(1, Math.round(height * dpr));
414
- canvas.width = Math.max(1, Math.round(width * dpr));
415
- size = { dpr, height, width };
416
- key = '';
417
- }
402
+ if (!links) {
403
+ return result;
404
+ }
418
405
 
419
- // Surface geometry is read fresh each frame so a drag, a resize or a layout shift is followed at once.
420
- let bounds = host.getBoundingClientRect(),
421
- elements = host.querySelectorAll(SELECTOR),
422
- rects: Rect[] = [];
406
+ for (let i = 0, n = links.length; i < n; i++) {
407
+ let link = links[i],
408
+ points: number[] = [];
423
409
 
424
- for (let i = 0, n = elements.length; i < n; i++) {
425
- let r = elements[i].getBoundingClientRect();
410
+ if (link.points && link.points.length >= 2) {
411
+ for (let j = 0, m = link.points.length; j < m; j++) {
412
+ let p = link.points[j];
426
413
 
427
- if (r.width && r.height) {
428
- rects.push({
429
- bottom: r.bottom - bounds.top,
430
- left: r.left - bounds.left,
431
- right: r.right - bounds.left,
432
- top: r.top - bounds.top
433
- });
414
+ points.push(
415
+ camera ? p.x * camera.zoom + camera.x : p.x,
416
+ camera ? p.y * camera.zoom + camera.y : p.y
417
+ );
434
418
  }
435
419
  }
420
+ else {
421
+ if (!named) {
422
+ named = new Map();
436
423
 
437
- let animate = !o.still && !reduced.matches,
438
- intensity = 0,
439
- target = { x: light.x, y: light.y },
440
- wandering = false;
424
+ for (let j = 0, m = last.shapes.length; j < m; j++) {
425
+ let shape = last.shapes[j];
441
426
 
442
- if (animate && pointer.inside) {
443
- intensity = 1;
444
- target = { x: pointer.x, y: pointer.y };
445
- }
446
- else if (animate && o.wander && now - pointer.at > IDLE) {
447
- let t = now / 1000;
448
-
449
- intensity = 0.85;
450
- target = {
451
- x: width / 2 + Math.cos(t * 0.23) * width * 0.34 + Math.sin(t * 0.57) * width * 0.08,
452
- y: height / 2 + Math.sin(t * 0.31) * height * 0.3 + Math.cos(t * 0.49) * height * 0.08
453
- };
454
- wandering = true;
427
+ if (shape.id && !named.has(shape.id)) {
428
+ named.set(shape.id, shape);
429
+ }
430
+ }
431
+ }
432
+
433
+ points = curve(named.get(link.from ?? ''), named.get(link.to ?? ''));
455
434
  }
456
435
 
457
- // A light fading in from nothing starts where it is aimed rather than sweeping across from its last spot.
458
- if (light.intensity < 0.01 && intensity > 0) {
459
- light.x = target.x;
460
- light.y = target.y;
436
+ if (points.length >= 4) {
437
+ result.push({ motion: link.motion ?? 'still', points, speed: link.speed ?? 0, width: link.width ?? 0 });
461
438
  }
439
+ }
462
440
 
463
- let follow = 1 - Math.exp(-dt * (wandering ? 2.5 : 16)),
464
- fade = 1 - Math.exp(-dt * 6);
441
+ return result;
442
+ }
465
443
 
466
- light.intensity += (intensity - light.intensity) * fade;
467
- light.x += (target.x - light.x) * follow;
468
- light.y += (target.y - light.y) * follow;
444
+ function page() {
445
+ shown = !document.hidden;
446
+ field?.visible(shown);
447
+ }
469
448
 
470
- if (!animate) {
471
- light.intensity = 0;
472
- ripples.length = 0;
473
- }
474
- else if (ripples.length) {
475
- ripples = ripples.filter((ripple) => (now - ripple.born) / 1000 < RIPPLE_LIFE);
476
- }
449
+ function read<K extends keyof Options>(key: K): Required<Options>[K] {
450
+ return (state?.[key] ?? given[key] ?? DEFAULTS[key]) as Required<Options>[K];
451
+ }
477
452
 
478
- let color = getComputedStyle(canvas).color,
479
- settled = Math.abs(intensity - light.intensity) < 0.002
480
- && (light.intensity < 0.002 || (Math.abs(target.x - light.x) < 0.1 && Math.abs(target.y - light.y) < 0.1)),
481
- signature = JSON.stringify([o, color, rects, pointer.inside && animate ? [pointer.x, pointer.y] : 0]);
453
+ function recolor() {
454
+ if (!canvas || !field) {
455
+ return;
456
+ }
482
457
 
483
- // Nothing moving and nothing changed: the previous frame still stands.
484
- if (settled && !wandering && !ripples.length && !(animate && o.breathe > 0) && signature === key) {
485
- return;
486
- }
458
+ let computed = getComputedStyle(canvas),
459
+ accent = read('accent') || computed.accentColor,
460
+ color = computed.color;
487
461
 
488
- key = signature;
489
- draw(o, rects, color, animate ? now : 0, animate);
462
+ if (accent === last.accent && color === last.color) {
463
+ return;
490
464
  }
491
465
 
492
- function draw(o: Required<Options>, rects: Rect[], color: string, now: number, animate: boolean) {
493
- let ctx = context!,
494
- { dpr, height, width } = size,
495
- camera = o.camera,
496
- gap = Math.max(6, o.gap) * (camera ? Math.max(0.01, camera.zoom) : 1),
497
- zoom = camera ? Math.max(0.01, camera.zoom) : 1;
466
+ last.accent = accent;
467
+ last.color = color;
468
+ field.recolor(rgb(color), rgb(accent));
469
+ }
498
470
 
499
- // Zoomed far out, every other row and column drops so the dots never crowd into a grey wash.
500
- while (gap < 8) {
501
- gap *= 2;
471
+ // Draws off the main thread: the canvas goes to a worker, and every call is queued and posted once per task.
472
+ function remote(element: HTMLCanvasElement, script: string): Field {
473
+ let calls: Call[] = [],
474
+ channel = new MessageChannel(),
475
+ queued = false,
476
+ workers = pool<Actions>(script, { limit: 1 }),
477
+ task = workers().attach(element.transferControlToOffscreen(), channel.port2),
478
+ proxy = {} as Record<keyof Field, unknown> as Field;
479
+
480
+ function flush() {
481
+ queued = false;
482
+
483
+ if (calls.length) {
484
+ channel.port1.postMessage(calls);
485
+ calls = [];
502
486
  }
487
+ }
503
488
 
504
- let cols = Math.floor(width / gap) + 2,
505
- rows = Math.floor(height / gap) + 2,
506
- n = cols * rows,
507
- // World index of the first column and row, so a dot keeps its identity (and its breathing phase)
508
- // while the camera pans.
509
- i0 = camera ? Math.floor(-camera.x / gap) : 0,
510
- j0 = camera ? Math.floor(-camera.y / gap) : 0,
511
- ox = camera ? camera.x + i0 * gap : (width - (cols - 1) * gap) / 2,
512
- oy = camera ? camera.y + j0 * gap : (height - (rows - 1) * gap) / 2,
513
- padding = o.surfacePadding * zoom,
514
- clear = Math.max(2, gap * 0.8 + padding),
515
- band = Math.max(clear + gap, gap * 3 + padding),
516
- halo = band + gap * 1.5,
517
- push = Math.min(o.radius, gap * 5),
518
- peak = Math.min(1, o.brightness * 2.5),
519
- time = now / 1000;
520
-
521
- grow(n);
522
-
523
- for (let j = 0; j < rows; j++) {
524
- for (let i = 0; i < cols; i++) {
525
- let k = j * cols + i,
526
- x = ox + i * gap,
527
- y = oy + j * gap,
528
- glow = 0,
529
- shown = 1;
530
-
531
- seed[k] = ((Math.sin((i + i0) * 12.9898 + (j + j0) * 78.233) * 43758.5453) % 1 + 1) % 1;
532
-
533
- // Each surface clears the dots it covers and squeezes the band around it outward, so the grid
534
- // bends around the surface's edge and rounds off at its corners.
535
- for (let r = 0, m = rects.length; r < m; r++) {
536
- let rect = rects[r],
537
- cx = clamp(x, rect.left, rect.right),
538
- cy = clamp(y, rect.top, rect.bottom),
539
- dx = x - cx,
540
- dy = y - cy,
541
- d = Math.sqrt(dx * dx + dy * dy);
542
-
543
- if (d === 0) {
544
- shown = 0;
545
- break;
546
- }
489
+ for (let i = 0, n = METHODS.length; i < n; i++) {
490
+ let name = METHODS[i];
547
491
 
548
- if (d < halo) {
549
- glow = Math.max(glow, 1 - d / halo);
550
- }
492
+ (proxy as Record<string, unknown>)[name] = (...args: unknown[]) => {
493
+ calls.push([name, args]);
551
494
 
552
- if (d < band) {
553
- let scale = (clear + d * (band - clear) / band) / d;
495
+ if (!queued) {
496
+ queued = true;
497
+ queueMicrotask(flush);
498
+ }
499
+ };
500
+ }
554
501
 
555
- x = cx + dx * scale;
556
- y = cy + dy * scale;
557
- }
558
- }
502
+ proxy.dispose = () => {
503
+ flush();
504
+ task.dispatch('release');
505
+ channel.port1.close();
506
+ void workers.shutdown();
507
+ };
508
+ proxy.flush = flush;
559
509
 
560
- let dot = glow * glow * HALO,
561
- line = dot;
510
+ // A worker that fails to start or dies hands the drawing back to the page, on a fresh canvas since the
511
+ // old one now belongs to the worker; the fresh canvas starts the engine once it connects.
512
+ task.catch(() => {
513
+ if (field !== proxy) {
514
+ return;
515
+ }
562
516
 
563
- if (shown && light.intensity > 0.001) {
564
- let dx = x - light.x,
565
- dy = y - light.y,
566
- d = Math.sqrt(dx * dx + dy * dy);
517
+ channel.port1.close();
518
+ void workers.shutdown();
519
+ field = null;
520
+ write(generation, generation.value + 1);
521
+ });
567
522
 
568
- dot += falloff(d, o.radius) * light.intensity;
569
- line += falloff(d, o.lineRadius) * light.intensity;
523
+ return proxy;
524
+ }
570
525
 
571
- if (pointer.inside && o.pointerPush && d > 0.001 && d < push) {
572
- let s = o.pointerPush * (1 - d / push) * (1 - d / push) * light.intensity / d;
526
+ function schedule() {
527
+ if (!measuring && host) {
528
+ measuring = requestAnimationFrame(measure);
529
+ }
530
+ }
573
531
 
574
- x += dx * s;
575
- y += dy * s;
576
- }
577
- }
532
+ function settings() {
533
+ let snapshot = {} as Settings;
578
534
 
579
- for (let r = 0, m = shown ? ripples.length : 0; r < m; r++) {
580
- let ripple = ripples[r],
581
- age = (now - ripple.born) / 1000,
582
- dx = x - ripple.x,
583
- dy = y - ripple.y,
584
- d = Math.sqrt(dx * dx + dy * dy),
585
- life = 1 - age / RIPPLE_LIFE,
586
- wave = (d - age * RIPPLE_SPEED) / RIPPLE_WIDTH,
587
- strength = Math.exp(-wave * wave) * life * life;
588
-
589
- if (d > 0.001) {
590
- x += dx / d * o.ripplePush * strength;
591
- y += dy / d * o.ripplePush * strength;
592
- }
535
+ for (let i = 0, n = SETTINGS.length; i < n; i++) {
536
+ let key = SETTINGS[i];
593
537
 
594
- dot += strength * 0.8;
595
- line += strength * 0.6;
596
- }
538
+ (snapshot as Record<string, unknown>)[key] = read(key);
539
+ }
597
540
 
598
- let breath = animate && o.breathe > 0
599
- ? 1 - o.breathe * 0.5 * (1 + Math.sin(time * 1.3 + seed[k] * TAU))
600
- : 1;
541
+ // Or held still by the CSS, under reduced motion say.
542
+ snapshot.still ||= !!canvas && parseFloat(getComputedStyle(canvas).getPropertyValue('--still')) > 0;
601
543
 
602
- dot = Math.min(1, dot);
603
- px[k] = x;
604
- py[k] = y;
605
- dotLight[k] = dot;
606
- dotAlpha[k] = shown * breath * (o.base + (peak - o.base) * Math.max(0, dot));
607
- lineLight[k] = shown * Math.min(1, line);
608
- }
609
- }
544
+ return snapshot;
545
+ }
610
546
 
611
- let accent = rgb(o.accent),
612
- base = rgb(color),
613
- buckets = ALPHA_LEVELS * TINT_LEVELS,
614
- counts = new Uint32Array(buckets + 1),
615
- fills: string[] = [],
616
- tint = clamp(o.tint, 0, 1);
617
-
618
- for (let t = 0; t < TINT_LEVELS; t++) {
619
- let mix = tint * t / (TINT_LEVELS - 1);
620
-
621
- fills[t] = `rgb(${
622
- Math.round(base[0] + (accent[0] - base[0]) * mix)
623
- } ${
624
- Math.round(base[1] + (accent[1] - base[1]) * mix)
625
- } ${
626
- Math.round(base[2] + (accent[2] - base[2]) * mix)
627
- })`;
628
- }
547
+ // Sends everything a new engine needs, from nothing.
548
+ function sync() {
549
+ if (!field) {
550
+ return;
551
+ }
629
552
 
630
- ctx.setTransform(dpr, 0, 0, dpr, 0, 0);
631
- ctx.clearRect(0, 0, width, height);
553
+ last = { accent: '', camera: null, color: '', shapes: [], size: '' };
554
+ relink = true;
555
+ field.configure(settings());
556
+ field.visible(shown);
557
+ recolor();
558
+ measure();
559
+ }
632
560
 
633
- // Lines and dots are bucketed by opacity and tint so each bucket draws as a single path.
634
- if (o.connected) {
635
- let segments = 0;
561
+ function viewport() {
562
+ bounds = null;
563
+ schedule();
564
+ }
636
565
 
637
- for (let j = 0; j < rows; j++) {
638
- for (let i = 0; i < cols; i++) {
639
- let k = j * cols + i;
566
+ effect(() => {
567
+ let next = settings();
640
568
 
641
- for (let neighbour of [i + 1 < cols ? k + 1 : -1, j + 1 < rows ? k + cols : -1]) {
642
- if (neighbour < 0) {
643
- continue;
644
- }
569
+ untrack(() => field?.configure(next));
570
+ });
645
571
 
646
- let lit = Math.min(lineLight[k], lineLight[neighbour]),
647
- alpha = Math.round(lit * o.brightness * (ALPHA_LEVELS - 1));
572
+ effect(() => {
573
+ read('accent');
574
+ untrack(recolor);
575
+ });
648
576
 
649
- if (alpha < 1) {
650
- continue;
651
- }
577
+ // Read deeply so reactive cameras and links are tracked; the next measure picks up what changed.
578
+ effect(() => {
579
+ let camera = read('camera'),
580
+ links = read('links');
652
581
 
653
- segment[segments * 2] = k;
654
- segment[segments * 2 + 1] = neighbour;
655
- segmentBucket[segments] = Math.round(lit * (TINT_LEVELS - 1)) * ALPHA_LEVELS + Math.min(alpha, ALPHA_LEVELS - 1);
656
- counts[segmentBucket[segments] + 1]++;
657
- segments++;
658
- }
659
- }
660
- }
661
-
662
- sort(counts, segmentBucket, segmentOrder, segments);
663
- ctx.lineWidth = 1;
582
+ if (camera) {
583
+ void (camera.x + camera.y + camera.zoom);
584
+ }
664
585
 
665
- for (let b = 0; b < buckets; b++) {
666
- let from = counts[b],
667
- to = counts[b + 1];
586
+ void JSON.stringify(links);
587
+ untrack(() => {
588
+ relink = true;
589
+ schedule();
590
+ });
591
+ });
668
592
 
669
- if (from === to) {
670
- continue;
671
- }
593
+ effect(() => {
594
+ let ripple = read('ripple');
672
595
 
673
- ctx.beginPath();
596
+ if (ripple) {
597
+ let { x, y } = ripple;
674
598
 
675
- for (let s = from; s < to; s++) {
676
- let a = segment[segmentOrder[s] * 2],
677
- c = segment[segmentOrder[s] * 2 + 1];
599
+ untrack(() => field?.ripple(x, y));
600
+ }
601
+ });
678
602
 
679
- ctx.moveTo(px[a], py[a]);
680
- ctx.lineTo(px[c], py[c]);
603
+ return html`
604
+ <div
605
+ class='surface-field'
606
+ ${this?.attributes}
607
+ ${rest}
608
+ ${{
609
+ onconnect: (element: HTMLElement) => {
610
+ if (!canvas) {
611
+ return;
681
612
  }
682
613
 
683
- ctx.globalAlpha = (b % ALPHA_LEVELS) / (ALPHA_LEVELS - 1);
684
- ctx.strokeStyle = fills[Math.floor(b / ALPHA_LEVELS)];
685
- ctx.stroke();
686
- }
687
-
688
- counts.fill(0);
689
- }
614
+ host = element;
615
+ field = url && typeof Worker === 'function' && 'transferControlToOffscreen' in canvas
616
+ ? remote(canvas, url)
617
+ : engine(canvas, scheduler());
690
618
 
691
- let dots = 0;
619
+ listening = new AbortController();
692
620
 
693
- for (let k = 0; k < n; k++) {
694
- let alpha = Math.round(dotAlpha[k] * (ALPHA_LEVELS - 1));
695
-
696
- if (alpha < 1) {
697
- bucket[k] = buckets;
698
- continue;
699
- }
700
-
701
- bucket[k] = Math.round(dotLight[k] * (TINT_LEVELS - 1)) * ALPHA_LEVELS + Math.min(alpha, ALPHA_LEVELS - 1);
702
- counts[bucket[k] + 1]++;
703
- dots++;
704
- }
705
-
706
- sort(counts, bucket, order, n);
707
-
708
- for (let b = 0; b < buckets; b++) {
709
- let from = counts[b],
710
- to = counts[b + 1];
711
-
712
- if (from === to) {
713
- continue;
714
- }
621
+ let done = (event: Event) => {
622
+ if (event.type === 'transitionrun' || event.type === 'animationstart') {
623
+ running++;
624
+ }
625
+ else {
626
+ running = Math.max(0, running - 1);
627
+ }
715
628
 
716
- let r = 0.85 + 0.45 * Math.floor(b / ALPHA_LEVELS) / (TINT_LEVELS - 1);
629
+ schedule();
630
+ },
631
+ intersection = observeIntersection(element, (entries) => {
632
+ shown = entries[entries.length - 1].isIntersecting && !document.hidden;
633
+ field?.visible(shown);
634
+ }),
635
+ // Surfaces are followed through the writes that move them, not by polling layout.
636
+ mutation = new MutationObserver((records) => {
637
+ for (let i = 0, n = records.length; i < n; i++) {
638
+ let record = records[i];
639
+
640
+ if (record.type === 'childList' || record.attributeName === 'data-surface-field') {
641
+ elements = null;
642
+ }
643
+ else if (record.target === element) {
644
+ recolor();
645
+ }
646
+
647
+ styles.delete(record.target as Element);
648
+ }
717
649
 
718
- ctx.beginPath();
650
+ schedule();
651
+ }),
652
+ signal = listening.signal,
653
+ theme = new MutationObserver(() => {
654
+ styles = new WeakMap();
655
+ recolor();
656
+ schedule();
657
+ });
719
658
 
720
- for (let s = from; s < to; s++) {
721
- let k = order[s];
659
+ resizer = observer(() => schedule());
660
+ mutation.observe(element, {
661
+ attributeFilter: ['class', 'data-surface-field', 'style'],
662
+ characterData: true,
663
+ childList: true,
664
+ subtree: true
665
+ });
666
+ theme.observe(document.documentElement, { attributes: true });
722
667
 
723
- ctx.moveTo(px[k] + r, py[k]);
724
- ctx.arc(px[k], py[k], r, 0, TAU);
725
- }
668
+ // Hear every descendant's motion, including events with their own template handler.
669
+ for (let type of ['animationcancel', 'animationend', 'animationstart', 'transitioncancel', 'transitionend', 'transitionrun']) {
670
+ element.addEventListener(type, done, { signal });
671
+ }
726
672
 
727
- ctx.globalAlpha = (b % ALPHA_LEVELS) / (ALPHA_LEVELS - 1);
728
- ctx.fillStyle = fills[Math.floor(b / ALPHA_LEVELS)];
729
- ctx.fill();
730
- }
673
+ element.addEventListener('scroll', viewport, { capture: true, passive: true, signal });
674
+ matchMedia('(prefers-color-scheme: dark)').addEventListener('change', recolor, { signal });
675
+ window.addEventListener('scroll', () => {
676
+ bounds = null;
677
+ }, { capture: true, passive: true, signal });
678
+ signal.addEventListener('abort', () => {
679
+ intersection();
680
+ mutation.disconnect();
681
+ resizer?.disconnect();
682
+ theme.disconnect();
683
+ }, { once: true });
684
+
685
+ collect();
686
+ sync();
687
+ },
688
+ ondisconnect: () => {
689
+ listening?.abort();
690
+ listening = undefined;
691
+ cancelAnimationFrame(measuring);
692
+ measuring = 0;
693
+ field?.dispose();
694
+ field = null;
695
+ host = undefined;
696
+ },
697
+ ondocumentvisibilitychange: page,
698
+ onpointerdown: (event: PointerEvent) => {
699
+ if (!field || !host) {
700
+ return;
701
+ }
731
702
 
732
- ctx.globalAlpha = 1;
733
- }
703
+ let b = box(),
704
+ id = event.pointerId,
705
+ x = event.clientX - b.left,
706
+ y = event.clientY - b.top;
734
707
 
735
- // Counting sort: `counts` holds per-bucket tallies offset by one and becomes each bucket's start index.
736
- function sort(counts: Uint32Array, keys: Uint16Array, into: Uint32Array, n: number) {
737
- for (let b = 1, m = counts.length; b < m; b++) {
738
- counts[b] += counts[b - 1];
739
- }
708
+ field.pointer(id, x, y, true);
740
709
 
741
- let cursor = counts.slice();
710
+ if (event.button !== 0 || (event.target as Element).closest?.(SELECTOR)) {
711
+ return;
712
+ }
742
713
 
743
- for (let i = 0; i < n; i++) {
744
- if (keys[i] < counts.length - 1) {
745
- into[cursor[keys[i]]++] = i;
746
- }
747
- }
748
- }
714
+ // The ring holds while pressed, so the release is heard wherever it happens.
715
+ let finish = (e: PointerEvent) => {
716
+ if (e.pointerId !== id) {
717
+ return;
718
+ }
749
719
 
750
- function track(event: PointerEvent) {
751
- if (!host) {
752
- return;
753
- }
720
+ if (e.type === 'pointercancel') {
721
+ field?.cancel(id);
722
+ }
723
+ else {
724
+ field?.release(id);
725
+ }
754
726
 
755
- let bounds = host.getBoundingClientRect();
727
+ window.removeEventListener('pointercancel', finish);
728
+ window.removeEventListener('pointerup', finish);
729
+ };
730
+
731
+ field.press(id, x, y);
732
+ window.addEventListener('pointercancel', finish, { signal: listening?.signal });
733
+ window.addEventListener('pointerup', finish, { signal: listening?.signal });
734
+ },
735
+ onpointerleave: (event: PointerEvent) => {
736
+ field?.pointer(event.pointerId, 0, 0, false);
737
+ },
738
+ onpointermove: (event: PointerEvent) => {
739
+ if (!field || !host) {
740
+ return;
741
+ }
756
742
 
757
- pointer.at = performance.now();
758
- pointer.inside = true;
759
- pointer.x = event.clientX - bounds.left;
760
- pointer.y = event.clientY - bounds.top;
761
- }
743
+ let b = box();
762
744
 
763
- return html`
764
- <div
765
- class='surface-field'
766
- ${this?.attributes}
767
- ${rest}
768
- ${{
769
- onconnect: (element: HTMLElement) => {
770
- host = element;
771
- canvas = element.querySelector('.surface-field-canvas') as HTMLCanvasElement;
772
- context = canvas.getContext('2d');
773
- observer = new IntersectionObserver((entries) => {
774
- visible = entries[entries.length - 1].isIntersecting;
775
-
776
- if (visible) {
777
- start();
778
- }
779
- else {
780
- stop();
745
+ field.pointer(event.pointerId, event.clientX - b.left, event.clientY - b.top, true);
746
+ },
747
+ onwindowresize: viewport
748
+ }}
749
+ >
750
+ ${() => {
751
+ get(generation);
752
+
753
+ return html`
754
+ <canvas
755
+ aria-hidden='true'
756
+ class='surface-field-canvas'
757
+ ${{
758
+ onconnect: (element: HTMLCanvasElement) => {
759
+ canvas = element;
760
+
761
+ // A replacement after the worker failed; the first canvas is started by the host.
762
+ if (host && !field) {
763
+ field = engine(element, scheduler());
764
+ sync();
765
+ }
766
+ },
767
+ // Its CSS transitions '--still' alone, so a change to it is heard here.
768
+ ontransitionend: (e: TransitionEvent) => {
769
+ if (e.propertyName === '--still') {
770
+ field?.configure(settings());
771
+ }
781
772
  }
782
- });
783
- observer.observe(element);
784
- },
785
- ondisconnect: () => {
786
- observer?.disconnect();
787
- stop();
788
- },
789
- onpointerdown: (event: PointerEvent) => {
790
- track(event);
791
-
792
- if (event.button !== 0 || (event.target as Element).closest?.(SELECTOR)) {
793
- return;
794
- }
795
-
796
- ripples.push({ born: performance.now(), x: pointer.x, y: pointer.y });
797
-
798
- if (ripples.length > 6) {
799
- ripples.shift();
800
- }
801
- },
802
- onpointerleave: () => {
803
- pointer.at = performance.now();
804
- pointer.inside = false;
805
- },
806
- onpointermove: track
807
- }}
808
- >
809
- <canvas aria-hidden='true' class='surface-field-canvas'></canvas>
810
- <div class='surface-field-content'>${content}</div>
811
- </div>
812
- `;
813
- }
814
- ),
773
+ }}
774
+ ></canvas>
775
+ `;
776
+ }}
777
+ <div class='surface-field-content'>${content}</div>
778
+ </div>
779
+ `;
780
+ },
815
781
  { surface }
816
782
  );