negodesign 0.0.71 → 0.0.73

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 (392) hide show
  1. package/README.md +115 -23
  2. package/dist/components/NegoDesign.svelte +7 -2
  3. package/dist/components/core/carousel/badge/ui/CarouselBadge.svelte +3 -5
  4. package/dist/components/core/carousel/grid/shared/ui/CarouselGridSlot.svelte +2 -2
  5. package/dist/components/core/carousel/highlights/ui/CarouselHighlights.svelte +2 -2
  6. package/dist/components/core/carousel/product/ui/CarouselProduct.svelte +2 -2
  7. package/dist/components/core/carousel/promotion/ui/CarouselPromotion.svelte +2 -2
  8. package/dist/components/core/datatable/data/columns-create.d.ts +1 -1
  9. package/dist/components/core/datatable/data/data-table.d.ts +3 -3
  10. package/dist/components/core/datatable/data/resolve-cell-badge.svelte.d.ts +2 -2
  11. package/dist/components/core/datatable/data/resolve-cell-badge.svelte.js +2 -1
  12. package/dist/components/core/datatable/data/resolve-cell.svelte.d.ts +2 -2
  13. package/dist/components/core/datatable/data/resolve-header.svelte.d.ts +2 -2
  14. package/dist/components/core/datatable/ui/DataTableActions.svelte +1 -1
  15. package/dist/components/core/datatable/ui/DataTableActions.svelte.d.ts +1 -1
  16. package/dist/components/core/datatable/ui/DataTableContent.svelte +1 -1
  17. package/dist/components/core/datatable/ui/DataTableContent.svelte.d.ts +1 -1
  18. package/dist/components/core/datatable/ui/DataTableCore.svelte +23 -26
  19. package/dist/components/core/datatable/ui/DataTableListFilter.svelte +3 -2
  20. package/dist/components/core/datatable/ui/DataTableListFilter.svelte.d.ts +1 -1
  21. package/dist/components/core/datatable/ui/DataTableListPagination.svelte +1 -1
  22. package/dist/components/core/datatable/ui/DataTableListPagination.svelte.d.ts +1 -1
  23. package/dist/components/core/datatable/ui/columns-create.svelte.d.ts +1 -1
  24. package/dist/components/core/panel/LeftHero.svelte +2 -2
  25. package/dist/components/core/sidebar/data/nav-top-bar-sidebar.d.ts +13 -4
  26. package/dist/components/core/sidebar/ui/navbar/NavMenuBarSidebar.svelte +3 -3
  27. package/dist/components/core/sidebar/ui/navbar/NavMenuTopBarSidebar.svelte +0 -2
  28. package/dist/components/core/sidebar/ui/navbar/nav-menu-header-sidebar.svelte +4 -5
  29. package/dist/components/pages/product-details/shared/ProductDetailFilesVertical.svelte +0 -1
  30. package/dist/components/pages/profile-user/shared/ProfileUserAddress.svelte +2 -3
  31. package/dist/components/pages/profile-user/shared/ProfileUserTabs.svelte +3 -1
  32. package/dist/components/ui/avatar/avatar-fallback.svelte +22 -12
  33. package/dist/components/ui/avatar/avatar-fallback.svelte.d.ts +3 -2
  34. package/dist/components/ui/avatar/avatar-image.svelte +31 -9
  35. package/dist/components/ui/avatar/avatar-image.svelte.d.ts +3 -2
  36. package/dist/components/ui/avatar/avatar.svelte +23 -9
  37. package/dist/components/ui/avatar/avatar.svelte.d.ts +6 -3
  38. package/dist/components/ui/avatar/context.svelte.d.ts +7 -0
  39. package/dist/components/ui/avatar/context.svelte.js +10 -0
  40. package/dist/components/ui/badge/badge.svelte +24 -26
  41. package/dist/components/ui/badge/badge.svelte.d.ts +15 -33
  42. package/dist/components/ui/button/button.svelte +35 -31
  43. package/dist/components/ui/button/button.svelte.d.ts +24 -61
  44. package/dist/components/ui/carousel/autoplay.d.ts +7 -0
  45. package/dist/components/ui/carousel/autoplay.js +7 -0
  46. package/dist/components/ui/carousel/carousel-content.svelte +31 -17
  47. package/dist/components/ui/carousel/carousel-item.svelte +2 -3
  48. package/dist/components/ui/carousel/carousel-next.svelte +1 -1
  49. package/dist/components/ui/carousel/carousel-previous.svelte +1 -1
  50. package/dist/components/ui/carousel/carousel.svelte +162 -30
  51. package/dist/components/ui/carousel/context.d.ts +23 -14
  52. package/dist/components/ui/carousel/context.js +4 -4
  53. package/dist/components/ui/carousel/index.d.ts +2 -0
  54. package/dist/components/ui/carousel/index.js +1 -0
  55. package/dist/components/ui/checkbox/checkbox.svelte +74 -17
  56. package/dist/components/ui/checkbox/checkbox.svelte.d.ts +17 -2
  57. package/dist/components/ui/collapsible/collapsible-content.svelte +27 -3
  58. package/dist/components/ui/collapsible/collapsible-content.svelte.d.ts +8 -2
  59. package/dist/components/ui/collapsible/collapsible-trigger.svelte +48 -3
  60. package/dist/components/ui/collapsible/collapsible-trigger.svelte.d.ts +10 -2
  61. package/dist/components/ui/collapsible/collapsible.svelte +62 -6
  62. package/dist/components/ui/collapsible/collapsible.svelte.d.ts +21 -2
  63. package/dist/components/ui/data-table/data-table.svelte.d.ts +2 -40
  64. package/dist/components/ui/data-table/data-table.svelte.js +1 -110
  65. package/dist/components/ui/data-table/flex-render.svelte +5 -5
  66. package/dist/components/ui/data-table/flex-render.svelte.d.ts +2 -2
  67. package/dist/components/ui/data-table/index.d.ts +2 -1
  68. package/dist/components/ui/data-table/index.js +1 -1
  69. package/dist/components/ui/data-table/table-core.svelte.d.ts +117 -0
  70. package/dist/components/ui/data-table/table-core.svelte.js +260 -0
  71. package/dist/components/ui/drawer/drawer-close.svelte +38 -3
  72. package/dist/components/ui/drawer/drawer-close.svelte.d.ts +10 -2
  73. package/dist/components/ui/drawer/drawer-content.svelte +67 -18
  74. package/dist/components/ui/drawer/drawer-content.svelte.d.ts +5 -4
  75. package/dist/components/ui/drawer/drawer-description.svelte +9 -6
  76. package/dist/components/ui/drawer/drawer-description.svelte.d.ts +3 -2
  77. package/dist/components/ui/drawer/drawer-nested.svelte +28 -5
  78. package/dist/components/ui/drawer/drawer-nested.svelte.d.ts +8 -1
  79. package/dist/components/ui/drawer/drawer-overlay.svelte +18 -9
  80. package/dist/components/ui/drawer/drawer-overlay.svelte.d.ts +3 -2
  81. package/dist/components/ui/drawer/drawer-portal.svelte +16 -3
  82. package/dist/components/ui/drawer/drawer-portal.svelte.d.ts +3 -1
  83. package/dist/components/ui/drawer/drawer-title.svelte +9 -6
  84. package/dist/components/ui/drawer/drawer-title.svelte.d.ts +3 -2
  85. package/dist/components/ui/drawer/drawer-trigger.svelte +39 -3
  86. package/dist/components/ui/drawer/drawer-trigger.svelte.d.ts +10 -2
  87. package/dist/components/ui/drawer/drawer.svelte +67 -4
  88. package/dist/components/ui/drawer/drawer.svelte.d.ts +23 -1
  89. package/dist/components/ui/dropdown-menu/dropdown-menu-checkbox-group.svelte +18 -8
  90. package/dist/components/ui/dropdown-menu/dropdown-menu-checkbox-group.svelte.d.ts +8 -2
  91. package/dist/components/ui/dropdown-menu/dropdown-menu-checkbox-item.svelte +53 -28
  92. package/dist/components/ui/dropdown-menu/dropdown-menu-checkbox-item.svelte.d.ts +8 -3
  93. package/dist/components/ui/dropdown-menu/dropdown-menu-content.svelte +93 -17
  94. package/dist/components/ui/dropdown-menu/dropdown-menu-content.svelte.d.ts +10 -6
  95. package/dist/components/ui/dropdown-menu/dropdown-menu-context.svelte.d.ts +26 -0
  96. package/dist/components/ui/dropdown-menu/dropdown-menu-context.svelte.js +27 -0
  97. package/dist/components/ui/dropdown-menu/dropdown-menu-group-heading.svelte +14 -8
  98. package/dist/components/ui/dropdown-menu/dropdown-menu-group-heading.svelte.d.ts +6 -3
  99. package/dist/components/ui/dropdown-menu/dropdown-menu-group.svelte +18 -3
  100. package/dist/components/ui/dropdown-menu/dropdown-menu-group.svelte.d.ts +7 -2
  101. package/dist/components/ui/dropdown-menu/dropdown-menu-item.svelte +42 -8
  102. package/dist/components/ui/dropdown-menu/dropdown-menu-item.svelte.d.ts +9 -2
  103. package/dist/components/ui/dropdown-menu/dropdown-menu-label.svelte +9 -5
  104. package/dist/components/ui/dropdown-menu/dropdown-menu-label.svelte.d.ts +5 -2
  105. package/dist/components/ui/dropdown-menu/dropdown-menu-portal.svelte +3 -3
  106. package/dist/components/ui/dropdown-menu/dropdown-menu-portal.svelte.d.ts +5 -1
  107. package/dist/components/ui/dropdown-menu/dropdown-menu-radio-group.svelte +36 -8
  108. package/dist/components/ui/dropdown-menu/dropdown-menu-radio-group.svelte.d.ts +9 -2
  109. package/dist/components/ui/dropdown-menu/dropdown-menu-radio-item.svelte +59 -23
  110. package/dist/components/ui/dropdown-menu/dropdown-menu-radio-item.svelte.d.ts +12 -2
  111. package/dist/components/ui/dropdown-menu/dropdown-menu-separator.svelte +11 -7
  112. package/dist/components/ui/dropdown-menu/dropdown-menu-separator.svelte.d.ts +6 -2
  113. package/dist/components/ui/dropdown-menu/dropdown-menu-sub-content.svelte +26 -9
  114. package/dist/components/ui/dropdown-menu/dropdown-menu-sub-content.svelte.d.ts +8 -2
  115. package/dist/components/ui/dropdown-menu/dropdown-menu-sub-trigger.svelte +39 -11
  116. package/dist/components/ui/dropdown-menu/dropdown-menu-sub-trigger.svelte.d.ts +7 -2
  117. package/dist/components/ui/dropdown-menu/dropdown-menu-sub.svelte +73 -3
  118. package/dist/components/ui/dropdown-menu/dropdown-menu-sub.svelte.d.ts +8 -1
  119. package/dist/components/ui/dropdown-menu/dropdown-menu-trigger.svelte +65 -3
  120. package/dist/components/ui/dropdown-menu/dropdown-menu-trigger.svelte.d.ts +12 -2
  121. package/dist/components/ui/dropdown-menu/dropdown-menu.svelte +50 -3
  122. package/dist/components/ui/dropdown-menu/dropdown-menu.svelte.d.ts +9 -1
  123. package/dist/components/ui/empty/empty-content.svelte +2 -5
  124. package/dist/components/ui/empty/empty-description.svelte +2 -5
  125. package/dist/components/ui/empty/empty-header.svelte +2 -2
  126. package/dist/components/ui/empty/empty-media.svelte +17 -16
  127. package/dist/components/ui/empty/empty-media.svelte.d.ts +10 -19
  128. package/dist/components/ui/empty/empty-title.svelte +2 -2
  129. package/dist/components/ui/empty/empty.svelte +2 -5
  130. package/dist/components/ui/input-otp/context.svelte.d.ts +22 -0
  131. package/dist/components/ui/input-otp/context.svelte.js +8 -0
  132. package/dist/components/ui/input-otp/input-otp-group.svelte +5 -2
  133. package/dist/components/ui/input-otp/input-otp-separator.svelte +5 -5
  134. package/dist/components/ui/input-otp/input-otp-slot.svelte +50 -17
  135. package/dist/components/ui/input-otp/input-otp-slot.svelte.d.ts +7 -2
  136. package/dist/components/ui/input-otp/input-otp.svelte +167 -8
  137. package/dist/components/ui/input-otp/input-otp.svelte.d.ts +17 -2
  138. package/dist/components/ui/label/label.svelte +10 -10
  139. package/dist/components/ui/label/label.svelte.d.ts +3 -2
  140. package/dist/components/ui/language-switcher/language-switcher.svelte +4 -3
  141. package/dist/components/ui/light-switch/light-switch.svelte +12 -6
  142. package/dist/components/ui/phone-input/country-selector.svelte +64 -78
  143. package/dist/components/ui/phone-input/country-selector.svelte.d.ts +6 -6
  144. package/dist/components/ui/phone-input/flag.svelte +3 -12
  145. package/dist/components/ui/phone-input/flag.svelte.d.ts +1 -1
  146. package/dist/components/ui/phone-input/flags.d.ts +2 -1
  147. package/dist/components/ui/phone-input/flags.js +4 -8
  148. package/dist/components/ui/phone-input/index.d.ts +1 -1
  149. package/dist/components/ui/phone-input/phone-input.svelte +106 -21
  150. package/dist/components/ui/phone-input/phone-input.svelte.d.ts +1 -2
  151. package/dist/components/ui/phone-input/types.d.ts +16 -1
  152. package/dist/components/ui/popover/popover-close.svelte +22 -3
  153. package/dist/components/ui/popover/popover-close.svelte.d.ts +7 -2
  154. package/dist/components/ui/popover/popover-content.svelte +80 -18
  155. package/dist/components/ui/popover/popover-content.svelte.d.ts +10 -6
  156. package/dist/components/ui/popover/popover-context.svelte.d.ts +13 -0
  157. package/dist/components/ui/popover/popover-context.svelte.js +13 -0
  158. package/dist/components/ui/popover/popover-portal.svelte +3 -3
  159. package/dist/components/ui/popover/popover-portal.svelte.d.ts +5 -1
  160. package/dist/components/ui/popover/popover-trigger.svelte +62 -10
  161. package/dist/components/ui/popover/popover-trigger.svelte.d.ts +12 -2
  162. package/dist/components/ui/popover/popover.svelte +50 -3
  163. package/dist/components/ui/popover/popover.svelte.d.ts +9 -1
  164. package/dist/components/ui/separator/separator.svelte +17 -11
  165. package/dist/components/ui/separator/separator.svelte.d.ts +7 -2
  166. package/dist/components/ui/sidebar/context.svelte.d.ts +15 -23
  167. package/dist/components/ui/sidebar/context.svelte.js +33 -21
  168. package/dist/components/ui/sidebar/sidebar-content.svelte +1 -1
  169. package/dist/components/ui/sidebar/sidebar-footer.svelte +1 -1
  170. package/dist/components/ui/sidebar/sidebar-group-content.svelte +1 -1
  171. package/dist/components/ui/sidebar/sidebar-menu-action.svelte +3 -2
  172. package/dist/components/ui/sidebar/sidebar-menu-button.svelte +35 -66
  173. package/dist/components/ui/sidebar/sidebar-menu-button.svelte.d.ts +9 -38
  174. package/dist/components/ui/sidebar/sidebar-provider.svelte +28 -18
  175. package/dist/components/ui/sidebar/sidebar-provider.svelte.d.ts +3 -0
  176. package/dist/components/ui/sidebar/sidebar-rail.svelte +1 -1
  177. package/dist/components/ui/sidebar/sidebar-separator.svelte +11 -8
  178. package/dist/components/ui/sidebar/sidebar-separator.svelte.d.ts +3 -11
  179. package/dist/components/ui/sidebar/sidebar-trigger.svelte +2 -2
  180. package/dist/components/ui/sidebar/sidebar.svelte +34 -23
  181. package/dist/components/ui/sidebar/sidebar.svelte.d.ts +1 -1
  182. package/dist/components/ui/skeleton/skeleton.svelte +7 -4
  183. package/dist/components/ui/skeleton/skeleton.svelte.d.ts +1 -1
  184. package/dist/components/ui/star-rating/star-rating-star.svelte +57 -31
  185. package/dist/components/ui/star-rating/star-rating-star.svelte.d.ts +1 -1
  186. package/dist/components/ui/star-rating/star-rating.svelte +143 -13
  187. package/dist/components/ui/star-rating/star-rating.svelte.d.ts +31 -2
  188. package/dist/components/ui/star-rating/types.d.ts +6 -1
  189. package/dist/components/ui/underline-tabs/underline-tabs-content.svelte +26 -9
  190. package/dist/components/ui/underline-tabs/underline-tabs-content.svelte.d.ts +9 -2
  191. package/dist/components/ui/underline-tabs/underline-tabs-list.svelte +15 -8
  192. package/dist/components/ui/underline-tabs/underline-tabs-list.svelte.d.ts +8 -2
  193. package/dist/components/ui/underline-tabs/underline-tabs-trigger.svelte +65 -34
  194. package/dist/components/ui/underline-tabs/underline-tabs-trigger.svelte.d.ts +14 -2
  195. package/dist/components/ui/underline-tabs/underline-tabs.svelte +49 -20
  196. package/dist/components/ui/underline-tabs/underline-tabs.svelte.d.ts +10 -2
  197. package/dist/components/ui/underline-tabs/underline-tabs.svelte.js +6 -59
  198. package/dist/docs/ApiTable.svelte +42 -0
  199. package/dist/docs/ApiTable.svelte.d.ts +7 -0
  200. package/dist/docs/CodeBlock.svelte +26 -0
  201. package/dist/docs/CodeBlock.svelte.d.ts +7 -0
  202. package/dist/docs/DocsHeader.svelte +25 -0
  203. package/dist/docs/DocsHeader.svelte.d.ts +6 -0
  204. package/dist/docs/DocsSidebar.svelte +99 -0
  205. package/dist/docs/DocsSidebar.svelte.d.ts +3 -0
  206. package/dist/docs/components.d.ts +27 -0
  207. package/dist/docs/components.js +897 -0
  208. package/dist/globals.css +466 -1590
  209. package/dist/styles/globals.css +136 -2
  210. package/dist/theme.svelte.d.ts +7 -0
  211. package/dist/theme.svelte.js +33 -0
  212. package/dist/utils.d.ts +4 -4
  213. package/dist/utils.js +18 -3
  214. package/package.json +4 -34
  215. package/dist/components/ui/chart/chart-container.svelte +0 -80
  216. package/dist/components/ui/chart/chart-container.svelte.d.ts +0 -9
  217. package/dist/components/ui/chart/chart-style.svelte +0 -37
  218. package/dist/components/ui/chart/chart-style.svelte.d.ts +0 -8
  219. package/dist/components/ui/chart/chart-tooltip.svelte +0 -184
  220. package/dist/components/ui/chart/chart-tooltip.svelte.d.ts +0 -27
  221. package/dist/components/ui/chart/chart-utils.d.ts +0 -36
  222. package/dist/components/ui/chart/chart-utils.js +0 -38
  223. package/dist/components/ui/chart/index.d.ts +0 -4
  224. package/dist/components/ui/chart/index.js +0 -4
  225. package/dist/components/ui/command/command-dialog.svelte +0 -42
  226. package/dist/components/ui/command/command-dialog.svelte.d.ts +0 -14
  227. package/dist/components/ui/command/command-empty.svelte +0 -17
  228. package/dist/components/ui/command/command-empty.svelte.d.ts +0 -4
  229. package/dist/components/ui/command/command-group.svelte +0 -33
  230. package/dist/components/ui/command/command-group.svelte.d.ts +0 -7
  231. package/dist/components/ui/command/command-input.svelte +0 -33
  232. package/dist/components/ui/command/command-input.svelte.d.ts +0 -4
  233. package/dist/components/ui/command/command-item.svelte +0 -27
  234. package/dist/components/ui/command/command-item.svelte.d.ts +0 -4
  235. package/dist/components/ui/command/command-link-item.svelte +0 -20
  236. package/dist/components/ui/command/command-link-item.svelte.d.ts +0 -4
  237. package/dist/components/ui/command/command-list.svelte +0 -20
  238. package/dist/components/ui/command/command-list.svelte.d.ts +0 -4
  239. package/dist/components/ui/command/command-loading.svelte +0 -7
  240. package/dist/components/ui/command/command-loading.svelte.d.ts +0 -4
  241. package/dist/components/ui/command/command-separator.svelte +0 -17
  242. package/dist/components/ui/command/command-separator.svelte.d.ts +0 -4
  243. package/dist/components/ui/command/command-shortcut.svelte +0 -23
  244. package/dist/components/ui/command/command-shortcut.svelte.d.ts +0 -5
  245. package/dist/components/ui/command/command.svelte +0 -28
  246. package/dist/components/ui/command/command.svelte.d.ts +0 -8
  247. package/dist/components/ui/command/index.d.ts +0 -12
  248. package/dist/components/ui/command/index.js +0 -14
  249. package/dist/components/ui/dialog/dialog-close.svelte +0 -11
  250. package/dist/components/ui/dialog/dialog-close.svelte.d.ts +0 -4
  251. package/dist/components/ui/dialog/dialog-content.svelte +0 -48
  252. package/dist/components/ui/dialog/dialog-content.svelte.d.ts +0 -13
  253. package/dist/components/ui/dialog/dialog-description.svelte +0 -20
  254. package/dist/components/ui/dialog/dialog-description.svelte.d.ts +0 -4
  255. package/dist/components/ui/dialog/dialog-footer.svelte +0 -32
  256. package/dist/components/ui/dialog/dialog-footer.svelte.d.ts +0 -8
  257. package/dist/components/ui/dialog/dialog-header.svelte +0 -20
  258. package/dist/components/ui/dialog/dialog-header.svelte.d.ts +0 -5
  259. package/dist/components/ui/dialog/dialog-overlay.svelte +0 -20
  260. package/dist/components/ui/dialog/dialog-overlay.svelte.d.ts +0 -4
  261. package/dist/components/ui/dialog/dialog-portal.svelte +0 -7
  262. package/dist/components/ui/dialog/dialog-portal.svelte.d.ts +0 -3
  263. package/dist/components/ui/dialog/dialog-title.svelte +0 -17
  264. package/dist/components/ui/dialog/dialog-title.svelte.d.ts +0 -4
  265. package/dist/components/ui/dialog/dialog-trigger.svelte +0 -11
  266. package/dist/components/ui/dialog/dialog-trigger.svelte.d.ts +0 -4
  267. package/dist/components/ui/dialog/dialog.svelte +0 -7
  268. package/dist/components/ui/dialog/dialog.svelte.d.ts +0 -3
  269. package/dist/components/ui/dialog/index.d.ts +0 -11
  270. package/dist/components/ui/dialog/index.js +0 -13
  271. package/dist/components/ui/input-group/index.d.ts +0 -7
  272. package/dist/components/ui/input-group/index.js +0 -9
  273. package/dist/components/ui/input-group/input-group-addon.svelte +0 -59
  274. package/dist/components/ui/input-group/input-group-addon.svelte.d.ts +0 -38
  275. package/dist/components/ui/input-group/input-group-button.svelte +0 -49
  276. package/dist/components/ui/input-group/input-group-button.svelte.d.ts +0 -32
  277. package/dist/components/ui/input-group/input-group-input.svelte +0 -23
  278. package/dist/components/ui/input-group/input-group-input.svelte.d.ts +0 -11
  279. package/dist/components/ui/input-group/input-group-text.svelte +0 -22
  280. package/dist/components/ui/input-group/input-group-text.svelte.d.ts +0 -5
  281. package/dist/components/ui/input-group/input-group-textarea.svelte +0 -23
  282. package/dist/components/ui/input-group/input-group-textarea.svelte.d.ts +0 -3
  283. package/dist/components/ui/input-group/input-group.svelte +0 -24
  284. package/dist/components/ui/input-group/input-group.svelte.d.ts +0 -5
  285. package/dist/components/ui/navigation-menu/index.d.ts +0 -9
  286. package/dist/components/ui/navigation-menu/index.js +0 -11
  287. package/dist/components/ui/navigation-menu/navigation-menu-content.svelte +0 -20
  288. package/dist/components/ui/navigation-menu/navigation-menu-content.svelte.d.ts +0 -4
  289. package/dist/components/ui/navigation-menu/navigation-menu-indicator.svelte +0 -22
  290. package/dist/components/ui/navigation-menu/navigation-menu-indicator.svelte.d.ts +0 -4
  291. package/dist/components/ui/navigation-menu/navigation-menu-item.svelte +0 -17
  292. package/dist/components/ui/navigation-menu/navigation-menu-item.svelte.d.ts +0 -4
  293. package/dist/components/ui/navigation-menu/navigation-menu-link.svelte +0 -17
  294. package/dist/components/ui/navigation-menu/navigation-menu-link.svelte.d.ts +0 -4
  295. package/dist/components/ui/navigation-menu/navigation-menu-list.svelte +0 -20
  296. package/dist/components/ui/navigation-menu/navigation-menu-list.svelte.d.ts +0 -4
  297. package/dist/components/ui/navigation-menu/navigation-menu-trigger.svelte +0 -30
  298. package/dist/components/ui/navigation-menu/navigation-menu-trigger.svelte.d.ts +0 -5
  299. package/dist/components/ui/navigation-menu/navigation-menu-viewport.svelte +0 -22
  300. package/dist/components/ui/navigation-menu/navigation-menu-viewport.svelte.d.ts +0 -4
  301. package/dist/components/ui/navigation-menu/navigation-menu.svelte +0 -31
  302. package/dist/components/ui/navigation-menu/navigation-menu.svelte.d.ts +0 -7
  303. package/dist/components/ui/scroll-area/index.d.ts +0 -3
  304. package/dist/components/ui/scroll-area/index.js +0 -5
  305. package/dist/components/ui/scroll-area/scroll-area-scrollbar.svelte +0 -30
  306. package/dist/components/ui/scroll-area/scroll-area-scrollbar.svelte.d.ts +0 -4
  307. package/dist/components/ui/scroll-area/scroll-area.svelte +0 -43
  308. package/dist/components/ui/scroll-area/scroll-area.svelte.d.ts +0 -11
  309. package/dist/components/ui/select/index.d.ts +0 -12
  310. package/dist/components/ui/select/index.js +0 -14
  311. package/dist/components/ui/select/select-content.svelte +0 -45
  312. package/dist/components/ui/select/select-content.svelte.d.ts +0 -11
  313. package/dist/components/ui/select/select-group-heading.svelte +0 -21
  314. package/dist/components/ui/select/select-group-heading.svelte.d.ts +0 -10
  315. package/dist/components/ui/select/select-group.svelte +0 -17
  316. package/dist/components/ui/select/select-group.svelte.d.ts +0 -4
  317. package/dist/components/ui/select/select-item.svelte +0 -41
  318. package/dist/components/ui/select/select-item.svelte.d.ts +0 -4
  319. package/dist/components/ui/select/select-label.svelte +0 -20
  320. package/dist/components/ui/select/select-label.svelte.d.ts +0 -6
  321. package/dist/components/ui/select/select-portal.svelte +0 -7
  322. package/dist/components/ui/select/select-portal.svelte.d.ts +0 -3
  323. package/dist/components/ui/select/select-scroll-down-button.svelte +0 -21
  324. package/dist/components/ui/select/select-scroll-down-button.svelte.d.ts +0 -4
  325. package/dist/components/ui/select/select-scroll-up-button.svelte +0 -21
  326. package/dist/components/ui/select/select-scroll-up-button.svelte.d.ts +0 -4
  327. package/dist/components/ui/select/select-separator.svelte +0 -18
  328. package/dist/components/ui/select/select-separator.svelte.d.ts +0 -4
  329. package/dist/components/ui/select/select-trigger.svelte +0 -30
  330. package/dist/components/ui/select/select-trigger.svelte.d.ts +0 -8
  331. package/dist/components/ui/select/select.svelte +0 -11
  332. package/dist/components/ui/select/select.svelte.d.ts +0 -3
  333. package/dist/components/ui/sheet/index.d.ts +0 -11
  334. package/dist/components/ui/sheet/index.js +0 -13
  335. package/dist/components/ui/sheet/sheet-close.svelte +0 -7
  336. package/dist/components/ui/sheet/sheet-close.svelte.d.ts +0 -4
  337. package/dist/components/ui/sheet/sheet-content.svelte +0 -56
  338. package/dist/components/ui/sheet/sheet-content.svelte.d.ts +0 -15
  339. package/dist/components/ui/sheet/sheet-description.svelte +0 -17
  340. package/dist/components/ui/sheet/sheet-description.svelte.d.ts +0 -4
  341. package/dist/components/ui/sheet/sheet-footer.svelte +0 -20
  342. package/dist/components/ui/sheet/sheet-footer.svelte.d.ts +0 -5
  343. package/dist/components/ui/sheet/sheet-header.svelte +0 -20
  344. package/dist/components/ui/sheet/sheet-header.svelte.d.ts +0 -5
  345. package/dist/components/ui/sheet/sheet-overlay.svelte +0 -17
  346. package/dist/components/ui/sheet/sheet-overlay.svelte.d.ts +0 -4
  347. package/dist/components/ui/sheet/sheet-portal.svelte +0 -7
  348. package/dist/components/ui/sheet/sheet-portal.svelte.d.ts +0 -3
  349. package/dist/components/ui/sheet/sheet-title.svelte +0 -17
  350. package/dist/components/ui/sheet/sheet-title.svelte.d.ts +0 -4
  351. package/dist/components/ui/sheet/sheet-trigger.svelte +0 -7
  352. package/dist/components/ui/sheet/sheet-trigger.svelte.d.ts +0 -4
  353. package/dist/components/ui/sheet/sheet.svelte +0 -7
  354. package/dist/components/ui/sheet/sheet.svelte.d.ts +0 -3
  355. package/dist/components/ui/spinner/index.d.ts +0 -1
  356. package/dist/components/ui/spinner/index.js +0 -1
  357. package/dist/components/ui/spinner/spinner.svelte +0 -26
  358. package/dist/components/ui/spinner/spinner.svelte.d.ts +0 -4
  359. package/dist/components/ui/tabs/index.d.ts +0 -5
  360. package/dist/components/ui/tabs/index.js +0 -7
  361. package/dist/components/ui/tabs/tabs-content.svelte +0 -17
  362. package/dist/components/ui/tabs/tabs-content.svelte.d.ts +0 -4
  363. package/dist/components/ui/tabs/tabs-list.svelte +0 -40
  364. package/dist/components/ui/tabs/tabs-list.svelte.d.ts +0 -25
  365. package/dist/components/ui/tabs/tabs-trigger.svelte +0 -23
  366. package/dist/components/ui/tabs/tabs-trigger.svelte.d.ts +0 -4
  367. package/dist/components/ui/tabs/tabs.svelte +0 -19
  368. package/dist/components/ui/tabs/tabs.svelte.d.ts +0 -4
  369. package/dist/components/ui/textarea/index.d.ts +0 -2
  370. package/dist/components/ui/textarea/index.js +0 -4
  371. package/dist/components/ui/textarea/textarea.svelte +0 -23
  372. package/dist/components/ui/textarea/textarea.svelte.d.ts +0 -5
  373. package/dist/components/ui/tooltip/index.d.ts +0 -6
  374. package/dist/components/ui/tooltip/index.js +0 -8
  375. package/dist/components/ui/tooltip/tooltip-content.svelte +0 -52
  376. package/dist/components/ui/tooltip/tooltip-content.svelte.d.ts +0 -11
  377. package/dist/components/ui/tooltip/tooltip-portal.svelte +0 -7
  378. package/dist/components/ui/tooltip/tooltip-portal.svelte.d.ts +0 -4
  379. package/dist/components/ui/tooltip/tooltip-provider.svelte +0 -7
  380. package/dist/components/ui/tooltip/tooltip-provider.svelte.d.ts +0 -4
  381. package/dist/components/ui/tooltip/tooltip-trigger.svelte +0 -7
  382. package/dist/components/ui/tooltip/tooltip-trigger.svelte.d.ts +0 -25
  383. package/dist/components/ui/tooltip/tooltip.svelte +0 -7
  384. package/dist/components/ui/tooltip/tooltip.svelte.d.ts +0 -25
  385. package/dist/vitest-examples/Welcome.svelte +0 -8
  386. package/dist/vitest-examples/Welcome.svelte.d.ts +0 -13
  387. package/dist/vitest-examples/Welcome.svelte.spec.d.ts +0 -1
  388. package/dist/vitest-examples/Welcome.svelte.spec.js +0 -11
  389. package/dist/vitest-examples/greet.d.ts +0 -1
  390. package/dist/vitest-examples/greet.js +0 -3
  391. package/dist/vitest-examples/greet.spec.d.ts +0 -1
  392. package/dist/vitest-examples/greet.spec.js +0 -7
