svelora 2.1.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 (484) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +145 -0
  3. package/dist/Accordion/Accordion.svelte +207 -0
  4. package/dist/Accordion/Accordion.svelte.d.ts +6 -0
  5. package/dist/Accordion/accordion.types.d.ts +225 -0
  6. package/dist/Accordion/accordion.types.js +1 -0
  7. package/dist/Accordion/accordion.variants.d.ts +88 -0
  8. package/dist/Accordion/accordion.variants.js +28 -0
  9. package/dist/Accordion/index.d.ts +2 -0
  10. package/dist/Accordion/index.js +1 -0
  11. package/dist/Alert/Alert.svelte +131 -0
  12. package/dist/Alert/Alert.svelte.d.ts +5 -0
  13. package/dist/Alert/alert.types.d.ts +103 -0
  14. package/dist/Alert/alert.types.js +1 -0
  15. package/dist/Alert/alert.variants.d.ts +213 -0
  16. package/dist/Alert/alert.variants.js +293 -0
  17. package/dist/Alert/index.d.ts +2 -0
  18. package/dist/Alert/index.js +1 -0
  19. package/dist/Avatar/Avatar.svelte +114 -0
  20. package/dist/Avatar/Avatar.svelte.d.ts +6 -0
  21. package/dist/Avatar/avatar.types.d.ts +73 -0
  22. package/dist/Avatar/avatar.types.js +1 -0
  23. package/dist/Avatar/avatar.variants.d.ts +316 -0
  24. package/dist/Avatar/avatar.variants.js +39 -0
  25. package/dist/Avatar/index.d.ts +2 -0
  26. package/dist/Avatar/index.js +1 -0
  27. package/dist/AvatarGroup/AvatarGroup.svelte +71 -0
  28. package/dist/AvatarGroup/AvatarGroup.svelte.d.ts +5 -0
  29. package/dist/AvatarGroup/avatar-group.types.d.ts +49 -0
  30. package/dist/AvatarGroup/avatar-group.types.js +1 -0
  31. package/dist/AvatarGroup/avatar-group.variants.d.ts +258 -0
  32. package/dist/AvatarGroup/avatar-group.variants.js +35 -0
  33. package/dist/AvatarGroup/index.d.ts +2 -0
  34. package/dist/AvatarGroup/index.js +1 -0
  35. package/dist/Badge/Badge.svelte +79 -0
  36. package/dist/Badge/Badge.svelte.d.ts +5 -0
  37. package/dist/Badge/badge.types.d.ts +83 -0
  38. package/dist/Badge/badge.types.js +1 -0
  39. package/dist/Badge/badge.variants.d.ts +303 -0
  40. package/dist/Badge/badge.variants.js +259 -0
  41. package/dist/Badge/index.d.ts +2 -0
  42. package/dist/Badge/index.js +1 -0
  43. package/dist/Banner/Banner.svelte +130 -0
  44. package/dist/Banner/Banner.svelte.d.ts +5 -0
  45. package/dist/Banner/banner.types.d.ts +148 -0
  46. package/dist/Banner/banner.types.js +1 -0
  47. package/dist/Banner/banner.variants.d.ts +293 -0
  48. package/dist/Banner/banner.variants.js +86 -0
  49. package/dist/Banner/index.d.ts +2 -0
  50. package/dist/Banner/index.js +1 -0
  51. package/dist/Breadcrumb/Breadcrumb.svelte +79 -0
  52. package/dist/Breadcrumb/Breadcrumb.svelte.d.ts +5 -0
  53. package/dist/Breadcrumb/breadcrumb.types.d.ts +66 -0
  54. package/dist/Breadcrumb/breadcrumb.types.js +1 -0
  55. package/dist/Breadcrumb/breadcrumb.variants.d.ts +138 -0
  56. package/dist/Breadcrumb/breadcrumb.variants.js +53 -0
  57. package/dist/Breadcrumb/index.d.ts +2 -0
  58. package/dist/Breadcrumb/index.js +1 -0
  59. package/dist/Button/Button.svelte +177 -0
  60. package/dist/Button/Button.svelte.d.ts +5 -0
  61. package/dist/Button/button.types.d.ts +151 -0
  62. package/dist/Button/button.types.js +1 -0
  63. package/dist/Button/button.variants.d.ts +388 -0
  64. package/dist/Button/button.variants.js +461 -0
  65. package/dist/Button/index.d.ts +2 -0
  66. package/dist/Button/index.js +1 -0
  67. package/dist/Calendar/Calendar.svelte +344 -0
  68. package/dist/Calendar/Calendar.svelte.d.ts +6 -0
  69. package/dist/Calendar/calendar.types.d.ts +122 -0
  70. package/dist/Calendar/calendar.types.js +1 -0
  71. package/dist/Calendar/calendar.variants.d.ts +553 -0
  72. package/dist/Calendar/calendar.variants.js +368 -0
  73. package/dist/Calendar/index.d.ts +2 -0
  74. package/dist/Calendar/index.js +1 -0
  75. package/dist/Card/Card.svelte +54 -0
  76. package/dist/Card/Card.svelte.d.ts +5 -0
  77. package/dist/Card/card.types.d.ts +36 -0
  78. package/dist/Card/card.types.js +1 -0
  79. package/dist/Card/card.variants.d.ts +108 -0
  80. package/dist/Card/card.variants.js +32 -0
  81. package/dist/Card/index.d.ts +2 -0
  82. package/dist/Card/index.js +1 -0
  83. package/dist/Carousel/Carousel.svelte +277 -0
  84. package/dist/Carousel/Carousel.svelte.d.ts +26 -0
  85. package/dist/Carousel/carousel.types.d.ts +251 -0
  86. package/dist/Carousel/carousel.types.js +1 -0
  87. package/dist/Carousel/carousel.variants.d.ts +408 -0
  88. package/dist/Carousel/carousel.variants.js +88 -0
  89. package/dist/Carousel/index.d.ts +2 -0
  90. package/dist/Carousel/index.js +1 -0
  91. package/dist/Checkbox/Checkbox.svelte +161 -0
  92. package/dist/Checkbox/Checkbox.svelte.d.ts +6 -0
  93. package/dist/Checkbox/checkbox.types.d.ts +101 -0
  94. package/dist/Checkbox/checkbox.types.js +1 -0
  95. package/dist/Checkbox/checkbox.variants.d.ts +448 -0
  96. package/dist/Checkbox/checkbox.variants.js +209 -0
  97. package/dist/Checkbox/index.d.ts +2 -0
  98. package/dist/Checkbox/index.js +1 -0
  99. package/dist/CheckboxGroup/CheckboxGroup.svelte +219 -0
  100. package/dist/CheckboxGroup/CheckboxGroup.svelte.d.ts +5 -0
  101. package/dist/CheckboxGroup/checkbox-group.types.d.ts +130 -0
  102. package/dist/CheckboxGroup/checkbox-group.types.js +1 -0
  103. package/dist/CheckboxGroup/checkbox-group.variants.d.ts +553 -0
  104. package/dist/CheckboxGroup/checkbox-group.variants.js +231 -0
  105. package/dist/CheckboxGroup/index.d.ts +2 -0
  106. package/dist/CheckboxGroup/index.js +1 -0
  107. package/dist/Chip/Chip.svelte +51 -0
  108. package/dist/Chip/Chip.svelte.d.ts +5 -0
  109. package/dist/Chip/chip.types.d.ts +66 -0
  110. package/dist/Chip/chip.types.js +1 -0
  111. package/dist/Chip/chip.variants.d.ts +418 -0
  112. package/dist/Chip/chip.variants.js +74 -0
  113. package/dist/Chip/index.d.ts +2 -0
  114. package/dist/Chip/index.js +1 -0
  115. package/dist/Collapsible/Collapsible.svelte +69 -0
  116. package/dist/Collapsible/Collapsible.svelte.d.ts +6 -0
  117. package/dist/Collapsible/CollapsibleTestWrapper.svelte +17 -0
  118. package/dist/Collapsible/CollapsibleTestWrapper.svelte.d.ts +4 -0
  119. package/dist/Collapsible/collapsible.types.d.ts +77 -0
  120. package/dist/Collapsible/collapsible.types.js +1 -0
  121. package/dist/Collapsible/collapsible.variants.d.ts +53 -0
  122. package/dist/Collapsible/collapsible.variants.js +21 -0
  123. package/dist/Collapsible/index.d.ts +2 -0
  124. package/dist/Collapsible/index.js +1 -0
  125. package/dist/Command/Command.svelte +183 -0
  126. package/dist/Command/Command.svelte.d.ts +6 -0
  127. package/dist/Command/CommandTestWrapper.svelte +13 -0
  128. package/dist/Command/CommandTestWrapper.svelte.d.ts +4 -0
  129. package/dist/Command/command.types.d.ts +100 -0
  130. package/dist/Command/command.types.js +1 -0
  131. package/dist/Command/command.variants.d.ts +226 -0
  132. package/dist/Command/command.variants.js +86 -0
  133. package/dist/Command/index.d.ts +2 -0
  134. package/dist/Command/index.js +1 -0
  135. package/dist/Container/Container.svelte +21 -0
  136. package/dist/Container/Container.svelte.d.ts +5 -0
  137. package/dist/Container/container.types.d.ts +19 -0
  138. package/dist/Container/container.types.js +1 -0
  139. package/dist/Container/container.variants.d.ts +29 -0
  140. package/dist/Container/container.variants.js +9 -0
  141. package/dist/Container/index.d.ts +2 -0
  142. package/dist/Container/index.js +1 -0
  143. package/dist/ContextMenu/ContextMenu.svelte +344 -0
  144. package/dist/ContextMenu/ContextMenu.svelte.d.ts +6 -0
  145. package/dist/ContextMenu/context-menu.types.d.ts +265 -0
  146. package/dist/ContextMenu/context-menu.types.js +1 -0
  147. package/dist/ContextMenu/context-menu.variants.d.ts +307 -0
  148. package/dist/ContextMenu/context-menu.variants.js +144 -0
  149. package/dist/ContextMenu/index.d.ts +2 -0
  150. package/dist/ContextMenu/index.js +1 -0
  151. package/dist/Drawer/Drawer.svelte +207 -0
  152. package/dist/Drawer/Drawer.svelte.d.ts +6 -0
  153. package/dist/Drawer/DrawerTriggerTestWrapper.svelte +10 -0
  154. package/dist/Drawer/DrawerTriggerTestWrapper.svelte.d.ts +18 -0
  155. package/dist/Drawer/drawer.types.d.ts +116 -0
  156. package/dist/Drawer/drawer.types.js +1 -0
  157. package/dist/Drawer/drawer.variants.d.ts +193 -0
  158. package/dist/Drawer/drawer.variants.js +139 -0
  159. package/dist/Drawer/index.d.ts +2 -0
  160. package/dist/Drawer/index.js +1 -0
  161. package/dist/DropdownMenu/DropdownMenu.svelte +363 -0
  162. package/dist/DropdownMenu/DropdownMenu.svelte.d.ts +6 -0
  163. package/dist/DropdownMenu/DropdownMenuTriggerTestWrapper.svelte +12 -0
  164. package/dist/DropdownMenu/DropdownMenuTriggerTestWrapper.svelte.d.ts +7 -0
  165. package/dist/DropdownMenu/dropdown-menu.types.d.ts +279 -0
  166. package/dist/DropdownMenu/dropdown-menu.types.js +1 -0
  167. package/dist/DropdownMenu/dropdown-menu.variants.d.ts +312 -0
  168. package/dist/DropdownMenu/dropdown-menu.variants.js +149 -0
  169. package/dist/DropdownMenu/index.d.ts +2 -0
  170. package/dist/DropdownMenu/index.js +1 -0
  171. package/dist/Editor/Editor.svelte +756 -0
  172. package/dist/Editor/Editor.svelte.d.ts +6 -0
  173. package/dist/Editor/EditorUrlPrompt.svelte +94 -0
  174. package/dist/Editor/EditorUrlPrompt.svelte.d.ts +15 -0
  175. package/dist/Editor/SlashPopup.svelte +74 -0
  176. package/dist/Editor/SlashPopup.svelte.d.ts +11 -0
  177. package/dist/Editor/editor.extensions.d.ts +23 -0
  178. package/dist/Editor/editor.extensions.js +132 -0
  179. package/dist/Editor/editor.schemas.d.ts +5 -0
  180. package/dist/Editor/editor.schemas.js +27 -0
  181. package/dist/Editor/editor.slash.svelte.d.ts +25 -0
  182. package/dist/Editor/editor.slash.svelte.js +299 -0
  183. package/dist/Editor/editor.suggestion.d.ts +7 -0
  184. package/dist/Editor/editor.suggestion.js +165 -0
  185. package/dist/Editor/editor.toolbar.d.ts +11 -0
  186. package/dist/Editor/editor.toolbar.js +204 -0
  187. package/dist/Editor/editor.types.d.ts +367 -0
  188. package/dist/Editor/editor.types.js +1 -0
  189. package/dist/Editor/editor.variants.d.ts +303 -0
  190. package/dist/Editor/editor.variants.js +135 -0
  191. package/dist/Editor/index.d.ts +55 -0
  192. package/dist/Editor/index.js +54 -0
  193. package/dist/Empty/Empty.svelte +118 -0
  194. package/dist/Empty/Empty.svelte.d.ts +5 -0
  195. package/dist/Empty/empty.types.d.ts +91 -0
  196. package/dist/Empty/empty.types.js +1 -0
  197. package/dist/Empty/empty.variants.d.ts +308 -0
  198. package/dist/Empty/empty.variants.js +73 -0
  199. package/dist/Empty/index.d.ts +2 -0
  200. package/dist/Empty/index.js +1 -0
  201. package/dist/FieldGroup/FieldGroup.svelte +53 -0
  202. package/dist/FieldGroup/FieldGroup.svelte.d.ts +5 -0
  203. package/dist/FieldGroup/field-group.types.d.ts +37 -0
  204. package/dist/FieldGroup/field-group.types.js +1 -0
  205. package/dist/FieldGroup/field-group.variants.d.ts +116 -0
  206. package/dist/FieldGroup/field-group.variants.js +49 -0
  207. package/dist/FieldGroup/index.d.ts +2 -0
  208. package/dist/FieldGroup/index.js +1 -0
  209. package/dist/FileUpload/FileUpload.svelte +639 -0
  210. package/dist/FileUpload/FileUpload.svelte.d.ts +8 -0
  211. package/dist/FileUpload/file-upload.types.d.ts +203 -0
  212. package/dist/FileUpload/file-upload.types.js +1 -0
  213. package/dist/FileUpload/file-upload.variants.d.ts +397 -0
  214. package/dist/FileUpload/file-upload.variants.js +224 -0
  215. package/dist/FileUpload/index.d.ts +2 -0
  216. package/dist/FileUpload/index.js +1 -0
  217. package/dist/Form/Form.svelte +197 -0
  218. package/dist/Form/Form.svelte.d.ts +26 -0
  219. package/dist/Form/form.context.svelte.d.ts +64 -0
  220. package/dist/Form/form.context.svelte.js +478 -0
  221. package/dist/Form/form.types.d.ts +164 -0
  222. package/dist/Form/form.types.js +12 -0
  223. package/dist/Form/form.variants.d.ts +39 -0
  224. package/dist/Form/form.variants.js +17 -0
  225. package/dist/Form/index.d.ts +4 -0
  226. package/dist/Form/index.js +6 -0
  227. package/dist/Form/validate-schema.d.ts +13 -0
  228. package/dist/Form/validate-schema.js +113 -0
  229. package/dist/FormField/FormField.svelte +186 -0
  230. package/dist/FormField/FormField.svelte.d.ts +5 -0
  231. package/dist/FormField/form-field.types.d.ts +109 -0
  232. package/dist/FormField/form-field.types.js +1 -0
  233. package/dist/FormField/form-field.variants.d.ts +313 -0
  234. package/dist/FormField/form-field.variants.js +74 -0
  235. package/dist/FormField/index.d.ts +2 -0
  236. package/dist/FormField/index.js +1 -0
  237. package/dist/Icon/Icon.svelte +46 -0
  238. package/dist/Icon/Icon.svelte.d.ts +6 -0
  239. package/dist/Icon/icon.types.d.ts +49 -0
  240. package/dist/Icon/icon.types.js +1 -0
  241. package/dist/Icon/index.d.ts +2 -0
  242. package/dist/Icon/index.js +1 -0
  243. package/dist/Input/Input.svelte +199 -0
  244. package/dist/Input/Input.svelte.d.ts +26 -0
  245. package/dist/Input/index.d.ts +2 -0
  246. package/dist/Input/index.js +1 -0
  247. package/dist/Input/input.types.d.ts +113 -0
  248. package/dist/Input/input.types.js +1 -0
  249. package/dist/Input/input.variants.d.ts +398 -0
  250. package/dist/Input/input.variants.js +387 -0
  251. package/dist/Kbd/Kbd.svelte +45 -0
  252. package/dist/Kbd/Kbd.svelte.d.ts +5 -0
  253. package/dist/Kbd/index.d.ts +3 -0
  254. package/dist/Kbd/index.js +2 -0
  255. package/dist/Kbd/kbd.types.d.ts +91 -0
  256. package/dist/Kbd/kbd.types.js +1 -0
  257. package/dist/Kbd/kbd.variants.d.ts +180 -0
  258. package/dist/Kbd/kbd.variants.js +168 -0
  259. package/dist/Kbd/useKbd.svelte.d.ts +29 -0
  260. package/dist/Kbd/useKbd.svelte.js +248 -0
  261. package/dist/Link/Link.svelte +168 -0
  262. package/dist/Link/Link.svelte.d.ts +5 -0
  263. package/dist/Link/index.d.ts +2 -0
  264. package/dist/Link/index.js +1 -0
  265. package/dist/Link/link.types.d.ts +86 -0
  266. package/dist/Link/link.types.js +1 -0
  267. package/dist/Link/link.variants.d.ts +113 -0
  268. package/dist/Link/link.variants.js +43 -0
  269. package/dist/Modal/Modal.svelte +218 -0
  270. package/dist/Modal/Modal.svelte.d.ts +5 -0
  271. package/dist/Modal/ModalTriggerTestWrapper.svelte +10 -0
  272. package/dist/Modal/ModalTriggerTestWrapper.svelte.d.ts +18 -0
  273. package/dist/Modal/index.d.ts +2 -0
  274. package/dist/Modal/index.js +1 -0
  275. package/dist/Modal/modal.types.d.ts +155 -0
  276. package/dist/Modal/modal.types.js +1 -0
  277. package/dist/Modal/modal.variants.d.ts +303 -0
  278. package/dist/Modal/modal.variants.js +90 -0
  279. package/dist/Pagination/Pagination.svelte +253 -0
  280. package/dist/Pagination/Pagination.svelte.d.ts +6 -0
  281. package/dist/Pagination/index.d.ts +2 -0
  282. package/dist/Pagination/index.js +1 -0
  283. package/dist/Pagination/pagination.types.d.ts +191 -0
  284. package/dist/Pagination/pagination.types.js +1 -0
  285. package/dist/Pagination/pagination.variants.d.ts +160 -0
  286. package/dist/Pagination/pagination.variants.js +125 -0
  287. package/dist/PinInput/PinInput.svelte +162 -0
  288. package/dist/PinInput/PinInput.svelte.d.ts +6 -0
  289. package/dist/PinInput/index.d.ts +2 -0
  290. package/dist/PinInput/index.js +1 -0
  291. package/dist/PinInput/pin-input.types.d.ts +110 -0
  292. package/dist/PinInput/pin-input.types.js +1 -0
  293. package/dist/PinInput/pin-input.variants.d.ts +303 -0
  294. package/dist/PinInput/pin-input.variants.js +196 -0
  295. package/dist/Popover/Popover.svelte +122 -0
  296. package/dist/Popover/Popover.svelte.d.ts +6 -0
  297. package/dist/Popover/index.d.ts +2 -0
  298. package/dist/Popover/index.js +1 -0
  299. package/dist/Popover/popover.types.d.ts +58 -0
  300. package/dist/Popover/popover.types.js +1 -0
  301. package/dist/Popover/popover.variants.d.ts +53 -0
  302. package/dist/Popover/popover.variants.js +31 -0
  303. package/dist/Progress/Progress.svelte +135 -0
  304. package/dist/Progress/Progress.svelte.d.ts +6 -0
  305. package/dist/Progress/index.d.ts +2 -0
  306. package/dist/Progress/index.js +1 -0
  307. package/dist/Progress/progress.types.d.ts +71 -0
  308. package/dist/Progress/progress.types.js +1 -0
  309. package/dist/Progress/progress.variants.d.ts +513 -0
  310. package/dist/Progress/progress.variants.js +204 -0
  311. package/dist/RadioGroup/RadioGroup.svelte +226 -0
  312. package/dist/RadioGroup/RadioGroup.svelte.d.ts +6 -0
  313. package/dist/RadioGroup/index.d.ts +2 -0
  314. package/dist/RadioGroup/index.js +1 -0
  315. package/dist/RadioGroup/radio-group.types.d.ts +111 -0
  316. package/dist/RadioGroup/radio-group.types.js +1 -0
  317. package/dist/RadioGroup/radio-group.variants.d.ts +543 -0
  318. package/dist/RadioGroup/radio-group.variants.js +232 -0
  319. package/dist/Select/Select.svelte +461 -0
  320. package/dist/Select/Select.svelte.d.ts +6 -0
  321. package/dist/Select/index.d.ts +2 -0
  322. package/dist/Select/index.js +1 -0
  323. package/dist/Select/select.types.d.ts +263 -0
  324. package/dist/Select/select.types.js +1 -0
  325. package/dist/Select/select.variants.d.ts +713 -0
  326. package/dist/Select/select.variants.js +482 -0
  327. package/dist/SelectMenu/SelectMenu.svelte +637 -0
  328. package/dist/SelectMenu/SelectMenu.svelte.d.ts +5 -0
  329. package/dist/SelectMenu/SelectMenuFormFieldTestWrapper.svelte +11 -0
  330. package/dist/SelectMenu/SelectMenuFormFieldTestWrapper.svelte.d.ts +7 -0
  331. package/dist/SelectMenu/index.d.ts +2 -0
  332. package/dist/SelectMenu/index.js +1 -0
  333. package/dist/SelectMenu/select-menu.types.d.ts +326 -0
  334. package/dist/SelectMenu/select-menu.types.js +1 -0
  335. package/dist/SelectMenu/select-menu.variants.d.ts +795 -0
  336. package/dist/SelectMenu/select-menu.variants.js +70 -0
  337. package/dist/Separator/Separator.svelte +77 -0
  338. package/dist/Separator/Separator.svelte.d.ts +6 -0
  339. package/dist/Separator/index.d.ts +2 -0
  340. package/dist/Separator/index.js +1 -0
  341. package/dist/Separator/separator.types.d.ts +53 -0
  342. package/dist/Separator/separator.types.js +1 -0
  343. package/dist/Separator/separator.variants.d.ts +509 -0
  344. package/dist/Separator/separator.variants.js +110 -0
  345. package/dist/Skeleton/Skeleton.svelte +39 -0
  346. package/dist/Skeleton/Skeleton.svelte.d.ts +5 -0
  347. package/dist/Skeleton/index.d.ts +2 -0
  348. package/dist/Skeleton/index.js +1 -0
  349. package/dist/Skeleton/skeleton.types.d.ts +27 -0
  350. package/dist/Skeleton/skeleton.types.js +1 -0
  351. package/dist/Skeleton/skeleton.variants.d.ts +18 -0
  352. package/dist/Skeleton/skeleton.variants.js +12 -0
  353. package/dist/Slideover/Slideover.svelte +212 -0
  354. package/dist/Slideover/Slideover.svelte.d.ts +5 -0
  355. package/dist/Slideover/SlideoverTriggerTestWrapper.svelte +10 -0
  356. package/dist/Slideover/SlideoverTriggerTestWrapper.svelte.d.ts +18 -0
  357. package/dist/Slideover/index.d.ts +2 -0
  358. package/dist/Slideover/index.js +1 -0
  359. package/dist/Slideover/slideover.types.d.ts +154 -0
  360. package/dist/Slideover/slideover.types.js +1 -0
  361. package/dist/Slideover/slideover.variants.d.ts +298 -0
  362. package/dist/Slideover/slideover.variants.js +145 -0
  363. package/dist/Slider/Slider.svelte +129 -0
  364. package/dist/Slider/Slider.svelte.d.ts +6 -0
  365. package/dist/Slider/index.d.ts +2 -0
  366. package/dist/Slider/index.js +1 -0
  367. package/dist/Slider/slider.types.d.ts +55 -0
  368. package/dist/Slider/slider.types.js +1 -0
  369. package/dist/Slider/slider.variants.d.ts +383 -0
  370. package/dist/Slider/slider.variants.js +102 -0
  371. package/dist/Stepper/Stepper.svelte +254 -0
  372. package/dist/Stepper/Stepper.svelte.d.ts +5 -0
  373. package/dist/Stepper/index.d.ts +2 -0
  374. package/dist/Stepper/index.js +1 -0
  375. package/dist/Stepper/stepper.types.d.ts +223 -0
  376. package/dist/Stepper/stepper.types.js +1 -0
  377. package/dist/Stepper/stepper.variants.d.ts +428 -0
  378. package/dist/Stepper/stepper.variants.js +204 -0
  379. package/dist/Switch/Switch.svelte +150 -0
  380. package/dist/Switch/Switch.svelte.d.ts +6 -0
  381. package/dist/Switch/index.d.ts +2 -0
  382. package/dist/Switch/index.js +1 -0
  383. package/dist/Switch/switch.types.d.ts +80 -0
  384. package/dist/Switch/switch.types.js +1 -0
  385. package/dist/Switch/switch.variants.d.ts +433 -0
  386. package/dist/Switch/switch.variants.js +171 -0
  387. package/dist/Table/Table.svelte +667 -0
  388. package/dist/Table/Table.svelte.d.ts +26 -0
  389. package/dist/Table/index.d.ts +2 -0
  390. package/dist/Table/index.js +1 -0
  391. package/dist/Table/table.types.d.ts +202 -0
  392. package/dist/Table/table.types.js +1 -0
  393. package/dist/Table/table.utils.d.ts +54 -0
  394. package/dist/Table/table.utils.js +167 -0
  395. package/dist/Table/table.variants.d.ts +205 -0
  396. package/dist/Table/table.variants.js +126 -0
  397. package/dist/Tabs/Tabs.svelte +188 -0
  398. package/dist/Tabs/Tabs.svelte.d.ts +6 -0
  399. package/dist/Tabs/index.d.ts +2 -0
  400. package/dist/Tabs/index.js +1 -0
  401. package/dist/Tabs/tabs.types.d.ts +207 -0
  402. package/dist/Tabs/tabs.types.js +1 -0
  403. package/dist/Tabs/tabs.variants.d.ts +298 -0
  404. package/dist/Tabs/tabs.variants.js +251 -0
  405. package/dist/Textarea/Textarea.svelte +215 -0
  406. package/dist/Textarea/Textarea.svelte.d.ts +5 -0
  407. package/dist/Textarea/index.d.ts +2 -0
  408. package/dist/Textarea/index.js +1 -0
  409. package/dist/Textarea/textarea.types.d.ts +103 -0
  410. package/dist/Textarea/textarea.types.js +1 -0
  411. package/dist/Textarea/textarea.variants.d.ts +403 -0
  412. package/dist/Textarea/textarea.variants.js +404 -0
  413. package/dist/ThemeModeButton/ThemeModeButton.svelte +74 -0
  414. package/dist/ThemeModeButton/ThemeModeButton.svelte.d.ts +5 -0
  415. package/dist/ThemeModeButton/index.d.ts +2 -0
  416. package/dist/ThemeModeButton/index.js +1 -0
  417. package/dist/ThemeModeButton/theme-mode-button.types.d.ts +69 -0
  418. package/dist/ThemeModeButton/theme-mode-button.types.js +1 -0
  419. package/dist/ThemeModeButton/theme-mode-button.variants.d.ts +21 -0
  420. package/dist/ThemeModeButton/theme-mode-button.variants.js +17 -0
  421. package/dist/Timeline/Timeline.svelte +116 -0
  422. package/dist/Timeline/Timeline.svelte.d.ts +5 -0
  423. package/dist/Timeline/index.d.ts +2 -0
  424. package/dist/Timeline/index.js +1 -0
  425. package/dist/Timeline/timeline.types.d.ts +138 -0
  426. package/dist/Timeline/timeline.types.js +1 -0
  427. package/dist/Timeline/timeline.variants.d.ts +413 -0
  428. package/dist/Timeline/timeline.variants.js +201 -0
  429. package/dist/Toast/Toaster.svelte +619 -0
  430. package/dist/Toast/Toaster.svelte.d.ts +5 -0
  431. package/dist/Toast/index.d.ts +4 -0
  432. package/dist/Toast/index.js +2 -0
  433. package/dist/Toast/toast.d.ts +38 -0
  434. package/dist/Toast/toast.js +73 -0
  435. package/dist/Toast/toast.types.d.ts +19 -0
  436. package/dist/Toast/toast.types.js +1 -0
  437. package/dist/Toast/toast.variants.d.ts +7 -0
  438. package/dist/Toast/toast.variants.js +5 -0
  439. package/dist/Tooltip/Tooltip.svelte +151 -0
  440. package/dist/Tooltip/Tooltip.svelte.d.ts +6 -0
  441. package/dist/Tooltip/TooltipTestWrapper.svelte +8 -0
  442. package/dist/Tooltip/TooltipTestWrapper.svelte.d.ts +4 -0
  443. package/dist/Tooltip/index.d.ts +2 -0
  444. package/dist/Tooltip/index.js +1 -0
  445. package/dist/Tooltip/tooltip.types.d.ts +62 -0
  446. package/dist/Tooltip/tooltip.types.js +1 -0
  447. package/dist/Tooltip/tooltip.variants.d.ts +68 -0
  448. package/dist/Tooltip/tooltip.variants.js +35 -0
  449. package/dist/User/User.svelte +98 -0
  450. package/dist/User/User.svelte.d.ts +5 -0
  451. package/dist/User/index.d.ts +2 -0
  452. package/dist/User/index.js +1 -0
  453. package/dist/User/user.types.d.ts +78 -0
  454. package/dist/User/user.types.js +1 -0
  455. package/dist/User/user.variants.d.ts +368 -0
  456. package/dist/User/user.variants.js +85 -0
  457. package/dist/config.d.ts +73 -0
  458. package/dist/config.js +108 -0
  459. package/dist/hooks/HookContextProbe.svelte +7 -0
  460. package/dist/hooks/HookContextProbe.svelte.d.ts +18 -0
  461. package/dist/hooks/HookContextProvider.svelte +9 -0
  462. package/dist/hooks/HookContextProvider.svelte.d.ts +18 -0
  463. package/dist/hooks/HookEmitProbe.svelte +14 -0
  464. package/dist/hooks/HookEmitProbe.svelte.d.ts +18 -0
  465. package/dist/hooks/index.d.ts +14 -0
  466. package/dist/hooks/index.js +7 -0
  467. package/dist/hooks/useClickOutside.svelte.d.ts +31 -0
  468. package/dist/hooks/useClickOutside.svelte.js +37 -0
  469. package/dist/hooks/useClipboard.svelte.d.ts +30 -0
  470. package/dist/hooks/useClipboard.svelte.js +45 -0
  471. package/dist/hooks/useDebounce.svelte.d.ts +36 -0
  472. package/dist/hooks/useDebounce.svelte.js +56 -0
  473. package/dist/hooks/useEscapeKeydown.svelte.d.ts +31 -0
  474. package/dist/hooks/useEscapeKeydown.svelte.js +37 -0
  475. package/dist/hooks/useFormField.svelte.d.ts +54 -0
  476. package/dist/hooks/useFormField.svelte.js +65 -0
  477. package/dist/hooks/useInfiniteScroll.svelte.d.ts +57 -0
  478. package/dist/hooks/useInfiniteScroll.svelte.js +69 -0
  479. package/dist/hooks/useMediaQuery.svelte.d.ts +31 -0
  480. package/dist/hooks/useMediaQuery.svelte.js +38 -0
  481. package/dist/index.d.ts +56 -0
  482. package/dist/index.js +57 -0
  483. package/dist/theme.css +680 -0
  484. package/package.json +237 -0
