sveltacular 0.0.77 → 1.0.1

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 (376) 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 -16
  5. package/dist/forms/bool-box/bool-box.svelte.d.ts +9 -23
  6. package/dist/forms/button/button.svelte +153 -89
  7. package/dist/forms/button/button.svelte.d.ts +25 -31
  8. package/dist/forms/check-box/check-box-group.svelte +69 -31
  9. package/dist/forms/check-box/check-box-group.svelte.d.ts +11 -29
  10. package/dist/forms/check-box/check-box.svelte +57 -33
  11. package/dist/forms/check-box/check-box.svelte.d.ts +15 -27
  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 -27
  16. package/dist/forms/combo-box/combo-box.svelte +643 -0
  17. package/dist/forms/combo-box/combo-box.svelte.d.ts +42 -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 +82 -53
  21. package/dist/forms/date-box/date-box.svelte.d.ts +21 -34
  22. package/dist/forms/file-area/file-area.svelte +109 -57
  23. package/dist/forms/file-area/file-area.svelte.d.ts +12 -24
  24. package/dist/forms/file-box/file-box.svelte +38 -23
  25. package/dist/forms/file-box/file-box.svelte.d.ts +14 -27
  26. package/dist/forms/form-field.svelte +76 -13
  27. package/dist/forms/form-field.svelte.d.ts +15 -20
  28. package/dist/forms/form-footer.svelte +6 -3
  29. package/dist/forms/form-footer.svelte.d.ts +6 -28
  30. package/dist/forms/form-header.svelte +15 -4
  31. package/dist/forms/form-header.svelte.d.ts +8 -20
  32. package/dist/forms/form-label.svelte +15 -6
  33. package/dist/forms/form-label.svelte.d.ts +8 -21
  34. package/dist/forms/form-row.svelte +29 -0
  35. package/dist/forms/form-row.svelte.d.ts +7 -0
  36. package/dist/forms/form-section.svelte +15 -4
  37. package/dist/forms/form-section.svelte.d.ts +8 -20
  38. package/dist/forms/form.svelte +36 -13
  39. package/dist/forms/form.svelte.d.ts +11 -24
  40. package/dist/forms/index.d.ts +26 -0
  41. package/dist/forms/index.js +31 -0
  42. package/dist/forms/info-box/info-box.svelte +17 -10
  43. package/dist/forms/info-box/info-box.svelte.d.ts +8 -21
  44. package/dist/forms/list-box/index.d.ts +2 -0
  45. package/dist/forms/list-box/index.js +1 -0
  46. package/dist/forms/list-box/list-box.svelte +188 -111
  47. package/dist/forms/list-box/list-box.svelte.d.ts +16 -28
  48. package/dist/forms/money-box/money-box.svelte +224 -178
  49. package/dist/forms/money-box/money-box.svelte.d.ts +16 -30
  50. package/dist/forms/number-box/number-box.svelte +82 -62
  51. package/dist/forms/number-box/number-box.svelte.d.ts +17 -30
  52. package/dist/forms/phone-box/index.d.ts +1 -0
  53. package/dist/forms/phone-box/index.js +1 -0
  54. package/dist/forms/phone-box/phone-box.svelte +156 -116
  55. package/dist/forms/phone-box/phone-box.svelte.d.ts +8 -22
  56. package/dist/forms/radio-group/index.d.ts +2 -0
  57. package/dist/forms/radio-group/index.js +2 -0
  58. package/dist/forms/radio-group/radio-box.svelte +23 -8
  59. package/dist/forms/radio-group/radio-box.svelte.d.ts +10 -21
  60. package/dist/forms/radio-group/radio-group.svelte +25 -15
  61. package/dist/forms/radio-group/radio-group.svelte.d.ts +10 -23
  62. package/dist/forms/slider/slider.svelte +206 -0
  63. package/dist/forms/slider/slider.svelte.d.ts +17 -0
  64. package/dist/forms/switch-box/switch-box.svelte +35 -21
  65. package/dist/forms/switch-box/switch-box.svelte.d.ts +9 -22
  66. package/dist/forms/text-area/text-area.svelte +94 -17
  67. package/dist/forms/text-area/text-area.svelte.d.ts +15 -25
  68. package/dist/forms/text-box/text-box.svelte +244 -79
  69. package/dist/forms/text-box/text-box.svelte.d.ts +28 -38
  70. package/dist/forms/time-box/time-box.svelte +63 -0
  71. package/dist/forms/time-box/time-box.svelte.d.ts +12 -0
  72. package/dist/forms/url-box/url-box.svelte +32 -18
  73. package/dist/forms/url-box/url-box.svelte.d.ts +9 -22
  74. package/dist/forms/validation.d.ts +60 -0
  75. package/dist/forms/validation.js +123 -0
  76. package/dist/generic/address/address.svelte +22 -11
  77. package/dist/generic/address/address.svelte.d.ts +9 -21
  78. package/dist/generic/avatar/avatar.svelte +87 -0
  79. package/dist/generic/avatar/avatar.svelte.d.ts +10 -0
  80. package/dist/generic/badge/badge.svelte +82 -0
  81. package/dist/generic/badge/badge.svelte.d.ts +11 -0
  82. package/dist/generic/card/card-container.svelte +41 -12
  83. package/dist/generic/card/card-container.svelte.d.ts +8 -20
  84. package/dist/generic/card/card.svelte +47 -27
  85. package/dist/generic/card/card.svelte.d.ts +9 -21
  86. package/dist/generic/card/index.d.ts +3 -0
  87. package/dist/generic/card/index.js +2 -0
  88. package/dist/generic/chip/chip.svelte +91 -0
  89. package/dist/generic/chip/chip.svelte.d.ts +11 -0
  90. package/dist/generic/date/date-time.svelte +86 -58
  91. package/dist/generic/date/date-time.svelte.d.ts +10 -22
  92. package/dist/generic/divider/divider.svelte.d.ts +22 -21
  93. package/dist/generic/dot/dot.svelte +13 -4
  94. package/dist/generic/dot/dot.svelte.d.ts +7 -19
  95. package/dist/generic/dropdown-item/dropdown-item.svelte +24 -12
  96. package/dist/generic/dropdown-item/dropdown-item.svelte.d.ts +10 -23
  97. package/dist/generic/email/email.svelte +6 -4
  98. package/dist/generic/email/email.svelte.d.ts +5 -17
  99. package/dist/generic/empty/empty.svelte +57 -26
  100. package/dist/generic/empty/empty.svelte.d.ts +11 -23
  101. package/dist/generic/header/header.svelte +26 -10
  102. package/dist/generic/header/header.svelte.d.ts +10 -22
  103. package/dist/generic/index.d.ts +28 -0
  104. package/dist/generic/index.js +31 -0
  105. package/dist/generic/link/link.svelte +20 -7
  106. package/dist/generic/link/link.svelte.d.ts +11 -23
  107. package/dist/generic/list/index.d.ts +4 -0
  108. package/dist/generic/list/index.js +3 -0
  109. package/dist/generic/list/list-item.svelte +17 -13
  110. package/dist/generic/list/list-item.svelte.d.ts +6 -17
  111. package/dist/generic/list/list.d.ts +2 -2
  112. package/dist/generic/list/list.svelte +28 -15
  113. package/dist/generic/list/list.svelte.d.ts +9 -21
  114. package/dist/generic/menu/menu.svelte +163 -54
  115. package/dist/generic/menu/menu.svelte.d.ts +16 -26
  116. package/dist/generic/notice/notice.svelte +119 -80
  117. package/dist/generic/notice/notice.svelte.d.ts +17 -28
  118. package/dist/generic/overlay.svelte +40 -14
  119. package/dist/generic/overlay.svelte.d.ts +9 -21
  120. package/dist/generic/panel/panel.svelte +16 -6
  121. package/dist/generic/panel/panel.svelte.d.ts +8 -20
  122. package/dist/generic/phone/phone.svelte +30 -20
  123. package/dist/generic/phone/phone.svelte.d.ts +6 -18
  124. package/dist/generic/pill/pill.svelte +47 -33
  125. package/dist/generic/pill/pill.svelte.d.ts +10 -23
  126. package/dist/generic/popover/popover.svelte +226 -0
  127. package/dist/generic/popover/popover.svelte.d.ts +15 -0
  128. package/dist/generic/rating/rating.svelte +85 -0
  129. package/dist/generic/rating/rating.svelte.d.ts +11 -0
  130. package/dist/generic/scorecard/scorecard.svelte +34 -18
  131. package/dist/generic/scorecard/scorecard.svelte.d.ts +9 -21
  132. package/dist/generic/section/section.svelte +28 -9
  133. package/dist/generic/section/section.svelte.d.ts +11 -23
  134. package/dist/generic/spinner/spinner.svelte +64 -0
  135. package/dist/generic/spinner/spinner.svelte.d.ts +8 -0
  136. package/dist/generic/theme-provider/index.d.ts +1 -0
  137. package/dist/generic/theme-provider/index.js +1 -0
  138. package/dist/generic/theme-provider/theme-provider-demo.svelte +182 -0
  139. package/dist/generic/theme-provider/theme-provider-demo.svelte.d.ts +3 -0
  140. package/dist/generic/theme-provider/theme-provider.svelte +83 -0
  141. package/dist/generic/theme-provider/theme-provider.svelte.d.ts +44 -0
  142. package/dist/generic/toaster/toaster.svelte +31 -6
  143. package/dist/generic/toaster/toaster.svelte.d.ts +7 -17
  144. package/dist/generic/tooltip/tooltip.svelte +389 -0
  145. package/dist/generic/tooltip/tooltip.svelte.d.ts +21 -0
  146. package/dist/helpers/ago.d.ts +6 -0
  147. package/dist/helpers/ago.js +6 -0
  148. package/dist/helpers/animation-actions.d.ts +124 -0
  149. package/dist/helpers/animation-actions.js +299 -0
  150. package/dist/helpers/animations.d.ts +198 -0
  151. package/dist/helpers/animations.js +280 -0
  152. package/dist/helpers/announcer.d.ts +118 -0
  153. package/dist/helpers/announcer.js +250 -0
  154. package/dist/helpers/copy-to-clipboard.svelte.d.ts +5 -0
  155. package/dist/helpers/copy-to-clipboard.svelte.js +28 -0
  156. package/dist/helpers/debounce.d.ts +7 -0
  157. package/dist/helpers/debounce.js +7 -0
  158. package/dist/helpers/focus.d.ts +123 -0
  159. package/dist/helpers/focus.js +335 -0
  160. package/dist/helpers/fuzzy-search.d.ts +41 -0
  161. package/dist/helpers/fuzzy-search.js +114 -0
  162. package/dist/helpers/index.d.ts +24 -0
  163. package/dist/helpers/index.js +24 -0
  164. package/dist/helpers/navigate-to.d.ts +4 -0
  165. package/dist/helpers/navigate-to.js +4 -0
  166. package/dist/helpers/positioning.d.ts +97 -0
  167. package/dist/helpers/positioning.js +230 -0
  168. package/dist/helpers/round-to-decimals.d.ts +7 -5
  169. package/dist/helpers/round-to-decimals.js +7 -5
  170. package/dist/helpers/spring.svelte.d.ts +97 -0
  171. package/dist/helpers/spring.svelte.js +216 -0
  172. package/dist/helpers/subscribable.d.ts +1 -1
  173. package/dist/helpers/theme.svelte.d.ts +63 -0
  174. package/dist/helpers/theme.svelte.js +123 -0
  175. package/dist/helpers/unique-id.d.ts +4 -0
  176. package/dist/helpers/unique-id.js +4 -0
  177. package/dist/helpers/use-position.svelte.d.ts +96 -0
  178. package/dist/helpers/use-position.svelte.js +189 -0
  179. package/dist/helpers/use-virtual-list.svelte.d.ts +121 -0
  180. package/dist/helpers/use-virtual-list.svelte.js +239 -0
  181. package/dist/icons/angle-right-icon.svelte +2 -1
  182. package/dist/icons/angle-right-icon.svelte.d.ts +16 -14
  183. package/dist/icons/angle-up-icon.svelte.d.ts +22 -21
  184. package/dist/icons/check-icon.svelte.d.ts +22 -21
  185. package/dist/icons/copy-icon.svelte +46 -0
  186. package/dist/icons/copy-icon.svelte.d.ts +6 -0
  187. package/dist/icons/envelope-icon.svelte.d.ts +22 -21
  188. package/dist/icons/folder-open-icon.svelte.d.ts +22 -21
  189. package/dist/icons/hamburger-icon.svelte.d.ts +22 -21
  190. package/dist/icons/home-icon.svelte +2 -1
  191. package/dist/icons/home-icon.svelte.d.ts +16 -14
  192. package/dist/icons/index.d.ts +13 -0
  193. package/dist/icons/index.js +13 -0
  194. package/dist/icons/link-icon.svelte.d.ts +22 -21
  195. package/dist/icons/mobile-phone-icon.svelte.d.ts +22 -21
  196. package/dist/icons/phone-icon.svelte.d.ts +22 -21
  197. package/dist/icons/svg-icon.svelte +46 -10
  198. package/dist/icons/svg-icon.svelte.d.ts +13 -25
  199. package/dist/icons/upload-icon.svelte.d.ts +22 -21
  200. package/dist/images/icon.svelte +9 -3
  201. package/dist/images/icon.svelte.d.ts +6 -18
  202. package/dist/images/image.svelte +28 -8
  203. package/dist/images/image.svelte.d.ts +14 -28
  204. package/dist/images/index.d.ts +2 -0
  205. package/dist/images/index.js +2 -0
  206. package/dist/index.d.ts +13 -122
  207. package/dist/index.js +27 -135
  208. package/dist/layout/flex-col.svelte +65 -16
  209. package/dist/layout/flex-col.svelte.d.ts +12 -24
  210. package/dist/layout/flex-item.svelte +13 -3
  211. package/dist/layout/flex-item.svelte.d.ts +8 -20
  212. package/dist/layout/flex-row.svelte +70 -15
  213. package/dist/layout/flex-row.svelte.d.ts +14 -26
  214. package/dist/layout/grid.svelte +7 -1
  215. package/dist/layout/grid.svelte.d.ts +6 -28
  216. package/dist/layout/index.d.ts +4 -0
  217. package/dist/layout/index.js +4 -0
  218. package/dist/modals/alert.svelte +42 -28
  219. package/dist/modals/alert.svelte.d.ts +13 -26
  220. package/dist/modals/confirm.svelte +54 -37
  221. package/dist/modals/confirm.svelte.d.ts +16 -29
  222. package/dist/modals/dialog-body.svelte +10 -4
  223. package/dist/modals/dialog-body.svelte.d.ts +6 -28
  224. package/dist/modals/dialog-close-button.svelte +15 -9
  225. package/dist/modals/dialog-close-button.svelte.d.ts +6 -19
  226. package/dist/modals/dialog-footer.svelte +6 -3
  227. package/dist/modals/dialog-footer.svelte.d.ts +6 -28
  228. package/dist/modals/dialog-header.svelte +13 -1
  229. package/dist/modals/dialog-header.svelte.d.ts +7 -28
  230. package/dist/modals/dialog-window.svelte +42 -14
  231. package/dist/modals/dialog-window.svelte.d.ts +9 -19
  232. package/dist/modals/index.d.ts +9 -0
  233. package/dist/modals/index.js +9 -0
  234. package/dist/modals/modal.svelte +88 -23
  235. package/dist/modals/modal.svelte.d.ts +14 -24
  236. package/dist/modals/prompt.svelte +71 -49
  237. package/dist/modals/prompt.svelte.d.ts +19 -32
  238. package/dist/navigation/accordion/accordion.svelte +104 -0
  239. package/dist/navigation/accordion/accordion.svelte.d.ts +9 -0
  240. package/dist/navigation/app-bar/app-bar.svelte +26 -12
  241. package/dist/navigation/app-bar/app-bar.svelte.d.ts +10 -22
  242. package/dist/navigation/app-bar/app-branding.svelte +10 -5
  243. package/dist/navigation/app-bar/app-branding.svelte.d.ts +6 -17
  244. package/dist/navigation/app-bar/app-logo.svelte +20 -5
  245. package/dist/navigation/app-bar/app-logo.svelte.d.ts +9 -21
  246. package/dist/navigation/app-bar/app-nav-item.svelte +26 -13
  247. package/dist/navigation/app-bar/app-nav-item.svelte.d.ts +9 -22
  248. package/dist/navigation/app-bar/app-nav.svelte +39 -12
  249. package/dist/navigation/app-bar/app-nav.svelte.d.ts +8 -20
  250. package/dist/navigation/app-bar/index.d.ts +5 -0
  251. package/dist/navigation/app-bar/index.js +5 -0
  252. package/dist/navigation/breadcrumbs/breadcrumbs.svelte +54 -27
  253. package/dist/navigation/breadcrumbs/breadcrumbs.svelte.d.ts +12 -23
  254. package/dist/navigation/command-palette/command-palette.svelte +758 -0
  255. package/dist/navigation/command-palette/command-palette.svelte.d.ts +65 -0
  256. package/dist/navigation/command-palette/index.d.ts +2 -0
  257. package/dist/navigation/command-palette/index.js +1 -0
  258. package/dist/navigation/context-menu/README.md +147 -0
  259. package/dist/navigation/context-menu/context-menu-divider.svelte +22 -0
  260. package/dist/navigation/context-menu/context-menu-divider.svelte.d.ts +18 -0
  261. package/dist/navigation/context-menu/context-menu-item.svelte +268 -0
  262. package/dist/navigation/context-menu/context-menu-item.svelte.d.ts +19 -0
  263. package/dist/navigation/context-menu/context-menu.svelte +226 -0
  264. package/dist/navigation/context-menu/context-menu.svelte.d.ts +38 -0
  265. package/dist/navigation/context-menu/index.d.ts +3 -0
  266. package/dist/navigation/context-menu/index.js +3 -0
  267. package/dist/navigation/drawer/drawer.svelte +137 -0
  268. package/dist/navigation/drawer/drawer.svelte.d.ts +11 -0
  269. package/dist/navigation/dropdown-button/dropdown-button.svelte +58 -19
  270. package/dist/navigation/dropdown-button/dropdown-button.svelte.d.ts +10 -22
  271. package/dist/navigation/index.d.ts +11 -0
  272. package/dist/navigation/index.js +14 -0
  273. package/dist/navigation/pagination/pagination.svelte +55 -37
  274. package/dist/navigation/pagination/pagination.svelte.d.ts +10 -23
  275. package/dist/navigation/side-bar/side-bar.svelte +18 -9
  276. package/dist/navigation/side-bar/side-bar.svelte.d.ts +7 -19
  277. package/dist/navigation/tabs/index.d.ts +4 -0
  278. package/dist/navigation/tabs/index.js +3 -0
  279. package/dist/navigation/tabs/tab-context.d.ts +12 -6
  280. package/dist/navigation/tabs/tab-group.svelte +268 -52
  281. package/dist/navigation/tabs/tab-group.svelte.d.ts +9 -22
  282. package/dist/navigation/tabs/tab.svelte +64 -33
  283. package/dist/navigation/tabs/tab.svelte.d.ts +11 -24
  284. package/dist/navigation/wizard/index.d.ts +3 -0
  285. package/dist/navigation/wizard/index.js +2 -0
  286. package/dist/navigation/wizard/wizard-context.d.ts +13 -8
  287. package/dist/navigation/wizard/wizard-step.svelte +38 -13
  288. package/dist/navigation/wizard/wizard-step.svelte.d.ts +8 -20
  289. package/dist/navigation/wizard/wizard.svelte +123 -81
  290. package/dist/navigation/wizard/wizard.svelte.d.ts +15 -28
  291. package/dist/placeholders/index.d.ts +6 -0
  292. package/dist/placeholders/index.js +6 -0
  293. package/dist/placeholders/loading.svelte +39 -23
  294. package/dist/placeholders/loading.svelte.d.ts +10 -19
  295. package/dist/placeholders/progress.svelte +7 -6
  296. package/dist/placeholders/progress.svelte.d.ts +5 -17
  297. package/dist/placeholders/skeleton-input.svelte +66 -38
  298. package/dist/placeholders/skeleton-input.svelte.d.ts +5 -17
  299. package/dist/placeholders/skeleton-paragraph.svelte +25 -0
  300. package/dist/placeholders/skeleton-paragraph.svelte.d.ts +8 -0
  301. package/dist/placeholders/skeleton-table.svelte +75 -0
  302. package/dist/placeholders/skeleton-table.svelte.d.ts +8 -0
  303. package/dist/placeholders/skeleton-text.svelte +46 -15
  304. package/dist/placeholders/skeleton-text.svelte.d.ts +7 -19
  305. package/dist/tables/cell-renderers.d.ts +24 -0
  306. package/dist/tables/cell-renderers.js +228 -0
  307. package/dist/tables/data-grid.svelte +332 -118
  308. package/dist/tables/data-grid.svelte.d.ts +34 -35
  309. package/dist/tables/index.d.ts +10 -0
  310. package/dist/tables/index.js +12 -0
  311. package/dist/tables/table-caption.svelte +13 -4
  312. package/dist/tables/table-caption.svelte.d.ts +8 -20
  313. package/dist/tables/table-cell.svelte +45 -14
  314. package/dist/tables/table-cell.svelte.d.ts +10 -21
  315. package/dist/tables/table-context.svelte.d.ts +32 -0
  316. package/dist/tables/table-context.svelte.js +160 -0
  317. package/dist/tables/table-header-cell.svelte +158 -18
  318. package/dist/tables/table-header-cell.svelte.d.ts +15 -21
  319. package/dist/tables/table-header.svelte +31 -6
  320. package/dist/tables/table-header.svelte.d.ts +7 -28
  321. package/dist/tables/table-row.svelte +87 -7
  322. package/dist/tables/table-row.svelte.d.ts +10 -28
  323. package/dist/tables/table.svelte +61 -2
  324. package/dist/tables/table.svelte.d.ts +13 -28
  325. package/dist/test-utils/accessibility-helpers.d.ts +80 -0
  326. package/dist/test-utils/accessibility-helpers.js +220 -0
  327. package/dist/test-utils/index.d.ts +8 -0
  328. package/dist/test-utils/index.js +8 -0
  329. package/dist/test-utils/mock-helpers.d.ts +68 -0
  330. package/dist/test-utils/mock-helpers.js +165 -0
  331. package/dist/test-utils/render-helpers.d.ts +55 -0
  332. package/dist/test-utils/render-helpers.js +114 -0
  333. package/dist/test-utils/setup.d.ts +5 -0
  334. package/dist/test-utils/setup.js +91 -0
  335. package/dist/test-utils/test-data.d.ts +102 -0
  336. package/dist/test-utils/test-data.js +99 -0
  337. package/dist/timeline/index.d.ts +2 -0
  338. package/dist/timeline/index.js +2 -0
  339. package/dist/timeline/timeline-item.svelte +26 -9
  340. package/dist/timeline/timeline-item.svelte.d.ts +13 -25
  341. package/dist/timeline/timeline.svelte +12 -6
  342. package/dist/timeline/timeline.svelte.d.ts +6 -28
  343. package/dist/types/data.d.ts +61 -0
  344. package/dist/types/date.d.ts +1 -1
  345. package/dist/types/form.d.ts +20 -2
  346. package/dist/types/index.d.ts +5 -0
  347. package/dist/types/index.js +5 -0
  348. package/dist/types/size.d.ts +22 -0
  349. package/dist/types/size.js +22 -0
  350. package/dist/typography/code-block.svelte +89 -10
  351. package/dist/typography/code-block.svelte.d.ts +7 -19
  352. package/dist/typography/code.svelte +89 -0
  353. package/dist/typography/code.svelte.d.ts +7 -0
  354. package/dist/typography/headline.svelte +29 -9
  355. package/dist/typography/headline.svelte.d.ts +8 -20
  356. package/dist/typography/index.d.ts +6 -0
  357. package/dist/typography/index.js +6 -0
  358. package/dist/typography/paragraph.svelte +18 -10
  359. package/dist/typography/paragraph.svelte.d.ts +6 -28
  360. package/dist/typography/subtitle.svelte +18 -4
  361. package/dist/typography/subtitle.svelte.d.ts +8 -20
  362. package/dist/typography/text.svelte +20 -5
  363. package/dist/typography/text.svelte.d.ts +9 -21
  364. package/package.json +31 -21
  365. package/dist/navigation/accordian/accordian.svelte +0 -62
  366. package/dist/navigation/accordian/accordian.svelte.d.ts +0 -21
  367. package/dist/tables/table-body.svelte +0 -3
  368. package/dist/tables/table-body.svelte.d.ts +0 -29
  369. package/dist/tables/table-footer-cell.svelte +0 -22
  370. package/dist/tables/table-footer-cell.svelte.d.ts +0 -20
  371. package/dist/tables/table-footer-row.svelte +0 -3
  372. package/dist/tables/table-footer-row.svelte.d.ts +0 -29
  373. package/dist/tables/table-footer.svelte +0 -13
  374. package/dist/tables/table-footer.svelte.d.ts +0 -29
  375. package/dist/tables/table-header-row.svelte +0 -4
  376. package/dist/tables/table-header-row.svelte.d.ts +0 -29