@@ -7,9 +7,8 @@
7
7
  </script>
8
8
 
9
9
  <script lang="ts">
10
- import { MapPin } from "@hugeicons/core-free-icons";
10
+ import { MapPin, PlusSignIcon } from "@hugeicons/core-free-icons";
11
11
  import { HugeiconsIcon } from "@hugeicons/svelte";
12
- import PlusIcon from "@lucide/svelte/icons/plus";
13
12
  import Badge from "../../../ui/badge/badge.svelte";
14
13
  import Button from "../../../ui/button/button.svelte";
15
14
  import Skeleton from "../../../ui/skeleton/skeleton.svelte";
@@ -39,7 +38,7 @@
39
38
  <div class="mb-6 flex items-center justify-between">
40
39
  <h3 class="text-lg font-semibold">{title}</h3>
41
40
  <Button variant="ghost" size="sm" onclick={onAddAddress}>
42
- <PlusIcon class="size-4" />
41
+ <HugeiconsIcon icon={PlusSignIcon} class="size-4" />
43
42
  {addLabel}
44
43
  </Button>
45
44
  </div>
@@ -40,7 +40,9 @@
40
40
  <div
41
41
  class={cn(
42
42
  "mb-6 flex gap-1 border-b overflow-x-auto",
43
- style === "pill" && "-mt-12 mb-6 rounded-t-lg border border-t bg-background px-2 py-1 shadow-sm border-b",
43
+ style === "pill"
44
+ ? "-mt-12 mb-6 rounded-t-lg border border-t bg-background px-2 py-1 shadow-sm border-b"
45
+ : "",
44
46
  className
45
47
  )}
