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
@@ -1,3 +1,7 @@
1
- declare const PopoverPortal: import("svelte").Component<import("bits-ui").PortalProps, {}, "">;
1
+ import type { Snippet } from "svelte";
2
+ type $$ComponentProps = {
3
+ children?: Snippet;
4
+ };
5
+ declare const PopoverPortal: import("svelte").Component<$$ComponentProps, {}, "">;
2
6
  type PopoverPortal = ReturnType<typeof PopoverPortal>;
3
7
  export default PopoverPortal;
@@ -1,17 +1,69 @@
1
1
  <script lang="ts">
2
- import { cn } from '../../../utils.js';
3
- import { Popover as PopoverPrimitive } from 'bits-ui';
2
+ import { getPopoverContext } from "./popover-context.svelte.js";
3
+ import { cn } from "../../../utils.js";
4
+ import type { Snippet } from "svelte";
5
+ import type { HTMLButtonAttributes } from "svelte/elements";
4
6
 
5
7
  let {
6
- ref = $bindable(null),
8
+ // eslint-disable-next-line no-useless-assignment
9
+ ref = $bindable<HTMLButtonElement | null>(null),
7
10
  class: className,
11
+ children,
12
+ child,
13
+ onclick,
8
14
  ...restProps
9
- }: PopoverPrimitive.TriggerProps = $props();
15
+ }: HTMLButtonAttributes & {
16
+ ref?: HTMLButtonElement | null;
17
+ class?: string;
18
+ children?: Snippet;
19
+ child?: Snippet<[{ props: Record<string, unknown> }]>;
20
+ onclick?: (event: MouseEvent) => void;
21
+ } = $props();
22
+
23
+ const store = getPopoverContext();
24
+
25
+ let anchorEl = $state<HTMLButtonElement | null>(null);
26
+
27
+ function handleClick(event: MouseEvent) {
28
+ store.clickEvent = event;
29
+ store.toggle();
30
+ onclick?.(event);
31
+ }
32
+
33
+ $effect(() => {
34
+ const el = (anchorEl ?? document.getElementById(store.anchorId)) as HTMLButtonElement | null;
35
+ if (el) {
36
+ store.setAnchor(el);
37
+ ref = el;
38
+ anchorEl = el;
39
+ }
40
+ });
10
41
  </script>
11
42
 
