@dryui/ui 0.2.2 → 0.3.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 (433) hide show
  1. package/dist/adjust/adjust.svelte +1 -1
  2. package/dist/aurora/aurora.svelte +58 -11
  3. package/dist/aurora/aurora.svelte.d.ts +1 -0
  4. package/dist/aurora/index.d.ts +2 -0
  5. package/dist/diagram/diagram.svelte +769 -0
  6. package/dist/diagram/diagram.svelte.d.ts +10 -0
  7. package/dist/diagram/edge-routing.d.ts +9 -0
  8. package/dist/diagram/edge-routing.js +281 -0
  9. package/dist/diagram/index.d.ts +9 -0
  10. package/dist/diagram/index.js +1 -0
  11. package/dist/diagram/layout.d.ts +2 -0
  12. package/dist/diagram/layout.js +985 -0
  13. package/dist/diagram/types.d.ts +196 -0
  14. package/dist/displacement/displacement.svelte +39 -3
  15. package/dist/drag-and-drop/context.svelte.d.ts +1 -0
  16. package/dist/drag-and-drop/drag-and-drop-group.svelte +37 -0
  17. package/dist/drag-and-drop/drag-and-drop-group.svelte.d.ts +8 -0
  18. package/dist/drag-and-drop/drag-and-drop-handle.svelte +2 -0
  19. package/dist/drag-and-drop/drag-and-drop-item.svelte +25 -6
  20. package/dist/drag-and-drop/drag-and-drop-root.svelte +624 -34
  21. package/dist/drag-and-drop/group-context.svelte.d.ts +13 -0
  22. package/dist/drag-and-drop/group-context.svelte.js +8 -0
  23. package/dist/drag-and-drop/index.d.ts +2 -0
  24. package/dist/drag-and-drop/index.js +3 -1
  25. package/dist/drawer/drawer-content.svelte +2 -1
  26. package/dist/drawer/drawer-footer.svelte +1 -1
  27. package/dist/gradient-mesh/gradient-mesh.svelte +42 -5
  28. package/dist/halftone/halftone.svelte +16 -36
  29. package/dist/index.d.ts +1 -4
  30. package/dist/index.js +1 -2
  31. package/dist/logo-mark/logo-mark.svelte +2 -2
  32. package/dist/noise/noise.svelte +2 -2
  33. package/dist/shader-canvas/presets.js +1 -1
  34. package/dist/shader-canvas/shader-canvas.svelte +4 -1
  35. package/dist/sidebar/sidebar-footer.svelte +5 -4
  36. package/dist/spotlight/spotlight.svelte +42 -4
  37. package/dist/themes/aurora.css +229 -0
  38. package/dist/themes/dark.css +134 -0
  39. package/dist/themes/default.css +76 -0
  40. package/dist/themes/midnight.css +142 -0
  41. package/dist/themes/terminal.css +175 -0
  42. package/package.json +22 -27
  43. package/skills/dryui/SKILL.md +1 -0
  44. package/dist/system-map/index.d.ts +0 -17
  45. package/dist/system-map/index.js +0 -1
  46. package/dist/system-map/system-map.svelte +0 -311
  47. package/dist/system-map/system-map.svelte.d.ts +0 -25
  48. package/dist/system-map/types.d.ts +0 -99
  49. package/dist/thumbnail/_layout-content.svelte +0 -89
  50. package/dist/thumbnail/_layout-content.svelte.d.ts +0 -9
  51. package/dist/thumbnail/_layout-footer.svelte +0 -54
  52. package/dist/thumbnail/_layout-footer.svelte.d.ts +0 -9
  53. package/dist/thumbnail/_layout-header.svelte +0 -76
  54. package/dist/thumbnail/_layout-header.svelte.d.ts +0 -9
  55. package/dist/thumbnail/_layout-sidebar.svelte +0 -75
  56. package/dist/thumbnail/_layout-sidebar.svelte.d.ts +0 -9
  57. package/dist/thumbnail/accordion.svelte +0 -144
  58. package/dist/thumbnail/accordion.svelte.d.ts +0 -7
  59. package/dist/thumbnail/add-on-selector.svelte +0 -213
  60. package/dist/thumbnail/add-on-selector.svelte.d.ts +0 -7
  61. package/dist/thumbnail/affix-group.svelte +0 -55
  62. package/dist/thumbnail/affix-group.svelte.d.ts +0 -7
  63. package/dist/thumbnail/alert-dialog.svelte +0 -100
  64. package/dist/thumbnail/alert-dialog.svelte.d.ts +0 -7
  65. package/dist/thumbnail/alert.svelte +0 -79
  66. package/dist/thumbnail/alert.svelte.d.ts +0 -7
  67. package/dist/thumbnail/alpha-slider.svelte +0 -55
  68. package/dist/thumbnail/alpha-slider.svelte.d.ts +0 -7
  69. package/dist/thumbnail/amenity-grid.svelte +0 -236
  70. package/dist/thumbnail/amenity-grid.svelte.d.ts +0 -7
  71. package/dist/thumbnail/app-frame.svelte.d.ts +0 -7
  72. package/dist/thumbnail/apply-size.d.ts +0 -3
  73. package/dist/thumbnail/apply-size.js +0 -14
  74. package/dist/thumbnail/aspect-ratio.svelte +0 -64
  75. package/dist/thumbnail/aspect-ratio.svelte.d.ts +0 -7
  76. package/dist/thumbnail/aurora.svelte +0 -88
  77. package/dist/thumbnail/aurora.svelte.d.ts +0 -7
  78. package/dist/thumbnail/avatar-group.svelte.d.ts +0 -7
  79. package/dist/thumbnail/avatar.svelte +0 -60
  80. package/dist/thumbnail/avatar.svelte.d.ts +0 -7
  81. package/dist/thumbnail/backdrop.svelte +0 -73
  82. package/dist/thumbnail/backdrop.svelte.d.ts +0 -7
  83. package/dist/thumbnail/badge.svelte +0 -100
  84. package/dist/thumbnail/badge.svelte.d.ts +0 -7
  85. package/dist/thumbnail/booking-confirmation.svelte +0 -109
  86. package/dist/thumbnail/booking-confirmation.svelte.d.ts +0 -7
  87. package/dist/thumbnail/breadcrumb.svelte +0 -80
  88. package/dist/thumbnail/breadcrumb.svelte.d.ts +0 -7
  89. package/dist/thumbnail/button-group.svelte +0 -76
  90. package/dist/thumbnail/button-group.svelte.d.ts +0 -7
  91. package/dist/thumbnail/button.svelte +0 -62
  92. package/dist/thumbnail/button.svelte.d.ts +0 -7
  93. package/dist/thumbnail/calendar.svelte +0 -86
  94. package/dist/thumbnail/calendar.svelte.d.ts +0 -7
  95. package/dist/thumbnail/card.svelte +0 -113
  96. package/dist/thumbnail/card.svelte.d.ts +0 -7
  97. package/dist/thumbnail/carousel.svelte +0 -111
  98. package/dist/thumbnail/carousel.svelte.d.ts +0 -7
  99. package/dist/thumbnail/chart.svelte +0 -93
  100. package/dist/thumbnail/chart.svelte.d.ts +0 -7
  101. package/dist/thumbnail/chat-message.svelte.d.ts +0 -7
  102. package/dist/thumbnail/chat-thread.svelte +0 -140
  103. package/dist/thumbnail/chat-thread.svelte.d.ts +0 -7
  104. package/dist/thumbnail/checkbox.svelte +0 -71
  105. package/dist/thumbnail/checkbox.svelte.d.ts +0 -7
  106. package/dist/thumbnail/chip-group.svelte +0 -79
  107. package/dist/thumbnail/chip-group.svelte.d.ts +0 -7
  108. package/dist/thumbnail/chip.svelte +0 -76
  109. package/dist/thumbnail/chip.svelte.d.ts +0 -7
  110. package/dist/thumbnail/chromatic-shift.svelte +0 -55
  111. package/dist/thumbnail/chromatic-shift.svelte.d.ts +0 -7
  112. package/dist/thumbnail/clipboard.svelte +0 -68
  113. package/dist/thumbnail/clipboard.svelte.d.ts +0 -7
  114. package/dist/thumbnail/code-block.svelte +0 -125
  115. package/dist/thumbnail/code-block.svelte.d.ts +0 -7
  116. package/dist/thumbnail/collapsible.svelte +0 -101
  117. package/dist/thumbnail/collapsible.svelte.d.ts +0 -7
  118. package/dist/thumbnail/color-picker.svelte +0 -108
  119. package/dist/thumbnail/color-picker.svelte.d.ts +0 -7
  120. package/dist/thumbnail/combobox.svelte +0 -122
  121. package/dist/thumbnail/combobox.svelte.d.ts +0 -7
  122. package/dist/thumbnail/command-palette.svelte +0 -134
  123. package/dist/thumbnail/command-palette.svelte.d.ts +0 -7
  124. package/dist/thumbnail/commerce-header.svelte +0 -55
  125. package/dist/thumbnail/commerce-header.svelte.d.ts +0 -7
  126. package/dist/thumbnail/comparison-table.svelte +0 -193
  127. package/dist/thumbnail/comparison-table.svelte.d.ts +0 -7
  128. package/dist/thumbnail/container.svelte +0 -119
  129. package/dist/thumbnail/container.svelte.d.ts +0 -7
  130. package/dist/thumbnail/context-menu.svelte +0 -108
  131. package/dist/thumbnail/context-menu.svelte.d.ts +0 -7
  132. package/dist/thumbnail/country-select.svelte +0 -111
  133. package/dist/thumbnail/country-select.svelte.d.ts +0 -7
  134. package/dist/thumbnail/currency-selector.svelte +0 -111
  135. package/dist/thumbnail/currency-selector.svelte.d.ts +0 -7
  136. package/dist/thumbnail/data-grid.svelte +0 -230
  137. package/dist/thumbnail/data-grid.svelte.d.ts +0 -7
  138. package/dist/thumbnail/date-field.svelte +0 -132
  139. package/dist/thumbnail/date-field.svelte.d.ts +0 -7
  140. package/dist/thumbnail/date-picker.svelte +0 -126
  141. package/dist/thumbnail/date-picker.svelte.d.ts +0 -7
  142. package/dist/thumbnail/date-range-picker.svelte +0 -100
  143. package/dist/thumbnail/date-range-picker.svelte.d.ts +0 -7
  144. package/dist/thumbnail/date-time-input.svelte +0 -182
  145. package/dist/thumbnail/date-time-input.svelte.d.ts +0 -7
  146. package/dist/thumbnail/description-list.svelte +0 -142
  147. package/dist/thumbnail/description-list.svelte.d.ts +0 -7
  148. package/dist/thumbnail/dialog.svelte +0 -136
  149. package/dist/thumbnail/dialog.svelte.d.ts +0 -7
  150. package/dist/thumbnail/displacement.svelte +0 -55
  151. package/dist/thumbnail/displacement.svelte.d.ts +0 -7
  152. package/dist/thumbnail/drag-and-drop.svelte +0 -139
  153. package/dist/thumbnail/drag-and-drop.svelte.d.ts +0 -7
  154. package/dist/thumbnail/drawer.svelte +0 -112
  155. package/dist/thumbnail/drawer.svelte.d.ts +0 -7
  156. package/dist/thumbnail/drop-zone.svelte +0 -55
  157. package/dist/thumbnail/drop-zone.svelte.d.ts +0 -7
  158. package/dist/thumbnail/dropdown-menu.svelte +0 -128
  159. package/dist/thumbnail/dropdown-menu.svelte.d.ts +0 -7
  160. package/dist/thumbnail/empty-state.svelte.d.ts +0 -7
  161. package/dist/thumbnail/fare-class-picker.svelte +0 -225
  162. package/dist/thumbnail/fare-class-picker.svelte.d.ts +0 -7
  163. package/dist/thumbnail/feature-split-section.svelte.d.ts +0 -7
  164. package/dist/thumbnail/field.svelte +0 -82
  165. package/dist/thumbnail/field.svelte.d.ts +0 -7
  166. package/dist/thumbnail/fieldset.svelte +0 -123
  167. package/dist/thumbnail/fieldset.svelte.d.ts +0 -7
  168. package/dist/thumbnail/file-select.svelte +0 -90
  169. package/dist/thumbnail/file-select.svelte.d.ts +0 -7
  170. package/dist/thumbnail/file-upload.svelte +0 -84
  171. package/dist/thumbnail/file-upload.svelte.d.ts +0 -7
  172. package/dist/thumbnail/filter-sidebar.svelte +0 -201
  173. package/dist/thumbnail/filter-sidebar.svelte.d.ts +0 -7
  174. package/dist/thumbnail/flexible-dates-grid.svelte +0 -210
  175. package/dist/thumbnail/flexible-dates-grid.svelte.d.ts +0 -7
  176. package/dist/thumbnail/flight-timeline.svelte +0 -155
  177. package/dist/thumbnail/flight-timeline.svelte.d.ts +0 -7
  178. package/dist/thumbnail/flip-card.svelte +0 -128
  179. package/dist/thumbnail/flip-card.svelte.d.ts +0 -7
  180. package/dist/thumbnail/float-button.svelte +0 -63
  181. package/dist/thumbnail/float-button.svelte.d.ts +0 -7
  182. package/dist/thumbnail/focus-trap.svelte +0 -110
  183. package/dist/thumbnail/focus-trap.svelte.d.ts +0 -7
  184. package/dist/thumbnail/format-bytes.svelte +0 -51
  185. package/dist/thumbnail/format-bytes.svelte.d.ts +0 -7
  186. package/dist/thumbnail/format-date.svelte +0 -51
  187. package/dist/thumbnail/format-date.svelte.d.ts +0 -7
  188. package/dist/thumbnail/format-number.svelte +0 -51
  189. package/dist/thumbnail/format-number.svelte.d.ts +0 -7
  190. package/dist/thumbnail/gauge.svelte +0 -90
  191. package/dist/thumbnail/gauge.svelte.d.ts +0 -7
  192. package/dist/thumbnail/glass-surface.svelte.d.ts +0 -7
  193. package/dist/thumbnail/glow.svelte +0 -55
  194. package/dist/thumbnail/glow.svelte.d.ts +0 -7
  195. package/dist/thumbnail/gradient-mesh.svelte +0 -55
  196. package/dist/thumbnail/gradient-mesh.svelte.d.ts +0 -7
  197. package/dist/thumbnail/guest-room-selector.svelte +0 -214
  198. package/dist/thumbnail/guest-room-selector.svelte.d.ts +0 -7
  199. package/dist/thumbnail/halftone.svelte +0 -55
  200. package/dist/thumbnail/halftone.svelte.d.ts +0 -7
  201. package/dist/thumbnail/heading.svelte +0 -91
  202. package/dist/thumbnail/heading.svelte.d.ts +0 -7
  203. package/dist/thumbnail/hotel-gallery.svelte +0 -117
  204. package/dist/thumbnail/hotel-gallery.svelte.d.ts +0 -7
  205. package/dist/thumbnail/hotkey.svelte +0 -108
  206. package/dist/thumbnail/hotkey.svelte.d.ts +0 -7
  207. package/dist/thumbnail/hover-card.svelte +0 -117
  208. package/dist/thumbnail/hover-card.svelte.d.ts +0 -7
  209. package/dist/thumbnail/icon.svelte +0 -55
  210. package/dist/thumbnail/icon.svelte.d.ts +0 -7
  211. package/dist/thumbnail/image-comparison.svelte +0 -96
  212. package/dist/thumbnail/image-comparison.svelte.d.ts +0 -7
  213. package/dist/thumbnail/image.svelte +0 -74
  214. package/dist/thumbnail/image.svelte.d.ts +0 -7
  215. package/dist/thumbnail/index.d.ts +0 -12
  216. package/dist/thumbnail/index.js +0 -359
  217. package/dist/thumbnail/infinite-scroll.svelte +0 -129
  218. package/dist/thumbnail/infinite-scroll.svelte.d.ts +0 -7
  219. package/dist/thumbnail/input-group.svelte +0 -55
  220. package/dist/thumbnail/input-group.svelte.d.ts +0 -7
  221. package/dist/thumbnail/input.svelte +0 -74
  222. package/dist/thumbnail/input.svelte.d.ts +0 -7
  223. package/dist/thumbnail/itinerary-timeline.svelte +0 -143
  224. package/dist/thumbnail/itinerary-timeline.svelte.d.ts +0 -7
  225. package/dist/thumbnail/kbd.svelte +0 -112
  226. package/dist/thumbnail/kbd.svelte.d.ts +0 -7
  227. package/dist/thumbnail/label.svelte +0 -54
  228. package/dist/thumbnail/label.svelte.d.ts +0 -7
  229. package/dist/thumbnail/layout-header-content-footer.svelte +0 -64
  230. package/dist/thumbnail/layout-header-content-footer.svelte.d.ts +0 -7
  231. package/dist/thumbnail/layout-header-sidebar-main.svelte +0 -64
  232. package/dist/thumbnail/layout-header-sidebar-main.svelte.d.ts +0 -7
  233. package/dist/thumbnail/layout-sidebar-main.svelte +0 -57
  234. package/dist/thumbnail/layout-sidebar-main.svelte.d.ts +0 -7
  235. package/dist/thumbnail/link-preview.svelte +0 -141
  236. package/dist/thumbnail/link-preview.svelte.d.ts +0 -7
  237. package/dist/thumbnail/link.svelte +0 -70
  238. package/dist/thumbnail/link.svelte.d.ts +0 -7
  239. package/dist/thumbnail/list.svelte +0 -86
  240. package/dist/thumbnail/list.svelte.d.ts +0 -7
  241. package/dist/thumbnail/listbox.svelte +0 -102
  242. package/dist/thumbnail/listbox.svelte.d.ts +0 -7
  243. package/dist/thumbnail/location-autocomplete.svelte +0 -219
  244. package/dist/thumbnail/location-autocomplete.svelte.d.ts +0 -7
  245. package/dist/thumbnail/logo-cloud.svelte.d.ts +0 -7
  246. package/dist/thumbnail/loyalty-points-display.svelte +0 -147
  247. package/dist/thumbnail/loyalty-points-display.svelte.d.ts +0 -7
  248. package/dist/thumbnail/map-list-toggle.svelte +0 -140
  249. package/dist/thumbnail/map-list-toggle.svelte.d.ts +0 -7
  250. package/dist/thumbnail/map.svelte +0 -112
  251. package/dist/thumbnail/map.svelte.d.ts +0 -7
  252. package/dist/thumbnail/markdown-renderer.svelte +0 -113
  253. package/dist/thumbnail/markdown-renderer.svelte.d.ts +0 -7
  254. package/dist/thumbnail/marquee.svelte +0 -114
  255. package/dist/thumbnail/marquee.svelte.d.ts +0 -7
  256. package/dist/thumbnail/mask-reveal.svelte +0 -55
  257. package/dist/thumbnail/mask-reveal.svelte.d.ts +0 -7
  258. package/dist/thumbnail/mega-menu.svelte +0 -176
  259. package/dist/thumbnail/mega-menu.svelte.d.ts +0 -7
  260. package/dist/thumbnail/menubar.svelte +0 -99
  261. package/dist/thumbnail/menubar.svelte.d.ts +0 -7
  262. package/dist/thumbnail/multi-city-search-form.svelte +0 -241
  263. package/dist/thumbnail/multi-city-search-form.svelte.d.ts +0 -7
  264. package/dist/thumbnail/multi-select-combobox.svelte +0 -142
  265. package/dist/thumbnail/multi-select-combobox.svelte.d.ts +0 -7
  266. package/dist/thumbnail/navigation-menu.svelte +0 -102
  267. package/dist/thumbnail/navigation-menu.svelte.d.ts +0 -7
  268. package/dist/thumbnail/noise.svelte +0 -72
  269. package/dist/thumbnail/noise.svelte.d.ts +0 -7
  270. package/dist/thumbnail/notification-center.svelte +0 -152
  271. package/dist/thumbnail/notification-center.svelte.d.ts +0 -7
  272. package/dist/thumbnail/number-input.svelte +0 -113
  273. package/dist/thumbnail/number-input.svelte.d.ts +0 -7
  274. package/dist/thumbnail/option-swatch-group.svelte +0 -55
  275. package/dist/thumbnail/option-swatch-group.svelte.d.ts +0 -7
  276. package/dist/thumbnail/page-header.svelte.d.ts +0 -7
  277. package/dist/thumbnail/pagination.svelte +0 -121
  278. package/dist/thumbnail/pagination.svelte.d.ts +0 -7
  279. package/dist/thumbnail/passenger-class-selector.svelte +0 -142
  280. package/dist/thumbnail/passenger-class-selector.svelte.d.ts +0 -7
  281. package/dist/thumbnail/payment-card-input.svelte +0 -172
  282. package/dist/thumbnail/payment-card-input.svelte.d.ts +0 -7
  283. package/dist/thumbnail/phone-input.svelte +0 -103
  284. package/dist/thumbnail/phone-input.svelte.d.ts +0 -7
  285. package/dist/thumbnail/pin-input.svelte +0 -72
  286. package/dist/thumbnail/pin-input.svelte.d.ts +0 -7
  287. package/dist/thumbnail/popover.svelte +0 -122
  288. package/dist/thumbnail/popover.svelte.d.ts +0 -7
  289. package/dist/thumbnail/portal.svelte +0 -115
  290. package/dist/thumbnail/portal.svelte.d.ts +0 -7
  291. package/dist/thumbnail/price-calendar.svelte +0 -366
  292. package/dist/thumbnail/price-calendar.svelte.d.ts +0 -7
  293. package/dist/thumbnail/price-summary-panel.svelte +0 -165
  294. package/dist/thumbnail/price-summary-panel.svelte.d.ts +0 -7
  295. package/dist/thumbnail/progress-ring.svelte +0 -63
  296. package/dist/thumbnail/progress-ring.svelte.d.ts +0 -7
  297. package/dist/thumbnail/progress.svelte +0 -66
  298. package/dist/thumbnail/progress.svelte.d.ts +0 -7
  299. package/dist/thumbnail/promo-code-input.svelte +0 -111
  300. package/dist/thumbnail/promo-code-input.svelte.d.ts +0 -7
  301. package/dist/thumbnail/promo-mosaic.svelte +0 -55
  302. package/dist/thumbnail/promo-mosaic.svelte.d.ts +0 -7
  303. package/dist/thumbnail/prompt-input.svelte +0 -91
  304. package/dist/thumbnail/prompt-input.svelte.d.ts +0 -7
  305. package/dist/thumbnail/qr-code.svelte +0 -217
  306. package/dist/thumbnail/qr-code.svelte.d.ts +0 -7
  307. package/dist/thumbnail/radio-group.svelte +0 -97
  308. package/dist/thumbnail/radio-group.svelte.d.ts +0 -7
  309. package/dist/thumbnail/range-calendar.svelte +0 -92
  310. package/dist/thumbnail/range-calendar.svelte.d.ts +0 -7
  311. package/dist/thumbnail/rating.svelte +0 -61
  312. package/dist/thumbnail/rating.svelte.d.ts +0 -7
  313. package/dist/thumbnail/recent-searches.svelte +0 -197
  314. package/dist/thumbnail/recent-searches.svelte.d.ts +0 -7
  315. package/dist/thumbnail/relative-time.svelte +0 -51
  316. package/dist/thumbnail/relative-time.svelte.d.ts +0 -7
  317. package/dist/thumbnail/result-card-car.svelte +0 -149
  318. package/dist/thumbnail/result-card-car.svelte.d.ts +0 -7
  319. package/dist/thumbnail/result-card-flight.svelte +0 -170
  320. package/dist/thumbnail/result-card-flight.svelte.d.ts +0 -7
  321. package/dist/thumbnail/result-card-hotel.svelte +0 -174
  322. package/dist/thumbnail/result-card-hotel.svelte.d.ts +0 -7
  323. package/dist/thumbnail/reveal.svelte +0 -109
  324. package/dist/thumbnail/reveal.svelte.d.ts +0 -7
  325. package/dist/thumbnail/review-card.svelte +0 -153
  326. package/dist/thumbnail/review-card.svelte.d.ts +0 -7
  327. package/dist/thumbnail/rich-text-editor.svelte +0 -134
  328. package/dist/thumbnail/rich-text-editor.svelte.d.ts +0 -7
  329. package/dist/thumbnail/room-type-picker.svelte +0 -212
  330. package/dist/thumbnail/room-type-picker.svelte.d.ts +0 -7
  331. package/dist/thumbnail/root.svelte +0 -52
  332. package/dist/thumbnail/root.svelte.d.ts +0 -10
  333. package/dist/thumbnail/route-map.svelte +0 -132
  334. package/dist/thumbnail/route-map.svelte.d.ts +0 -7
  335. package/dist/thumbnail/scroll-area.svelte +0 -124
  336. package/dist/thumbnail/scroll-area.svelte.d.ts +0 -7
  337. package/dist/thumbnail/scroll-to-top.svelte +0 -60
  338. package/dist/thumbnail/scroll-to-top.svelte.d.ts +0 -7
  339. package/dist/thumbnail/search-form-tabs.svelte +0 -192
  340. package/dist/thumbnail/search-form-tabs.svelte.d.ts +0 -7
  341. package/dist/thumbnail/seat-map.svelte +0 -358
  342. package/dist/thumbnail/seat-map.svelte.d.ts +0 -7
  343. package/dist/thumbnail/segmented-control.svelte +0 -93
  344. package/dist/thumbnail/segmented-control.svelte.d.ts +0 -7
  345. package/dist/thumbnail/select.svelte +0 -82
  346. package/dist/thumbnail/select.svelte.d.ts +0 -7
  347. package/dist/thumbnail/selectable-tile-group.svelte +0 -55
  348. package/dist/thumbnail/selectable-tile-group.svelte.d.ts +0 -7
  349. package/dist/thumbnail/separator.svelte +0 -94
  350. package/dist/thumbnail/separator.svelte.d.ts +0 -7
  351. package/dist/thumbnail/shader-canvas.svelte +0 -55
  352. package/dist/thumbnail/shader-canvas.svelte.d.ts +0 -7
  353. package/dist/thumbnail/sidebar.svelte +0 -109
  354. package/dist/thumbnail/sidebar.svelte.d.ts +0 -7
  355. package/dist/thumbnail/skeleton.svelte +0 -94
  356. package/dist/thumbnail/skeleton.svelte.d.ts +0 -7
  357. package/dist/thumbnail/slider.svelte +0 -71
  358. package/dist/thumbnail/slider.svelte.d.ts +0 -7
  359. package/dist/thumbnail/sort-bar.svelte +0 -156
  360. package/dist/thumbnail/sort-bar.svelte.d.ts +0 -7
  361. package/dist/thumbnail/spacer.svelte +0 -95
  362. package/dist/thumbnail/spacer.svelte.d.ts +0 -7
  363. package/dist/thumbnail/sparkline.svelte +0 -59
  364. package/dist/thumbnail/sparkline.svelte.d.ts +0 -7
  365. package/dist/thumbnail/spinner.svelte +0 -63
  366. package/dist/thumbnail/spinner.svelte.d.ts +0 -7
  367. package/dist/thumbnail/splitter.svelte +0 -79
  368. package/dist/thumbnail/splitter.svelte.d.ts +0 -7
  369. package/dist/thumbnail/spotlight.svelte +0 -90
  370. package/dist/thumbnail/spotlight.svelte.d.ts +0 -7
  371. package/dist/thumbnail/star-rating.svelte +0 -106
  372. package/dist/thumbnail/star-rating.svelte.d.ts +0 -7
  373. package/dist/thumbnail/stat-card.svelte.d.ts +0 -7
  374. package/dist/thumbnail/stepper.svelte +0 -94
  375. package/dist/thumbnail/stepper.svelte.d.ts +0 -7
  376. package/dist/thumbnail/svg.svelte +0 -55
  377. package/dist/thumbnail/svg.svelte.d.ts +0 -8
  378. package/dist/thumbnail/swatch-strip.svelte.d.ts +0 -7
  379. package/dist/thumbnail/switch.svelte.d.ts +0 -7
  380. package/dist/thumbnail/system-map.svelte +0 -154
  381. package/dist/thumbnail/system-map.svelte.d.ts +0 -7
  382. package/dist/thumbnail/table-of-contents.svelte +0 -101
  383. package/dist/thumbnail/table-of-contents.svelte.d.ts +0 -7
  384. package/dist/thumbnail/table.svelte +0 -214
  385. package/dist/thumbnail/table.svelte.d.ts +0 -7
  386. package/dist/thumbnail/tabs.svelte +0 -133
  387. package/dist/thumbnail/tabs.svelte.d.ts +0 -7
  388. package/dist/thumbnail/tag.svelte +0 -95
  389. package/dist/thumbnail/tag.svelte.d.ts +0 -7
  390. package/dist/thumbnail/tags-input.svelte +0 -142
  391. package/dist/thumbnail/tags-input.svelte.d.ts +0 -7
  392. package/dist/thumbnail/text.svelte +0 -72
  393. package/dist/thumbnail/text.svelte.d.ts +0 -7
  394. package/dist/thumbnail/textarea.svelte +0 -111
  395. package/dist/thumbnail/textarea.svelte.d.ts +0 -7
  396. package/dist/thumbnail/time-input.svelte +0 -94
  397. package/dist/thumbnail/time-input.svelte.d.ts +0 -7
  398. package/dist/thumbnail/timeline.svelte +0 -123
  399. package/dist/thumbnail/timeline.svelte.d.ts +0 -7
  400. package/dist/thumbnail/toast.svelte +0 -105
  401. package/dist/thumbnail/toast.svelte.d.ts +0 -7
  402. package/dist/thumbnail/toggle-group.svelte +0 -76
  403. package/dist/thumbnail/toggle-group.svelte.d.ts +0 -7
  404. package/dist/thumbnail/toggle.svelte +0 -46
  405. package/dist/thumbnail/toggle.svelte.d.ts +0 -7
  406. package/dist/thumbnail/token-preview.svelte.d.ts +0 -7
  407. package/dist/thumbnail/toolbar.svelte +0 -109
  408. package/dist/thumbnail/toolbar.svelte.d.ts +0 -7
  409. package/dist/thumbnail/tooltip.svelte +0 -85
  410. package/dist/thumbnail/tooltip.svelte.d.ts +0 -7
  411. package/dist/thumbnail/tour.svelte +0 -149
  412. package/dist/thumbnail/tour.svelte.d.ts +0 -7
  413. package/dist/thumbnail/transfer.svelte +0 -168
  414. package/dist/thumbnail/transfer.svelte.d.ts +0 -7
  415. package/dist/thumbnail/tree.svelte +0 -215
  416. package/dist/thumbnail/tree.svelte.d.ts +0 -7
  417. package/dist/thumbnail/trip-card.svelte +0 -137
  418. package/dist/thumbnail/trip-card.svelte.d.ts +0 -7
  419. package/dist/thumbnail/trust-badges.svelte +0 -207
  420. package/dist/thumbnail/trust-badges.svelte.d.ts +0 -7
  421. package/dist/thumbnail/typing-indicator.svelte +0 -65
  422. package/dist/thumbnail/typing-indicator.svelte.d.ts +0 -7
  423. package/dist/thumbnail/typography.svelte +0 -80
  424. package/dist/thumbnail/typography.svelte.d.ts +0 -7
  425. package/dist/thumbnail/user.svelte.d.ts +0 -7
  426. package/dist/thumbnail/video-embed.svelte +0 -87
  427. package/dist/thumbnail/video-embed.svelte.d.ts +0 -7
  428. package/dist/thumbnail/virtual-list.svelte +0 -178
  429. package/dist/thumbnail/virtual-list.svelte.d.ts +0 -7
  430. package/dist/thumbnail/visually-hidden.svelte +0 -106
  431. package/dist/thumbnail/visually-hidden.svelte.d.ts +0 -7
  432. package/dist/thumbnail/wave-divider.svelte.d.ts +0 -7
  433. /package/dist/{system-map → diagram}/types.js +0 -0
