svelte-firekit 0.0.14 → 0.0.16

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 (318) hide show
  1. package/README.md +34 -87
  2. package/dist/{firebase/auth → auth}/auth.js +1 -2
  3. package/dist/auth/user.svelte.d.ts +94 -0
  4. package/dist/auth/user.svelte.js +134 -0
  5. package/dist/config.d.ts +2 -2
  6. package/dist/config.js +44 -28
  7. package/dist/{firebase/firebase.d.ts → firebase.d.ts} +1 -2
  8. package/dist/{firebase/firebase.js → firebase.js} +1 -4
  9. package/dist/{firebase/firestore → firestore}/awaitable-doc.svelte.js +1 -1
  10. package/dist/{firebase/firestore → firestore}/collection.svelte.js +1 -1
  11. package/dist/{firebase/firestore → firestore}/doc.svelte.js +1 -1
  12. package/dist/{firebase/firestore → firestore}/document-mutations.svelte.js +11 -11
  13. package/dist/index.d.ts +10 -23
  14. package/dist/index.js +10 -28
  15. package/package.json +10 -26
  16. package/dist/auth/auth.svelte +0 -65
  17. package/dist/auth/auth.svelte.d.ts +0 -2
  18. package/dist/auth/require-auth.svelte +0 -52
  19. package/dist/auth/require-auth.svelte.d.ts +0 -11
  20. package/dist/auth/require-no-auth.svelte +0 -42
  21. package/dist/auth/require-no-auth.svelte.d.ts +0 -6
  22. package/dist/auth/reset-password.svelte +0 -32
  23. package/dist/auth/reset-password.svelte.d.ts +0 -8
  24. package/dist/auth/sign-in.svelte +0 -58
  25. package/dist/auth/sign-in.svelte.d.ts +0 -14
  26. package/dist/auth/sign-up.svelte +0 -69
  27. package/dist/auth/sign-up.svelte.d.ts +0 -17
  28. package/dist/components/app/nav/app-sidebar.svelte +0 -35
  29. package/dist/components/app/nav/app-sidebar.svelte.d.ts +0 -8
  30. package/dist/components/app/nav/breadcrumb.svelte +0 -42
  31. package/dist/components/app/nav/breadcrumb.svelte.d.ts +0 -19
  32. package/dist/components/auth/google-sign-in.svelte +0 -62
  33. package/dist/components/auth/google-sign-in.svelte.d.ts +0 -4
  34. package/dist/components/auth/reset-password-form.svelte +0 -59
  35. package/dist/components/auth/reset-password-form.svelte.d.ts +0 -4
  36. package/dist/components/auth/sign-in-form.svelte +0 -94
  37. package/dist/components/auth/sign-in-form.svelte.d.ts +0 -8
  38. package/dist/components/auth/sign-up-form.svelte +0 -136
  39. package/dist/components/auth/sign-up-form.svelte.d.ts +0 -11
  40. package/dist/components/auth/user-button/profile-section/avatar-user.svelte +0 -107
  41. package/dist/components/auth/user-button/profile-section/avatar-user.svelte.d.ts +0 -2
  42. package/dist/components/auth/user-button/profile-section/connect-user.svelte +0 -45
  43. package/dist/components/auth/user-button/profile-section/connect-user.svelte.d.ts +0 -18
  44. package/dist/components/auth/user-button/profile-section/email-user.svelte +0 -81
  45. package/dist/components/auth/user-button/profile-section/email-user.svelte.d.ts +0 -2
  46. package/dist/components/auth/user-button/profile-section/phone-user.svelte +0 -122
  47. package/dist/components/auth/user-button/profile-section/phone-user.svelte.d.ts +0 -2
  48. package/dist/components/auth/user-button/profile-section/profile-section.svelte +0 -17
  49. package/dist/components/auth/user-button/profile-section/profile-section.svelte.d.ts +0 -18
  50. package/dist/components/auth/user-button/settings-dialog.svelte +0 -88
  51. package/dist/components/auth/user-button/settings-dialog.svelte.d.ts +0 -2
  52. package/dist/components/auth/user-button/type-account.svelte +0 -35
  53. package/dist/components/auth/user-button/type-account.svelte.d.ts +0 -4
  54. package/dist/components/auth/user-button/user-button.svelte +0 -131
  55. package/dist/components/auth/user-button/user-button.svelte.d.ts +0 -5
  56. package/dist/components/firestore/collection.svelte +0 -45
  57. package/dist/components/firestore/collection.svelte.d.ts +0 -25
  58. package/dist/components/firestore/doc.svelte +0 -39
  59. package/dist/components/firestore/doc.svelte.d.ts +0 -25
  60. package/dist/components/nav/app-sidebar.svelte +0 -46
  61. package/dist/components/nav/app-sidebar.svelte.d.ts +0 -8
  62. package/dist/components/nav/breadcrumb.svelte +0 -42
  63. package/dist/components/nav/breadcrumb.svelte.d.ts +0 -19
  64. package/dist/components/nav/dark-mode-toggle.svelte +0 -16
  65. package/dist/components/nav/dark-mode-toggle.svelte.d.ts +0 -18
  66. package/dist/components/nav/nav-main.svelte +0 -70
  67. package/dist/components/nav/nav-main.svelte.d.ts +0 -18
  68. package/dist/components/nav/nav.d.ts +0 -11
  69. package/dist/components/nav/nav.js +0 -157
  70. package/dist/components/nav/search-form.svelte +0 -21
  71. package/dist/components/nav/search-form.svelte.d.ts +0 -4
  72. package/dist/components/nav/version-switcher.svelte +0 -48
  73. package/dist/components/nav/version-switcher.svelte.d.ts +0 -5
  74. package/dist/components/public/footer-main.svelte +0 -0
  75. package/dist/components/public/footer-main.svelte.d.ts +0 -26
  76. package/dist/components/public/nav-main.svelte +0 -136
  77. package/dist/components/public/nav-main.svelte.d.ts +0 -18
  78. package/dist/components/storage/upload.svelte +0 -134
  79. package/dist/components/storage/upload.svelte.d.ts +0 -11
  80. package/dist/components/ui/alert-dialog/alert-dialog-action.svelte +0 -13
  81. package/dist/components/ui/alert-dialog/alert-dialog-action.svelte.d.ts +0 -3
  82. package/dist/components/ui/alert-dialog/alert-dialog-cancel.svelte +0 -17
  83. package/dist/components/ui/alert-dialog/alert-dialog-cancel.svelte.d.ts +0 -3
  84. package/dist/components/ui/alert-dialog/alert-dialog-content.svelte +0 -23
  85. package/dist/components/ui/alert-dialog/alert-dialog-content.svelte.d.ts +0 -2
  86. package/dist/components/ui/alert-dialog/alert-dialog-description.svelte +0 -16
  87. package/dist/components/ui/alert-dialog/alert-dialog-description.svelte.d.ts +0 -3
  88. package/dist/components/ui/alert-dialog/alert-dialog-footer.svelte +0 -20
  89. package/dist/components/ui/alert-dialog/alert-dialog-footer.svelte.d.ts +0 -4
  90. package/dist/components/ui/alert-dialog/alert-dialog-header.svelte +0 -20
  91. package/dist/components/ui/alert-dialog/alert-dialog-header.svelte.d.ts +0 -4
  92. package/dist/components/ui/alert-dialog/alert-dialog-overlay.svelte +0 -19
  93. package/dist/components/ui/alert-dialog/alert-dialog-overlay.svelte.d.ts +0 -3
  94. package/dist/components/ui/alert-dialog/alert-dialog-title.svelte +0 -18
  95. package/dist/components/ui/alert-dialog/alert-dialog-title.svelte.d.ts +0 -3
  96. package/dist/components/ui/alert-dialog/index.js +0 -15
  97. package/dist/components/ui/avatar/avatar-fallback.svelte +0 -16
  98. package/dist/components/ui/avatar/avatar-fallback.svelte.d.ts +0 -3
  99. package/dist/components/ui/avatar/avatar-image.svelte +0 -20
  100. package/dist/components/ui/avatar/avatar-image.svelte.d.ts +0 -3
  101. package/dist/components/ui/avatar/avatar.svelte +0 -18
  102. package/dist/components/ui/avatar/avatar.svelte.d.ts +0 -3
  103. package/dist/components/ui/avatar/index.d.ts +0 -4
  104. package/dist/components/ui/avatar/index.js +0 -6
  105. package/dist/components/ui/badge/badge.svelte +0 -49
  106. package/dist/components/ui/badge/badge.svelte.d.ts +0 -59
  107. package/dist/components/ui/badge/index.d.ts +0 -2
  108. package/dist/components/ui/badge/index.js +0 -2
  109. package/dist/components/ui/breadcrumb/breadcrumb-ellipsis.svelte +0 -23
  110. package/dist/components/ui/breadcrumb/breadcrumb-ellipsis.svelte.d.ts +0 -4
  111. package/dist/components/ui/breadcrumb/breadcrumb-item.svelte +0 -16
  112. package/dist/components/ui/breadcrumb/breadcrumb-item.svelte.d.ts +0 -4
  113. package/dist/components/ui/breadcrumb/breadcrumb-link.svelte +0 -31
  114. package/dist/components/ui/breadcrumb/breadcrumb-link.svelte.d.ts +0 -10
  115. package/dist/components/ui/breadcrumb/breadcrumb-list.svelte +0 -23
  116. package/dist/components/ui/breadcrumb/breadcrumb-list.svelte.d.ts +0 -4
  117. package/dist/components/ui/breadcrumb/breadcrumb-page.svelte +0 -23
  118. package/dist/components/ui/breadcrumb/breadcrumb-page.svelte.d.ts +0 -4
  119. package/dist/components/ui/breadcrumb/breadcrumb-separator.svelte +0 -27
  120. package/dist/components/ui/breadcrumb/breadcrumb-separator.svelte.d.ts +0 -4
  121. package/dist/components/ui/breadcrumb/breadcrumb.svelte +0 -15
  122. package/dist/components/ui/breadcrumb/breadcrumb.svelte.d.ts +0 -4
  123. package/dist/components/ui/breadcrumb/index.d.ts +0 -8
  124. package/dist/components/ui/breadcrumb/index.js +0 -10
  125. package/dist/components/ui/button/button.svelte +0 -75
  126. package/dist/components/ui/button/button.svelte.d.ts +0 -117
  127. package/dist/components/ui/button/index.d.ts +0 -2
  128. package/dist/components/ui/button/index.js +0 -4
  129. package/dist/components/ui/card/card-content.svelte +0 -16
  130. package/dist/components/ui/card/card-content.svelte.d.ts +0 -4
  131. package/dist/components/ui/card/card-description.svelte +0 -16
  132. package/dist/components/ui/card/card-description.svelte.d.ts +0 -4
  133. package/dist/components/ui/card/card-footer.svelte +0 -16
  134. package/dist/components/ui/card/card-footer.svelte.d.ts +0 -4
  135. package/dist/components/ui/card/card-header.svelte +0 -16
  136. package/dist/components/ui/card/card-header.svelte.d.ts +0 -4
  137. package/dist/components/ui/card/card-title.svelte +0 -25
  138. package/dist/components/ui/card/card-title.svelte.d.ts +0 -7
  139. package/dist/components/ui/card/card.svelte +0 -20
  140. package/dist/components/ui/card/card.svelte.d.ts +0 -4
  141. package/dist/components/ui/card/index.d.ts +0 -7
  142. package/dist/components/ui/card/index.js +0 -9
  143. package/dist/components/ui/checkbox/checkbox.svelte +0 -33
  144. package/dist/components/ui/checkbox/checkbox.svelte.d.ts +0 -3
  145. package/dist/components/ui/checkbox/index.d.ts +0 -2
  146. package/dist/components/ui/checkbox/index.js +0 -4
  147. package/dist/components/ui/collapsible/index.d.ts +0 -5
  148. package/dist/components/ui/collapsible/index.js +0 -7
  149. package/dist/components/ui/dialog/dialog-content.svelte +0 -36
  150. package/dist/components/ui/dialog/dialog-content.svelte.d.ts +0 -6
  151. package/dist/components/ui/dialog/dialog-description.svelte +0 -16
  152. package/dist/components/ui/dialog/dialog-description.svelte.d.ts +0 -3
  153. package/dist/components/ui/dialog/dialog-footer.svelte +0 -20
  154. package/dist/components/ui/dialog/dialog-footer.svelte.d.ts +0 -4
  155. package/dist/components/ui/dialog/dialog-header.svelte +0 -20
  156. package/dist/components/ui/dialog/dialog-header.svelte.d.ts +0 -4
  157. package/dist/components/ui/dialog/dialog-overlay.svelte +0 -19
  158. package/dist/components/ui/dialog/dialog-overlay.svelte.d.ts +0 -3
  159. package/dist/components/ui/dialog/dialog-title.svelte +0 -16
  160. package/dist/components/ui/dialog/dialog-title.svelte.d.ts +0 -3
  161. package/dist/components/ui/dialog/index.d.ts +0 -12
  162. package/dist/components/ui/dialog/index.js +0 -14
  163. package/dist/components/ui/dropdown-menu/dropdown-menu-checkbox-item.svelte +0 -40
  164. package/dist/components/ui/dropdown-menu/dropdown-menu-checkbox-item.svelte.d.ts +0 -6
  165. package/dist/components/ui/dropdown-menu/dropdown-menu-content.svelte +0 -22
  166. package/dist/components/ui/dropdown-menu/dropdown-menu-content.svelte.d.ts +0 -3
  167. package/dist/components/ui/dropdown-menu/dropdown-menu-group-heading.svelte +0 -19
  168. package/dist/components/ui/dropdown-menu/dropdown-menu-group-heading.svelte.d.ts +0 -11
  169. package/dist/components/ui/dropdown-menu/dropdown-menu-item.svelte +0 -23
  170. package/dist/components/ui/dropdown-menu/dropdown-menu-item.svelte.d.ts +0 -18
  171. package/dist/components/ui/dropdown-menu/dropdown-menu-label.svelte +0 -23
  172. package/dist/components/ui/dropdown-menu/dropdown-menu-label.svelte.d.ts +0 -7
  173. package/dist/components/ui/dropdown-menu/dropdown-menu-radio-item.svelte +0 -30
  174. package/dist/components/ui/dropdown-menu/dropdown-menu-radio-item.svelte.d.ts +0 -3
  175. package/dist/components/ui/dropdown-menu/dropdown-menu-separator.svelte +0 -16
  176. package/dist/components/ui/dropdown-menu/dropdown-menu-separator.svelte.d.ts +0 -3
  177. package/dist/components/ui/dropdown-menu/dropdown-menu-shortcut.svelte +0 -20
  178. package/dist/components/ui/dropdown-menu/dropdown-menu-shortcut.svelte.d.ts +0 -4
  179. package/dist/components/ui/dropdown-menu/dropdown-menu-sub-content.svelte +0 -19
  180. package/dist/components/ui/dropdown-menu/dropdown-menu-sub-content.svelte.d.ts +0 -3
  181. package/dist/components/ui/dropdown-menu/dropdown-menu-sub-trigger.svelte +0 -28
  182. package/dist/components/ui/dropdown-menu/dropdown-menu-sub-trigger.svelte.d.ts +0 -5
  183. package/dist/components/ui/dropdown-menu/index.js +0 -17
  184. package/dist/components/ui/form/form-button.svelte +0 -7
  185. package/dist/components/ui/form/form-button.svelte.d.ts +0 -3
  186. package/dist/components/ui/form/form-description.svelte +0 -17
  187. package/dist/components/ui/form/form-description.svelte.d.ts +0 -3
  188. package/dist/components/ui/form/form-element-field.svelte +0 -30
  189. package/dist/components/ui/form/form-element-field.svelte.d.ts +0 -22
  190. package/dist/components/ui/form/form-field-errors.svelte +0 -30
  191. package/dist/components/ui/form/form-field-errors.svelte.d.ts +0 -5
  192. package/dist/components/ui/form/form-field.svelte +0 -30
  193. package/dist/components/ui/form/form-field.svelte.d.ts +0 -21
  194. package/dist/components/ui/form/form-fieldset.svelte +0 -21
  195. package/dist/components/ui/form/form-fieldset.svelte.d.ts +0 -19
  196. package/dist/components/ui/form/form-label.svelte +0 -21
  197. package/dist/components/ui/form/form-label.svelte.d.ts +0 -3
  198. package/dist/components/ui/form/form-legend.svelte +0 -17
  199. package/dist/components/ui/form/form-legend.svelte.d.ts +0 -3
  200. package/dist/components/ui/form/index.d.ts +0 -11
  201. package/dist/components/ui/form/index.js +0 -13
  202. package/dist/components/ui/input/index.d.ts +0 -2
  203. package/dist/components/ui/input/index.js +0 -4
  204. package/dist/components/ui/input/input.svelte +0 -22
  205. package/dist/components/ui/input/input.svelte.d.ts +0 -4
  206. package/dist/components/ui/label/index.d.ts +0 -2
  207. package/dist/components/ui/label/index.js +0 -4
  208. package/dist/components/ui/label/label.svelte +0 -19
  209. package/dist/components/ui/label/label.svelte.d.ts +0 -3
  210. package/dist/components/ui/separator/index.d.ts +0 -2
  211. package/dist/components/ui/separator/index.js +0 -4
  212. package/dist/components/ui/separator/separator.svelte +0 -22
  213. package/dist/components/ui/separator/separator.svelte.d.ts +0 -3
  214. package/dist/components/ui/sheet/index.js +0 -14
  215. package/dist/components/ui/sheet/sheet-content.svelte +0 -52
  216. package/dist/components/ui/sheet/sheet-content.svelte.d.ts +0 -59
  217. package/dist/components/ui/sheet/sheet-description.svelte +0 -16
  218. package/dist/components/ui/sheet/sheet-description.svelte.d.ts +0 -3
  219. package/dist/components/ui/sheet/sheet-footer.svelte +0 -20
  220. package/dist/components/ui/sheet/sheet-footer.svelte.d.ts +0 -4
  221. package/dist/components/ui/sheet/sheet-header.svelte +0 -20
  222. package/dist/components/ui/sheet/sheet-header.svelte.d.ts +0 -4
  223. package/dist/components/ui/sheet/sheet-overlay.svelte +0 -19
  224. package/dist/components/ui/sheet/sheet-overlay.svelte.d.ts +0 -3
  225. package/dist/components/ui/sheet/sheet-title.svelte +0 -16
  226. package/dist/components/ui/sheet/sheet-title.svelte.d.ts +0 -3
  227. package/dist/components/ui/sidebar/constants.d.ts +0 -6
  228. package/dist/components/ui/sidebar/constants.js +0 -6
  229. package/dist/components/ui/sidebar/context.svelte.d.ts +0 -42
  230. package/dist/components/ui/sidebar/context.svelte.js +0 -54
  231. package/dist/components/ui/sidebar/index.d.ts +0 -25
  232. package/dist/components/ui/sidebar/index.js +0 -27
  233. package/dist/components/ui/sidebar/sidebar-content.svelte +0 -24
  234. package/dist/components/ui/sidebar/sidebar-content.svelte.d.ts +0 -4
  235. package/dist/components/ui/sidebar/sidebar-footer.svelte +0 -21
  236. package/dist/components/ui/sidebar/sidebar-footer.svelte.d.ts +0 -4
  237. package/dist/components/ui/sidebar/sidebar-group-action.svelte +0 -36
  238. package/dist/components/ui/sidebar/sidebar-group-action.svelte.d.ts +0 -10
  239. package/dist/components/ui/sidebar/sidebar-group-content.svelte +0 -21
  240. package/dist/components/ui/sidebar/sidebar-group-content.svelte.d.ts +0 -4
  241. package/dist/components/ui/sidebar/sidebar-group-label.svelte +0 -34
  242. package/dist/components/ui/sidebar/sidebar-group-label.svelte.d.ts +0 -10
  243. package/dist/components/ui/sidebar/sidebar-group.svelte +0 -21
  244. package/dist/components/ui/sidebar/sidebar-group.svelte.d.ts +0 -4
  245. package/dist/components/ui/sidebar/sidebar-header.svelte +0 -21
  246. package/dist/components/ui/sidebar/sidebar-header.svelte.d.ts +0 -4
  247. package/dist/components/ui/sidebar/sidebar-input.svelte +0 -23
  248. package/dist/components/ui/sidebar/sidebar-input.svelte.d.ts +0 -4
  249. package/dist/components/ui/sidebar/sidebar-inset.svelte +0 -24
  250. package/dist/components/ui/sidebar/sidebar-inset.svelte.d.ts +0 -4
  251. package/dist/components/ui/sidebar/sidebar-menu-action.svelte +0 -43
  252. package/dist/components/ui/sidebar/sidebar-menu-action.svelte.d.ts +0 -11
  253. package/dist/components/ui/sidebar/sidebar-menu-badge.svelte +0 -29
  254. package/dist/components/ui/sidebar/sidebar-menu-badge.svelte.d.ts +0 -4
  255. package/dist/components/ui/sidebar/sidebar-menu-button.svelte +0 -97
  256. package/dist/components/ui/sidebar/sidebar-menu-button.svelte.d.ts +0 -91
  257. package/dist/components/ui/sidebar/sidebar-menu-item.svelte +0 -21
  258. package/dist/components/ui/sidebar/sidebar-menu-item.svelte.d.ts +0 -4
  259. package/dist/components/ui/sidebar/sidebar-menu-skeleton.svelte +0 -36
  260. package/dist/components/ui/sidebar/sidebar-menu-skeleton.svelte.d.ts +0 -7
  261. package/dist/components/ui/sidebar/sidebar-menu-sub-button.svelte +0 -43
  262. package/dist/components/ui/sidebar/sidebar-menu-sub-button.svelte.d.ts +0 -12
  263. package/dist/components/ui/sidebar/sidebar-menu-sub-item.svelte +0 -14
  264. package/dist/components/ui/sidebar/sidebar-menu-sub-item.svelte.d.ts +0 -4
  265. package/dist/components/ui/sidebar/sidebar-menu-sub.svelte +0 -25
  266. package/dist/components/ui/sidebar/sidebar-menu-sub.svelte.d.ts +0 -4
  267. package/dist/components/ui/sidebar/sidebar-menu.svelte +0 -21
  268. package/dist/components/ui/sidebar/sidebar-menu.svelte.d.ts +0 -4
  269. package/dist/components/ui/sidebar/sidebar-provider.svelte +0 -59
  270. package/dist/components/ui/sidebar/sidebar-provider.svelte.d.ts +0 -9
  271. package/dist/components/ui/sidebar/sidebar-rail.svelte +0 -36
  272. package/dist/components/ui/sidebar/sidebar-rail.svelte.d.ts +0 -4
  273. package/dist/components/ui/sidebar/sidebar-separator.svelte +0 -18
  274. package/dist/components/ui/sidebar/sidebar-separator.svelte.d.ts +0 -12
  275. package/dist/components/ui/sidebar/sidebar-trigger.svelte +0 -34
  276. package/dist/components/ui/sidebar/sidebar-trigger.svelte.d.ts +0 -9
  277. package/dist/components/ui/sidebar/sidebar.svelte +0 -98
  278. package/dist/components/ui/sidebar/sidebar.svelte.d.ts +0 -9
  279. package/dist/components/ui/skeleton/index.d.ts +0 -2
  280. package/dist/components/ui/skeleton/index.js +0 -4
  281. package/dist/components/ui/skeleton/skeleton.svelte +0 -17
  282. package/dist/components/ui/skeleton/skeleton.svelte.d.ts +0 -4
  283. package/dist/components/ui/sonner/index.d.ts +0 -1
  284. package/dist/components/ui/sonner/index.js +0 -1
  285. package/dist/components/ui/sonner/sonner.svelte +0 -20
  286. package/dist/components/ui/sonner/sonner.svelte.d.ts +0 -3
  287. package/dist/components/ui/tooltip/index.js +0 -8
  288. package/dist/components/ui/tooltip/tooltip-content.svelte +0 -21
  289. package/dist/components/ui/tooltip/tooltip-content.svelte.d.ts +0 -3
  290. package/dist/firebase/auth/auth-manager.svelte.d.ts +0 -85
  291. package/dist/firebase/auth/auth-manager.svelte.js +0 -386
  292. package/dist/firebase/config.d.ts +0 -2
  293. package/dist/firebase/config.js +0 -44
  294. package/dist/hooks/is-mobile.svelte.d.ts +0 -5
  295. package/dist/hooks/is-mobile.svelte.js +0 -23
  296. package/dist/schemas/reset-password.d.ts +0 -4
  297. package/dist/schemas/reset-password.js +0 -4
  298. package/dist/schemas/sign-in.d.ts +0 -5
  299. package/dist/schemas/sign-in.js +0 -5
  300. package/dist/schemas/sign-up.d.ts +0 -8
  301. package/dist/schemas/sign-up.js +0 -8
  302. package/dist/types/docs.d.ts +0 -50
  303. package/dist/types/docs.js +0 -1
  304. package/dist/types/nav.d.ts +0 -13
  305. package/dist/types/nav.js +0 -1
  306. package/dist/utils.d.ts +0 -29
  307. package/dist/utils.js +0 -92
  308. /package/dist/{firebase/auth → auth}/auth.d.ts +0 -0
  309. /package/dist/{firebase/firestore → firestore}/awaitable-doc.svelte.d.ts +0 -0
  310. /package/dist/{firebase/firestore → firestore}/collection.svelte.d.ts +0 -0
  311. /package/dist/{firebase/firestore → firestore}/doc.svelte.d.ts +0 -0
  312. /package/dist/{firebase/firestore → firestore}/document-mutations.svelte.d.ts +0 -0
  313. /package/dist/{firebase/storage → storage}/download-url.svelte.d.ts +0 -0
  314. /package/dist/{firebase/storage → storage}/download-url.svelte.js +0 -0
  315. /package/dist/{firebase/storage → storage}/storage-list.svelte.d.ts +0 -0
  316. /package/dist/{firebase/storage → storage}/storage-list.svelte.js +0 -0
  317. /package/dist/{firebase/storage → storage}/upload-task.svelte.d.ts +0 -0
  318. /package/dist/{firebase/storage → storage}/upload-task.svelte.js +0 -0
