@kayord/ui 0.19.0 → 0.19.2

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 (401) hide show
  1. package/dist/components/custom/action/Actions.svelte +1 -1
  2. package/dist/components/custom/combobox/Combobox.svelte.d.ts +1 -1
  3. package/dist/components/ui/accordion/accordion-content.svelte +4 -3
  4. package/dist/components/ui/accordion/accordion-item.svelte +6 -1
  5. package/dist/components/ui/accordion/accordion-root.svelte +7 -0
  6. package/dist/components/ui/accordion/accordion-root.svelte.d.ts +4 -0
  7. package/dist/components/ui/accordion/accordion-trigger.svelte +8 -5
  8. package/dist/components/ui/accordion/accordion-trigger.svelte.d.ts +2 -1
  9. package/dist/components/ui/accordion/index.d.ts +1 -2
  10. package/dist/components/ui/accordion/index.js +1 -2
  11. package/dist/components/ui/alert/alert-description.svelte +10 -3
  12. package/dist/components/ui/alert/alert-description.svelte.d.ts +1 -1
  13. package/dist/components/ui/alert/alert-title.svelte +4 -9
  14. package/dist/components/ui/alert/alert-title.svelte.d.ts +2 -5
  15. package/dist/components/ui/alert/alert.svelte +6 -6
  16. package/dist/components/ui/alert/alert.svelte.d.ts +3 -3
  17. package/dist/components/ui/alert-dialog/alert-dialog-action.svelte +6 -1
  18. package/dist/components/ui/alert-dialog/alert-dialog-cancel.svelte +2 -1
  19. package/dist/components/ui/alert-dialog/alert-dialog-content.svelte +5 -4
  20. package/dist/components/ui/alert-dialog/alert-dialog-content.svelte.d.ts +3 -2
  21. package/dist/components/ui/alert-dialog/alert-dialog-description.svelte +6 -1
  22. package/dist/components/ui/alert-dialog/alert-dialog-footer.svelte +3 -3
  23. package/dist/components/ui/alert-dialog/alert-dialog-footer.svelte.d.ts +1 -1
  24. package/dist/components/ui/alert-dialog/alert-dialog-header.svelte +7 -3
  25. package/dist/components/ui/alert-dialog/alert-dialog-header.svelte.d.ts +1 -1
  26. package/dist/components/ui/alert-dialog/alert-dialog-overlay.svelte +2 -1
  27. package/dist/components/ui/alert-dialog/alert-dialog-title.svelte +7 -2
  28. package/dist/components/ui/alert-dialog/alert-dialog-trigger.svelte +7 -0
  29. package/dist/components/ui/alert-dialog/alert-dialog-trigger.svelte.d.ts +4 -0
  30. package/dist/components/ui/alert-dialog/index.d.ts +1 -2
  31. package/dist/components/ui/alert-dialog/index.js +1 -1
  32. package/dist/components/ui/aspect-ratio/aspect-ratio.svelte +7 -0
  33. package/dist/components/ui/aspect-ratio/aspect-ratio.svelte.d.ts +4 -0
  34. package/dist/components/ui/aspect-ratio/index.d.ts +1 -2
  35. package/dist/components/ui/aspect-ratio/index.js +1 -2
  36. package/dist/components/ui/avatar/avatar-fallback.svelte +2 -1
  37. package/dist/components/ui/avatar/avatar-image.svelte +6 -1
  38. package/dist/components/ui/avatar/avatar.svelte +2 -1
  39. package/dist/components/ui/badge/badge.svelte +8 -7
  40. package/dist/components/ui/badge/badge.svelte.d.ts +3 -3
  41. package/dist/components/ui/breadcrumb/breadcrumb-ellipsis.svelte +4 -4
  42. package/dist/components/ui/breadcrumb/breadcrumb-ellipsis.svelte.d.ts +1 -1
  43. package/dist/components/ui/breadcrumb/breadcrumb-item.svelte +7 -3
  44. package/dist/components/ui/breadcrumb/breadcrumb-item.svelte.d.ts +1 -1
  45. package/dist/components/ui/breadcrumb/breadcrumb-link.svelte +2 -2
  46. package/dist/components/ui/breadcrumb/breadcrumb-link.svelte.d.ts +1 -1
  47. package/dist/components/ui/breadcrumb/breadcrumb-list.svelte +2 -2
  48. package/dist/components/ui/breadcrumb/breadcrumb-list.svelte.d.ts +1 -1
  49. package/dist/components/ui/breadcrumb/breadcrumb-page.svelte +2 -2
  50. package/dist/components/ui/breadcrumb/breadcrumb-page.svelte.d.ts +1 -1
  51. package/dist/components/ui/breadcrumb/breadcrumb-separator.svelte +11 -5
  52. package/dist/components/ui/breadcrumb/breadcrumb-separator.svelte.d.ts +1 -1
  53. package/dist/components/ui/breadcrumb/breadcrumb.svelte +3 -3
  54. package/dist/components/ui/breadcrumb/breadcrumb.svelte.d.ts +1 -1
  55. package/dist/components/ui/button/button.svelte +32 -15
  56. package/dist/components/ui/button/button.svelte.d.ts +3 -3
  57. package/dist/components/ui/calendar/calendar-cell.svelte +1 -1
  58. package/dist/components/ui/calendar/calendar-day.svelte +4 -4
  59. package/dist/components/ui/calendar/calendar-head-cell.svelte +1 -1
  60. package/dist/components/ui/calendar/calendar-months.svelte +1 -2
  61. package/dist/components/ui/calendar/calendar-months.svelte.d.ts +1 -1
  62. package/dist/components/ui/calendar/calendar-next-button.svelte +2 -2
  63. package/dist/components/ui/calendar/calendar-prev-button.svelte +2 -2
  64. package/dist/components/ui/calendar/calendar.svelte +2 -2
  65. package/dist/components/ui/calendar/calendar.svelte.d.ts +3 -2
  66. package/dist/components/ui/card/card-action.svelte +20 -0
  67. package/dist/components/ui/card/card-action.svelte.d.ts +5 -0
  68. package/dist/components/ui/card/card-content.svelte +2 -3
  69. package/dist/components/ui/card/card-content.svelte.d.ts +1 -1
  70. package/dist/components/ui/card/card-description.svelte +2 -3
  71. package/dist/components/ui/card/card-description.svelte.d.ts +1 -1
  72. package/dist/components/ui/card/card-footer.svelte +7 -3
  73. package/dist/components/ui/card/card-footer.svelte.d.ts +1 -1
  74. package/dist/components/ui/card/card-header.svelte +10 -3
  75. package/dist/components/ui/card/card-header.svelte.d.ts +1 -1
  76. package/dist/components/ui/card/card-title.svelte +3 -13
  77. package/dist/components/ui/card/card-title.svelte.d.ts +2 -5
  78. package/dist/components/ui/card/card.svelte +7 -3
  79. package/dist/components/ui/card/card.svelte.d.ts +1 -1
  80. package/dist/components/ui/card/index.d.ts +2 -1
  81. package/dist/components/ui/card/index.js +3 -2
  82. package/dist/components/ui/carousel/carousel-content.svelte +3 -4
  83. package/dist/components/ui/carousel/carousel-content.svelte.d.ts +1 -1
  84. package/dist/components/ui/carousel/carousel-item.svelte +2 -2
  85. package/dist/components/ui/carousel/carousel-item.svelte.d.ts +1 -1
  86. package/dist/components/ui/carousel/carousel-next.svelte +4 -3
  87. package/dist/components/ui/carousel/carousel-previous.svelte +4 -3
  88. package/dist/components/ui/carousel/carousel.svelte +11 -3
  89. package/dist/components/ui/carousel/carousel.svelte.d.ts +2 -1
  90. package/dist/components/ui/carousel/context.d.ts +1 -1
  91. package/dist/components/ui/chart/chart-container.svelte +81 -0
  92. package/dist/components/ui/chart/chart-container.svelte.d.ts +9 -0
  93. package/dist/components/ui/chart/chart-style.svelte +36 -0
  94. package/dist/components/ui/chart/chart-style.svelte.d.ts +8 -0
  95. package/dist/components/ui/chart/chart-tooltip.svelte +152 -0
  96. package/dist/components/ui/chart/chart-tooltip.svelte.d.ts +27 -0
  97. package/dist/components/ui/chart/chart-utils.d.ts +36 -0
  98. package/dist/components/ui/chart/chart-utils.js +33 -0
  99. package/dist/components/ui/chart/index.d.ts +4 -0
  100. package/dist/components/ui/chart/index.js +4 -0
  101. package/dist/components/ui/checkbox/checkbox.svelte +11 -10
  102. package/dist/components/ui/collapsible/collapsible-content.svelte +7 -0
  103. package/dist/components/ui/collapsible/collapsible-content.svelte.d.ts +4 -0
  104. package/dist/components/ui/collapsible/collapsible-trigger.svelte +7 -0
  105. package/dist/components/ui/collapsible/collapsible-trigger.svelte.d.ts +4 -0
  106. package/dist/components/ui/collapsible/collapsible.svelte +7 -0
  107. package/dist/components/ui/collapsible/collapsible.svelte.d.ts +4 -0
  108. package/dist/components/ui/command/command-dialog.svelte +12 -3
  109. package/dist/components/ui/command/command-dialog.svelte.d.ts +5 -2
  110. package/dist/components/ui/command/command-empty.svelte +6 -1
  111. package/dist/components/ui/command/command-group.svelte +2 -1
  112. package/dist/components/ui/command/command-input.svelte +5 -4
  113. package/dist/components/ui/command/command-input.svelte.d.ts +1 -1
  114. package/dist/components/ui/command/command-item.svelte +3 -2
  115. package/dist/components/ui/command/command-link-item.svelte +3 -2
  116. package/dist/components/ui/command/command-list.svelte +3 -2
  117. package/dist/components/ui/command/command-separator.svelte +6 -1
  118. package/dist/components/ui/command/command-shortcut.svelte +7 -3
  119. package/dist/components/ui/command/command-shortcut.svelte.d.ts +1 -1
  120. package/dist/components/ui/command/command.svelte +2 -1
  121. package/dist/components/ui/command/command.svelte.d.ts +1 -1
  122. package/dist/components/ui/context-menu/context-menu-checkbox-item.svelte +9 -11
  123. package/dist/components/ui/context-menu/context-menu-checkbox-item.svelte.d.ts +2 -1
  124. package/dist/components/ui/context-menu/context-menu-content.svelte +2 -1
  125. package/dist/components/ui/context-menu/context-menu-group-heading.svelte +3 -1
  126. package/dist/components/ui/context-menu/context-menu-group.svelte +7 -0
  127. package/dist/components/ui/context-menu/context-menu-group.svelte.d.ts +4 -0
  128. package/dist/components/ui/context-menu/context-menu-item.svelte +6 -2
  129. package/dist/components/ui/context-menu/context-menu-item.svelte.d.ts +1 -0
  130. package/dist/components/ui/context-menu/context-menu-label.svelte +24 -0
  131. package/dist/components/ui/context-menu/context-menu-label.svelte.d.ts +8 -0
  132. package/dist/components/ui/context-menu/context-menu-radio-group.svelte +7 -0
  133. package/dist/components/ui/context-menu/context-menu-radio-group.svelte.d.ts +4 -0
  134. package/dist/components/ui/context-menu/context-menu-radio-item.svelte +7 -6
  135. package/dist/components/ui/context-menu/context-menu-separator.svelte +6 -1
  136. package/dist/components/ui/context-menu/context-menu-shortcut.svelte +7 -3
  137. package/dist/components/ui/context-menu/context-menu-shortcut.svelte.d.ts +1 -1
  138. package/dist/components/ui/context-menu/context-menu-sub-content.svelte +2 -1
  139. package/dist/components/ui/context-menu/context-menu-sub-trigger.svelte +7 -6
  140. package/dist/components/ui/context-menu/context-menu-sub-trigger.svelte.d.ts +2 -1
  141. package/dist/components/ui/context-menu/context-menu-trigger.svelte +7 -0
  142. package/dist/components/ui/context-menu/context-menu-trigger.svelte.d.ts +4 -0
  143. package/dist/components/ui/context-menu/index.d.ts +5 -5
  144. package/dist/components/ui/context-menu/index.js +6 -5
  145. package/dist/components/ui/data-table/render-helpers.d.ts +2 -2
  146. package/dist/components/ui/data-table/render-helpers.js +2 -2
  147. package/dist/components/ui/dialog/dialog-close.svelte +7 -0
  148. package/dist/components/ui/dialog/dialog-close.svelte.d.ts +4 -0
  149. package/dist/components/ui/dialog/dialog-content.svelte +7 -6
  150. package/dist/components/ui/dialog/dialog-content.svelte.d.ts +2 -1
  151. package/dist/components/ui/dialog/dialog-description.svelte +6 -1
  152. package/dist/components/ui/dialog/dialog-footer.svelte +3 -3
  153. package/dist/components/ui/dialog/dialog-footer.svelte.d.ts +1 -1
  154. package/dist/components/ui/dialog/dialog-header.svelte +7 -3
  155. package/dist/components/ui/dialog/dialog-header.svelte.d.ts +1 -1
  156. package/dist/components/ui/dialog/dialog-overlay.svelte +2 -1
  157. package/dist/components/ui/dialog/dialog-title.svelte +2 -1
  158. package/dist/components/ui/dialog/dialog-trigger.svelte +7 -0
  159. package/dist/components/ui/dialog/dialog-trigger.svelte.d.ts +4 -0
  160. package/dist/components/ui/dialog/index.d.ts +2 -3
  161. package/dist/components/ui/dialog/index.js +2 -2
  162. package/dist/components/ui/drawer/drawer-close.svelte +7 -0
  163. package/dist/components/ui/drawer/drawer-close.svelte.d.ts +4 -0
  164. package/dist/components/ui/drawer/drawer-content.svelte +9 -2
  165. package/dist/components/ui/drawer/drawer-description.svelte +6 -1
  166. package/dist/components/ui/drawer/drawer-footer.svelte +2 -3
  167. package/dist/components/ui/drawer/drawer-footer.svelte.d.ts +1 -1
  168. package/dist/components/ui/drawer/drawer-header.svelte +2 -3
  169. package/dist/components/ui/drawer/drawer-header.svelte.d.ts +1 -1
  170. package/dist/components/ui/drawer/drawer-overlay.svelte +9 -1
  171. package/dist/components/ui/drawer/drawer-title.svelte +2 -1
  172. package/dist/components/ui/drawer/drawer-trigger.svelte +7 -0
  173. package/dist/components/ui/drawer/drawer-trigger.svelte.d.ts +4 -0
  174. package/dist/components/ui/drawer/index.d.ts +2 -2
  175. package/dist/components/ui/drawer/index.js +2 -2
  176. package/dist/components/ui/dropdown-menu/dropdown-menu-checkbox-item.svelte +9 -8
  177. package/dist/components/ui/dropdown-menu/dropdown-menu-checkbox-item.svelte.d.ts +2 -1
  178. package/dist/components/ui/dropdown-menu/dropdown-menu-content.svelte +2 -1
  179. package/dist/components/ui/dropdown-menu/dropdown-menu-group-heading.svelte +5 -2
  180. package/dist/components/ui/dropdown-menu/dropdown-menu-group-heading.svelte.d.ts +2 -1
  181. package/dist/components/ui/dropdown-menu/dropdown-menu-group.svelte +7 -0
  182. package/dist/components/ui/dropdown-menu/dropdown-menu-group.svelte.d.ts +4 -0
  183. package/dist/components/ui/dropdown-menu/dropdown-menu-item.svelte +6 -2
  184. package/dist/components/ui/dropdown-menu/dropdown-menu-item.svelte.d.ts +1 -0
  185. package/dist/components/ui/dropdown-menu/dropdown-menu-label.svelte +8 -3
  186. package/dist/components/ui/dropdown-menu/dropdown-menu-label.svelte.d.ts +1 -1
  187. package/dist/components/ui/dropdown-menu/dropdown-menu-radio-group.svelte +7 -0
  188. package/dist/components/ui/dropdown-menu/dropdown-menu-radio-group.svelte.d.ts +4 -0
  189. package/dist/components/ui/dropdown-menu/dropdown-menu-radio-item.svelte +7 -6
  190. package/dist/components/ui/dropdown-menu/dropdown-menu-separator.svelte +6 -1
  191. package/dist/components/ui/dropdown-menu/dropdown-menu-shortcut.svelte +7 -3
  192. package/dist/components/ui/dropdown-menu/dropdown-menu-shortcut.svelte.d.ts +1 -1
  193. package/dist/components/ui/dropdown-menu/dropdown-menu-sub-content.svelte +2 -1
  194. package/dist/components/ui/dropdown-menu/dropdown-menu-sub-trigger.svelte +5 -4
  195. package/dist/components/ui/dropdown-menu/dropdown-menu-trigger.svelte +7 -0
  196. package/dist/components/ui/dropdown-menu/dropdown-menu-trigger.svelte.d.ts +4 -0
  197. package/dist/components/ui/dropdown-menu/index.d.ts +5 -6
  198. package/dist/components/ui/dropdown-menu/index.js +5 -5
  199. package/dist/components/ui/form/form-description.svelte +7 -3
  200. package/dist/components/ui/form/form-element-field.svelte +1 -2
  201. package/dist/components/ui/form/form-element-field.svelte.d.ts +1 -1
  202. package/dist/components/ui/form/form-field-errors.svelte +1 -2
  203. package/dist/components/ui/form/form-field-errors.svelte.d.ts +1 -1
  204. package/dist/components/ui/form/form-field.svelte +2 -3
  205. package/dist/components/ui/form/form-field.svelte.d.ts +1 -1
  206. package/dist/components/ui/form/form-fieldset.svelte +1 -2
  207. package/dist/components/ui/form/form-label.svelte +2 -3
  208. package/dist/components/ui/form/form-legend.svelte +1 -2
  209. package/dist/components/ui/hover-card/hover-card-content.svelte +2 -1
  210. package/dist/components/ui/hover-card/hover-card-trigger.svelte +7 -0
  211. package/dist/components/ui/hover-card/hover-card-trigger.svelte.d.ts +4 -0
  212. package/dist/components/ui/hover-card/index.d.ts +1 -2
  213. package/dist/components/ui/hover-card/index.js +1 -1
  214. package/dist/components/ui/index.d.ts +5 -3
  215. package/dist/components/ui/index.js +5 -3
  216. package/dist/components/ui/input/input.svelte +9 -4
  217. package/dist/components/ui/input/input.svelte.d.ts +2 -2
  218. package/dist/components/ui/input-otp/input-otp-group.svelte +2 -3
  219. package/dist/components/ui/input-otp/input-otp-group.svelte.d.ts +1 -1
  220. package/dist/components/ui/input-otp/input-otp-separator.svelte +4 -4
  221. package/dist/components/ui/input-otp/input-otp-separator.svelte.d.ts +1 -1
  222. package/dist/components/ui/input-otp/input-otp-slot.svelte +5 -9
  223. package/dist/components/ui/input-otp/input-otp-slot.svelte.d.ts +2 -10
  224. package/dist/components/ui/input-otp/input-otp.svelte +3 -3
  225. package/dist/components/ui/input-otp/input-otp.svelte.d.ts +2 -1
  226. package/dist/components/ui/label/label.svelte +5 -1
  227. package/dist/components/ui/menubar/index.d.ts +5 -4
  228. package/dist/components/ui/menubar/index.js +5 -4
  229. package/dist/components/ui/menubar/menubar-checkbox-item.svelte +9 -8
  230. package/dist/components/ui/menubar/menubar-checkbox-item.svelte.d.ts +2 -1
  231. package/dist/components/ui/menubar/menubar-content.svelte +2 -1
  232. package/dist/components/ui/menubar/menubar-group-heading.svelte +7 -4
  233. package/dist/components/ui/menubar/menubar-group-heading.svelte.d.ts +2 -1
  234. package/dist/components/ui/menubar/menubar-group.svelte +12 -0
  235. package/dist/components/ui/menubar/menubar-group.svelte.d.ts +7 -0
  236. package/dist/components/ui/menubar/menubar-item.svelte +6 -2
  237. package/dist/components/ui/menubar/menubar-item.svelte.d.ts +1 -0
  238. package/dist/components/ui/menubar/menubar-label.svelte +25 -0
  239. package/dist/components/ui/menubar/menubar-label.svelte.d.ts +8 -0
  240. package/dist/components/ui/menubar/menubar-radio-item.svelte +7 -6
  241. package/dist/components/ui/menubar/menubar-separator.svelte +6 -1
  242. package/dist/components/ui/menubar/menubar-shortcut.svelte +7 -3
  243. package/dist/components/ui/menubar/menubar-shortcut.svelte.d.ts +1 -1
  244. package/dist/components/ui/menubar/menubar-sub-content.svelte +5 -1
  245. package/dist/components/ui/menubar/menubar-sub-trigger.svelte +7 -6
  246. package/dist/components/ui/menubar/menubar-sub-trigger.svelte.d.ts +2 -1
  247. package/dist/components/ui/menubar/menubar-trigger.svelte +2 -1
  248. package/dist/components/ui/menubar/menubar.svelte +2 -1
  249. package/dist/components/ui/pagination/pagination-content.svelte +7 -3
  250. package/dist/components/ui/pagination/pagination-content.svelte.d.ts +1 -1
  251. package/dist/components/ui/pagination/pagination-ellipsis.svelte +4 -4
  252. package/dist/components/ui/pagination/pagination-ellipsis.svelte.d.ts +1 -1
  253. package/dist/components/ui/pagination/pagination-item.svelte +2 -2
  254. package/dist/components/ui/pagination/pagination-item.svelte.d.ts +1 -1
  255. package/dist/components/ui/pagination/pagination-link.svelte +3 -0
  256. package/dist/components/ui/pagination/pagination-next-button.svelte +5 -3
  257. package/dist/components/ui/pagination/pagination-prev-button.svelte +5 -3
  258. package/dist/components/ui/pagination/pagination.svelte +5 -2
  259. package/dist/components/ui/popover/index.d.ts +1 -1
  260. package/dist/components/ui/popover/index.js +1 -1
  261. package/dist/components/ui/popover/popover-content.svelte +2 -1
  262. package/dist/components/ui/popover/popover-trigger.svelte +8 -0
  263. package/dist/components/ui/popover/popover-trigger.svelte.d.ts +4 -0
  264. package/dist/components/ui/progress/progress.svelte +6 -4
  265. package/dist/components/ui/radio-group/radio-group-item.svelte +7 -6
  266. package/dist/components/ui/radio-group/radio-group.svelte +7 -1
  267. package/dist/components/ui/radio-group/radio-group.svelte.d.ts +1 -1
  268. package/dist/components/ui/range-calendar/range-calendar-cell.svelte +1 -1
  269. package/dist/components/ui/range-calendar/range-calendar-day.svelte +3 -3
  270. package/dist/components/ui/range-calendar/range-calendar-head-cell.svelte +1 -1
  271. package/dist/components/ui/range-calendar/range-calendar-months.svelte +1 -2
  272. package/dist/components/ui/range-calendar/range-calendar-months.svelte.d.ts +1 -1
  273. package/dist/components/ui/range-calendar/range-calendar-next-button.svelte +2 -2
  274. package/dist/components/ui/range-calendar/range-calendar-prev-button.svelte +2 -2
  275. package/dist/components/ui/range-calendar/range-calendar.svelte +2 -2
  276. package/dist/components/ui/range-calendar/range-calendar.svelte.d.ts +1 -1
  277. package/dist/components/ui/resizable/resizable-handle.svelte +5 -5
  278. package/dist/components/ui/resizable/resizable-handle.svelte.d.ts +1 -1
  279. package/dist/components/ui/resizable/resizable-pane-group.svelte +1 -0
  280. package/dist/components/ui/scroll-area/scroll-area-scrollbar.svelte +7 -6
  281. package/dist/components/ui/scroll-area/scroll-area.svelte +7 -4
  282. package/dist/components/ui/scroll-area/scroll-area.svelte.d.ts +2 -1
  283. package/dist/components/ui/select/index.d.ts +3 -4
  284. package/dist/components/ui/select/index.js +4 -4
  285. package/dist/components/ui/select/select-content.svelte +5 -4
  286. package/dist/components/ui/select/select-content.svelte.d.ts +2 -1
  287. package/dist/components/ui/select/select-group.svelte +7 -0
  288. package/dist/components/ui/select/select-group.svelte.d.ts +4 -0
  289. package/dist/components/ui/select/select-item.svelte +7 -6
  290. package/dist/components/ui/select/select-label.svelte +20 -0
  291. package/dist/components/ui/select/select-label.svelte.d.ts +6 -0
  292. package/dist/components/ui/select/select-scroll-down-button.svelte +5 -4
  293. package/dist/components/ui/select/select-scroll-up-button.svelte +5 -4
  294. package/dist/components/ui/select/select-separator.svelte +6 -1
  295. package/dist/components/ui/select/select-trigger.svelte +11 -6
  296. package/dist/components/ui/select/select-trigger.svelte.d.ts +5 -1
  297. package/dist/components/ui/separator/separator.svelte +6 -8
  298. package/dist/components/ui/sheet/index.d.ts +2 -3
  299. package/dist/components/ui/sheet/index.js +2 -2
  300. package/dist/components/ui/sheet/sheet-close.svelte +7 -0
  301. package/dist/components/ui/sheet/sheet-close.svelte.d.ts +4 -0
  302. package/dist/components/ui/sheet/sheet-content.svelte +14 -9
  303. package/dist/components/ui/sheet/sheet-content.svelte.d.ts +4 -3
  304. package/dist/components/ui/sheet/sheet-description.svelte +6 -1
  305. package/dist/components/ui/sheet/sheet-footer.svelte +2 -7
  306. package/dist/components/ui/sheet/sheet-footer.svelte.d.ts +1 -1
  307. package/dist/components/ui/sheet/sheet-header.svelte +2 -3
  308. package/dist/components/ui/sheet/sheet-header.svelte.d.ts +1 -1
  309. package/dist/components/ui/sheet/sheet-overlay.svelte +2 -1
  310. package/dist/components/ui/sheet/sheet-title.svelte +6 -1
  311. package/dist/components/ui/sheet/sheet-trigger.svelte +7 -0
  312. package/dist/components/ui/sheet/sheet-trigger.svelte.d.ts +4 -0
  313. package/dist/components/ui/sidebar/sidebar-content.svelte +2 -2
  314. package/dist/components/ui/sidebar/sidebar-content.svelte.d.ts +1 -1
  315. package/dist/components/ui/sidebar/sidebar-footer.svelte +8 -3
  316. package/dist/components/ui/sidebar/sidebar-footer.svelte.d.ts +1 -1
  317. package/dist/components/ui/sidebar/sidebar-group-action.svelte +7 -7
  318. package/dist/components/ui/sidebar/sidebar-group-action.svelte.d.ts +1 -1
  319. package/dist/components/ui/sidebar/sidebar-group-content.svelte +8 -3
  320. package/dist/components/ui/sidebar/sidebar-group-content.svelte.d.ts +1 -1
  321. package/dist/components/ui/sidebar/sidebar-group-label.svelte +3 -3
  322. package/dist/components/ui/sidebar/sidebar-group-label.svelte.d.ts +1 -1
  323. package/dist/components/ui/sidebar/sidebar-group.svelte +2 -2
  324. package/dist/components/ui/sidebar/sidebar-group.svelte.d.ts +1 -1
  325. package/dist/components/ui/sidebar/sidebar-header.svelte +8 -3
  326. package/dist/components/ui/sidebar/sidebar-header.svelte.d.ts +1 -1
  327. package/dist/components/ui/sidebar/sidebar-input.svelte +2 -1
  328. package/dist/components/ui/sidebar/sidebar-input.svelte.d.ts +1 -1
  329. package/dist/components/ui/sidebar/sidebar-inset.svelte +4 -4
  330. package/dist/components/ui/sidebar/sidebar-inset.svelte.d.ts +1 -1
  331. package/dist/components/ui/sidebar/sidebar-menu-action.svelte +4 -4
  332. package/dist/components/ui/sidebar/sidebar-menu-action.svelte.d.ts +1 -1
  333. package/dist/components/ui/sidebar/sidebar-menu-badge.svelte +2 -2
  334. package/dist/components/ui/sidebar/sidebar-menu-badge.svelte.d.ts +1 -1
  335. package/dist/components/ui/sidebar/sidebar-menu-button.svelte +14 -8
  336. package/dist/components/ui/sidebar/sidebar-menu-button.svelte.d.ts +4 -4
  337. package/dist/components/ui/sidebar/sidebar-menu-item.svelte +8 -3
  338. package/dist/components/ui/sidebar/sidebar-menu-item.svelte.d.ts +1 -1
  339. package/dist/components/ui/sidebar/sidebar-menu-skeleton.svelte +2 -2
  340. package/dist/components/ui/sidebar/sidebar-menu-skeleton.svelte.d.ts +1 -1
  341. package/dist/components/ui/sidebar/sidebar-menu-sub-button.svelte +4 -4
  342. package/dist/components/ui/sidebar/sidebar-menu-sub-button.svelte.d.ts +1 -1
  343. package/dist/components/ui/sidebar/sidebar-menu-sub-item.svelte +14 -3
  344. package/dist/components/ui/sidebar/sidebar-menu-sub-item.svelte.d.ts +1 -1
  345. package/dist/components/ui/sidebar/sidebar-menu-sub.svelte +2 -2
  346. package/dist/components/ui/sidebar/sidebar-menu-sub.svelte.d.ts +1 -1
  347. package/dist/components/ui/sidebar/sidebar-menu.svelte +8 -3
  348. package/dist/components/ui/sidebar/sidebar-menu.svelte.d.ts +1 -1
  349. package/dist/components/ui/sidebar/sidebar-provider.svelte +3 -3
  350. package/dist/components/ui/sidebar/sidebar-provider.svelte.d.ts +1 -1
  351. package/dist/components/ui/sidebar/sidebar-rail.svelte +5 -5
  352. package/dist/components/ui/sidebar/sidebar-rail.svelte.d.ts +1 -1
  353. package/dist/components/ui/sidebar/sidebar-separator.svelte +7 -1
  354. package/dist/components/ui/sidebar/sidebar-trigger.svelte +7 -6
  355. package/dist/components/ui/sidebar/sidebar.svelte +14 -6
  356. package/dist/components/ui/sidebar/sidebar.svelte.d.ts +1 -1
  357. package/dist/components/ui/skeleton/skeleton.svelte +7 -3
  358. package/dist/components/ui/skeleton/skeleton.svelte.d.ts +1 -1
  359. package/dist/components/ui/slider/slider.svelte +12 -6
  360. package/dist/components/ui/slider/slider.svelte.d.ts +3 -2
  361. package/dist/components/ui/sonner/sonner.svelte +1 -9
  362. package/dist/components/ui/switch/switch.svelte +6 -4
  363. package/dist/components/ui/table/table-body.svelte +2 -3
  364. package/dist/components/ui/table/table-body.svelte.d.ts +1 -1
  365. package/dist/components/ui/table/table-caption.svelte +7 -3
  366. package/dist/components/ui/table/table-caption.svelte.d.ts +1 -1
  367. package/dist/components/ui/table/table-cell.svelte +7 -3
  368. package/dist/components/ui/table/table-cell.svelte.d.ts +1 -1
  369. package/dist/components/ui/table/table-footer.svelte +7 -3
  370. package/dist/components/ui/table/table-footer.svelte.d.ts +1 -1
  371. package/dist/components/ui/table/table-head.svelte +3 -3
  372. package/dist/components/ui/table/table-head.svelte.d.ts +1 -1
  373. package/dist/components/ui/table/table-header.svelte +2 -3
  374. package/dist/components/ui/table/table-header.svelte.d.ts +1 -1
  375. package/dist/components/ui/table/table-row.svelte +2 -2
  376. package/dist/components/ui/table/table-row.svelte.d.ts +1 -1
  377. package/dist/components/ui/table/table.svelte +3 -4
  378. package/dist/components/ui/table/table.svelte.d.ts +1 -1
  379. package/dist/components/ui/tabs/index.d.ts +1 -2
  380. package/dist/components/ui/tabs/index.js +1 -2
  381. package/dist/components/ui/tabs/tabs-content.svelte +1 -8
  382. package/dist/components/ui/tabs/tabs-list.svelte +5 -1
  383. package/dist/components/ui/tabs/tabs-trigger.svelte +2 -1
  384. package/dist/components/ui/tabs/tabs.svelte +13 -0
  385. package/dist/components/ui/tabs/tabs.svelte.d.ts +4 -0
  386. package/dist/components/ui/textarea/textarea.svelte +3 -3
  387. package/dist/components/ui/textarea/textarea.svelte.d.ts +2 -2
  388. package/dist/components/ui/toggle/toggle.svelte +12 -6
  389. package/dist/components/ui/toggle/toggle.svelte.d.ts +2 -2
  390. package/dist/components/ui/toggle-group/toggle-group-item.svelte +4 -0
  391. package/dist/components/ui/toggle-group/toggle-group-item.svelte.d.ts +1 -1
  392. package/dist/components/ui/toggle-group/toggle-group.svelte +4 -1
  393. package/dist/components/ui/toggle-group/toggle-group.svelte.d.ts +1 -1
  394. package/dist/components/ui/tooltip/index.d.ts +3 -2
  395. package/dist/components/ui/tooltip/index.js +4 -3
  396. package/dist/components/ui/tooltip/tooltip-content.svelte +37 -11
  397. package/dist/components/ui/tooltip/tooltip-content.svelte.d.ts +4 -1
  398. package/dist/components/ui/tooltip/tooltip-trigger.svelte +7 -0
  399. package/dist/components/ui/tooltip/tooltip-trigger.svelte.d.ts +4 -0
  400. package/dist/utils.d.ts +10 -0
  401. package/package.json +13 -10