@@ -0,0 +1,13 @@
1
+ export interface DragAndDropGroupContext {
2
+ register(listId: string, element: HTMLElement): void;
3
+ unregister(listId: string): void;
4
+ getRoots(): Map<string, HTMLElement>;
5
+ readonly activeTarget: {
6
+ listId: string;
7
+ index: number;
8
+ } | null;
9
+ setActiveTarget(listId: string | null, index: number | null): void;
10
+ move(fromListId: string, fromIndex: number, toListId: string, toIndex: number): void;
11
+ }
12
+ export declare function setGroupCtx(ctx: DragAndDropGroupContext): void;
13
+ export declare function getGroupCtx(): DragAndDropGroupContext | null;
@@ -0,0 +1,8 @@
1
+ import { getContext, setContext, hasContext } from 'svelte';
2
+ const GROUP_KEY = Symbol('drag-and-drop-group');
3
+ export function setGroupCtx(ctx) {
4
+ setContext(GROUP_KEY, ctx);
5
+ }
6
+ export function getGroupCtx() {
7
+ return hasContext(GROUP_KEY) ? getContext(GROUP_KEY) : null;
8
+ }
@@ -2,8 +2,10 @@ export type { DragAndDropRootProps, DragAndDropItemProps, DragAndDropHandleProps
2
2
  import DragAndDropRoot from './drag-and-drop-root.svelte';
3
3
  import DragAndDropItem from './drag-and-drop-item.svelte';
4
4
  import DragAndDropHandle from './drag-and-drop-handle.svelte';
5
+ import DragAndDropGroup from './drag-and-drop-group.svelte';
5
6
  export declare const DragAndDrop: {
6
7
  Root: typeof DragAndDropRoot;
7
8
  Item: typeof DragAndDropItem;
8
9
  Handle: typeof DragAndDropHandle;
10
+ Group: typeof DragAndDropGroup;
9
11
  };
@@ -1,8 +1,10 @@
1
1
  import DragAndDropRoot from './drag-and-drop-root.svelte';
2
2
  import DragAndDropItem from './drag-and-drop-item.svelte';
3
3
  import DragAndDropHandle from './drag-and-drop-handle.svelte';
4
+ import DragAndDropGroup from './drag-and-drop-group.svelte';
4
5
  export const DragAndDrop = {
5
6
  Root: DragAndDropRoot,
6
7
  Item: DragAndDropItem,
7
- Handle: DragAndDropHandle
8
+ Handle: DragAndDropHandle,
9
+ Group: DragAndDropGroup
8
10
  };
@@ -108,7 +108,8 @@
108
108
  box-shadow: var(--dry-drawer-shadow, var(--dry-shadow-overlay));
109
109
  padding: 0;
110
110
  display: grid;
111
- overflow: auto;
111
+ grid-template-rows: max-content minmax(0, 1fr) max-content;
112
+ overflow: hidden;
112
113
 
113
114
  transition:
114
115
  transform var(--dry-duration-slow) var(--dry-ease-spring-snappy),
@@ -20,7 +20,7 @@
20
20
  display: grid;
21
21
  grid-auto-flow: column;
22
22
  grid-auto-columns: max-content;
23
- justify-items: end;
23
+ justify-content: end;
24
24
  gap: var(--dry-space-2);
25
25
  }
