@esportsplus/ui 0.56.3 → 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 (1601) 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 -77
  260. package/build/components/index.js +15 -77
  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 -77
  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/nested-menu/index.d.ts +0 -27
  1142. package/build/components/nested-menu/index.js +0 -374
  1143. package/build/components/nested-menu/scss/index.scss +0 -2
  1144. package/build/components/normalize/scss/index.scss +0 -3
  1145. package/build/components/notification-bell/index.d.ts +0 -13
  1146. package/build/components/notification-bell/index.js +0 -87
  1147. package/build/components/notification-bell/scss/index.scss +0 -2
  1148. package/build/components/onboarding-checklist/index.d.ts +0 -29
  1149. package/build/components/onboarding-checklist/index.js +0 -196
  1150. package/build/components/onboarding-checklist/scss/index.scss +0 -2
  1151. package/build/components/page-dots/index.d.ts +0 -24
  1152. package/build/components/page-dots/index.js +0 -116
  1153. package/build/components/page-dots/scss/index.scss +0 -2
  1154. package/build/components/pagination/svg/arrow-left.svg +0 -1
  1155. package/build/components/pagination/svg/arrow-right.svg +0 -1
  1156. package/build/components/password/constants.d.ts +0 -2
  1157. package/build/components/password/constants.js +0 -2
  1158. package/build/components/password/index.d.ts +0 -22
  1159. package/build/components/password/index.js +0 -74
  1160. package/build/components/password/scss/index.scss +0 -2
  1161. package/build/components/radio-cards/index.d.ts +0 -36
  1162. package/build/components/radio-cards/index.js +0 -106
  1163. package/build/components/radio-cards/scss/index.scss +0 -2
  1164. package/build/components/range-filter/index.d.ts +0 -20
  1165. package/build/components/range-filter/index.js +0 -216
  1166. package/build/components/range-filter/scss/index.scss +0 -2
  1167. package/build/components/range-slider/index.d.ts +0 -30
  1168. package/build/components/range-slider/index.js +0 -287
  1169. package/build/components/range-slider/scss/index.scss +0 -2
  1170. package/build/components/reading-progress/index.d.ts +0 -13
  1171. package/build/components/reading-progress/index.js +0 -106
  1172. package/build/components/reading-progress/scss/index.scss +0 -2
  1173. package/build/components/scroll-fade/index.d.ts +0 -39
  1174. package/build/components/scroll-fade/index.js +0 -104
  1175. package/build/components/scroll-fade/scss/index.scss +0 -2
  1176. package/build/components/scroll-spine/index.d.ts +0 -26
  1177. package/build/components/scroll-spine/index.js +0 -204
  1178. package/build/components/scroll-spine/scss/index.scss +0 -2
  1179. package/build/components/scroll-velocity/index.d.ts +0 -22
  1180. package/build/components/scroll-velocity/index.js +0 -160
  1181. package/build/components/scroll-velocity/scss/index.scss +0 -2
  1182. package/build/components/scrub-input/index.d.ts +0 -39
  1183. package/build/components/scrub-input/index.js +0 -221
  1184. package/build/components/scrub-input/scss/index.scss +0 -2
  1185. package/build/components/select-menu/index.d.ts +0 -34
  1186. package/build/components/select-menu/index.js +0 -329
  1187. package/build/components/select-menu/scss/index.scss +0 -2
  1188. package/build/components/selection-toolbar/index.d.ts +0 -36
  1189. package/build/components/selection-toolbar/index.js +0 -442
  1190. package/build/components/selection-toolbar/scss/index.scss +0 -2
  1191. package/build/components/settings/index.d.ts +0 -43
  1192. package/build/components/settings/index.js +0 -147
  1193. package/build/components/settings/scss/index.scss +0 -2
  1194. package/build/components/settings/svg/close.svg +0 -1
  1195. package/build/components/settings/svg/saved.svg +0 -1
  1196. package/build/components/share-button/index.d.ts +0 -29
  1197. package/build/components/share-button/index.js +0 -191
  1198. package/build/components/share-button/scss/index.scss +0 -2
  1199. package/build/components/sheet/index.d.ts +0 -33
  1200. package/build/components/sheet/index.js +0 -110
  1201. package/build/components/sheet/scss/index.scss +0 -2
  1202. package/build/components/shiny-text/index.d.ts +0 -17
  1203. package/build/components/shiny-text/index.js +0 -14
  1204. package/build/components/shiny-text/scss/index.scss +0 -2
  1205. package/build/components/shortcut-sheet/index.d.ts +0 -48
  1206. package/build/components/shortcut-sheet/index.js +0 -304
  1207. package/build/components/shortcut-sheet/scss/index.scss +0 -2
  1208. package/build/components/sidebar/index.d.ts +0 -13
  1209. package/build/components/sidebar/index.js +0 -13
  1210. package/build/components/sidebar/scss/index.scss +0 -2
  1211. package/build/components/slider/index.d.ts +0 -25
  1212. package/build/components/slider/index.js +0 -188
  1213. package/build/components/slider/scss/index.scss +0 -2
  1214. package/build/components/sliding-tabs/index.d.ts +0 -28
  1215. package/build/components/sliding-tabs/index.js +0 -188
  1216. package/build/components/sliding-tabs/scss/index.scss +0 -2
  1217. package/build/components/snap-carousel/index.d.ts +0 -30
  1218. package/build/components/snap-carousel/index.js +0 -233
  1219. package/build/components/snap-carousel/scss/index.scss +0 -2
  1220. package/build/components/sparkline/index.d.ts +0 -26
  1221. package/build/components/sparkline/index.js +0 -173
  1222. package/build/components/sparkline/scss/index.scss +0 -2
  1223. package/build/components/stacked-drawer/index.d.ts +0 -24
  1224. package/build/components/stacked-drawer/index.js +0 -211
  1225. package/build/components/stacked-drawer/scss/index.scss +0 -2
  1226. package/build/components/stat-counter/index.d.ts +0 -32
  1227. package/build/components/stat-counter/index.js +0 -216
  1228. package/build/components/stat-counter/scss/index.scss +0 -2
  1229. package/build/components/status-picker/index.d.ts +0 -32
  1230. package/build/components/status-picker/index.js +0 -198
  1231. package/build/components/status-picker/scss/index.scss +0 -2
  1232. package/build/components/sticky-stack/index.d.ts +0 -33
  1233. package/build/components/sticky-stack/index.js +0 -184
  1234. package/build/components/sticky-stack/scss/index.scss +0 -2
  1235. package/build/components/story-progress/index.d.ts +0 -26
  1236. package/build/components/story-progress/index.js +0 -196
  1237. package/build/components/story-progress/scss/index.scss +0 -2
  1238. package/build/components/swipe-deck/index.d.ts +0 -19
  1239. package/build/components/swipe-deck/index.js +0 -300
  1240. package/build/components/swipe-deck/scss/index.scss +0 -2
  1241. package/build/components/tabs/scss/index.scss +0 -2
  1242. package/build/components/tag-input/index.d.ts +0 -27
  1243. package/build/components/tag-input/index.js +0 -309
  1244. package/build/components/tag-input/scss/index.scss +0 -2
  1245. package/build/components/task-list/index.d.ts +0 -28
  1246. package/build/components/task-list/index.js +0 -107
  1247. package/build/components/task-list/scss/index.scss +0 -2
  1248. package/build/components/tasklist/constants.d.ts +0 -2
  1249. package/build/components/tasklist/constants.js +0 -2
  1250. package/build/components/text-animate/index.d.ts +0 -30
  1251. package/build/components/text-animate/index.js +0 -97
  1252. package/build/components/text-animate/scss/index.scss +0 -2
  1253. package/build/components/text-progress/index.d.ts +0 -13
  1254. package/build/components/text-progress/index.js +0 -114
  1255. package/build/components/text-progress/scss/index.scss +0 -2
  1256. package/build/components/thumbnail/scss/index.scss +0 -2
  1257. package/build/components/toast/manager.d.ts +0 -64
  1258. package/build/components/toast/manager.js +0 -221
  1259. package/build/components/toast/svg/check.svg +0 -1
  1260. package/build/components/toast/svg/chevron.svg +0 -1
  1261. package/build/components/toast/svg/close.svg +0 -1
  1262. package/build/components/toast/svg/copy.svg +0 -1
  1263. package/build/components/toast/svg/info.svg +0 -1
  1264. package/build/components/tooltip/context.d.ts +0 -22
  1265. package/build/components/tooltip/context.js +0 -66
  1266. package/build/components/tooltip/group.d.ts +0 -29
  1267. package/build/components/tooltip/group.js +0 -128
  1268. package/build/components/tooltip/options.d.ts +0 -7
  1269. package/build/components/tooltip/options.js +0 -21
  1270. package/build/components/tree/index.d.ts +0 -28
  1271. package/build/components/tree/index.js +0 -182
  1272. package/build/components/tree/scss/index.scss +0 -2
  1273. package/build/components/tree-view/index.d.ts +0 -25
  1274. package/build/components/tree-view/index.js +0 -205
  1275. package/build/components/tree-view/scss/index.scss +0 -2
  1276. package/build/components/typewriter-retype/index.d.ts +0 -8
  1277. package/build/components/typewriter-retype/index.js +0 -122
  1278. package/build/components/typewriter-retype/scss/index.scss +0 -2
  1279. package/build/components/undo-toast/index.d.ts +0 -30
  1280. package/build/components/undo-toast/index.js +0 -262
  1281. package/build/components/undo-toast/scss/index.scss +0 -2
  1282. package/build/components/value-flash/index.d.ts +0 -12
  1283. package/build/components/value-flash/index.js +0 -106
  1284. package/build/components/value-flash/scss/index.scss +0 -2
  1285. package/build/components/waitlist-join/index.d.ts +0 -34
  1286. package/build/components/waitlist-join/index.js +0 -402
  1287. package/build/components/waitlist-join/scss/index.scss +0 -2
  1288. package/build/components/web-search/brands.d.ts +0 -121
  1289. package/build/components/web-search/brands.js +0 -138
  1290. package/build/components/web-search/index.d.ts +0 -31
  1291. package/build/components/web-search/index.js +0 -245
  1292. package/build/components/web-search/scss/index.scss +0 -2
  1293. package/build/components/word-rotator/index.d.ts +0 -14
  1294. package/build/components/word-rotator/index.js +0 -196
  1295. package/build/components/word-rotator/scss/index.scss +0 -2
  1296. package/build/css-utilities/absolute/scss/index.scss +0 -2
  1297. package/build/css-utilities/disabled/scss/index.scss +0 -2
  1298. package/build/css-utilities/hidden/scss/index.scss +0 -2
  1299. package/build/css-utilities/not-allowed/scss/index.scss +0 -2
  1300. package/build/css-utilities/tabular/scss/index.scss +0 -2
  1301. package/lib.scss +0 -2
  1302. package/src/components/accordion/more.ts +0 -97
  1303. package/src/components/anchor/scss/index.scss +0 -56
  1304. package/src/components/anchor/scss/variables.scss +0 -4
  1305. package/src/components/announcement-banner/index.ts +0 -81
  1306. package/src/components/announcement-banner/scss/index.scss +0 -183
  1307. package/src/components/announcement-banner/scss/variables.scss +0 -18
  1308. package/src/components/autosave/index.ts +0 -113
  1309. package/src/components/autosave/scss/index.scss +0 -155
  1310. package/src/components/autosave/scss/variables.scss +0 -22
  1311. package/src/components/back-to-top/index.ts +0 -293
  1312. package/src/components/back-to-top/scss/index.scss +0 -111
  1313. package/src/components/back-to-top/scss/variables.scss +0 -30
  1314. package/src/components/bento-grid/index.ts +0 -63
  1315. package/src/components/bento-grid/scss/index.scss +0 -174
  1316. package/src/components/bento-grid/scss/variables.scss +0 -19
  1317. package/src/components/bento-grid-spotlight/index.ts +0 -133
  1318. package/src/components/bento-grid-spotlight/scss/index.scss +0 -226
  1319. package/src/components/bento-grid-spotlight/scss/variables.scss +0 -36
  1320. package/src/components/bookmark-button/index.ts +0 -174
  1321. package/src/components/bookmark-button/scss/index.scss +0 -162
  1322. package/src/components/bookmark-button/scss/variables.scss +0 -28
  1323. package/src/components/breadcrumb/ellipsis.ts +0 -17
  1324. package/src/components/breadcrumb/item.ts +0 -10
  1325. package/src/components/breadcrumb/link.ts +0 -21
  1326. package/src/components/breadcrumb/list.ts +0 -10
  1327. package/src/components/breadcrumb/menu.ts +0 -20
  1328. package/src/components/breadcrumb/page.ts +0 -16
  1329. package/src/components/breadcrumb/separator.ts +0 -17
  1330. package/src/components/breadcrumb/svg/caret.svg +0 -1
  1331. package/src/components/breadcrumb/svg/chevron.svg +0 -1
  1332. package/src/components/breadcrumb/svg/more.svg +0 -1
  1333. package/src/components/breadcrumbs/index.ts +0 -479
  1334. package/src/components/breadcrumbs/scss/index.scss +0 -235
  1335. package/src/components/breadcrumbs/scss/variables.scss +0 -30
  1336. package/src/components/button/svg/plus.svg +0 -1
  1337. package/src/components/card-input/index.ts +0 -594
  1338. package/src/components/card-input/scss/index.scss +0 -512
  1339. package/src/components/card-input/scss/variables.scss +0 -29
  1340. package/src/components/carousel-3d/index.ts +0 -405
  1341. package/src/components/carousel-3d/scss/index.scss +0 -155
  1342. package/src/components/carousel-3d/scss/variables.scss +0 -25
  1343. package/src/components/checkbox/svg/check.svg +0 -1
  1344. package/src/components/checkbox-group/index.ts +0 -171
  1345. package/src/components/checkbox-group/scss/index.scss +0 -229
  1346. package/src/components/checkbox-group/scss/variables.scss +0 -28
  1347. package/src/components/code-morph/index.ts +0 -459
  1348. package/src/components/code-morph/scss/index.scss +0 -384
  1349. package/src/components/code-morph/scss/variables.scss +0 -33
  1350. package/src/components/collapsible-sidebar/index.ts +0 -193
  1351. package/src/components/collapsible-sidebar/scss/index.scss +0 -220
  1352. package/src/components/collapsible-sidebar/scss/variables.scss +0 -42
  1353. package/src/components/command/constants.ts +0 -6
  1354. package/src/components/command-palette/index.ts +0 -456
  1355. package/src/components/command-palette/scss/index.scss +0 -235
  1356. package/src/components/command-palette/scss/variables.scss +0 -42
  1357. package/src/components/composer/index.ts +0 -117
  1358. package/src/components/composer/scss/index.scss +0 -105
  1359. package/src/components/composer/scss/variables.scss +0 -82
  1360. package/src/components/composer/svg/arrow-up.svg +0 -1
  1361. package/src/components/contribution-heatmap/index.ts +0 -348
  1362. package/src/components/contribution-heatmap/scss/index.scss +0 -151
  1363. package/src/components/contribution-heatmap/scss/variables.scss +0 -39
  1364. package/src/components/date-range-picker/index.ts +0 -641
  1365. package/src/components/date-range-picker/scss/index.scss +0 -380
  1366. package/src/components/date-range-picker/scss/variables.scss +0 -22
  1367. package/src/components/dynamic-island/index.ts +0 -161
  1368. package/src/components/dynamic-island/scss/index.scss +0 -278
  1369. package/src/components/dynamic-island/scss/variables.scss +0 -39
  1370. package/src/components/email-typo-fix/index.ts +0 -615
  1371. package/src/components/email-typo-fix/scss/index.scss +0 -213
  1372. package/src/components/email-typo-fix/scss/variables.scss +0 -18
  1373. package/src/components/expanding-card/index.ts +0 -377
  1374. package/src/components/expanding-card/scss/index.scss +0 -232
  1375. package/src/components/expanding-card/scss/variables.scss +0 -22
  1376. package/src/components/feature-spotlight/index.ts +0 -437
  1377. package/src/components/feature-spotlight/scss/index.scss +0 -254
  1378. package/src/components/feature-spotlight/scss/variables.scss +0 -36
  1379. package/src/components/file-tree/index.ts +0 -319
  1380. package/src/components/file-tree/scss/index.scss +0 -138
  1381. package/src/components/file-tree/scss/variables.scss +0 -18
  1382. package/src/components/filter-grid/index.ts +0 -344
  1383. package/src/components/filter-grid/scss/index.scss +0 -142
  1384. package/src/components/filter-grid/scss/variables.scss +0 -41
  1385. package/src/components/gradient-text/index.ts +0 -26
  1386. package/src/components/gradient-text/scss/index.scss +0 -20
  1387. package/src/components/gradient-text/scss/variables.scss +0 -6
  1388. package/src/components/header/index.ts +0 -318
  1389. package/src/components/header/scss/index.scss +0 -508
  1390. package/src/components/header/scss/variables.scss +0 -21
  1391. package/src/components/hover-card/index.ts +0 -319
  1392. package/src/components/hover-card/scss/index.scss +0 -117
  1393. package/src/components/hover-card/scss/variables.scss +0 -25
  1394. package/src/components/kanban-board/index.ts +0 -326
  1395. package/src/components/kanban-board/scss/index.scss +0 -126
  1396. package/src/components/kanban-board/scss/variables.scss +0 -39
  1397. package/src/components/lightbox/index.ts +0 -594
  1398. package/src/components/lightbox/scss/index.scss +0 -194
  1399. package/src/components/lightbox/scss/variables.scss +0 -24
  1400. package/src/components/lightbox/spring.ts +0 -118
  1401. package/src/components/line-shadow-text/index.ts +0 -24
  1402. package/src/components/line-shadow-text/scss/index.scss +0 -45
  1403. package/src/components/line-shadow-text/scss/variables.scss +0 -6
  1404. package/src/components/log/index.ts +0 -156
  1405. package/src/components/log/scss/index.scss +0 -269
  1406. package/src/components/log/scss/variables.scss +0 -19
  1407. package/src/components/long-press/bind.ts +0 -159
  1408. package/src/components/long-press/button.ts +0 -46
  1409. package/src/components/long-press/index.ts +0 -6
  1410. package/src/components/long-press/scss/index.scss +0 -60
  1411. package/src/components/long-press/scss/variables.scss +0 -9
  1412. package/src/components/modal/index.ts +0 -91
  1413. package/src/components/modal/scss/index.scss +0 -81
  1414. package/src/components/modal/scss/variables.scss +0 -42
  1415. package/src/components/morphing-button/index.ts +0 -188
  1416. package/src/components/morphing-button/scss/index.scss +0 -154
  1417. package/src/components/morphing-button/scss/variables.scss +0 -21
  1418. package/src/components/morphing-nav/index.ts +0 -496
  1419. package/src/components/morphing-nav/scss/index.scss +0 -284
  1420. package/src/components/morphing-nav/scss/variables.scss +0 -36
  1421. package/src/components/multi-step-form/index.ts +0 -368
  1422. package/src/components/multi-step-form/scss/index.scss +0 -397
  1423. package/src/components/multi-step-form/scss/variables.scss +0 -22
  1424. package/src/components/nested-menu/index.ts +0 -446
  1425. package/src/components/nested-menu/scss/index.scss +0 -219
  1426. package/src/components/nested-menu/scss/variables.scss +0 -26
  1427. package/src/components/normalize/scss/index.scss +0 -35
  1428. package/src/components/notification-bell/index.ts +0 -102
  1429. package/src/components/notification-bell/scss/index.scss +0 -132
  1430. package/src/components/notification-bell/scss/variables.scss +0 -41
  1431. package/src/components/notification-bell/svg/bell.svg +0 -1
  1432. package/src/components/onboarding-checklist/index.ts +0 -252
  1433. package/src/components/onboarding-checklist/scss/index.scss +0 -414
  1434. package/src/components/onboarding-checklist/scss/variables.scss +0 -17
  1435. package/src/components/page-dots/index.ts +0 -137
  1436. package/src/components/page-dots/scss/index.scss +0 -95
  1437. package/src/components/page-dots/scss/variables.scss +0 -26
  1438. package/src/components/pagination/svg/arrow-left.svg +0 -1
  1439. package/src/components/pagination/svg/arrow-right.svg +0 -1
  1440. package/src/components/password/constants.ts +0 -4
  1441. package/src/components/password/index.ts +0 -97
  1442. package/src/components/password/scss/index.scss +0 -188
  1443. package/src/components/password/scss/variables.scss +0 -50
  1444. package/src/components/radio-cards/index.ts +0 -145
  1445. package/src/components/radio-cards/scss/index.scss +0 -232
  1446. package/src/components/radio-cards/scss/variables.scss +0 -32
  1447. package/src/components/range-filter/index.ts +0 -295
  1448. package/src/components/range-filter/scss/index.scss +0 -257
  1449. package/src/components/range-filter/scss/variables.scss +0 -20
  1450. package/src/components/range-slider/index.ts +0 -277
  1451. package/src/components/range-slider/scss/index.scss +0 -234
  1452. package/src/components/range-slider/scss/variables.scss +0 -26
  1453. package/src/components/reading-progress/index.ts +0 -160
  1454. package/src/components/reading-progress/scss/index.scss +0 -115
  1455. package/src/components/reading-progress/scss/variables.scss +0 -31
  1456. package/src/components/scroll-fade/index.ts +0 -131
  1457. package/src/components/scroll-fade/scss/index.scss +0 -104
  1458. package/src/components/scroll-fade/scss/variables.scss +0 -10
  1459. package/src/components/scroll-spine/index.ts +0 -355
  1460. package/src/components/scroll-spine/scss/index.scss +0 -209
  1461. package/src/components/scroll-spine/scss/variables.scss +0 -22
  1462. package/src/components/scroll-velocity/index.ts +0 -269
  1463. package/src/components/scroll-velocity/scss/index.scss +0 -29
  1464. package/src/components/scroll-velocity/scss/variables.scss +0 -3
  1465. package/src/components/scrub-input/index.ts +0 -339
  1466. package/src/components/scrub-input/scss/index.scss +0 -105
  1467. package/src/components/scrub-input/scss/variables.scss +0 -23
  1468. package/src/components/select-menu/index.ts +0 -499
  1469. package/src/components/select-menu/scss/index.scss +0 -192
  1470. package/src/components/select-menu/scss/variables.scss +0 -41
  1471. package/src/components/selection-toolbar/index.ts +0 -510
  1472. package/src/components/selection-toolbar/scss/index.scss +0 -221
  1473. package/src/components/selection-toolbar/scss/variables.scss +0 -24
  1474. package/src/components/settings/index.ts +0 -184
  1475. package/src/components/settings/scss/index.scss +0 -327
  1476. package/src/components/settings/scss/variables.scss +0 -50
  1477. package/src/components/settings/svg/close.svg +0 -1
  1478. package/src/components/settings/svg/saved.svg +0 -1
  1479. package/src/components/share-button/index.ts +0 -328
  1480. package/src/components/share-button/scss/index.scss +0 -191
  1481. package/src/components/share-button/scss/variables.scss +0 -24
  1482. package/src/components/sheet/index.ts +0 -170
  1483. package/src/components/sheet/scss/index.scss +0 -65
  1484. package/src/components/sheet/scss/variables.scss +0 -27
  1485. package/src/components/shiny-text/index.ts +0 -19
  1486. package/src/components/shiny-text/scss/index.scss +0 -32
  1487. package/src/components/shiny-text/scss/variables.scss +0 -7
  1488. package/src/components/shortcut-sheet/index.ts +0 -454
  1489. package/src/components/shortcut-sheet/scss/index.scss +0 -306
  1490. package/src/components/shortcut-sheet/scss/variables.scss +0 -36
  1491. package/src/components/sidebar/index.ts +0 -13
  1492. package/src/components/sidebar/scss/index.scss +0 -49
  1493. package/src/components/sidebar/scss/variables.scss +0 -20
  1494. package/src/components/slider/index.ts +0 -232
  1495. package/src/components/slider/scss/index.scss +0 -182
  1496. package/src/components/slider/scss/variables.scss +0 -15
  1497. package/src/components/sliding-tabs/index.ts +0 -291
  1498. package/src/components/sliding-tabs/scss/index.scss +0 -174
  1499. package/src/components/sliding-tabs/scss/variables.scss +0 -34
  1500. package/src/components/snap-carousel/index.ts +0 -324
  1501. package/src/components/snap-carousel/scss/index.scss +0 -174
  1502. package/src/components/snap-carousel/scss/variables.scss +0 -31
  1503. package/src/components/sparkline/index.ts +0 -234
  1504. package/src/components/sparkline/scss/index.scss +0 -169
  1505. package/src/components/sparkline/scss/variables.scss +0 -30
  1506. package/src/components/stacked-drawer/index.ts +0 -272
  1507. package/src/components/stacked-drawer/scss/index.scss +0 -122
  1508. package/src/components/stacked-drawer/scss/variables.scss +0 -20
  1509. package/src/components/stat-counter/index.ts +0 -337
  1510. package/src/components/stat-counter/scss/index.scss +0 -246
  1511. package/src/components/stat-counter/scss/variables.scss +0 -24
  1512. package/src/components/status-picker/index.ts +0 -323
  1513. package/src/components/status-picker/scss/index.scss +0 -290
  1514. package/src/components/status-picker/scss/variables.scss +0 -29
  1515. package/src/components/sticky-stack/index.ts +0 -313
  1516. package/src/components/sticky-stack/scss/index.scss +0 -167
  1517. package/src/components/sticky-stack/scss/variables.scss +0 -50
  1518. package/src/components/story-progress/index.ts +0 -247
  1519. package/src/components/story-progress/scss/index.scss +0 -205
  1520. package/src/components/story-progress/scss/variables.scss +0 -21
  1521. package/src/components/swipe-deck/index.ts +0 -438
  1522. package/src/components/swipe-deck/scss/index.scss +0 -275
  1523. package/src/components/swipe-deck/scss/variables.scss +0 -24
  1524. package/src/components/tabs/scss/index.scss +0 -62
  1525. package/src/components/tabs/scss/variables.scss +0 -4
  1526. package/src/components/tag-input/index.ts +0 -415
  1527. package/src/components/tag-input/scss/index.scss +0 -186
  1528. package/src/components/tag-input/scss/variables.scss +0 -30
  1529. package/src/components/task-list/index.ts +0 -137
  1530. package/src/components/task-list/scss/index.scss +0 -171
  1531. package/src/components/task-list/scss/variables.scss +0 -8
  1532. package/src/components/tasklist/constants.ts +0 -4
  1533. package/src/components/text/scss/variables.scss +0 -9
  1534. package/src/components/text-animate/index.ts +0 -142
  1535. package/src/components/text-animate/scss/index.scss +0 -106
  1536. package/src/components/text-animate/scss/variables.scss +0 -17
  1537. package/src/components/text-progress/index.ts +0 -170
  1538. package/src/components/text-progress/scss/index.scss +0 -148
  1539. package/src/components/text-progress/scss/variables.scss +0 -26
  1540. package/src/components/thumbnail/scss/index.scss +0 -62
  1541. package/src/components/thumbnail/scss/variables.scss +0 -19
  1542. package/src/components/toast/manager.ts +0 -342
  1543. package/src/components/toast/svg/check.svg +0 -1
  1544. package/src/components/toast/svg/chevron.svg +0 -1
  1545. package/src/components/toast/svg/close.svg +0 -1
  1546. package/src/components/toast/svg/copy.svg +0 -1
  1547. package/src/components/toast/svg/error.svg +0 -1
  1548. package/src/components/toast/svg/info.svg +0 -1
  1549. package/src/components/toast/svg/loading.svg +0 -1
  1550. package/src/components/toast/svg/success.svg +0 -1
  1551. package/src/components/toast/svg/warning.svg +0 -1
  1552. package/src/components/tooltip/context.ts +0 -96
  1553. package/src/components/tooltip/group.ts +0 -162
  1554. package/src/components/tooltip/options.ts +0 -33
  1555. package/src/components/tooltip/scss/_group.scss +0 -164
  1556. package/src/components/tree/index.ts +0 -259
  1557. package/src/components/tree/scss/index.scss +0 -105
  1558. package/src/components/tree/scss/variables.scss +0 -48
  1559. package/src/components/tree-view/index.ts +0 -285
  1560. package/src/components/tree-view/scss/index.scss +0 -169
  1561. package/src/components/tree-view/scss/variables.scss +0 -18
  1562. package/src/components/typewriter-retype/index.ts +0 -164
  1563. package/src/components/typewriter-retype/scss/index.scss +0 -142
  1564. package/src/components/typewriter-retype/scss/variables.scss +0 -46
  1565. package/src/components/undo-toast/index.ts +0 -359
  1566. package/src/components/undo-toast/scss/index.scss +0 -216
  1567. package/src/components/undo-toast/scss/variables.scss +0 -20
  1568. package/src/components/value-flash/index.ts +0 -121
  1569. package/src/components/value-flash/scss/index.scss +0 -193
  1570. package/src/components/value-flash/scss/variables.scss +0 -47
  1571. package/src/components/waitlist-join/index.ts +0 -545
  1572. package/src/components/waitlist-join/scss/index.scss +0 -401
  1573. package/src/components/waitlist-join/scss/variables.scss +0 -23
  1574. package/src/components/web-search/brands.ts +0 -155
  1575. package/src/components/web-search/index.ts +0 -316
  1576. package/src/components/web-search/scss/index.scss +0 -270
  1577. package/src/components/web-search/scss/variables.scss +0 -8
  1578. package/src/components/word-rotator/index.ts +0 -296
  1579. package/src/components/word-rotator/scss/index.scss +0 -33
  1580. package/src/components/word-rotator/scss/variables.scss +0 -7
  1581. package/src/css-utilities/absolute/scss/index.scss +0 -36
  1582. package/src/css-utilities/disabled/scss/index.scss +0 -4
  1583. package/src/css-utilities/hidden/scss/index.scss +0 -28
  1584. package/src/css-utilities/not-allowed/scss/index.scss +0 -7
  1585. package/src/css-utilities/tabular/scss/index.scss +0 -3
  1586. package/src/lib/index.scss +0 -7
  1587. package/src/lib/scss/breakpoint.scss +0 -41
  1588. package/src/lib/scss/color.scss +0 -1
  1589. package/src/lib/scss/list.scss +0 -77
  1590. package/src/lib/scss/string.scss +0 -34
  1591. package/src/tokens/index.scss +0 -9
  1592. package/storage/psd/Color Palette.psd +0 -0
  1593. /package/src/{lib → shared}/scss/css-variables.scss +0 -0
  1594. /package/src/{lib → shared}/scss/map.scss +0 -0
  1595. /package/src/{lib → shared}/scss/position.scss +0 -0
  1596. /package/{build/components/notification-bell → storage}/svg/bell.svg +0 -0
  1597. /package/{build/components/checkbox → storage}/svg/check.svg +0 -0
  1598. /package/{build/components/toast/svg/error.svg → storage/svg/circle-alert.svg} +0 -0
  1599. /package/{build/components/toast/svg/success.svg → storage/svg/circle-check.svg} +0 -0
  1600. /package/{build/components/toast/svg/loading.svg → storage/svg/spinner.svg} +0 -0
  1601. /package/{build/components/toast → storage}/svg/warning.svg +0 -0