@@ -4,6 +4,7 @@ import Description from "./card-description.svelte";
4
4
  import Footer from "./card-footer.svelte";
5
5
  import Header from "./card-header.svelte";
6
6
  import Title from "./card-title.svelte";
7
- export { Root, Content, Description, Footer, Header, Title,
7
+ import Action from "./card-action.svelte";
8
+ export { Root, Content, Description, Footer, Header, Title, Action,
8
9
  //
9
- Root as Card, Content as CardContent, Description as CardDescription, Footer as CardFooter, Header as CardHeader, Title as CardTitle, };
10
+ Root as Card, Content as CardContent, Description as CardDescription, Footer as CardFooter, Header as CardHeader, Title as CardTitle, Action as CardAction, };
@@ -1,9 +1,8 @@
1
1
  <script lang="ts">
2
2
  import emblaCarouselSvelte from "embla-carousel-svelte";
3
- import type { WithElementRef } from "bits-ui";
4
3
  import type { HTMLAttributes } from "svelte/elements";
5
4
  import { getEmblaContext } from "./context.js";
6
- import { cn } from "../../../utils.js";
5
+ import { cn, type WithElementRef } from "../../../utils.js";
7
6
 
8
7
  let {
9
8
  ref = $bindable(null),
@@ -15,8 +14,8 @@
15
14
  const emblaCtx = getEmblaContext("<Carousel.Content/>");
16
15
  </script>
17
16
 
18
- <!-- svelte-ignore event_directive_deprecated -->
19
17
  <div
18
+ data-slot="carousel-content"
20
19
  class="overflow-hidden"
21
20
  use:emblaCarouselSvelte={{
22
21
  options: {
@@ -27,7 +26,7 @@
27
26
  },
28
27
  plugins: emblaCtx.plugins,
29
28
  }}
30
- on:emblaInit={emblaCtx.onInit}
29
+ onemblaInit={emblaCtx.onInit}
31
30
  >
32
31
  <div
33
32
  bind:this={ref}
@@ -1,5 +1,5 @@
1
- import type { WithElementRef } from "bits-ui";
2
1
  import type { HTMLAttributes } from "svelte/elements";
2
+ import { type WithElementRef } from "../../../utils.js";
3
3
  declare const CarouselContent: import("svelte").Component<WithElementRef<HTMLAttributes<HTMLDivElement>>, {}, "ref">;
4
4
  type CarouselContent = ReturnType<typeof CarouselContent>;
5
5
  export default CarouselContent;
@@ -1,8 +1,7 @@
1
1
  <script lang="ts">
2
- import type { WithElementRef } from "bits-ui";
3
2
  import type { HTMLAttributes } from "svelte/elements";
4
3
  import { getEmblaContext } from "./context.js";
5
- import { cn } from "../../../utils.js";
4
+ import { cn, type WithElementRef } from "../../../utils.js";
6
5
 
7
6
  let {
8
7
  ref = $bindable(null),
@@ -16,6 +15,7 @@
16
15
 
17
16
  <div
18
17
  bind:this={ref}
18
+ data-slot="carousel-item"
19
19
  role="group"
20
20
  aria-roledescription="slide"
21
21
  class={cn("min-w-0 shrink-0 grow-0 basis-full", emblaCtx.orientation === "horizontal" ? "pl-4" : "pt-4", className)}
@@ -1,5 +1,5 @@
1
- import type { WithElementRef } from "bits-ui";
2
1
  import type { HTMLAttributes } from "svelte/elements";
2
+ import { type WithElementRef } from "../../../utils.js";
3
3
  declare const CarouselItem: import("svelte").Component<WithElementRef<HTMLAttributes<HTMLDivElement>>, {}, "ref">;
4
4
  type CarouselItem = ReturnType<typeof CarouselItem>;
5
5
  export default CarouselItem;
@@ -1,5 +1,5 @@
1
1
  <script lang="ts">
2
- import ArrowRight from "@lucide/svelte/icons/arrow-right";
2
+ import ArrowRightIcon from "@lucide/svelte/icons/arrow-right";
3
3
  import type { WithoutChildren } from "bits-ui";
4
4
  import { getEmblaContext } from "./context.js";
5
5
  import { cn } from "../../../utils.js";
@@ -17,10 +17,11 @@
17
17
  </script>
18
18
 
19
19
  <Button
20
+ data-slot="carousel-next"
20
21
  {variant}
21
22
  {size}
22
23
  class={cn(
23
- "absolute size-8 touch-manipulation rounded-full",
24
+ "absolute size-8 rounded-full",
24
25
  emblaCtx.orientation === "horizontal"
25
26
  ? "top-1/2 -right-12 -translate-y-1/2"
26
27
  : "-bottom-12 left-1/2 -translate-x-1/2 rotate-90",
@@ -32,6 +33,6 @@
32
33
  bind:ref
33
34
  {...restProps}
34
35
  >
35
- <ArrowRight class="size-4" />
36
+ <ArrowRightIcon class="size-4" />
36
37
  <span class="sr-only">Next slide</span>
37
38
  </Button>
@@ -1,5 +1,5 @@
1
1
  <script lang="ts">
2
- import ArrowLeft from "@lucide/svelte/icons/arrow-left";
2
+ import ArrowLeftIcon from "@lucide/svelte/icons/arrow-left";
3
3
  import type { WithoutChildren } from "bits-ui";
4
4
  import { getEmblaContext } from "./context.js";
5
5
  import { cn } from "../../../utils.js";
@@ -17,10 +17,11 @@
17
17
  </script>
18
18
 
19
19
  <Button
20
+ data-slot="carousel-previous"
20
21
  {variant}
21
22
  {size}
22
23
  class={cn(
23
- "absolute size-8 touch-manipulation rounded-full",
24
+ "absolute size-8 rounded-full",
24
25
  emblaCtx.orientation === "horizontal"
25
26
  ? "top-1/2 -left-12 -translate-y-1/2"
26
27
  : "-top-12 left-1/2 -translate-x-1/2 rotate-90",
@@ -32,6 +33,6 @@
32
33
  {...restProps}
33
34
  bind:ref
34
35
  >
35
- <ArrowLeft class="size-4" />
36
+ <ArrowLeftIcon class="size-4" />
36
37
  <span class="sr-only">Previous slide</span>
37
38
  </Button>
@@ -1,8 +1,9 @@
1
1
  <script lang="ts">
2
2
  import { type CarouselAPI, type CarouselProps, type EmblaContext, setEmblaContext } from "./context.js";
3
- import { cn } from "../../../utils.js";
3
+ import { cn, type WithElementRef } from "../../../utils.js";
4
4
 
5
5
  let {
6
+ ref = $bindable(null),
6
7
  opts = {},
7
8
  plugins = [],
8
9
  setApi = () => {},
@@ -10,7 +11,7 @@
10
11
  class: className,
11
12
  children,
12
13
  ...restProps
13
- }: CarouselProps = $props();
14
+ }: WithElementRef<CarouselProps> = $props();
14
15
 
15
16
  let carouselState = $state<EmblaContext>({
16
17
  api: undefined,
@@ -82,6 +83,13 @@
82
83
  });
83
84
  </script>
84
85
 
85
- <div class={cn("relative", className)} role="region" aria-roledescription="carousel" {...restProps}>
86
+ <div
87
+ bind:this={ref}
88
+ data-slot="carousel"
89
+ class={cn("relative", className)}
90
+ role="region"
91
+ aria-roledescription="carousel"
92
+ {...restProps}
93
+ >
86
94
  {@render children?.()}
87
95
  </div>
@@ -1,4 +1,5 @@
1
1
  import { type CarouselProps } from "./context.js";
2
- declare const Carousel: import("svelte").Component<CarouselProps, {}, "">;
2
+ import { type WithElementRef } from "../../../utils.js";
3
+ declare const Carousel: import("svelte").Component<WithElementRef<CarouselProps>, {}, "ref">;
3
4
  type Carousel = ReturnType<typeof Carousel>;
4
5
  export default Carousel;
@@ -1,4 +1,4 @@
1
- import type { WithElementRef } from "bits-ui";
1
+ import type { WithElementRef } from "../../../utils.js";
2
2
  import type { EmblaCarouselSvelteType } from "embla-carousel-svelte";
3
3
  import type emblaCarouselSvelte from "embla-carousel-svelte";
4
4
  import type { HTMLAttributes } from "svelte/elements";
@@ -0,0 +1,81 @@
1
+ <script lang="ts">
2
+ import { cn, type WithElementRef } from "../../../utils.js";
3
+ import type { HTMLAttributes } from "svelte/elements";
4
+ import ChartStyle from "./chart-style.svelte";
5
+ import { setChartContext, type ChartConfig } from "./chart-utils.js";
6
+
7
+ const uid = $props.id();
8
+
9
+ let {
10
+ ref = $bindable(null),
11
+ id = uid,
12
+ class: className,
13
+ children,
14
+ config,
15
+ ...restProps
16
+ }: WithElementRef<HTMLAttributes<HTMLElement>> & {
17
+ config: ChartConfig;
18
+ } = $props();
19
+
20
+ const chartId = `chart-${id || uid.replace(/:/g, "")}`;
21
+
22
+ setChartContext({
23
+ get config() {
24
+ return config;
25
+ },
26
+ });
27
+ </script>
28
+
29
+ <div
30
+ bind:this={ref}
31
+ data-chart={chartId}
32
+ data-slot="chart"
33
+ class={cn(
34
+ // "flex aspect-video justify-center text-xs [&_.recharts-cartesian-axis-tick_text]:fill-muted-foreground [&_.recharts-cartesian-grid_line[stroke='#ccc']]:stroke-border/50 [&_.recharts-curve.recharts-tooltip-cursor]:stroke-border [&_.recharts-dot[stroke='#fff']]:stroke-transparent [&_.recharts-layer]:outline-none [&_.recharts-polar-grid_[stroke='#ccc']]:stroke-border [&_.recharts-radial-bar-background-sector]:fill-muted [&_.recharts-rectangle.recharts-tooltip-cursor]:fill-muted [&_.recharts-reference-line_[stroke='#ccc']]:stroke-border [&_.recharts-sector[stroke='#fff']]:stroke-transparent [&_.recharts-sector]:outline-none [&_.recharts-surface]:outline-none",
35
+ "flex aspect-video justify-center overflow-visible text-xs",
36
+ // Overrides
37
+ //
38
+ // Stroke around dots/marks when hovering
39
+ "[&_.stroke-white]:stroke-transparent",
40
+ // override the default stroke color of lines
41
+ "[&_.lc-line]:stroke-border/50",
42
+
43
+ // by default, layerchart shows a line intersecting the point when hovering, this hides that
44
+ "[&_.lc-highlight-line]:stroke-0",
45
+
46
+ // by default, when you hover a point on a stacked series chart, it will drop the opacity
47
+ // of the other series, this overrides that
48
+ "[&_.lc-area-path]:opacity-100 [&_.lc-highlight-line]:opacity-100 [&_.lc-highlight-point]:opacity-100 [&_.lc-spline-path]:opacity-100 [&_.lc-text]:text-xs",
49
+
50
+ // We don't want the little tick lines between the axis labels and the chart, so we remove
51
+ // the stroke. The alternative is to manually disable `tickMarks` on the x/y axis of every
52
+ // chart.
53
+ "[&_.lc-axis-tick]:stroke-0",
54
+
55
+ // We don't want to display the rule on the x/y axis, as there is already going to be
56
+ // a grid line there and rule ends up overlapping the marks because it is rendered after
57
+ // the marks
58
+ "[&_.lc-rule-x-line:not(.lc-grid-x-rule)]:stroke-0 [&_.lc-rule-y-line:not(.lc-grid-y-rule)]:stroke-0",
59
+ "[&_.lc-grid-x-radial-line]:stroke-border [&_.lc-grid-x-radial-circle]:stroke-border",
60
+ "[&_.lc-grid-y-radial-line]:stroke-border [&_.lc-grid-y-radial-circle]:stroke-border",
61
+
62
+ // Legend adjustments
63
+ "[&_.lc-legend-swatch-button]:items-center [&_.lc-legend-swatch-button]:gap-1.5",
64
+ "[&_.lc-legend-swatch-group]:items-center [&_.lc-legend-swatch-group]:gap-4",
65
+ "[&_.lc-legend-swatch]:size-2.5 [&_.lc-legend-swatch]:rounded-[2px]",
66
+
67
+ // Labels
68
+ "[&_.lc-labels-text:not([fill])]:fill-foreground [&_text]:stroke-transparent",
69
+
70
+ // Tick labels on th x/y axes
71
+ "[&_.lc-axis-tick-label]:fill-muted-foreground [&_.lc-axis-tick-label]:font-normal",
72
+ "[&_.lc-tooltip-rects-g]:fill-transparent",
73
+ "[&_.lc-layout-svg-g]:fill-transparent",
74
+ "[&_.lc-root-container]:w-full",
75
+ className
76
+ )}
77
+ {...restProps}
78
+ >
79
+ <ChartStyle id={chartId} {config} />
80
+ {@render children?.()}
81
+ </div>
@@ -0,0 +1,9 @@
1
+ import { type WithElementRef } from "../../../utils.js";
2
+ import type { HTMLAttributes } from "svelte/elements";
3
+ import { type ChartConfig } from "./chart-utils.js";
4
+ type $$ComponentProps = WithElementRef<HTMLAttributes<HTMLElement>> & {
5
+ config: ChartConfig;
6
+ };
7
+ declare const ChartContainer: import("svelte").Component<$$ComponentProps, {}, "ref">;
8
+ type ChartContainer = ReturnType<typeof ChartContainer>;
9
+ export default ChartContainer;
@@ -0,0 +1,36 @@
1
+ <script lang="ts">
2
+ import { THEMES, type ChartConfig } from "./chart-utils.js";
3
+
4
+ let { id, config }: { id: string; config: ChartConfig } = $props();
5
+
6
+ const colorConfig = $derived(
7
+ config ? Object.entries(config).filter(([, config]) => config.theme || config.color) : null
8
+ );
9
+
10
+ const styleOpen = ">elyts<".split("").reverse().join("");
11
+ const styleClose = ">elyts/<".split("").reverse().join("");
12
+ </script>
13
+
14
+ {#if colorConfig && colorConfig.length}
15
+ {@const themeContents = Object.entries(THEMES)
16
+ .map(
17
+ ([theme, prefix]) => `
18
+ ${prefix} [data-chart=${id}] {
19
+ ${colorConfig
20
+ .map(([key, itemConfig]) => {
21
+ const color = itemConfig.theme?.[theme as keyof typeof itemConfig.theme] || itemConfig.color;
22
+ return color ? ` --color-${key}: ${color};` : null;
23
+ })
24
+ .join("\n")}
25
+ }
26
+ `
27
+ )
28
+ .join("\n")}
29
+
30
+ {#key id}
31
+ <!-- eslint-disable-next-line svelte/no-at-html-tags -->
32
+ {@html `${styleOpen}
33
+ ${themeContents}
34
+ ${styleClose}`}
35
+ {/key}
36
+ {/if}
@@ -0,0 +1,8 @@
1
+ import { type ChartConfig } from "./chart-utils.js";
2
+ type $$ComponentProps = {
3
+ id: string;
4
+ config: ChartConfig;
5
+ };
6
+ declare const ChartStyle: import("svelte").Component<$$ComponentProps, {}, "">;
7
+ type ChartStyle = ReturnType<typeof ChartStyle>;
8
+ export default ChartStyle;
@@ -0,0 +1,152 @@
1
+ <script lang="ts">
2
+ import { cn, type WithElementRef, type WithoutChildren } from "../../../utils.js";
3
+ import type { HTMLAttributes } from "svelte/elements";
4
+ import { getPayloadConfigFromPayload, useChart, type TooltipPayload } from "./chart-utils.js";
5
+ import { getTooltipContext, Tooltip as TooltipPrimitive } from "layerchart";
6
+ import type { Snippet } from "svelte";
7
+
8
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
9
+ function defaultFormatter(value: any, _payload: TooltipPayload[]) {
10
+ return `${value}`;
11
+ }
12
+
13
+ let {
14
+ ref = $bindable(null),
15
+ class: className,
16
+ hideLabel = false,
17
+ indicator = "dot",
18
+ hideIndicator = false,
19
+ labelKey,
20
+ label,
21
+ labelFormatter = defaultFormatter,
22
+ labelClassName,
23
+ formatter,
24
+ nameKey,
25
+ color,
26
+ ...restProps
27
+ }: WithoutChildren<WithElementRef<HTMLAttributes<HTMLDivElement>>> & {
28
+ hideLabel?: boolean;
29
+ label?: string;
30
+ indicator?: "line" | "dot" | "dashed";
31
+ nameKey?: string;
32
+ labelKey?: string;
33
+ hideIndicator?: boolean;
34
+ labelClassName?: string;
35
+ labelFormatter?: // eslint-disable-next-line @typescript-eslint/no-explicit-any
36
+ ((value: any, payload: TooltipPayload[]) => string | number | Snippet) | null;
37
+ formatter?: Snippet<
38
+ [
39
+ {
40
+ value: unknown;
41
+ name: string;
42
+ item: TooltipPayload;
43
+ index: number;
44
+ payload: TooltipPayload[];
45
+ },
46
+ ]
47
+ >;
48
+ } = $props();
49
+
50
+ const chart = useChart();
51
+ const tooltipCtx = getTooltipContext();
52
+
53
+ const formattedLabel = $derived.by(() => {
54
+ if (hideLabel || !tooltipCtx.payload?.length) return null;
55
+
56
+ const [item] = tooltipCtx.payload;
57
+ const key = labelKey || item?.label || item?.name || "value";
58
+
59
+ const itemConfig = getPayloadConfigFromPayload(chart.config, item, key);
60
+
61
+ const value =
62
+ !labelKey && typeof label === "string"
63
+ ? chart.config[label as keyof typeof chart.config]?.label || label
64
+ : (itemConfig?.label ?? item.label);
65
+
66
+ if (!value) return null;
67
+ if (!labelFormatter) return value;
68
+ return labelFormatter(value, tooltipCtx.payload);
69
+ });
70
+
71
+ const nestLabel = $derived(tooltipCtx.payload.length === 1 && indicator !== "dot");
72
+ </script>
73
+
74
+ {#snippet TooltipLabel()}
75
+ {#if formattedLabel}
76
+ <div class={cn("font-medium", labelClassName)}>
77
+ {#if typeof formattedLabel === "function"}
78
+ {@render formattedLabel()}
79
+ {:else}
80
+ {formattedLabel}
81
+ {/if}
82
+ </div>
83
+ {/if}
84
+ {/snippet}
85
+
86
+ <TooltipPrimitive.Root variant="none">
87
+ <div
88
+ class={cn(
89
+ "border-border/50 bg-background grid min-w-[9rem] items-start gap-1.5 rounded-lg border px-2.5 py-1.5 text-xs shadow-xl",
90
+ className
91
+ )}
92
+ {...restProps}
93
+ >
94
+ {#if !nestLabel}
95
+ {@render TooltipLabel()}
96
+ {/if}
97
+ <div class="grid gap-1.5">
98
+ {#each tooltipCtx.payload as item, i (item.key + i)}
99
+ {@const key = `${nameKey || item.key || item.name || "value"}`}
100
+ {@const itemConfig = getPayloadConfigFromPayload(chart.config, item, key)}
101
+ {@const indicatorColor = color || item.payload?.color || item.color}
102
+ <div
103
+ class={cn(
104
+ "[&>svg]:text-muted-foreground flex w-full flex-wrap items-stretch gap-2 [&>svg]:size-2.5",
105
+ indicator === "dot" && "items-center"
106
+ )}
107
+ >
108
+ {#if formatter && item.value !== undefined && item.name}
109
+ {@render formatter({
110
+ value: item.value,
111
+ name: item.name,
112
+ item,
113
+ index: i,
114
+ payload: tooltipCtx.payload,
115
+ })}
116
+ {:else}
117
+ {#if itemConfig?.icon}
118
+ <itemConfig.icon />
119
+ {:else if !hideIndicator}
120
+ <div
121
+ style="--color-bg: {indicatorColor}; --color-border: {indicatorColor};"
122
+ class={cn("shrink-0 rounded-[2px] border-(--color-border) bg-(--color-bg)", {
123
+ "size-2.5": indicator === "dot",
124
+ "h-full w-1": indicator === "line",
125
+ "w-0 border-[1.5px] border-dashed bg-transparent": indicator === "dashed",
126
+ "my-0.5": nestLabel && indicator === "dashed",
127
+ })}
128
+ ></div>
129
+ {/if}
130
+ <div
131
+ class={cn("flex flex-1 shrink-0 justify-between leading-none", nestLabel ? "items-end" : "items-center")}
132
+ >
133
+ <div class="grid gap-1.5">
134
+ {#if nestLabel}
135
+ {@render TooltipLabel()}
136
+ {/if}
137
+ <span class="text-muted-foreground">
138
+ {itemConfig?.label || item.name}
139
+ </span>
140
+ </div>
141
+ {#if item.value}
142
+ <span class="text-foreground font-mono font-medium tabular-nums">
143
+ {item.value.toLocaleString()}
144
+ </span>
145
+ {/if}
146
+ </div>
147
+ {/if}
148
+ </div>
149
+ {/each}
150
+ </div>
151
+ </div>
152
+ </TooltipPrimitive.Root>
@@ -0,0 +1,27 @@
1
+ import { type WithElementRef, type WithoutChildren } from "../../../utils.js";
2
+ import type { HTMLAttributes } from "svelte/elements";
3
+ import { type TooltipPayload } from "./chart-utils.js";
4
+ import type { Snippet } from "svelte";
5
+ type $$ComponentProps = WithoutChildren<WithElementRef<HTMLAttributes<HTMLDivElement>>> & {
6
+ hideLabel?: boolean;
7
+ label?: string;
8
+ indicator?: "line" | "dot" | "dashed";
9
+ nameKey?: string;
10
+ labelKey?: string;
11
+ hideIndicator?: boolean;
12
+ labelClassName?: string;
13
+ labelFormatter?: // eslint-disable-next-line @typescript-eslint/no-explicit-any
14
+ ((value: any, payload: TooltipPayload[]) => string | number | Snippet) | null;
15
+ formatter?: Snippet<[
16
+ {
17
+ value: unknown;
18
+ name: string;
19
+ item: TooltipPayload;
20
+ index: number;
21
+ payload: TooltipPayload[];
22
+ }
23
+ ]>;
24
+ };
25
+ declare const ChartTooltip: import("svelte").Component<$$ComponentProps, {}, "ref">;
26
+ type ChartTooltip = ReturnType<typeof ChartTooltip>;
27
+ export default ChartTooltip;
@@ -0,0 +1,36 @@
1
+ import type { Tooltip } from "layerchart";
2
+ import { type Component, type ComponentProps, type Snippet } from "svelte";
3
+ export declare const THEMES: {
4
+ readonly light: "";
5
+ readonly dark: ".dark";
6
+ };
7
+ export type ChartConfig = {
8
+ [k in string]: {
9
+ label?: string;
10
+ icon?: Component;
11
+ } & ({
12
+ color?: string;
13
+ theme?: never;
14
+ } | {
15
+ color?: never;
16
+ theme: Record<keyof typeof THEMES, string>;
17
+ });
18
+ };
19
+ export type ExtractSnippetParams<T> = T extends Snippet<[infer P]> ? P : never;
20
+ export type TooltipPayload = ExtractSnippetParams<ComponentProps<typeof Tooltip.Root>["children"]>["payload"][number];
21
+ export declare function getPayloadConfigFromPayload(config: ChartConfig, payload: TooltipPayload, key: string): ({
22
+ label?: string;
23
+ icon?: Component;
24
+ } & ({
25
+ color?: string;
26
+ theme?: never;
27
+ } | {
28
+ color?: never;
29
+ theme: Record<keyof typeof THEMES, string>;
30
+ })) | undefined;
31
+ type ChartContextValue = {
32
+ config: ChartConfig;
33
+ };
34
+ export declare function setChartContext(value: ChartContextValue): ChartContextValue;
35
+ export declare function useChart(): ChartContextValue;
36
+ export {};
@@ -0,0 +1,33 @@
1
+ import { getContext, setContext } from "svelte";
2
+ export const THEMES = { light: "", dark: ".dark" };
3
+ // Helper to extract item config from a payload.
4
+ export function getPayloadConfigFromPayload(config, payload, key) {
5
+ if (typeof payload !== "object" || payload === null)
6
+ return undefined;
7
+ const payloadPayload = "payload" in payload && typeof payload.payload === "object" && payload.payload !== null
8
+ ? payload.payload
9
+ : undefined;
10
+ let configLabelKey = key;
11
+ if (payload.key === key) {
12
+ configLabelKey = payload.key;
13
+ }
14
+ else if (payload.name === key) {
15
+ configLabelKey = payload.name;
16
+ }
17
+ else if (key in payload && typeof payload[key] === "string") {
18
+ configLabelKey = payload[key];
19
+ }
20
+ else if (payloadPayload &&
21
+ key in payloadPayload &&
22
+ typeof payloadPayload[key] === "string") {
23
+ configLabelKey = payloadPayload[key];
24
+ }
25
+ return configLabelKey in config ? config[configLabelKey] : config[key];
26
+ }
27
+ const chartContextKey = Symbol("chart-context");
28
+ export function setChartContext(value) {
29
+ return setContext(chartContextKey, value);
30
+ }
31
+ export function useChart() {
32
+ return getContext(chartContextKey);
33
+ }
@@ -0,0 +1,4 @@
1
+ import ChartContainer from "./chart-container.svelte";
2
+ import ChartTooltip from "./chart-tooltip.svelte";
3
+ export { getPayloadConfigFromPayload, type ChartConfig } from "./chart-utils.js";
4
+ export { ChartContainer, ChartTooltip, ChartContainer as Container, ChartTooltip as Tooltip };
@@ -0,0 +1,4 @@
1
+ import ChartContainer from "./chart-container.svelte";
2
+ import ChartTooltip from "./chart-tooltip.svelte";
3
+ export { getPayloadConfigFromPayload } from "./chart-utils.js";
4
+ export { ChartContainer, ChartTooltip, ChartContainer as Container, ChartTooltip as Tooltip };
@@ -1,8 +1,8 @@
1
1
  <script lang="ts">
2
- import { Checkbox as CheckboxPrimitive, type WithoutChildrenOrChild } from "bits-ui";
3
- import Check from "@lucide/svelte/icons/check";
4
- import Minus from "@lucide/svelte/icons/minus";
5
- import { cn } from "../../../utils.js";
2
+ import { Checkbox as CheckboxPrimitive } from "bits-ui";
3
+ import CheckIcon from "@lucide/svelte/icons/check";
4
+ import MinusIcon from "@lucide/svelte/icons/minus";
5
+ import { cn, type WithoutChildrenOrChild } from "../../../utils.js";
6
6
 
7
7
  let {
8
8
  ref = $bindable(null),
@@ -15,8 +15,9 @@
15
15
 
16
16
  <CheckboxPrimitive.Root
17
17
  bind:ref
18
+ data-slot="checkbox"
18
19
  class={cn(
19
- "border-primary ring-offset-background focus-visible:ring-ring data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground peer box-content size-4 shrink-0 rounded-sm border focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:outline-hidden disabled:cursor-not-allowed disabled:opacity-50 data-[disabled=true]:cursor-not-allowed data-[disabled=true]:opacity-50",
20
+ "border-input dark:bg-input/30 data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground dark:data-[state=checked]:bg-primary data-[state=checked]:border-primary focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive peer flex size-4 shrink-0 items-center justify-center rounded-[4px] border shadow-xs transition-shadow outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50",
20
21
  className
21
22
  )}
22
23
  bind:checked
@@ -24,11 +25,11 @@
24
25
  {...restProps}
25
26
  >
26
27
  {#snippet children({ checked, indeterminate })}
27
- <div class="flex size-4 items-center justify-center text-current">
28
- {#if indeterminate}
29
- <Minus class="size-3.5" />
30
- {:else}
31
- <Check class={cn("size-3.5", !checked && "text-transparent")} />
28
+ <div data-slot="checkbox-indicator" class="text-current transition-none">
29
+ {#if checked}
30
+ <CheckIcon class="size-3.5" />
31
+ {:else if indeterminate}
32
+ <MinusIcon class="size-3.5" />
32
33
  {/if}
33
34
  </div>
34
35
  {/snippet}
@@ -0,0 +1,7 @@
1
+ <script lang="ts">
2
+ import { Collapsible as CollapsiblePrimitive } from "bits-ui";
3
+
4
+ let { ref = $bindable(null), ...restProps }: CollapsiblePrimitive.ContentProps = $props();
5
+ </script>
6
+
7
+ <CollapsiblePrimitive.Content bind:ref data-slot="collapsible-content" {...restProps} />
@@ -0,0 +1,4 @@
1
+ import { Collapsible as CollapsiblePrimitive } from "bits-ui";
2
+ declare const CollapsibleContent: import("svelte").Component<CollapsiblePrimitive.ContentProps, {}, "ref">;
3
+ type CollapsibleContent = ReturnType<typeof CollapsibleContent>;
4
+ export default CollapsibleContent;
@@ -0,0 +1,7 @@
1
+ <script lang="ts">
2
+ import { Collapsible as CollapsiblePrimitive } from "bits-ui";
3
+
4
+ let { ref = $bindable(null), ...restProps }: CollapsiblePrimitive.TriggerProps = $props();
5
+ </script>
6
+
7
+ <CollapsiblePrimitive.Trigger bind:ref data-slot="collapsible-trigger" {...restProps} />
@@ -0,0 +1,4 @@
1
+ import { Collapsible as CollapsiblePrimitive } from "bits-ui";
2
+ declare const CollapsibleTrigger: import("svelte").Component<CollapsiblePrimitive.TriggerProps, {}, "ref">;
3
+ type CollapsibleTrigger = ReturnType<typeof CollapsibleTrigger>;
4
+ export default CollapsibleTrigger;