26
26
  </style>
@@ -32,6 +32,9 @@
32
32
  let animated = $state(false);
33
33
  let pointerX = $state('50%');
34
34
  let pointerY = $state('50%');
35
+ let pointerFrame = $state<number | null>(null);
36
+ let pendingPointerX = '50%';
37
+ let pendingPointerY = '50%';
35
38
 
36
39
  function captureElement(node: HTMLDivElement) {
37
40
  element = node;
@@ -51,14 +54,42 @@
51
54
  return '12s';
52
55
  });
53
56
 
57
+ function flushPointerPosition() {
58
+ pointerFrame = null;
59
+ pointerX = pendingPointerX;
60
+ pointerY = pendingPointerY;
61
+ }
62
+
63
+ function queuePointerPosition(nextX: string, nextY: string) {
64
+ pendingPointerX = nextX;
65
+ pendingPointerY = nextY;
66
+
67
+ if (pointerFrame !== null) return;
68
+
69
+ pointerFrame = requestAnimationFrame(() => {
70
+ flushPointerPosition();
71
+ });
72
+ }
73
+
74
+ function cancelQueuedPointerPosition() {
75
+ if (pointerFrame === null) return;
76
+ cancelAnimationFrame(pointerFrame);
77
+ pointerFrame = null;
78
+ }
79
+
54
80
  function handlePointerMove(event: PointerEvent) {
55
81
  if (!interactive || prefersReducedMotion || !element || !supportsPointerTracking()) return;
56
82
  const rect = element.getBoundingClientRect();
57
- pointerX = `${(((event.clientX - rect.left) / rect.width) * 100).toFixed(1)}%`;
58
- pointerY = `${(((event.clientY - rect.top) / rect.height) * 100).toFixed(1)}%`;
83
+ queuePointerPosition(
84
+ `${(((event.clientX - rect.left) / rect.width) * 100).toFixed(1)}%`,
85
+ `${(((event.clientY - rect.top) / rect.height) * 100).toFixed(1)}%`
86
+ );
59
87
  }