12
- <PopoverPrimitive.Trigger
13
- bind:ref
14
- data-slot="popover-trigger"
15
- class={cn('', className)}
16
- {...restProps}
17
- />
43
+ {#if child}
44
+ {@render child({
45
+ props: {
46
+ id: store.anchorId,
47
+ type: "button",
48
+ "aria-haspopup": "dialog",
49
+ "aria-expanded": store.open,
50
+ "data-state": store.open ? "open" : "closed",
51
+ onclick: handleClick,
52
+ },
53
+ })}
54
+ {:else}
55
+ <button
56
+ bind:this={anchorEl}
57
+ type="button"
58
+ id={store.anchorId}
59
+ aria-haspopup="dialog"
60
+ aria-expanded={store.open}
61
+ data-state={store.open ? "open" : "closed"}
62
+ onclick={handleClick}
63
+ data-slot="popover-trigger"
64
+ class={cn("", className)}
65
+ {...restProps}
66
+ >
67
+ {@render children?.()}
68
+ </button>
69
+ {/if}
@@ -1,4 +1,14 @@
1
- import { Popover as PopoverPrimitive } from 'bits-ui';
2
- declare const PopoverTrigger: import("svelte").Component<PopoverPrimitive.TriggerProps, {}, "ref">;
1
+ import type { Snippet } from "svelte";
2
+ import type { HTMLButtonAttributes } from "svelte/elements";
3
+ type $$ComponentProps = HTMLButtonAttributes & {
4
+ ref?: HTMLButtonElement | null;
5
+ class?: string;
6
+ children?: Snippet;
7
+ child?: Snippet<[{
8
+ props: Record<string, unknown>;
9
+ }]>;
10
+ onclick?: (event: MouseEvent) => void;
11
+ };
12
+ declare const PopoverTrigger: import("svelte").Component<$$ComponentProps, {}, "ref">;
3
13
  type PopoverTrigger = ReturnType<typeof PopoverTrigger>;
4
14
  export default PopoverTrigger;
@@ -1,7 +1,54 @@
1
1
  <script lang="ts">
2
- import { Popover as PopoverPrimitive } from 'bits-ui';
2
+ import { generatePopoverId, setPopoverContext, type PopoverStore } from "./popover-context.svelte.js";
3
+ import type { Snippet } from "svelte";
4
+ import type { HTMLAttributes } from "svelte/elements";
3
5
 
4
- let { open = $bindable(false), ...restProps }: PopoverPrimitive.RootProps = $props();
6
+ let {
7
+ open = $bindable<boolean>(),
8
+ defaultOpen = false,
9
+ onOpenChange,
10
+ children,
11
+ ...restProps
12
+ }: HTMLAttributes<HTMLDivElement> & {
13
+ open?: boolean;
14
+ defaultOpen?: boolean;
15
+ onOpenChange?: (open: boolean) => void;
16
+ children?: Snippet;
17
+ } = $props();
18
+
19
+ // svelte-ignore state_referenced_locally
20
+ let store: PopoverStore = $state({
21
+ open: open ?? defaultOpen ?? false,
22
+ anchorId: generatePopoverId(),
23
+ anchorEl: null,
24
+ clickEvent: null,
25
+ toggle: () => {
26
+ setOpen(!store.open);
27
+ },
28
+ openMenu: () => setOpen(true),
29
+ closeMenu: () => setOpen(false),
30
+ setAnchor: (el: HTMLElement | null) => {
31
+ store.anchorEl = el;
32
+ },
33
+ });
34
+
35
+ function setOpen(value: boolean) {
36
+ if (store.open === value) return;
37
+ store.open = value;
38
+ open = value;
39
+ onOpenChange?.(value);
40
+ }
41
+
42
+ $effect(() => {
43
+ if (open !== undefined && open !== store.open) {
44
+ store.open = open;
45
+ onOpenChange?.(open);
46
+ }
47
+ });
48
+
49
+ setPopoverContext(store);
5
50
  </script>
6
51
 
7
- <PopoverPrimitive.Root bind:open {...restProps} />
52
+ <div class="relative" {...restProps}>
53
+ {@render children?.()}
54
+ </div>
@@ -1,3 +1,11 @@
1
- declare const Popover: import("svelte").Component<import("bits-ui").PopoverRootPropsWithoutHTML, {}, "open">;
1
+ import type { Snippet } from "svelte";
2
+ import type { HTMLAttributes } from "svelte/elements";
3
+ type $$ComponentProps = HTMLAttributes<HTMLDivElement> & {
4
+ open?: boolean;
5
+ defaultOpen?: boolean;
6
+ onOpenChange?: (open: boolean) => void;
7
+ children?: Snippet;
8
+ };
9
+ declare const Popover: import("svelte").Component<$$ComponentProps, {}, "open">;
2
10
  type Popover = ReturnType<typeof Popover>;
3
11
  export default Popover;
@@ -1,23 +1,29 @@
1
1
  <script lang="ts">
2
- import { Separator as SeparatorPrimitive } 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
4
 
5
5
  let {
6
6
  ref = $bindable(null),
7
+ orientation = "horizontal",
8
+ decorative = false,
7
9
  class: className,
8
- "data-slot": dataSlot = "separator",
9
10
  ...restProps
10
- }: SeparatorPrimitive.RootProps = $props();
11
+ }: WithElementRef<HTMLAttributes<HTMLDivElement>> & {
12
+ orientation?: "horizontal" | "vertical";
13
+ decorative?: boolean;
14
+ } = $props();
11
15
  </script>
12
16
 
13
- <SeparatorPrimitive.Root
14
- bind:ref
15
- data-slot={dataSlot}
17
+ <div
18
+ bind:this={ref}
19
+ data-slot="separator"
20
+ data-orientation={orientation}
21
+ role={decorative ? undefined : "separator"}
22
+ aria-orientation={decorative ? undefined : orientation}
16
23
  class={cn(
17
- "bg-border shrink-0 data-[orientation=horizontal]:h-px data-[orientation=horizontal]:w-full data-[orientation=vertical]:w-px",
18
- // this is different in shadcn/ui but self-stretch breaks things for us
19
- "data-[orientation=vertical]:h-full",
24
+ "shrink-0 bg-border",
25
+ orientation === "horizontal" ? "h-px w-full" : "h-full w-px",
20
26
  className
21
27
  )}
