sveltacular 0.0.77 → 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 -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 +63 -29
  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 +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 -51
  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 +40 -21
  25. package/dist/forms/file-box/file-box.svelte.d.ts +14 -27
  26. package/dist/forms/form-field.svelte +18 -13
  27. package/dist/forms/form-field.svelte.d.ts +8 -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-section.svelte +15 -4
  35. package/dist/forms/form-section.svelte.d.ts +8 -20
  36. package/dist/forms/form.svelte +30 -13
  37. package/dist/forms/form.svelte.d.ts +11 -24
  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 -21
  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 -109
  45. package/dist/forms/list-box/list-box.svelte.d.ts +16 -28
  46. package/dist/forms/money-box/money-box.svelte +223 -176
  47. package/dist/forms/money-box/money-box.svelte.d.ts +16 -30
  48. package/dist/forms/number-box/number-box.svelte +84 -60
  49. package/dist/forms/number-box/number-box.svelte.d.ts +17 -30
  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 -114
  53. package/dist/forms/phone-box/phone-box.svelte.d.ts +8 -22
  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 -21
  58. package/dist/forms/radio-group/radio-group.svelte +27 -13
  59. package/dist/forms/radio-group/radio-group.svelte.d.ts +10 -23
  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 -22
  64. package/dist/forms/text-area/text-area.svelte +89 -15
  65. package/dist/forms/text-area/text-area.svelte.d.ts +15 -25
  66. package/dist/forms/text-box/text-box.svelte +253 -75
  67. package/dist/forms/text-box/text-box.svelte.d.ts +28 -38
  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 -22
  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 -11
  75. package/dist/generic/address/address.svelte.d.ts +9 -21
  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 -12
  81. package/dist/generic/card/card-container.svelte.d.ts +8 -20
  82. package/dist/generic/card/card.svelte +47 -27
  83. package/dist/generic/card/card.svelte.d.ts +9 -21
  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 -58
  89. package/dist/generic/date/date-time.svelte.d.ts +10 -22
  90. package/dist/generic/divider/divider.svelte.d.ts +22 -21
  91. package/dist/generic/dot/dot.svelte +13 -4
  92. package/dist/generic/dot/dot.svelte.d.ts +7 -19
  93. package/dist/generic/dropdown-item/dropdown-item.svelte +24 -12
  94. package/dist/generic/dropdown-item/dropdown-item.svelte.d.ts +10 -23
  95. package/dist/generic/email/email.svelte +6 -4
  96. package/dist/generic/email/email.svelte.d.ts +5 -17
  97. package/dist/generic/empty/empty.svelte +57 -26
  98. package/dist/generic/empty/empty.svelte.d.ts +11 -23
  99. package/dist/generic/header/header.svelte +26 -10
  100. package/dist/generic/header/header.svelte.d.ts +10 -22
  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 -23
  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 -17
  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 -21
  112. package/dist/generic/menu/menu.svelte +163 -54
  113. package/dist/generic/menu/menu.svelte.d.ts +16 -26
  114. package/dist/generic/notice/notice.svelte +119 -80
  115. package/dist/generic/notice/notice.svelte.d.ts +17 -28
  116. package/dist/generic/overlay.svelte +40 -14
  117. package/dist/generic/overlay.svelte.d.ts +9 -21
  118. package/dist/generic/panel/panel.svelte +16 -6
  119. package/dist/generic/panel/panel.svelte.d.ts +8 -20
  120. package/dist/generic/phone/phone.svelte +30 -20
  121. package/dist/generic/phone/phone.svelte.d.ts +6 -18
  122. package/dist/generic/pill/pill.svelte +47 -33
  123. package/dist/generic/pill/pill.svelte.d.ts +10 -23
  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 -18
  129. package/dist/generic/scorecard/scorecard.svelte.d.ts +9 -21
  130. package/dist/generic/section/section.svelte +28 -9
  131. package/dist/generic/section/section.svelte.d.ts +11 -23
  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 -17
  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 +6 -0
  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 -1
  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 -14
  181. package/dist/icons/angle-up-icon.svelte.d.ts +22 -21
  182. package/dist/icons/check-icon.svelte.d.ts +22 -21
  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 -21
  186. package/dist/icons/folder-open-icon.svelte.d.ts +22 -21
  187. package/dist/icons/hamburger-icon.svelte.d.ts +22 -21
  188. package/dist/icons/home-icon.svelte +2 -1
  189. package/dist/icons/home-icon.svelte.d.ts +16 -14
  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 -21
  193. package/dist/icons/mobile-phone-icon.svelte.d.ts +22 -21
  194. package/dist/icons/phone-icon.svelte.d.ts +22 -21
  195. package/dist/icons/svg-icon.svelte +46 -10
  196. package/dist/icons/svg-icon.svelte.d.ts +13 -25
  197. package/dist/icons/upload-icon.svelte.d.ts +22 -21
  198. package/dist/images/icon.svelte +9 -3
  199. package/dist/images/icon.svelte.d.ts +6 -18
  200. package/dist/images/image.svelte +28 -8
  201. package/dist/images/image.svelte.d.ts +14 -28
  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 -16
  207. package/dist/layout/flex-col.svelte.d.ts +12 -24
  208. package/dist/layout/flex-item.svelte +13 -3
  209. package/dist/layout/flex-item.svelte.d.ts +8 -20
  210. package/dist/layout/flex-row.svelte +70 -15
  211. package/dist/layout/flex-row.svelte.d.ts +14 -26
  212. package/dist/layout/grid.svelte +7 -1
  213. package/dist/layout/grid.svelte.d.ts +6 -28
  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 -26
  218. package/dist/modals/confirm.svelte +54 -37
  219. package/dist/modals/confirm.svelte.d.ts +16 -29
  220. package/dist/modals/dialog-body.svelte +10 -4
  221. package/dist/modals/dialog-body.svelte.d.ts +6 -28
  222. package/dist/modals/dialog-close-button.svelte +15 -9
  223. package/dist/modals/dialog-close-button.svelte.d.ts +6 -19
  224. package/dist/modals/dialog-footer.svelte +6 -3
  225. package/dist/modals/dialog-footer.svelte.d.ts +6 -28
  226. package/dist/modals/dialog-header.svelte +13 -1
  227. package/dist/modals/dialog-header.svelte.d.ts +7 -28
  228. package/dist/modals/dialog-window.svelte +42 -14
  229. package/dist/modals/dialog-window.svelte.d.ts +9 -19
  230. package/dist/modals/index.d.ts +9 -0
  231. package/dist/modals/index.js +9 -0
  232. package/dist/modals/modal.svelte +88 -23
  233. package/dist/modals/modal.svelte.d.ts +14 -24
  234. package/dist/modals/prompt.svelte +71 -49
  235. package/dist/modals/prompt.svelte.d.ts +19 -32
  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 -12
  239. package/dist/navigation/app-bar/app-bar.svelte.d.ts +10 -22
  240. package/dist/navigation/app-bar/app-branding.svelte +10 -5
  241. package/dist/navigation/app-bar/app-branding.svelte.d.ts +6 -17
  242. package/dist/navigation/app-bar/app-logo.svelte +20 -5
  243. package/dist/navigation/app-bar/app-logo.svelte.d.ts +9 -21
  244. package/dist/navigation/app-bar/app-nav-item.svelte +26 -13
  245. package/dist/navigation/app-bar/app-nav-item.svelte.d.ts +9 -22
  246. package/dist/navigation/app-bar/app-nav.svelte +39 -12
  247. package/dist/navigation/app-bar/app-nav.svelte.d.ts +8 -20
  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 -27
  251. package/dist/navigation/breadcrumbs/breadcrumbs.svelte.d.ts +12 -23
  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 -19
  268. package/dist/navigation/dropdown-button/dropdown-button.svelte.d.ts +10 -22
  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 -37
  272. package/dist/navigation/pagination/pagination.svelte.d.ts +10 -23
  273. package/dist/navigation/side-bar/side-bar.svelte +18 -9
  274. package/dist/navigation/side-bar/side-bar.svelte.d.ts +7 -19
  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 -52
  279. package/dist/navigation/tabs/tab-group.svelte.d.ts +9 -22
  280. package/dist/navigation/tabs/tab.svelte +64 -33
  281. package/dist/navigation/tabs/tab.svelte.d.ts +11 -24
  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 -13
  286. package/dist/navigation/wizard/wizard-step.svelte.d.ts +8 -20
  287. package/dist/navigation/wizard/wizard.svelte +123 -81
  288. package/dist/navigation/wizard/wizard.svelte.d.ts +15 -28
  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 -19
  293. package/dist/placeholders/progress.svelte +7 -6
  294. package/dist/placeholders/progress.svelte.d.ts +5 -17
  295. package/dist/placeholders/skeleton-input.svelte +66 -38
  296. package/dist/placeholders/skeleton-input.svelte.d.ts +5 -17
  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 -15
  302. package/dist/placeholders/skeleton-text.svelte.d.ts +7 -19
  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 -118
  306. package/dist/tables/data-grid.svelte.d.ts +34 -35
  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 -20
  311. package/dist/tables/table-cell.svelte +45 -14
  312. package/dist/tables/table-cell.svelte.d.ts +10 -21
  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 -18
  316. package/dist/tables/table-header-cell.svelte.d.ts +15 -21
  317. package/dist/tables/table-header.svelte +31 -6
  318. package/dist/tables/table-header.svelte.d.ts +7 -28
  319. package/dist/tables/table-row.svelte +87 -7
  320. package/dist/tables/table-row.svelte.d.ts +10 -28
  321. package/dist/tables/table.svelte +61 -2
  322. package/dist/tables/table.svelte.d.ts +13 -28
  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 -25
  339. package/dist/timeline/timeline.svelte +12 -6
  340. package/dist/timeline/timeline.svelte.d.ts +6 -28
  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 -19
  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 -20
  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 -28
  358. package/dist/typography/subtitle.svelte +18 -4
  359. package/dist/typography/subtitle.svelte.d.ts +8 -20
  360. package/dist/typography/text.svelte +20 -5
  361. package/dist/typography/text.svelte.d.ts +9 -21
  362. package/package.json +31 -21
  363. package/dist/navigation/accordian/accordian.svelte +0 -62
  364. package/dist/navigation/accordian/accordian.svelte.d.ts +0 -21
  365. package/dist/tables/table-body.svelte +0 -3
  366. package/dist/tables/table-body.svelte.d.ts +0 -29
  367. package/dist/tables/table-footer-cell.svelte +0 -22
  368. package/dist/tables/table-footer-cell.svelte.d.ts +0 -20
  369. package/dist/tables/table-footer-row.svelte +0 -3
  370. package/dist/tables/table-footer-row.svelte.d.ts +0 -29
  371. package/dist/tables/table-footer.svelte +0 -13
  372. package/dist/tables/table-footer.svelte.d.ts +0 -29
  373. package/dist/tables/table-header-row.svelte +0 -4
  374. package/dist/tables/table-header-row.svelte.d.ts +0 -29