@@ -1,28 +1,59 @@
1
- <script>export let colspan = 1;
2
- export let type = void 0;
3
- export let width = void 0;
4
- $: styleProperties = [`width: ${width ? width : "auto"}`];
1
+ <script lang="ts">
2
+ import type { Snippet } from 'svelte';
3
+
4
+ let {
5
+ colspan = 1,
6
+ type = undefined,
7
+ width = undefined,
8
+ align = undefined,
9
+ children
10
+ }: {
11
+ colspan?: number;
12
+ type?: string;
13
+ width?: number | string;
14
+ align?: 'left' | 'center' | 'right';
15
+ children?: Snippet;
16
+ } = $props();
17
+
18
+ let styleProperties = $derived([`width: ${width ? width : 'auto'}`]);
19
+
20
+ // Determine alignment based on type or explicit align prop
21
+ let textAlign = $derived(
22
+ align ||
23
+ (type === 'currency' || type === 'number'
24
+ ? 'right'
25
+ : type === 'check' || type === 'boolean'
26
+ ? 'center'
27
+ : type === 'actions'
28
+ ? 'right'
29
+ : 'left')
30
+ );
5
31
  </script>
6
32
 
7
- <td {colspan} class={type} style={styleProperties.join('; ')}>
8
- <slot />
33
+ <td {colspan} class="{type} {textAlign}" style={styleProperties.join('; ')}>
34
+ {#if children}
35
+ {@render children?.()}
36
+ {/if}
9
37
  </td>
10
38
 
11
39
  <style>td {
12
- padding-left: 0.5rem;
40
+ padding: 0.5rem;
13
41
  font-size: 0.9rem;
14
42
  line-height: 1.5rem;
43
+ vertical-align: middle;
15
44
  }
16
- td.currency, td.number {
17
- text-align: right;
45
+ td.left {
46
+ text-align: left;
18
47
  }
19
- td.check, td.boolean {
48
+ td.center {
20
49
  text-align: center;
21
- text-transform: uppercase;
22
50
  }
23
- td.actions {
51
+ td.right {
24
52
  text-align: right;
25
53
  }
26
- td:last-child {
27
- padding-right: 0.5rem;
54
+ td.boolean, td.check {
55
+ font-size: 1rem;
56
+ }
57
+ td.actions {
58
+ white-space: nowrap;
28
59
  }</style>
@@ -1,22 +1,11 @@
1
- import { SvelteComponent } from "svelte";
2
- declare const __propDef: {
3
- props: {
4
- colspan?: number;
5
- type?: string | undefined;
6
- width?: number | string | undefined;
7
- };
8
- events: {
9
- [evt: string]: CustomEvent<any>;
10
- };
11
- slots: {
12
- default: {};
13
- };
14
- exports?: {} | undefined;
15
- bindings?: string | undefined;
1
+ import type { Snippet } from 'svelte';
2
+ type $$ComponentProps = {
3
+ colspan?: number;
4
+ type?: string;
5
+ width?: number | string;
6
+ align?: 'left' | 'center' | 'right';
7
+ children?: Snippet;
16
8
  };
17
- export type TableCellProps = typeof __propDef.props;
18
- export type TableCellEvents = typeof __propDef.events;
19
- export type TableCellSlots = typeof __propDef.slots;
20
- export default class TableCell extends SvelteComponent<TableCellProps, TableCellEvents, TableCellSlots> {
21
- }
22
- export {};
9
+ declare const TableCell: import("svelte").Component<$$ComponentProps, {}, "">;
10
+ type TableCell = ReturnType<typeof TableCell>;
11
+ export default TableCell;
@@ -0,0 +1,32 @@
1
+ import type { JsonObject, SortDirection, SortState } from '../types/data.js';
2
+ export interface TableContextConfig<T extends JsonObject = JsonObject> {
3
+ enableSorting?: boolean;
4
+ enableSelection?: boolean;
5
+ selectionMode?: 'single' | 'multi';
6
+ rowIdKey?: keyof T & string;
7
+ onSort?: (column: string, direction: SortDirection) => void;
8
+ onSelectionChange?: (selectedIds: Set<string | number>) => void;
9
+ }
10
+ export declare class TableContext<T extends JsonObject = JsonObject> {
11
+ sortColumn: string | null;
12
+ sortDirection: SortDirection;
13
+ selectedIds: Set<string | number>;
14
+ lastSelectedIndex: number | null;
15
+ config: TableContextConfig<T>;
16
+ constructor(config?: TableContextConfig<T>);
17
+ toggleSort(columnKey: string): void;
18
+ setSortColumn(columnKey: string | null, direction?: SortDirection): void;
19
+ clearSort(): void;
20
+ getSortState(): SortState;
21
+ toggleRow(id: string | number, index: number, shiftKey?: boolean): void;
22
+ selectRange(startIndex: number, endIndex: number, rows?: T[]): void;
23
+ selectAll(rows: T[]): void;
24
+ deselectAll(): void;
25
+ isRowSelected(id: string | number): boolean;
26
+ isAllSelected(rows: T[]): boolean;
27
+ isSomeSelected(rows: T[]): boolean;
28
+ getSelectedCount(): number;
29
+ getSelectedRows(rows: T[]): T[];
30
+ }
31
+ export declare function createTableContext<T extends JsonObject = JsonObject>(config?: TableContextConfig<T>): TableContext<T>;
32
+ export declare function getTableContext<T extends JsonObject = JsonObject>(): TableContext<T> | undefined;
@@ -0,0 +1,160 @@
1
+ import { getContext, setContext } from 'svelte';
2
+ const TABLE_CONTEXT_KEY = Symbol('table-context');
3
+ export class TableContext {
4
+ // Sort state
5
+ sortColumn = $state(null);
6
+ sortDirection = $state('asc');
7
+ // Selection state
8
+ selectedIds = $state(new Set());
9
+ lastSelectedIndex = $state(null);
10
+ // Configuration
11
+ config;
12
+ constructor(config = {}) {
13
+ this.config = {
14
+ enableSorting: true,
15
+ enableSelection: false,
16
+ selectionMode: 'multi',
17
+ rowIdKey: 'id',
18
+ ...config
19
+ };
20
+ }
21
+ // Sorting methods
22
+ toggleSort(columnKey) {
23
+ if (!this.config.enableSorting)
24
+ return;
25
+ if (this.sortColumn === columnKey) {
26
+ // Toggle direction or clear
27
+ if (this.sortDirection === 'asc') {
28
+ this.sortDirection = 'desc';
29
+ }
30
+ else {
31
+ this.sortColumn = null;
32
+ this.sortDirection = 'asc';
33
+ }
34
+ }
35
+ else {
36
+ this.sortColumn = columnKey;
37
+ this.sortDirection = 'asc';
38
+ }
39
+ this.config.onSort?.(this.sortColumn ?? '', this.sortDirection);
40
+ }
41
+ setSortColumn(columnKey, direction = 'asc') {
42
+ this.sortColumn = columnKey;
43
+ this.sortDirection = direction;
44
+ if (columnKey) {
45
+ this.config.onSort?.(columnKey, direction);
46
+ }
47
+ }
48
+ clearSort() {
49
+ this.sortColumn = null;
50
+ this.sortDirection = 'asc';
51
+ }
52
+ getSortState() {
53
+ return {
54
+ column: this.sortColumn,
55
+ direction: this.sortDirection
56
+ };
57
+ }
58
+ // Selection methods
59
+ toggleRow(id, index, shiftKey = false) {
60
+ if (!this.config.enableSelection)
61
+ return;
62
+ if (this.config.selectionMode === 'single') {
63
+ // Single selection mode
64
+ if (this.selectedIds.has(id)) {
65
+ this.selectedIds.delete(id);
66
+ }
67
+ else {
68
+ this.selectedIds.clear();
69
+ this.selectedIds.add(id);
70
+ }
71
+ this.lastSelectedIndex = index;
72
+ }
73
+ else {
74
+ // Multi selection mode
75
+ if (shiftKey && this.lastSelectedIndex !== null) {
76
+ // Range selection
77
+ this.selectRange(this.lastSelectedIndex, index);
78
+ }
79
+ else {
80
+ // Toggle single row
81
+ if (this.selectedIds.has(id)) {
82
+ this.selectedIds.delete(id);
83
+ }
84
+ else {
85
+ this.selectedIds.add(id);
86
+ }
87
+ this.lastSelectedIndex = index;
88
+ }
89
+ }
90
+ this.config.onSelectionChange?.(new Set(this.selectedIds));
91
+ }
92
+ selectRange(startIndex, endIndex, rows) {
93
+ if (!rows)
94
+ return;
95
+ const start = Math.min(startIndex, endIndex);
96
+ const end = Math.max(startIndex, endIndex);
97
+ for (let i = start; i <= end; i++) {
98
+ const row = rows[i];
99
+ if (row) {
100
+ const id = row[this.config.rowIdKey];
101
+ if (id !== undefined) {
102
+ this.selectedIds.add(id);
103
+ }
104
+ }
105
+ }
106
+ this.config.onSelectionChange?.(new Set(this.selectedIds));
107
+ }
108
+ selectAll(rows) {
109
+ if (!this.config.enableSelection)
110
+ return;
111
+ rows.forEach((row) => {
112
+ const id = row[this.config.rowIdKey];
113
+ if (id !== undefined) {
114
+ this.selectedIds.add(id);
115
+ }
116
+ });
117
+ this.config.onSelectionChange?.(new Set(this.selectedIds));
118
+ }
119
+ deselectAll() {
120
+ this.selectedIds.clear();
121
+ this.lastSelectedIndex = null;
122
+ this.config.onSelectionChange?.(new Set(this.selectedIds));
123
+ }
124
+ isRowSelected(id) {
125
+ return this.selectedIds.has(id);
126
+ }
127
+ isAllSelected(rows) {
128
+ if (!rows.length)
129
+ return false;
130
+ return rows.every((row) => {
131
+ const id = row[this.config.rowIdKey];
132
+ return id !== undefined && this.selectedIds.has(id);
133
+ });
134
+ }
135
+ isSomeSelected(rows) {
136
+ if (!rows.length)
137
+ return false;
138
+ return rows.some((row) => {
139
+ const id = row[this.config.rowIdKey];
140
+ return id !== undefined && this.selectedIds.has(id);
141
+ });
142
+ }
143
+ getSelectedCount() {
144
+ return this.selectedIds.size;
145
+ }
146
+ getSelectedRows(rows) {
147
+ return rows.filter((row) => {
148
+ const id = row[this.config.rowIdKey];
149
+ return id !== undefined && this.selectedIds.has(id);
150
+ });
151
+ }
152
+ }
153
+ export function createTableContext(config) {
154
+ const context = new TableContext(config);
155
+ setContext(TABLE_CONTEXT_KEY, context);
156
+ return context;
157
+ }
158
+ export function getTableContext() {
159
+ return getContext(TABLE_CONTEXT_KEY);
160
+ }
@@ -1,35 +1,175 @@
1
- <script>export let colspan = 1;
2
- export let type = void 0;
3
- export let width = void 0;
4
- $: styleProperties = [
5
- "text-overflow: ellipsis",
6
- "overflow: hidden",
7
- `width: ${width ? width : "auto"}`
8
- ];
1
+ <script lang="ts">
2
+ import type { Snippet } from 'svelte';
3
+
4
+ let {
5
+ colspan = 1,
6
+ type = undefined,
7
+ width = undefined,
8
+ sortable = false,
9
+ sortKey = undefined,
10
+ align = undefined,
11
+ isSorted = false,
12
+ sortDirection = undefined,
13
+ onSort = undefined,
14
+ children
15
+ }: {
16
+ colspan?: number;
17
+ type?: string;
18
+ width?: number | string;
19
+ sortable?: boolean;
20
+ sortKey?: string;
21
+ align?: 'left' | 'center' | 'right';
22
+ isSorted?: boolean;
23
+ sortDirection?: 'asc' | 'desc';
24
+ onSort?: (column: string, direction: 'asc' | 'desc') => void;
25
+ children: Snippet;
26
+ } = $props();
27
+
28
+ let canSort = $derived(sortable && sortKey && onSort);
29
+
30
+ let styleProperties = $derived([
31
+ 'text-overflow: ellipsis',
32
+ 'overflow: hidden',
33
+ `width: ${width ? width : 'auto'}`
34
+ ]);
35
+
36
+ // Determine alignment
37
+ let textAlign = $derived(
38
+ align ||
39
+ (type === 'currency' || type === 'number'
40
+ ? 'right'
41
+ : type === 'check' || type === 'boolean'
42
+ ? 'center'
43
+ : 'left')
44
+ );
45
+
46
+ // Determine aria-sort value
47
+ let ariaSort = $derived<'ascending' | 'descending' | 'none' | 'other' | undefined>(
48
+ isSorted ? (sortDirection === 'asc' ? 'ascending' : 'descending') : undefined
49
+ );
50
+
51
+ function handleClick() {
52
+ if (canSort && sortKey && onSort) {
53
+ // Cycle through: null -> asc -> desc -> null
54
+ let newDirection: 'asc' | 'desc';
55
+ if (!isSorted) {
56
+ newDirection = 'asc';
57
+ } else if (sortDirection === 'asc') {
58
+ newDirection = 'desc';
59
+ } else {
60
+ // Clear sort by passing empty string
61
+ onSort('', 'asc');
62
+ return;
63
+ }
64
+ onSort(sortKey, newDirection);
65
+ }
66
+ }
67
+
68
+ function handleKeyDown(event: KeyboardEvent) {
69
+ if (canSort && (event.key === 'Enter' || event.key === ' ')) {
70
+ event.preventDefault();
71
+ if (sortKey && onSort && sortDirection) {
72
+ onSort(sortKey, sortDirection === 'asc' ? 'desc' : 'asc');
73
+ }
74
+ }
75
+ }
9
76
  </script>
10
77
 
11
- <th {colspan} class={type} style={styleProperties.join('; ')}>
12
- <slot />
78
+ <th
79
+ {colspan}
80
+ class="{type} {textAlign}"
81
+ class:sortable={canSort}
82
+ class:sorted={isSorted}
83
+ style={styleProperties.join('; ')}
84
+ aria-sort={ariaSort}
85
+ role={canSort ? 'columnheader button' : 'columnheader'}
86
+ tabindex={canSort ? 0 : undefined}
87
+ onclick={handleClick}
88
+ onkeydown={handleKeyDown}
89
+ >
90
+ <div class="header-content">
91
+ <span class="header-text">
92
+ {@render children?.()}
93
+ </span>
94
+ {#if canSort}
95
+ <span class="sort-indicator" aria-hidden="true">
96
+ {#if isSorted}
97
+ {#if sortDirection === 'asc'}
98
+ <span class="sort-arrow">▲</span>
99
+ {:else}
100
+ <span class="sort-arrow">▼</span>
101
+ {/if}
102
+ {:else}
103
+ <span class="sort-arrow unsorted">⇅</span>
104
+ {/if}
105
+ </span>
106
+ {/if}
107
+ </div>
13
108
  </th>
14
109
 
15
110
  <style>th {
16
- padding-left: 0.5rem;
111
+ padding: 0.5rem;
17
112
  font-size: 0.8rem;
18
113
  font-weight: 500;
19
114
  font-family: sans-serif;
20
115
  line-height: 1.5rem;
21
- text-align: left;
22
116
  letter-spacing: 0.015em;
23
117
  text-transform: uppercase;
24
- text-shadow: 1px 1px 1px black;
118
+ text-shadow: 1px 1px 1px rgba(255, 255, 255, 0.5);
119
+ position: relative;
120
+ }
121
+ th.left {
25
122
  text-align: left;
26
123
  }
27
- th.currency, th.number {
124
+ th.center {
125
+ text-align: center;
126
+ }
127
+ th.right {
28
128
  text-align: right;
29
129
  }
30
- th.check, th.boolean {
31
- text-align: center;
130
+ th.sortable {
131
+ cursor: pointer;
132
+ user-select: none;
133
+ }
134
+ th.sortable:hover {
135
+ background: var(--table-header-hover-bg, rgba(0, 0, 0, 0.05));
32
136
  }
33
- th:last-child {
34
- padding-right: 0.5rem;
137
+ th.sortable:focus {
138
+ outline: 2px solid var(--focus-color, #0066cc);
139
+ outline-offset: -2px;
140
+ }
141
+ th.sorted {
142
+ background: var(--table-header-sorted-bg, rgba(0, 0, 0, 0.08));
143
+ }
144
+
145
+ .header-content {
146
+ display: flex;
147
+ align-items: center;
148
+ justify-content: space-between;
149
+ gap: 0.5rem;
150
+ }
151
+
152
+ .header-text {
153
+ flex: 1;
154
+ min-width: 0;
155
+ }
156
+
157
+ .sort-indicator {
158
+ flex-shrink: 0;
159
+ display: inline-flex;
160
+ align-items: center;
161
+ font-size: 0.75rem;
162
+ opacity: 0.7;
163
+ }
164
+
165
+ .sort-arrow {
166
+ display: inline-block;
167
+ transition: opacity 0.2s;
168
+ }
169
+ .sort-arrow.unsorted {
170
+ opacity: 0.3;
171
+ }
172
+
173
+ th.sortable:hover .sort-arrow.unsorted {
174
+ opacity: 0.6;
35
175
  }</style>
@@ -1,22 +1,16 @@
1
- import { SvelteComponent } from "svelte";
2
- declare const __propDef: {
3
- props: {
4
- colspan?: number;
5
- type?: string | undefined;
6
- width?: number | string | undefined;
7
- };
8
- events: {
9
- [evt: string]: CustomEvent<any>;
10
- };
11
- slots: {
12
- default: {};
13
- };
14
- exports?: {} | undefined;
15
- bindings?: string | undefined;
1
+ import type { Snippet } from 'svelte';
2
+ type $$ComponentProps = {
3
+ colspan?: number;
4
+ type?: string;
5
+ width?: number | string;
6
+ sortable?: boolean;
7
+ sortKey?: string;
8
+ align?: 'left' | 'center' | 'right';
9
+ isSorted?: boolean;
10
+ sortDirection?: 'asc' | 'desc';
11
+ onSort?: (column: string, direction: 'asc' | 'desc') => void;
12
+ children: Snippet;
16
13
  };
17
- export type TableHeaderCellProps = typeof __propDef.props;
18
- export type TableHeaderCellEvents = typeof __propDef.events;
19
- export type TableHeaderCellSlots = typeof __propDef.slots;
20
- export default class TableHeaderCell extends SvelteComponent<TableHeaderCellProps, TableHeaderCellEvents, TableHeaderCellSlots> {
21
- }
22
- export {};
14
+ declare const TableHeaderCell: import("svelte").Component<$$ComponentProps, {}, "">;
15
+ type TableHeaderCell = ReturnType<typeof TableHeaderCell>;
16
+ export default TableHeaderCell;
@@ -1,14 +1,39 @@
1
- <thead>
2
- <slot />
1
+ <script lang="ts">
2
+ import type { Snippet } from 'svelte';
3
+
4
+ let {
5
+ children,
6
+ sticky = false
7
+ }: {
8
+ children?: Snippet;
9
+ sticky?: boolean;
10
+ } = $props();
11
+ </script>
12
+
13
+ <thead class:sticky>
14
+ {@render children?.()}
3
15
  </thead>
4
16
 
5
17
  <style>
6
18
  thead {
7
19
  display: table-header-group;
8
20
  vertical-align: middle;
9
- background: var(--table-header-bg, #333);
10
- color: var(--table-header-fg, #fff);
11
- border-top: solid 0.1rem var(--table-header-border, #000);
12
- border-bottom: solid 0.1rem var(--table-header-border, #000);
21
+ background: var(--table-header-bg);
22
+ color: var(--table-header-fg);
23
+ border-top: solid var(--border-thin) var(--table-header-border);
24
+ border-bottom: solid var(--border-thin) var(--table-header-border);
25
+ }
26
+
27
+ thead.sticky {
28
+ position: sticky;
29
+ top: 0;
30
+ z-index: 10;
31
+ }
32
+
33
+ thead.sticky :global(th) {
34
+ position: sticky;
35
+ top: 0;
36
+ background: var(--table-header-bg);
37
+ box-shadow: 0 2px 2px -1px rgba(0, 0, 0, 0.1);
13
38
  }
14
39
  </style>
@@ -1,29 +1,8 @@
1
- /** @typedef {typeof __propDef.props} TableHeaderProps */
2
- /** @typedef {typeof __propDef.events} TableHeaderEvents */
3
- /** @typedef {typeof __propDef.slots} TableHeaderSlots */
4
- export default class TableHeader extends SvelteComponent<{
5
- [x: string]: never;
6
- }, {
7
- [evt: string]: CustomEvent<any>;
8
- }, {
9
- default: {};
10
- }> {
11
- }
12
- export type TableHeaderProps = typeof __propDef.props;
13
- export type TableHeaderEvents = typeof __propDef.events;
14
- export type TableHeaderSlots = typeof __propDef.slots;
15
- import { SvelteComponent } from "svelte";
16
- declare const __propDef: {
17
- props: {
18
- [x: string]: never;
19
- };
20
- events: {
21
- [evt: string]: CustomEvent<any>;
22
- };
23
- slots: {
24
- default: {};
25
- };
26
- exports?: undefined;
27
- bindings?: undefined;
1
+ import type { Snippet } from 'svelte';
2
+ type $$ComponentProps = {
3
+ children?: Snippet;
4
+ sticky?: boolean;
28
5
  };
29
- export {};
6
+ declare const TableHeader: import("svelte").Component<$$ComponentProps, {}, "">;
7
+ type TableHeader = ReturnType<typeof TableHeader>;
8
+ export default TableHeader;