22
28
  {...restProps}
23
- />
29
+ ></div>
@@ -1,4 +1,9 @@
1
- import { Separator as SeparatorPrimitive } from "bits-ui";
2
- declare const Separator: import("svelte").Component<SeparatorPrimitive.RootProps, {}, "ref">;
1
+ import { type WithElementRef } from "../../../utils.js";
2
+ import type { HTMLAttributes } from "svelte/elements";
3
+ type $$ComponentProps = WithElementRef<HTMLAttributes<HTMLDivElement>> & {
4
+ orientation?: "horizontal" | "vertical";
5
+ decorative?: boolean;
6
+ };
7
+ declare const Separator: import("svelte").Component<$$ComponentProps, {}, "ref">;
3
8
  type Separator = ReturnType<typeof Separator>;
4
9
  export default Separator;
@@ -1,42 +1,34 @@
1
1
  type Getter<T> = () => T;
2
2
  export type SidebarStateProps = {
3
- /**
4
- * A getter function that returns the current open state of the sidebar.
5
- * We use a getter function here to support `bind:open` on the `Sidebar.Provider`
6
- * component.
7
- */
8
3
  open: Getter<boolean>;
9
- /**
10
- * A function that sets the open state of the sidebar. To support `bind:open`, we need
11
- * a source of truth for changing the open state to ensure it will be synced throughout
12
- * the sub-components and any `bind:` references.
13
- */
14
4
  setOpen: (open: boolean) => void;
5
+ collapsible?: "icon" | "offcanvas" | "none";
6
+ side?: "left" | "right";
7
+ variant?: "sidebar" | "floating" | "inset";
15
8
  };
16
9
  declare class SidebarState {
17
10
  #private;
18
11
  readonly props: SidebarStateProps;
19
12
  open: boolean;
20
13
  openMobile: boolean;
14
+ collapsible: "icon" | "none" | "offcanvas";
15
+ side: "right" | "left";
16
+ variant: "inset" | "sidebar" | "floating";
21
17
  setOpen: SidebarStateProps["setOpen"];
22
- state: string;
23
18
  constructor(props: SidebarStateProps);
24
19
  get isMobile(): boolean;
20
+ get state(): "expanded" | "collapsed";
21
+ get isOpen(): boolean;
22
+ setConfig(config: {
23
+ collapsible?: "icon" | "offcanvas" | "none";
24
+ side?: "left" | "right";
25
+ variant?: "sidebar" | "floating" | "inset";
26
+ }): void;
25
27
  handleShortcutKeydown: (e: KeyboardEvent) => void;
26
28
  setOpenMobile: (value: boolean) => void;
27
- toggle: () => boolean | void;
29
+ toggleSidebar: () => void;
30
+ toggle: () => void;
28
31
  }
29
- /**
30
- * Instantiates a new `SidebarState` instance and sets it in the context.
31
- *
32
- * @param props The constructor props for the `SidebarState` class.
33
- * @returns The `SidebarState` instance.
34
- */
35
32
  export declare function setSidebar(props: SidebarStateProps): SidebarState;
36
- /**
37
- * Retrieves the `SidebarState` instance from the context. This is a class instance,
38
- * so you cannot destructure it.
39
- * @returns The `SidebarState` instance.
40
- */
41
33
  export declare function useSidebar(): SidebarState;
42
34
  export {};