@@ -1,48 +1,72 @@
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 FormLabel from '../form-label.svelte';
6
+ import type { FormFieldSizeOptions } from '../../types/form.js';
7
+ const id = uniqueId();
8
+
9
+ type AllowedInputTypes = 'number' | 'currency';
10
+
11
+ let {
12
+ value = $bindable(0 as number | null),
13
+ placeholder = '',
14
+ size = 'full' as FormFieldSizeOptions,
15
+ type = 'number' as AllowedInputTypes,
16
+ min = 0,
17
+ max = 1000000,
18
+ decimals = 0,
19
+ prefix = null as string | null,
20
+ suffix = null as string | null,
21
+ step = 1,
22
+ onChange = undefined,
23
+ label = undefined
24
+ }: {
25
+ value?: number | null;
26
+ placeholder?: string;
27
+ size?: FormFieldSizeOptions;
28
+ type?: AllowedInputTypes;
29
+ min?: number;
30
+ max?: number;
31
+ decimals?: number;
32
+ prefix?: string | null;
33
+ suffix?: string | null;
34
+ step?: number;
35
+ onChange?: ((value: number | null) => void) | undefined;
36
+ label?: string;
37
+ } = $props();
38
+
39
+ const valueChanged = () => {
40
+ if (value === null || value === undefined) return;
41
+ if (value < min) value = min;
42
+ if (value > max) value = max;
43
+ value = roundToDecimals(value, decimals);
44
+ onChange?.(value);
45
+ };
46
+
47
+ const onInput = (e: Event) => {
48
+ const input = e.target as HTMLInputElement;
49
+ const newValue = parseFloat(input.value);
50
+ if (isNaN(newValue)) return;
51
+ value = newValue;
52
+ };
53
+
54
+ // Don't allow certain characters to be typed into the input
55
+ const onKeyPress = (e: KeyboardEvent) => {
56
+ const isNumber = !isNaN(Number(e.key));
57
+ const isDecimal = e.key === '.';
58
+ const isAllowed = isNumber || isDecimal || ['Backspace', 'Delete', 'ArrowLeft', 'ArrowRight', 'Tab'].includes(e.key);
59
+ if (!isAllowed) return e.preventDefault();
60
+ if (isDecimal && decimals === 0) return e.preventDefault();
61
+ const newValue = `${value}${e.key}`;
62
+ const decimalPart = newValue.split('.')[1];
63
+ if (decimalPart && decimalPart.length > decimals) return e.preventDefault();
64
+ };
41
65
  </script>
