dystopia-linear-lib 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 (496) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +65 -0
  3. package/dist/components/accordion/Accordion.svelte +39 -0
  4. package/dist/components/accordion/Accordion.svelte.d.ts +4 -0
  5. package/dist/components/accordion/Accordion.types.d.ts +14 -0
  6. package/dist/components/accordion/Accordion.types.js +1 -0
  7. package/dist/components/accordion/AccordionItem.svelte +70 -0
  8. package/dist/components/accordion/AccordionItem.svelte.d.ts +4 -0
  9. package/dist/components/accordion/AccordionItem.types.d.ts +13 -0
  10. package/dist/components/accordion/AccordionItem.types.js +1 -0
  11. package/dist/components/accordion/accordion-context.d.ts +8 -0
  12. package/dist/components/accordion/accordion-context.js +12 -0
  13. package/dist/components/accordion/index.d.ts +4 -0
  14. package/dist/components/accordion/index.js +2 -0
  15. package/dist/components/alert/Alert.svelte +45 -0
  16. package/dist/components/alert/Alert.svelte.d.ts +4 -0
  17. package/dist/components/alert/Alert.types.d.ts +15 -0
  18. package/dist/components/alert/Alert.types.js +1 -0
  19. package/dist/components/alert/Alert.variants.d.ts +5 -0
  20. package/dist/components/alert/Alert.variants.js +14 -0
  21. package/dist/components/alert/index.d.ts +3 -0
  22. package/dist/components/alert/index.js +2 -0
  23. package/dist/components/avatar/Avatar.svelte +38 -0
  24. package/dist/components/avatar/Avatar.svelte.d.ts +4 -0
  25. package/dist/components/avatar/Avatar.types.d.ts +13 -0
  26. package/dist/components/avatar/Avatar.types.js +1 -0
  27. package/dist/components/avatar/index.d.ts +2 -0
  28. package/dist/components/avatar/index.js +1 -0
  29. package/dist/components/badge/Badge.svelte +11 -0
  30. package/dist/components/badge/Badge.svelte.d.ts +4 -0
  31. package/dist/components/badge/Badge.types.d.ts +7 -0
  32. package/dist/components/badge/Badge.types.js +1 -0
  33. package/dist/components/badge/Badge.variants.d.ts +5 -0
  34. package/dist/components/badge/Badge.variants.js +14 -0
  35. package/dist/components/badge/index.d.ts +3 -0
  36. package/dist/components/badge/index.js +2 -0
  37. package/dist/components/breadcrumb/Breadcrumb.svelte +9 -0
  38. package/dist/components/breadcrumb/Breadcrumb.svelte.d.ts +4 -0
  39. package/dist/components/breadcrumb/Breadcrumb.types.d.ts +6 -0
  40. package/dist/components/breadcrumb/Breadcrumb.types.js +1 -0
  41. package/dist/components/breadcrumb/BreadcrumbEllipsis.svelte +37 -0
  42. package/dist/components/breadcrumb/BreadcrumbEllipsis.svelte.d.ts +4 -0
  43. package/dist/components/breadcrumb/BreadcrumbEllipsis.types.d.ts +16 -0
  44. package/dist/components/breadcrumb/BreadcrumbEllipsis.types.js +1 -0
  45. package/dist/components/breadcrumb/BreadcrumbItem.svelte +10 -0
  46. package/dist/components/breadcrumb/BreadcrumbItem.svelte.d.ts +4 -0
  47. package/dist/components/breadcrumb/BreadcrumbItem.types.d.ts +6 -0
  48. package/dist/components/breadcrumb/BreadcrumbItem.types.js +1 -0
  49. package/dist/components/breadcrumb/BreadcrumbLink.svelte +22 -0
  50. package/dist/components/breadcrumb/BreadcrumbLink.svelte.d.ts +4 -0
  51. package/dist/components/breadcrumb/BreadcrumbLink.types.d.ts +10 -0
  52. package/dist/components/breadcrumb/BreadcrumbLink.types.js +1 -0
  53. package/dist/components/breadcrumb/BreadcrumbList.svelte +13 -0
  54. package/dist/components/breadcrumb/BreadcrumbList.svelte.d.ts +4 -0
  55. package/dist/components/breadcrumb/BreadcrumbList.types.d.ts +6 -0
  56. package/dist/components/breadcrumb/BreadcrumbList.types.js +1 -0
  57. package/dist/components/breadcrumb/BreadcrumbPage.svelte +15 -0
  58. package/dist/components/breadcrumb/BreadcrumbPage.svelte.d.ts +4 -0
  59. package/dist/components/breadcrumb/BreadcrumbPage.types.d.ts +6 -0
  60. package/dist/components/breadcrumb/BreadcrumbPage.types.js +1 -0
  61. package/dist/components/breadcrumb/BreadcrumbSeparator.svelte +28 -0
  62. package/dist/components/breadcrumb/BreadcrumbSeparator.svelte.d.ts +4 -0
  63. package/dist/components/breadcrumb/BreadcrumbSeparator.types.d.ts +7 -0
  64. package/dist/components/breadcrumb/BreadcrumbSeparator.types.js +1 -0
  65. package/dist/components/breadcrumb/index.d.ts +14 -0
  66. package/dist/components/breadcrumb/index.js +7 -0
  67. package/dist/components/button/Button.svelte +47 -0
  68. package/dist/components/button/Button.svelte.d.ts +4 -0
  69. package/dist/components/button/Button.types.d.ts +14 -0
  70. package/dist/components/button/Button.types.js +1 -0
  71. package/dist/components/button/Button.variants.d.ts +6 -0
  72. package/dist/components/button/Button.variants.js +19 -0
  73. package/dist/components/button/index.d.ts +3 -0
  74. package/dist/components/button/index.js +2 -0
  75. package/dist/components/button-group/ButtonGroup.svelte +11 -0
  76. package/dist/components/button-group/ButtonGroup.svelte.d.ts +4 -0
  77. package/dist/components/button-group/ButtonGroup.types.d.ts +7 -0
  78. package/dist/components/button-group/ButtonGroup.types.js +1 -0
  79. package/dist/components/button-group/ButtonGroup.variants.d.ts +5 -0
  80. package/dist/components/button-group/ButtonGroup.variants.js +12 -0
  81. package/dist/components/button-group/index.d.ts +3 -0
  82. package/dist/components/button-group/index.js +2 -0
  83. package/dist/components/calendar/Calendar.svelte +276 -0
  84. package/dist/components/calendar/Calendar.svelte.d.ts +4 -0
  85. package/dist/components/calendar/Calendar.types.d.ts +52 -0
  86. package/dist/components/calendar/Calendar.types.js +1 -0
  87. package/dist/components/calendar/CalendarDay.svelte +30 -0
  88. package/dist/components/calendar/CalendarDay.svelte.d.ts +4 -0
  89. package/dist/components/calendar/CalendarDay.types.d.ts +16 -0
  90. package/dist/components/calendar/CalendarDay.types.js +1 -0
  91. package/dist/components/calendar/CalendarDay.variants.d.ts +8 -0
  92. package/dist/components/calendar/CalendarDay.variants.js +31 -0
  93. package/dist/components/calendar/index.d.ts +5 -0
  94. package/dist/components/calendar/index.js +3 -0
  95. package/dist/components/card/Card.svelte +10 -0
  96. package/dist/components/card/Card.svelte.d.ts +4 -0
  97. package/dist/components/card/Card.types.d.ts +6 -0
  98. package/dist/components/card/Card.types.js +1 -0
  99. package/dist/components/card/CardContent.svelte +10 -0
  100. package/dist/components/card/CardContent.svelte.d.ts +4 -0
  101. package/dist/components/card/CardContent.types.d.ts +6 -0
  102. package/dist/components/card/CardContent.types.js +1 -0
  103. package/dist/components/card/CardDescription.svelte +10 -0
  104. package/dist/components/card/CardDescription.svelte.d.ts +4 -0
  105. package/dist/components/card/CardDescription.types.d.ts +6 -0
  106. package/dist/components/card/CardDescription.types.js +1 -0
  107. package/dist/components/card/CardFooter.svelte +10 -0
  108. package/dist/components/card/CardFooter.svelte.d.ts +4 -0
  109. package/dist/components/card/CardFooter.types.d.ts +6 -0
  110. package/dist/components/card/CardFooter.types.js +1 -0
  111. package/dist/components/card/CardHeader.svelte +10 -0
  112. package/dist/components/card/CardHeader.svelte.d.ts +4 -0
  113. package/dist/components/card/CardHeader.types.d.ts +6 -0
  114. package/dist/components/card/CardHeader.types.js +1 -0
  115. package/dist/components/card/CardTitle.svelte +10 -0
  116. package/dist/components/card/CardTitle.svelte.d.ts +4 -0
  117. package/dist/components/card/CardTitle.types.d.ts +6 -0
  118. package/dist/components/card/CardTitle.types.js +1 -0
  119. package/dist/components/card/index.d.ts +12 -0
  120. package/dist/components/card/index.js +6 -0
  121. package/dist/components/checkbox/Checkbox.svelte +74 -0
  122. package/dist/components/checkbox/Checkbox.svelte.d.ts +4 -0
  123. package/dist/components/checkbox/Checkbox.types.d.ts +15 -0
  124. package/dist/components/checkbox/Checkbox.types.js +1 -0
  125. package/dist/components/checkbox/Checkbox.variants.d.ts +5 -0
  126. package/dist/components/checkbox/Checkbox.variants.js +13 -0
  127. package/dist/components/checkbox/index.d.ts +3 -0
  128. package/dist/components/checkbox/index.js +2 -0
  129. package/dist/components/collapsible/Collapsible.svelte +64 -0
  130. package/dist/components/collapsible/Collapsible.svelte.d.ts +4 -0
  131. package/dist/components/collapsible/Collapsible.types.d.ts +13 -0
  132. package/dist/components/collapsible/Collapsible.types.js +1 -0
  133. package/dist/components/collapsible/index.d.ts +2 -0
  134. package/dist/components/collapsible/index.js +1 -0
  135. package/dist/components/combobox/Combobox.svelte +528 -0
  136. package/dist/components/combobox/Combobox.svelte.d.ts +25 -0
  137. package/dist/components/combobox/Combobox.types.d.ts +83 -0
  138. package/dist/components/combobox/Combobox.types.js +1 -0
  139. package/dist/components/combobox/Combobox.variants.d.ts +11 -0
  140. package/dist/components/combobox/Combobox.variants.js +35 -0
  141. package/dist/components/combobox/combobox-state.svelte.d.ts +69 -0
  142. package/dist/components/combobox/combobox-state.svelte.js +223 -0
  143. package/dist/components/combobox/index.d.ts +3 -0
  144. package/dist/components/combobox/index.js +2 -0
  145. package/dist/components/data-table/DataTable.svelte +113 -0
  146. package/dist/components/data-table/DataTable.svelte.d.ts +26 -0
  147. package/dist/components/data-table/DataTable.types.d.ts +32 -0
  148. package/dist/components/data-table/DataTable.types.js +1 -0
  149. package/dist/components/data-table/DataTableColumnHeader.svelte +63 -0
  150. package/dist/components/data-table/DataTableColumnHeader.svelte.d.ts +4 -0
  151. package/dist/components/data-table/DataTableColumnHeader.types.d.ts +17 -0
  152. package/dist/components/data-table/DataTableColumnHeader.types.js +1 -0
  153. package/dist/components/data-table/DataTablePagination.svelte +50 -0
  154. package/dist/components/data-table/DataTablePagination.svelte.d.ts +26 -0
  155. package/dist/components/data-table/DataTablePagination.types.d.ts +32 -0
  156. package/dist/components/data-table/DataTablePagination.types.js +1 -0
  157. package/dist/components/data-table/index.d.ts +6 -0
  158. package/dist/components/data-table/index.js +3 -0
  159. package/dist/components/date-picker/DatePicker.svelte +216 -0
  160. package/dist/components/date-picker/DatePicker.svelte.d.ts +4 -0
  161. package/dist/components/date-picker/DatePicker.types.d.ts +40 -0
  162. package/dist/components/date-picker/DatePicker.types.js +1 -0
  163. package/dist/components/date-picker/index.d.ts +2 -0
  164. package/dist/components/date-picker/index.js +1 -0
  165. package/dist/components/dialog/Dialog.svelte +179 -0
  166. package/dist/components/dialog/Dialog.svelte.d.ts +4 -0
  167. package/dist/components/dialog/Dialog.types.d.ts +21 -0
  168. package/dist/components/dialog/Dialog.types.js +1 -0
  169. package/dist/components/dialog/index.d.ts +2 -0
  170. package/dist/components/dialog/index.js +1 -0
  171. package/dist/components/drawer/Drawer.svelte +157 -0
  172. package/dist/components/drawer/Drawer.svelte.d.ts +4 -0
  173. package/dist/components/drawer/Drawer.types.d.ts +22 -0
  174. package/dist/components/drawer/Drawer.types.js +1 -0
  175. package/dist/components/drawer/Drawer.variants.d.ts +5 -0
  176. package/dist/components/drawer/Drawer.variants.js +14 -0
  177. package/dist/components/drawer/index.d.ts +3 -0
  178. package/dist/components/drawer/index.js +2 -0
  179. package/dist/components/dropdown/Dropdown.svelte +152 -0
  180. package/dist/components/dropdown/Dropdown.svelte.d.ts +4 -0
  181. package/dist/components/dropdown/Dropdown.types.d.ts +15 -0
  182. package/dist/components/dropdown/Dropdown.types.js +1 -0
  183. package/dist/components/dropdown/DropdownItem.svelte +31 -0
  184. package/dist/components/dropdown/DropdownItem.svelte.d.ts +4 -0
  185. package/dist/components/dropdown/DropdownItem.types.d.ts +8 -0
  186. package/dist/components/dropdown/DropdownItem.types.js +1 -0
  187. package/dist/components/dropdown/index.d.ts +4 -0
  188. package/dist/components/dropdown/index.js +2 -0
  189. package/dist/components/empty-state/EmptyState.svelte +37 -0
  190. package/dist/components/empty-state/EmptyState.svelte.d.ts +4 -0
  191. package/dist/components/empty-state/EmptyState.types.d.ts +16 -0
  192. package/dist/components/empty-state/EmptyState.types.js +1 -0
  193. package/dist/components/empty-state/index.d.ts +2 -0
  194. package/dist/components/empty-state/index.js +1 -0
  195. package/dist/components/helper-text/HelperText.svelte +15 -0
  196. package/dist/components/helper-text/HelperText.svelte.d.ts +4 -0
  197. package/dist/components/helper-text/HelperText.types.d.ts +8 -0
  198. package/dist/components/helper-text/HelperText.types.js +1 -0
  199. package/dist/components/helper-text/index.d.ts +2 -0
  200. package/dist/components/helper-text/index.js +1 -0
  201. package/dist/components/hover-card/HoverCard.svelte +138 -0
  202. package/dist/components/hover-card/HoverCard.svelte.d.ts +4 -0
  203. package/dist/components/hover-card/HoverCard.types.d.ts +20 -0
  204. package/dist/components/hover-card/HoverCard.types.js +1 -0
  205. package/dist/components/hover-card/index.d.ts +2 -0
  206. package/dist/components/hover-card/index.js +1 -0
  207. package/dist/components/label/Label.svelte +26 -0
  208. package/dist/components/label/Label.svelte.d.ts +4 -0
  209. package/dist/components/label/Label.types.d.ts +9 -0
  210. package/dist/components/label/Label.types.js +1 -0
  211. package/dist/components/label/index.d.ts +2 -0
  212. package/dist/components/label/index.js +1 -0
  213. package/dist/components/pagination/Pagination.svelte +85 -0
  214. package/dist/components/pagination/Pagination.svelte.d.ts +4 -0
  215. package/dist/components/pagination/Pagination.types.d.ts +41 -0
  216. package/dist/components/pagination/Pagination.types.js +1 -0
  217. package/dist/components/pagination/PaginationEllipsis.svelte +15 -0
  218. package/dist/components/pagination/PaginationEllipsis.svelte.d.ts +4 -0
  219. package/dist/components/pagination/PaginationEllipsis.types.d.ts +9 -0
  220. package/dist/components/pagination/PaginationEllipsis.types.js +1 -0
  221. package/dist/components/pagination/PaginationEllipsis.variants.d.ts +5 -0
  222. package/dist/components/pagination/PaginationEllipsis.variants.js +13 -0
  223. package/dist/components/pagination/PaginationItem.svelte +10 -0
  224. package/dist/components/pagination/PaginationItem.svelte.d.ts +4 -0
  225. package/dist/components/pagination/PaginationItem.types.d.ts +6 -0
  226. package/dist/components/pagination/PaginationItem.types.js +1 -0
  227. package/dist/components/pagination/PaginationLink.svelte +30 -0
  228. package/dist/components/pagination/PaginationLink.svelte.d.ts +4 -0
  229. package/dist/components/pagination/PaginationLink.types.d.ts +15 -0
  230. package/dist/components/pagination/PaginationLink.types.js +1 -0
  231. package/dist/components/pagination/PaginationLink.variants.d.ts +6 -0
  232. package/dist/components/pagination/PaginationLink.variants.js +18 -0
  233. package/dist/components/pagination/PaginationList.svelte +10 -0
  234. package/dist/components/pagination/PaginationList.svelte.d.ts +4 -0
  235. package/dist/components/pagination/PaginationList.types.d.ts +6 -0
  236. package/dist/components/pagination/PaginationList.types.js +1 -0
  237. package/dist/components/pagination/PaginationNext.svelte +25 -0
  238. package/dist/components/pagination/PaginationNext.svelte.d.ts +4 -0
  239. package/dist/components/pagination/PaginationNext.types.d.ts +9 -0
  240. package/dist/components/pagination/PaginationNext.types.js +1 -0
  241. package/dist/components/pagination/PaginationNext.variants.d.ts +5 -0
  242. package/dist/components/pagination/PaginationNext.variants.js +13 -0
  243. package/dist/components/pagination/PaginationPrevious.svelte +25 -0
  244. package/dist/components/pagination/PaginationPrevious.svelte.d.ts +4 -0
  245. package/dist/components/pagination/PaginationPrevious.types.d.ts +9 -0
  246. package/dist/components/pagination/PaginationPrevious.types.js +1 -0
  247. package/dist/components/pagination/PaginationPrevious.variants.d.ts +5 -0
  248. package/dist/components/pagination/PaginationPrevious.variants.js +13 -0
  249. package/dist/components/pagination/index.d.ts +18 -0
  250. package/dist/components/pagination/index.js +11 -0
  251. package/dist/components/password-field/PasswordField.svelte +69 -0
  252. package/dist/components/password-field/PasswordField.svelte.d.ts +4 -0
  253. package/dist/components/password-field/PasswordField.types.d.ts +10 -0
  254. package/dist/components/password-field/PasswordField.types.js +1 -0
  255. package/dist/components/password-field/index.d.ts +2 -0
  256. package/dist/components/password-field/index.js +1 -0
  257. package/dist/components/popover/Popover.svelte +84 -0
  258. package/dist/components/popover/Popover.svelte.d.ts +4 -0
  259. package/dist/components/popover/Popover.types.d.ts +15 -0
  260. package/dist/components/popover/Popover.types.js +1 -0
  261. package/dist/components/popover/index.d.ts +2 -0
  262. package/dist/components/popover/index.js +1 -0
  263. package/dist/components/progress/Progress.svelte +35 -0
  264. package/dist/components/progress/Progress.svelte.d.ts +4 -0
  265. package/dist/components/progress/Progress.types.d.ts +12 -0
  266. package/dist/components/progress/Progress.types.js +1 -0
  267. package/dist/components/progress/Progress.variants.d.ts +5 -0
  268. package/dist/components/progress/Progress.variants.js +13 -0
  269. package/dist/components/progress/index.d.ts +3 -0
  270. package/dist/components/progress/index.js +2 -0
  271. package/dist/components/radio/Radio.svelte +46 -0
  272. package/dist/components/radio/Radio.svelte.d.ts +4 -0
  273. package/dist/components/radio/Radio.types.d.ts +16 -0
  274. package/dist/components/radio/Radio.types.js +1 -0
  275. package/dist/components/radio/Radio.variants.d.ts +5 -0
  276. package/dist/components/radio/Radio.variants.js +13 -0
  277. package/dist/components/radio/index.d.ts +3 -0
  278. package/dist/components/radio/index.js +2 -0
  279. package/dist/components/select/Select.svelte +55 -0
  280. package/dist/components/select/Select.svelte.d.ts +4 -0
  281. package/dist/components/select/Select.types.d.ts +16 -0
  282. package/dist/components/select/Select.types.js +1 -0
  283. package/dist/components/select/Select.variants.d.ts +6 -0
  284. package/dist/components/select/Select.variants.js +18 -0
  285. package/dist/components/select/index.d.ts +3 -0
  286. package/dist/components/select/index.js +2 -0
  287. package/dist/components/separator/Separator.svelte +19 -0
  288. package/dist/components/separator/Separator.svelte.d.ts +4 -0
  289. package/dist/components/separator/Separator.types.d.ts +7 -0
  290. package/dist/components/separator/Separator.types.js +1 -0
  291. package/dist/components/separator/Separator.variants.d.ts +5 -0
  292. package/dist/components/separator/Separator.variants.js +12 -0
  293. package/dist/components/separator/index.d.ts +3 -0
  294. package/dist/components/separator/index.js +2 -0
  295. package/dist/components/sidebar/Sidebar.svelte +28 -0
  296. package/dist/components/sidebar/Sidebar.svelte.d.ts +4 -0
  297. package/dist/components/sidebar/Sidebar.types.d.ts +7 -0
  298. package/dist/components/sidebar/Sidebar.types.js +1 -0
  299. package/dist/components/sidebar/Sidebar.variants.d.ts +5 -0
  300. package/dist/components/sidebar/Sidebar.variants.js +12 -0
  301. package/dist/components/sidebar/SidebarCollapsibleItem.svelte +77 -0
  302. package/dist/components/sidebar/SidebarCollapsibleItem.svelte.d.ts +4 -0
  303. package/dist/components/sidebar/SidebarCollapsibleItem.types.d.ts +9 -0
  304. package/dist/components/sidebar/SidebarCollapsibleItem.types.js +1 -0
  305. package/dist/components/sidebar/SidebarContent.svelte +14 -0
  306. package/dist/components/sidebar/SidebarContent.svelte.d.ts +4 -0
  307. package/dist/components/sidebar/SidebarContent.types.d.ts +6 -0
  308. package/dist/components/sidebar/SidebarContent.types.js +1 -0
  309. package/dist/components/sidebar/SidebarFooter.svelte +14 -0
  310. package/dist/components/sidebar/SidebarFooter.svelte.d.ts +4 -0
  311. package/dist/components/sidebar/SidebarFooter.types.d.ts +6 -0
  312. package/dist/components/sidebar/SidebarFooter.types.js +1 -0
  313. package/dist/components/sidebar/SidebarGroup.svelte +10 -0
  314. package/dist/components/sidebar/SidebarGroup.svelte.d.ts +4 -0
  315. package/dist/components/sidebar/SidebarGroup.types.d.ts +6 -0
  316. package/dist/components/sidebar/SidebarGroup.types.js +1 -0
  317. package/dist/components/sidebar/SidebarGroupLabel.svelte +21 -0
  318. package/dist/components/sidebar/SidebarGroupLabel.svelte.d.ts +4 -0
  319. package/dist/components/sidebar/SidebarGroupLabel.types.d.ts +6 -0
  320. package/dist/components/sidebar/SidebarGroupLabel.types.js +1 -0
  321. package/dist/components/sidebar/SidebarHeader.svelte +14 -0
  322. package/dist/components/sidebar/SidebarHeader.svelte.d.ts +4 -0
  323. package/dist/components/sidebar/SidebarHeader.types.d.ts +6 -0
  324. package/dist/components/sidebar/SidebarHeader.types.js +1 -0
  325. package/dist/components/sidebar/SidebarItem.svelte +51 -0
  326. package/dist/components/sidebar/SidebarItem.svelte.d.ts +4 -0
  327. package/dist/components/sidebar/SidebarItem.types.d.ts +11 -0
  328. package/dist/components/sidebar/SidebarItem.types.js +1 -0
  329. package/dist/components/sidebar/SidebarItem.variants.d.ts +6 -0
  330. package/dist/components/sidebar/SidebarItem.variants.js +17 -0
  331. package/dist/components/sidebar/SidebarTrigger.svelte +39 -0
  332. package/dist/components/sidebar/SidebarTrigger.svelte.d.ts +4 -0
  333. package/dist/components/sidebar/SidebarTrigger.types.d.ts +8 -0
  334. package/dist/components/sidebar/SidebarTrigger.types.js +1 -0
  335. package/dist/components/sidebar/index.d.ts +20 -0
  336. package/dist/components/sidebar/index.js +11 -0
  337. package/dist/components/sidebar/sidebar-context.d.ts +8 -0
  338. package/dist/components/sidebar/sidebar-context.js +12 -0
  339. package/dist/components/skeleton/Skeleton.svelte +12 -0
  340. package/dist/components/skeleton/Skeleton.svelte.d.ts +4 -0
  341. package/dist/components/skeleton/Skeleton.types.d.ts +4 -0
  342. package/dist/components/skeleton/Skeleton.types.js +1 -0
  343. package/dist/components/skeleton/index.d.ts +2 -0
  344. package/dist/components/skeleton/index.js +1 -0
  345. package/dist/components/slider/Slider.svelte +30 -0
  346. package/dist/components/slider/Slider.svelte.d.ts +4 -0
  347. package/dist/components/slider/Slider.types.d.ts +9 -0
  348. package/dist/components/slider/Slider.types.js +1 -0
  349. package/dist/components/slider/Slider.variants.d.ts +5 -0
  350. package/dist/components/slider/Slider.variants.js +26 -0
  351. package/dist/components/slider/index.d.ts +3 -0
  352. package/dist/components/slider/index.js +2 -0
  353. package/dist/components/spinner/Spinner.svelte +24 -0
  354. package/dist/components/spinner/Spinner.svelte.d.ts +4 -0
  355. package/dist/components/spinner/Spinner.types.d.ts +10 -0
  356. package/dist/components/spinner/Spinner.types.js +1 -0
  357. package/dist/components/spinner/Spinner.variants.d.ts +5 -0
  358. package/dist/components/spinner/Spinner.variants.js +13 -0
  359. package/dist/components/spinner/index.d.ts +3 -0
  360. package/dist/components/spinner/index.js +2 -0
  361. package/dist/components/switch/Switch.svelte +37 -0
  362. package/dist/components/switch/Switch.svelte.d.ts +4 -0
  363. package/dist/components/switch/Switch.types.d.ts +13 -0
  364. package/dist/components/switch/Switch.types.js +1 -0
  365. package/dist/components/switch/Switch.variants.d.ts +8 -0
  366. package/dist/components/switch/Switch.variants.js +25 -0
  367. package/dist/components/switch/index.d.ts +3 -0
  368. package/dist/components/switch/index.js +2 -0
  369. package/dist/components/table/Table.svelte +14 -0
  370. package/dist/components/table/Table.svelte.d.ts +4 -0
  371. package/dist/components/table/Table.types.d.ts +10 -0
  372. package/dist/components/table/Table.types.js +1 -0
  373. package/dist/components/table/TableBody.svelte +10 -0
  374. package/dist/components/table/TableBody.svelte.d.ts +4 -0
  375. package/dist/components/table/TableBody.types.d.ts +6 -0
  376. package/dist/components/table/TableBody.types.js +1 -0
  377. package/dist/components/table/TableCaption.svelte +10 -0
  378. package/dist/components/table/TableCaption.svelte.d.ts +4 -0
  379. package/dist/components/table/TableCaption.types.d.ts +6 -0
  380. package/dist/components/table/TableCaption.types.js +1 -0
  381. package/dist/components/table/TableCell.svelte +13 -0
  382. package/dist/components/table/TableCell.svelte.d.ts +4 -0
  383. package/dist/components/table/TableCell.types.d.ts +6 -0
  384. package/dist/components/table/TableCell.types.js +1 -0
  385. package/dist/components/table/TableFooter.svelte +13 -0
  386. package/dist/components/table/TableFooter.svelte.d.ts +4 -0
  387. package/dist/components/table/TableFooter.types.d.ts +6 -0
  388. package/dist/components/table/TableFooter.types.js +1 -0
  389. package/dist/components/table/TableHead.svelte +17 -0
  390. package/dist/components/table/TableHead.svelte.d.ts +4 -0
  391. package/dist/components/table/TableHead.types.d.ts +6 -0
  392. package/dist/components/table/TableHead.types.js +1 -0
  393. package/dist/components/table/TableHeader.svelte +10 -0
  394. package/dist/components/table/TableHeader.svelte.d.ts +4 -0
  395. package/dist/components/table/TableHeader.types.d.ts +6 -0
  396. package/dist/components/table/TableHeader.types.js +1 -0
  397. package/dist/components/table/TableRow.svelte +17 -0
  398. package/dist/components/table/TableRow.svelte.d.ts +4 -0
  399. package/dist/components/table/TableRow.types.d.ts +11 -0
  400. package/dist/components/table/TableRow.types.js +1 -0
  401. package/dist/components/table/index.d.ts +16 -0
  402. package/dist/components/table/index.js +8 -0
  403. package/dist/components/tabs/Tabs.svelte +19 -0
  404. package/dist/components/tabs/Tabs.svelte.d.ts +4 -0
  405. package/dist/components/tabs/Tabs.types.d.ts +7 -0
  406. package/dist/components/tabs/Tabs.types.js +1 -0
  407. package/dist/components/tabs/TabsContent.svelte +24 -0
  408. package/dist/components/tabs/TabsContent.svelte.d.ts +4 -0
  409. package/dist/components/tabs/TabsContent.types.d.ts +7 -0
  410. package/dist/components/tabs/TabsContent.types.js +1 -0
  411. package/dist/components/tabs/TabsList.svelte +61 -0
  412. package/dist/components/tabs/TabsList.svelte.d.ts +4 -0
  413. package/dist/components/tabs/TabsList.types.d.ts +6 -0
  414. package/dist/components/tabs/TabsList.types.js +1 -0
  415. package/dist/components/tabs/TabsTrigger.svelte +37 -0
  416. package/dist/components/tabs/TabsTrigger.svelte.d.ts +4 -0
  417. package/dist/components/tabs/TabsTrigger.types.d.ts +8 -0
  418. package/dist/components/tabs/TabsTrigger.types.js +1 -0
  419. package/dist/components/tabs/index.d.ts +8 -0
  420. package/dist/components/tabs/index.js +4 -0
  421. package/dist/components/tabs/tabs-context.d.ts +8 -0
  422. package/dist/components/tabs/tabs-context.js +12 -0
  423. package/dist/components/text-field/TextField.svelte +53 -0
  424. package/dist/components/text-field/TextField.svelte.d.ts +4 -0
  425. package/dist/components/text-field/TextField.types.d.ts +17 -0
  426. package/dist/components/text-field/TextField.types.js +1 -0
  427. package/dist/components/text-field/TextField.variants.d.ts +6 -0
  428. package/dist/components/text-field/TextField.variants.js +18 -0
  429. package/dist/components/text-field/index.d.ts +3 -0
  430. package/dist/components/text-field/index.js +2 -0
  431. package/dist/components/textarea/Textarea.svelte +53 -0
  432. package/dist/components/textarea/Textarea.svelte.d.ts +4 -0
  433. package/dist/components/textarea/Textarea.types.d.ts +15 -0
  434. package/dist/components/textarea/Textarea.types.js +1 -0
  435. package/dist/components/textarea/Textarea.variants.d.ts +6 -0
  436. package/dist/components/textarea/Textarea.variants.js +18 -0
  437. package/dist/components/textarea/index.d.ts +3 -0
  438. package/dist/components/textarea/index.js +2 -0
  439. package/dist/components/toast/ToastItem.svelte +109 -0
  440. package/dist/components/toast/ToastItem.svelte.d.ts +17 -0
  441. package/dist/components/toast/Toaster.svelte +51 -0
  442. package/dist/components/toast/Toaster.svelte.d.ts +4 -0
  443. package/dist/components/toast/Toaster.types.d.ts +20 -0
  444. package/dist/components/toast/Toaster.types.js +1 -0
  445. package/dist/components/toast/Toaster.variants.d.ts +5 -0
  446. package/dist/components/toast/Toaster.variants.js +14 -0
  447. package/dist/components/toast/index.d.ts +4 -0
  448. package/dist/components/toast/index.js +3 -0
  449. package/dist/components/toast/toast-store.svelte.d.ts +28 -0
  450. package/dist/components/toast/toast-store.svelte.js +34 -0
  451. package/dist/components/toggle/Toggle.svelte +29 -0
  452. package/dist/components/toggle/Toggle.svelte.d.ts +4 -0
  453. package/dist/components/toggle/Toggle.types.d.ts +9 -0
  454. package/dist/components/toggle/Toggle.types.js +1 -0
  455. package/dist/components/toggle/Toggle.variants.d.ts +6 -0
  456. package/dist/components/toggle/Toggle.variants.js +18 -0
  457. package/dist/components/toggle/index.d.ts +3 -0
  458. package/dist/components/toggle/index.js +2 -0
  459. package/dist/components/tooltip/Tooltip.svelte +113 -0
  460. package/dist/components/tooltip/Tooltip.svelte.d.ts +4 -0
  461. package/dist/components/tooltip/Tooltip.types.d.ts +19 -0
  462. package/dist/components/tooltip/Tooltip.types.js +1 -0
  463. package/dist/components/tooltip/index.d.ts +2 -0
  464. package/dist/components/tooltip/index.js +1 -0
  465. package/dist/components/typography/Typography.svelte +33 -0
  466. package/dist/components/typography/Typography.svelte.d.ts +4 -0
  467. package/dist/components/typography/Typography.types.d.ts +10 -0
  468. package/dist/components/typography/Typography.types.js +1 -0
  469. package/dist/components/typography/Typography.variants.d.ts +5 -0
  470. package/dist/components/typography/Typography.variants.js +17 -0
  471. package/dist/components/typography/index.d.ts +3 -0
  472. package/dist/components/typography/index.js +2 -0
  473. package/dist/index.css +399 -0
  474. package/dist/utils/calendar-grid.d.ts +20 -0
  475. package/dist/utils/calendar-grid.js +26 -0
  476. package/dist/utils/cn.d.ts +2 -0
  477. package/dist/utils/cn.js +5 -0
  478. package/dist/utils/dismissable-layer.d.ts +12 -0
  479. package/dist/utils/dismissable-layer.js +44 -0
  480. package/dist/utils/floating.d.ts +18 -0
  481. package/dist/utils/floating.js +61 -0
  482. package/dist/utils/focus-trap.d.ts +12 -0
  483. package/dist/utils/focus-trap.js +55 -0
  484. package/dist/utils/id.d.ts +11 -0
  485. package/dist/utils/id.js +17 -0
  486. package/dist/utils/pagination-range.d.ts +18 -0
  487. package/dist/utils/pagination-range.js +34 -0
  488. package/dist/utils/portal.d.ts +5 -0
  489. package/dist/utils/portal.js +23 -0
  490. package/dist/utils/presence.svelte.d.ts +9 -0
  491. package/dist/utils/presence.svelte.js +38 -0
  492. package/dist/utils/roving-focus.d.ts +20 -0
  493. package/dist/utils/roving-focus.js +44 -0
  494. package/dist/utils/scroll-lock.d.ts +7 -0
  495. package/dist/utils/scroll-lock.js +33 -0
  496. package/package.json +108 -0