@@ -0,0 +1,73 @@
1
+ import { mount, unmount } from 'svelte';
2
+ import { toast as sonnerToast } from 'svelte-sonner';
3
+ import Avatar from '../Avatar/Avatar.svelte';
4
+ import Icon from '../Icon/Icon.svelte';
5
+ function createIconComponent(name) {
6
+ function SvelteSonnerIcon(anchor) {
7
+ if (!anchor.parentNode)
8
+ return { destroy() { } };
9
+ const instance = mount(Icon, {
10
+ target: anchor.parentNode,
11
+ anchor,
12
+ props: { name, size: '18' }
13
+ });
14
+ return {
15
+ destroy() {
16
+ unmount(instance);
17
+ }
18
+ };
19
+ }
20
+ return SvelteSonnerIcon;
21
+ }
22
+ function createAvatarComponent(props) {
23
+ function SvelteSonnerAvatar(anchor) {
24
+ if (!anchor.parentNode)
25
+ return { destroy() { } };
26
+ const instance = mount(Avatar, {
27
+ target: anchor.parentNode,
28
+ anchor,
29
+ props: { size: 'sm', ...props }
30
+ });
31
+ return {
32
+ destroy() {
33
+ unmount(instance);
34
+ }
35
+ };
36
+ }
37
+ return SvelteSonnerAvatar;
38
+ }
39
+ function resolveOptions(data) {
40
+ if (!data)
41
+ return data;
42
+ const { color, icon, avatar, ...rest } = data;
43
+ const resolved = { ...rest };
44
+ // Color -> class
45
+ if (color) {
46
+ const existing = resolved.class ?? '';
47
+ resolved.class = `${existing} ps-color-${color}`.trim();
48
+ }
49
+ // Avatar takes priority over icon
50
+ if (avatar) {
51
+ resolved.icon = createAvatarComponent(avatar);
52
+ }
53
+ else if (typeof icon === 'string') {
54
+ resolved.icon = createIconComponent(icon);
55
+ }
56
+ else if (icon !== undefined) {
57
+ resolved.icon = icon;
58
+ }
59
+ return resolved;
60
+ }
61
+ function toastFn(message, data) {
62
+ return sonnerToast(message, resolveOptions(data));
63
+ }
64
+ toastFn.success = (message, data) => sonnerToast.success(message, resolveOptions(data));
65
+ toastFn.error = (message, data) => sonnerToast.error(message, resolveOptions(data));
66
+ toastFn.warning = (message, data) => sonnerToast.warning(message, resolveOptions(data));
67
+ toastFn.info = (message, data) => sonnerToast.info(message, resolveOptions(data));
68
+ toastFn.loading = (message, data) => sonnerToast.loading(message, resolveOptions(data));
69
+ toastFn.promise = sonnerToast.promise;
70
+ toastFn.dismiss = sonnerToast.dismiss;
71
+ toastFn.custom = sonnerToast.custom;
72
+ toastFn.message = sonnerToast.message;
73
+ export { toastFn as toast };
@@ -0,0 +1,19 @@
1
+ import type { ToasterProps as SonnerToasterProps } from 'svelte-sonner';
2
+ import type { ClassNameValue } from 'tailwind-merge';
3
+ import type { ToastVariant } from './toast.variants.js';
4
+ export type ToasterProps = Omit<SonnerToasterProps, 'class' | 'toastOptions' | 'richColors'> & {
5
+ /**
6
+ * The visual style variant.
7
+ * - `outline`: Border with surface background, semantic border accent per type (default)
8
+ * - `soft`: Light tinted background per type
9
+ * - `subtle`: Light tinted background + semantic border per type
10
+ * - `solid`: Full semantic color background per type
11
+ * - `accent`: Left color stripe with surface background
12
+ * @default 'outline'
13
+ */
14
+ variant?: ToastVariant;
15
+ /**
16
+ * Additional CSS classes for the toaster container.
17
+ */
18
+ class?: ClassNameValue;
19
+ };
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,7 @@
1
+ export type ToastVariant = 'solid' | 'outline' | 'soft' | 'subtle' | 'accent';
2
+ export type ToastColor = 'primary' | 'secondary' | 'tertiary' | 'success' | 'warning' | 'error' | 'info';
3
+ export declare const toastDefaults: {
4
+ defaultVariants: {
5
+ variant: ToastVariant;
6
+ };
7
+ };
@@ -0,0 +1,5 @@
1
+ export const toastDefaults = {
2
+ defaultVariants: {
3
+ variant: 'outline'
4
+ }
5
+ };
@@ -0,0 +1,151 @@
1
+ <script lang="ts" module>
2
+ import type { TooltipProps } from './tooltip.types.js'
3
+
4
+ export type Props = TooltipProps
5
+ </script>
6
+
7
+ <script lang="ts">
8
+ import { Tooltip } from 'bits-ui'
9
+ import { getComponentConfig } from '../config.js'
10
+ import Kbd from '../Kbd/Kbd.svelte'
11
+ import { tooltipDefaults, tooltipVariants } from './tooltip.variants.js'
12
+
13
+ const config = getComponentConfig('tooltip', tooltipDefaults)
14
+
15
+ let {
16
+ ref = $bindable(null),
17
+ open = $bindable(false),
18
+ onOpenChange,
19
+ delayDuration,
20
+ disableHoverableContent,
21
+ disableCloseOnTriggerClick,
22
+ ignoreNonKeyboardFocus,
23
+ disabled = false,
24
+ side = 'bottom',
25
+ sideOffset = 8,
26
+ align = 'center',
27
+ alignOffset = 0,
28
+ avoidCollisions = true,
29
+ collisionBoundary,
30
+ collisionPadding = 8,
31
+ sticky = 'partial',
32
+ hideWhenDetached = false,
33
+ onEscapeKeydown,
34
+ forceMount,
35
+ text,
36
+ kbds,
37
+ arrow = false,
38
+ transition = config.defaultVariants.transition ?? true,
39
+ portal = true,
40
+ ui,
41
+ class: className,
42
+ children,
43
+ content: contentSlot,
44
+ ...restProps
45
+ }: Props = $props()
46
+
47
+ // Pre-compute booleans
48
+ const hasText = $derived(!!text)
49
+ const hasKbds = $derived(!!kbds?.length)
50
+ const hasContent = $derived(hasText || hasKbds || !!contentSlot)
51
+
52
+ // Compute variant classes
53
+ const variantSlots = $derived(tooltipVariants({ transition }))
54
+ const kbdsSize = (config.slots.kbdsSize ?? 'sm') as 'sm' | 'md' | 'lg'
55
+ const classes = $derived({
56
+ content: variantSlots.content({ class: [config.slots.content, ui?.content] }),
57
+ arrow: variantSlots.arrow({ class: [config.slots.arrow, ui?.arrow] }),
58
+ text: variantSlots.text({ class: [config.slots.text, ui?.text] }),
59
+ kbds: variantSlots.kbds({ class: [config.slots.kbds, ui?.kbds] })
60
+ })
61
+
62
+ // Arrow props
63
+ const arrowProps = $derived.by(() => {
64
+ if (typeof arrow === 'object') {
65
+ return { width: 12, height: 6, ...arrow }
66
+ }
67
+ return { width: 12, height: 6 }
68
+ })
69
+ </script>
70
+
71
+ {#snippet tooltipContent()}
72
+ {#if contentSlot}
73
+ {@render contentSlot()}
74
+ {:else}
75
+ {#if hasText}
76
+ <span class={classes.text}>{text}</span>
77
+ {/if}
78
+
79
+ {#if hasKbds}
80
+ <span class={classes.kbds}>
81
+ {#each kbds as kbd, index (index)}
82
+ {#if index > 0}
83
+ <span class="mx-0.5 text-inverse-on-surface/60">·</span>
84
+ {/if}
85
+ {#if typeof kbd === 'string'}
86
+ <Kbd value={kbd} size={kbdsSize} variant="soft" color="surface" />
87
+ {:else}
88
+ <Kbd size={kbdsSize} variant="soft" color="surface" {...kbd} />
89
+ {/if}
90
+ {/each}
91
+ </span>
92
+ {/if}
93
+ {/if}
94
+ {/snippet}
95
+
96
+ {#snippet tooltipContentEl()}
97
+ <Tooltip.Content
98
+ bind:ref
99
+ {side}
100
+ {sideOffset}
101
+ {align}
102
+ {alignOffset}
103
+ {avoidCollisions}
104
+ {collisionBoundary}
105
+ {collisionPadding}
106
+ {sticky}
107
+ {hideWhenDetached}
108
+ {onEscapeKeydown}
109
+ {forceMount}
110
+ class={classes.content}
111
+ {...restProps}
112
+ >
113
+ {@render tooltipContent()}
114
+
115
+ {#if arrow}
116
+ <Tooltip.Arrow
117
+ width={arrowProps.width}
118
+ height={arrowProps.height}
119
+ class={classes.arrow}
120
+ />
121
+ {/if}
122
+ </Tooltip.Content>
123
+ {/snippet}
124
+
125
+ <Tooltip.Provider {delayDuration} {disableHoverableContent}>
126
+ <Tooltip.Root
127
+ bind:open
128
+ {onOpenChange}
129
+ {disableCloseOnTriggerClick}
130
+ {ignoreNonKeyboardFocus}
131
+ disabled={disabled || !hasContent}
132
+ >
133
+ {#if children}
134
+ <Tooltip.Trigger>
135
+ {#snippet child({ props })}
136
+ <span {...props} class={[className]}>
137
+ {@render children({ open })}
138
+ </span>
139
+ {/snippet}
140
+ </Tooltip.Trigger>
141
+ {/if}
142
+
143
+ {#if portal}
144
+ <Tooltip.Portal>
145
+ {@render tooltipContentEl()}
146
+ </Tooltip.Portal>
147
+ {:else}
148
+ {@render tooltipContentEl()}
149
+ {/if}
150
+ </Tooltip.Root>
151
+ </Tooltip.Provider>
@@ -0,0 +1,6 @@
1
+ import type { TooltipProps } from './tooltip.types.js';
2
+ export type Props = TooltipProps;
3
+ import { Tooltip } from 'bits-ui';
4
+ declare const Tooltip: import("svelte").Component<TooltipProps, {}, "ref" | "open">;
5
+ type Tooltip = ReturnType<typeof Tooltip>;
6
+ export default Tooltip;
@@ -0,0 +1,8 @@
1
+ <script lang="ts">
2
+ import Tooltip from './Tooltip.svelte'
3
+ import type { TooltipProps } from './tooltip.types.js'
4
+
5
+ let props: TooltipProps = $props()
6
+ </script>
7
+
8
+ <Tooltip {...props} />
@@ -0,0 +1,4 @@
1
+ import type { TooltipProps } from './tooltip.types.js';
2
+ declare const TooltipTestWrapper: import("svelte").Component<TooltipProps, {}, "">;
3
+ type TooltipTestWrapper = ReturnType<typeof TooltipTestWrapper>;
4
+ export default TooltipTestWrapper;
@@ -0,0 +1,2 @@
1
+ export { default as Tooltip } from './Tooltip.svelte';
2
+ export type { TooltipProps } from './tooltip.types.js';
@@ -0,0 +1 @@
1
+ export { default as Tooltip } from './Tooltip.svelte';
@@ -0,0 +1,62 @@
1
+ import type { TooltipArrowPropsWithoutHTML, TooltipContentPropsWithoutHTML, TooltipProviderPropsWithoutHTML, TooltipRootPropsWithoutHTML } from 'bits-ui';
2
+ import type { Snippet } from 'svelte';
3
+ import type { ClassNameValue } from 'tailwind-merge';
4
+ import type { KbdProps } from '../Kbd/kbd.types.js';
5
+ import type { TooltipSlots, TooltipVariantProps } from './tooltip.variants.js';
6
+ export type TooltipAlign = 'start' | 'center' | 'end';
7
+ type ProviderProps = Pick<TooltipProviderPropsWithoutHTML, 'delayDuration' | 'disableHoverableContent'>;
8
+ type RootProps = Pick<TooltipRootPropsWithoutHTML, 'open' | 'onOpenChange' | 'disableCloseOnTriggerClick' | 'ignoreNonKeyboardFocus' | 'disabled'>;
9
+ type ContentProps = Pick<TooltipContentPropsWithoutHTML, 'side' | 'sideOffset' | 'align' | 'alignOffset' | 'avoidCollisions' | 'collisionBoundary' | 'collisionPadding' | 'sticky' | 'hideWhenDetached' | 'onEscapeKeydown' | 'forceMount'>;
10
+ export interface TooltipProps extends ProviderProps, RootProps, ContentProps {
11
+ /** Custom data attributes are forwarded to the content element. */
12
+ [key: `data-${string}`]: string | number | boolean | null | undefined;
13
+ /**
14
+ * Bindable reference to the content DOM element.
15
+ */
16
+ ref?: HTMLElement | null;
17
+ /**
18
+ * The text content of the tooltip.
19
+ */
20
+ text?: string;
21
+ /**
22
+ * The keyboard keys to display in the tooltip.
23
+ * Can be an array of key strings or KbdProps objects.
24
+ * @example ['meta', 'k'] or [{ value: 'meta' }, { value: 'k' }]
25
+ */
26
+ kbds?: (string | Pick<KbdProps, 'value' | 'size' | 'variant' | 'color'>)[];
27
+ /**
28
+ * Display an arrow alongside the tooltip.
29
+ * Can be a boolean or arrow props for customization.
30
+ * @default false
31
+ */
32
+ arrow?: boolean | Pick<TooltipArrowPropsWithoutHTML, 'width' | 'height'>;
33
+ /**
34
+ * Animate the tooltip on open and close.
35
+ * @default true
36
+ */
37
+ transition?: TooltipVariantProps['transition'];
38
+ /**
39
+ * Render the tooltip in a portal.
40
+ * @default true
41
+ */
42
+ portal?: boolean;
43
+ /**
44
+ * Additional CSS class for the trigger wrapper.
45
+ */
46
+ class?: ClassNameValue;
47
+ /**
48
+ * Override classes for tooltip slots.
49
+ */
50
+ ui?: Partial<Record<TooltipSlots, ClassNameValue>>;
51
+ /**
52
+ * Trigger content (the element that triggers the tooltip).
53
+ */
54
+ children?: Snippet<[{
55
+ open: boolean;
56
+ }]>;
57
+ /**
58
+ * Custom tooltip content.
59
+ */
60
+ content?: Snippet;
61
+ }
62
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,68 @@
1
+ import { type VariantProps } from 'tailwind-variants';
2
+ export declare const tooltipVariants: import("tailwind-variants").TVReturnType<{
3
+ transition: {
4
+ true: {
5
+ content: string[];
6
+ };
7
+ };
8
+ }, {
9
+ content: string[];
10
+ arrow: string;
11
+ text: string;
12
+ kbds: string;
13
+ kbdsSize: string;
14
+ }, undefined, {
15
+ transition: {
16
+ true: {
17
+ content: string[];
18
+ };
19
+ };
20
+ }, {
21
+ content: string[];
22
+ arrow: string;
23
+ text: string;
24
+ kbds: string;
25
+ kbdsSize: string;
26
+ }, import("tailwind-variants").TVReturnType<{
27
+ transition: {
28
+ true: {
29
+ content: string[];
30
+ };
31
+ };
32
+ }, {
33
+ content: string[];
34
+ arrow: string;
35
+ text: string;
36
+ kbds: string;
37
+ kbdsSize: string;
38
+ }, undefined, unknown, unknown, undefined>>;
39
+ export type TooltipVariantProps = VariantProps<typeof tooltipVariants>;
40
+ export type TooltipSlots = keyof ReturnType<typeof tooltipVariants>;
41
+ export declare const tooltipDefaults: {
42
+ defaultVariants: import("tailwind-variants").TVDefaultVariants<{
43
+ transition: {
44
+ true: {
45
+ content: string[];
46
+ };
47
+ };
48
+ }, {
49
+ content: string[];
50
+ arrow: string;
51
+ text: string;
52
+ kbds: string;
53
+ kbdsSize: string;
54
+ }, {
55
+ transition: {
56
+ true: {
57
+ content: string[];
58
+ };
59
+ };
60
+ }, {
61
+ content: string[];
62
+ arrow: string;
63
+ text: string;
64
+ kbds: string;
65
+ kbdsSize: string;
66
+ }>;
67
+ slots: Partial<Record<TooltipSlots, string>>;
68
+ };
@@ -0,0 +1,35 @@
1
+ import { tv } from 'tailwind-variants';
2
+ export const tooltipVariants = tv({
3
+ slots: {
4
+ content: [
5
+ 'z-50 flex items-center gap-1.5',
6
+ 'bg-inverse-surface text-inverse-on-surface',
7
+ 'shadow-sm rounded-md',
8
+ 'px-2.5 py-1.5 text-xs',
9
+ 'select-none pointer-events-auto'
10
+ ],
11
+ arrow: 'fill-inverse-surface text-inverse-surface',
12
+ text: 'truncate',
13
+ kbds: 'hidden lg:inline-flex items-center shrink-0 gap-0.5',
14
+ kbdsSize: 'sm'
15
+ },
16
+ variants: {
17
+ transition: {
18
+ true: {
19
+ content: [
20
+ 'data-[state=delayed-open]:animate-in data-[state=delayed-open]:fade-in-0 data-[state=delayed-open]:zoom-in-95',
21
+ 'data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95',
22
+ 'data-[side=top]:slide-in-from-bottom-2 data-[side=right]:slide-in-from-left-2',
23
+ 'data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2'
24
+ ]
25
+ }
26
+ }
27
+ },
28
+ defaultVariants: {
29
+ transition: true
30
+ }
31
+ });
32
+ export const tooltipDefaults = {
33
+ defaultVariants: tooltipVariants.defaultVariants,
34
+ slots: {}
35
+ };
@@ -0,0 +1,98 @@
1
+ <script lang="ts" module>
2
+ import type { UserProps } from './user.types.js'
3
+
4
+ export type Props = UserProps
5
+ </script>
6
+
7
+ <script lang="ts">
8
+ import Avatar from '../Avatar/Avatar.svelte'
9
+ import Chip from '../Chip/Chip.svelte'
10
+ import { getComponentConfig } from '../config.js'
11
+ import Link from '../Link/Link.svelte'
12
+ import { userDefaults, userVariants } from './user.variants.js'
13
+
14
+ const config = getComponentConfig('user', userDefaults)
15
+
16
+ let {
17
+ ref = $bindable(null),
18
+ as = 'div',
19
+ ui,
20
+ name,
21
+ description,
22
+ avatar,
23
+ chip,
24
+ size = config.defaultVariants.size,
25
+ orientation = config.defaultVariants.orientation,
26
+ href,
27
+ class: className,
28
+ avatarSlot,
29
+ nameSlot,
30
+ descriptionSlot,
31
+ ...restProps
32
+ }: Props = $props()
33
+
34
+ const isClickable = $derived(!!href || !!restProps.onclick)
35
+
36
+ const classes = $derived.by(() => {
37
+ const slots = userVariants({ size, orientation, clickable: isClickable })
38
+ return {
39
+ root: slots.root({ class: [config.slots.root, className, ui?.root] }),
40
+ wrapper: slots.wrapper({ class: [config.slots.wrapper, ui?.wrapper] }),
41
+ name: slots.name({ class: [config.slots.name, ui?.name] }),
42
+ description: slots.description({ class: [config.slots.description, ui?.description] }),
43
+ avatar: slots.avatar({ class: [config.slots.avatar, ui?.avatar] })
44
+ }
45
+ })
46
+
47
+ const mergedAvatarProps = $derived(
48
+ avatar ? { alt: name, size: size as typeof avatar.size, ...avatar } : undefined
49
+ )
50
+
51
+ const chipProps = $derived(chip && avatar ? (chip === true ? {} : chip) : null)
52
+ </script>
53
+
54
+ {#snippet userContent()}
55
+ {#if avatarSlot}
56
+ {@render avatarSlot()}
57
+ {:else if mergedAvatarProps}
58
+ {#if chipProps}
59
+ <Chip {size} inset {...chipProps}>
60
+ <Avatar {...mergedAvatarProps} class={classes.avatar} />
61
+ </Chip>
62
+ {:else}
63
+ <Avatar {...mergedAvatarProps} class={classes.avatar} />
64
+ {/if}
65
+ {/if}
66
+
67
+ {#if name || description || nameSlot || descriptionSlot}
68
+ <div class={classes.wrapper}>
69
+ {#if nameSlot}
70
+ {@render nameSlot()}
71
+ {:else if name}
72
+ <p class={classes.name}>{name}</p>
73
+ {/if}
74
+
75
+ {#if descriptionSlot}
76
+ {@render descriptionSlot()}
77
+ {:else if description}
78
+ <p class={classes.description}>{description}</p>
79
+ {/if}
80
+ </div>
81
+ {/if}
82
+ {/snippet}
83
+
84
+ {#if href}
85
+ <Link bind:ref {href} raw class={classes.root} data-orientation={orientation} {...restProps}>
86
+ {@render userContent()}
87
+ </Link>
88
+ {:else}
89
+ <svelte:element
90
+ this={as}
91
+ bind:this={ref}
92
+ class={classes.root}
93
+ data-orientation={orientation}
94
+ {...restProps}
95
+ >
96
+ {@render userContent()}
97
+ </svelte:element>
98
+ {/if}
@@ -0,0 +1,5 @@
1
+ import type { UserProps } from './user.types.js';
2
+ export type Props = UserProps;
3
+ declare const User: import("svelte").Component<UserProps, {}, "ref">;
4
+ type User = ReturnType<typeof User>;
5
+ export default User;
@@ -0,0 +1,2 @@
1
+ export { default as User } from './User.svelte';
2
+ export type { UserProps } from './user.types.js';
@@ -0,0 +1 @@
1
+ export { default as User } from './User.svelte';
@@ -0,0 +1,78 @@
1
+ import type { Snippet } from 'svelte';
2
+ import type { HTMLAttributes } from 'svelte/elements';
3
+ import type { ClassNameValue } from 'tailwind-merge';
4
+ import type { AvatarProps } from '../Avatar/avatar.types.js';
5
+ import type { ChipProps } from '../Chip/chip.types.js';
6
+ import type { LinkProps } from '../Link/link.types.js';
7
+ import type { UserSlots, UserVariantProps } from './user.variants.js';
8
+ export type UserProps = Omit<HTMLAttributes<HTMLElement>, 'class'> & {
9
+ /**
10
+ * Bindable reference to the root DOM element.
11
+ */
12
+ ref?: HTMLElement | null;
13
+ /**
14
+ * Sets the HTML element type to render.
15
+ * Ignored when `href` is provided.
16
+ * @default 'div'
17
+ */
18
+ as?: keyof HTMLElementTagNameMap;
19
+ /**
20
+ * Override styles for specific user slots.
21
+ * Available slots: root, wrapper, name, description, avatar.
22
+ */
23
+ ui?: Partial<Record<UserSlots, ClassNameValue>>;
24
+ /**
25
+ * Sets the display name rendered as primary text.
26
+ */
27
+ name?: string;
28
+ /**
29
+ * Sets the secondary text displayed below the name.
30
+ */
31
+ description?: string;
32
+ /**
33
+ * Configures the avatar displayed on the leading side.
34
+ * Passed directly to the Avatar component.
35
+ */
36
+ avatar?: AvatarProps;
37
+ /**
38
+ * Configures a status chip wrapping the avatar.
39
+ * Pass `true` for default chip or `ChipProps` to customize.
40
+ * @default false
41
+ */
42
+ chip?: boolean | ChipProps;
43
+ /**
44
+ * Controls the size of the component.
45
+ * Affects text sizes and avatar size mapping.
46
+ * @default 'md'
47
+ */
48
+ size?: NonNullable<UserVariantProps['size']>;
49
+ /**
50
+ * Sets the layout orientation.
51
+ * @default 'horizontal'
52
+ */
53
+ orientation?: NonNullable<UserVariantProps['orientation']>;
54
+ /**
55
+ * Sets the destination URL.
56
+ * Renders the component as an anchor via Link when provided.
57
+ */
58
+ href?: LinkProps['href'];
59
+ /**
60
+ * Additional CSS classes for the root element.
61
+ */
62
+ class?: ClassNameValue;
63
+ /**
64
+ * Custom avatar content slot.
65
+ * Takes precedence over `avatar` prop.
66
+ */
67
+ avatarSlot?: Snippet;
68
+ /**
69
+ * Custom name content slot.
70
+ * Takes precedence over `name` prop.
71
+ */
72
+ nameSlot?: Snippet;
73
+ /**
74
+ * Custom description content slot.
75
+ * Takes precedence over `description` prop.
76
+ */
77
+ descriptionSlot?: Snippet;
78
+ };
@@ -0,0 +1 @@
1
+ export {};