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,165 @@
1
+ /**
2
+ * Mock helpers for testing
3
+ */
4
+ import { vi, beforeEach, afterEach } from 'vitest';
5
+ /**
6
+ * Mock a function with optional implementation
7
+ */
8
+ export function mockFunction(implementation) {
9
+ return implementation ? vi.fn(implementation) : vi.fn();
10
+ }
11
+ /**
12
+ * Mock console methods to suppress output during tests
13
+ */
14
+ export function mockConsole() {
15
+ const originalConsole = { ...console };
16
+ beforeEach(() => {
17
+ console.log = vi.fn();
18
+ console.warn = vi.fn();
19
+ console.error = vi.fn();
20
+ console.info = vi.fn();
21
+ });
22
+ afterEach(() => {
23
+ Object.assign(console, originalConsole);
24
+ });
25
+ }
26
+ /**
27
+ * Mock fetch API
28
+ */
29
+ export function mockFetch(response, options) {
30
+ const mockResponse = {
31
+ ok: options?.ok ?? true,
32
+ status: options?.status ?? 200,
33
+ json: async () => response,
34
+ text: async () => JSON.stringify(response),
35
+ blob: async () => new Blob([JSON.stringify(response)]),
36
+ arrayBuffer: async () => new ArrayBuffer(0)
37
+ };
38
+ global.fetch = vi.fn().mockResolvedValue(mockResponse);
39
+ return global.fetch;
40
+ }
41
+ /**
42
+ * Mock setTimeout/setInterval for testing
43
+ */
44
+ export function mockTimers() {
45
+ beforeEach(() => {
46
+ vi.useFakeTimers();
47
+ });
48
+ afterEach(() => {
49
+ vi.useRealTimers();
50
+ });
51
+ }
52
+ /**
53
+ * Mock Date.now() for consistent timestamps
54
+ */
55
+ export function mockDateNow(timestamp = 1609459200000) {
56
+ const originalDateNow = Date.now;
57
+ beforeEach(() => {
58
+ Date.now = vi.fn(() => timestamp);
59
+ });
60
+ afterEach(() => {
61
+ Date.now = originalDateNow;
62
+ });
63
+ }
64
+ /**
65
+ * Mock window.location
66
+ */
67
+ export function mockLocation(url = 'http://localhost:3000') {
68
+ delete window.location;
69
+ window.location = new URL(url);
70
+ }
71
+ /**
72
+ * Mock clipboard API
73
+ */
74
+ export function mockClipboard() {
75
+ const mockClipboard = {
76
+ writeText: vi.fn().mockResolvedValue(undefined),
77
+ readText: vi.fn().mockResolvedValue(''),
78
+ write: vi.fn().mockResolvedValue(undefined),
79
+ read: vi.fn().mockResolvedValue([])
80
+ };
81
+ Object.defineProperty(navigator, 'clipboard', {
82
+ value: mockClipboard,
83
+ writable: true
84
+ });
85
+ return mockClipboard;
86
+ }
87
+ /**
88
+ * Mock getBoundingClientRect for positioning tests
89
+ */
90
+ export function mockGetBoundingClientRect(element, rect) {
91
+ const defaultRect = {
92
+ x: 0,
93
+ y: 0,
94
+ width: 100,
95
+ height: 50,
96
+ top: 0,
97
+ right: 100,
98
+ bottom: 50,
99
+ left: 0,
100
+ toJSON: () => ({})
101
+ };
102
+ element.getBoundingClientRect = vi.fn(() => ({ ...defaultRect, ...rect }));
103
+ }
104
+ /**
105
+ * Mock viewport size
106
+ */
107
+ export function mockViewport(width = 1024, height = 768) {
108
+ Object.defineProperty(window, 'innerWidth', {
109
+ writable: true,
110
+ configurable: true,
111
+ value: width
112
+ });
113
+ Object.defineProperty(window, 'innerHeight', {
114
+ writable: true,
115
+ configurable: true,
116
+ value: height
117
+ });
118
+ // Trigger resize event
119
+ window.dispatchEvent(new Event('resize'));
120
+ }
121
+ /**
122
+ * Mock media query
123
+ */
124
+ export function mockMediaQuery(query, matches = true) {
125
+ const mockMatchMedia = vi.fn().mockImplementation((q) => ({
126
+ matches: q === query ? matches : false,
127
+ media: q,
128
+ onchange: null,
129
+ addListener: vi.fn(),
130
+ removeListener: vi.fn(),
131
+ addEventListener: vi.fn(),
132
+ removeEventListener: vi.fn(),
133
+ dispatchEvent: vi.fn()
134
+ }));
135
+ Object.defineProperty(window, 'matchMedia', {
136
+ writable: true,
137
+ value: mockMatchMedia
138
+ });
139
+ return mockMatchMedia;
140
+ }
141
+ /**
142
+ * Mock prefers-reduced-motion
143
+ */
144
+ export function mockPrefersReducedMotion(enabled = true) {
145
+ mockMediaQuery('(prefers-reduced-motion: reduce)', enabled);
146
+ }
147
+ /**
148
+ * Mock prefers-color-scheme
149
+ */
150
+ export function mockPrefersColorScheme(scheme = 'light') {
151
+ mockMediaQuery(`(prefers-color-scheme: ${scheme})`, true);
152
+ }
153
+ /**
154
+ * Create a mock file for file input testing
155
+ */
156
+ export function createMockFile(name = 'test.txt', content = 'test content', type = 'text/plain') {
157
+ const blob = new Blob([content], { type });
158
+ return new File([blob], name, { type });
159
+ }
160
+ /**
161
+ * Create multiple mock files
162
+ */
163
+ export function createMockFiles(count = 3) {
164
+ return Array.from({ length: count }, (_, i) => createMockFile(`file${i + 1}.txt`, `Content ${i + 1}`));
165
+ }
@@ -0,0 +1,55 @@
1
+ /**
2
+ * Render helpers for testing Svelte components
3
+ */
4
+ import { type RenderResult } from '@testing-library/svelte';
5
+ import type { ComponentProps, Component } from 'svelte';
6
+ /**
7
+ * Enhanced render function with common test setup
8
+ */
9
+ export declare function render<T extends Component>(component: T, options?: ComponentProps<T> & {
10
+ props?: ComponentProps<T>;
11
+ }): RenderResult<T>;
12
+ /**
13
+ * Wait for Svelte to update the DOM
14
+ */
15
+ export declare function waitForSvelte(): Promise<void>;
16
+ /**
17
+ * Wait for multiple ticks (useful for animations or complex updates)
18
+ */
19
+ export declare function waitForTicks(count?: number): Promise<void>;
20
+ /**
21
+ * Wait for an element to appear in the DOM
22
+ */
23
+ export declare function waitForElement(selector: string, timeout?: number): Promise<Element>;
24
+ /**
25
+ * Wait for an element to disappear from the DOM
26
+ */
27
+ export declare function waitForElementToBeRemoved(selector: string, timeout?: number): Promise<void>;
28
+ /**
29
+ * Simulate keyboard event
30
+ */
31
+ export declare function createKeyboardEvent(type: 'keydown' | 'keyup' | 'keypress', key: string, options?: KeyboardEventInit): KeyboardEvent;
32
+ /**
33
+ * Simulate mouse event
34
+ */
35
+ export declare function createMouseEvent(type: string, options?: MouseEventInit): MouseEvent;
36
+ /**
37
+ * Simulate focus event
38
+ */
39
+ export declare function createFocusEvent(type: 'focus' | 'blur' | 'focusin' | 'focusout', options?: FocusEventInit): FocusEvent;
40
+ /**
41
+ * Get computed styles for an element
42
+ */
43
+ export declare function getComputedStyle(element: Element): CSSStyleDeclaration;
44
+ /**
45
+ * Check if element has class
46
+ */
47
+ export declare function hasClass(element: Element, className: string): boolean;
48
+ /**
49
+ * Check if element is visible
50
+ */
51
+ export declare function isVisible(element: HTMLElement): boolean;
52
+ /**
53
+ * Check if element is disabled
54
+ */
55
+ export declare function isDisabled(element: HTMLElement): boolean;
@@ -0,0 +1,114 @@
1
+ /**
2
+ * Render helpers for testing Svelte components
3
+ */
4
+ import { render as testingLibraryRender } from '@testing-library/svelte';
5
+ import { tick } from 'svelte';
6
+ /**
7
+ * Enhanced render function with common test setup
8
+ */
9
+ export function render(component, options) {
10
+ const { props, ...rest } = options || {};
11
+ // @ts-expect-error - Testing library types are complex
12
+ return testingLibraryRender(component, { props: props || rest });
13
+ }
14
+ /**
15
+ * Wait for Svelte to update the DOM
16
+ */
17
+ export async function waitForSvelte() {
18
+ await tick();
19
+ }
20
+ /**
21
+ * Wait for multiple ticks (useful for animations or complex updates)
22
+ */
23
+ export async function waitForTicks(count = 2) {
24
+ for (let i = 0; i < count; i++) {
25
+ await tick();
26
+ }
27
+ }
28
+ /**
29
+ * Wait for an element to appear in the DOM
30
+ */
31
+ export async function waitForElement(selector, timeout = 1000) {
32
+ const startTime = Date.now();
33
+ while (Date.now() - startTime < timeout) {
34
+ const element = document.querySelector(selector);
35
+ if (element) {
36
+ return element;
37
+ }
38
+ await new Promise(resolve => setTimeout(resolve, 50));
39
+ }
40
+ throw new Error(`Element "${selector}" not found within ${timeout}ms`);
41
+ }
42
+ /**
43
+ * Wait for an element to disappear from the DOM
44
+ */
45
+ export async function waitForElementToBeRemoved(selector, timeout = 1000) {
46
+ const startTime = Date.now();
47
+ while (Date.now() - startTime < timeout) {
48
+ const element = document.querySelector(selector);
49
+ if (!element) {
50
+ return;
51
+ }
52
+ await new Promise(resolve => setTimeout(resolve, 50));
53
+ }
54
+ throw new Error(`Element "${selector}" still present after ${timeout}ms`);
55
+ }
56
+ /**
57
+ * Simulate keyboard event
58
+ */
59
+ export function createKeyboardEvent(type, key, options) {
60
+ return new KeyboardEvent(type, {
61
+ key,
62
+ bubbles: true,
63
+ cancelable: true,
64
+ ...options
65
+ });
66
+ }
67
+ /**
68
+ * Simulate mouse event
69
+ */
70
+ export function createMouseEvent(type, options) {
71
+ return new MouseEvent(type, {
72
+ bubbles: true,
73
+ cancelable: true,
74
+ ...options
75
+ });
76
+ }
77
+ /**
78
+ * Simulate focus event
79
+ */
80
+ export function createFocusEvent(type, options) {
81
+ return new FocusEvent(type, {
82
+ bubbles: true,
83
+ cancelable: true,
84
+ ...options
85
+ });
86
+ }
87
+ /**
88
+ * Get computed styles for an element
89
+ */
90
+ export function getComputedStyle(element) {
91
+ return window.getComputedStyle(element);
92
+ }
93
+ /**
94
+ * Check if element has class
95
+ */
96
+ export function hasClass(element, className) {
97
+ return element.classList.contains(className);
98
+ }
99
+ /**
100
+ * Check if element is visible
101
+ */
102
+ export function isVisible(element) {
103
+ const style = window.getComputedStyle(element);
104
+ return (style.display !== 'none' &&
105
+ style.visibility !== 'hidden' &&
106
+ style.opacity !== '0');
107
+ }
108
+ /**
109
+ * Check if element is disabled
110
+ */
111
+ export function isDisabled(element) {
112
+ return (element.hasAttribute('disabled') ||
113
+ element.getAttribute('aria-disabled') === 'true');
114
+ }
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Vitest setup file
3
+ * Runs before all test files
4
+ */
5
+ import '@testing-library/jest-dom';
@@ -0,0 +1,91 @@
1
+ /**
2
+ * Vitest setup file
3
+ * Runs before all test files
4
+ */
5
+ import '@testing-library/jest-dom';
6
+ import { vi } from 'vitest';
7
+ // Mock window.matchMedia
8
+ Object.defineProperty(window, 'matchMedia', {
9
+ writable: true,
10
+ value: vi.fn().mockImplementation((query) => ({
11
+ matches: false,
12
+ media: query,
13
+ onchange: null,
14
+ addListener: vi.fn(), // deprecated
15
+ removeListener: vi.fn(), // deprecated
16
+ addEventListener: vi.fn(),
17
+ removeEventListener: vi.fn(),
18
+ dispatchEvent: vi.fn()
19
+ }))
20
+ });
21
+ // Mock IntersectionObserver
22
+ global.IntersectionObserver = class IntersectionObserver {
23
+ constructor() { }
24
+ disconnect() { }
25
+ observe() { }
26
+ takeRecords() {
27
+ return [];
28
+ }
29
+ unobserve() { }
30
+ };
31
+ // Mock ResizeObserver
32
+ global.ResizeObserver = class ResizeObserver {
33
+ constructor() { }
34
+ disconnect() { }
35
+ observe() { }
36
+ unobserve() { }
37
+ };
38
+ // Mock requestAnimationFrame
39
+ global.requestAnimationFrame = (cb) => {
40
+ return setTimeout(cb, 0);
41
+ };
42
+ global.cancelAnimationFrame = (id) => {
43
+ clearTimeout(id);
44
+ };
45
+ // Mock scrollTo
46
+ window.scrollTo = vi.fn();
47
+ // Mock localStorage
48
+ const localStorageMock = (() => {
49
+ let store = {};
50
+ return {
51
+ getItem: (key) => store[key] || null,
52
+ setItem: (key, value) => {
53
+ store[key] = value.toString();
54
+ },
55
+ removeItem: (key) => {
56
+ delete store[key];
57
+ },
58
+ clear: () => {
59
+ store = {};
60
+ }
61
+ };
62
+ })();
63
+ Object.defineProperty(window, 'localStorage', {
64
+ value: localStorageMock
65
+ });
66
+ // Mock sessionStorage
67
+ const sessionStorageMock = (() => {
68
+ let store = {};
69
+ return {
70
+ getItem: (key) => store[key] || null,
71
+ setItem: (key, value) => {
72
+ store[key] = value.toString();
73
+ },
74
+ removeItem: (key) => {
75
+ delete store[key];
76
+ },
77
+ clear: () => {
78
+ store = {};
79
+ }
80
+ };
81
+ })();
82
+ Object.defineProperty(window, 'sessionStorage', {
83
+ value: sessionStorageMock
84
+ });
85
+ // Reset mocks after each test
86
+ import { afterEach } from 'vitest';
87
+ afterEach(() => {
88
+ vi.clearAllMocks();
89
+ localStorageMock.clear();
90
+ sessionStorageMock.clear();
91
+ });
@@ -0,0 +1,102 @@
1
+ /**
2
+ * Test data fixtures for component testing
3
+ */
4
+ import type { MenuOption } from '../types/form.js';
5
+ type MenuItem = MenuOption;
6
+ type ListItem = {
7
+ id: string;
8
+ label: string;
9
+ value: string;
10
+ };
11
+ /**
12
+ * Sample menu items for testing
13
+ */
14
+ export declare const mockMenuItems: MenuItem[];
15
+ /**
16
+ * Sample list items for testing
17
+ */
18
+ export declare const mockListItems: ListItem[];
19
+ /**
20
+ * Large dataset for virtual scrolling tests
21
+ */
22
+ export declare function generateLargeDataset(count?: number): ListItem[];
23
+ /**
24
+ * Sample form data for testing
25
+ */
26
+ export declare const mockFormData: {
27
+ text: string;
28
+ email: string;
29
+ number: number;
30
+ date: string;
31
+ checkbox: boolean;
32
+ radio: string;
33
+ select: string;
34
+ textarea: string;
35
+ };
36
+ /**
37
+ * Sample user data for testing
38
+ */
39
+ export declare const mockUsers: {
40
+ id: number;
41
+ name: string;
42
+ email: string;
43
+ role: string;
44
+ }[];
45
+ /**
46
+ * Sample table data for testing
47
+ */
48
+ export declare const mockTableData: {
49
+ columns: {
50
+ id: string;
51
+ label: string;
52
+ sortable: boolean;
53
+ }[];
54
+ rows: {
55
+ id: number;
56
+ name: string;
57
+ email: string;
58
+ role: string;
59
+ }[];
60
+ };
61
+ /**
62
+ * Sample navigation items for testing
63
+ */
64
+ export declare const mockNavItems: {
65
+ id: string;
66
+ label: string;
67
+ href: string;
68
+ icon: string;
69
+ }[];
70
+ /**
71
+ * Sample breadcrumb items for testing
72
+ */
73
+ export declare const mockBreadcrumbs: ({
74
+ label: string;
75
+ href: string;
76
+ } | {
77
+ label: string;
78
+ href?: undefined;
79
+ })[];
80
+ /**
81
+ * Sample tab items for testing
82
+ */
83
+ export declare const mockTabs: ({
84
+ id: string;
85
+ label: string;
86
+ content: string;
87
+ disabled?: undefined;
88
+ } | {
89
+ id: string;
90
+ label: string;
91
+ content: string;
92
+ disabled: boolean;
93
+ })[];
94
+ /**
95
+ * Sample color options for testing
96
+ */
97
+ export declare const mockColors: {
98
+ id: string;
99
+ label: string;
100
+ value: string;
101
+ }[];
102
+ export {};
@@ -0,0 +1,99 @@
1
+ /**
2
+ * Test data fixtures for component testing
3
+ */
4
+ /**
5
+ * Sample menu items for testing
6
+ */
7
+ export const mockMenuItems = [
8
+ { id: '1', label: 'Option 1', name: 'Option 1', value: 'option1' },
9
+ { id: '2', label: 'Option 2', name: 'Option 2', value: 'option2' },
10
+ { id: '3', label: 'Option 3', name: 'Option 3', value: 'option3', disabled: true },
11
+ { id: '4', label: 'Option 4', name: 'Option 4', value: 'option4' }
12
+ ];
13
+ /**
14
+ * Sample list items for testing
15
+ */
16
+ export const mockListItems = [
17
+ { id: '1', label: 'Item 1', value: 'item1' },
18
+ { id: '2', label: 'Item 2', value: 'item2' },
19
+ { id: '3', label: 'Item 3', value: 'item3' },
20
+ { id: '4', label: 'Item 4', value: 'item4' },
21
+ { id: '5', label: 'Item 5', value: 'item5' }
22
+ ];
23
+ /**
24
+ * Large dataset for virtual scrolling tests
25
+ */
26
+ export function generateLargeDataset(count = 1000) {
27
+ return Array.from({ length: count }, (_, i) => ({
28
+ id: `item-${i}`,
29
+ label: `Item ${i + 1}`,
30
+ value: `item${i + 1}`
31
+ }));
32
+ }
33
+ /**
34
+ * Sample form data for testing
35
+ */
36
+ export const mockFormData = {
37
+ text: 'Sample text',
38
+ email: 'test@example.com',
39
+ number: 42,
40
+ date: '2024-01-01',
41
+ checkbox: true,
42
+ radio: 'option1',
43
+ select: 'option2',
44
+ textarea: 'Multi-line\ntext content'
45
+ };
46
+ /**
47
+ * Sample user data for testing
48
+ */
49
+ export const mockUsers = [
50
+ { id: 1, name: 'John Doe', email: 'john@example.com', role: 'admin' },
51
+ { id: 2, name: 'Jane Smith', email: 'jane@example.com', role: 'user' },
52
+ { id: 3, name: 'Bob Johnson', email: 'bob@example.com', role: 'user' }
53
+ ];
54
+ /**
55
+ * Sample table data for testing
56
+ */
57
+ export const mockTableData = {
58
+ columns: [
59
+ { id: 'id', label: 'ID', sortable: true },
60
+ { id: 'name', label: 'Name', sortable: true },
61
+ { id: 'email', label: 'Email', sortable: true },
62
+ { id: 'role', label: 'Role', sortable: false }
63
+ ],
64
+ rows: mockUsers
65
+ };
66
+ /**
67
+ * Sample navigation items for testing
68
+ */
69
+ export const mockNavItems = [
70
+ { id: 'home', label: 'Home', href: '/', icon: 'home' },
71
+ { id: 'about', label: 'About', href: '/about', icon: 'info' },
72
+ { id: 'contact', label: 'Contact', href: '/contact', icon: 'envelope' }
73
+ ];
74
+ /**
75
+ * Sample breadcrumb items for testing
76
+ */
77
+ export const mockBreadcrumbs = [
78
+ { label: 'Home', href: '/' },
79
+ { label: 'Products', href: '/products' },
80
+ { label: 'Electronics', href: '/products/electronics' },
81
+ { label: 'Laptops' }
82
+ ];
83
+ /**
84
+ * Sample tab items for testing
85
+ */
86
+ export const mockTabs = [
87
+ { id: 'tab1', label: 'Tab 1', content: 'Content 1' },
88
+ { id: 'tab2', label: 'Tab 2', content: 'Content 2' },
89
+ { id: 'tab3', label: 'Tab 3', content: 'Content 3', disabled: true }
90
+ ];
91
+ /**
92
+ * Sample color options for testing
93
+ */
94
+ export const mockColors = [
95
+ { id: 'red', label: 'Red', value: '#ff0000' },
96
+ { id: 'green', label: 'Green', value: '#00ff00' },
97
+ { id: 'blue', label: 'Blue', value: '#0000ff' },
98
+ { id: 'yellow', label: 'Yellow', value: '#ffff00' }
99
+ ];
@@ -0,0 +1,2 @@
1
+ export { default as Timeline } from './timeline.svelte';
2
+ export { default as TimelineItem } from './timeline-item.svelte';
@@ -0,0 +1,2 @@
1
+ export { default as Timeline } from './timeline.svelte';
2
+ export { default as TimelineItem } from './timeline-item.svelte';
@@ -1,20 +1,37 @@
1
- <script>import DateTime from "../generic/date/date-time.svelte";
2
- export let dateType = "datetime";
3
- export let dateStyle = "medium";
4
- export let iconSize = "md";
5
- export let date = void 0;
6
- export let title = void 0;
7
- export let summary = void 0;
1
+ <script lang="ts">
2
+ import type { Snippet } from 'svelte';
3
+ import DateTime from '../generic/date/date-time.svelte';
4
+ import type { DateTimeVariant, DateType } from '../types/date.js';
5
+
6
+ let {
7
+ dateType = 'datetime' as DateType,
8
+ dateStyle = 'medium' as DateTimeVariant,
9
+ iconSize = 'md' as 'sm' | 'md' | 'lg',
10
+ date = undefined,
11
+ title = undefined,
12
+ summary = undefined,
13
+ icon = undefined
14
+ }: {
15
+ dateType?: DateType;
16
+ dateStyle?: DateTimeVariant;
17
+ iconSize?: 'sm' | 'md' | 'lg';
18
+ date?: string | number | Date;
19
+ title?: string;
20
+ summary?: string;
21
+ icon?: Snippet;
22
+ } = $props();
8
23
  </script>
9
24
 
10
25
  <li class="icon-{iconSize}">
11
26
  <div class="timeline-icon">
12
- <slot name="icon" />
27
+ {#if icon}
28
+ {@render icon?.()}
29
+ {/if}
13
30
  </div>
14
31
  <div class="content">
15
32
  {#if date}
16
33
  <div class="date">
17
- <DateTime value={date} type={dateType} style={dateStyle} />
34
+ <DateTime value={date} type={dateType} variant={dateStyle} />
18
35
  </div>
19
36
  {/if}
20
37
  {#if title}