sveltacular 0.0.76 → 1.0.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 (374) hide show
  1. package/README.md +142 -15
  2. package/dist/forms/base-input-wrapper.svelte +99 -0
  3. package/dist/forms/base-input-wrapper.svelte.d.ts +15 -0
  4. package/dist/forms/bool-box/bool-box.svelte +30 -17
  5. package/dist/forms/bool-box/bool-box.svelte.d.ts +9 -21
  6. package/dist/forms/button/button.svelte +153 -89
  7. package/dist/forms/button/button.svelte.d.ts +25 -29
  8. package/dist/forms/check-box/check-box-group.svelte +63 -29
  9. package/dist/forms/check-box/check-box-group.svelte.d.ts +11 -27
  10. package/dist/forms/check-box/check-box.svelte +57 -33
  11. package/dist/forms/check-box/check-box.svelte.d.ts +15 -25
  12. package/dist/forms/check-box/index.d.ts +2 -0
  13. package/dist/forms/check-box/index.js +2 -0
  14. package/dist/forms/combo/new-or-existing-combo.svelte +37 -18
  15. package/dist/forms/combo/new-or-existing-combo.svelte.d.ts +15 -25
  16. package/dist/forms/combo-box/combo-box.svelte +655 -0
  17. package/dist/forms/combo-box/combo-box.svelte.d.ts +62 -0
  18. package/dist/forms/combo-box/index.d.ts +1 -0
  19. package/dist/forms/combo-box/index.js +1 -0
  20. package/dist/forms/date-box/date-box.svelte +80 -54
  21. package/dist/forms/date-box/date-box.svelte.d.ts +21 -32
  22. package/dist/forms/file-area/file-area.svelte +109 -68
  23. package/dist/forms/file-area/file-area.svelte.d.ts +12 -22
  24. package/dist/forms/file-box/file-box.svelte +40 -21
  25. package/dist/forms/file-box/file-box.svelte.d.ts +14 -25
  26. package/dist/forms/form-field.svelte +18 -15
  27. package/dist/forms/form-field.svelte.d.ts +8 -18
  28. package/dist/forms/form-footer.svelte +6 -3
  29. package/dist/forms/form-footer.svelte.d.ts +6 -26
  30. package/dist/forms/form-header.svelte +15 -4
  31. package/dist/forms/form-header.svelte.d.ts +8 -18
  32. package/dist/forms/form-label.svelte +15 -6
  33. package/dist/forms/form-label.svelte.d.ts +8 -19
  34. package/dist/forms/form-section.svelte +15 -4
  35. package/dist/forms/form-section.svelte.d.ts +8 -18
  36. package/dist/forms/form.svelte +30 -13
  37. package/dist/forms/form.svelte.d.ts +11 -22
  38. package/dist/forms/index.d.ts +26 -0
  39. package/dist/forms/index.js +31 -0
  40. package/dist/forms/info-box/info-box.svelte +19 -8
  41. package/dist/forms/info-box/info-box.svelte.d.ts +8 -19
  42. package/dist/forms/list-box/index.d.ts +2 -0
  43. package/dist/forms/list-box/index.js +1 -0
  44. package/dist/forms/list-box/list-box.svelte +190 -118
  45. package/dist/forms/list-box/list-box.svelte.d.ts +16 -26
  46. package/dist/forms/money-box/money-box.svelte +223 -190
  47. package/dist/forms/money-box/money-box.svelte.d.ts +16 -28
  48. package/dist/forms/number-box/number-box.svelte +84 -67
  49. package/dist/forms/number-box/number-box.svelte.d.ts +17 -28
  50. package/dist/forms/phone-box/index.d.ts +1 -0
  51. package/dist/forms/phone-box/index.js +1 -0
  52. package/dist/forms/phone-box/phone-box.svelte +152 -122
  53. package/dist/forms/phone-box/phone-box.svelte.d.ts +8 -20
  54. package/dist/forms/radio-group/index.d.ts +2 -0
  55. package/dist/forms/radio-group/index.js +2 -0
  56. package/dist/forms/radio-group/radio-box.svelte +23 -8
  57. package/dist/forms/radio-group/radio-box.svelte.d.ts +10 -19
  58. package/dist/forms/radio-group/radio-group.svelte +27 -13
  59. package/dist/forms/radio-group/radio-group.svelte.d.ts +10 -21
  60. package/dist/forms/slider/slider.svelte +210 -0
  61. package/dist/forms/slider/slider.svelte.d.ts +17 -0
  62. package/dist/forms/switch-box/switch-box.svelte +35 -21
  63. package/dist/forms/switch-box/switch-box.svelte.d.ts +9 -20
  64. package/dist/forms/text-area/text-area.svelte +89 -15
  65. package/dist/forms/text-area/text-area.svelte.d.ts +15 -23
  66. package/dist/forms/text-box/text-box.svelte +253 -75
  67. package/dist/forms/text-box/text-box.svelte.d.ts +28 -36
  68. package/dist/forms/time-box/time-box.svelte +67 -0
  69. package/dist/forms/time-box/time-box.svelte.d.ts +12 -0
  70. package/dist/forms/url-box/url-box.svelte +32 -18
  71. package/dist/forms/url-box/url-box.svelte.d.ts +9 -20
  72. package/dist/forms/validation.d.ts +60 -0
  73. package/dist/forms/validation.js +123 -0
  74. package/dist/generic/address/address.svelte +22 -13
  75. package/dist/generic/address/address.svelte.d.ts +9 -19
  76. package/dist/generic/avatar/avatar.svelte +86 -0
  77. package/dist/generic/avatar/avatar.svelte.d.ts +10 -0
  78. package/dist/generic/badge/badge.svelte +82 -0
  79. package/dist/generic/badge/badge.svelte.d.ts +11 -0
  80. package/dist/generic/card/card-container.svelte +41 -13
  81. package/dist/generic/card/card-container.svelte.d.ts +8 -18
  82. package/dist/generic/card/card.svelte +47 -29
  83. package/dist/generic/card/card.svelte.d.ts +9 -19
  84. package/dist/generic/card/index.d.ts +3 -0
  85. package/dist/generic/card/index.js +2 -0
  86. package/dist/generic/chip/chip.svelte +90 -0
  87. package/dist/generic/chip/chip.svelte.d.ts +11 -0
  88. package/dist/generic/date/date-time.svelte +86 -64
  89. package/dist/generic/date/date-time.svelte.d.ts +10 -20
  90. package/dist/generic/divider/divider.svelte.d.ts +22 -19
  91. package/dist/generic/dot/dot.svelte +13 -4
  92. package/dist/generic/dot/dot.svelte.d.ts +7 -17
  93. package/dist/generic/dropdown-item/dropdown-item.svelte +24 -12
  94. package/dist/generic/dropdown-item/dropdown-item.svelte.d.ts +10 -21
  95. package/dist/generic/email/email.svelte +6 -4
  96. package/dist/generic/email/email.svelte.d.ts +5 -15
  97. package/dist/generic/empty/empty.svelte +57 -26
  98. package/dist/generic/empty/empty.svelte.d.ts +11 -21
  99. package/dist/generic/header/header.svelte +26 -10
  100. package/dist/generic/header/header.svelte.d.ts +10 -20
  101. package/dist/generic/index.d.ts +28 -0
  102. package/dist/generic/index.js +31 -0
  103. package/dist/generic/link/link.svelte +20 -7
  104. package/dist/generic/link/link.svelte.d.ts +11 -21
  105. package/dist/generic/list/index.d.ts +4 -0
  106. package/dist/generic/list/index.js +3 -0
  107. package/dist/generic/list/list-item.svelte +17 -13
  108. package/dist/generic/list/list-item.svelte.d.ts +6 -15
  109. package/dist/generic/list/list.d.ts +2 -2
  110. package/dist/generic/list/list.svelte +28 -15
  111. package/dist/generic/list/list.svelte.d.ts +9 -19
  112. package/dist/generic/menu/menu.svelte +163 -57
  113. package/dist/generic/menu/menu.svelte.d.ts +16 -24
  114. package/dist/generic/notice/notice.svelte +119 -81
  115. package/dist/generic/notice/notice.svelte.d.ts +17 -26
  116. package/dist/generic/overlay.svelte +40 -14
  117. package/dist/generic/overlay.svelte.d.ts +9 -19
  118. package/dist/generic/panel/panel.svelte +16 -6
  119. package/dist/generic/panel/panel.svelte.d.ts +8 -18
  120. package/dist/generic/phone/phone.svelte +30 -24
  121. package/dist/generic/phone/phone.svelte.d.ts +6 -16
  122. package/dist/generic/pill/pill.svelte +47 -33
  123. package/dist/generic/pill/pill.svelte.d.ts +10 -21
  124. package/dist/generic/popover/popover.svelte +226 -0
  125. package/dist/generic/popover/popover.svelte.d.ts +15 -0
  126. package/dist/generic/rating/rating.svelte +85 -0
  127. package/dist/generic/rating/rating.svelte.d.ts +11 -0
  128. package/dist/generic/scorecard/scorecard.svelte +34 -21
  129. package/dist/generic/scorecard/scorecard.svelte.d.ts +9 -19
  130. package/dist/generic/section/section.svelte +28 -9
  131. package/dist/generic/section/section.svelte.d.ts +11 -21
  132. package/dist/generic/spinner/spinner.svelte +64 -0
  133. package/dist/generic/spinner/spinner.svelte.d.ts +8 -0
  134. package/dist/generic/theme-provider/index.d.ts +1 -0
  135. package/dist/generic/theme-provider/index.js +1 -0
  136. package/dist/generic/theme-provider/theme-provider-demo.svelte +182 -0
  137. package/dist/generic/theme-provider/theme-provider-demo.svelte.d.ts +3 -0
  138. package/dist/generic/theme-provider/theme-provider.svelte +83 -0
  139. package/dist/generic/theme-provider/theme-provider.svelte.d.ts +44 -0
  140. package/dist/generic/toaster/toaster.svelte +31 -6
  141. package/dist/generic/toaster/toaster.svelte.d.ts +7 -15
  142. package/dist/generic/tooltip/tooltip.svelte +389 -0
  143. package/dist/generic/tooltip/tooltip.svelte.d.ts +21 -0
  144. package/dist/helpers/ago.d.ts +7 -1
  145. package/dist/helpers/ago.js +6 -0
  146. package/dist/helpers/animation-actions.d.ts +124 -0
  147. package/dist/helpers/animation-actions.js +299 -0
  148. package/dist/helpers/animations.d.ts +198 -0
  149. package/dist/helpers/animations.js +280 -0
  150. package/dist/helpers/announcer.d.ts +118 -0
  151. package/dist/helpers/announcer.js +250 -0
  152. package/dist/helpers/copy-to-clipboard.svelte.d.ts +5 -0
  153. package/dist/helpers/copy-to-clipboard.svelte.js +28 -0
  154. package/dist/helpers/debounce.d.ts +7 -0
  155. package/dist/helpers/debounce.js +7 -0
  156. package/dist/helpers/focus.d.ts +123 -0
  157. package/dist/helpers/focus.js +335 -0
  158. package/dist/helpers/fuzzy-search.d.ts +41 -0
  159. package/dist/helpers/fuzzy-search.js +114 -0
  160. package/dist/helpers/index.d.ts +24 -0
  161. package/dist/helpers/index.js +24 -0
  162. package/dist/helpers/navigate-to.d.ts +4 -0
  163. package/dist/helpers/navigate-to.js +4 -0
  164. package/dist/helpers/positioning.d.ts +97 -0
  165. package/dist/helpers/positioning.js +230 -0
  166. package/dist/helpers/round-to-decimals.d.ts +7 -5
  167. package/dist/helpers/round-to-decimals.js +7 -5
  168. package/dist/helpers/spring.svelte.d.ts +97 -0
  169. package/dist/helpers/spring.svelte.js +216 -0
  170. package/dist/helpers/subscribable.d.ts +1 -2
  171. package/dist/helpers/theme.svelte.d.ts +63 -0
  172. package/dist/helpers/theme.svelte.js +123 -0
  173. package/dist/helpers/unique-id.d.ts +4 -0
  174. package/dist/helpers/unique-id.js +4 -0
  175. package/dist/helpers/use-position.svelte.d.ts +96 -0
  176. package/dist/helpers/use-position.svelte.js +189 -0
  177. package/dist/helpers/use-virtual-list.svelte.d.ts +121 -0
  178. package/dist/helpers/use-virtual-list.svelte.js +239 -0
  179. package/dist/icons/angle-right-icon.svelte +2 -1
  180. package/dist/icons/angle-right-icon.svelte.d.ts +16 -12
  181. package/dist/icons/angle-up-icon.svelte.d.ts +22 -19
  182. package/dist/icons/check-icon.svelte.d.ts +22 -19
  183. package/dist/icons/copy-icon.svelte +46 -0
  184. package/dist/icons/copy-icon.svelte.d.ts +6 -0
  185. package/dist/icons/envelope-icon.svelte.d.ts +22 -19
  186. package/dist/icons/folder-open-icon.svelte.d.ts +22 -19
  187. package/dist/icons/hamburger-icon.svelte.d.ts +22 -19
  188. package/dist/icons/home-icon.svelte +2 -1
  189. package/dist/icons/home-icon.svelte.d.ts +16 -12
  190. package/dist/icons/index.d.ts +13 -0
  191. package/dist/icons/index.js +13 -0
  192. package/dist/icons/link-icon.svelte.d.ts +22 -19
  193. package/dist/icons/mobile-phone-icon.svelte.d.ts +22 -19
  194. package/dist/icons/phone-icon.svelte.d.ts +22 -19
  195. package/dist/icons/svg-icon.svelte +46 -12
  196. package/dist/icons/svg-icon.svelte.d.ts +13 -23
  197. package/dist/icons/upload-icon.svelte.d.ts +22 -19
  198. package/dist/images/icon.svelte +9 -3
  199. package/dist/images/icon.svelte.d.ts +6 -16
  200. package/dist/images/image.svelte +28 -10
  201. package/dist/images/image.svelte.d.ts +14 -26
  202. package/dist/images/index.d.ts +2 -0
  203. package/dist/images/index.js +2 -0
  204. package/dist/index.d.ts +13 -122
  205. package/dist/index.js +27 -135
  206. package/dist/layout/flex-col.svelte +65 -22
  207. package/dist/layout/flex-col.svelte.d.ts +12 -22
  208. package/dist/layout/flex-item.svelte +13 -3
  209. package/dist/layout/flex-item.svelte.d.ts +8 -18
  210. package/dist/layout/flex-row.svelte +70 -21
  211. package/dist/layout/flex-row.svelte.d.ts +14 -24
  212. package/dist/layout/grid.svelte +7 -1
  213. package/dist/layout/grid.svelte.d.ts +6 -26
  214. package/dist/layout/index.d.ts +4 -0
  215. package/dist/layout/index.js +4 -0
  216. package/dist/modals/alert.svelte +42 -28
  217. package/dist/modals/alert.svelte.d.ts +13 -24
  218. package/dist/modals/confirm.svelte +54 -37
  219. package/dist/modals/confirm.svelte.d.ts +16 -27
  220. package/dist/modals/dialog-body.svelte +10 -4
  221. package/dist/modals/dialog-body.svelte.d.ts +6 -26
  222. package/dist/modals/dialog-close-button.svelte +15 -9
  223. package/dist/modals/dialog-close-button.svelte.d.ts +6 -17
  224. package/dist/modals/dialog-footer.svelte +6 -3
  225. package/dist/modals/dialog-footer.svelte.d.ts +6 -26
  226. package/dist/modals/dialog-header.svelte +13 -1
  227. package/dist/modals/dialog-header.svelte.d.ts +7 -26
  228. package/dist/modals/dialog-window.svelte +42 -14
  229. package/dist/modals/dialog-window.svelte.d.ts +9 -17
  230. package/dist/modals/index.d.ts +9 -0
  231. package/dist/modals/index.js +9 -0
  232. package/dist/modals/modal.svelte +88 -25
  233. package/dist/modals/modal.svelte.d.ts +14 -22
  234. package/dist/modals/prompt.svelte +71 -50
  235. package/dist/modals/prompt.svelte.d.ts +19 -30
  236. package/dist/navigation/accordion/accordion.svelte +104 -0
  237. package/dist/navigation/accordion/accordion.svelte.d.ts +9 -0
  238. package/dist/navigation/app-bar/app-bar.svelte +26 -20
  239. package/dist/navigation/app-bar/app-bar.svelte.d.ts +10 -20
  240. package/dist/navigation/app-bar/app-branding.svelte +10 -5
  241. package/dist/navigation/app-bar/app-branding.svelte.d.ts +6 -15
  242. package/dist/navigation/app-bar/app-logo.svelte +20 -5
  243. package/dist/navigation/app-bar/app-logo.svelte.d.ts +9 -19
  244. package/dist/navigation/app-bar/app-nav-item.svelte +26 -14
  245. package/dist/navigation/app-bar/app-nav-item.svelte.d.ts +9 -20
  246. package/dist/navigation/app-bar/app-nav.svelte +39 -12
  247. package/dist/navigation/app-bar/app-nav.svelte.d.ts +8 -18
  248. package/dist/navigation/app-bar/index.d.ts +5 -0
  249. package/dist/navigation/app-bar/index.js +5 -0
  250. package/dist/navigation/breadcrumbs/breadcrumbs.svelte +54 -28
  251. package/dist/navigation/breadcrumbs/breadcrumbs.svelte.d.ts +12 -21
  252. package/dist/navigation/command-palette/command-palette.svelte +758 -0
  253. package/dist/navigation/command-palette/command-palette.svelte.d.ts +65 -0
  254. package/dist/navigation/command-palette/index.d.ts +2 -0
  255. package/dist/navigation/command-palette/index.js +1 -0
  256. package/dist/navigation/context-menu/README.md +146 -0
  257. package/dist/navigation/context-menu/context-menu-divider.svelte +21 -0
  258. package/dist/navigation/context-menu/context-menu-divider.svelte.d.ts +18 -0
  259. package/dist/navigation/context-menu/context-menu-item.svelte +268 -0
  260. package/dist/navigation/context-menu/context-menu-item.svelte.d.ts +19 -0
  261. package/dist/navigation/context-menu/context-menu.svelte +226 -0
  262. package/dist/navigation/context-menu/context-menu.svelte.d.ts +38 -0
  263. package/dist/navigation/context-menu/index.d.ts +3 -0
  264. package/dist/navigation/context-menu/index.js +3 -0
  265. package/dist/navigation/drawer/drawer.svelte +137 -0
  266. package/dist/navigation/drawer/drawer.svelte.d.ts +11 -0
  267. package/dist/navigation/dropdown-button/dropdown-button.svelte +58 -20
  268. package/dist/navigation/dropdown-button/dropdown-button.svelte.d.ts +10 -20
  269. package/dist/navigation/index.d.ts +11 -0
  270. package/dist/navigation/index.js +14 -0
  271. package/dist/navigation/pagination/pagination.svelte +55 -42
  272. package/dist/navigation/pagination/pagination.svelte.d.ts +10 -21
  273. package/dist/navigation/side-bar/side-bar.svelte +18 -9
  274. package/dist/navigation/side-bar/side-bar.svelte.d.ts +7 -17
  275. package/dist/navigation/tabs/index.d.ts +4 -0
  276. package/dist/navigation/tabs/index.js +3 -0
  277. package/dist/navigation/tabs/tab-context.d.ts +12 -6
  278. package/dist/navigation/tabs/tab-group.svelte +268 -55
  279. package/dist/navigation/tabs/tab-group.svelte.d.ts +9 -20
  280. package/dist/navigation/tabs/tab.svelte +64 -34
  281. package/dist/navigation/tabs/tab.svelte.d.ts +11 -22
  282. package/dist/navigation/wizard/index.d.ts +3 -0
  283. package/dist/navigation/wizard/index.js +2 -0
  284. package/dist/navigation/wizard/wizard-context.d.ts +13 -8
  285. package/dist/navigation/wizard/wizard-step.svelte +38 -15
  286. package/dist/navigation/wizard/wizard-step.svelte.d.ts +8 -18
  287. package/dist/navigation/wizard/wizard.svelte +123 -89
  288. package/dist/navigation/wizard/wizard.svelte.d.ts +15 -26
  289. package/dist/placeholders/index.d.ts +6 -0
  290. package/dist/placeholders/index.js +6 -0
  291. package/dist/placeholders/loading.svelte +39 -23
  292. package/dist/placeholders/loading.svelte.d.ts +10 -17
  293. package/dist/placeholders/progress.svelte +7 -6
  294. package/dist/placeholders/progress.svelte.d.ts +5 -15
  295. package/dist/placeholders/skeleton-input.svelte +66 -38
  296. package/dist/placeholders/skeleton-input.svelte.d.ts +5 -15
  297. package/dist/placeholders/skeleton-paragraph.svelte +25 -0
  298. package/dist/placeholders/skeleton-paragraph.svelte.d.ts +8 -0
  299. package/dist/placeholders/skeleton-table.svelte +75 -0
  300. package/dist/placeholders/skeleton-table.svelte.d.ts +8 -0
  301. package/dist/placeholders/skeleton-text.svelte +46 -16
  302. package/dist/placeholders/skeleton-text.svelte.d.ts +7 -17
  303. package/dist/tables/cell-renderers.d.ts +24 -0
  304. package/dist/tables/cell-renderers.js +228 -0
  305. package/dist/tables/data-grid.svelte +332 -135
  306. package/dist/tables/data-grid.svelte.d.ts +34 -33
  307. package/dist/tables/index.d.ts +10 -0
  308. package/dist/tables/index.js +12 -0
  309. package/dist/tables/table-caption.svelte +13 -4
  310. package/dist/tables/table-caption.svelte.d.ts +8 -18
  311. package/dist/tables/table-cell.svelte +45 -15
  312. package/dist/tables/table-cell.svelte.d.ts +10 -19
  313. package/dist/tables/table-context.svelte.d.ts +32 -0
  314. package/dist/tables/table-context.svelte.js +160 -0
  315. package/dist/tables/table-header-cell.svelte +158 -19
  316. package/dist/tables/table-header-cell.svelte.d.ts +15 -19
  317. package/dist/tables/table-header.svelte +31 -6
  318. package/dist/tables/table-header.svelte.d.ts +7 -26
  319. package/dist/tables/table-row.svelte +87 -7
  320. package/dist/tables/table-row.svelte.d.ts +10 -26
  321. package/dist/tables/table.svelte +61 -2
  322. package/dist/tables/table.svelte.d.ts +13 -26
  323. package/dist/test-utils/accessibility-helpers.d.ts +80 -0
  324. package/dist/test-utils/accessibility-helpers.js +220 -0
  325. package/dist/test-utils/index.d.ts +8 -0
  326. package/dist/test-utils/index.js +8 -0
  327. package/dist/test-utils/mock-helpers.d.ts +68 -0
  328. package/dist/test-utils/mock-helpers.js +165 -0
  329. package/dist/test-utils/render-helpers.d.ts +55 -0
  330. package/dist/test-utils/render-helpers.js +114 -0
  331. package/dist/test-utils/setup.d.ts +5 -0
  332. package/dist/test-utils/setup.js +91 -0
  333. package/dist/test-utils/test-data.d.ts +102 -0
  334. package/dist/test-utils/test-data.js +99 -0
  335. package/dist/timeline/index.d.ts +2 -0
  336. package/dist/timeline/index.js +2 -0
  337. package/dist/timeline/timeline-item.svelte +26 -9
  338. package/dist/timeline/timeline-item.svelte.d.ts +13 -23
  339. package/dist/timeline/timeline.svelte +12 -6
  340. package/dist/timeline/timeline.svelte.d.ts +6 -26
  341. package/dist/types/data.d.ts +61 -0
  342. package/dist/types/date.d.ts +1 -1
  343. package/dist/types/form.d.ts +20 -2
  344. package/dist/types/index.d.ts +5 -0
  345. package/dist/types/index.js +5 -0
  346. package/dist/types/size.d.ts +22 -0
  347. package/dist/types/size.js +22 -0
  348. package/dist/typography/code-block.svelte +89 -10
  349. package/dist/typography/code-block.svelte.d.ts +7 -17
  350. package/dist/typography/code.svelte +89 -0
  351. package/dist/typography/code.svelte.d.ts +7 -0
  352. package/dist/typography/headline.svelte +29 -9
  353. package/dist/typography/headline.svelte.d.ts +8 -18
  354. package/dist/typography/index.d.ts +6 -0
  355. package/dist/typography/index.js +6 -0
  356. package/dist/typography/paragraph.svelte +18 -10
  357. package/dist/typography/paragraph.svelte.d.ts +6 -26
  358. package/dist/typography/subtitle.svelte +18 -4
  359. package/dist/typography/subtitle.svelte.d.ts +8 -18
  360. package/dist/typography/text.svelte +20 -5
  361. package/dist/typography/text.svelte.d.ts +9 -19
  362. package/package.json +46 -36
  363. package/dist/navigation/accordian/accordian.svelte +0 -62
  364. package/dist/navigation/accordian/accordian.svelte.d.ts +0 -19
  365. package/dist/tables/table-body.svelte +0 -3
  366. package/dist/tables/table-body.svelte.d.ts +0 -27
  367. package/dist/tables/table-footer-cell.svelte +0 -22
  368. package/dist/tables/table-footer-cell.svelte.d.ts +0 -18
  369. package/dist/tables/table-footer-row.svelte +0 -3
  370. package/dist/tables/table-footer-row.svelte.d.ts +0 -27
  371. package/dist/tables/table-footer.svelte +0 -13
  372. package/dist/tables/table-footer.svelte.d.ts +0 -27
  373. package/dist/tables/table-header-row.svelte +0 -4
  374. package/dist/tables/table-header-row.svelte.d.ts +0 -27