@@ -1,54 +0,0 @@
1
- import { IsMobile } from "../../../hooks/is-mobile.svelte.js";
2
- import { getContext, setContext } from "svelte";
3
- import { SIDEBAR_KEYBOARD_SHORTCUT } from "./constants.js";
4
- class SidebarState {
5
- props;
6
- open = $derived.by(() => this.props.open());
7
- openMobile = $state(false);
8
- setOpen;
9
- #isMobile;
10
- state = $derived.by(() => (this.open ? "expanded" : "collapsed"));
11
- constructor(props) {
12
- this.setOpen = props.setOpen;
13
- this.#isMobile = new IsMobile();
14
- this.props = props;
15
- }
16
- // Convenience getter for checking if the sidebar is mobile
17
- // without this, we would need to use `sidebar.isMobile.current` everywhere
18
- get isMobile() {
19
- return this.#isMobile.current;
20
- }
21
- // Event handler to apply to the `<svelte:window>`
22
- handleShortcutKeydown = (e) => {
23
- if (e.key === SIDEBAR_KEYBOARD_SHORTCUT && (e.metaKey || e.ctrlKey)) {
24
- e.preventDefault();
25
- this.toggle();
26
- }
27
- };
28
- setOpenMobile = (value) => {
29
- this.openMobile = value;
30
- };
31
- toggle = () => {
32
- return this.#isMobile.current
33
- ? (this.openMobile = !this.openMobile)
34
- : this.setOpen(!this.open);
35
- };
36
- }
37
- 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
- export function setSidebar(props) {
45
- return setContext(Symbol.for(SYMBOL_KEY), new SidebarState(props));
46
- }
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
- export function useSidebar() {
53
- return getContext(Symbol.for(SYMBOL_KEY));
54
- }
@@ -1,25 +0,0 @@
1
- import { useSidebar } from "./context.svelte.js";
2
- import Content from "./sidebar-content.svelte";
3
- import Footer from "./sidebar-footer.svelte";
4
- import GroupAction from "./sidebar-group-action.svelte";
5
- import GroupContent from "./sidebar-group-content.svelte";
6
- import GroupLabel from "./sidebar-group-label.svelte";
7
- import Group from "./sidebar-group.svelte";
8
- import Header from "./sidebar-header.svelte";
9
- import Input from "./sidebar-input.svelte";
10
- import Inset from "./sidebar-inset.svelte";
11
- import MenuAction from "./sidebar-menu-action.svelte";
12
- import MenuBadge from "./sidebar-menu-badge.svelte";
13
- import MenuButton from "./sidebar-menu-button.svelte";
14
- import MenuItem from "./sidebar-menu-item.svelte";
15
- import MenuSkeleton from "./sidebar-menu-skeleton.svelte";
16
- import MenuSubButton from "./sidebar-menu-sub-button.svelte";
17
- import MenuSubItem from "./sidebar-menu-sub-item.svelte";
18
- import MenuSub from "./sidebar-menu-sub.svelte";
19
- import Menu from "./sidebar-menu.svelte";
20
- import Provider from "./sidebar-provider.svelte";
21
- import Rail from "./sidebar-rail.svelte";
22
- import Separator from "./sidebar-separator.svelte";
23
- import Trigger from "./sidebar-trigger.svelte";
24
- import Root from "./sidebar.svelte";
25
- export { Content, Footer, Group, GroupAction, GroupContent, GroupLabel, Header, Input, Inset, Menu, MenuAction, MenuBadge, MenuButton, MenuItem, MenuSkeleton, MenuSub, MenuSubButton, MenuSubItem, Provider, Rail, Root, Separator, Root as Sidebar, Content as SidebarContent, Footer as SidebarFooter, Group as SidebarGroup, GroupAction as SidebarGroupAction, GroupContent as SidebarGroupContent, GroupLabel as SidebarGroupLabel, Header as SidebarHeader, Input as SidebarInput, Inset as SidebarInset, Menu as SidebarMenu, MenuAction as SidebarMenuAction, MenuBadge as SidebarMenuBadge, MenuButton as SidebarMenuButton, MenuItem as SidebarMenuItem, MenuSkeleton as SidebarMenuSkeleton, MenuSub as SidebarMenuSub, MenuSubButton as SidebarMenuSubButton, MenuSubItem as SidebarMenuSubItem, Provider as SidebarProvider, Rail as SidebarRail, Separator as SidebarSeparator, Trigger as SidebarTrigger, Trigger, useSidebar, };
@@ -1,27 +0,0 @@
1
- import { useSidebar } from "./context.svelte.js";
2
- import Content from "./sidebar-content.svelte";
3
- import Footer from "./sidebar-footer.svelte";
4
- import GroupAction from "./sidebar-group-action.svelte";
5
- import GroupContent from "./sidebar-group-content.svelte";
6
- import GroupLabel from "./sidebar-group-label.svelte";
7
- import Group from "./sidebar-group.svelte";
8
- import Header from "./sidebar-header.svelte";
9
- import Input from "./sidebar-input.svelte";
10
- import Inset from "./sidebar-inset.svelte";
11
- import MenuAction from "./sidebar-menu-action.svelte";
12
- import MenuBadge from "./sidebar-menu-badge.svelte";
13
- import MenuButton from "./sidebar-menu-button.svelte";
14
- import MenuItem from "./sidebar-menu-item.svelte";
15
- import MenuSkeleton from "./sidebar-menu-skeleton.svelte";
16
- import MenuSubButton from "./sidebar-menu-sub-button.svelte";
17
- import MenuSubItem from "./sidebar-menu-sub-item.svelte";
18
- import MenuSub from "./sidebar-menu-sub.svelte";
19
- import Menu from "./sidebar-menu.svelte";
20
- import Provider from "./sidebar-provider.svelte";
21
- import Rail from "./sidebar-rail.svelte";
22
- import Separator from "./sidebar-separator.svelte";
23
- import Trigger from "./sidebar-trigger.svelte";
24
- import Root from "./sidebar.svelte";
25
- export { Content, Footer, Group, GroupAction, GroupContent, GroupLabel, Header, Input, Inset, Menu, MenuAction, MenuBadge, MenuButton, MenuItem, MenuSkeleton, MenuSub, MenuSubButton, MenuSubItem, Provider, Rail, Root, Separator,
26
- //
27
- Root as Sidebar, Content as SidebarContent, Footer as SidebarFooter, Group as SidebarGroup, GroupAction as SidebarGroupAction, GroupContent as SidebarGroupContent, GroupLabel as SidebarGroupLabel, Header as SidebarHeader, Input as SidebarInput, Inset as SidebarInset, Menu as SidebarMenu, MenuAction as SidebarMenuAction, MenuBadge as SidebarMenuBadge, MenuButton as SidebarMenuButton, MenuItem as SidebarMenuItem, MenuSkeleton as SidebarMenuSkeleton, MenuSub as SidebarMenuSub, MenuSubButton as SidebarMenuSubButton, MenuSubItem as SidebarMenuSubItem, Provider as SidebarProvider, Rail as SidebarRail, Separator as SidebarSeparator, Trigger as SidebarTrigger, Trigger, useSidebar, };
@@ -1,24 +0,0 @@
1
- <script lang="ts">
2
- import type { HTMLAttributes } from "svelte/elements";
3
- import type { WithElementRef } from "bits-ui";
4
- import { cn } from "../../../utils.js";
5
-
6
- let {
7
- ref = $bindable(null),
8
- class: className,
9
- children,
10
- ...restProps
11
- }: WithElementRef<HTMLAttributes<HTMLElement>> = $props();
12
- </script>
13
-
14
- <div
15
- bind:this={ref}
16
- data-sidebar="content"
17
- class={cn(
18
- "flex min-h-0 flex-1 flex-col gap-2 overflow-auto group-data-[collapsible=icon]:overflow-hidden",
19
- className
20
- )}
21
- {...restProps}
22
- >
23
- {@render children?.()}
24
- </div>
@@ -1,4 +0,0 @@
1
- import type { HTMLAttributes } from "svelte/elements";
2
- import type { WithElementRef } from "bits-ui";
3
- declare const SidebarContent: import("svelte").Component<WithElementRef<HTMLAttributes<HTMLElement>>, {}, "ref">;
4
- export default SidebarContent;
@@ -1,21 +0,0 @@
1
- <script lang="ts">
2
- import type { HTMLAttributes } from "svelte/elements";
3
- import type { WithElementRef } from "bits-ui";
4
- import { cn } from "../../../utils.js";
5
-
6
- let {
7
- ref = $bindable(null),
8
- class: className,
9
- children,
10
- ...restProps
11
- }: WithElementRef<HTMLAttributes<HTMLElement>> = $props();
12
- </script>
13
-
14
- <div
15
- bind:this={ref}
16
- data-sidebar="footer"
17
- class={cn("flex flex-col gap-2 p-2", className)}
18
- {...restProps}
19
- >
20
- {@render children?.()}
21
- </div>
@@ -1,4 +0,0 @@
1
- import type { HTMLAttributes } from "svelte/elements";
2
- import type { WithElementRef } from "bits-ui";
3
- declare const SidebarFooter: import("svelte").Component<WithElementRef<HTMLAttributes<HTMLElement>>, {}, "ref">;
4
- export default SidebarFooter;
@@ -1,36 +0,0 @@
1
- <script lang="ts">
2
- import { cn } from "../../../utils.js";
3
- import type { WithElementRef } from "bits-ui";
4
- import type { Snippet } from "svelte";
5
- import type { HTMLButtonAttributes } from "svelte/elements";
6
-
7
- let {
8
- ref = $bindable(null),
9
- class: className,
10
- children,
11
- child,
12
- ...restProps
13
- }: WithElementRef<HTMLButtonAttributes> & {
14
- child?: Snippet<[{ props: Record<string, unknown> }]>;
15
- } = $props();
16
-
17
- const propObj = $derived({
18
- class: cn(
19
- "text-sidebar-foreground ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground absolute right-3 top-3.5 flex aspect-square w-5 items-center justify-center rounded-md p-0 outline-none transition-transform focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0",
20
- // Increases the hit area of the button on mobile.
21
- "after:absolute after:-inset-2 after:md:hidden",
22
- "group-data-[collapsible=icon]:hidden",
23
- className
24
- ),
25
- "data-sidebar": "group-action",
26
- ...restProps,
27
- });
28
- </script>
29
-
30
- {#if child}
31
- {@render child({ props: propObj })}
32
- {:else}
33
- <button bind:this={ref} {...propObj}>
34
- {@render children?.()}
35
- </button>
36
- {/if}
@@ -1,10 +0,0 @@
1
- import type { Snippet } from "svelte";
2
- import type { HTMLButtonAttributes } from "svelte/elements";
3
- declare const SidebarGroupAction: import("svelte").Component<HTMLButtonAttributes & {
4
- ref?: HTMLElement | null | undefined;
5
- } & {
6
- child?: Snippet<[{
7
- props: Record<string, unknown>;
8
- }]>;
9
- }, {}, "ref">;
10
- export default SidebarGroupAction;
@@ -1,21 +0,0 @@
1
- <script lang="ts">
2
- import { cn } from "../../../utils.js";
3
- import type { WithElementRef } from "bits-ui";
4
- import type { HTMLAttributes } from "svelte/elements";
5
-
6
- let {
7
- ref = $bindable(null),
8
- class: className,
9
- children,
10
- ...restProps
11
- }: WithElementRef<HTMLAttributes<HTMLDivElement>> = $props();
12
- </script>
13
-
14
- <div
15
- bind:this={ref}
16
- data-sidebar="group-content"
17
- class={cn("w-full text-sm", className)}
18
- {...restProps}
19
- >
20
- {@render children?.()}
21
- </div>
@@ -1,4 +0,0 @@
1
- import type { WithElementRef } from "bits-ui";
2
- import type { HTMLAttributes } from "svelte/elements";
3
- declare const SidebarGroupContent: import("svelte").Component<WithElementRef<HTMLAttributes<HTMLDivElement>>, {}, "ref">;
4
- export default SidebarGroupContent;
@@ -1,34 +0,0 @@
1
- <script lang="ts">
2
- import { cn } from "../../../utils.js";
3
- import type { WithElementRef } from "bits-ui";
4
- import type { Snippet } from "svelte";
5
- import type { HTMLAttributes } from "svelte/elements";
6
-
7
- let {
8
- ref = $bindable(null),
9
- children,
10
- child,
11
- class: className,
12
- ...restProps
13
- }: WithElementRef<HTMLAttributes<HTMLElement>> & {
14
- child?: Snippet<[{ props: Record<string, unknown> }]>;
15
- } = $props();
16
-
17
- const mergedProps = $derived({
18
- class: cn(
19
- "text-sidebar-foreground/70 ring-sidebar-ring flex h-8 shrink-0 items-center rounded-md px-2 text-xs font-medium outline-none transition-[margin,opa] duration-200 ease-linear focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0",
20
- "group-data-[collapsible=icon]:-mt-8 group-data-[collapsible=icon]:opacity-0",
21
- className
22
- ),
23
- "data-sidebar": "group-label",
24
- ...restProps,
25
- });
26
- </script>
27
-
28
- {#if child}
29
- {@render child({ props: mergedProps })}
30
- {:else}
31
- <div bind:this={ref} {...mergedProps}>
32
- {@render children?.()}
33
- </div>
34
- {/if}
@@ -1,10 +0,0 @@
1
- import type { Snippet } from "svelte";
2
- import type { HTMLAttributes } from "svelte/elements";
3
- declare const SidebarGroupLabel: import("svelte").Component<HTMLAttributes<HTMLElement> & {
4
- ref?: HTMLElement | null | undefined;
5
- } & {
6
- child?: Snippet<[{
7
- props: Record<string, unknown>;
8
- }]>;
9
- }, {}, "ref">;
10
- export default SidebarGroupLabel;
@@ -1,21 +0,0 @@
1
- <script lang="ts">
2
- import type { HTMLAttributes } from "svelte/elements";
3
- import type { WithElementRef } from "bits-ui";
4
- import { cn } from "../../../utils.js";
5
-
6
- let {
7
- ref = $bindable(null),
8
- class: className,
9
- children,
10
- ...restProps
11
- }: WithElementRef<HTMLAttributes<HTMLElement>> = $props();
12
- </script>
13
-
14
- <div
15
- bind:this={ref}
16
- data-sidebar="group"
17
- class={cn("relative flex w-full min-w-0 flex-col p-2", className)}
18
- {...restProps}
19
- >
20
- {@render children?.()}
21
- </div>
@@ -1,4 +0,0 @@
1
- import type { HTMLAttributes } from "svelte/elements";
2
- import type { WithElementRef } from "bits-ui";
3
- declare const SidebarGroup: import("svelte").Component<WithElementRef<HTMLAttributes<HTMLElement>>, {}, "ref">;
4
- export default SidebarGroup;
@@ -1,21 +0,0 @@
1
- <script lang="ts">
2
- import type { HTMLAttributes } from "svelte/elements";
3
- import type { WithElementRef } from "bits-ui";
4
- import { cn } from "../../../utils.js";
5
-
6
- let {
7
- ref = $bindable(null),
8
- class: className,
9
- children,
10
- ...restProps
11
- }: WithElementRef<HTMLAttributes<HTMLElement>> = $props();
12
- </script>
13
-
14
- <div
15
- bind:this={ref}
16
- data-sidebar="header"
17
- class={cn("flex flex-col gap-2 p-2", className)}
18
- {...restProps}
19
- >
20
- {@render children?.()}
21
- </div>
@@ -1,4 +0,0 @@
1
- import type { HTMLAttributes } from "svelte/elements";
2
- import type { WithElementRef } from "bits-ui";
3
- declare const SidebarHeader: import("svelte").Component<WithElementRef<HTMLAttributes<HTMLElement>>, {}, "ref">;
4
- export default SidebarHeader;
@@ -1,23 +0,0 @@
1
- <script lang="ts">
2
- import { Input } from "../input/index.js";
3
- import { cn } from "../../../utils.js";
4
- import type { ComponentProps } from "svelte";
5
-
6
- let {
7
- ref = $bindable(null),
8
- value = $bindable(""),
9
- class: className,
10
- ...restProps
11
- }: ComponentProps<typeof Input> = $props();
12
- </script>
13
-
14
- <Input
15
- bind:ref
16
- bind:value
17
- data-sidebar="input"
18
- class={cn(
19
- "bg-background focus-visible:ring-sidebar-ring h-8 w-full shadow-none focus-visible:ring-2",
20
- className
21
- )}
22
- {...restProps}
23
- />
@@ -1,4 +0,0 @@
1
- declare const SidebarInput: import("svelte").Component<import("svelte/elements").HTMLInputAttributes & {
2
- ref?: HTMLElement | null | undefined;
3
- }, {}, "value" | "ref">;
4
- export default SidebarInput;
@@ -1,24 +0,0 @@
1
- <script lang="ts">
2
- import { cn } from "../../../utils.js";
3
- import type { WithElementRef } from "bits-ui";
4
- import type { HTMLAttributes } from "svelte/elements";
5
-
6
- let {
7
- ref = $bindable(null),
8
- class: className,
9
- children,
10
- ...restProps
11
- }: WithElementRef<HTMLAttributes<HTMLElement>> = $props();
12
- </script>
13
-
14
- <main
15
- bind:this={ref}
16
- class={cn(
17
- "bg-background relative flex min-h-svh flex-1 flex-col",
18
- "peer-data-[variant=inset]:min-h-[calc(100svh-theme(spacing.4))] md:peer-data-[variant=inset]:m-2 md:peer-data-[state=collapsed]:peer-data-[variant=inset]:ml-2 md:peer-data-[variant=inset]:ml-0 md:peer-data-[variant=inset]:rounded-xl md:peer-data-[variant=inset]:shadow",
19
- className
20
- )}
21
- {...restProps}
22
- >
23
- {@render children?.()}
24
- </main>
@@ -1,4 +0,0 @@
1
- import type { WithElementRef } from "bits-ui";
2
- import type { HTMLAttributes } from "svelte/elements";
3
- declare const SidebarInset: import("svelte").Component<WithElementRef<HTMLAttributes<HTMLElement>>, {}, "ref">;
4
- export default SidebarInset;
@@ -1,43 +0,0 @@
1
- <script lang="ts">
2
- import { cn } from "../../../utils.js";
3
- import type { WithElementRef } from "bits-ui";
4
- import type { Snippet } from "svelte";
5
- import type { HTMLButtonAttributes } from "svelte/elements";
6
-
7
- let {
8
- ref = $bindable(null),
9
- class: className,
10
- showOnHover = false,
11
- children,
12
- child,
13
- ...restProps
14
- }: WithElementRef<HTMLButtonAttributes> & {
15
- child?: Snippet<[{ props: Record<string, unknown> }]>;
16
- showOnHover?: boolean;
17
- } = $props();
18
-
19
- const mergedProps = $derived({
20
- class: cn(
21
- "text-sidebar-foreground ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground peer-hover/menu-button:text-sidebar-accent-foreground absolute right-1 top-1.5 flex aspect-square w-5 items-center justify-center rounded-md p-0 outline-none transition-transform focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0",
22
- // Increases the hit area of the button on mobile.
23
- "after:absolute after:-inset-2 after:md:hidden",
24
- "peer-data-[size=sm]/menu-button:top-1",
25
- "peer-data-[size=default]/menu-button:top-1.5",
26
- "peer-data-[size=lg]/menu-button:top-2.5",
27
- "group-data-[collapsible=icon]:hidden",
28
- showOnHover &&
29
- "peer-data-[active=true]/menu-button:text-sidebar-accent-foreground group-focus-within/menu-item:opacity-100 group-hover/menu-item:opacity-100 data-[state=open]:opacity-100 md:opacity-0",
30
- className
31
- ),
32
- "data-sidebar": "menu-action",
33
- ...restProps,
34
- });
35
- </script>
36
-
37
- {#if child}
38
- {@render child({ props: mergedProps })}
39
- {:else}
40
- <button bind:this={ref} {...mergedProps}>
41
- {@render children?.()}
42
- </button>
43
- {/if}
@@ -1,11 +0,0 @@
1
- import type { Snippet } from "svelte";
2
- import type { HTMLButtonAttributes } from "svelte/elements";
3
- declare const SidebarMenuAction: import("svelte").Component<HTMLButtonAttributes & {
4
- ref?: HTMLElement | null | undefined;
5
- } & {
6
- child?: Snippet<[{
7
- props: Record<string, unknown>;
8
- }]>;
9
- showOnHover?: boolean;
10
- }, {}, "ref">;
11
- export default SidebarMenuAction;
@@ -1,29 +0,0 @@
1
- <script lang="ts">
2
- import { cn } from "../../../utils.js";
3
- import type { WithElementRef } from "bits-ui";
4
- import type { HTMLAttributes } from "svelte/elements";
5
-
6
- let {
7
- ref = $bindable(null),
8
- class: className,
9
- children,
10
- ...restProps
11
- }: WithElementRef<HTMLAttributes<HTMLElement>> = $props();
12
- </script>
13
-
14
- <div
15
- bind:this={ref}
16
- data-sidebar="menu-badge"
17
- class={cn(
18
- "text-sidebar-foreground pointer-events-none absolute right-1 flex h-5 min-w-5 select-none items-center justify-center rounded-md px-1 text-xs font-medium tabular-nums",
19
- "peer-hover/menu-button:text-sidebar-accent-foreground peer-data-[active=true]/menu-button:text-sidebar-accent-foreground",
20
- "peer-data-[size=sm]/menu-button:top-1",
21
- "peer-data-[size=default]/menu-button:top-1.5",
22
- "peer-data-[size=lg]/menu-button:top-2.5",
23
- "group-data-[collapsible=icon]:hidden",
24
- className
25
- )}
26
- {...restProps}
27
- >
28
- {@render children?.()}
29
- </div>
@@ -1,4 +0,0 @@
1
- import type { WithElementRef } from "bits-ui";
2
- import type { HTMLAttributes } from "svelte/elements";
3
- declare const SidebarMenuBadge: import("svelte").Component<WithElementRef<HTMLAttributes<HTMLElement>>, {}, "ref">;
4
- export default SidebarMenuBadge;
@@ -1,97 +0,0 @@
1
- <script lang="ts" module>
2
- import { tv, type VariantProps } from "tailwind-variants";
3
-
4
- export const sidebarMenuButtonVariants = tv({
5
- base: "peer/menu-button ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground active:bg-sidebar-accent active:text-sidebar-accent-foreground data-[active=true]:bg-sidebar-accent data-[active=true]:text-sidebar-accent-foreground data-[state=open]:hover:bg-sidebar-accent data-[state=open]:hover:text-sidebar-accent-foreground flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left text-sm outline-none transition-[width,height,padding] focus-visible:ring-2 disabled:pointer-events-none disabled:opacity-50 group-has-[[data-sidebar=menu-action]]/menu-item:pr-8 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[active=true]:font-medium group-data-[collapsible=icon]:!size-8 group-data-[collapsible=icon]:!p-2 [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0",
6
- variants: {
7
- variant: {
8
- default: "hover:bg-sidebar-accent hover:text-sidebar-accent-foreground",
9
- outline:
10
- "bg-background hover:bg-sidebar-accent hover:text-sidebar-accent-foreground shadow-[0_0_0_1px_hsl(var(--sidebar-border))] hover:shadow-[0_0_0_1px_hsl(var(--sidebar-accent))]",
11
- },
12
- size: {
13
- default: "h-8 text-sm",
14
- sm: "h-7 text-xs",
15
- lg: "h-12 text-sm group-data-[collapsible=icon]:!p-0",
16
- },
17
- },
18
- defaultVariants: {
19
- variant: "default",
20
- size: "default",
21
- },
22
- });
23
-
24
- export type SidebarMenuButtonVariant = VariantProps<
25
- typeof sidebarMenuButtonVariants
26
- >["variant"];
27
- export type SidebarMenuButtonSize = VariantProps<typeof sidebarMenuButtonVariants>["size"];
28
- </script>
29
-
30
- <script lang="ts">
31
- import * as Tooltip from "../tooltip/index.js";
32
- import { cn } from "../../../utils.js";
33
- import { mergeProps, type WithElementRef, type WithoutChildrenOrChild } from "bits-ui";
34
- import type { ComponentProps, Snippet } from "svelte";
35
- import type { HTMLAttributes } from "svelte/elements";
36
- import { useSidebar } from "./context.svelte.js";
37
-
38
- let {
39
- ref = $bindable(null),
40
- class: className,
41
- children,
42
- child,
43
- variant = "default",
44
- size = "default",
45
- isActive = false,
46
- tooltipContent,
47
- tooltipContentProps,
48
- ...restProps
49
- }: WithElementRef<HTMLAttributes<HTMLButtonElement>, HTMLButtonElement> & {
50
- isActive?: boolean;
51
- variant?: SidebarMenuButtonVariant;
52
- size?: SidebarMenuButtonSize;
53
- tooltipContent?: Snippet;
54
- tooltipContentProps?: WithoutChildrenOrChild<ComponentProps<typeof Tooltip.Content>>;
55
- child?: Snippet<[{ props: Record<string, unknown> }]>;
56
- } = $props();
57
-
58
- const sidebar = useSidebar();
59
-
60
- const buttonProps = $derived({
61
- class: cn(sidebarMenuButtonVariants({ variant, size }), className),
62
- "data-sidebar": "menu-button",
63
- "data-size": size,
64
- "data-active": isActive,
65
- ...restProps,
66
- });
67
- </script>
68
-
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({})}
82
- {: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
- children={tooltipContent}
94
- {...tooltipContentProps}
95
- />
96
- </Tooltip.Root>
97
- {/if}