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,49 +1,69 @@
1
- <script>import { roundToDecimals } from "../../helpers/round-to-decimals.js";
2
- import { uniqueId } from "../../helpers/unique-id.js";
3
- import FormField from "../form-field.svelte";
4
- import FormLabel from "../form-label.svelte";
5
- import { createEventDispatcher } from "svelte";
6
- const id = uniqueId();
7
- const dipatch = createEventDispatcher();
8
- export let value = 0;
9
- export let placeholder = "";
10
- export let size = "full";
11
- export let type = "number";
12
- export let min = 0;
13
- export let max = 1e6;
14
- export let decimals = 0;
15
- export let prefix = null;
16
- export let suffix = null;
17
- export let step = 1;
18
- const valueChanged = () => {
19
- if (value === null || value === void 0) return;
20
- if (value < min) value = min;
21
- if (value > max) value = max;
22
- value = roundToDecimals(value, decimals);
23
- dipatch("change", value);
24
- };
25
- const onInput = (e) => {
26
- const input = e.target;
27
- const newValue = parseFloat(input.value);
28
- if (isNaN(newValue)) return;
29
- value = newValue;
30
- };
31
- const onKeyPress = (e) => {
32
- const isNumber = !isNaN(Number(e.key));
33
- const isDecimal = e.key === ".";
34
- const isAllowed = isNumber || isDecimal || ["Backspace", "Delete", "ArrowLeft", "ArrowRight", "Tab"].includes(e.key);
35
- if (!isAllowed) return e.preventDefault();
36
- if (isDecimal && decimals === 0) return e.preventDefault();
37
- const newValue = `${value}${e.key}`;
38
- const decimalPart = newValue.split(".")[1];
39
- if (decimalPart && decimalPart.length > decimals) return e.preventDefault();
40
- };
1
+ <script lang="ts">
2
+ import { roundToDecimals } from '../../helpers/round-to-decimals.js';
3
+ import { uniqueId } from '../../helpers/unique-id.js';
4
+ import FormField from '../form-field.svelte';
5
+ import type { FormFieldSizeOptions } from '../../types/form.js';
6
+ const id = uniqueId();
7
+
8
+ type AllowedInputTypes = 'number' | 'currency';
9
+
10
+ let {
11
+ value = $bindable(0 as number | null),
12
+ placeholder = '',
13
+ size = 'full' as FormFieldSizeOptions,
14
+ type = 'number' as AllowedInputTypes,
15
+ min = 0,
16
+ max = 1000000,
17
+ decimals = 0,
18
+ prefix = null as string | null,
19
+ suffix = null as string | null,
20
+ step = 1,
21
+ onChange = undefined,
22
+ label = undefined
23
+ }: {
24
+ value?: number | null;
25
+ placeholder?: string;
26
+ size?: FormFieldSizeOptions;
27
+ type?: AllowedInputTypes;
28
+ min?: number;
29
+ max?: number;
30
+ decimals?: number;
31
+ prefix?: string | null;
32
+ suffix?: string | null;
33
+ step?: number;
34
+ onChange?: ((value: number | null) => void) | undefined;
35
+ label?: string;
36
+ } = $props();
37
+
38
+ const valueChanged = () => {
39
+ if (value === null || value === undefined) return;
40
+ if (value < min) value = min;
41
+ if (value > max) value = max;
42
+ value = roundToDecimals(value, decimals);
43
+ onChange?.(value);
44
+ };
45
+
46
+ const onInput = (e: Event) => {
47
+ const input = e.target as HTMLInputElement;
48
+ const newValue = parseFloat(input.value);
49
+ if (isNaN(newValue)) return;
50
+ value = newValue;
51
+ };
52
+
53
+ // Don't allow certain characters to be typed into the input
54
+ const onKeyPress = (e: KeyboardEvent) => {
55
+ const isNumber = !isNaN(Number(e.key));
56
+ const isDecimal = e.key === '.';
57
+ const isAllowed = isNumber || isDecimal || ['Backspace', 'Delete', 'ArrowLeft', 'ArrowRight', 'Tab'].includes(e.key);
58
+ if (!isAllowed) return e.preventDefault();
59
+ if (isDecimal && decimals === 0) return e.preventDefault();
60
+ const newValue = `${value}${e.key}`;
61
+ const decimalPart = newValue.split('.')[1];
62
+ if (decimalPart && decimalPart.length > decimals) return e.preventDefault();
63
+ };
41
64
  </script>