@@ -0,0 +1,97 @@
1
+ /**
2
+ * Positioning Utilities
3
+ *
4
+ * Pure JavaScript positioning calculations for tooltips, popovers, dropdowns, etc.
5
+ * Handles viewport collision detection, auto-flip positioning, and arrow placement.
6
+ *
7
+ * Built from scratch with zero dependencies as an alternative to Floating UI.
8
+ */
9
+ export type Placement = 'top' | 'top-start' | 'top-end' | 'bottom' | 'bottom-start' | 'bottom-end' | 'left' | 'left-start' | 'left-end' | 'right' | 'right-start' | 'right-end';
10
+ export type Side = 'top' | 'bottom' | 'left' | 'right';
11
+ export type Alignment = 'start' | 'center' | 'end';
12
+ export interface Position {
13
+ top: number;
14
+ left: number;
15
+ side: Side;
16
+ alignment: Alignment;
17
+ }
18
+ export interface ArrowPosition {
19
+ top?: number;
20
+ left?: number;
21
+ side: Side;
22
+ }
23
+ export interface PositionOptions {
24
+ /**
25
+ * Preferred placement for the floating element
26
+ */
27
+ placement: Placement;
28
+ /**
29
+ * Offset from the reference element in pixels
30
+ * @default 8
31
+ */
32
+ offset?: number;
33
+ /**
34
+ * Whether to flip to opposite side if doesn't fit
35
+ * @default true
36
+ */
37
+ autoFlip?: boolean;
38
+ /**
39
+ * Whether to adjust alignment if doesn't fit
40
+ * @default true
41
+ */
42
+ autoAlign?: boolean;
43
+ /**
44
+ * Padding from viewport edges in pixels
45
+ * @default 8
46
+ */
47
+ viewportPadding?: number;
48
+ /**
49
+ * Whether to include an arrow/pointer
50
+ * @default false
51
+ */
52
+ arrow?: boolean;
53
+ /**
54
+ * Size of the arrow in pixels
55
+ * @default 8
56
+ */
57
+ arrowSize?: number;
58
+ }
59
+ export interface Rect {
60
+ top: number;
61
+ left: number;
62
+ right: number;
63
+ bottom: number;
64
+ width: number;
65
+ height: number;
66
+ }
67
+ /**
68
+ * Get the bounding rect of an element
69
+ */
70
+ export declare function getRect(element: Element): Rect;
71
+ /**
72
+ * Get the viewport dimensions
73
+ */
74
+ export declare function getViewport(): Rect;
75
+ /**
76
+ * Parse placement string into side and alignment
77
+ */
78
+ export declare function parsePlacement(placement: Placement): {
79
+ side: Side;
80
+ alignment: Alignment;
81
+ };
82
+ /**
83
+ * Get the opposite side
84
+ */
85
+ export declare function getOppositeSide(side: Side): Side;
86
+ /**
87
+ * Calculate the best position for a floating element
88
+ */
89
+ export declare function calculatePosition(referenceElement: Element, floatingElement: Element, options: PositionOptions): Position;
90
+ /**
91
+ * Calculate arrow position relative to the floating element
92
+ */
93
+ export declare function calculateArrowPosition(referenceElement: Element, floatingElement: Element, side: Side, arrowSize?: number): ArrowPosition;
94
+ /**
95
+ * Create a positioning update function that can be called on scroll/resize
96
+ */
97
+ export declare function createPositionUpdater(referenceElement: Element, floatingElement: Element, options: PositionOptions, onUpdate: (position: Position, arrow?: ArrowPosition) => void): () => void;
@@ -0,0 +1,230 @@
1
+ /**
2
+ * Positioning Utilities
3
+ *
4
+ * Pure JavaScript positioning calculations for tooltips, popovers, dropdowns, etc.
5
+ * Handles viewport collision detection, auto-flip positioning, and arrow placement.
6
+ *
7
+ * Built from scratch with zero dependencies as an alternative to Floating UI.
8
+ */
9
+ /**
10
+ * Get the bounding rect of an element
11
+ */
12
+ export function getRect(element) {
13
+ const rect = element.getBoundingClientRect();
14
+ return {
15
+ top: rect.top,
16
+ left: rect.left,
17
+ right: rect.right,
18
+ bottom: rect.bottom,
19
+ width: rect.width,
20
+ height: rect.height
21
+ };
22
+ }
23
+ /**
24
+ * Get the viewport dimensions
25
+ */
26
+ export function getViewport() {
27
+ return {
28
+ top: 0,
29
+ left: 0,
30
+ right: window.innerWidth,
31
+ bottom: window.innerHeight,
32
+ width: window.innerWidth,
33
+ height: window.innerHeight
34
+ };
35
+ }
36
+ /**
37
+ * Parse placement string into side and alignment
38
+ */
39
+ export function parsePlacement(placement) {
40
+ const [side, alignment = 'center'] = placement.split('-');
41
+ return { side, alignment: alignment || 'center' };
42
+ }
43
+ /**
44
+ * Get the opposite side
45
+ */
46
+ export function getOppositeSide(side) {
47
+ const opposites = {
48
+ top: 'bottom',
49
+ bottom: 'top',
50
+ left: 'right',
51
+ right: 'left'
52
+ };
53
+ return opposites[side];
54
+ }
55
+ /**
56
+ * Calculate position for a given side and alignment
57
+ */
58
+ function calculatePositionForSide(reference, floating, side, alignment, offset) {
59
+ let top = 0;
60
+ let left = 0;
61
+ // Calculate based on side
62
+ switch (side) {
63
+ case 'top':
64
+ top = reference.top - floating.height - offset;
65
+ left = reference.left;
66
+ break;
67
+ case 'bottom':
68
+ top = reference.bottom + offset;
69
+ left = reference.left;
70
+ break;
71
+ case 'left':
72
+ top = reference.top;
73
+ left = reference.left - floating.width - offset;
74
+ break;
75
+ case 'right':
76
+ top = reference.top;
77
+ left = reference.right + offset;
78
+ break;
79
+ }
80
+ // Adjust for alignment
81
+ if (side === 'top' || side === 'bottom') {
82
+ switch (alignment) {
83
+ case 'start':
84
+ // left already set
85
+ break;
86
+ case 'center':
87
+ left = reference.left + reference.width / 2 - floating.width / 2;
88
+ break;
89
+ case 'end':
90
+ left = reference.right - floating.width;
91
+ break;
92
+ }
93
+ }
94
+ else {
95
+ // left or right
96
+ switch (alignment) {
97
+ case 'start':
98
+ // top already set
99
+ break;
100
+ case 'center':
101
+ top = reference.top + reference.height / 2 - floating.height / 2;
102
+ break;
103
+ case 'end':
104
+ top = reference.bottom - floating.height;
105
+ break;
106
+ }
107
+ }
108
+ return { top, left };
109
+ }
110
+ /**
111
+ * Check if floating element fits in viewport at given position
112
+ */
113
+ function fitsInViewport(position, floating, viewport, padding) {
114
+ const right = position.left + floating.width;
115
+ const bottom = position.top + floating.height;
116
+ return (position.top >= viewport.top + padding &&
117
+ position.left >= viewport.left + padding &&
118
+ right <= viewport.right - padding &&
119
+ bottom <= viewport.bottom - padding);
120
+ }
121
+ /**
122
+ * Calculate the best position for a floating element
123
+ */
124
+ export function calculatePosition(referenceElement, floatingElement, options) {
125
+ const { placement, offset = 8, autoFlip = true, autoAlign = true, viewportPadding = 8 } = options;
126
+ const reference = getRect(referenceElement);
127
+ const floating = getRect(floatingElement);
128
+ const viewport = getViewport();
129
+ let { side, alignment } = parsePlacement(placement);
130
+ // Try preferred placement
131
+ let position = calculatePositionForSide(reference, floating, side, alignment, offset);
132
+ let fits = fitsInViewport(position, floating, viewport, viewportPadding);
133
+ // Try flipping to opposite side if doesn't fit
134
+ if (!fits && autoFlip) {
135
+ const oppositeSide = getOppositeSide(side);
136
+ const flippedPosition = calculatePositionForSide(reference, floating, oppositeSide, alignment, offset);
137
+ const flippedFits = fitsInViewport(flippedPosition, floating, viewport, viewportPadding);
138
+ if (flippedFits) {
139
+ side = oppositeSide;
140
+ position = flippedPosition;
141
+ fits = true;
142
+ }
143
+ }
144
+ // Try adjusting alignment if still doesn't fit
145
+ if (!fits && autoAlign) {
146
+ const alignments = ['start', 'center', 'end'];
147
+ for (const testAlignment of alignments) {
148
+ if (testAlignment === alignment)
149
+ continue;
150
+ const adjustedPosition = calculatePositionForSide(reference, floating, side, testAlignment, offset);
151
+ const adjustedFits = fitsInViewport(adjustedPosition, floating, viewport, viewportPadding);
152
+ if (adjustedFits) {
153
+ alignment = testAlignment;
154
+ position = adjustedPosition;
155
+ fits = true;
156
+ break;
157
+ }
158
+ }
159
+ }
160
+ // Clamp to viewport if still doesn't fit
161
+ if (!fits) {
162
+ position.left = Math.max(viewport.left + viewportPadding, Math.min(position.left, viewport.right - floating.width - viewportPadding));
163
+ position.top = Math.max(viewport.top + viewportPadding, Math.min(position.top, viewport.bottom - floating.height - viewportPadding));
164
+ }
165
+ return {
166
+ top: position.top,
167
+ left: position.left,
168
+ side,
169
+ alignment
170
+ };
171
+ }
172
+ /**
173
+ * Calculate arrow position relative to the floating element
174
+ */
175
+ export function calculateArrowPosition(referenceElement, floatingElement, side, arrowSize = 8) {
176
+ const reference = getRect(referenceElement);
177
+ const floating = getRect(floatingElement);
178
+ // Arrow should be on the opposite side of where the tooltip is positioned
179
+ // If tooltip is on top, arrow is on bottom pointing down toward the element
180
+ const arrowPosition = { side: getOppositeSide(side) };
181
+ // Calculate arrow position to point at center of reference element
182
+ // Arrow CSS creates a triangle using borders, which is arrowSize*2 wide/tall
183
+ // The point of the arrow is at the center of that dimension
184
+ if (side === 'top' || side === 'bottom') {
185
+ // Arrow is horizontally positioned
186
+ const referenceCenterX = reference.left + reference.width / 2;
187
+ const floatingLeft = floating.left;
188
+ // Center the arrow (which is arrowSize*2 wide) on the reference center
189
+ arrowPosition.left = referenceCenterX - floatingLeft - arrowSize;
190
+ // Clamp arrow within floating element bounds, with padding to avoid rounded corners
191
+ // Typical border-radius is 4-6px, so keep arrow at least 8px from edges
192
+ const cornerPadding = arrowSize; // Keep arrow away from border-radius areas
193
+ arrowPosition.left = Math.max(cornerPadding, Math.min(arrowPosition.left, floating.width - cornerPadding - arrowSize * 2));
194
+ }
195
+ else {
196
+ // Arrow is vertically positioned
197
+ const referenceCenterY = reference.top + reference.height / 2;
198
+ const floatingTop = floating.top;
199
+ // Center the arrow (which is arrowSize*2 tall) on the reference center
200
+ arrowPosition.top = referenceCenterY - floatingTop - arrowSize;
201
+ // Clamp arrow within floating element bounds, with padding to avoid rounded corners
202
+ // Typical border-radius is 4-6px, so keep arrow at least 8px from edges
203
+ const cornerPadding = arrowSize; // Keep arrow away from border-radius areas
204
+ arrowPosition.top = Math.max(cornerPadding, Math.min(arrowPosition.top, floating.height - cornerPadding - arrowSize * 2));
205
+ }
206
+ return arrowPosition;
207
+ }
208
+ /**
209
+ * Create a positioning update function that can be called on scroll/resize
210
+ */
211
+ export function createPositionUpdater(referenceElement, floatingElement, options, onUpdate) {
212
+ const update = () => {
213
+ const position = calculatePosition(referenceElement, floatingElement, options);
214
+ let arrow;
215
+ if (options.arrow) {
216
+ arrow = calculateArrowPosition(referenceElement, floatingElement, position.side, options.arrowSize);
217
+ }
218
+ onUpdate(position, arrow);
219
+ };
220
+ // Initial update
221
+ update();
222
+ // Listen for scroll and resize
223
+ window.addEventListener('scroll', update, { passive: true });
224
+ window.addEventListener('resize', update, { passive: true });
225
+ // Return cleanup function
226
+ return () => {
227
+ window.removeEventListener('scroll', update);
228
+ window.removeEventListener('resize', update);
229
+ };
230
+ }
@@ -1,12 +1,14 @@
1
1
  /**
2
2
  * Round a number to a specific number of decimals
3
- *
4
- * @param value
5
- * @param decimals
6
- * @returns
3
+ * @param value - The number to round
4
+ * @param decimals - Number of decimal places
5
+ * @returns The rounded number
7
6
  */