46
48
  data-slot="profile-user-tabs"
@@ -1,20 +1,30 @@
1
1
  <script lang="ts">
2
- import { Avatar as AvatarPrimitive } from "bits-ui";
3
- import { cn } from "../../../utils.js";
2
+ import { cn, type WithElementRef } from "../../../utils.js";
3
+ import type { HTMLAttributes } from "svelte/elements";
4
+ import { getAvatarContext } from "./context.svelte.js";
4
5
 
5
6
  let {
6
7
  ref = $bindable(null),
7
8
  class: className,
9
+ children,
8
10
  ...restProps
9
- }: AvatarPrimitive.FallbackProps = $props();
11
+ }: WithElementRef<HTMLAttributes<HTMLDivElement>> = $props();
12
+
13
+ const ctx = getAvatarContext();
14
+
15
+ let show = $derived(!ctx.src || ctx.imageError);
10
16
  </script>
11
17
 
12
- <AvatarPrimitive.Fallback
13
- bind:ref
14
- data-slot="avatar-fallback"
15
- class={cn(
16
- "bg-muted text-muted-foreground rounded-full flex size-full items-center justify-center text-sm group-data-[size=sm]/avatar:text-xs",
17
- className
18
- )}
19
- {...restProps}
20
- />
18
+ {#if show}
19
+ <div
20
+ bind:this={ref}
21
+ data-slot="avatar-fallback"
22
+ class={cn(
23
+ "bg-muted flex size-full items-center justify-center rounded-full fill-foreground text-sm select-none [&>svg]:size-full",
24
+ className
25
+ )}
26
+ {...restProps}
27
+ >
28
+ {@render children?.()}
29
+ </div>
30
+ {/if}
@@ -1,4 +1,5 @@
1
- import { Avatar as AvatarPrimitive } from "bits-ui";
2
- declare const AvatarFallback: import("svelte").Component<AvatarPrimitive.FallbackProps, {}, "ref">;
1
+ import { type WithElementRef } from "../../../utils.js";
2
+ import type { HTMLAttributes } from "svelte/elements";
3
+ declare const AvatarFallback: import("svelte").Component<WithElementRef<HTMLAttributes<HTMLDivElement>>, {}, "ref">;
3
4
  type AvatarFallback = ReturnType<typeof AvatarFallback>;
4
5
  export default AvatarFallback;
@@ -1,17 +1,39 @@
1
1
  <script lang="ts">
2
- import { Avatar as AvatarPrimitive } from "bits-ui";
3
- import { cn } from "../../../utils.js";
2
+ import { cn, type WithElementRef } from "../../../utils.js";
3
+ import type { HTMLImgAttributes } from "svelte/elements";
4
+ import { getAvatarContext } from "./context.svelte.js";
4
5
 
5
6
  let {
6
7
  ref = $bindable(null),
8
+ src,
9
+ srcset,
10
+ alt = "",
7
11
  class: className,
8
12
  ...restProps
9
- }: AvatarPrimitive.ImageProps = $props();
13
+ }: WithElementRef<HTMLImgAttributes> = $props();
14
+
15
+ const ctx = getAvatarContext();
16
+
17
+ $effect(() => {
18
+ if (src) ctx.src = src;
19
+ if (srcset) ctx.srcset = srcset;
20
+ });
10
21
  </script>