60
88
 
61
89
  function handlePointerLeave() {
90
+ cancelQueuedPointerPosition();
91
+ pendingPointerX = '50%';
92
+ pendingPointerY = '50%';
62
93
  pointerX = '50%';
63
94
  pointerY = '50%';
64
95
  }
@@ -98,11 +129,17 @@
98
129
 
99
130
  if (!supportsPropertyRegistration() || getReducedMotionPreference()) {
100
131
  animated = false;
101
- return stopMotionObserver;
132
+ return () => {
133
+ cancelQueuedPointerPosition();
134
+ stopMotionObserver();
135
+ };
102
136
  }
103
137
 
104
138
  animated = true;
105
- return stopMotionObserver;
139
+ return () => {
140
+ cancelQueuedPointerPosition();
141
+ stopMotionObserver();
142
+ };
106
143
  });
107
144
 
108
145
  function applyStyles(node: HTMLElement) {
@@ -121,6 +158,7 @@
121
158
 
122
159
  <div
123
160
  {@attach captureElement}
161
+ {@attach applyStyles}
124
162
  class={className}
125
163
  data-gradient-mesh
126
164
  data-animated={animated || undefined}
@@ -129,7 +167,6 @@
129
167
  onpointermove={interactive ? handlePointerMove : undefined}
130
168
  onpointerleave={interactive ? handlePointerLeave : undefined}
131
169
  {...rest}
132
- use:applyStyles
133
170
  >
134
171
  {#if childSnippet}
135
172
  <div data-gradient-mesh-content>
@@ -24,29 +24,17 @@
24
24
  dotSize === 'fine' || dotSize === 'medium' || dotSize === 'coarse' ? dotSize : 'custom'
25
25
  );
26
26
 
27
- const patternSize = $derived.by(() => {
28
- const size =
29
- typeof dotSize === 'number'
30
- ? Math.max(1, dotSize)
31
- : dotSize === 'fine'
32
- ? 2
33
- : dotSize === 'coarse'
34
- ? 6
35
- : 4;
36
- return `${size * 3}`;
37
- });
38
-
39
- const dotRadius = $derived.by(() => {
40
- const size =
41
- typeof dotSize === 'number'
42
- ? Math.max(1, dotSize)
43
- : dotSize === 'fine'
44
- ? 2
45
- : dotSize === 'coarse'
46
- ? 6
47
- : 4;
48
- return `${size * 0.45}`;
49
- });
27
+ const baseSize = $derived(
28
+ typeof dotSize === 'number'
29
+ ? Math.max(1, dotSize)
30
+ : dotSize === 'fine'
31
+ ? 2
32
+ : dotSize === 'coarse'
33
+ ? 6
34
+ : 4
35
+ );
36
+ const patternSize = $derived(`${baseSize * 3}`);
37
+ const dotRadius = $derived(`${baseSize * 0.45}`);
50
38
 
51
39
  const normalizedOpacity = $derived(`${Math.max(0, Math.min(1, opacity))}`);
52
40
  const angleValue = $derived(`${angle}deg`);
@@ -99,24 +87,16 @@
99
87
  mix-blend-mode: multiply;
100
88
  transform: rotate(var(--dry-halftone-angle));
101
89
  transform-origin: center;
102
-
103
- /* SVG halftone dot pattern via data URI */
104
- background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Ccircle cx='6' cy='6' r='1.8' fill='black'/%3E%3C/svg%3E");
90
+ background-image: radial-gradient(
91
+ circle at center,
92
+ var(--dry-halftone-color) 0 calc(var(--dry-halftone-dot-radius) * 1px),
93
+ transparent calc((var(--dry-halftone-dot-radius) * 1px) + 0.8px)
94
+ );
105
95
  background-size: calc(var(--dry-halftone-pattern-size) * 1px)
106
96
  calc(var(--dry-halftone-pattern-size) * 1px);
107
97
  background-repeat: repeat;
108
98
  }
