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,157 @@
1
+ <script lang="ts">
2
+ import { cn } from '../../utils/cn.js';
3
+ import { portal } from '../../utils/portal.js';
4
+ import { createPresence } from '../../utils/presence.svelte.js';
5
+ import { createDismissableLayer } from '../../utils/dismissable-layer.js';
6
+ import { focusTrap } from '../../utils/focus-trap.js';
7
+ import { lockScroll } from '../../utils/scroll-lock.js';
8
+ import { createIds } from '../../utils/id.js';
9
+ import { drawerVariants } from './Drawer.variants.js';
10
+ import type { DrawerProps } from './Drawer.types.js';
11
+
12
+ let {
13
+ classes,
14
+ open = $bindable(false),
15
+ side = 'right',
16
+ portalTarget,
17
+ labels,
18
+ trigger,
19
+ title,
20
+ description,
21
+ children,
22
+ ...restProps
23
+ }: DrawerProps = $props();
24
+
25
+ const baseId = $props.id();
26
+ const ids = createIds(baseId, 'title', 'description', 'content');
27
+
28
+ let triggerEl = $state<HTMLButtonElement | null>(null);
29
+ let contentEl = $state<HTMLDivElement | null>(null);
30
+ const presence = createPresence(
31
+ () => open,
32
+ () => contentEl
33
+ );
34
+
35
+ // Captured with `$effect.pre` — which runs before the DOM patch that mounts
36
+ // the content — so this reads whatever had focus right before opening,
37
+ // rather than the content's own first focusable element that `focusTrap`
38
+ // moves focus to a moment later in the same update.
39
+ let restoreFocusEl: HTMLElement | null = null;
40
+ $effect.pre(() => {
41
+ if (open) restoreFocusEl = document.activeElement as HTMLElement | null;
42
+ });
43
+
44
+ function close() {
45
+ open = false;
46
+ }
47
+
48
+ $effect(() => {
49
+ if (!open) return;
50
+
51
+ const unlockScroll = lockScroll();
52
+ const destroyLayer = createDismissableLayer(() => [triggerEl, contentEl], {
53
+ onPointerDownOutside: close,
54
+ onEscapeKeydown: (event) => {
55
+ event.preventDefault();
56
+ close();
57
+ }
58
+ });
59
+
60
+ return () => {
61
+ unlockScroll();
62
+ destroyLayer();
63
+ restoreFocusEl?.focus({ preventScroll: true });
64
+ };
65
+ });
66
+
67
+ const triggerProps = $derived({
68
+ ...restProps,
69
+ type: 'button' as const,
70
+ 'aria-haspopup': 'dialog' as const,
71
+ 'aria-expanded': open,
72
+ 'aria-controls': ids.content,
73
+ 'data-state': open ? 'open' : 'closed',
74
+ class: cn(
75
+ 'inline-flex h-10 cursor-pointer items-center justify-center gap-tight rounded-md border border-border px-control-x text-sm leading-snug font-medium text-foreground-soft transition-colors duration-150 hover:bg-surface-subtle focus-visible:ring-2 focus-visible:ring-ring focus-visible:outline-none disabled:cursor-not-allowed disabled:opacity-50',
76
+ classes?.trigger
77
+ ),
78
+ onclick: () => (open = !open)
79
+ });
80
+ </script>
81
+
82
+ <button bind:this={triggerEl} {...triggerProps}>
83
+ {@render trigger()}
84
+ </button>
85
+
86
+ {#if presence.current}
87
+ <!-- Reuses Dialog's overlay animation — same visual role (dimming scrim), no need for a second copy. -->
88
+ <div
89
+ aria-hidden="true"
90
+ data-slot="dialog-overlay"
91
+ data-state={open ? 'open' : 'closed'}
92
+ use:portal={{ target: portalTarget }}
93
+ class={cn('fixed inset-0 z-50 bg-foreground/40', classes?.overlay)}
94
+ ></div>
95
+ <!--
96
+ No centring wrapper needed here unlike Dialog — the content is positioned
97
+ by `inset-*` (edge-anchored), not a transform, so `portal` and `focusTrap`
98
+ can sit directly on this element without the wrapper trick Dialog needs.
99
+ -->
100
+ <div
101
+ bind:this={contentEl}
102
+ id={ids.content}
103
+ role="dialog"
104
+ data-slot="drawer-content"
105
+ data-side={side}
106
+ aria-modal="true"
107
+ aria-labelledby={ids.title}
108
+ aria-describedby={description ? ids.description : undefined}
109
+ data-state={open ? 'open' : 'closed'}
110
+ tabindex="-1"
111
+ inert={!open}
112
+ use:portal={{ target: portalTarget }}
113
+ use:focusTrap={{ enabled: open }}
114
+ class={cn(drawerVariants({ side }), classes?.content)}
115
+ >
116
+ <h2
117
+ id={ids.title}
118
+ class={cn('pr-8 text-lg leading-tight font-medium text-foreground', classes?.title)}
119
+ >
120
+ {@render title()}
121
+ </h2>
122
+ {#if description}
123
+ <p
124
+ id={ids.description}
125
+ class={cn('mt-1 text-sm leading-snug text-foreground-subtle', classes?.description)}
126
+ >
127
+ {@render description()}
128
+ </p>
129
+ {/if}
130
+ <div class="mt-4 min-h-0 flex-1">
131
+ {@render children()}
132
+ </div>
133
+ <button
134
+ type="button"
135
+ onclick={close}
136
+ aria-label={labels?.close ?? 'Close'}
137
+ class={cn(
138
+ 'absolute top-4 right-4 inline-flex size-8 cursor-pointer items-center justify-center rounded-md text-foreground-faint transition-colors duration-150 hover:bg-surface-subtle hover:text-foreground-soft focus-visible:ring-2 focus-visible:ring-ring focus-visible:outline-none',
139
+ classes?.close
140
+ )}
141
+ >
142
+ <svg
143
+ viewBox="0 0 24 24"
144
+ fill="none"
145
+ stroke="currentColor"
146
+ stroke-width="2"
147
+ stroke-linecap="round"
148
+ stroke-linejoin="round"
149
+ aria-hidden="true"
150
+ class="size-4"
151
+ >
152
+ <path d="M18 6 6 18" />
153
+ <path d="m6 6 12 12" />
154
+ </svg>
155
+ </button>
156
+ </div>
157
+ {/if}
@@ -0,0 +1,4 @@
1
+ import type { DrawerProps } from './Drawer.types.js';
2
+ declare const Drawer: import("svelte").Component<DrawerProps, {}, "open">;
3
+ type Drawer = ReturnType<typeof Drawer>;
4
+ export default Drawer;
@@ -0,0 +1,22 @@
1
+ import type { Snippet } from 'svelte';
2
+ import type { HTMLButtonAttributes } from 'svelte/elements';
3
+ import type { DrawerVariantProps } from './Drawer.variants.js';
4
+ export interface DrawerProps extends Omit<HTMLButtonAttributes, 'children' | 'class' | 'title'>, DrawerVariantProps {
5
+ classes?: {
6
+ trigger?: string;
7
+ overlay?: string;
8
+ content?: string;
9
+ title?: string;
10
+ description?: string;
11
+ close?: string;
12
+ };
13
+ open?: boolean;
14
+ portalTarget?: HTMLElement | string;
15
+ labels?: {
16
+ close?: string;
17
+ };
18
+ trigger: Snippet;
19
+ title: Snippet;
20
+ description?: Snippet;
21
+ children: Snippet;
22
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,5 @@
1
+ import { type VariantProps } from 'class-variance-authority';
2
+ export declare const drawerVariants: (props?: ({
3
+ side?: "top" | "right" | "bottom" | "left" | null | undefined;
4
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
5
+ export type DrawerVariantProps = VariantProps<typeof drawerVariants>;
@@ -0,0 +1,14 @@
1
+ import { cva } from 'class-variance-authority';
2
+ export const drawerVariants = cva('fixed z-50 flex flex-col overflow-y-auto border-border bg-surface p-surface shadow-sm focus-visible:outline-none', {
3
+ variants: {
4
+ side: {
5
+ right: 'inset-y-0 right-0 h-full w-full max-w-sm rounded-l-lg border-l',
6
+ left: 'inset-y-0 left-0 h-full w-full max-w-sm rounded-r-lg border-r',
7
+ top: 'inset-x-0 top-0 w-full max-h-[80vh] rounded-b-lg border-b',
8
+ bottom: 'inset-x-0 bottom-0 w-full max-h-[80vh] rounded-t-lg border-t'
9
+ }
10
+ },
11
+ defaultVariants: {
12
+ side: 'right'
13
+ }
14
+ });
@@ -0,0 +1,3 @@
1
+ export { default as Drawer } from './Drawer.svelte';
2
+ export type { DrawerProps } from './Drawer.types.js';
3
+ export { drawerVariants, type DrawerVariantProps } from './Drawer.variants.js';
@@ -0,0 +1,2 @@
1
+ export { default as Drawer } from './Drawer.svelte';
2
+ export { drawerVariants } from './Drawer.variants.js';
@@ -0,0 +1,152 @@
1
+ <script lang="ts">
2
+ import { cn } from '../../utils/cn.js';
3
+ import { floating } from '../../utils/floating.js';
4
+ import { portal } from '../../utils/portal.js';
5
+ import { createPresence } from '../../utils/presence.svelte.js';
6
+ import { createDismissableLayer } from '../../utils/dismissable-layer.js';
7
+ import { createRovingFocus } from '../../utils/roving-focus.js';
8
+ import type { DropdownProps } from './Dropdown.types.js';
9
+
10
+ let {
11
+ classes,
12
+ open = $bindable(false),
13
+ placement = 'bottom-start',
14
+ offset = 8,
15
+ portalTarget,
16
+ trigger,
17
+ children,
18
+ ...restProps
19
+ }: DropdownProps = $props();
20
+
21
+ const contentId = $props.id();
22
+
23
+ let triggerEl = $state<HTMLButtonElement | null>(null);
24
+ let contentEl = $state<HTMLDivElement | null>(null);
25
+ const presence = createPresence(
26
+ () => open,
27
+ () => contentEl
28
+ );
29
+ let pendingFocus: 'first' | 'last' | null = null;
30
+
31
+ function close() {
32
+ open = false;
33
+ }
34
+
35
+ // Focus is always moved here programmatically (never by tabbing into the
36
+ // list), so items stay out of the tab order permanently — no roving
37
+ // tabindex bookkeeping needed.
38
+ const roving = createRovingFocus({
39
+ getContainer: () => contentEl,
40
+ selector: '[role="menuitem"]:not(:disabled)'
41
+ });
42
+
43
+ function handleContentKeydown(event: KeyboardEvent) {
44
+ switch (event.key) {
45
+ case 'ArrowDown':
46
+ event.preventDefault();
47
+ roving.focusAdjacent(1);
48
+ break;
49
+ case 'ArrowUp':
50
+ event.preventDefault();
51
+ roving.focusAdjacent(-1);
52
+ break;
53
+ case 'Home':
54
+ event.preventDefault();
55
+ roving.focusFirst();
56
+ break;
57
+ case 'End':
58
+ event.preventDefault();
59
+ roving.focusLast();
60
+ break;
61
+ case 'Tab':
62
+ close();
63
+ break;
64
+ default:
65
+ if (event.key.length === 1 && event.key !== ' ') {
66
+ roving.typeahead(event.key);
67
+ }
68
+ }
69
+ }
70
+
71
+ function handleContentClick(event: MouseEvent) {
72
+ const target = (event.target as HTMLElement).closest('[role="menuitem"]:not(:disabled)');
73
+ if (!target) return;
74
+ close();
75
+ triggerEl?.focus();
76
+ }
77
+
78
+ function handleTriggerKeydown(event: KeyboardEvent) {
79
+ if (event.key === 'ArrowDown' || event.key === 'ArrowUp') {
80
+ event.preventDefault();
81
+ pendingFocus = event.key === 'ArrowDown' ? 'first' : 'last';
82
+ open = true;
83
+ }
84
+ }
85
+
86
+ $effect(() => {
87
+ if (!open) return;
88
+
89
+ // `contentEl` is itself tracked $state, so reading it makes this effect
90
+ // re-run once the portalled menu actually mounts. The first run (right
91
+ // after `open` flips) fires before that DOM exists — bail out rather
92
+ // than consuming `pendingFocus` on a run that can't act on it, or the
93
+ // real run that follows would see it already cleared.
94
+ if (!contentEl) return;
95
+
96
+ if (pendingFocus === 'last') {
97
+ roving.focusLast();
98
+ } else {
99
+ roving.focusFirst();
100
+ }
101
+ pendingFocus = null;
102
+
103
+ return createDismissableLayer(() => [triggerEl, contentEl], {
104
+ onPointerDownOutside: close,
105
+ onEscapeKeydown: (event) => {
106
+ event.preventDefault();
107
+ close();
108
+ triggerEl?.focus();
109
+ }
110
+ });
111
+ });
112
+
113
+ const triggerProps = $derived({
114
+ ...restProps,
115
+ type: 'button' as const,
116
+ 'aria-haspopup': 'menu' as const,
117
+ 'aria-expanded': open,
118
+ 'aria-controls': contentId,
119
+ 'data-state': open ? 'open' : 'closed',
120
+ class: cn(
121
+ 'inline-flex h-10 cursor-pointer items-center justify-center gap-tight rounded-md border border-border px-control-x text-sm leading-snug font-medium text-foreground-soft transition-colors duration-150 hover:bg-surface-subtle focus-visible:ring-2 focus-visible:ring-ring focus-visible:outline-none disabled:cursor-not-allowed disabled:opacity-50',
122
+ classes?.trigger
123
+ ),
124
+ onclick: () => (open = !open),
125
+ onkeydown: handleTriggerKeydown
126
+ });
127
+ </script>
128
+
129
+ <button bind:this={triggerEl} {...triggerProps}>
130
+ {@render trigger()}
131
+ </button>
132
+
133
+ {#if presence.current}
134
+ <div
135
+ bind:this={contentEl}
136
+ id={contentId}
137
+ role="menu"
138
+ tabindex="-1"
139
+ data-state={open ? 'open' : 'closed'}
140
+ inert={!open}
141
+ onkeydown={handleContentKeydown}
142
+ onclick={handleContentClick}
143
+ use:portal={{ target: portalTarget }}
144
+ use:floating={{ reference: triggerEl, placement, offset }}
145
+ class={cn(
146
+ 'z-50 min-w-40 rounded-lg border border-border bg-surface p-1 text-sm text-foreground-muted shadow-sm focus-visible:outline-none',
147
+ classes?.content
148
+ )}
149
+ >
150
+ {@render children()}
151
+ </div>
152
+ {/if}
@@ -0,0 +1,4 @@
1
+ import type { DropdownProps } from './Dropdown.types.js';
2
+ declare const Dropdown: import("svelte").Component<DropdownProps, {}, "open">;
3
+ type Dropdown = ReturnType<typeof Dropdown>;
4
+ export default Dropdown;
@@ -0,0 +1,15 @@
1
+ import type { Snippet } from 'svelte';
2
+ import type { HTMLButtonAttributes } from 'svelte/elements';
3
+ import type { Placement } from '@floating-ui/dom';
4
+ export interface DropdownProps extends Omit<HTMLButtonAttributes, 'children' | 'class'> {
5
+ classes?: {
6
+ trigger?: string;
7
+ content?: string;
8
+ };
9
+ open?: boolean;
10
+ placement?: Placement;
11
+ offset?: number;
12
+ portalTarget?: HTMLElement | string;
13
+ trigger: Snippet;
14
+ children: Snippet;
15
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,31 @@
1
+ <script lang="ts">
2
+ import { cn } from '../../utils/cn.js';
3
+ import type { DropdownItemProps } from './DropdownItem.types.js';
4
+
5
+ let {
6
+ class: className,
7
+ disabled = false,
8
+ onSelect,
9
+ children,
10
+ ...restProps
11
+ }: DropdownItemProps = $props();
12
+
13
+ const itemProps = $derived({
14
+ ...restProps,
15
+ type: 'button' as const,
16
+ role: 'menuitem' as const,
17
+ tabindex: -1,
18
+ disabled,
19
+ class: cn(
20
+ 'flex w-full items-center gap-tight rounded-md px-compact py-2 text-left text-sm text-foreground-soft transition-colors duration-150 hover:bg-surface-subtle focus-visible:bg-surface-subtle focus-visible:outline-none disabled:cursor-not-allowed disabled:opacity-50',
21
+ className
22
+ ),
23
+ onclick: () => {
24
+ if (!disabled) onSelect?.();
25
+ }
26
+ });
27
+ </script>
28
+
29
+ <button {...itemProps}>
30
+ {@render children()}
31
+ </button>
@@ -0,0 +1,4 @@
1
+ import type { DropdownItemProps } from './DropdownItem.types.js';
2
+ declare const DropdownItem: import("svelte").Component<DropdownItemProps, {}, "">;
3
+ type DropdownItem = ReturnType<typeof DropdownItem>;
4
+ export default DropdownItem;
@@ -0,0 +1,8 @@
1
+ import type { Snippet } from 'svelte';
2
+ import type { HTMLButtonAttributes } from 'svelte/elements';
3
+ export interface DropdownItemProps extends Omit<HTMLButtonAttributes, 'children' | 'class'> {
4
+ class?: string;
5
+ disabled?: boolean;
6
+ onSelect?: () => void;
7
+ children: Snippet;
8
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,4 @@
1
+ export { default as Dropdown } from './Dropdown.svelte';
2
+ export type { DropdownProps } from './Dropdown.types.js';
3
+ export { default as DropdownItem } from './DropdownItem.svelte';
4
+ export type { DropdownItemProps } from './DropdownItem.types.js';
@@ -0,0 +1,2 @@
1
+ export { default as Dropdown } from './Dropdown.svelte';
2
+ export { default as DropdownItem } from './DropdownItem.svelte';
@@ -0,0 +1,37 @@
1
+ <script lang="ts">
2
+ import { cn } from '../../utils/cn.js';
3
+ import type { EmptyStateProps } from './EmptyState.types.js';
4
+
5
+ let {
6
+ class: className,
7
+ classes,
8
+ icon,
9
+ title,
10
+ description,
11
+ children,
12
+ ...restProps
13
+ }: EmptyStateProps = $props();
14
+ </script>
15
+
16
+ <div
17
+ role="status"
18
+ class={cn('flex flex-col items-center gap-cozy px-surface py-12 text-center', className)}
19
+ {...restProps}
20
+ >
21
+ {#if icon}
22
+ <span aria-hidden="true" class={cn('text-foreground-faint [&_svg]:size-10', classes?.icon)}>
23
+ {@render icon()}
24
+ </span>
25
+ {/if}
26
+ {#if title}
27
+ <p class={cn('leading-snug font-medium text-foreground', classes?.title)}>
28
+ {@render title()}
29
+ </p>
30
+ {/if}
31
+ {#if description}
32
+ <p class={cn('max-w-sm text-sm leading-snug text-foreground-subtle', classes?.description)}>
33
+ {@render description()}
34
+ </p>
35
+ {/if}
36
+ {@render children?.()}
37
+ </div>
@@ -0,0 +1,4 @@
1
+ import type { EmptyStateProps } from './EmptyState.types.js';
2
+ declare const EmptyState: import("svelte").Component<EmptyStateProps, {}, "">;
3
+ type EmptyState = ReturnType<typeof EmptyState>;
4
+ export default EmptyState;
@@ -0,0 +1,16 @@
1
+ import type { Snippet } from 'svelte';
2
+ import type { HTMLAttributes } from 'svelte/elements';
3
+ export interface EmptyStateProps extends Omit<HTMLAttributes<HTMLDivElement>, 'title'> {
4
+ class?: string;
5
+ classes?: {
6
+ icon?: string;
7
+ title?: string;
8
+ description?: string;
9
+ };
10
+ /** Decorative — gets `aria-hidden="true"` automatically. */
11
+ icon?: Snippet;
12
+ title?: Snippet;
13
+ description?: Snippet;
14
+ /** Extra content below the description — typically a call-to-action button. */
15
+ children?: Snippet;
16
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,2 @@
1
+ export { default as EmptyState } from './EmptyState.svelte';
2
+ export type { EmptyStateProps } from './EmptyState.types.js';
@@ -0,0 +1 @@
1
+ export { default as EmptyState } from './EmptyState.svelte';
@@ -0,0 +1,15 @@
1
+ <script lang="ts">
2
+ import { cn } from '../../utils/cn.js';
3
+ import type { HelperTextProps } from './HelperText.types.js';
4
+
5
+ let { invalid = false, class: className, children, ...restProps }: HelperTextProps = $props();
6
+ </script>
7
+
8
+ <p
9
+ role={invalid ? 'alert' : undefined}
10
+ data-invalid={invalid ? '' : undefined}
11
+ class={cn('text-sm leading-snug', invalid ? 'text-danger' : 'text-foreground-subtle', className)}
12
+ {...restProps}
13
+ >
14
+ {@render children()}
15
+ </p>
@@ -0,0 +1,4 @@
1
+ import type { HelperTextProps } from './HelperText.types.js';
2
+ declare const HelperText: import("svelte").Component<HelperTextProps, {}, "">;
3
+ type HelperText = ReturnType<typeof HelperText>;
4
+ export default HelperText;
@@ -0,0 +1,8 @@
1
+ import type { Snippet } from 'svelte';
2
+ import type { HTMLAttributes } from 'svelte/elements';
3
+ export interface HelperTextProps extends HTMLAttributes<HTMLParagraphElement> {
4
+ class?: string;
5
+ /** Switches styling to the danger color and announces the text as a validation error. */
6
+ invalid?: boolean;
7
+ children: Snippet;
8
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,2 @@
1
+ export { default as HelperText } from './HelperText.svelte';
2
+ export type { HelperTextProps } from './HelperText.types.js';
@@ -0,0 +1 @@
1
+ export { default as HelperText } from './HelperText.svelte';