11
22
 
12
- <AvatarPrimitive.Image
13
- bind:ref
14
- data-slot="avatar-image"
15
- class={cn("rounded-full aspect-square size-full object-cover", className)}
16
- {...restProps}
17
- />
23
+ {#if src || ctx.src}
24
+ <img
25
+ bind:this={ref}
26
+ data-slot="avatar-image"
27
+ src={src ?? ctx.src}
28
+ srcset={srcset ?? ctx.srcset}
29
+ {alt}
30
+ onerror={() => {
31
+ ctx.imageError = true;
32
+ }}
33
+ onload={() => {
34
+ ctx.imageError = false;
35
+ }}
36
+ class={cn("aspect-square size-full rounded-full object-cover", className)}
37
+ {...restProps}
38
+ />
39
+ {/if}
@@ -1,4 +1,5 @@
1
- import { Avatar as AvatarPrimitive } from "bits-ui";
2
- declare const AvatarImage: import("svelte").Component<AvatarPrimitive.ImageProps, {}, "ref">;
1
+ import { type WithElementRef } from "../../../utils.js";
2
+ import type { HTMLImgAttributes } from "svelte/elements";
3
+ declare const AvatarImage: import("svelte").Component<WithElementRef<HTMLImgAttributes>, {}, "ref">;
3
4
  type AvatarImage = ReturnType<typeof AvatarImage>;
4
5
  export default AvatarImage;
@@ -1,26 +1,40 @@
1
1
  <script lang="ts">
2
- import { Avatar as AvatarPrimitive } from "bits-ui";
3
- import { cn } from "../../../utils.js";
2
+ import { cn, type WithElementRef } from "../../../utils.js";
3
+ import type { HTMLAttributes } from "svelte/elements";
4
+ import { setAvatarContext } from "./context.svelte.js";
4
5
 
5
6
  let {
6
7
  ref = $bindable(null),
7
- loadingStatus = $bindable("loading"),
8
8
  size = "default",
9
+ src,
10
+ srcset,
9
11
  class: className,
12
+ children,
10
13
  ...restProps
11
- }: AvatarPrimitive.RootProps & {
14
+ }: WithElementRef<HTMLAttributes<HTMLDivElement>> & {
12
15
  size?: "default" | "sm" | "lg";
16
+ src?: string;
17
+ srcset?: string;
13
18
  } = $props();
19
+
20
+ // svelte-ignore state_referenced_locally
21
+ const ctx = setAvatarContext(src, srcset);
22
+
23
+ $effect(() => {
24
+ if (src) ctx.src = src;
25
+ if (srcset) ctx.srcset = srcset;
26
+ });
14
27
  </script>
15
28
 
16
- <AvatarPrimitive.Root
17
- bind:ref
18
- bind:loadingStatus
29
+ <div
30
+ bind:this={ref}
19
31
  data-slot="avatar"
20
32
  data-size={size}
21
33
  class={cn(
22
- "size-8 rounded-full after:rounded-full data-[size=lg]:size-10 data-[size=sm]:size-6 after:border-border group/avatar relative flex shrink-0 select-none after:absolute after:inset-0 after:border after:mix-blend-darken dark:after:mix-blend-lighten",
34
+ "group/avatar relative flex size-10 shrink-0 select-none overflow-hidden rounded-full",
23
35
  className
24
36
  )}
25
37
  {...restProps}
26
- />
38
+ >
39
+ {@render children?.()}
40
+ </div>
@@ -1,7 +1,10 @@
1
- import { Avatar as AvatarPrimitive } from "bits-ui";
2
- type $$ComponentProps = AvatarPrimitive.RootProps & {
1
+ import { type WithElementRef } from "../../../utils.js";
2
+ import type { HTMLAttributes } from "svelte/elements";
3
+ type $$ComponentProps = WithElementRef<HTMLAttributes<HTMLDivElement>> & {
3
4
  size?: "default" | "sm" | "lg";
5
+ src?: string;
6
+ srcset?: string;
4
7
  };
5
- declare const Avatar: import("svelte").Component<$$ComponentProps, {}, "ref" | "loadingStatus">;
8
+ declare const Avatar: import("svelte").Component<$$ComponentProps, {}, "ref">;
6
9
  type Avatar = ReturnType<typeof Avatar>;
7
10
  export default Avatar;
@@ -0,0 +1,7 @@
1
+ export type AvatarContext = {
2
+ imageError: boolean;
3
+ src?: string;
4
+ srcset?: string;
5
+ };
6
+ export declare function setAvatarContext(src?: string, srcset?: string): AvatarContext;
7
+ export declare function getAvatarContext(): AvatarContext;
@@ -0,0 +1,10 @@
1
+ import { getContext, setContext } from "svelte";
2
+ const AVATAR_KEY = Symbol("avatar");
3
+ export function setAvatarContext(src, srcset) {
4
+ const ctx = $state({ imageError: false, src, srcset });
5
+ setContext(AVATAR_KEY, ctx);
6
+ return ctx;
7
+ }
8
+ export function getAvatarContext() {
9
+ return getContext(AVATAR_KEY);
10
+ }
@@ -1,49 +1,47 @@
1
1
  <script lang="ts" module>
2
- import { type VariantProps, tv } from "tailwind-variants";
2
+ import { cn } from "../../../utils.js";
3
3
 
4
- export const badgeVariants = tv({
5
- base: "h-5 gap-1 rounded-4xl border border-transparent px-2 py-0.5 text-xs font-medium transition-all has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&>svg]:size-3! focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive group/badge inline-flex w-fit shrink-0 items-center justify-center overflow-hidden whitespace-nowrap transition-colors focus-visible:ring-[3px] [&>svg]:pointer-events-none",
6
- variants: {
7
- variant: {
8
- default: "bg-primary text-primary-foreground [a]:hover:bg-primary/80",
9
- secondary: "bg-secondary text-secondary-foreground [a]:hover:bg-secondary/80",
10
- destructive: "bg-destructive/10 [a]:hover:bg-destructive/20 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 text-destructive dark:bg-destructive/20",
11
- outline: "border-border text-foreground [a]:hover:bg-muted [a]:hover:text-muted-foreground bg-input/30",
12
- ghost: "hover:bg-muted hover:text-muted-foreground dark:hover:bg-muted/50",
13
- link: "text-primary underline-offset-4 hover:underline",
14
- },
15
- },
16
- defaultVariants: {
17
- variant: "default",
18
- },
19
- });
4
+ const badgeBase =
5
+ "h-5 gap-1 rounded-4xl border border-transparent px-2 py-0.5 text-xs font-medium transition-all has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&>svg]:size-3! focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive group/badge inline-flex w-fit shrink-0 items-center justify-center overflow-hidden whitespace-nowrap transition-colors focus-visible:ring-[3px] [&>svg]:pointer-events-none";
20
6
 
21
- export type BadgeVariant = VariantProps<typeof badgeVariants>["variant"];
7
+ const badgeVariantClasses = {
8
+ default: "bg-primary text-primary-foreground [a]:hover:bg-primary/80",
9
+ secondary: "bg-secondary text-secondary-foreground [a]:hover:bg-secondary/80",
10
+ destructive:
11
+ "bg-destructive/10 [a]:hover:bg-destructive/20 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 text-destructive dark:bg-destructive/20",
12
+ outline: "border-border text-foreground [a]:hover:bg-muted [a]:hover:text-muted-foreground bg-input/30",
13
+ ghost: "hover:bg-muted hover:text-muted-foreground dark:hover:bg-muted/50",
14
+ link: "text-primary underline-offset-4 hover:underline",
15
+ } as const;
16
+
17
+ export type BadgeVariant = keyof typeof badgeVariantClasses;
18
+
19
+ export function badgeVariants(opts: { variant?: BadgeVariant } = {}): string {
20
+ const variant = opts.variant ?? "default";
21
+ return cn(badgeBase, badgeVariantClasses[variant]);
22
+ }
22
23
  </script>
23
24
 
24
25
  <script lang="ts">
25
- import type { HTMLAnchorAttributes } from "svelte/elements";
26
- import { cn, type WithElementRef } from "../../../utils.js";
26
+ import type { HTMLAttributes } from "svelte/elements";
27
+ import type { WithElementRef } from "../../../utils.js";
27
28
 
28
29
  let {
29
30
  ref = $bindable(null),
30
- href,
31
31
  class: className,
32
32
  variant = "default",
33
33
  children,
34
34
  ...restProps
35
- }: WithElementRef<HTMLAnchorAttributes> & {
35
+ }: WithElementRef<HTMLAttributes<HTMLDivElement>> & {
36
36
  variant?: BadgeVariant;
37
37
  } = $props();
38
38
  </script>
39
39
 
40
- <svelte:element
41
- this={href ? "a" : "span"}
40
+ <div
42
41
  bind:this={ref}
43
42
  data-slot="badge"
44
- {href}
45
43
  class={cn(badgeVariants({ variant }), className)}
46
44
  {...restProps}
47
45
  >
48
46
  {@render children?.()}
49
- </svelte:element>
47
+ </div>
@@ -1,36 +1,18 @@
1
- import { type VariantProps } from "tailwind-variants";
2
- export declare const badgeVariants: import("tailwind-variants").TVReturnType<{
3
- variant: {
4
- default: "bg-primary text-primary-foreground [a]:hover:bg-primary/80";
5
- secondary: "bg-secondary text-secondary-foreground [a]:hover:bg-secondary/80";
6
- destructive: "bg-destructive/10 [a]:hover:bg-destructive/20 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 text-destructive dark:bg-destructive/20";
7
- outline: "border-border text-foreground [a]:hover:bg-muted [a]:hover:text-muted-foreground bg-input/30";
8
- ghost: "hover:bg-muted hover:text-muted-foreground dark:hover:bg-muted/50";
9
- link: "text-primary underline-offset-4 hover:underline";
10
- };
11
- }, undefined, "h-5 gap-1 rounded-4xl border border-transparent px-2 py-0.5 text-xs font-medium transition-all has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&>svg]:size-3! focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive group/badge inline-flex w-fit shrink-0 items-center justify-center overflow-hidden whitespace-nowrap transition-colors focus-visible:ring-[3px] [&>svg]:pointer-events-none", {
12
- variant: {
13
- default: "bg-primary text-primary-foreground [a]:hover:bg-primary/80";
14
- secondary: "bg-secondary text-secondary-foreground [a]:hover:bg-secondary/80";
15
- destructive: "bg-destructive/10 [a]:hover:bg-destructive/20 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 text-destructive dark:bg-destructive/20";
16
- outline: "border-border text-foreground [a]:hover:bg-muted [a]:hover:text-muted-foreground bg-input/30";
17
- ghost: "hover:bg-muted hover:text-muted-foreground dark:hover:bg-muted/50";
18
- link: "text-primary underline-offset-4 hover:underline";
19
- };
20
- }, undefined, import("tailwind-variants").TVReturnTypeLike<{
21
- variant: {
22
- default: "bg-primary text-primary-foreground [a]:hover:bg-primary/80";
23
- secondary: "bg-secondary text-secondary-foreground [a]:hover:bg-secondary/80";
24
- destructive: "bg-destructive/10 [a]:hover:bg-destructive/20 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 text-destructive dark:bg-destructive/20";
25
- outline: "border-border text-foreground [a]:hover:bg-muted [a]:hover:text-muted-foreground bg-input/30";
26
- ghost: "hover:bg-muted hover:text-muted-foreground dark:hover:bg-muted/50";
27
- link: "text-primary underline-offset-4 hover:underline";
28
- };
29
- }, undefined>>;
30
- export type BadgeVariant = VariantProps<typeof badgeVariants>["variant"];
31
- import type { HTMLAnchorAttributes } from "svelte/elements";
32
- import { type WithElementRef } from "../../../utils.js";
33
- type $$ComponentProps = WithElementRef<HTMLAnchorAttributes> & {
1
+ declare const badgeVariantClasses: {
2
+ readonly default: "bg-primary text-primary-foreground [a]:hover:bg-primary/80";
3
+ readonly secondary: "bg-secondary text-secondary-foreground [a]:hover:bg-secondary/80";
4
+ readonly destructive: "bg-destructive/10 [a]:hover:bg-destructive/20 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 text-destructive dark:bg-destructive/20";
5
+ readonly outline: "border-border text-foreground [a]:hover:bg-muted [a]:hover:text-muted-foreground bg-input/30";
6
+ readonly ghost: "hover:bg-muted hover:text-muted-foreground dark:hover:bg-muted/50";
7
+ readonly link: "text-primary underline-offset-4 hover:underline";
8
+ };
9
+ export type BadgeVariant = keyof typeof badgeVariantClasses;
10
+ export declare function badgeVariants(opts?: {
11
+ variant?: BadgeVariant;
12
+ }): string;
13
+ import type { HTMLAttributes } from "svelte/elements";
14
+ import type { WithElementRef } from "../../../utils.js";
15
+ type $$ComponentProps = WithElementRef<HTMLAttributes<HTMLDivElement>> & {
34
16
  variant?: BadgeVariant;
35
17
  };
36
18
  declare const Badge: import("svelte").Component<$$ComponentProps, {}, "ref">;
@@ -1,38 +1,42 @@
1
1
  <script lang="ts" module>
2
- import { type VariantProps, tv } from "tailwind-variants";
3
2
  import { cn, type WithElementRef } from "../../../utils.js";
4
3
  import type { HTMLAnchorAttributes, HTMLButtonAttributes } from "svelte/elements";
5
4
 
6
- export const buttonVariants = tv({
7
- base: "rounded-sm border border-transparent bg-clip-padding text-sm font-medium focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px aria-invalid:border-destructive aria-invalid:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&_svg:not([class*='size-'])]:size-4 group/button inline-flex shrink-0 items-center justify-center whitespace-nowrap transition-all outline-none select-none disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0",
8
- variants: {
9
- variant: {
10
- default: "bg-primary text-primary-foreground hover:bg-primary/80",
11
- outline: "border-border bg-input/30 hover:bg-input/50 hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground",
12
- secondary: "bg-secondary text-secondary-foreground hover:bg-secondary/80 aria-expanded:bg-secondary aria-expanded:text-secondary-foreground",
13
- ghost: "hover:bg-muted hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground dark:hover:bg-muted/50",
14
- destructive: "bg-destructive/10 text-destructive hover:bg-destructive/20 focus-visible:border-destructive/40 focus-visible:ring-destructive/20 dark:bg-destructive/20 dark:hover:bg-destructive/30 dark:focus-visible:ring-destructive/40",
15
- link: "text-primary underline-offset-4 hover:underline",
16
- },
17
- size: {
18
- default: "h-9 gap-1.5 px-3 has-data-[icon=inline-end]:pr-2.5 has-data-[icon=inline-start]:pl-2.5",
19
- xs: "h-6 gap-1 px-2.5 text-xs has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2 [&_svg:not([class*='size-'])]:size-3",
20
- sm: "h-8 gap-1 px-3 has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2",
21
- lg: "h-10 gap-1.5 px-4 has-data-[icon=inline-end]:pr-3 has-data-[icon=inline-start]:pl-3",
22
- icon: "size-9",
23
- "icon-xs": "size-6 [&_svg:not([class*='size-'])]:size-3",
24
- "icon-sm": "size-8",
25
- "icon-lg": "size-10",
26
- },
27
- },
28
- defaultVariants: {
29
- variant: "default",
30
- size: "default",
31
- },
32
- });
5
+ const buttonBase =
6
+ "rounded-sm border border-transparent bg-clip-padding text-sm font-medium focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px aria-invalid:border-destructive aria-invalid:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&_svg:not([class*='size-'])]:size-4 group/button inline-flex shrink-0 items-center justify-center whitespace-nowrap transition-all outline-none select-none disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0";
33
7
 
34
- export type ButtonVariant = VariantProps<typeof buttonVariants>["variant"];
35
- export type ButtonSize = VariantProps<typeof buttonVariants>["size"];
8
+ const buttonVariantClasses = {
9
+ default: "bg-primary text-primary-foreground hover:bg-primary/80",
10
+ outline:
11
+ "border-border bg-input/30 hover:bg-input/50 hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground",
12
+ secondary:
13
+ "bg-secondary text-secondary-foreground hover:bg-secondary/80 aria-expanded:bg-secondary aria-expanded:text-secondary-foreground",
14
+ ghost: "hover:bg-muted hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground dark:hover:bg-muted/50",
15
+ destructive:
16
+ "bg-destructive/10 text-destructive hover:bg-destructive/20 focus-visible:border-destructive/40 focus-visible:ring-destructive/20 dark:bg-destructive/20 dark:hover:bg-destructive/30 dark:focus-visible:ring-destructive/40",
17
+ link: "text-primary underline-offset-4 hover:underline",
18
+ } as const;
19
+
20
+ const buttonSizeClasses = {
21
+ default:
22
+ "h-9 gap-1.5 px-3 has-data-[icon=inline-end]:pr-2.5 has-data-[icon=inline-start]:pl-2.5",
23
+ xs: "h-6 gap-1 px-2.5 text-xs has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2 [&_svg:not([class*='size-'])]:size-3",
24
+ sm: "h-8 gap-1 px-3 has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2",
25
+ lg: "h-10 gap-1.5 px-4 has-data-[icon=inline-end]:pr-3 has-data-[icon=inline-start]:pl-3",
26
+ icon: "size-9",
27
+ "icon-xs": "size-6 [&_svg:not([class*='size-'])]:size-3",
28
+ "icon-sm": "size-8",
29
+ "icon-lg": "size-10",
30
+ } as const;
31
+
32
+ export type ButtonVariant = keyof typeof buttonVariantClasses;
33
+ export type ButtonSize = keyof typeof buttonSizeClasses;
34
+
35
+ export function buttonVariants(opts: { variant?: ButtonVariant; size?: ButtonSize } = {}): string {
36
+ const variant = opts.variant ?? "default";
37
+ const size = opts.size ?? "default";
38
+ return cn(buttonBase, buttonVariantClasses[variant], buttonSizeClasses[size]);
39
+ }
36
40
 
37
41
  export type ButtonProps = WithElementRef<HTMLButtonAttributes> &
38
42
  WithElementRef<HTMLAnchorAttributes> & {
@@ -79,4 +83,4 @@
79
83
  >
80
84
  {@render children?.()}
81
85
  </button>
82
- {/if}
86
+ {/if}
@@ -1,66 +1,29 @@
1
- import { type VariantProps } from "tailwind-variants";
2
1
  import { type WithElementRef } from "../../../utils.js";
3
2
  import type { HTMLAnchorAttributes, HTMLButtonAttributes } from "svelte/elements";
4
- export declare const buttonVariants: import("tailwind-variants").TVReturnType<{
5
- variant: {
6
- default: "bg-primary text-primary-foreground hover:bg-primary/80";
7
- outline: "border-border bg-input/30 hover:bg-input/50 hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground";
8
- secondary: "bg-secondary text-secondary-foreground hover:bg-secondary/80 aria-expanded:bg-secondary aria-expanded:text-secondary-foreground";
9
- ghost: "hover:bg-muted hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground dark:hover:bg-muted/50";
10
- destructive: "bg-destructive/10 text-destructive hover:bg-destructive/20 focus-visible:border-destructive/40 focus-visible:ring-destructive/20 dark:bg-destructive/20 dark:hover:bg-destructive/30 dark:focus-visible:ring-destructive/40";
11
- link: "text-primary underline-offset-4 hover:underline";
12
- };
13
- size: {
14
- default: "h-9 gap-1.5 px-3 has-data-[icon=inline-end]:pr-2.5 has-data-[icon=inline-start]:pl-2.5";
15
- xs: "h-6 gap-1 px-2.5 text-xs has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2 [&_svg:not([class*='size-'])]:size-3";
16
- sm: "h-8 gap-1 px-3 has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2";
17
- lg: "h-10 gap-1.5 px-4 has-data-[icon=inline-end]:pr-3 has-data-[icon=inline-start]:pl-3";
18
- icon: "size-9";
19
- "icon-xs": "size-6 [&_svg:not([class*='size-'])]:size-3";
20
- "icon-sm": "size-8";
21
- "icon-lg": "size-10";
22
- };
23
- }, undefined, "rounded-sm border border-transparent bg-clip-padding text-sm font-medium focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px aria-invalid:border-destructive aria-invalid:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&_svg:not([class*='size-'])]:size-4 group/button inline-flex shrink-0 items-center justify-center whitespace-nowrap transition-all outline-none select-none disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0", {
24
- variant: {
25
- default: "bg-primary text-primary-foreground hover:bg-primary/80";
26
- outline: "border-border bg-input/30 hover:bg-input/50 hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground";
27
- secondary: "bg-secondary text-secondary-foreground hover:bg-secondary/80 aria-expanded:bg-secondary aria-expanded:text-secondary-foreground";
28
- ghost: "hover:bg-muted hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground dark:hover:bg-muted/50";
29
- destructive: "bg-destructive/10 text-destructive hover:bg-destructive/20 focus-visible:border-destructive/40 focus-visible:ring-destructive/20 dark:bg-destructive/20 dark:hover:bg-destructive/30 dark:focus-visible:ring-destructive/40";
30
- link: "text-primary underline-offset-4 hover:underline";
31
- };
32
- size: {
33
- default: "h-9 gap-1.5 px-3 has-data-[icon=inline-end]:pr-2.5 has-data-[icon=inline-start]:pl-2.5";
34
- xs: "h-6 gap-1 px-2.5 text-xs has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2 [&_svg:not([class*='size-'])]:size-3";
35
- sm: "h-8 gap-1 px-3 has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2";
36
- lg: "h-10 gap-1.5 px-4 has-data-[icon=inline-end]:pr-3 has-data-[icon=inline-start]:pl-3";
37
- icon: "size-9";
38
- "icon-xs": "size-6 [&_svg:not([class*='size-'])]:size-3";
39
- "icon-sm": "size-8";
40
- "icon-lg": "size-10";
41
- };
42
- }, undefined, import("tailwind-variants").TVReturnTypeLike<{
43
- variant: {
44
- default: "bg-primary text-primary-foreground hover:bg-primary/80";
45
- outline: "border-border bg-input/30 hover:bg-input/50 hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground";
46
- secondary: "bg-secondary text-secondary-foreground hover:bg-secondary/80 aria-expanded:bg-secondary aria-expanded:text-secondary-foreground";
47
- ghost: "hover:bg-muted hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground dark:hover:bg-muted/50";
48
- destructive: "bg-destructive/10 text-destructive hover:bg-destructive/20 focus-visible:border-destructive/40 focus-visible:ring-destructive/20 dark:bg-destructive/20 dark:hover:bg-destructive/30 dark:focus-visible:ring-destructive/40";
49
- link: "text-primary underline-offset-4 hover:underline";
50
- };
51
- size: {
52
- default: "h-9 gap-1.5 px-3 has-data-[icon=inline-end]:pr-2.5 has-data-[icon=inline-start]:pl-2.5";
53
- xs: "h-6 gap-1 px-2.5 text-xs has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2 [&_svg:not([class*='size-'])]:size-3";
54
- sm: "h-8 gap-1 px-3 has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2";
55
- lg: "h-10 gap-1.5 px-4 has-data-[icon=inline-end]:pr-3 has-data-[icon=inline-start]:pl-3";
56
- icon: "size-9";
57
- "icon-xs": "size-6 [&_svg:not([class*='size-'])]:size-3";
58
- "icon-sm": "size-8";
59
- "icon-lg": "size-10";
60
- };
61
- }, undefined>>;
62
- export type ButtonVariant = VariantProps<typeof buttonVariants>["variant"];
63
- export type ButtonSize = VariantProps<typeof buttonVariants>["size"];
3
+ declare const buttonVariantClasses: {
4
+ readonly default: "bg-primary text-primary-foreground hover:bg-primary/80";
5
+ readonly outline: "border-border bg-input/30 hover:bg-input/50 hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground";
6
+ readonly secondary: "bg-secondary text-secondary-foreground hover:bg-secondary/80 aria-expanded:bg-secondary aria-expanded:text-secondary-foreground";
7
+ readonly ghost: "hover:bg-muted hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground dark:hover:bg-muted/50";
8
+ readonly destructive: "bg-destructive/10 text-destructive hover:bg-destructive/20 focus-visible:border-destructive/40 focus-visible:ring-destructive/20 dark:bg-destructive/20 dark:hover:bg-destructive/30 dark:focus-visible:ring-destructive/40";
9
+ readonly link: "text-primary underline-offset-4 hover:underline";
10
+ };
11
+ declare const buttonSizeClasses: {
12
+ readonly default: "h-9 gap-1.5 px-3 has-data-[icon=inline-end]:pr-2.5 has-data-[icon=inline-start]:pl-2.5";
13
+ readonly xs: "h-6 gap-1 px-2.5 text-xs has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2 [&_svg:not([class*='size-'])]:size-3";
14
+ readonly sm: "h-8 gap-1 px-3 has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2";
15
+ readonly lg: "h-10 gap-1.5 px-4 has-data-[icon=inline-end]:pr-3 has-data-[icon=inline-start]:pl-3";
16
+ readonly icon: "size-9";
17
+ readonly "icon-xs": "size-6 [&_svg:not([class*='size-'])]:size-3";
18
+ readonly "icon-sm": "size-8";
19
+ readonly "icon-lg": "size-10";
20
+ };
21
+ export type ButtonVariant = keyof typeof buttonVariantClasses;
22
+ export type ButtonSize = keyof typeof buttonSizeClasses;
23
+ export declare function buttonVariants(opts?: {
24
+ variant?: ButtonVariant;
25
+ size?: ButtonSize;
26
+ }): string;
64
27
  export type ButtonProps = WithElementRef<HTMLButtonAttributes> & WithElementRef<HTMLAnchorAttributes> & {
65
28
  variant?: ButtonVariant;
66
29
  size?: ButtonSize;
@@ -0,0 +1,7 @@
1
+ import type { CarouselPlugins } from "./context.js";
2
+ export type AutoplayOptions = {
3
+ delay?: number;
4
+ stopOnInteraction?: boolean;
5
+ loop?: boolean;
6
+ };
7
+ export declare function autoplay(options?: AutoplayOptions): CarouselPlugins[number];
@@ -0,0 +1,7 @@
1
+ export function autoplay(options = {}) {
2
+ return {
3
+ delay: options.delay ?? 4000,
4
+ stopOnInteraction: options.stopOnInteraction ?? true,
5
+ loop: options.loop ?? false,
6
+ };
7
+ }
@@ -1,7 +1,7 @@
1
1
  <script lang="ts">
2
- import emblaCarouselSvelte from "embla-carousel-svelte";
3
2
  import { cn, type WithElementRef } from "../../../utils.js";
4
3
  import { getEmblaContext } from "./context.js";
4
+ import type { Action } from "svelte/action";
5
5
  import type { HTMLAttributes } from "svelte/elements";
6
6
 
7
7
  let {
@@ -12,32 +12,46 @@
12
12
  }: WithElementRef<HTMLAttributes<HTMLDivElement>> = $props();
13
13
 
14
14
  const emblaCtx = getEmblaContext("<Carousel.Content/>");
15
+
16
+ let containerEl = $state<HTMLDivElement | null>(null);
17
+
18
+ $effect(() => {
19
+ emblaCtx.setContainer(containerEl);
20
+ });
21
+
22
+ const carouselKeyboard = ((node: HTMLElement) => {
23
+ const handler = (event: KeyboardEvent) => emblaCtx.handleKeyDown(event);
24
+ node.addEventListener("keydown", handler);
25
+ return {
26
+ destroy() {
27
+ node.removeEventListener("keydown", handler);
28
+ },
29
+ };
30
+ }) satisfies Action;
15
31
  </script>
16
32
 
17
33
  <div
34
+ bind:this={ref}
18
35
  data-slot="carousel-content"
19
36
  class="overflow-hidden"
20
- use:emblaCarouselSvelte={{
21
- options: {
22
- container: "[data-embla-container]",
23
- slides: "[data-embla-slide]",
24
- ...emblaCtx.options,
25
- axis: emblaCtx.orientation === "horizontal" ? "x" : "y",
26
- },
27
- plugins: emblaCtx.plugins,
28
- }}
29
- onemblaInit={emblaCtx.onInit}
37
+ {...restProps}
30
38
  >
39
+ <!-- svelte-ignore a11y_no_noninteractive_tabindex -->
31
40
  <div
32
- bind:this={ref}
41
+ bind:this={containerEl}
42
+ use:carouselKeyboard
43
+ role="region"
44
+ aria-roledescription="carousel"
45
+ aria-label="Carousel"
46
+ tabindex="0"
33
47
  class={cn(
34
- "flex",
35
- emblaCtx.orientation === "horizontal" ? "-ms-4" : "-mt-4 flex-col",
48
+ emblaCtx.orientation === "horizontal"
49
+ ? "flex flex-row overflow-x-auto snap-x snap-mandatory scroll-smooth no-scrollbar -ms-4"
50
+ : "flex flex-col overflow-y-auto snap-y snap-mandatory scroll-smooth no-scrollbar -mt-4",
36
51
  className
37
52
  )}
38
- data-embla-container=""
39
- {...restProps}
53
+ onscroll={emblaCtx.onScroll}
40
54
  >
41
55
  {@render children?.()}
42
56
  </div>
43
- </div>
57
+ </div>