@@ -5,50 +5,62 @@ class SidebarState {
5
5
  props;
6
6
  open = $derived.by(() => this.props.open());
7
7
  openMobile = $state(false);
8
+ collapsible = $state("offcanvas");
9
+ side = $state("left");
10
+ variant = $state("sidebar");
8
11
  setOpen;
9
12
  #isMobile;
10
- state = $derived.by(() => (this.open ? "expanded" : "collapsed"));
11
13
  constructor(props) {
14
+ this.props = props;
12
15
  this.setOpen = props.setOpen;
13
16
  this.#isMobile = new IsMobile();
14
- this.props = props;
17
+ if (props.collapsible !== undefined)
18
+ this.collapsible = props.collapsible;
19
+ if (props.side !== undefined)
20
+ this.side = props.side;
21
+ if (props.variant !== undefined)
22
+ this.variant = props.variant;
15
23
  }
16
- // Convenience getter for checking if the sidebar is mobile
17
- // without this, we would need to use `sidebar.isMobile.current` everywhere
18
24
  get isMobile() {
19
25
  return this.#isMobile.current;
20
26
  }
21
- // Event handler to apply to the `<svelte:window>`
27
+ get state() {
28
+ return this.open ? "expanded" : "collapsed";
29
+ }
30
+ get isOpen() {
31
+ return this.isMobile ? this.openMobile : this.open;
32
+ }
33
+ setConfig(config) {
34
+ if (config.collapsible !== undefined)
35
+ this.collapsible = config.collapsible;
36
+ if (config.side !== undefined)
37
+ this.side = config.side;
38
+ if (config.variant !== undefined)
39
+ this.variant = config.variant;
40
+ }
22
41
  handleShortcutKeydown = (e) => {
23
42
  if (e.key === SIDEBAR_KEYBOARD_SHORTCUT && (e.metaKey || e.ctrlKey)) {
24
43
  e.preventDefault();
25
- this.toggle();
44
+ this.toggleSidebar();
26
45
  }
27
46
  };
28
47
  setOpenMobile = (value) => {
29
48
  this.openMobile = value;
30
49
  };
31
- toggle = () => {
32
- return this.#isMobile.current
33
- ? (this.openMobile = !this.openMobile)
34
- : this.setOpen(!this.open);
50
+ toggleSidebar = () => {
51
+ if (this.#isMobile.current) {
52
+ this.openMobile = !this.openMobile;
53
+ }
54
+ else {
55
+ this.setOpen(!this.open);
56
+ }
35
57
  };
58
+ toggle = this.toggleSidebar;
36
59
  }
37
60
  const SYMBOL_KEY = "scn-sidebar";
38
- /**
39
- * Instantiates a new `SidebarState` instance and sets it in the context.
40
- *
41
- * @param props The constructor props for the `SidebarState` class.
42
- * @returns The `SidebarState` instance.
43
- */
44
61
  export function setSidebar(props) {
45
62
  return setContext(Symbol.for(SYMBOL_KEY), new SidebarState(props));
46
63
  }
47
- /**
48
- * Retrieves the `SidebarState` instance from the context. This is a class instance,
49
- * so you cannot destructure it.
50
- * @returns The `SidebarState` instance.
51
- */
52
64
  export function useSidebar() {
53
65
  return getContext(Symbol.for(SYMBOL_KEY));
54
66
  }
@@ -16,7 +16,7 @@
16
16
  data-sidebar="content"
17
17
  class={cn(
18
18
  "no-scrollbar gap-2 [--radius:var(--radius-xl)] flex min-h-0 flex-1 flex-col overflow-auto group-data-[collapsible=icon]:overflow-hidden",
19
- className
19
+ className,
20
20
  )}
21
21
  {...restProps}
22
22
  >
@@ -14,7 +14,7 @@
14
14
  bind:this={ref}
15
15
  data-slot="sidebar-footer"
16
16
  data-sidebar="footer"
17
- class={cn("gap-2 p-2 flex flex-col", className)}
17
+ class={cn("mt-auto gap-2 p-2 flex flex-col", className)}
18
18
  {...restProps}
19
19
  >
20
20
  {@render children?.()}
@@ -14,7 +14,7 @@
14
14
  bind:this={ref}
15
15
  data-slot="sidebar-group-content"
16
16
  data-sidebar="group-content"
17
- class={cn("text-sm w-full", className)}
17
+ class={cn("text-sm", className)}
18
18
  {...restProps}
19
19
  >
20
20
  {@render children?.()}
@@ -18,8 +18,9 @@
18
18
  const mergedProps = $derived({
19
19
  class: cn(
20
20
  "text-sidebar-foreground ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground peer-hover/menu-button:text-sidebar-accent-foreground absolute top-1.5 right-1 aspect-square w-5 rounded-md p-0 peer-data-[size=default]/menu-button:top-2 peer-data-[size=lg]/menu-button:top-2.5 peer-data-[size=sm]/menu-button:top-1 focus-visible:ring-2 [&>svg]:size-4 flex items-center justify-center outline-hidden transition-transform group-data-[collapsible=icon]:hidden after:absolute after:-inset-2 md:after:hidden [&>svg]:shrink-0",
21
- showOnHover &&
22
- "peer-data-active/menu-button:text-sidebar-accent-foreground group-focus-within/menu-item:opacity-100 group-hover/menu-item:opacity-100 data-open:opacity-100 md:opacity-0",
21
+ showOnHover
22
+ ? "peer-data-active/menu-button:text-sidebar-accent-foreground group-focus-within/menu-item:opacity-100 group-hover/menu-item:opacity-100 data-open:opacity-100 md:opacity-0"
23
+ : "",
23
24
  className
24
25
  ),
25
26
  "data-slot": "sidebar-menu-action",
@@ -1,38 +1,36 @@
1
1
  <script lang="ts" module>
2
- import { tv, type VariantProps } from "tailwind-variants";
2
+ import { cn } from "../../../utils.js";
3
3
 
4
- export const sidebarMenuButtonVariants = tv({
5
- base: "ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground active:bg-sidebar-accent active:text-sidebar-accent-foreground data-active:bg-sidebar-accent data-active:text-sidebar-accent-foreground data-open:hover:bg-sidebar-accent data-open:hover:text-sidebar-accent-foreground gap-2 rounded-lg px-3 py-2 text-left text-sm transition-[width,height,padding] group-has-data-[sidebar=menu-action]/menu-item:pr-8 group-data-[collapsible=icon]:size-8! group-data-[collapsible=icon]:p-2! focus-visible:ring-2 data-active:font-medium peer/menu-button group/menu-button flex w-full items-center overflow-hidden outline-hidden disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 [&_svg]:size-4 [&_svg]:shrink-0 [&>span:last-child]:truncate",
6
- variants: {
7
- variant: {
8
- default: "hover:bg-sidebar-accent hover:text-sidebar-accent-foreground",
9
- outline: "bg-background hover:bg-sidebar-accent hover:text-sidebar-accent-foreground shadow-[0_0_0_1px_var(--sidebar-border)] hover:shadow-[0_0_0_1px_var(--sidebar-accent)]",
10
- },
11
- size: {
12
- default: "h-9 text-sm",
13
- sm: "h-8 text-xs",
14
- lg: "h-14 px-3 text-sm group-data-[collapsible=icon]:p-0!",
15
- },
16
- },
17
- defaultVariants: {
18
- variant: "default",
19
- size: "default",
20
- },
21
- });
4
+ export function sidebarMenuButtonVariants(opts: {
5
+ variant?: SidebarMenuButtonVariant;
6
+ size?: SidebarMenuButtonSize;
7
+ } = {}) {
8
+ const variant = opts.variant ?? "default";
9
+ const size = opts.size ?? "default";
10
+ const variantClasses = {
11
+ default:
12
+ "hover:bg-sidebar-accent hover:text-sidebar-accent-foreground",
13
+ outline:
14
+ "bg-background hover:bg-sidebar-accent hover:text-sidebar-accent-foreground shadow-[0_0_0_1px_var(--sidebar-border)] hover:shadow-[0_0_0_1px_var(--sidebar-accent)]",
15
+ };
16
+ const sizeClasses = {
17
+ default: "h-9 text-sm",
18
+ sm: "h-8 text-xs",
19
+ lg: "h-14 px-3 text-sm group-data-[collapsible=icon]:p-0!",
20
+ };
21
+ const base =
22
+ "ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground active:bg-sidebar-accent active:text-sidebar-accent-foreground data-active:bg-sidebar-accent data-active:text-sidebar-accent-foreground data-open:hover:bg-sidebar-accent data-open:hover:text-sidebar-accent-foreground gap-2 rounded-lg px-3 py-2 text-left text-sm transition-[width,height,padding] group-has-data-[sidebar=menu-action]/menu-item:pr-8 group-data-[collapsible=icon]:size-8! group-data-[collapsible=icon]:p-2! focus-visible:ring-2 data-active:font-medium peer/menu-button group/menu-button flex w-full items-center overflow-hidden outline-hidden disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 [&_svg]:size-4 [&_svg]:shrink-0 [&>span:last-child]:truncate";
23
+ return cn(base, variantClasses[variant], sizeClasses[size]);
24
+ }
22
25
 
23
- export type SidebarMenuButtonVariant = VariantProps<
24
- typeof sidebarMenuButtonVariants
25
- >["variant"];
26
- export type SidebarMenuButtonSize = VariantProps<typeof sidebarMenuButtonVariants>["size"];
26
+ export type SidebarMenuButtonVariant = "default" | "outline";
27
+ export type SidebarMenuButtonSize = "default" | "sm" | "lg";
27
28
  </script>
28
29
 
29
30
  <script lang="ts">
30
- import * as Tooltip from "../tooltip/index.js";
31
- import { cn, type WithElementRef, type WithoutChildrenOrChild } from "../../../utils.js";
32
- import { mergeProps } from "bits-ui";
33
- import type { ComponentProps, Snippet } from "svelte";
31
+ import type { WithElementRef } from "../../../utils.js";
32
+ import type { Snippet } from "svelte";
34
33
  import type { HTMLAttributes } from "svelte/elements";
35
- import { useSidebar } from "./context.svelte.js";
36
34
 
37
35
  let {
38
36
  ref = $bindable(null),
@@ -42,20 +40,18 @@
42
40
  variant = "default",
43
41
  size = "default",
44
42
  isActive = false,
45
- tooltipContent,
46
- tooltipContentProps,
43
+ tooltipContent = undefined,
44
+ tooltipContentProps = undefined,
47
45
  ...restProps
48
46
  }: WithElementRef<HTMLAttributes<HTMLButtonElement>, HTMLButtonElement> & {
49
47
  isActive?: boolean;
50
48
  variant?: SidebarMenuButtonVariant;
51
49
  size?: SidebarMenuButtonSize;
52
50
  tooltipContent?: Snippet | string;
53
- tooltipContentProps?: WithoutChildrenOrChild<ComponentProps<typeof Tooltip.Content>>;
51
+ tooltipContentProps?: Record<string, unknown>;
54
52
  child?: Snippet<[{ props: Record<string, unknown> }]>;
55
53
  } = $props();
56
54
 
57
- const sidebar = useSidebar();
58
-
59
55
  const buttonProps = $derived({
60
56
  class: cn(sidebarMenuButtonVariants({ variant, size }), className),
61
57
  "data-slot": "sidebar-menu-button",
@@ -66,37 +62,10 @@
66
62
  });
67
63
  </script>
68
64
 
69
- {#snippet Button({ props }: { props?: Record<string, unknown> })}
70
- {@const mergedProps = mergeProps(buttonProps, props)}
71
- {#if child}
72
- {@render child({ props: mergedProps })}
73
- {:else}
74
- <button bind:this={ref} {...mergedProps}>
75
- {@render children?.()}
76
- </button>
77
- {/if}
78
- {/snippet}
79
-
80
- {#if !tooltipContent}
81
- {@render Button({})}
65
+ {#if child}
66
+ {@render child({ props: buttonProps })}
82
67
  {:else}
83
- <Tooltip.Root>
84
- <Tooltip.Trigger>
85
- {#snippet child({ props })}
86
- {@render Button({ props })}
87
- {/snippet}
88
- </Tooltip.Trigger>
89
- <Tooltip.Content
90
- side="right"
91
- align="center"
92
- hidden={sidebar.state !== "collapsed" || sidebar.isMobile}
93
- {...tooltipContentProps}
94
- >
95
- {#if typeof tooltipContent === "string"}
96
- {tooltipContent}
97
- {:else if tooltipContent}
98
- {@render tooltipContent()}
99
- {/if}
100
- </Tooltip.Content>
101
- </Tooltip.Root>
102
- {/if}
68
+ <button bind:this={ref} {...buttonProps}>
69
+ {@render children?.()}
70
+ </button>
71
+ {/if}
@@ -1,47 +1,18 @@
1
- import { type VariantProps } from "tailwind-variants";
2
- export declare const sidebarMenuButtonVariants: import("tailwind-variants").TVReturnType<{
3
- variant: {
4
- default: "hover:bg-sidebar-accent hover:text-sidebar-accent-foreground";
5
- outline: "bg-background hover:bg-sidebar-accent hover:text-sidebar-accent-foreground shadow-[0_0_0_1px_var(--sidebar-border)] hover:shadow-[0_0_0_1px_var(--sidebar-accent)]";
6
- };
7
- size: {
8
- default: "h-9 text-sm";
9
- sm: "h-8 text-xs";
10
- lg: "h-14 px-3 text-sm group-data-[collapsible=icon]:p-0!";
11
- };
12
- }, undefined, "ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground active:bg-sidebar-accent active:text-sidebar-accent-foreground data-active:bg-sidebar-accent data-active:text-sidebar-accent-foreground data-open:hover:bg-sidebar-accent data-open:hover:text-sidebar-accent-foreground gap-2 rounded-lg px-3 py-2 text-left text-sm transition-[width,height,padding] group-has-data-[sidebar=menu-action]/menu-item:pr-8 group-data-[collapsible=icon]:size-8! group-data-[collapsible=icon]:p-2! focus-visible:ring-2 data-active:font-medium peer/menu-button group/menu-button flex w-full items-center overflow-hidden outline-hidden disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 [&_svg]:size-4 [&_svg]:shrink-0 [&>span:last-child]:truncate", {
13
- variant: {
14
- default: "hover:bg-sidebar-accent hover:text-sidebar-accent-foreground";
15
- outline: "bg-background hover:bg-sidebar-accent hover:text-sidebar-accent-foreground shadow-[0_0_0_1px_var(--sidebar-border)] hover:shadow-[0_0_0_1px_var(--sidebar-accent)]";
16
- };
17
- size: {
18
- default: "h-9 text-sm";
19
- sm: "h-8 text-xs";
20
- lg: "h-14 px-3 text-sm group-data-[collapsible=icon]:p-0!";
21
- };
22
- }, undefined, import("tailwind-variants").TVReturnTypeLike<{
23
- variant: {
24
- default: "hover:bg-sidebar-accent hover:text-sidebar-accent-foreground";
25
- outline: "bg-background hover:bg-sidebar-accent hover:text-sidebar-accent-foreground shadow-[0_0_0_1px_var(--sidebar-border)] hover:shadow-[0_0_0_1px_var(--sidebar-accent)]";
26
- };
27
- size: {
28
- default: "h-9 text-sm";
29
- sm: "h-8 text-xs";
30
- lg: "h-14 px-3 text-sm group-data-[collapsible=icon]:p-0!";
31
- };
32
- }, undefined>>;
33
- export type SidebarMenuButtonVariant = VariantProps<typeof sidebarMenuButtonVariants>["variant"];
34
- export type SidebarMenuButtonSize = VariantProps<typeof sidebarMenuButtonVariants>["size"];
35
- import * as Tooltip from "../tooltip/index.js";
36
- import { type WithElementRef, type WithoutChildrenOrChild } from "../../../utils.js";
37
- import type { ComponentProps, Snippet } from "svelte";
1
+ export declare function sidebarMenuButtonVariants(opts?: {
2
+ variant?: SidebarMenuButtonVariant;
3
+ size?: SidebarMenuButtonSize;
4
+ }): string;
5
+ export type SidebarMenuButtonVariant = "default" | "outline";
6
+ export type SidebarMenuButtonSize = "default" | "sm" | "lg";
7
+ import type { WithElementRef } from "../../../utils.js";
8
+ import type { Snippet } from "svelte";
38
9
  import type { HTMLAttributes } from "svelte/elements";
39
10
  type $$ComponentProps = WithElementRef<HTMLAttributes<HTMLButtonElement>, HTMLButtonElement> & {
40
11
  isActive?: boolean;
41
12
  variant?: SidebarMenuButtonVariant;
42
13
  size?: SidebarMenuButtonSize;
43
14
  tooltipContent?: Snippet | string;
44
- tooltipContentProps?: WithoutChildrenOrChild<ComponentProps<typeof Tooltip.Content>>;
15
+ tooltipContentProps?: Record<string, unknown>;
45
16
  child?: Snippet<[{
46
17
  props: Record<string, unknown>;
47
18
  }]>;