109
99
 
110
- /* Override SVG for fine pattern */
111
- [data-halftone][data-dot-size='fine']::after {
112
- background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='6' height='6' viewBox='0 0 6 6'%3E%3Ccircle cx='3' cy='3' r='0.9' fill='black'/%3E%3C/svg%3E");
113
- }
114
-
115
- /* Override SVG for coarse pattern */
116
- [data-halftone][data-dot-size='coarse']::after {
117
- background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 18 18'%3E%3Ccircle cx='9' cy='9' r='2.7' fill='black'/%3E%3C/svg%3E");
118
- }
119
-
120
100
  [data-halftone-content] {
121
101
  position: relative;
122
102
  z-index: 1;
package/dist/index.d.ts CHANGED
@@ -179,7 +179,7 @@ export type { RevealProps } from './reveal/index.js';
179
179
  export { Spotlight } from './spotlight/index.js';
180
180
  export type { SpotlightProps } from './spotlight/index.js';
181
181
  export { Aurora } from './aurora/index.js';
182
- export type { AuroraProps, AuroraPalette, AuroraSpeed } from './aurora/index.js';
182
+ export type { AuroraProps, AuroraPalette, AuroraSpeed, AuroraMotion } from './aurora/index.js';
183
183
  export { Noise } from './noise/index.js';
184
184
  export type { NoiseProps, NoiseBlendMode } from './noise/index.js';
185
185
  export type { BlendMode } from './aurora/index.js';
@@ -256,8 +256,6 @@ export { MegaMenu } from './mega-menu/index.js';
256
256
  export type { MegaMenuRootProps, MegaMenuItemProps, MegaMenuTriggerProps, MegaMenuPanelProps, MegaMenuColumnProps, MegaMenuLinkProps } from './mega-menu/index.js';
257
257
  export { Map } from './map/index.js';
258
258
  export type { MapRootProps, MapMarkerProps, MapPopupProps, MapLayerProps, MapControlsProps, LngLat, MapInstance, MapLibrary, MapMarkerInstance, MapPopupInstance, MapOptions, MapControl, MapSource, MarkerOptions, PopupOptions, GeoJsonData } from './map/index.js';
259
- export { SystemMap } from './system-map/index.js';
260
- export type { DolphinCluster, DolphinEdge, DolphinEdgeType, DolphinGraph, DolphinLayer, DolphinMismatch, DolphinMismatchKind, DolphinNode, DolphinNodeKind, DolphinPackage, DolphinSignals, DolphinSummary, DolphinVisibility, SystemMapProps, SystemMapEdge, SystemMapEdgeKind, SystemMapGraph, SystemMapLayer, SystemMapNode, SystemMapNodeKind, SystemMapVisibility } from './system-map/index.js';
261
259
  export { ChromaticShift } from './chromatic-shift/index.js';
262
260
  export type { ChromaticShiftProps } from './chromatic-shift/index.js';
263
261
  export { ChromaticAberration } from './chromatic-aberration/index.js';
@@ -286,7 +284,6 @@ export { ShaderCanvas, PRESETS as SHADER_PRESETS } from './shader-canvas/index.j
286
284
  export type { ShaderCanvasProps, ShaderCanvasPreset } from './shader-canvas/index.js';
287
285
  export { Svg } from './svg/index.js';
288
286
  export type { SvgProps } from './svg/index.js';
289
- export { Thumbnail } from './thumbnail/index.js';
290
287
  export { StarRating } from './star-rating/index.js';
291
288
  export type { StarRatingRootProps } from './star-rating/index.js';
292
289
  export { Tag } from './tag/index.js';
package/dist/index.js CHANGED
@@ -131,7 +131,6 @@ export { DateTimeInput } from './date-time-input/index.js';
131
131
  export { NotificationCenter } from './notification-center/index.js';
132
132
  export { MegaMenu } from './mega-menu/index.js';
133
133
  export { Map } from './map/index.js';
134
- export { SystemMap } from './system-map/index.js';
135
134
  // Animation & Visual Effects
136
135
  export { ChromaticShift } from './chromatic-shift/index.js';
137
136
  export { ChromaticAberration } from './chromatic-aberration/index.js';
@@ -147,7 +146,7 @@ export { Halftone } from './halftone/index.js';
147
146
  export { MaskReveal } from './mask-reveal/index.js';
148
147
  export { ShaderCanvas, PRESETS as SHADER_PRESETS } from './shader-canvas/index.js';
149
148
  export { Svg } from './svg/index.js';
150
- export { Thumbnail } from './thumbnail/index.js';
151
149
  export { StarRating } from './star-rating/index.js';
152
150
  export { Tag } from './tag/index.js';
153
151
  export { useThemeOverride } from './themes/use-theme-override.svelte.js';
152
+ export { Diagram } from './diagram/index.js';
@@ -78,8 +78,8 @@
78
78
  }