42
65
 
43
- <FormField {size}>
44
- {#if $$slots.default}
45
- <FormLabel {id}><slot /></FormLabel>
46
- {/if}
66
+ <FormField {size} {label} {id}>
47
67
  <div class="input {type}">
48
68
  {#if prefix}
49
69
  <span class="prefix">{prefix}</span>
@@ -57,9 +77,9 @@ const onKeyPress = (e) => {
57
77
  {step}
58
78
  {min}
59
79
  {max}
60
- on:change={valueChanged}
61
- on:input={onInput}
62
- on:keypress={onKeyPress}
80
+ onchange={valueChanged}
81
+ oninput={onInput}
82
+ onkeypress={onKeyPress}
63
83
  />
64
84
 
65
85
  {#if suffix}
@@ -75,14 +95,14 @@ const onKeyPress = (e) => {
75
95
  position: relative;
76
96
  width: 100%;
77
97
  height: 100%;
78
- border-radius: 0.25rem;
79
- border: 1px solid var(--form-input-border, black);
80
- background-color: var(--form-input-bg, white);
81
- color: var(--form-input-fg, black);
82
- font-size: 1rem;
98
+ border-radius: var(--radius-md);
99
+ border: var(--border-thin) solid var(--form-input-border);
100
+ background-color: var(--form-input-bg);
101
+ color: var(--form-input-fg);
102
+ font-size: var(--font-md);
83
103
  font-weight: 500;
84
104
  line-height: 2rem;
85
- transition: background-color 0.2s ease-in-out, border-color 0.2s ease-in-out, color 0.2s ease-in-out, fill 0.2s ease-in-out, stroke 0.2s ease-in-out;
105
+ transition: background-color var(--transition-base) var(--ease-in-out), border-color var(--transition-base) var(--ease-in-out), color var(--transition-base) var(--ease-in-out), fill var(--transition-base) var(--ease-in-out), stroke var(--transition-base) var(--ease-in-out);
86
106
  user-select: none;
87
107
  white-space: nowrap;
88
108
  }
@@ -90,26 +110,26 @@ const onKeyPress = (e) => {
90
110
  background-color: transparent;
91
111
  border: none;
92
112
  line-height: 2rem;
93
- font-size: 1rem;
113
+ font-size: var(--font-md);
94
114
  width: 100%;
95
115
  flex-grow: 1;
96
- padding-left: 1rem;
116
+ padding-left: var(--spacing-base);
97
117
  }
98
118
  .input input:focus {
99
119
  outline: none;
100
120
  }
101
121
  .input .prefix,
102
122
  .input .suffix {
103
- font-size: 1rem;
123
+ font-size: var(--font-md);
104
124
  line-height: 2rem;
105
- padding-left: 1rem;
106
- padding-right: 1rem;
107
- background-color: var(--form-input-accent-bg, #ccc);
108
- color: var(--form-input-accent-fg, black);
125
+ padding-left: var(--spacing-base);
126
+ padding-right: var(--spacing-base);
127
+ background-color: var(--form-input-accent-bg);
128
+ color: var(--form-input-accent-fg);
109
129
  }
110
130
  .input .prefix {
111
- border-right: 1px solid var(--form-input-border, black);
131
+ border-right: var(--border-thin) solid var(--form-input-border);
112
132
  }
113
133
  .input .suffix {
114
- border-left: 1px solid var(--form-input-border, black);
134
+ border-left: var(--border-thin) solid var(--form-input-border);
115
135
  }</style>
@@ -1,32 +1,19 @@
1
- import { SvelteComponent } from "svelte";
2
1
  import type { FormFieldSizeOptions } from '../../types/form.js';
3
- declare const __propDef: {
4
- props: {
5
- value?: number | null;
6
- placeholder?: string;
7
- size?: FormFieldSizeOptions;
8
- type?: "number" | "currency";
9
- min?: number;
10
- max?: number;
11
- decimals?: number;
12
- prefix?: string | null;
13
- suffix?: string | null;
14
- step?: number;
15
- };
16
- events: {
17
- change: CustomEvent<number | null>;
18
- } & {
19
- [evt: string]: CustomEvent<any>;
20
- };
21
- slots: {
22
- default: {};
23
- };
24
- exports?: {} | undefined;
25
- bindings?: string | undefined;
2
+ type AllowedInputTypes = 'number' | 'currency';
3
+ type $$ComponentProps = {
4
+ value?: number | null;
5
+ placeholder?: string;
6
+ size?: FormFieldSizeOptions;
7
+ type?: AllowedInputTypes;
8
+ min?: number;
9
+ max?: number;
10
+ decimals?: number;
11
+ prefix?: string | null;
12
+ suffix?: string | null;
13
+ step?: number;
14
+ onChange?: ((value: number | null) => void) | undefined;
15
+ label?: string;
26
16
  };
27
- export type NumberBoxProps = typeof __propDef.props;
28
- export type NumberBoxEvents = typeof __propDef.events;
29
- export type NumberBoxSlots = typeof __propDef.slots;
30
- export default class NumberBox extends SvelteComponent<NumberBoxProps, NumberBoxEvents, NumberBoxSlots> {
31
- }
32
- export {};
17
+ declare const NumberBox: import("svelte").Component<$$ComponentProps, {}, "value">;
18
+ type NumberBox = ReturnType<typeof NumberBox>;
19
+ export default NumberBox;
@@ -0,0 +1 @@
1
+ export { default as PhoneBox } from './phone-box.svelte';
@@ -0,0 +1 @@
1
+ export { default as PhoneBox } from './phone-box.svelte';
@@ -1,121 +1,161 @@
1
- <script>import { uniqueId } from "../../index.js";
2
- import { createEventDispatcher } from "svelte";
3
- import FormField from "../form-field.svelte";
4
- import FormLabel from "../form-label.svelte";
5
- export let value = "";
6
- export let size = "md";
7
- const id = uniqueId();
8
- const dispatch = createEventDispatcher();
9
- const fieldOrder = ["areaCode", "localExt", "lastFour"];
10
- let areaCode = "";
11
- let localExt = "";
12
- let lastFour = "";
13
- const getValueByField = (field) => {
14
- if (field === "areaCode") return areaCode;
15
- if (field === "localExt") return localExt;
16
- if (field === "lastFour") return lastFour;
17
- return "";
18
- };
19
- const getValueByIndex = (index) => {
20
- return getValueByField(fieldOrder[index]);
21
- };
22
- const getTargetProperties = (event) => {
23
- const target = event.target;
24
- const name = target.getAttribute("name");
25
- const currentIndex = fieldOrder.indexOf(name ?? "areaCode");
26
- const nextId = currentIndex == 2 ? null : fieldOrder[currentIndex + 1];
27
- const prevId = currentIndex == 0 ? null : fieldOrder[currentIndex - 1];
28
- return {
29
- target,
30
- name,
31
- value: target.value,
32
- maxLength: Number(target.getAttribute("data-maxlength")),
33
- nextInput: document.getElementById(`${id}-${nextId}`),
34
- prevId: document.getElementById(`${id}-${prevId}`)
35
- };
36
- };
37
- const cleanValue = (value2) => {
38
- return value2.replace(/[^0-9]/g, "").slice(0, 10);
39
- };
40
- const getCombinedValue = () => {
41
- return cleanValue(`${areaCode}${localExt}${lastFour}`);
42
- };
43
- const publishChange = () => {
44
- value = getCombinedValue();
45
- dispatch("change", value);
46
- return value;
47
- };
48
- const setValue = (value2) => {
49
- const newValue = cleanValue(value2);
50
- if (newValue.length == 7) {
51
- areaCode = "";
52
- localExt = newValue.slice(0, 3);
53
- lastFour = newValue.slice(3, 7);
54
- } else {
55
- areaCode = newValue.slice(0, 3);
56
- localExt = newValue.slice(3, 6);
57
- lastFour = newValue.slice(6, 10);
58
- }
59
- };
60
- const valueChanged = (event) => {
61
- const props = getTargetProperties(event);
62
- const newValue = cleanValue(props.value);
63
- if (newValue.length >= 10) return setValue(newValue);
64
- if (props.name == "localExt" && newValue.length >= 7) {
65
- return setValue(`${areaCode}${newValue}`);
66
- }
67
- props.target.value = newValue.slice(0, props.maxLength);
68
- if (newValue.length >= props.maxLength && props.nextInput) {
69
- props.nextInput.focus();
70
- }
71
- };
72
- const keyUp = (event) => {
73
- const props = getTargetProperties(event);
74
- const isBackspace = event.key === "Backspace";
75
- const isDelete = event.key === "Delete";
76
- const isBackspaceOrDelete = isBackspace || isDelete;
77
- const isNumeric = !isNaN(Number(event.key));
78
- const isCursorHighlighting = props.target.selectionStart !== props.target.selectionEnd;
79
- const isAcceptable = isNumeric || isBackspaceOrDelete;
80
- const isRightArrow = event.key === "ArrowRight" || event.key === "Tab";
81
- const isLeftArrow = event.key === "ArrowLeft";
82
- if (isRightArrow || isLeftArrow) return;
83
- if (!isAcceptable) event.preventDefault();
84
- const newValue = (() => {
85
- if (isCursorHighlighting) {
86
- const start = props.target.selectionStart || 0;
87
- const end = props.target.selectionEnd || 0;
88
- return isBackspaceOrDelete ? props.value.slice(0, start) + props.value.slice(end) : props.value.slice(0, start) + event.key + props.value.slice(end);
89
- }
90
- return props.value;
91
- })();
92
- if (newValue.length >= props.maxLength) {
93
- props.target.value = newValue.slice(0, props.maxLength);
94
- if (props.nextInput) props.nextInput.focus();
95
- }
96
- if (isBackspace) {
97
- if (newValue.length === 0 && props.prevId) {
98
- props.prevId.focus();
99
- }
100
- }
101
- };
102
- setValue(value ?? "");
103
- $: areaCode || localExt || lastFour ? publishChange() : null;
1
+ <script lang="ts">
2
+ import { untrack } from 'svelte';
3
+ import { uniqueId, type FormFieldSizeOptions } from '../../index.js';
4
+ import FormField from '../form-field.svelte';
5
+
6
+ let {
7
+ value = $bindable('' as string | null),
8
+ size = 'md' as FormFieldSizeOptions,
9
+ onChange = undefined,
10
+ label = undefined
11
+ }: {
12
+ value?: string | null;
13
+ size?: FormFieldSizeOptions;
14
+ onChange?: ((value: string) => void) | undefined;
15
+ label?: string;
16
+ } = $props();
17
+
18
+ const id = uniqueId();
19
+ const fieldOrder = ['areaCode', 'localExt', 'lastFour'];
20
+ let areaCode = $state('');
21
+ let localExt = $state('');
22
+ let lastFour = $state('');
23
+
24
+ const getValueByField = (field: string) => {
25
+ if (field === 'areaCode') return areaCode;
26
+ if (field === 'localExt') return localExt;
27
+ if (field === 'lastFour') return lastFour;
28
+ return '';
29
+ };
30
+
31
+ const getValueByIndex = (index: number) => {
32
+ return getValueByField(fieldOrder[index]);
33
+ };
34
+
35
+ const getTargetProperties = (event: Event) => {
36
+ const target = event.target as HTMLInputElement;
37
+ const name = target.getAttribute('name');
38
+ const currentIndex = fieldOrder.indexOf(name ?? 'areaCode');
39
+ const nextId = currentIndex == 2 ? null : fieldOrder[currentIndex + 1];
40
+ const prevId = currentIndex == 0 ? null : fieldOrder[currentIndex - 1];
41
+ return {
42
+ target,
43
+ name,
44
+ value: target.value,
45
+ maxLength: Number(target.getAttribute('data-maxlength')),
46
+ nextInput: document.getElementById(`${id}-${nextId}`),
47
+ prevId: document.getElementById(`${id}-${prevId}`)
48
+ };
49
+ };
50
+
51
+ const cleanValue = (value: string) => {
52
+ return value.replace(/[^0-9]/g, '').slice(0, 10);
53
+ };
54
+
55
+ const getCombinedValue = () => {
56
+ return cleanValue(`${areaCode}${localExt}${lastFour}`);
57
+ };
58
+
59
+ const publishChange = () => {
60
+ value = getCombinedValue();
61
+ onChange?.(value);
62
+ return value;
63
+ };
64
+
65
+ const setValue = (value: string) => {
66
+ const newValue = cleanValue(value);
67
+ if (newValue.length == 7) {
68
+ areaCode = '';
69
+ localExt = newValue.slice(0, 3);
70
+ lastFour = newValue.slice(3, 7);
71
+ } else {
72
+ areaCode = newValue.slice(0, 3);
73
+ localExt = newValue.slice(3, 6);
74
+ lastFour = newValue.slice(6, 10);
75
+ }
76
+ };
77
+
78
+ // Only accept number input
79
+ const valueChanged = (event: Event) => {
80
+ const props = getTargetProperties(event);
81
+ const newValue = cleanValue(props.value);
82
+ // If they put in 10 digits, in any input, consider that the whole number
83
+ if (newValue.length >= 10) return setValue(newValue);
84
+ // If they put in 7 or more digits in the localExt input, flow the second 4 to the lastFour input
85
+ if (props.name == 'localExt' && newValue.length >= 7) {
86
+ return setValue(`${areaCode}${newValue}`);
87
+ }
88
+ // Otherwise, just accept it into the current input
89
+ props.target.value = newValue.slice(0, props.maxLength);
90
+ // Then focus on the next input
91
+ if (newValue.length >= props.maxLength && props.nextInput) {
92
+ props.nextInput.focus();
93
+ }
94
+ };
95
+
96
+ // Key down event handler, don't accept non-numeric characters
97
+ const keyUp = (event: KeyboardEvent) => {
98
+ const props = getTargetProperties(event);
99
+ const isBackspace = event.key === 'Backspace';
100
+ const isDelete = event.key === 'Delete';
101
+ const isBackspaceOrDelete = isBackspace || isDelete;
102
+ const isNumeric = !isNaN(Number(event.key));
103
+ const isCursorHighlighting = props.target.selectionStart !== props.target.selectionEnd;
104
+ const isAcceptable = isNumeric || isBackspaceOrDelete;
105
+ const isRightArrow = event.key === 'ArrowRight' || event.key === 'Tab';
106
+ const isLeftArrow = event.key === 'ArrowLeft';
107
+ // If they are trying to move the cursor, let them
108
+ if (isRightArrow || isLeftArrow) return;
109
+ // Do not allow any non-numeric characters
110
+ if (!isAcceptable) event.preventDefault();
111
+ // Parse what they typed and update the value
112
+ const newValue = (() => {
113
+ if (isCursorHighlighting) {
114
+ const start = props.target.selectionStart || 0;
115
+ const end = props.target.selectionEnd || 0;
116
+ return isBackspaceOrDelete
117
+ ? props.value.slice(0, start) + props.value.slice(end)
118
+ : props.value.slice(0, start) + event.key + props.value.slice(end);
119
+ }
120
+ return props.value;
121
+ })();
122
+ if (newValue.length >= props.maxLength) {
123
+ props.target.value = newValue.slice(0, props.maxLength);
124
+ if (props.nextInput) props.nextInput.focus();
125
+ }
126
+ // If backspace and the length is now 0, focus the previous input
127
+ if (isBackspace) {
128
+ if (newValue.length === 0 && props.prevId) {
129
+ props.prevId.focus();
130
+ }
131
+ }
132
+ };
133
+
134
+ // Set the initial value
135
+ setValue(value ?? '');
136
+
137
+ $effect(() => {
138
+ // Only trigger when the phone number parts change
139
+ const hasValue = areaCode || localExt || lastFour;
140
+ if (hasValue) {
141
+ // Use untrack to prevent value changes from triggering this effect again
142
+ untrack(() => {
143
+ publishChange();
144
+ });
145
+ }
146
+ });
104
147
  </script>
105
148
 
106
- <FormField {size}>
107
- {#if $$slots.default}
108
- <FormLabel id="{id}-areaCode"><slot /></FormLabel>
109
- {/if}
149
+ <FormField {size} {label} id="{id}-areaCode">
110
150
  <div class="input">
111
151
  <span class="areaCode segment">
112
152
  <span>(</span>
113
153
  <input
114
154
  id="{id}-areaCode"
115
155
  type="text"
116
- on:input={valueChanged}
117
- on:keyup={keyUp}
118
- on:change={valueChanged}
156
+ oninput={valueChanged}
157
+ onkeyup={keyUp}
158
+ onchange={valueChanged}
119
159
  bind:value={areaCode}
120
160
  name="areaCode"
121
161
  data-maxlength="3"
@@ -126,9 +166,9 @@ $: areaCode || localExt || lastFour ? publishChange() : null;
126
166
  <input
127
167
  id="{id}-localExt"
128
168
  type="text"
129
- on:input={valueChanged}
130
- on:change={valueChanged}
131
- on:keyup={keyUp}
169
+ oninput={valueChanged}
170
+ onchange={valueChanged}
171
+ onkeyup={keyUp}
132
172
  bind:value={localExt}
133
173
  name="localExt"
134
174
  data-maxlength="3"
@@ -139,9 +179,9 @@ $: areaCode || localExt || lastFour ? publishChange() : null;
139
179
  <input
140
180
  id="{id}-lastFour"
141
181
  type="text"
142
- on:input={valueChanged}
143
- on:change={valueChanged}
144
- on:keyup={keyUp}
182
+ oninput={valueChanged}
183
+ onchange={valueChanged}
184
+ onkeyup={keyUp}
145
185
  bind:value={lastFour}
146
186
  name="lastFour"
147
187
  data-maxlength="4"
@@ -1,24 +1,10 @@
1
- import { SvelteComponent } from "svelte";
2
1
  import { type FormFieldSizeOptions } from '../../index.js';
3
- declare const __propDef: {
4
- props: {
5
- value?: string | null;
6
- size?: FormFieldSizeOptions;
7
- };
8
- events: {
9
- change: CustomEvent<string>;
10
- } & {
11
- [evt: string]: CustomEvent<any>;
12
- };
13
- slots: {
14
- default: {};
15
- };
16
- exports?: {} | undefined;
17
- bindings?: string | undefined;
2
+ type $$ComponentProps = {
3
+ value?: string | null;
4
+ size?: FormFieldSizeOptions;
5
+ onChange?: ((value: string) => void) | undefined;
6
+ label?: string;
18
7
  };
19
- export type PhoneBoxProps = typeof __propDef.props;
20
- export type PhoneBoxEvents = typeof __propDef.events;
21
- export type PhoneBoxSlots = typeof __propDef.slots;
22
- export default class PhoneBox extends SvelteComponent<PhoneBoxProps, PhoneBoxEvents, PhoneBoxSlots> {
23
- }
24
- export {};
8
+ declare const PhoneBox: import("svelte").Component<$$ComponentProps, {}, "value">;
9
+ type PhoneBox = ReturnType<typeof PhoneBox>;
10
+ export default PhoneBox;
@@ -0,0 +1,2 @@
1
+ export { default as RadioGroup } from './radio-group.svelte';
2
+ export { default as RadioBox } from './radio-box.svelte';
@@ -0,0 +1,2 @@
1
+ export { default as RadioGroup } from './radio-group.svelte';
2
+ export { default as RadioBox } from './radio-box.svelte';
@@ -1,9 +1,23 @@
1
- <script>import { uniqueId } from "../../helpers/unique-id.js";
2
- import CheckIcon from "../../icons/check-icon.svelte";
3
- export let value = void 0;
4
- export let group = void 0;
5
- export let disabled = false;
6
- const id = uniqueId();
1
+ <script lang="ts">
2
+ import type { Snippet } from 'svelte';
3
+ import { uniqueId } from '../../helpers/unique-id.js';
4
+ import CheckIcon from '../../icons/check-icon.svelte';
5
+
6
+ type RadioValue = string | number | boolean | undefined | null;
7
+
8
+ let {
9
+ value = undefined as RadioValue,
10
+ group = $bindable(undefined as string | undefined),
11
+ disabled = false,
12
+ children = undefined
13
+ }: {
14
+ value?: RadioValue;
15
+ group?: string | undefined;
16
+ disabled?: boolean;
17
+ children?: Snippet;
18
+ } = $props();
19
+
20
+ const id = uniqueId();
7
21
  </script>
8
22
 
9
23
  <label>
@@ -11,9 +25,9 @@ const id = uniqueId();
11
25
  <span class="checkbox">
12
26
  <span class="checkmark"><CheckIcon /></span>
13
27
  </span>
14
- {#if $$slots.default}
28
+ {#if children}
15
29
  <div class="text">
16
- <slot />
30
+ {@render children?.()}
17
31
  </div>
18
32
  {/if}
19
33
  </label>
@@ -48,6 +62,7 @@ label .checkbox .checkmark {
48
62
  display: block;
49
63
  width: 0;
50
64
  height: 0;
65
+ line-height: 100%;
51
66
  color: var(--form-input-selected-fg, white);
52
67
  fill: var(--form-input-selected-bg, #3182ce);
53
68
  stroke: var(--form-input-selected-fg, white);