@@ -0,0 +1,1631 @@
1
+ // The field's renderer. It touches no DOM, so the same code draws on the main thread or, through an OffscreenCanvas,
2
+ // inside a worker; everything it knows about the page arrives through its methods, all structured-clone safe.
3
+
4
+
5
+ type Box = { bottom: number, left: number, right: number, top: number };
6
+
7
+ // Maps world space onto the field: screen = world * zoom + (x, y).
8
+ type Camera = { x: number, y: number, zoom: number };
9
+
10
+ type Geo = Box & {
11
+ active: boolean;
12
+ cos: number;
13
+ cx: number;
14
+ cy: number;
15
+ ellipse: boolean;
16
+ hx: number;
17
+ hy: number;
18
+ id: string;
19
+ r: number;
20
+ sin: number;
21
+ };
22
+
23
+ // `x` and `y` centre the first drawn dot, one step beyond the top-left edge; `col` and `row` are its floor index.
24
+ type Lattice = { col: number, gap: number, row: number, scale: number, step: number, x: number, y: number };
25
+
26
+ type Link = {
27
+ motion: 'bounce' | 'loop' | 'still';
28
+ // Flattened x, y pairs in field px.
29
+ points: number[];
30
+ speed: number;
31
+ width: number;
32
+ };
33
+
34
+ type Path = {
35
+ along: Float64Array;
36
+ box: Box;
37
+ crest: number;
38
+ length: number;
39
+ motion: 0 | 1 | 2;
40
+ push: number;
41
+ sigma: number;
42
+ speed: number;
43
+ spread: number;
44
+ xs: Float64Array;
45
+ ys: Float64Array;
46
+ };
47
+
48
+ type Ring = { born: number, gain: number, held: boolean, id: number, life: number, shape: Geo | null, x: number, y: number };
49
+
50
+ type Rgb = [number, number, number];
51
+
52
+ type Scheduler = {
53
+ cancel(handle: number): void;
54
+ clear(handle: number): void;
55
+ frame(callback: () => void): number;
56
+ now(): number;
57
+ timer(callback: () => void, ms: number): number;
58
+ };
59
+
60
+ type Settings = {
61
+ base: number;
62
+ breathe: number;
63
+ brightness: number;
64
+ connected: boolean;
65
+ gap: number;
66
+ lineRadius: number;
67
+ pointerPush: number;
68
+ radius: number;
69
+ ripplePush: number;
70
+ still: boolean;
71
+ surfacePadding: number;
72
+ tint: number;
73
+ wander: boolean;
74
+ };
75
+
76
+ // Centre, unrotated size and turn of a surface in field px, as layout reports it.
77
+ type Shape = {
78
+ active: boolean;
79
+ ellipse: boolean;
80
+ height: number;
81
+ id: string;
82
+ radius: number;
83
+ rotation: number;
84
+ width: number;
85
+ x: number;
86
+ y: number;
87
+ };
88
+
89
+
90
+ const ALPHA_LEVELS = 32;
91
+
92
+ // Breath is slow enough that 22 frames a second reads as continuous; every vsync between would draw nothing new.
93
+ const BREATH_FRAME = 45;
94
+
95
+ // Share of a surface's halo added to the light around it; a carried surface gets all of it.
96
+ const HALO = 0.75;
97
+
98
+ // Pointer absence, in ms, before a wandering light takes over.
99
+ const IDLE = 1500;
100
+
101
+ const LINK_CREST = 44;
102
+
103
+ const LINK_FRAME = 40;
104
+
105
+ const LINK_LIFT = 0.55;
106
+
107
+ const LINK_SPEED = 160;
108
+
109
+ const LINK_WIDTH = 16;
110
+
111
+ // The floor under a camera scales by zoom ^ 0.4 within these bounds, so it reads as a plane below the content rather
112
+ // than a sticker on it, and never crowds into a wash or thins into scattered points.
113
+ const PARALLAX = { exponent: 0.4, max: 1.6, min: 0.7 };
114
+
115
+ const RIPPLE_LIFE = 1400;
116
+
117
+ // A press ring swells for this long, then holds until the press lets go.
118
+ const RIPPLE_RISE = 90;
119
+
120
+ const RIPPLE_SPEED = 0.52;
121
+
122
+ const RIPPLE_WIDTH = 36;
123
+
124
+ const RINGS = 6;
125
+
126
+ // A timed frame due within half a vsync is taken now, rather than spending a whole extra frame to reach it.
127
+ const SLACK = 8;
128
+
129
+ const TAU = Math.PI * 2;
130
+
131
+ const TINT_LEVELS = 5;
132
+
133
+ const BUCKETS = ALPHA_LEVELS * TINT_LEVELS;
134
+
135
+ // A canvas keeps every buffer it drew through until it is resized; after this long at rest it is, to hand them back.
136
+ const TRIM = 4000;
137
+
138
+ const ZOOM_WAVE = { gain: 0.4, interval: 250, life: 1000 };
139
+
140
+
141
+ function clamp(value: number, min: number, max: number) {
142
+ return Math.min(max, Math.max(min, value));
143
+ }
144
+
145
+ function falloff(distance: number, radius: number) {
146
+ if (radius <= 0 || distance >= radius) {
147
+ return 0;
148
+ }
149
+
150
+ let t = distance / radius;
151
+
152
+ return (1 - t * t) * (1 - t * t);
153
+ }
154
+
155
+ // Hashing a dot's floor index gives it the same breathing phase every frame and wherever the camera takes it.
156
+ function hash(a: number, b: number) {
157
+ let h = (a * 374761393 + b * 668265263) | 0;
158
+
159
+ h = Math.imul(h ^ (h >>> 13), 1274126177);
160
+
161
+ return ((h ^ (h >>> 16)) >>> 0) / 4294967296;
162
+ }
163
+
164
+ // Brings the dot centred at `centre` with floor index `index` to the first drawn one, whose centre sits in
165
+ // (-step, 0].
166
+ function axis(centre: number, step: number, index: number): [number, number] {
167
+ let cells = Math.floor(centre / step) + 1,
168
+ origin = centre - cells * step;
169
+
170
+ if (origin <= -step) {
171
+ origin += step;
172
+ cells -= 1;
173
+ }
174
+ else if (origin > 0) {
175
+ origin -= step;
176
+ cells += 1;
177
+ }
178
+
179
+ return [origin, index - cells];
180
+ }
181
+
182
+ function parallax(zoom: number) {
183
+ return clamp(zoom ** PARALLAX.exponent, PARALLAX.min, PARALLAX.max);
184
+ }
185
+
186
+ function overlaps(a: Box, b: Box) {
187
+ return a.left <= b.right && a.right >= b.left && a.top <= b.bottom && a.bottom >= b.top;
188
+ }
189
+
190
+ function geo(shape: Shape): Geo {
191
+ let angle = (shape.rotation % 360) * Math.PI / 180,
192
+ cos = Math.cos(angle),
193
+ sin = Math.sin(angle),
194
+ hx = shape.width / 2,
195
+ hy = shape.height / 2,
196
+ ex = shape.ellipse ? Math.sqrt(hx * hx * cos * cos + hy * hy * sin * sin) : Math.abs(cos) * hx + Math.abs(sin) * hy,
197
+ ey = shape.ellipse ? Math.sqrt(hx * hx * sin * sin + hy * hy * cos * cos) : Math.abs(sin) * hx + Math.abs(cos) * hy;
198
+
199
+ return {
200
+ active: shape.active,
201
+ bottom: shape.y + ey,
202
+ cos,
203
+ cx: shape.x,
204
+ cy: shape.y,
205
+ ellipse: shape.ellipse,
206
+ hx,
207
+ hy,
208
+ id: shape.id,
209
+ left: shape.x - ex,
210
+ r: shape.ellipse ? 0 : clamp(shape.radius, 0, Math.min(hx, hy)),
211
+ right: shape.x + ex,
212
+ sin,
213
+ top: shape.y - ey
214
+ };
215
+ }
216
+
217
+ // Thins a polyline to the points that bend it by more than half a pixel, so a densely sampled straight edge costs
218
+ // two points.
219
+ function simplify(points: number[]) {
220
+ let n = points.length / 2,
221
+ keep = new Uint8Array(n),
222
+ stack: number[] = [0, n - 1],
223
+ xs: number[] = [],
224
+ ys: number[] = [];
225
+
226
+ keep[0] = keep[n - 1] = 1;
227
+
228
+ while (stack.length) {
229
+ let i1 = stack.pop()!,
230
+ i0 = stack.pop()!,
231
+ ax = points[i0 * 2],
232
+ ay = points[i0 * 2 + 1],
233
+ sx = points[i1 * 2] - ax,
234
+ sy = points[i1 * 2 + 1] - ay,
235
+ length = Math.hypot(sx, sy) || 1,
236
+ far = 0,
237
+ at = -1;
238
+
239
+ for (let i = i0 + 1; i < i1; i++) {
240
+ let d = Math.abs((points[i * 2] - ax) * sy - (points[i * 2 + 1] - ay) * sx) / length;
241
+
242
+ if (d > far) {
243
+ far = d;
244
+ at = i;
245
+ }
246
+ }
247
+
248
+ if (far > 0.5 && at > 0) {
249
+ keep[at] = 1;
250
+ stack.push(i0, at, at, i1);
251
+ }
252
+ }
253
+
254
+ for (let i = 0; i < n; i++) {
255
+ if (keep[i]) {
256
+ xs.push(points[i * 2]);
257
+ ys.push(points[i * 2 + 1]);
258
+ }
259
+ }
260
+
261
+ return { xs: Float64Array.from(xs), ys: Float64Array.from(ys) };
262
+ }
263
+
264
+
265
+ const engine = (canvas: HTMLCanvasElement | OffscreenCanvas, scheduler: Scheduler) => {
266
+ // The field owns its canvas and never asks it for another kind of context, so 2d is always granted.
267
+ let ctx = canvas.getContext('2d') as CanvasRenderingContext2D | OffscreenCanvasRenderingContext2D,
268
+ accent: Rgb = [102, 131, 232],
269
+ base: Rgb = [128, 128, 128],
270
+ breathed = -Infinity,
271
+ camera: Camera | null = null,
272
+ cols = 0,
273
+ crests: Box[] = [],
274
+ damage: Box[] = [],
275
+ fills: string[] = [],
276
+ frame = 0,
277
+ full = true,
278
+ hand: { x: number, y: number } | null = null,
279
+ lattice: Lattice | null = null,
280
+ light = { box: null as Box | null, intensity: 0, x: 0, y: 0 },
281
+ linked = -Infinity,
282
+ now = scheduler.now(),
283
+ o: Settings | null = null,
284
+ painted = 0,
285
+ paths: Path[] = [],
286
+ pointer = { at: -Infinity, id: -1, inside: false, x: 0, y: 0 },
287
+ rings: Ring[] = [],
288
+ rows = 0,
289
+ shapes: Geo[] = [],
290
+ shown = true,
291
+ size = { dpr: 1, height: 0, width: 0 },
292
+ ticked = now,
293
+ timer = 0,
294
+ trim = 0,
295
+ wave = -Infinity;
296
+
297
+ // Grid buffers, regrown only when the dot count rises.
298
+ let bucket = new Uint16Array(0),
299
+ cells = new Uint32Array(0),
300
+ counts = new Uint32Array(BUCKETS + 1),
301
+ cursor = new Uint32Array(BUCKETS + 1),
302
+ dotAlpha = new Float32Array(0),
303
+ dotLight = new Float32Array(0),
304
+ lineLight = new Float32Array(0),
305
+ order = new Uint32Array(0),
306
+ px = new Float32Array(0),
307
+ py = new Float32Array(0),
308
+ seed = new Float32Array(0),
309
+ segment = new Uint32Array(0),
310
+ segmentBucket = new Uint16Array(0),
311
+ segmentOrder = new Uint32Array(0),
312
+ visible = new Uint8Array(0);
313
+
314
+ // Per-paint ring values, so each dot reads a radius instead of working it out.
315
+ let prepared = Array.from({ length: RINGS }, () => ({ amp: 0, radius: 0, shape: null as Geo | null, x: 0, y: 0 })),
316
+ preparedCount = 0;
317
+
318
+ // Scratch outputs of `measure` and `nearest`, kept off the heap in the per-dot loop.
319
+ let along = 0,
320
+ gapX = 0,
321
+ gapY = 0,
322
+ offX = 0,
323
+ offY = 0;
324
+
325
+ function animated() {
326
+ return !!o && !o.still;
327
+ }
328
+
329
+ function arm() {
330
+ painted = now;
331
+
332
+ if (!trim) {
333
+ trim = scheduler.timer(release, TRIM);
334
+ }
335
+ }
336
+
337
+ function breathing() {
338
+ return animated() && o!.breathe > 0;
339
+ }
340
+
341
+ function build(link: Link): Path | null {
342
+ if (link.points.length < 4) {
343
+ return null;
344
+ }
345
+
346
+ let { xs, ys } = simplify(link.points),
347
+ n = xs.length,
348
+ distance = new Float64Array(n),
349
+ box = { bottom: ys[0], left: xs[0], right: xs[0], top: ys[0] };
350
+
351
+ for (let i = 1; i < n; i++) {
352
+ distance[i] = distance[i - 1] + Math.hypot(xs[i] - xs[i - 1], ys[i] - ys[i - 1]);
353
+ box.bottom = Math.max(box.bottom, ys[i]);
354
+ box.left = Math.min(box.left, xs[i]);
355
+ box.right = Math.max(box.right, xs[i]);
356
+ box.top = Math.min(box.top, ys[i]);
357
+ }
358
+
359
+ let length = distance[n - 1];
360
+
361
+ if (length < 1) {
362
+ return null;
363
+ }
364
+
365
+ let step = lattice?.step ?? o!.gap,
366
+ width = link.width > 0 ? link.width : LINK_WIDTH,
367
+ sigma = width / 2,
368
+ spread = Math.max(sigma, step),
369
+ push = Math.min(width / 3, step / 5),
370
+ pad = 3 * spread + push + step * 2;
371
+
372
+ return {
373
+ along: distance,
374
+ box: { bottom: box.bottom + pad, left: box.left - pad, right: box.right + pad, top: box.top - pad },
375
+ crest: -Infinity,
376
+ length,
377
+ motion: link.motion === 'loop' ? 1 : link.motion === 'bounce' ? 2 : 0,
378
+ push,
379
+ sigma,
380
+ speed: link.speed > 0 ? link.speed : LINK_SPEED,
381
+ spread,
382
+ xs,
383
+ ys
384
+ };
385
+ }
386
+
387
+ function crestBox(path: Path): Box | null {
388
+ let reach = 2.5 * LINK_CREST,
389
+ lo = path.crest - reach,
390
+ hi = path.crest + reach,
391
+ box = { bottom: -Infinity, left: Infinity, right: -Infinity, top: Infinity };
392
+
393
+ for (let i = 0, n = path.xs.length - 1; i < n; i++) {
394
+ let a0 = path.along[i],
395
+ a1 = path.along[i + 1];
396
+
397
+ if (a1 < lo || a0 > hi || a1 <= a0) {
398
+ continue;
399
+ }
400
+
401
+ for (let e = 0; e < 2; e++) {
402
+ let u = e ? Math.min(1, (hi - a0) / (a1 - a0)) : Math.max(0, (lo - a0) / (a1 - a0)),
403
+ x = path.xs[i] + (path.xs[i + 1] - path.xs[i]) * u,
404
+ y = path.ys[i] + (path.ys[i + 1] - path.ys[i]) * u;
405
+
406
+ box.bottom = Math.max(box.bottom, y);
407
+ box.left = Math.min(box.left, x);
408
+ box.right = Math.max(box.right, x);
409
+ box.top = Math.min(box.top, y);
410
+ }
411
+ }
412
+
413
+ if (box.left > box.right) {
414
+ return null;
415
+ }
416
+
417
+ return pad(box, 3 * path.spread + path.push + (lattice?.step ?? 0) * 2);
418
+ }
419
+
420
+ function draw(c0: number, c1: number, r0: number, r1: number) {
421
+ let settings = o!,
422
+ { step, x: lx, y: ly } = lattice!,
423
+ padding = settings.surfacePadding,
424
+ clear = Math.max(2, step * 0.8 + padding),
425
+ band = Math.max(clear + step, step * 3 + padding),
426
+ halo = band + step * 1.5,
427
+ push = Math.min(settings.radius, step * 5),
428
+ peak = Math.min(1, settings.brightness * 2.5),
429
+ time = now / 1000,
430
+ breathe = breathing() ? settings.breathe : 0,
431
+ lit = light.intensity > 0.001,
432
+ m = 0;
433
+
434
+ for (let j = r0; j < r1; j++) {
435
+ for (let i = c0; i < c1; i++) {
436
+ let k = j * cols + i,
437
+ x = lx + i * step,
438
+ y = ly + j * step,
439
+ dot = 0,
440
+ glow = 0,
441
+ line = 0,
442
+ shown = 1;
443
+
444
+ cells[m++] = k;
445
+
446
+ // Each surface clears the dots it covers and squeezes the band around it outward, so the grid bends
447
+ // around its edge and follows its corners.
448
+ for (let s = 0, n = shapes.length; s < n; s++) {
449
+ let shape = shapes[s];
450
+
451
+ if (x < shape.left - halo || x > shape.right + halo || y < shape.top - halo || y > shape.bottom + halo) {
452
+ continue;
453
+ }
454
+
455
+ let d = measure(x, y, shape);
456
+
457
+ if (d <= 0) {
458
+ shown = 0;
459
+ break;
460
+ }
461
+
462
+ if (d < halo) {
463
+ let g = 1 - d / halo;
464
+
465
+ glow = Math.max(glow, g * g * (shape.active ? 1 : HALO));
466
+ }
467
+
468
+ if (d < band) {
469
+ let scale = (clear + d * (band - clear) / band) / d - 1;
470
+
471
+ x += gapX * scale;
472
+ y += gapY * scale;
473
+ }
474
+ }
475
+
476
+ dot = glow;
477
+ line = glow;
478
+
479
+ if (shown) {
480
+ for (let p = 0, n = paths.length; p < n; p++) {
481
+ let path = paths[p],
482
+ box = path.box;
483
+
484
+ if (x < box.left || x > box.right || y < box.top || y > box.bottom) {
485
+ continue;
486
+ }
487
+
488
+ let d2 = nearest(x, y, path),
489
+ w2 = path.spread * path.spread;
490
+
491
+ if (d2 > 9 * w2) {
492
+ continue;
493
+ }
494
+
495
+ let moving = path.motion !== 0 && path.crest !== -Infinity,
496
+ pulse = 0,
497
+ reach = 3 * path.sigma;
498
+
499
+ if (moving) {
500
+ let off = along - path.crest;
501
+
502
+ pulse = Math.exp(-(off * off) / (2 * LINK_CREST * LINK_CREST));
503
+ }
504
+
505
+ if (d2 < reach * reach) {
506
+ let t = 1 - Math.sqrt(d2) / reach,
507
+ vein = t * t * (3 - 2 * t) * (moving ? 0.45 + 0.55 * pulse : 0.8);
508
+
509
+ dot = Math.max(dot, vein);
510
+ line = Math.max(line, vein);
511
+ }
512
+
513
+ dot += Math.exp(-d2 / (2 * path.sigma * path.sigma))
514
+ * (moving ? LINK_LIFT / 3 + (1 - LINK_LIFT / 3) * pulse : LINK_LIFT) * 0.5;
515
+
516
+ // The fabric parts a little either side of the vein, so the lattice bends round it.
517
+ if (d2 > 0.0001) {
518
+ let s = path.push * Math.exp(0.5 - d2 / (2 * w2)) / path.spread;
519
+
520
+ x += offX * s;
521
+ y += offY * s;
522
+ }
523
+ }
524
+ }
525
+
526
+ if (shown && lit) {
527
+ let dx = x - light.x,
528
+ dy = y - light.y,
529
+ d = Math.sqrt(dx * dx + dy * dy);
530
+
531
+ dot += falloff(d, settings.radius) * light.intensity;
532
+ line += falloff(d, settings.lineRadius) * light.intensity;
533
+
534
+ if (pointer.inside && settings.pointerPush && d > 0.001 && d < push) {
535
+ let s = settings.pointerPush * (1 - d / push) * (1 - d / push) * light.intensity / d;
536
+
537
+ x += dx * s;
538
+ y += dy * s;
539
+ }
540
+ }
541
+
542
+ for (let r = 0, n = shown ? preparedCount : 0; r < n; r++) {
543
+ let ring = prepared[r],
544
+ dx = x - ring.x,
545
+ dy = y - ring.y,
546
+ d = 0;
547
+
548
+ if (ring.shape) {
549
+ d = measure(x, y, ring.shape);
550
+
551
+ if (d <= 0) {
552
+ continue;
553
+ }
554
+
555
+ dx = gapX;
556
+ dy = gapY;
557
+ }
558
+ else {
559
+ d = Math.sqrt(dx * dx + dy * dy);
560
+ }
561
+
562
+ let w = (d - ring.radius) / RIPPLE_WIDTH;
563
+
564
+ if (w > 4 || w < -4) {
565
+ continue;
566
+ }
567
+
568
+ let strength = Math.exp(-w * w) * ring.amp;
569
+
570
+ if (d > 0.001) {
571
+ x += dx / d * settings.ripplePush * strength;
572
+ y += dy / d * settings.ripplePush * strength;
573
+ }
574
+
575
+ dot += strength * 0.8;
576
+ line += strength * 0.6;
577
+ }
578
+
579
+ let breath = breathe
580
+ ? 1 - breathe * 0.5 * (1 + Math.sin(time * 1.3 + seed[k] * TAU))
581
+ : 1;
582
+
583
+ dot = Math.min(1, dot);
584
+ px[k] = x;
585
+ py[k] = y;
586
+ visible[k] = shown;
587
+ dotLight[k] = dot;
588
+ dotAlpha[k] = shown * breath * (settings.base + (peak - settings.base) * dot);
589
+ lineLight[k] = shown * Math.min(1, line);
590
+ }
591
+ }
592
+
593
+ // Lines and dots are bucketed by opacity and tint so each bucket draws as a single path.
594
+ if (settings.connected) {
595
+ let segments = 0;
596
+
597
+ for (let j = r0; j < r1; j++) {
598
+ for (let i = c0; i < c1; i++) {
599
+ let k = j * cols + i;
600
+
601
+ if (i + 1 < c1) {
602
+ segments = queue(k, k + 1, segments, settings.brightness);
603
+ }
604
+
605
+ if (j + 1 < r1) {
606
+ segments = queue(k, k + cols, segments, settings.brightness);
607
+ }
608
+ }
609
+ }
610
+
611
+ sort(segmentBucket, segmentOrder, segments);
612
+ ctx.lineWidth = 1;
613
+
614
+ for (let b = 0; b < BUCKETS; b++) {
615
+ let from = counts[b],
616
+ to = counts[b + 1];
617
+
618
+ if (from === to) {
619
+ continue;
620
+ }
621
+
622
+ ctx.beginPath();
623
+
624
+ for (let s = from; s < to; s++) {
625
+ let a = segment[segmentOrder[s] * 2],
626
+ c = segment[segmentOrder[s] * 2 + 1];
627
+
628
+ trace(a, c, step);
629
+ }
630
+
631
+ ctx.globalAlpha = (b % ALPHA_LEVELS) / (ALPHA_LEVELS - 1);
632
+ ctx.strokeStyle = fills[Math.floor(b / ALPHA_LEVELS)];
633
+ ctx.stroke();
634
+ }
635
+ }
636
+
637
+ counts.fill(0);
638
+
639
+ for (let s = 0; s < m; s++) {
640
+ let k = cells[s],
641
+ alpha = Math.round(dotAlpha[k] * (ALPHA_LEVELS - 1));
642
+
643
+ if (alpha < 1) {
644
+ bucket[s] = BUCKETS;
645
+ continue;
646
+ }
647
+
648
+ bucket[s] = Math.round(dotLight[k] * (TINT_LEVELS - 1)) * ALPHA_LEVELS + Math.min(alpha, ALPHA_LEVELS - 1);
649
+ counts[bucket[s] + 1]++;
650
+ }
651
+
652
+ sort(bucket, order, m);
653
+
654
+ for (let b = 0; b < BUCKETS; b++) {
655
+ let from = counts[b],
656
+ to = counts[b + 1];
657
+
658
+ if (from === to) {
659
+ continue;
660
+ }
661
+
662
+ let r = 0.85 + 0.45 * Math.floor(b / ALPHA_LEVELS) / (TINT_LEVELS - 1);
663
+
664
+ ctx.beginPath();
665
+
666
+ for (let s = from; s < to; s++) {
667
+ let k = cells[order[s]];
668
+
669
+ ctx.moveTo(px[k] + r, py[k]);
670
+ ctx.arc(px[k], py[k], r, 0, TAU);
671
+ }
672
+
673
+ ctx.globalAlpha = (b % ALPHA_LEVELS) / (ALPHA_LEVELS - 1);
674
+ ctx.fillStyle = fills[Math.floor(b / ALPHA_LEVELS)];
675
+ ctx.fill();
676
+ }
677
+
678
+ counts.fill(0);
679
+ ctx.globalAlpha = 1;
680
+ }
681
+
682
+ function grow(n: number) {
683
+ if (px.length >= n) {
684
+ return;
685
+ }
686
+
687
+ bucket = new Uint16Array(n);
688
+ cells = new Uint32Array(n);
689
+ dotAlpha = new Float32Array(n);
690
+ dotLight = new Float32Array(n);
691
+ lineLight = new Float32Array(n);
692
+ order = new Uint32Array(n);
693
+ px = new Float32Array(n);
694
+ py = new Float32Array(n);
695
+ seed = new Float32Array(n);
696
+ segment = new Uint32Array(n * 4);
697
+ segmentBucket = new Uint16Array(n * 2);
698
+ segmentOrder = new Uint32Array(n * 2);
699
+ visible = new Uint8Array(n);
700
+ }
701
+
702
+ function layout() {
703
+ if (!o || !size.width || !size.height) {
704
+ return;
705
+ }
706
+
707
+ let gap = Math.max(6, o.gap),
708
+ { height, width } = size;
709
+
710
+ if (!camera) {
711
+ let c = Math.floor(width / gap) + 2,
712
+ r = Math.floor(height / gap) + 2;
713
+
714
+ lattice = {
715
+ col: 0,
716
+ gap,
717
+ row: 0,
718
+ scale: 1,
719
+ step: gap,
720
+ x: (width - (c - 1) * gap) / 2,
721
+ y: (height - (r - 1) * gap) / 2
722
+ };
723
+ }
724
+ else if (!lattice || lattice.gap !== gap) {
725
+ lattice = seeded(gap, camera);
726
+ }
727
+
728
+ let { step, x, y } = lattice!;
729
+
730
+ cols = Math.floor((width - x) / step) + 2;
731
+ rows = Math.floor((height - y) / step) + 2;
732
+ grow(cols * rows);
733
+
734
+ for (let j = 0; j < rows; j++) {
735
+ for (let i = 0; i < cols; i++) {
736
+ seed[j * cols + i] = hash(lattice!.col + i, lattice!.row + j);
737
+ }
738
+ }
739
+
740
+ for (let i = 0, n = paths.length; i < n; i++) {
741
+ paths[i].spread = Math.max(paths[i].sigma, step);
742
+ }
743
+
744
+ full = true;
745
+ }
746
+
747
+ // Distance from (x, y) to the shape's edge, or 0 inside it; `gapX`/`gapY` receive the offset from the nearest edge
748
+ // point, which is the direction a dot is pushed.
749
+ function measure(x: number, y: number, shape: Geo) {
750
+ let dx = x - shape.cx,
751
+ dy = y - shape.cy,
752
+ qx = shape.cos * dx + shape.sin * dy,
753
+ qy = shape.cos * dy - shape.sin * dx,
754
+ d = 0,
755
+ ex = 0,
756
+ ey = 0;
757
+
758
+ if (shape.ellipse) {
759
+ let ux = qx / shape.hx,
760
+ uy = qy / shape.hy,
761
+ k0 = Math.sqrt(ux * ux + uy * uy),
762
+ gx = ux / shape.hx,
763
+ gy = uy / shape.hy,
764
+ k1 = Math.sqrt(gx * gx + gy * gy);
765
+
766
+ if (k0 <= 1 || k1 === 0) {
767
+ return 0;
768
+ }
769
+
770
+ d = k0 * (k0 - 1) / k1;
771
+ ex = gx / k1;
772
+ ey = gy / k1;
773
+ }
774
+ else {
775
+ let ix = shape.hx - shape.r,
776
+ iy = shape.hy - shape.r,
777
+ ox = qx > ix ? qx - ix : qx < -ix ? qx + ix : 0,
778
+ oy = qy > iy ? qy - iy : qy < -iy ? qy + iy : 0,
779
+ length = Math.sqrt(ox * ox + oy * oy);
780
+
781
+ if (length <= shape.r) {
782
+ return 0;
783
+ }
784
+
785
+ d = length - shape.r;
786
+ ex = ox / length;
787
+ ey = oy / length;
788
+ }
789
+
790
+ gapX = (shape.cos * ex - shape.sin * ey) * d;
791
+ gapY = (shape.sin * ex + shape.cos * ey) * d;
792
+
793
+ return d;
794
+ }
795
+
796
+ // Squared distance to the path; `along` receives how far along it the nearest point lies and `offX`/`offY` the
797
+ // offset from that point.
798
+ function nearest(x: number, y: number, path: Path) {
799
+ let best = Infinity,
800
+ { xs, ys } = path;
801
+
802
+ for (let i = 0, n = xs.length - 1; i < n; i++) {
803
+ let ax = xs[i],
804
+ ay = ys[i],
805
+ bx = xs[i + 1],
806
+ by = ys[i + 1],
807
+ gx = x < Math.min(ax, bx) ? Math.min(ax, bx) - x : x > Math.max(ax, bx) ? x - Math.max(ax, bx) : 0,
808
+ gy = y < Math.min(ay, by) ? Math.min(ay, by) - y : y > Math.max(ay, by) ? y - Math.max(ay, by) : 0;
809
+
810
+ if (gx * gx + gy * gy >= best) {
811
+ continue;
812
+ }
813
+
814
+ let sx = bx - ax,
815
+ sy = by - ay,
816
+ length2 = sx * sx + sy * sy,
817
+ u = length2 > 0 ? clamp(((x - ax) * sx + (y - ay) * sy) / length2, 0, 1) : 0,
818
+ dx = x - (ax + sx * u),
819
+ dy = y - (ay + sy * u),
820
+ d2 = dx * dx + dy * dy;
821
+
822
+ if (d2 < best) {
823
+ along = path.along[i] + u * (path.along[i + 1] - path.along[i]);
824
+ best = d2;
825
+ offX = dx;
826
+ offY = dy;
827
+ }
828
+ }
829
+
830
+ return best;
831
+ }
832
+
833
+ function pad(box: Box, amount: number): Box {
834
+ return { bottom: box.bottom + amount, left: box.left - amount, right: box.right + amount, top: box.top - amount };
835
+ }
836
+
837
+ function paint(boxes: Box[] | null) {
838
+ if (!o || !lattice) {
839
+ return;
840
+ }
841
+
842
+ let { dpr, height, width } = size,
843
+ step = lattice.step;
844
+
845
+ prepare();
846
+ ctx.setTransform(dpr, 0, 0, dpr, 0, 0);
847
+
848
+ if (boxes) {
849
+ boxes = merge(boxes);
850
+
851
+ let area = 0;
852
+
853
+ for (let i = 0, n = boxes.length; i < n; i++) {
854
+ area += (boxes[i].right - boxes[i].left) * (boxes[i].bottom - boxes[i].top);
855
+ }
856
+
857
+ if (area > width * height * 0.6) {
858
+ boxes = null;
859
+ }
860
+ }
861
+
862
+ if (!boxes) {
863
+ ctx.clearRect(0, 0, width, height);
864
+ draw(0, cols, 0, rows);
865
+ full = false;
866
+ return;
867
+ }
868
+
869
+ // Dots anywhere near a box may reach into it once displaced, and a line from outside can cross it.
870
+ let reach = step * 3 + Math.abs(o.surfacePadding) + o.ripplePush + o.pointerPush + 4;
871
+
872
+ for (let i = 0, n = boxes.length; i < n; i++) {
873
+ let box = boxes[i],
874
+ left = Math.max(0, Math.floor(box.left * dpr) / dpr),
875
+ top = Math.max(0, Math.floor(box.top * dpr) / dpr),
876
+ right = Math.min(width, Math.ceil(box.right * dpr) / dpr),
877
+ bottom = Math.min(height, Math.ceil(box.bottom * dpr) / dpr);
878
+
879
+ if (right <= left || bottom <= top) {
880
+ continue;
881
+ }
882
+
883
+ ctx.save();
884
+ ctx.beginPath();
885
+ ctx.rect(left, top, right - left, bottom - top);
886
+ ctx.clip();
887
+ ctx.clearRect(left, top, right - left, bottom - top);
888
+ draw(
889
+ clamp(Math.floor((left - reach - lattice.x) / step), 0, cols),
890
+ clamp(Math.ceil((right + reach - lattice.x) / step) + 1, 0, cols),
891
+ clamp(Math.floor((top - reach - lattice.y) / step), 0, rows),
892
+ clamp(Math.ceil((bottom + reach - lattice.y) / step) + 1, 0, rows)
893
+ );
894
+ ctx.restore();
895
+ }
896
+ }
897
+
898
+ function lightBox(): Box | null {
899
+ if (light.intensity < 0.001 || !o || !lattice) {
900
+ return null;
901
+ }
902
+
903
+ let r = Math.max(o.radius, o.lineRadius) + o.pointerPush + lattice.step * 2;
904
+
905
+ return { bottom: light.y + r, left: light.x - r, right: light.x + r, top: light.y - r };
906
+ }
907
+
908
+ function merge(boxes: Box[]) {
909
+ let result: Box[] = [];
910
+
911
+ for (let i = 0, n = boxes.length; i < n; i++) {
912
+ let box = { ...boxes[i] };
913
+
914
+ for (let j = 0; j < result.length;) {
915
+ if (overlaps(box, result[j])) {
916
+ let other = result.splice(j, 1)[0];
917
+
918
+ box.bottom = Math.max(box.bottom, other.bottom);
919
+ box.left = Math.min(box.left, other.left);
920
+ box.right = Math.max(box.right, other.right);
921
+ box.top = Math.min(box.top, other.top);
922
+ j = 0;
923
+ }
924
+ else {
925
+ j++;
926
+ }
927
+ }
928
+
929
+ result.push(box);
930
+ }
931
+
932
+ return result;
933
+ }
934
+
935
+ function prepare() {
936
+ preparedCount = 0;
937
+
938
+ for (let i = 0, n = rings.length; i < n && preparedCount < RINGS; i++) {
939
+ let ring = rings[i],
940
+ age = ring.held ? Math.min(now - ring.born, RIPPLE_RISE) : now - ring.born,
941
+ fade = 1 - age / ring.life,
942
+ amp = fade * fade * Math.min(1, age / RIPPLE_RISE) * ring.gain;
943
+
944
+ if (age < 0 || fade <= 0 || amp < 0.002) {
945
+ continue;
946
+ }
947
+
948
+ let slot = prepared[preparedCount++];
949
+
950
+ slot.amp = amp;
951
+ slot.radius = (ring.shape ? Math.max(0, age - RIPPLE_RISE) : age) * RIPPLE_SPEED;
952
+ slot.shape = ring.shape;
953
+ slot.x = ring.x;
954
+ slot.y = ring.y;
955
+ }
956
+
957
+ for (let i = 0, n = paths.length; i < n; i++) {
958
+ let path = paths[i];
959
+
960
+ if (!path.motion || !animated()) {
961
+ path.crest = -Infinity;
962
+ continue;
963
+ }
964
+
965
+ let span = path.length + 4 * LINK_CREST,
966
+ travel = (linked / 1000 * path.speed) % (path.motion === 2 ? 2 * span : span);
967
+
968
+ path.crest = (path.motion === 2 && travel > span ? 2 * span - travel : travel) - 2 * LINK_CREST;
969
+ }
970
+ }
971
+
972
+ function queue(a: number, b: number, segments: number, brightness: number) {
973
+ let lit = Math.min(lineLight[a], lineLight[b]),
974
+ alpha = Math.round(lit * brightness * (ALPHA_LEVELS - 1));
975
+
976
+ if (alpha < 1) {
977
+ return segments;
978
+ }
979
+
980
+ segment[segments * 2] = a;
981
+ segment[segments * 2 + 1] = b;
982
+ segmentBucket[segments] = Math.round(lit * (TINT_LEVELS - 1)) * ALPHA_LEVELS + Math.min(alpha, ALPHA_LEVELS - 1);
983
+ counts[segmentBucket[segments] + 1]++;
984
+
985
+ return segments + 1;
986
+ }
987
+
988
+ function recolor() {
989
+ let tint = clamp(o?.tint ?? 0, 0, 1);
990
+
991
+ for (let t = 0; t < TINT_LEVELS; t++) {
992
+ let mix = tint * t / (TINT_LEVELS - 1);
993
+
994
+ fills[t] = `rgb(${
995
+ Math.round(base[0] + (accent[0] - base[0]) * mix)
996
+ } ${
997
+ Math.round(base[1] + (accent[1] - base[1]) * mix)
998
+ } ${
999
+ Math.round(base[2] + (accent[2] - base[2]) * mix)
1000
+ })`;
1001
+ }
1002
+
1003
+ full = true;
1004
+ }
1005
+
1006
+ function release() {
1007
+ trim = 0;
1008
+
1009
+ let idle = scheduler.now() - painted;
1010
+
1011
+ if (idle < TRIM || frame || timer) {
1012
+ trim = scheduler.timer(release, Math.max(16, TRIM - idle));
1013
+ return;
1014
+ }
1015
+
1016
+ let { width } = canvas;
1017
+
1018
+ canvas.width = width + 1;
1019
+ canvas.width = width;
1020
+ paint(null);
1021
+ }
1022
+
1023
+ // Starts a travelling ring, making room by dropping the oldest ring that is not held.
1024
+ function ring(next: Omit<Ring, 'born'>) {
1025
+ if (rings.length >= RINGS) {
1026
+ let index = rings.findIndex((r) => !r.held);
1027
+
1028
+ if (index === -1) {
1029
+ return;
1030
+ }
1031
+
1032
+ rings.splice(index, 1);
1033
+ }
1034
+
1035
+ rings.push({ ...next, born: now });
1036
+ }
1037
+
1038
+ function seeded(gap: number, view: Camera): Lattice {
1039
+ let scale = parallax(view.zoom),
1040
+ step = gap * scale,
1041
+ [x, col] = axis(view.x + step / 2, step, 0),
1042
+ [y, row] = axis(view.y + step / 2, step, 0);
1043
+
1044
+ return { col, gap, row, scale, step, x, y };
1045
+ }
1046
+
1047
+ function snooze() {
1048
+ let due = Infinity;
1049
+
1050
+ if (breathing()) {
1051
+ due = breathed + BREATH_FRAME;
1052
+ }
1053
+
1054
+ if (paths.some((path) => path.motion)) {
1055
+ due = Math.min(due, linked + LINK_FRAME);
1056
+ }
1057
+
1058
+ // Timers run late more often than frames do, so it rings a little early and lets the frame check the time.
1059
+ let wait = due - scheduler.now() - 10;
1060
+
1061
+ if (wait <= 0) {
1062
+ frame = scheduler.frame(tick);
1063
+ return;
1064
+ }
1065
+
1066
+ timer = scheduler.timer(() => {
1067
+ timer = 0;
1068
+ frame = scheduler.frame(tick);
1069
+ }, wait);
1070
+ }
1071
+
1072
+ // Counting sort: `counts` holds per-bucket tallies offset by one and becomes each bucket's start index.
1073
+ function sort(keys: Uint16Array, into: Uint32Array, n: number) {
1074
+ for (let b = 1; b <= BUCKETS; b++) {
1075
+ counts[b] += counts[b - 1];
1076
+ }
1077
+
1078
+ cursor.set(counts);
1079
+
1080
+ for (let i = 0; i < n; i++) {
1081
+ if (keys[i] < BUCKETS) {
1082
+ into[cursor[keys[i]]++] = i;
1083
+ }
1084
+ }
1085
+ }
1086
+
1087
+ function tick() {
1088
+ frame = 0;
1089
+
1090
+ if (!o || !lattice || !shown) {
1091
+ return;
1092
+ }
1093
+
1094
+ now = scheduler.now();
1095
+
1096
+ let dt = Math.min(64, now - ticked) / 1000,
1097
+ animate = animated(),
1098
+ before = lightBox(),
1099
+ flowing = animate && paths.some((path) => path.motion),
1100
+ intensity = 0,
1101
+ tx = light.x,
1102
+ ty = light.y,
1103
+ wandering = false;
1104
+
1105
+ ticked = now;
1106
+
1107
+ if (animate && pointer.inside) {
1108
+ intensity = 1;
1109
+ tx = pointer.x;
1110
+ ty = pointer.y;
1111
+ }
1112
+ else if (animate && o.wander && now - pointer.at > IDLE) {
1113
+ let t = now / 1000,
1114
+ { height, width } = size;
1115
+
1116
+ intensity = 0.85;
1117
+ tx = width / 2 + Math.cos(t * 0.23) * width * 0.34 + Math.sin(t * 0.57) * width * 0.08;
1118
+ ty = height / 2 + Math.sin(t * 0.31) * height * 0.3 + Math.cos(t * 0.49) * height * 0.08;
1119
+ wandering = true;
1120
+ }
1121
+
1122
+ // A light fading in from nothing starts where it is aimed rather than sweeping across from its last spot.
1123
+ if (light.intensity < 0.01 && intensity > 0) {
1124
+ light.x = tx;
1125
+ light.y = ty;
1126
+ }
1127
+
1128
+ let follow = 1 - Math.exp(-dt * (wandering ? 2.5 : 16)),
1129
+ fade = 1 - Math.exp(-dt * 6),
1130
+ lastIntensity = light.intensity,
1131
+ lastX = light.x,
1132
+ lastY = light.y;
1133
+
1134
+ light.intensity += (intensity - light.intensity) * fade;
1135
+ light.x += (tx - light.x) * follow;
1136
+ light.y += (ty - light.y) * follow;
1137
+
1138
+ let settled = Math.abs(intensity - light.intensity) < 0.002
1139
+ && (light.intensity < 0.002 || (Math.abs(tx - light.x) < 0.1 && Math.abs(ty - light.y) < 0.1));
1140
+
1141
+ if (!animate) {
1142
+ light.intensity = 0;
1143
+ rings.length = 0;
1144
+ }
1145
+ else if (settled) {
1146
+ light.intensity = intensity;
1147
+
1148
+ if (intensity) {
1149
+ light.x = tx;
1150
+ light.y = ty;
1151
+ }
1152
+ }
1153
+
1154
+ for (let i = rings.length - 1; i >= 0; i--) {
1155
+ let r = rings[i];
1156
+
1157
+ if (!r.held && now - r.born >= r.life) {
1158
+ rings.splice(i, 1);
1159
+ }
1160
+ }
1161
+
1162
+ let moved = light.intensity !== lastIntensity || light.x !== lastX || light.y !== lastY,
1163
+ travelling = rings.some((r) => !r.held || now - r.born < RIPPLE_RISE + 16),
1164
+ crest = flowing && now - linked >= LINK_FRAME - SLACK,
1165
+ breath = breathing() && now - breathed >= BREATH_FRAME - SLACK,
1166
+ // A breathing field changes everywhere with time, so a partial repaint would leave a seam at its edge.
1167
+ painting = full || travelling || breath || (breathing() && (moved || crest || damage.length > 0));
1168
+
1169
+ if (crest) {
1170
+ linked = now;
1171
+ }
1172
+
1173
+ if (painting) {
1174
+ paint(null);
1175
+ breathed = now;
1176
+ crests.length = 0;
1177
+
1178
+ for (let i = 0, n = paths.length; i < n; i++) {
1179
+ let box = paths[i].motion ? crestBox(paths[i]) : null;
1180
+
1181
+ if (box) {
1182
+ crests.push(box);
1183
+ }
1184
+ }
1185
+ }
1186
+ else {
1187
+ let boxes = damage;
1188
+
1189
+ if (moved) {
1190
+ let after = lightBox();
1191
+
1192
+ if (before) {
1193
+ boxes.push(before);
1194
+ }
1195
+
1196
+ if (after) {
1197
+ boxes.push(after);
1198
+ }
1199
+ }
1200
+
1201
+ if (crest) {
1202
+ boxes.push(...crests);
1203
+ crests.length = 0;
1204
+ prepare();
1205
+
1206
+ for (let i = 0, n = paths.length; i < n; i++) {
1207
+ let box = paths[i].motion ? crestBox(paths[i]) : null;
1208
+
1209
+ if (box) {
1210
+ boxes.push(box);
1211
+ crests.push(box);
1212
+ }
1213
+ }
1214
+ }
1215
+
1216
+ if (boxes.length) {
1217
+ paint(boxes);
1218
+ }
1219
+ }
1220
+
1221
+ damage = [];
1222
+ arm();
1223
+
1224
+ if (!settled || travelling || wandering) {
1225
+ frame = scheduler.frame(tick);
1226
+ }
1227
+ else if (breathing() || flowing) {
1228
+ snooze();
1229
+ }
1230
+ }
1231
+
1232
+ // Draws one lattice edge, curved through its neighbours once they are displaced so the fabric bends rather than
1233
+ // kinks.
1234
+ function trace(a: number, b: number, step: number) {
1235
+ let ax = px[a],
1236
+ ay = py[a],
1237
+ bx = px[b],
1238
+ by = py[b],
1239
+ horizontal = b === a + 1,
1240
+ before = a - (horizontal ? 1 : cols),
1241
+ after = b + (horizontal ? 1 : cols),
1242
+ hasBefore = (horizontal ? a % cols > 0 : before >= 0) && visible[before],
1243
+ hasAfter = (horizontal ? b % cols + 1 < cols : after < cols * rows) && visible[after],
1244
+ lx = hasBefore ? px[before] : 2 * ax - bx,
1245
+ ly = hasBefore ? py[before] : 2 * ay - by,
1246
+ rx = hasAfter ? px[after] : 2 * bx - ax,
1247
+ ry = hasAfter ? py[after] : 2 * by - ay,
1248
+ t1x = (bx - lx) * 0.5,
1249
+ t1y = (by - ly) * 0.5,
1250
+ t2x = (rx - ax) * 0.5,
1251
+ t2y = (ry - ay) * 0.5,
1252
+ chordX = bx - ax,
1253
+ chordY = by - ay,
1254
+ limit = 2.25 * Math.max(step * step, chordX * chordX + chordY * chordY),
1255
+ l1 = t1x * t1x + t1y * t1y,
1256
+ l2 = t2x * t2x + t2y * t2y;
1257
+
1258
+ if (l1 > limit) {
1259
+ let s = Math.sqrt(limit / l1);
1260
+
1261
+ t1x *= s;
1262
+ t1y *= s;
1263
+ }
1264
+
1265
+ if (l2 > limit) {
1266
+ let s = Math.sqrt(limit / l2);
1267
+
1268
+ t2x *= s;
1269
+ t2y *= s;
1270
+ }
1271
+
1272
+ let c1x = ax + t1x / 3,
1273
+ c1y = ay + t1y / 3,
1274
+ c2x = bx - t2x / 3,
1275
+ c2y = by - t2y / 3;
1276
+
1277
+ ctx.moveTo(ax, ay);
1278
+
1279
+ if (
1280
+ Math.abs(c1x - (2 * ax + bx) / 3) + Math.abs(c1y - (2 * ay + by) / 3)
1281
+ + Math.abs(c2x - (ax + 2 * bx) / 3) + Math.abs(c2y - (ay + 2 * by) / 3) < 0.01
1282
+ ) {
1283
+ ctx.lineTo(bx, by);
1284
+ }
1285
+ else {
1286
+ ctx.bezierCurveTo(c1x, c1y, c2x, c2y, bx, by);
1287
+ }
1288
+ }
1289
+
1290
+ function wake() {
1291
+ if (!o || !lattice || !shown || !size.width) {
1292
+ return;
1293
+ }
1294
+
1295
+ if (timer) {
1296
+ scheduler.clear(timer);
1297
+ timer = 0;
1298
+ }
1299
+
1300
+ if (!frame) {
1301
+ frame = scheduler.frame(tick);
1302
+ }
1303
+ }
1304
+
1305
+ function restored() {
1306
+ full = true;
1307
+ wake();
1308
+ }
1309
+
1310
+ // The GPU can take a canvas back; the browser returns it blank, and only a full paint refills it.
1311
+ (canvas as EventTarget).addEventListener('contextrestored', restored);
1312
+
1313
+ return {
1314
+ camera(next: Camera | null) {
1315
+ if (next && !(next.zoom > 0 && Number.isFinite(next.x) && Number.isFinite(next.y) && Number.isFinite(next.zoom))) {
1316
+ next = null;
1317
+ }
1318
+
1319
+ if (!next) {
1320
+ if (camera) {
1321
+ camera = null;
1322
+ layout();
1323
+ wake();
1324
+ }
1325
+
1326
+ return;
1327
+ }
1328
+
1329
+ if (camera && camera.x === next.x && camera.y === next.y && camera.zoom === next.zoom) {
1330
+ return;
1331
+ }
1332
+
1333
+ let gap = Math.max(6, o?.gap ?? 22);
1334
+
1335
+ if (!camera || !lattice || lattice.gap !== gap) {
1336
+ lattice = seeded(gap, next);
1337
+ }
1338
+ else {
1339
+ // The floor is carried from camera to camera, taking the same pan and its own damped scale about the
1340
+ // point the zoom kept still; recomputing it from the world origin would slide it under the pointer.
1341
+ let r = next.zoom / camera.zoom,
1342
+ fixed: { x: number, y: number } | null = null;
1343
+
1344
+ if (Math.abs(r - 1) > 1e-6) {
1345
+ let x = (next.x - r * camera.x) / (1 - r),
1346
+ y = (next.y - r * camera.y) / (1 - r);
1347
+
1348
+ if (Number.isFinite(x) && Number.isFinite(y)) {
1349
+ fixed = { x, y };
1350
+ }
1351
+ }
1352
+
1353
+ let anchor = fixed && fixed.x >= 0 && fixed.y >= 0 && fixed.x <= size.width && fixed.y <= size.height
1354
+ ? fixed
1355
+ : hand ?? { x: size.width / 2, y: size.height / 2 },
1356
+ scale = parallax(next.zoom),
1357
+ q = scale / lattice.scale,
1358
+ step = gap * scale,
1359
+ tx = next.x - r * camera.x - anchor.x * (1 - r),
1360
+ ty = next.y - r * camera.y - anchor.y * (1 - r),
1361
+ [x, col] = axis(anchor.x + (lattice.x - anchor.x) * q + tx, step, lattice.col),
1362
+ [y, row] = axis(anchor.y + (lattice.y - anchor.y) * q + ty, step, lattice.row);
1363
+
1364
+ lattice = { col, gap, row, scale, step, x, y };
1365
+
1366
+ if (fixed && animated() && now - wave >= ZOOM_WAVE.interval) {
1367
+ wave = now;
1368
+ ring({ gain: ZOOM_WAVE.gain, held: false, id: -1, life: ZOOM_WAVE.life, shape: null, x: anchor.x, y: anchor.y });
1369
+ }
1370
+ }
1371
+
1372
+ camera = { ...next };
1373
+ layout();
1374
+ wake();
1375
+ },
1376
+ cancel(id: number) {
1377
+ let index = rings.findIndex((r) => r.held && r.id === id);
1378
+
1379
+ if (index !== -1) {
1380
+ rings.splice(index, 1);
1381
+ full = true;
1382
+ wake();
1383
+ }
1384
+ },
1385
+ configure(next: Settings) {
1386
+ let previous = o;
1387
+
1388
+ o = next;
1389
+
1390
+ if (!previous || previous.gap !== next.gap) {
1391
+ layout();
1392
+ }
1393
+
1394
+ if (!previous || previous.tint !== next.tint) {
1395
+ recolor();
1396
+ }
1397
+
1398
+ full = true;
1399
+ wake();
1400
+ },
1401
+ dispose() {
1402
+ shown = false;
1403
+ scheduler.cancel(frame);
1404
+ scheduler.clear(timer);
1405
+ scheduler.clear(trim);
1406
+ frame = timer = trim = 0;
1407
+ (canvas as EventTarget).removeEventListener('contextrestored', restored);
1408
+ },
1409
+ // Runs a pending frame now, so a frame's layout reads and its paint land in the same vsync.
1410
+ flush() {
1411
+ if (frame) {
1412
+ scheduler.cancel(frame);
1413
+ tick();
1414
+ }
1415
+ },
1416
+ links(next: Link[]) {
1417
+ let built: Path[] = [];
1418
+
1419
+ for (let i = 0, n = next.length; i < n; i++) {
1420
+ let path = o ? build(next[i]) : null;
1421
+
1422
+ if (path) {
1423
+ built.push(path);
1424
+ }
1425
+ }
1426
+
1427
+ for (let i = 0, n = paths.length; i < n; i++) {
1428
+ damage.push(paths[i].box);
1429
+ }
1430
+
1431
+ for (let i = 0, n = built.length; i < n; i++) {
1432
+ damage.push(built[i].box);
1433
+ }
1434
+
1435
+ damage.push(...crests);
1436
+ crests.length = 0;
1437
+ paths = built;
1438
+ wake();
1439
+ },
1440
+ pointer(id: number, x: number, y: number, inside: boolean) {
1441
+ pointer.at = now = scheduler.now();
1442
+ pointer.id = id;
1443
+ pointer.inside = inside;
1444
+
1445
+ if (inside) {
1446
+ hand = { x, y };
1447
+ pointer.x = x;
1448
+ pointer.y = y;
1449
+ }
1450
+
1451
+ for (let i = 0, n = rings.length; i < n; i++) {
1452
+ let r = rings[i];
1453
+
1454
+ if (r.held && r.id === id && !r.shape) {
1455
+ r.x = x;
1456
+ r.y = y;
1457
+ full = true;
1458
+ }
1459
+ }
1460
+
1461
+ wake();
1462
+ },
1463
+ press(id: number, x: number, y: number) {
1464
+ now = scheduler.now();
1465
+
1466
+ if (!animated()) {
1467
+ return;
1468
+ }
1469
+
1470
+ ring({ gain: 1, held: true, id, life: RIPPLE_LIFE, shape: null, x, y });
1471
+ wake();
1472
+ },
1473
+ recolor(nextBase: Rgb, nextAccent: Rgb) {
1474
+ base = nextBase;
1475
+ accent = nextAccent;
1476
+ recolor();
1477
+ wake();
1478
+ },
1479
+ release(id: number) {
1480
+ now = scheduler.now();
1481
+
1482
+ for (let i = 0, n = rings.length; i < n; i++) {
1483
+ let r = rings[i];
1484
+
1485
+ // Carries on from the radius it held, as if it had never stopped.
1486
+ if (r.held && r.id === id && !r.shape) {
1487
+ r.born = now - RIPPLE_RISE;
1488
+ r.held = false;
1489
+ }
1490
+ }
1491
+
1492
+ wake();
1493
+ },
1494
+ resize(width: number, height: number, dpr: number) {
1495
+ if (width === size.width && height === size.height && dpr === size.dpr) {
1496
+ return;
1497
+ }
1498
+
1499
+ canvas.height = Math.max(1, Math.round(height * dpr));
1500
+ canvas.width = Math.max(1, Math.round(width * dpr));
1501
+ size = { dpr, height, width };
1502
+ layout();
1503
+ wake();
1504
+ },
1505
+ ripple(x: number, y: number) {
1506
+ now = scheduler.now();
1507
+
1508
+ if (animated()) {
1509
+ ring({ gain: 1, held: false, id: -1, life: RIPPLE_LIFE, shape: null, x, y });
1510
+ wake();
1511
+ }
1512
+ },
1513
+ surfaces(next: Shape[]) {
1514
+ let previous = new Map<string, Geo>(),
1515
+ built: Geo[] = [],
1516
+ changed = 0,
1517
+ grip = o && lattice ? Math.max(o.surfacePadding, 0) + lattice.step * 6 + o.ripplePush + o.pointerPush : 0;
1518
+
1519
+ for (let i = 0, n = shapes.length; i < n; i++) {
1520
+ previous.set(shapes[i].id || String(i), shapes[i]);
1521
+ }
1522
+
1523
+ for (let i = 0, n = next.length; i < n; i++) {
1524
+ let shape = geo(next[i]),
1525
+ key = shape.id || String(i),
1526
+ old = previous.get(key);
1527
+
1528
+ previous.delete(key);
1529
+
1530
+ // Kept by identity when unchanged, so a ring rising from its outline still finds it.
1531
+ if (
1532
+ old && old.cx === shape.cx && old.cy === shape.cy && old.hx === shape.hx && old.hy === shape.hy
1533
+ && old.r === shape.r && old.cos === shape.cos && old.sin === shape.sin
1534
+ && old.ellipse === shape.ellipse && old.active === shape.active
1535
+ ) {
1536
+ built.push(old);
1537
+ continue;
1538
+ }
1539
+
1540
+ built.push(shape);
1541
+ changed++;
1542
+ damage.push(pad(shape, grip));
1543
+
1544
+ if (old) {
1545
+ damage.push(pad(old, grip));
1546
+ }
1547
+
1548
+ // A surface taken up sends a ring out from its outline, which travels on once it is set down.
1549
+ if (animated() && shape.active && !old?.active) {
1550
+ ring({ gain: 1, held: true, id: -1, life: RIPPLE_LIFE, shape, x: 0, y: 0 });
1551
+ }
1552
+
1553
+ for (let r = 0, m = rings.length; r < m; r++) {
1554
+ let outline = rings[r];
1555
+
1556
+ if (outline.shape && outline.shape === old) {
1557
+ outline.shape = shape;
1558
+
1559
+ if (outline.held && !shape.active) {
1560
+ outline.born = scheduler.now() - RIPPLE_RISE;
1561
+ outline.held = false;
1562
+ }
1563
+ }
1564
+ }
1565
+ }
1566
+
1567
+ for (let [, old] of previous) {
1568
+ changed++;
1569
+ damage.push(pad(old, grip));
1570
+ rings = rings.filter((r) => r.shape !== old);
1571
+ }
1572
+
1573
+ shapes = built;
1574
+
1575
+ if (changed) {
1576
+ wake();
1577
+ }
1578
+ },
1579
+ visible(next: boolean) {
1580
+ if (next === shown) {
1581
+ return;
1582
+ }
1583
+
1584
+ shown = next;
1585
+
1586
+ if (next) {
1587
+ wake();
1588
+ }
1589
+ else {
1590
+ scheduler.cancel(frame);
1591
+ scheduler.clear(timer);
1592
+ frame = timer = 0;
1593
+ }
1594
+ }
1595
+ };
1596
+ };
1597
+
1598
+ // One clock for both threads: a worker's `performance` starts from its own origin, so both read the page's.
1599
+ const scheduler = (): Scheduler => {
1600
+ let raf = typeof requestAnimationFrame === 'function';
1601
+
1602
+ return {
1603
+ cancel: (handle) => {
1604
+ if (!handle) {
1605
+ return;
1606
+ }
1607
+
1608
+ if (raf) {
1609
+ cancelAnimationFrame(handle);
1610
+ }
1611
+ else {
1612
+ clearTimeout(handle);
1613
+ }
1614
+ },
1615
+ clear: (handle) => {
1616
+ if (handle) {
1617
+ clearTimeout(handle);
1618
+ }
1619
+ },
1620
+ frame: (callback) => raf
1621
+ ? requestAnimationFrame(callback)
1622
+ : setTimeout(callback, 16) as unknown as number,
1623
+ now: () => performance.timeOrigin + performance.now(),
1624
+ timer: (callback, ms) => setTimeout(callback, ms) as unknown as number
1625
+ };
1626
+ };
1627
+
1628
+
1629
+ export default engine;
1630
+ export { scheduler };
1631
+ export type { Camera, Link, Rgb, Settings, Shape };