79
79
 
80
80
  [data-logo-mark] img {
81
- width: 100%;
82
- height: 100%;
81
+ block-size: 100%;
82
+ aspect-ratio: 1;
83
83
  object-fit: cover;
84
84
  border-radius: inherit;
85
85
  }
@@ -50,7 +50,7 @@
50
50
  data-reduced-motion={prefersReducedMotion || undefined}
51
51
  data-grain={grain}
52
52
  {...rest}
53
- use:applyStyles
53
+ {@attach applyStyles}
54
54
  >
55
55
  <span data-noise-texture aria-hidden="true"></span>
56
56
 
@@ -91,10 +91,10 @@
91
91
  background-image: var(--dry-noise-pattern);
92
92
  background-size: 256px 256px;
93
93
  background-repeat: repeat;
94
- will-change: transform;
95
94
  }
96
95
 
97
96
  [data-noise][data-animated] [data-noise-texture] {
97
+ will-change: transform;
98
98
  animation: noise-drift 1.6s steps(6) infinite;
99
99
  }
100
100
 
@@ -49,7 +49,7 @@ void main() {
49
49
  float t = u_time * 0.3;
50
50
  vec3 color = vec3(0.02, 0.02, 0.06);
51
51
 
52
- for (int i = 0; i < 60; i++) {
52
+ for (int i = 0; i < 36; i++) {
53
53
  float fi = float(i);
54
54
  vec2 pos = vec2(
55
55
  hash(vec2(fi, 0.0)),
@@ -66,6 +66,7 @@
66
66
  });
67
67
 
68
68
  const mergedUniforms = $derived({ ...themeUniforms, ...uniforms });
69
+ const effectiveFps = $derived(fps ?? 30);
69
70
 
70
71
  function setAspectRatio(node: HTMLDivElement) {
71
72
  $effect(() => {
@@ -101,7 +102,9 @@
101
102
  bind:paused
102
103
  data-shader-canvas
103
104
  {...Object.fromEntries(
104
- Object.entries({ vertexShader, pixelRatio, fps, fallback }).filter(([, v]) => v !== undefined)
105
+ Object.entries({ vertexShader, pixelRatio, fps: effectiveFps, fallback }).filter(
106
+ ([, v]) => v !== undefined
107
+ )
105
108
  )}
106
109
  >
107
110
  {#if childSnippet}
@@ -17,11 +17,12 @@
17
17
  [data-sidebar-footer] {
18
18
  grid-row: 3;
19
19
  display: grid;
20
- grid-auto-flow: column;
21
- grid-auto-columns: max-content;
22
- align-items: center;
20
+ grid-template-columns: minmax(0, 1fr);
21
+ align-content: start;
22
+ justify-items: stretch;
23
23
  gap: var(--dry-space-2);
24
- padding: var(--dry-space-3) var(--dry-space-6);
24
+ padding-block: var(--dry-sidebar-footer-padding-y, var(--dry-space-3));
25
+ padding-inline: var(--dry-sidebar-content-padding, 0px);
25
26
  border-top: 1px solid var(--dry-sidebar-border);
26
27
  }
27
28
  </style>
@@ -35,6 +35,9 @@
35
35
  let y = $state('50%');
36
36
  let active = $state(false);
37
37
  let prefersReducedMotion = $state(false);
38
+ let pointerFrame = $state<number | null>(null);
39
+ let pendingX = '50%';
40
+ let pendingY = '50%';
38
41
 
39
42
  function captureElement(node: HTMLDivElement) {
40
43
  element = node;
@@ -46,6 +49,9 @@
46
49
  }
47
50
 
48
51
  function centerSpotlight() {
52
+ cancelQueuedPointerPosition();
53
+ pendingX = '50%';
54
+ pendingY = '50%';
49
55
  x = '50%';
50
56
  y = '50%';
51
57
  }
@@ -57,8 +63,30 @@
57
63
  function updateFromClientPoint(clientX: number, clientY: number) {
58
64
  if (!element) return;
59
65
  const rect = element.getBoundingClientRect();
60
- x = `${clientX - rect.left}px`;
61
- y = `${clientY - rect.top}px`;
66
+ queuePointerPosition(`${clientX - rect.left}px`, `${clientY - rect.top}px`);
67
+ }
68
+
69
+ function flushPointerPosition() {
70
+ pointerFrame = null;
71
+ x = pendingX;
72
+ y = pendingY;
73
+ }
74
+
75
+ function queuePointerPosition(nextX: string, nextY: string) {
76
+ pendingX = nextX;
77
+ pendingY = nextY;
78
+
79
+ if (pointerFrame !== null) return;
80
+
81
+ pointerFrame = requestAnimationFrame(() => {
82
+ flushPointerPosition();
83
+ });
84
+ }
85
+
86
+ function cancelQueuedPointerPosition() {
87
+ if (pointerFrame === null) return;
88
+ cancelAnimationFrame(pointerFrame);
89
+ pointerFrame = null;
62
90
  }
63
91
 
64
92
  function handlePointerEnter(event: PointerEvent) {
@@ -101,11 +129,16 @@
101
129
  initialValue: '50%'
102
130
  });
103
131
 
104
- return observeReducedMotionPreference((matches) => {
132
+ const stopMotionObserver = observeReducedMotionPreference((matches) => {
105
133
  prefersReducedMotion = matches;
106
134
  active = matches || !followPointer;
107
135
  centerSpotlight();
108
136
  });
137
+
138
+ return () => {
139
+ cancelQueuedPointerPosition();
140
+ stopMotionObserver();
141
+ };
109
142
  });
110
143
 
111
144
  const radiusValue = $derived(`${Math.max(0, radius)}px`);
@@ -137,6 +170,7 @@
137
170
 
138
171
  <div
139
172
  {@attach captureElement}
173
+ {@attach applyStyles}
140
174
  class={className}
141
175
  data-spotlight
142
176
  data-active={active || undefined}
@@ -147,7 +181,6 @@
147
181
  onpointerleave={handlePointerLeave}
148
182
  onfocusin={handleFocusIn}
149
183
  onfocusout={handleFocusOut}
150
- use:applyStyles
151
184
  {...rest}
152
185
  >
153
186
  {@render children()}
@@ -221,6 +254,11 @@
221
254
  transform var(--dry-duration-normal, 200ms) var(--dry-ease-out, ease),
222
255
  --dry-spotlight-x 60ms ease-out,
223
256
  --dry-spotlight-y 60ms ease-out;
257
+ }
258
+
259
+ [data-spotlight][data-active]::before,
260
+ [data-spotlight][data-static]::before,
261
+ [data-spotlight][data-follow-pointer]::before {
224
262
  will-change: opacity, transform;
225
263
  }
226
264