42
66
 
43
67
  <FormField {size}>
44
- {#if $$slots.default}
45
- <FormLabel {id}><slot /></FormLabel>
68
+ {#if label}
69
+ <FormLabel {id} {label} />
46
70
  {/if}
47
71
  <div class="input {type}">
48
72
  {#if prefix}
@@ -57,9 +81,9 @@ const onKeyPress = (e) => {
57
81
  {step}
58
82
  {min}
59
83
  {max}
60
- on:change={valueChanged}
61
- on:input={onInput}
62
- on:keypress={onKeyPress}
84
+ onchange={valueChanged}
85
+ oninput={onInput}
86
+ onkeypress={onKeyPress}
63
87
  />
64
88
 
65
89
  {#if suffix}
@@ -75,14 +99,14 @@ const onKeyPress = (e) => {
75
99
  position: relative;
76
100
  width: 100%;
77
101
  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;
102
+ border-radius: var(--radius-md);
103
+ border: var(--border-thin) solid var(--form-input-border);
104
+ background-color: var(--form-input-bg);
105
+ color: var(--form-input-fg);
106
+ font-size: var(--font-md);
83
107
  font-weight: 500;
84
108
  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;
109
+ 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
110
  user-select: none;
87
111
  white-space: nowrap;
88
112
  }
@@ -90,26 +114,26 @@ const onKeyPress = (e) => {
90
114
  background-color: transparent;
91
115
  border: none;
92
116
  line-height: 2rem;
93
- font-size: 1rem;
117
+ font-size: var(--font-md);
94
118
  width: 100%;
95
119
  flex-grow: 1;
96
- padding-left: 1rem;
120
+ padding-left: var(--spacing-base);
97
121
  }
98
122
  .input input:focus {
99
123
  outline: none;
100
124
  }
101
125
  .input .prefix,
102
126
  .input .suffix {
103
- font-size: 1rem;
127
+ font-size: var(--font-md);
104
128
  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);
129
+ padding-left: var(--spacing-base);
130
+ padding-right: var(--spacing-base);
131
+ background-color: var(--form-input-accent-bg);
132
+ color: var(--form-input-accent-fg);
109
133
  }
110
134
  .input .prefix {
111
- border-right: 1px solid var(--form-input-border, black);
135
+ border-right: var(--border-thin) solid var(--form-input-border);
112
136
  }
113
137
  .input .suffix {
114
- border-left: 1px solid var(--form-input-border, black);
138
+ border-left: var(--border-thin) solid var(--form-input-border);
115
139
  }</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,111 +1,149 @@
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 { uniqueId, type FormFieldSizeOptions } from '../../index.js';
3
+ import FormField from '../form-field.svelte';
4
+ import FormLabel from '../form-label.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
+ if (areaCode || localExt || lastFour) {
139
+ publishChange();
140
+ }
141
+ });
104
142
  </script>
105
143
 
106
144
  <FormField {size}>
107
- {#if $$slots.default}
108
- <FormLabel id="{id}-areaCode"><slot /></FormLabel>
145
+ {#if label}
146
+ <FormLabel id="{id}-areaCode" {label} />
109
147
  {/if}
110
148
  <div class="input">
111
149
  <span class="areaCode segment">
@@ -113,9 +151,9 @@ $: areaCode || localExt || lastFour ? publishChange() : null;
113
151
  <input
114
152
  id="{id}-areaCode"
115
153
  type="text"
116
- on:input={valueChanged}
117
- on:keyup={keyUp}
118
- on:change={valueChanged}
154
+ oninput={valueChanged}
155
+ onkeyup={keyUp}
156
+ onchange={valueChanged}
119
157
  bind:value={areaCode}
120
158
  name="areaCode"
121
159
  data-maxlength="3"
@@ -126,9 +164,9 @@ $: areaCode || localExt || lastFour ? publishChange() : null;
126
164
  <input
127
165
  id="{id}-localExt"
128
166
  type="text"
129
- on:input={valueChanged}
130
- on:change={valueChanged}
131
- on:keyup={keyUp}
167
+ oninput={valueChanged}
168
+ onchange={valueChanged}
169
+ onkeyup={keyUp}
132
170
  bind:value={localExt}
133
171
  name="localExt"
134
172
  data-maxlength="3"
@@ -139,9 +177,9 @@ $: areaCode || localExt || lastFour ? publishChange() : null;
139
177
  <input
140
178
  id="{id}-lastFour"
141
179
  type="text"
142
- on:input={valueChanged}
143
- on:change={valueChanged}
144
- on:keyup={keyUp}
180
+ oninput={valueChanged}
181
+ onchange={valueChanged}
182
+ onkeyup={keyUp}
145
183
  bind:value={lastFour}
146
184
  name="lastFour"
147
185
  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);