@@ -0,0 +1,22 @@
1
+ <script lang="ts">
2
+ import { cn } from '../../utils/cn.js';
3
+ import type { BreadcrumbLinkProps } from './BreadcrumbLink.types.js';
4
+
5
+ let { class: className, child, children, ...restProps }: BreadcrumbLinkProps = $props();
6
+
7
+ const mergedProps = $derived({
8
+ ...restProps,
9
+ class: cn(
10
+ 'transition-colors duration-150 hover:text-foreground-soft focus-visible:underline focus-visible:outline-none',
11
+ className
12
+ )
13
+ });
14
+ </script>
15
+
16
+ {#if child}
17
+ {@render child({ props: mergedProps })}
18
+ {:else}
19
+ <a {...mergedProps}>
20
+ {@render children()}
21
+ </a>
22
+ {/if}
@@ -0,0 +1,4 @@
1
+ import type { BreadcrumbLinkProps } from './BreadcrumbLink.types.js';
2
+ declare const BreadcrumbLink: import("svelte").Component<BreadcrumbLinkProps, {}, "">;
3
+ type BreadcrumbLink = ReturnType<typeof BreadcrumbLink>;
4
+ export default BreadcrumbLink;
@@ -0,0 +1,10 @@
1
+ import type { Snippet } from 'svelte';
2
+ import type { HTMLAnchorAttributes } from 'svelte/elements';
3
+ export interface BreadcrumbLinkProps extends Omit<HTMLAnchorAttributes, 'children' | 'class'> {
4
+ class?: string;
5
+ children: Snippet;
6
+ /** Renders a consumer-supplied element (e.g. a router `Link`) instead of a plain `<a>`. */
7
+ child?: Snippet<[{
8
+ props: Record<string, unknown>;
9
+ }]>;
10
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,13 @@
1
+ <script lang="ts">
2
+ import { cn } from '../../utils/cn.js';
3
+ import type { BreadcrumbListProps } from './BreadcrumbList.types.js';
4
+
5
+ let { class: className, children, ...restProps }: BreadcrumbListProps = $props();
6
+ </script>
7
+
8
+ <ol
9
+ class={cn('flex flex-wrap items-center gap-tight text-sm text-foreground-subtle', className)}
10
+ {...restProps}
11
+ >
12
+ {@render children()}
13
+ </ol>
@@ -0,0 +1,4 @@
1
+ import type { BreadcrumbListProps } from './BreadcrumbList.types.js';
2
+ declare const BreadcrumbList: import("svelte").Component<BreadcrumbListProps, {}, "">;
3
+ type BreadcrumbList = ReturnType<typeof BreadcrumbList>;
4
+ export default BreadcrumbList;
@@ -0,0 +1,6 @@
1
+ import type { Snippet } from 'svelte';
2
+ import type { HTMLAttributes } from 'svelte/elements';
3
+ export interface BreadcrumbListProps extends Omit<HTMLAttributes<HTMLOListElement>, 'children'> {
4
+ class?: string;
5
+ children: Snippet;
6
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,15 @@
1
+ <script lang="ts">
2
+ import { cn } from '../../utils/cn.js';
3
+ import type { BreadcrumbPageProps } from './BreadcrumbPage.types.js';
4
+
5
+ let { class: className, children, ...restProps }: BreadcrumbPageProps = $props();
6
+ </script>
7
+
8
+ <span
9
+ aria-current="page"
10
+ aria-disabled="true"
11
+ class={cn('font-medium text-foreground', className)}
12
+ {...restProps}
13
+ >
14
+ {@render children()}
15
+ </span>
@@ -0,0 +1,4 @@
1
+ import type { BreadcrumbPageProps } from './BreadcrumbPage.types.js';
2
+ declare const BreadcrumbPage: import("svelte").Component<BreadcrumbPageProps, {}, "">;
3
+ type BreadcrumbPage = ReturnType<typeof BreadcrumbPage>;
4
+ export default BreadcrumbPage;
@@ -0,0 +1,6 @@
1
+ import type { Snippet } from 'svelte';
2
+ import type { HTMLAttributes } from 'svelte/elements';
3
+ export interface BreadcrumbPageProps extends Omit<HTMLAttributes<HTMLSpanElement>, 'children'> {
4
+ class?: string;
5
+ children: Snippet;
6
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,28 @@
1
+ <script lang="ts">
2
+ import { cn } from '../../utils/cn.js';
3
+ import type { BreadcrumbSeparatorProps } from './BreadcrumbSeparator.types.js';
4
+
5
+ let { class: className, children, ...restProps }: BreadcrumbSeparatorProps = $props();
6
+ </script>
7
+
8
+ <li
9
+ role="presentation"
10
+ aria-hidden="true"
11
+ class={cn('text-foreground-faint [&_svg]:size-3.5', className)}
12
+ {...restProps}
13
+ >
14
+ {#if children}
15
+ {@render children()}
16
+ {:else}
17
+ <svg
18
+ viewBox="0 0 24 24"
19
+ fill="none"
20
+ stroke="currentColor"
21
+ stroke-width="2"
22
+ stroke-linecap="round"
23
+ stroke-linejoin="round"
24
+ >
25
+ <path d="m9 18 6-6-6-6" />
26
+ </svg>
27
+ {/if}
28
+ </li>
@@ -0,0 +1,4 @@
1
+ import type { BreadcrumbSeparatorProps } from './BreadcrumbSeparator.types.js';
2
+ declare const BreadcrumbSeparator: import("svelte").Component<BreadcrumbSeparatorProps, {}, "">;
3
+ type BreadcrumbSeparator = ReturnType<typeof BreadcrumbSeparator>;
4
+ export default BreadcrumbSeparator;
@@ -0,0 +1,7 @@
1
+ import type { Snippet } from 'svelte';
2
+ import type { HTMLAttributes } from 'svelte/elements';
3
+ export interface BreadcrumbSeparatorProps extends Omit<HTMLAttributes<HTMLLIElement>, 'children'> {
4
+ class?: string;
5
+ /** Replaces the default chevron icon. */
6
+ children?: Snippet;
7
+ }
@@ -0,0 +1,14 @@
1
+ export { default as Breadcrumb } from './Breadcrumb.svelte';
2
+ export type { BreadcrumbProps } from './Breadcrumb.types.js';
3
+ export { default as BreadcrumbList } from './BreadcrumbList.svelte';
4
+ export type { BreadcrumbListProps } from './BreadcrumbList.types.js';
5
+ export { default as BreadcrumbItem } from './BreadcrumbItem.svelte';
6
+ export type { BreadcrumbItemProps } from './BreadcrumbItem.types.js';
7
+ export { default as BreadcrumbLink } from './BreadcrumbLink.svelte';
8
+ export type { BreadcrumbLinkProps } from './BreadcrumbLink.types.js';
9
+ export { default as BreadcrumbPage } from './BreadcrumbPage.svelte';
10
+ export type { BreadcrumbPageProps } from './BreadcrumbPage.types.js';
11
+ export { default as BreadcrumbSeparator } from './BreadcrumbSeparator.svelte';
12
+ export type { BreadcrumbSeparatorProps } from './BreadcrumbSeparator.types.js';
13
+ export { default as BreadcrumbEllipsis } from './BreadcrumbEllipsis.svelte';
14
+ export type { BreadcrumbEllipsisProps } from './BreadcrumbEllipsis.types.js';
@@ -0,0 +1,7 @@
1
+ export { default as Breadcrumb } from './Breadcrumb.svelte';
2
+ export { default as BreadcrumbList } from './BreadcrumbList.svelte';
3
+ export { default as BreadcrumbItem } from './BreadcrumbItem.svelte';
4
+ export { default as BreadcrumbLink } from './BreadcrumbLink.svelte';
5
+ export { default as BreadcrumbPage } from './BreadcrumbPage.svelte';
6
+ export { default as BreadcrumbSeparator } from './BreadcrumbSeparator.svelte';
7
+ export { default as BreadcrumbEllipsis } from './BreadcrumbEllipsis.svelte';
@@ -0,0 +1,47 @@
1
+ <script lang="ts">
2
+ import { cn } from '../../utils/cn.js';
3
+ import { buttonVariants } from './Button.variants.js';
4
+ import type { ButtonProps } from './Button.types.js';
5
+
6
+ let {
7
+ variant,
8
+ size,
9
+ class: className,
10
+ ref = $bindable(null),
11
+ children,
12
+ child,
13
+ isLoading = false,
14
+ loading,
15
+ disabled = false,
16
+ ...restProps
17
+ }: ButtonProps = $props();
18
+
19
+ const mergedProps = $derived({
20
+ ...restProps,
21
+ class: cn(buttonVariants({ variant, size }), className),
22
+ disabled: disabled || isLoading,
23
+ 'aria-busy': isLoading || undefined
24
+ });
25
+ </script>
26
+
27
+ {#snippet defaultLoading()}
28
+ <svg viewBox="0 0 24 24" fill="none" class="size-4 animate-spin" aria-hidden="true">
29
+ <circle cx="12" cy="12" r="9" stroke="currentColor" stroke-width="3" stroke-opacity="0.25" />
30
+ <path d="M21 12a9 9 0 0 0-9-9" stroke="currentColor" stroke-width="3" stroke-linecap="round" />
31
+ </svg>
32
+ {/snippet}
33
+
34
+ {#if child}
35
+ {@render child({ props: mergedProps })}
36
+ {:else}
37
+ <button bind:this={ref} {...mergedProps}>
38
+ {#if isLoading}
39
+ {#if loading}
40
+ {@render loading()}
41
+ {:else}
42
+ {@render defaultLoading()}
43
+ {/if}
44
+ {/if}
45
+ {@render children()}
46
+ </button>
47
+ {/if}
@@ -0,0 +1,4 @@
1
+ import type { ButtonProps } from './Button.types.js';
2
+ declare const Button: import("svelte").Component<ButtonProps, {}, "ref">;
3
+ type Button = ReturnType<typeof Button>;
4
+ export default Button;
@@ -0,0 +1,14 @@
1
+ import type { Snippet } from 'svelte';
2
+ import type { HTMLButtonAttributes } from 'svelte/elements';
3
+ import type { ButtonVariantProps } from './Button.variants.js';
4
+ export interface ButtonProps extends HTMLButtonAttributes, ButtonVariantProps {
5
+ class?: string;
6
+ ref?: HTMLButtonElement | null;
7
+ children: Snippet;
8
+ child?: Snippet<[{
9
+ props: Record<string, unknown>;
10
+ }]>;
11
+ isLoading?: boolean;
12
+ /** Replaces the built-in spinner shown while `isLoading` is true. */
13
+ loading?: Snippet;
14
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,6 @@
1
+ import { type VariantProps } from 'class-variance-authority';
2
+ export declare const buttonVariants: (props?: ({
3
+ variant?: "default" | "outline" | "ghost" | null | undefined;
4
+ size?: "sm" | "md" | "lg" | null | undefined;
5
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
6
+ export type ButtonVariantProps = VariantProps<typeof buttonVariants>;
@@ -0,0 +1,19 @@
1
+ import { cva } from 'class-variance-authority';
2
+ export const buttonVariants = cva('inline-flex items-center justify-center gap-tight appearance-none cursor-pointer rounded-md font-medium transition-colors duration-150 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring disabled:opacity-50 disabled:cursor-not-allowed', {
3
+ variants: {
4
+ variant: {
5
+ default: 'bg-primary text-primary-foreground hover:bg-primary-hover',
6
+ outline: 'border border-border bg-transparent hover:bg-surface-subtle',
7
+ ghost: 'bg-transparent hover:bg-surface-subtle'
8
+ },
9
+ size: {
10
+ sm: 'h-8 px-3 text-sm',
11
+ md: 'h-10 px-control-x text-sm',
12
+ lg: 'h-12 px-6 text-base'
13
+ }
14
+ },
15
+ defaultVariants: {
16
+ variant: 'default',
17
+ size: 'md'
18
+ }
19
+ });
@@ -0,0 +1,3 @@
1
+ export { default as Button } from './Button.svelte';
2
+ export type { ButtonProps } from './Button.types.js';
3
+ export { buttonVariants, type ButtonVariantProps } from './Button.variants.js';
@@ -0,0 +1,2 @@
1
+ export { default as Button } from './Button.svelte';
2
+ export { buttonVariants } from './Button.variants.js';
@@ -0,0 +1,11 @@
1
+ <script lang="ts">
2
+ import { cn } from '../../utils/cn.js';
3
+ import { buttonGroupVariants } from './ButtonGroup.variants.js';
4
+ import type { ButtonGroupProps } from './ButtonGroup.types.js';
5
+
6
+ let { orientation, class: className, children, ...restProps }: ButtonGroupProps = $props();
7
+ </script>
8
+
9
+ <div role="group" class={cn(buttonGroupVariants({ orientation }), className)} {...restProps}>
10
+ {@render children()}
11
+ </div>
@@ -0,0 +1,4 @@
1
+ import type { ButtonGroupProps } from './ButtonGroup.types.js';
2
+ declare const ButtonGroup: import("svelte").Component<ButtonGroupProps, {}, "">;
3
+ type ButtonGroup = ReturnType<typeof ButtonGroup>;
4
+ export default ButtonGroup;
@@ -0,0 +1,7 @@
1
+ import type { Snippet } from 'svelte';
2
+ import type { HTMLAttributes } from 'svelte/elements';
3
+ import type { ButtonGroupVariantProps } from './ButtonGroup.variants.js';
4
+ export interface ButtonGroupProps extends HTMLAttributes<HTMLDivElement>, ButtonGroupVariantProps {
5
+ class?: string;
6
+ children: Snippet;
7
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,5 @@
1
+ import { type VariantProps } from 'class-variance-authority';
2
+ export declare const buttonGroupVariants: (props?: ({
3
+ orientation?: "horizontal" | "vertical" | null | undefined;
4
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
5
+ export type ButtonGroupVariantProps = VariantProps<typeof buttonGroupVariants>;
@@ -0,0 +1,12 @@
1
+ import { cva } from 'class-variance-authority';
2
+ export const buttonGroupVariants = cva('inline-flex', {
3
+ variants: {
4
+ orientation: {
5
+ horizontal: 'flex-row [&>*]:relative [&>*:not(:first-child)]:-ml-px [&>*:not(:first-child):not(:last-child)]:rounded-none [&>*:first-child:not(:last-child)]:rounded-r-none [&>*:last-child:not(:first-child)]:rounded-l-none [&>*:hover]:z-10 [&>*:focus-visible]:z-10',
6
+ vertical: 'flex-col [&>*]:relative [&>*:not(:first-child)]:-mt-px [&>*:not(:first-child):not(:last-child)]:rounded-none [&>*:first-child:not(:last-child)]:rounded-b-none [&>*:last-child:not(:first-child)]:rounded-t-none [&>*:hover]:z-10 [&>*:focus-visible]:z-10'
7
+ }
8
+ },
9
+ defaultVariants: {
10
+ orientation: 'horizontal'
11
+ }
12
+ });
@@ -0,0 +1,3 @@
1
+ export { default as ButtonGroup } from './ButtonGroup.svelte';
2
+ export type { ButtonGroupProps } from './ButtonGroup.types.js';
3
+ export { buttonGroupVariants, type ButtonGroupVariantProps } from './ButtonGroup.variants.js';
@@ -0,0 +1,2 @@
1
+ export { default as ButtonGroup } from './ButtonGroup.svelte';
2
+ export { buttonGroupVariants } from './ButtonGroup.variants.js';
@@ -0,0 +1,276 @@
1
+ <script lang="ts">
2
+ import { tick } from 'svelte';
3
+ import {
4
+ type CalendarDate,
5
+ isSameDay,
6
+ isToday,
7
+ today,
8
+ getLocalTimeZone,
9
+ startOfWeek,
10
+ endOfWeek,
11
+ DateFormatter
12
+ } from '@internationalized/date';
13
+ import { cn } from '../../utils/cn.js';
14
+ import { createIds } from '../../utils/id.js';
15
+ import { getCalendarGrid } from '../../utils/calendar-grid.js';
16
+ import CalendarDay from './CalendarDay.svelte';
17
+ import type { CalendarProps, CalendarRangeValue } from './Calendar.types.js';
18
+
19
+ let {
20
+ type = 'single',
21
+ value = $bindable(),
22
+ class: className,
23
+ classes,
24
+ locale = typeof navigator !== 'undefined' ? navigator.language : 'en-US',
25
+ defaultMonth,
26
+ minValue,
27
+ maxValue,
28
+ isDateDisabled,
29
+ labels,
30
+ day,
31
+ onValueChange,
32
+ ...restProps
33
+ }: CalendarProps = $props();
34
+
35
+ const baseId = $props.id();
36
+ const ids = createIds(baseId, 'heading');
37
+
38
+ function initialFocusDate(): CalendarDate {
39
+ if (type === 'range') {
40
+ return (
41
+ (value as CalendarRangeValue | undefined)?.start ??
42
+ defaultMonth ??
43
+ today(getLocalTimeZone())
44
+ );
45
+ }
46
+ return (value as CalendarDate | undefined) ?? defaultMonth ?? today(getLocalTimeZone());
47
+ }
48
+
49
+ let focusedDate = $state<CalendarDate>(initialFocusDate());
50
+ let gridEl = $state<HTMLDivElement | null>(null);
51
+
52
+ const weeks = $derived(getCalendarGrid({ date: focusedDate, locale }));
53
+ const weekdayFormatter = $derived(new DateFormatter(locale, { weekday: 'short' }));
54
+ const weekdayLongFormatter = $derived(new DateFormatter(locale, { weekday: 'long' }));
55
+ const headingFormatter = $derived(new DateFormatter(locale, { month: 'long', year: 'numeric' }));
56
+ const heading = $derived(headingFormatter.format(focusedDate.toDate(getLocalTimeZone())));
57
+ // A bare day-of-month ("15") is an ambiguous accessible name — the grid
58
+ // always has a couple of adjacent-month cells sharing the same number
59
+ // (e.g. Feb 29 and Mar 29 in the same row). Full-date `aria-label`
60
+ // disambiguates for AT users and, as a side effect, for the day-cell
61
+ // selector too.
62
+ const fullDateFormatter = $derived(new DateFormatter(locale, { dateStyle: 'full' }));
63
+
64
+ function isDisabled(date: CalendarDate): boolean {
65
+ if (minValue && date.compare(minValue) < 0) return true;
66
+ if (maxValue && date.compare(maxValue) > 0) return true;
67
+ return isDateDisabled?.(date) ?? false;
68
+ }
69
+
70
+ function isSelected(date: CalendarDate): boolean {
71
+ if (type === 'range') {
72
+ const current = value as CalendarRangeValue | undefined;
73
+ return (
74
+ (!!current?.start && isSameDay(date, current.start)) ||
75
+ (!!current?.end && isSameDay(date, current.end))
76
+ );
77
+ }
78
+ return !!value && isSameDay(date, value as CalendarDate);
79
+ }
80
+
81
+ function isInRange(date: CalendarDate): boolean {
82
+ if (type !== 'range') return false;
83
+ const current = value as CalendarRangeValue | undefined;
84
+ if (!current?.start || !current?.end) return false;
85
+ return date.compare(current.start) > 0 && date.compare(current.end) < 0;
86
+ }
87
+
88
+ /**
89
+ * Range picking is a two-click state machine: the first click after a
90
+ * complete (or empty) range starts a new one, the second click completes
91
+ * it — swapping start/end if the second date lands before the first so
92
+ * `start` is always the earlier date regardless of click order.
93
+ */
94
+ function selectDate(date: CalendarDate): void {
95
+ if (isDisabled(date)) return;
96
+ focusedDate = date;
97
+
98
+ if (type === 'range') {
99
+ const current = value as CalendarRangeValue | undefined;
100
+ const next: CalendarRangeValue =
101
+ !current?.start || (current.start && current.end)
102
+ ? { start: date, end: undefined }
103
+ : date.compare(current.start) < 0
104
+ ? { start: date, end: current.start }
105
+ : { start: current.start, end: date };
106
+ value = next;
107
+ (onValueChange as ((value: CalendarRangeValue) => void) | undefined)?.(next);
108
+ } else {
109
+ value = date;
110
+ (onValueChange as ((value: CalendarDate | undefined) => void) | undefined)?.(date);
111
+ }
112
+ }
113
+
114
+ function changeMonth(delta: number): void {
115
+ focusedDate = focusedDate.add({ months: delta });
116
+ }
117
+
118
+ async function focusCell(date: CalendarDate): Promise<void> {
119
+ await tick();
120
+ gridEl?.querySelector<HTMLElement>(`[data-date="${date.toString()}"]`)?.focus();
121
+ }
122
+
123
+ async function handleGridKeydown(event: KeyboardEvent): Promise<void> {
124
+ let next: CalendarDate | undefined;
125
+ switch (event.key) {
126
+ case 'ArrowLeft':
127
+ next = focusedDate.subtract({ days: 1 });
128
+ break;
129
+ case 'ArrowRight':
130
+ next = focusedDate.add({ days: 1 });
131
+ break;
132
+ case 'ArrowUp':
133
+ next = focusedDate.subtract({ days: 7 });
134
+ break;
135
+ case 'ArrowDown':
136
+ next = focusedDate.add({ days: 7 });
137
+ break;
138
+ case 'Home':
139
+ next = startOfWeek(focusedDate, locale);
140
+ break;
141
+ case 'End':
142
+ next = endOfWeek(focusedDate, locale);
143
+ break;
144
+ case 'PageUp':
145
+ next = focusedDate.subtract({ months: 1 });
146
+ break;
147
+ case 'PageDown':
148
+ next = focusedDate.add({ months: 1 });
149
+ break;
150
+ case 'Enter':
151
+ case ' ':
152
+ event.preventDefault();
153
+ selectDate(focusedDate);
154
+ return;
155
+ default:
156
+ return;
157
+ }
158
+ event.preventDefault();
159
+ focusedDate = next;
160
+ await focusCell(next);
161
+ }
162
+ </script>
163
+
164
+ <div class={cn('w-fit', className)} {...restProps}>
165
+ <div class={cn('flex items-center justify-between gap-cozy pb-compact', classes?.header)}>
166
+ <button
167
+ type="button"
168
+ aria-label={labels?.previousMonth ?? 'Previous month'}
169
+ onclick={() => changeMonth(-1)}
170
+ class={cn(
171
+ 'inline-flex size-8 cursor-pointer items-center justify-center rounded-md text-foreground-soft transition-colors duration-150 hover:bg-surface-subtle focus-visible:ring-2 focus-visible:ring-ring focus-visible:outline-none',
172
+ classes?.previousButton
173
+ )}
174
+ >
175
+ <svg
176
+ viewBox="0 0 24 24"
177
+ fill="none"
178
+ stroke="currentColor"
179
+ stroke-width="2"
180
+ stroke-linecap="round"
181
+ stroke-linejoin="round"
182
+ aria-hidden="true"
183
+ class="size-4"
184
+ >
185
+ <path d="m15 18-6-6 6-6" />
186
+ </svg>
187
+ </button>
188
+ <span
189
+ id={ids.heading}
190
+ aria-live="polite"
191
+ class={cn('text-sm leading-snug font-medium text-foreground', classes?.heading)}
192
+ >
193
+ {heading}
194
+ </span>
195
+ <button
196
+ type="button"
197
+ aria-label={labels?.nextMonth ?? 'Next month'}
198
+ onclick={() => changeMonth(1)}
199
+ class={cn(
200
+ 'inline-flex size-8 cursor-pointer items-center justify-center rounded-md text-foreground-soft transition-colors duration-150 hover:bg-surface-subtle focus-visible:ring-2 focus-visible:ring-ring focus-visible:outline-none',
201
+ classes?.nextButton
202
+ )}
203
+ >
204
+ <svg
205
+ viewBox="0 0 24 24"
206
+ fill="none"
207
+ stroke="currentColor"
208
+ stroke-width="2"
209
+ stroke-linecap="round"
210
+ stroke-linejoin="round"
211
+ aria-hidden="true"
212
+ class="size-4"
213
+ >
214
+ <path d="m9 18 6-6-6-6" />
215
+ </svg>
216
+ </button>
217
+ </div>
218
+
219
+ <div
220
+ bind:this={gridEl}
221
+ role="grid"
222
+ tabindex="-1"
223
+ aria-labelledby={ids.heading}
224
+ onkeydown={handleGridKeydown}
225
+ class="flex flex-col gap-1 outline-none"
226
+ >
227
+ <div role="row" class={cn('grid grid-cols-7 justify-items-center', classes?.weekdays)}>
228
+ {#each weeks[0] as cell (cell.date.toString())}
229
+ <span
230
+ role="columnheader"
231
+ aria-label={weekdayLongFormatter.format(cell.date.toDate(getLocalTimeZone()))}
232
+ class="flex size-8 items-center justify-center text-xs font-medium text-foreground-subtle"
233
+ >
234
+ {weekdayFormatter.format(cell.date.toDate(getLocalTimeZone()))}
235
+ </span>
236
+ {/each}
237
+ </div>
238
+
239
+ {#each weeks as week (week[0].date.toString())}
240
+ <div role="row" class="grid grid-cols-7 justify-items-center">
241
+ {#each week as cell (cell.date.toString())}
242
+ {@const selected = isSelected(cell.date)}
243
+ {@const isCellToday = isToday(cell.date, getLocalTimeZone())}
244
+ {@const disabled = isDisabled(cell.date)}
245
+ {@const inRange = isInRange(cell.date)}
246
+ {#if day}
247
+ <!-- Fully custom cell — consumer owns click wiring, same escape-hatch shape as `Pagination`'s `item` snippet. -->
248
+ {@render day({
249
+ date: cell.date,
250
+ selected,
251
+ today: isCellToday,
252
+ outsideMonth: cell.outsideMonth,
253
+ disabled,
254
+ inRange
255
+ })}
256
+ {:else}
257
+ <CalendarDay
258
+ data-date={cell.date.toString()}
259
+ aria-label={fullDateFormatter.format(cell.date.toDate(getLocalTimeZone()))}
260
+ {selected}
261
+ today={isCellToday}
262
+ outsideMonth={cell.outsideMonth}
263
+ {disabled}
264
+ {inRange}
265
+ tabIndex={isSameDay(cell.date, focusedDate) ? 0 : -1}
266
+ class={classes?.day}
267
+ onclick={() => selectDate(cell.date)}
268
+ >
269
+ {cell.date.day}
270
+ </CalendarDay>
271
+ {/if}
272
+ {/each}
273
+ </div>
274
+ {/each}
275
+ </div>
276
+ </div>
@@ -0,0 +1,4 @@
1
+ import type { CalendarProps } from './Calendar.types.js';
2
+ declare const Calendar: import("svelte").Component<CalendarProps, {}, "value">;
3
+ type Calendar = ReturnType<typeof Calendar>;
4
+ export default Calendar;