8
7
  export declare const roundToDecimals: (value: number, decimals: number) => number;
9
8
  /**
10
- * Format a number to a string with a specific number of decimals
9
+ * Format a number to a string with a specific number of decimals using locale formatting
10
+ * @param value - The number to format
11
+ * @param decimals - Number of decimal places
12
+ * @returns The formatted number string
11
13
  */
12
14
  export declare const formatNumber: (value: number, decimals: number) => string;
@@ -1,9 +1,8 @@
1
1
  /**
2
2
  * Round a number to a specific number of decimals
3
- *
4
- * @param value
5
- * @param decimals
6
- * @returns
3
+ * @param value - The number to round
4
+ * @param decimals - Number of decimal places
5
+ * @returns The rounded number
7
6
  */
8
7
  export const roundToDecimals = (value, decimals) => {
9
8
  if (!decimals)
@@ -11,7 +10,10 @@ export const roundToDecimals = (value, decimals) => {
11
10
  return Number(Math.round(Number(`${value}e${decimals}`)) + `e-${decimals}`);
12
11
  };
13
12
  /**
14
- * Format a number to a string with a specific number of decimals
13
+ * Format a number to a string with a specific number of decimals using locale formatting
14
+ * @param value - The number to format
15
+ * @param decimals - Number of decimal places
16
+ * @returns The formatted number string
15
17
  */
16
18
  export const formatNumber = (value, decimals) => {
17
19
  return roundToDecimals(value, decimals).toLocaleString();
@@ -0,0 +1,97 @@
1
+ /**
2
+ * Spring animation composable using Svelte 5 runes
3
+ * Provides smooth, physics-based animations with $state reactivity
4
+ * @module spring
5
+ */
6
+ import { springPresets, type SpringConfig } from './animations.js';
7
+ /**
8
+ * Options for creating a spring animation
9
+ */
10
+ export interface UseSpringOptions extends SpringConfig {
11
+ /** Initial value */
12
+ initialValue?: number;
13
+ /** Preset configuration name */
14
+ preset?: keyof typeof springPresets;
15
+ }
16
+ /**
17
+ * Spring animation composable with Svelte 5 $state
18
+ *
19
+ * @example
20
+ * ```typescript
21
+ * const scale = useSpring({ initialValue: 1, preset: 'wobbly' });
22
+ *
23
+ * // Set target value - spring will animate toward it
24
+ * scale.set(1.5);
25
+ *
26
+ * // Use the current value in your template
27
+ * console.log(scale.value); // Reactive value that updates during animation
28
+ * ```
29
+ */
30
+ export declare function useSpring(options?: UseSpringOptions): {
31
+ /**
32
+ * Current animated value (reactive)
33
+ */
34
+ readonly value: number;
35
+ /**
36
+ * Current velocity (reactive)
37
+ */
38
+ readonly velocity: number;
39
+ /**
40
+ * Whether the spring is currently animating
41
+ */
42
+ readonly isAnimating: boolean;
43
+ /**
44
+ * Set target value to animate toward
45
+ */
46
+ set(newTarget: number, hard?: boolean): void;
47
+ /**
48
+ * Update spring configuration
49
+ */
50
+ updateConfig(newConfig: Partial<SpringConfig>): void;
51
+ /**
52
+ * Stop animation and reset to value
53
+ */
54
+ reset(value?: number): void;
55
+ /**
56
+ * Cleanup - stop animation
57
+ */
58
+ destroy(): void;
59
+ };
60
+ /**
61
+ * Spring animation for object with multiple properties
62
+ *
63
+ * @example
64
+ * ```typescript
65
+ * const transform = useSpringObject({ x: 0, y: 0, scale: 1 });
66
+ *
67
+ * transform.set({ x: 100, y: 50, scale: 1.5 });
68
+ *
69
+ * console.log(transform.values); // { x: 0-100, y: 0-50, scale: 1-1.5 } (animated)
70
+ * ```
71
+ */
72
+ export declare function useSpringObject<T extends Record<string, number>>(initialValues: T, options?: UseSpringOptions): {
73
+ /**
74
+ * Current animated values (reactive)
75
+ */
76
+ readonly values: T;
77
+ /**
78
+ * Whether any spring is currently animating
79
+ */
80
+ readonly isAnimating: boolean;
81
+ /**
82
+ * Set target values to animate toward
83
+ */
84
+ set(newTargets: Partial<T>, hard?: boolean): void;
85
+ /**
86
+ * Update spring configuration for all springs
87
+ */
88
+ updateConfig(newConfig: Partial<SpringConfig>): void;
89
+ /**
90
+ * Reset all springs to values
91
+ */
92
+ reset(values?: Partial<T>): void;
93
+ /**
94
+ * Cleanup - stop all animations
95
+ */
96
+ destroy(): void;
97
+ };
@@ -0,0 +1,216 @@
1
+ /**
2
+ * Spring animation composable using Svelte 5 runes
3
+ * Provides smooth, physics-based animations with $state reactivity
4
+ * @module spring
5
+ */
6
+ import { stepSpring, isSpringSettled, springPresets, prefersReducedMotion } from './animations.js';
7
+ /**
8
+ * Spring animation composable with Svelte 5 $state
9
+ *
10
+ * @example
11
+ * ```typescript
12
+ * const scale = useSpring({ initialValue: 1, preset: 'wobbly' });
13
+ *
14
+ * // Set target value - spring will animate toward it
15
+ * scale.set(1.5);
16
+ *
17
+ * // Use the current value in your template
18
+ * console.log(scale.value); // Reactive value that updates during animation
19
+ * ```
20
+ */
21
+ export function useSpring(options = {}) {
22
+ const preset = options.preset ? springPresets[options.preset] : springPresets.default;
23
+ const config = {
24
+ stiffness: options.stiffness ?? preset.stiffness,
25
+ damping: options.damping ?? preset.damping,
26
+ precision: options.precision ?? preset.precision
27
+ };
28
+ let state = $state({
29
+ value: options.initialValue ?? 0,
30
+ velocity: 0
31
+ });
32
+ let target = $state(options.initialValue ?? 0);
33
+ let animationFrameId = null;
34
+ let lastTime = null;
35
+ /**
36
+ * Animation loop using requestAnimationFrame
37
+ */
38
+ function tick(currentTime) {
39
+ // Initialize lastTime on first frame
40
+ if (lastTime === null) {
41
+ lastTime = currentTime;
42
+ animationFrameId = requestAnimationFrame(tick);
43
+ return;
44
+ }
45
+ // Calculate delta time in seconds
46
+ const deltaTime = Math.min((currentTime - lastTime) / 1000, 0.1); // Cap at 100ms
47
+ lastTime = currentTime;
48
+ // Skip animation if user prefers reduced motion - snap to target
49
+ if (prefersReducedMotion()) {
50
+ state.value = target;
51
+ state.velocity = 0;
52
+ stopAnimation();
53
+ return;
54
+ }
55
+ // Calculate next spring state
56
+ const newState = stepSpring(state, target, config, deltaTime);
57
+ state = newState;
58
+ // Check if spring has settled
59
+ if (isSpringSettled(state, target, config.precision)) {
60
+ // Snap to target and stop
61
+ state.value = target;
62
+ state.velocity = 0;
63
+ stopAnimation();
64
+ }
65
+ else {
66
+ // Continue animation
67
+ animationFrameId = requestAnimationFrame(tick);
68
+ }
69
+ }
70
+ /**
71
+ * Start the animation loop
72
+ */
73
+ function startAnimation() {
74
+ if (animationFrameId !== null)
75
+ return; // Already animating
76
+ lastTime = null;
77
+ animationFrameId = requestAnimationFrame(tick);
78
+ }
79
+ /**
80
+ * Stop the animation loop
81
+ */
82
+ function stopAnimation() {
83
+ if (animationFrameId !== null) {
84
+ cancelAnimationFrame(animationFrameId);
85
+ animationFrameId = null;
86
+ }
87
+ lastTime = null;
88
+ }
89
+ return {
90
+ /**
91
+ * Current animated value (reactive)
92
+ */
93
+ get value() {
94
+ return state.value;
95
+ },
96
+ /**
97
+ * Current velocity (reactive)
98
+ */
99
+ get velocity() {
100
+ return state.velocity;
101
+ },
102
+ /**
103
+ * Whether the spring is currently animating
104
+ */
105
+ get isAnimating() {
106
+ return animationFrameId !== null;
107
+ },
108
+ /**
109
+ * Set target value to animate toward
110
+ */
111
+ set(newTarget, hard = false) {
112
+ target = newTarget;
113
+ if (hard || prefersReducedMotion()) {
114
+ // Hard set - snap immediately without animation
115
+ state.value = newTarget;
116
+ state.velocity = 0;
117
+ stopAnimation();
118
+ }
119
+ else {
120
+ // Soft set - animate toward target
121
+ startAnimation();
122
+ }
123
+ },
124
+ /**
125
+ * Update spring configuration
126
+ */
127
+ updateConfig(newConfig) {
128
+ Object.assign(config, newConfig);
129
+ },
130
+ /**
131
+ * Stop animation and reset to value
132
+ */
133
+ reset(value = 0) {
134
+ target = value;
135
+ state.value = value;
136
+ state.velocity = 0;
137
+ stopAnimation();
138
+ },
139
+ /**
140
+ * Cleanup - stop animation
141
+ */
142
+ destroy() {
143
+ stopAnimation();
144
+ }
145
+ };
146
+ }
147
+ /**
148
+ * Spring animation for object with multiple properties
149
+ *
150
+ * @example
151
+ * ```typescript
152
+ * const transform = useSpringObject({ x: 0, y: 0, scale: 1 });
153
+ *
154
+ * transform.set({ x: 100, y: 50, scale: 1.5 });
155
+ *
156
+ * console.log(transform.values); // { x: 0-100, y: 0-50, scale: 1-1.5 } (animated)
157
+ * ```
158
+ */
159
+ export function useSpringObject(initialValues, options = {}) {
160
+ // Create a spring for each property
161
+ const springs = Object.fromEntries(Object.entries(initialValues).map(([key, value]) => [
162
+ key,
163
+ useSpring({ ...options, initialValue: value })
164
+ ]));
165
+ return {
166
+ /**
167
+ * Current animated values (reactive)
168
+ */
169
+ get values() {
170
+ return Object.fromEntries(Object.entries(springs).map(([key, spring]) => [key, spring.value]));
171
+ },
172
+ /**
173
+ * Whether any spring is currently animating
174
+ */
175
+ get isAnimating() {
176
+ return Object.values(springs).some((spring) => spring.isAnimating);
177
+ },
178
+ /**
179
+ * Set target values to animate toward
180
+ */
181
+ set(newTargets, hard = false) {
182
+ for (const [key, value] of Object.entries(newTargets)) {
183
+ if (key in springs && typeof value === 'number') {
184
+ springs[key].set(value, hard);
185
+ }
186
+ }
187
+ },
188
+ /**
189
+ * Update spring configuration for all springs
190
+ */
191
+ updateConfig(newConfig) {
192
+ Object.values(springs).forEach((spring) => spring.updateConfig(newConfig));
193
+ },
194
+ /**
195
+ * Reset all springs to values
196
+ */
197
+ reset(values) {
198
+ if (values) {
199
+ for (const [key, value] of Object.entries(values)) {
200
+ if (key in springs && typeof value === 'number') {
201
+ springs[key].reset(value);
202
+ }
203
+ }
204
+ }
205
+ else {
206
+ Object.values(springs).forEach((spring) => spring.reset());
207
+ }
208
+ },
209
+ /**
210
+ * Cleanup - stop all animations
211
+ */
212
+ destroy() {
213
+ Object.values(springs).forEach((spring) => spring.destroy());
214
+ }
215
+ };
216
+ }
@@ -1,6 +1,5 @@
1
- /// <reference types="svelte" />
2
1
  import type { Writable } from 'svelte/store';
3
2
  export declare const subscribable: <T>(subject: Writable<T>) => {
4
- subscribe: (this: void, run: import("svelte/store").Subscriber<T>, invalidate?: import("svelte/store").Invalidator<T> | undefined) => import("svelte/store").Unsubscriber;
3
+ subscribe: (this: void, run: import("svelte/store").Subscriber<T>, invalidate?: () => void) => import("svelte/store").Unsubscriber;
5
4
  };
6
5
  export type Subscribable<T> = ReturnType<typeof subscribable<T>>;