svelte-ag 0.0.2-dev.73 → 0.0.2-dev.81

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 (445) hide show
  1. package/README.md +12 -0
  2. package/dist/app.css +0 -4
  3. package/dist/lib/api/form.svelte.d.ts +11 -0
  4. package/dist/lib/api/form.svelte.d.ts.map +1 -0
  5. package/dist/lib/api/form.svelte.js +43 -0
  6. package/dist/lib/api/index.d.ts +3 -0
  7. package/dist/lib/api/index.d.ts.map +1 -0
  8. package/dist/lib/api/index.js +2 -0
  9. package/dist/lib/api/query.svelte.d.ts +21 -0
  10. package/dist/lib/api/query.svelte.d.ts.map +1 -0
  11. package/dist/lib/api/query.svelte.js +47 -0
  12. package/dist/lib/bits/internal/arrays.d.ts +1 -0
  13. package/dist/lib/bits/internal/arrays.d.ts.map +1 -0
  14. package/dist/lib/bits/internal/arrays.test.d.ts +1 -0
  15. package/dist/lib/bits/internal/arrays.test.d.ts.map +1 -0
  16. package/dist/lib/bits/internal/attrs.d.ts +1 -0
  17. package/dist/lib/bits/internal/attrs.d.ts.map +1 -0
  18. package/dist/lib/bits/internal/box-auto-reset.svelte.d.ts +1 -0
  19. package/dist/lib/bits/internal/box-auto-reset.svelte.d.ts.map +1 -0
  20. package/dist/lib/bits/internal/box.svelte.d.ts +1 -0
  21. package/dist/lib/bits/internal/box.svelte.d.ts.map +1 -0
  22. package/dist/lib/bits/internal/clamp.d.ts +1 -0
  23. package/dist/lib/bits/internal/clamp.d.ts.map +1 -0
  24. package/dist/lib/bits/internal/clamp.test.d.ts +1 -0
  25. package/dist/lib/bits/internal/clamp.test.d.ts.map +1 -0
  26. package/dist/lib/bits/internal/create-event-hook.svelte.d.ts +1 -0
  27. package/dist/lib/bits/internal/create-event-hook.svelte.d.ts.map +1 -0
  28. package/dist/lib/bits/internal/create-shared-hook.svelte.d.ts +1 -0
  29. package/dist/lib/bits/internal/create-shared-hook.svelte.d.ts.map +1 -0
  30. package/dist/lib/bits/internal/date-time/announcer.d.ts +2 -1
  31. package/dist/lib/bits/internal/date-time/announcer.d.ts.map +1 -0
  32. package/dist/lib/bits/internal/date-time/calendar-helpers.svelte.d.ts +1 -0
  33. package/dist/lib/bits/internal/date-time/calendar-helpers.svelte.d.ts.map +1 -0
  34. package/dist/lib/bits/internal/date-time/field/helpers.d.ts +1 -0
  35. package/dist/lib/bits/internal/date-time/field/helpers.d.ts.map +1 -0
  36. package/dist/lib/bits/internal/date-time/field/parts.d.ts +1 -0
  37. package/dist/lib/bits/internal/date-time/field/parts.d.ts.map +1 -0
  38. package/dist/lib/bits/internal/date-time/field/segments.d.ts +1 -0
  39. package/dist/lib/bits/internal/date-time/field/segments.d.ts.map +1 -0
  40. package/dist/lib/bits/internal/date-time/field/types.d.ts +1 -0
  41. package/dist/lib/bits/internal/date-time/field/types.d.ts.map +1 -0
  42. package/dist/lib/bits/internal/date-time/formatter.d.ts +1 -0
  43. package/dist/lib/bits/internal/date-time/formatter.d.ts.map +1 -0
  44. package/dist/lib/bits/internal/date-time/placeholders.d.ts +1 -0
  45. package/dist/lib/bits/internal/date-time/placeholders.d.ts.map +1 -0
  46. package/dist/lib/bits/internal/date-time/utils.d.ts +1 -0
  47. package/dist/lib/bits/internal/date-time/utils.d.ts.map +1 -0
  48. package/dist/lib/bits/internal/debounce.d.ts +1 -0
  49. package/dist/lib/bits/internal/debounce.d.ts.map +1 -0
  50. package/dist/lib/bits/internal/debounce.test.d.ts +1 -0
  51. package/dist/lib/bits/internal/debounce.test.d.ts.map +1 -0
  52. package/dist/lib/bits/internal/dom.d.ts +1 -0
  53. package/dist/lib/bits/internal/dom.d.ts.map +1 -0
  54. package/dist/lib/bits/internal/elements.d.ts +1 -0
  55. package/dist/lib/bits/internal/elements.d.ts.map +1 -0
  56. package/dist/lib/bits/internal/events.d.ts +1 -0
  57. package/dist/lib/bits/internal/events.d.ts.map +1 -0
  58. package/dist/lib/bits/internal/floating-svelte/floating-utils.svelte.d.ts +1 -0
  59. package/dist/lib/bits/internal/floating-svelte/floating-utils.svelte.d.ts.map +1 -0
  60. package/dist/lib/bits/internal/floating-svelte/types.d.ts +1 -0
  61. package/dist/lib/bits/internal/floating-svelte/types.d.ts.map +1 -0
  62. package/dist/lib/bits/internal/floating-svelte/use-floating.svelte.d.ts +1 -0
  63. package/dist/lib/bits/internal/floating-svelte/use-floating.svelte.d.ts.map +1 -0
  64. package/dist/lib/bits/internal/focus.d.ts +1 -0
  65. package/dist/lib/bits/internal/focus.d.ts.map +1 -0
  66. package/dist/lib/bits/internal/get-directional-keys.d.ts +1 -0
  67. package/dist/lib/bits/internal/get-directional-keys.d.ts.map +1 -0
  68. package/dist/lib/bits/internal/get-directional-keys.test.d.ts +1 -0
  69. package/dist/lib/bits/internal/get-directional-keys.test.d.ts.map +1 -0
  70. package/dist/lib/bits/internal/is.d.ts +1 -0
  71. package/dist/lib/bits/internal/is.d.ts.map +1 -0
  72. package/dist/lib/bits/internal/is.test.d.ts +1 -0
  73. package/dist/lib/bits/internal/is.test.d.ts.map +1 -0
  74. package/dist/lib/bits/internal/kbd-constants.d.ts +1 -0
  75. package/dist/lib/bits/internal/kbd-constants.d.ts.map +1 -0
  76. package/dist/lib/bits/internal/kbd.d.ts +1 -0
  77. package/dist/lib/bits/internal/kbd.d.ts.map +1 -0
  78. package/dist/lib/bits/internal/locale.d.ts +1 -0
  79. package/dist/lib/bits/internal/locale.d.ts.map +1 -0
  80. package/dist/lib/bits/internal/math.d.ts +1 -0
  81. package/dist/lib/bits/internal/math.d.ts.map +1 -0
  82. package/dist/lib/bits/internal/math.test.d.ts +1 -0
  83. package/dist/lib/bits/internal/math.test.d.ts.map +1 -0
  84. package/dist/lib/bits/internal/noop.d.ts +1 -0
  85. package/dist/lib/bits/internal/noop.d.ts.map +1 -0
  86. package/dist/lib/bits/internal/should-trap-focus.d.ts +1 -0
  87. package/dist/lib/bits/internal/should-trap-focus.d.ts.map +1 -0
  88. package/dist/lib/bits/internal/sleep.d.ts +1 -0
  89. package/dist/lib/bits/internal/sleep.d.ts.map +1 -0
  90. package/dist/lib/bits/internal/tabbable.d.ts +1 -0
  91. package/dist/lib/bits/internal/tabbable.d.ts.map +1 -0
  92. package/dist/lib/bits/internal/types.d.ts +1 -0
  93. package/dist/lib/bits/internal/types.d.ts.map +1 -0
  94. package/dist/lib/bits/internal/use-after-animations.svelte.d.ts +1 -0
  95. package/dist/lib/bits/internal/use-after-animations.svelte.d.ts.map +1 -0
  96. package/dist/lib/bits/internal/use-arrow-navigation.d.ts +1 -0
  97. package/dist/lib/bits/internal/use-arrow-navigation.d.ts.map +1 -0
  98. package/dist/lib/bits/internal/use-body-scroll-lock.svelte.d.ts +1 -0
  99. package/dist/lib/bits/internal/use-body-scroll-lock.svelte.d.ts.map +1 -0
  100. package/dist/lib/bits/internal/use-data-typeahead.svelte.d.ts +1 -0
  101. package/dist/lib/bits/internal/use-data-typeahead.svelte.d.ts.map +1 -0
  102. package/dist/lib/bits/internal/use-dom-typeahead.svelte.d.ts +1 -0
  103. package/dist/lib/bits/internal/use-dom-typeahead.svelte.d.ts.map +1 -0
  104. package/dist/lib/bits/internal/use-form-control.svelte.d.ts +1 -0
  105. package/dist/lib/bits/internal/use-form-control.svelte.d.ts.map +1 -0
  106. package/dist/lib/bits/internal/use-grace-area.svelte.d.ts +1 -0
  107. package/dist/lib/bits/internal/use-grace-area.svelte.d.ts.map +1 -0
  108. package/dist/lib/bits/internal/use-id.d.ts +1 -0
  109. package/dist/lib/bits/internal/use-id.d.ts.map +1 -0
  110. package/dist/lib/bits/internal/use-resize-observer.svelte.d.ts +1 -0
  111. package/dist/lib/bits/internal/use-resize-observer.svelte.d.ts.map +1 -0
  112. package/dist/lib/bits/internal/use-roving-focus.svelte.d.ts +1 -0
  113. package/dist/lib/bits/internal/use-roving-focus.svelte.d.ts.map +1 -0
  114. package/dist/lib/bits/internal/use-size.svelte.d.ts +1 -0
  115. package/dist/lib/bits/internal/use-size.svelte.d.ts.map +1 -0
  116. package/dist/lib/bits/internal/use-state-machine.svelte.d.ts +1 -0
  117. package/dist/lib/bits/internal/use-state-machine.svelte.d.ts.map +1 -0
  118. package/dist/lib/bits/internal/use-timeout-fn.svelte.d.ts +1 -0
  119. package/dist/lib/bits/internal/use-timeout-fn.svelte.d.ts.map +1 -0
  120. package/dist/lib/components/animated/animated.svelte +5 -3
  121. package/dist/lib/components/animated/animated.svelte.d.ts +5 -1
  122. package/dist/lib/components/animated/animated.svelte.d.ts.map +1 -0
  123. package/dist/lib/components/animated/index.d.ts +1 -0
  124. package/dist/lib/components/animated/index.d.ts.map +1 -0
  125. package/dist/lib/components/carousel/carousel-content.svelte +44 -0
  126. package/dist/lib/components/carousel/carousel-content.svelte.d.ts +4 -0
  127. package/dist/lib/components/carousel/carousel-content.svelte.d.ts.map +1 -0
  128. package/dist/lib/components/carousel/carousel-dots.svelte +28 -0
  129. package/dist/lib/components/carousel/carousel-dots.svelte.d.ts +4 -0
  130. package/dist/lib/components/carousel/carousel-dots.svelte.d.ts.map +1 -0
  131. package/dist/lib/components/carousel/carousel-item.svelte +27 -0
  132. package/dist/lib/components/carousel/carousel-item.svelte.d.ts +4 -0
  133. package/dist/lib/components/carousel/carousel-item.svelte.d.ts.map +1 -0
  134. package/dist/lib/components/carousel/carousel-next.svelte +38 -0
  135. package/dist/lib/components/carousel/carousel-next.svelte.d.ts +4 -0
  136. package/dist/lib/components/carousel/carousel-next.svelte.d.ts.map +1 -0
  137. package/dist/lib/components/carousel/carousel-previous.svelte +38 -0
  138. package/dist/lib/components/carousel/carousel-previous.svelte.d.ts +4 -0
  139. package/dist/lib/components/carousel/carousel-previous.svelte.d.ts.map +1 -0
  140. package/dist/lib/components/carousel/carousel.svelte +103 -0
  141. package/dist/lib/components/carousel/carousel.svelte.d.ts +4 -0
  142. package/dist/lib/components/carousel/carousel.svelte.d.ts.map +1 -0
  143. package/dist/lib/components/carousel/context.d.ts +36 -0
  144. package/dist/lib/components/carousel/context.d.ts.map +1 -0
  145. package/dist/lib/components/carousel/context.js +12 -0
  146. package/dist/lib/components/carousel/index.d.ts +8 -0
  147. package/dist/lib/components/carousel/index.d.ts.map +1 -0
  148. package/dist/lib/components/carousel/index.js +9 -0
  149. package/dist/lib/components/dnd/Droppable.svelte.d.ts +2 -8
  150. package/dist/lib/components/dnd/Droppable.svelte.d.ts.map +1 -0
  151. package/dist/lib/components/dnd/context.svelte.d.ts +3 -3
  152. package/dist/lib/components/dnd/context.svelte.d.ts.map +1 -0
  153. package/dist/lib/components/dnd/context.svelte.js +6 -7
  154. package/dist/lib/components/dnd/dnd-context.svelte.d.ts +2 -1
  155. package/dist/lib/components/dnd/dnd-context.svelte.d.ts.map +1 -0
  156. package/dist/lib/components/dnd/dnd-drag-overlay.svelte.d.ts +2 -1
  157. package/dist/lib/components/dnd/dnd-drag-overlay.svelte.d.ts.map +1 -0
  158. package/dist/lib/components/dnd/dnd-drag-placeholder.svelte.d.ts +2 -1
  159. package/dist/lib/components/dnd/dnd-drag-placeholder.svelte.d.ts.map +1 -0
  160. package/dist/lib/components/dnd/dnd-draghandle.svelte +7 -1
  161. package/dist/lib/components/dnd/dnd-draghandle.svelte.d.ts +2 -1
  162. package/dist/lib/components/dnd/dnd-draghandle.svelte.d.ts.map +1 -0
  163. package/dist/lib/components/dnd/dnd-overlay.svelte.d.ts +4 -11
  164. package/dist/lib/components/dnd/dnd-overlay.svelte.d.ts.map +1 -0
  165. package/dist/lib/components/dnd/dnd-sortable-context.svelte.d.ts +2 -1
  166. package/dist/lib/components/dnd/dnd-sortable-context.svelte.d.ts.map +1 -0
  167. package/dist/lib/components/dnd/dnd-sortable-item.svelte +9 -5
  168. package/dist/lib/components/dnd/dnd-sortable-item.svelte.d.ts +4 -3
  169. package/dist/lib/components/dnd/dnd-sortable-item.svelte.d.ts.map +1 -0
  170. package/dist/lib/components/dnd/example.svelte.d.ts +2 -1
  171. package/dist/lib/components/dnd/example.svelte.d.ts.map +1 -0
  172. package/dist/lib/components/dnd/exports.d.ts +1 -0
  173. package/dist/lib/components/dnd/exports.d.ts.map +1 -0
  174. package/dist/lib/components/dnd/index.d.ts +1 -0
  175. package/dist/lib/components/dnd/index.d.ts.map +1 -0
  176. package/dist/lib/components/dnd/sortable.svelte.d.ts +1 -0
  177. package/dist/lib/components/dnd/sortable.svelte.d.ts.map +1 -0
  178. package/dist/lib/components/dnd/sortable.svelte.js +3 -1
  179. package/dist/lib/components/dnd/utils.svelte.d.ts +14 -0
  180. package/dist/lib/components/dnd/utils.svelte.d.ts.map +1 -0
  181. package/dist/lib/components/dnd/utils.svelte.js +7 -3
  182. package/dist/lib/components/form/form-button.svelte +20 -0
  183. package/dist/lib/components/form/form-button.svelte.d.ts +4 -0
  184. package/dist/lib/components/form/form-button.svelte.d.ts.map +1 -0
  185. package/dist/lib/components/form/form-description.svelte +17 -0
  186. package/dist/lib/components/form/form-description.svelte.d.ts +4 -0
  187. package/dist/lib/components/form/form-description.svelte.d.ts.map +1 -0
  188. package/dist/lib/components/form/form-element-field.svelte +24 -0
  189. package/dist/lib/components/form/form-element-field.svelte.d.ts +19 -0
  190. package/dist/lib/components/form/form-element-field.svelte.d.ts.map +1 -0
  191. package/dist/lib/components/form/form-field-errors.svelte +30 -0
  192. package/dist/lib/components/form/form-field-errors.svelte.d.ts +4 -0
  193. package/dist/lib/components/form/form-field-errors.svelte.d.ts.map +1 -0
  194. package/dist/lib/components/form/form-field.svelte +29 -0
  195. package/dist/lib/components/form/form-field.svelte.d.ts +19 -0
  196. package/dist/lib/components/form/form-field.svelte.d.ts.map +1 -0
  197. package/dist/lib/components/form/form-fieldset.svelte +15 -0
  198. package/dist/lib/components/form/form-fieldset.svelte.d.ts +20 -0
  199. package/dist/lib/components/form/form-fieldset.svelte.d.ts.map +1 -0
  200. package/dist/lib/components/form/form-label.svelte +24 -0
  201. package/dist/lib/components/form/form-label.svelte.d.ts +4 -0
  202. package/dist/lib/components/form/form-label.svelte.d.ts.map +1 -0
  203. package/dist/lib/components/form/form-legend.svelte +16 -0
  204. package/dist/lib/components/form/form-legend.svelte.d.ts +4 -0
  205. package/dist/lib/components/form/form-legend.svelte.d.ts.map +1 -0
  206. package/dist/lib/components/form/form.svelte +36 -0
  207. package/dist/lib/components/form/form.svelte.d.ts +8 -0
  208. package/dist/lib/components/form/form.svelte.d.ts.map +1 -0
  209. package/dist/lib/components/form/index.d.ts +13 -0
  210. package/dist/lib/components/form/index.d.ts.map +1 -0
  211. package/dist/lib/components/form/index.js +14 -0
  212. package/dist/lib/components/gradient/Gradient.svelte +66 -0
  213. package/dist/lib/components/gradient/Gradient.svelte.d.ts +4 -0
  214. package/dist/lib/components/gradient/Gradient.svelte.d.ts.map +1 -0
  215. package/dist/lib/components/gradient/index.d.ts +2 -0
  216. package/dist/lib/components/gradient/index.d.ts.map +1 -0
  217. package/dist/lib/components/gradient/index.js +1 -0
  218. package/dist/lib/components/safe/index.d.ts +3 -0
  219. package/dist/lib/components/safe/index.d.ts.map +1 -0
  220. package/dist/lib/components/safe/index.js +2 -0
  221. package/dist/lib/components/safe/safe.svelte +20 -0
  222. package/dist/lib/components/safe/safe.svelte.d.ts +9 -0
  223. package/dist/lib/components/safe/safe.svelte.d.ts.map +1 -0
  224. package/dist/lib/components/search/combinations/searchPopover.svelte.d.ts +2 -11
  225. package/dist/lib/components/search/combinations/searchPopover.svelte.d.ts.map +1 -0
  226. package/dist/lib/components/search/components/search-empty.svelte.d.ts +2 -2
  227. package/dist/lib/components/search/components/search-empty.svelte.d.ts.map +1 -0
  228. package/dist/lib/components/search/components/search-input.svelte.d.ts +2 -2
  229. package/dist/lib/components/search/components/search-input.svelte.d.ts.map +1 -0
  230. package/dist/lib/components/search/components/search-list.svelte +2 -2
  231. package/dist/lib/components/search/components/search-list.svelte.d.ts +2 -2
  232. package/dist/lib/components/search/components/search-list.svelte.d.ts.map +1 -0
  233. package/dist/lib/components/search/components/search-pagnation.svelte.d.ts +2 -6
  234. package/dist/lib/components/search/components/search-pagnation.svelte.d.ts.map +1 -0
  235. package/dist/lib/components/search/components/search.svelte.d.ts +2 -2
  236. package/dist/lib/components/search/components/search.svelte.d.ts.map +1 -0
  237. package/dist/lib/components/search/exports.d.ts +1 -0
  238. package/dist/lib/components/search/exports.d.ts.map +1 -0
  239. package/dist/lib/components/search/index.d.ts +1 -0
  240. package/dist/lib/components/search/index.d.ts.map +1 -0
  241. package/dist/lib/components/search/search.svelte.d.ts +1 -0
  242. package/dist/lib/components/search/search.svelte.d.ts.map +1 -0
  243. package/dist/lib/components/search/types.d.ts +1 -0
  244. package/dist/lib/components/search/types.d.ts.map +1 -0
  245. package/dist/lib/components/sidebar/README.md +10 -0
  246. package/dist/lib/components/sidebar/constants.d.ts +7 -0
  247. package/dist/lib/components/sidebar/constants.d.ts.map +1 -0
  248. package/dist/lib/components/sidebar/constants.js +6 -0
  249. package/dist/lib/components/sidebar/context.svelte.d.ts +52 -0
  250. package/dist/lib/components/sidebar/context.svelte.d.ts.map +1 -0
  251. package/dist/lib/components/sidebar/context.svelte.js +57 -0
  252. package/dist/lib/components/sidebar/index.d.ts +26 -0
  253. package/dist/lib/components/sidebar/index.d.ts.map +1 -0
  254. package/dist/lib/components/sidebar/index.js +27 -0
  255. package/dist/lib/components/sidebar/sidebar-content.svelte +24 -0
  256. package/dist/lib/components/sidebar/sidebar-content.svelte.d.ts +4 -0
  257. package/dist/lib/components/sidebar/sidebar-content.svelte.d.ts.map +1 -0
  258. package/dist/lib/components/sidebar/sidebar-footer.svelte +21 -0
  259. package/dist/lib/components/sidebar/sidebar-footer.svelte.d.ts +4 -0
  260. package/dist/lib/components/sidebar/sidebar-footer.svelte.d.ts.map +1 -0
  261. package/dist/lib/components/sidebar/sidebar-group-action.svelte +36 -0
  262. package/dist/lib/components/sidebar/sidebar-group-action.svelte.d.ts +4 -0
  263. package/dist/lib/components/sidebar/sidebar-group-action.svelte.d.ts.map +1 -0
  264. package/dist/lib/components/sidebar/sidebar-group-content.svelte +21 -0
  265. package/dist/lib/components/sidebar/sidebar-group-content.svelte.d.ts +4 -0
  266. package/dist/lib/components/sidebar/sidebar-group-content.svelte.d.ts.map +1 -0
  267. package/dist/lib/components/sidebar/sidebar-group-label.svelte +34 -0
  268. package/dist/lib/components/sidebar/sidebar-group-label.svelte.d.ts +4 -0
  269. package/dist/lib/components/sidebar/sidebar-group-label.svelte.d.ts.map +1 -0
  270. package/dist/lib/components/sidebar/sidebar-group.svelte +21 -0
  271. package/dist/lib/components/sidebar/sidebar-group.svelte.d.ts +4 -0
  272. package/dist/lib/components/sidebar/sidebar-group.svelte.d.ts.map +1 -0
  273. package/dist/lib/components/sidebar/sidebar-header.svelte +21 -0
  274. package/dist/lib/components/sidebar/sidebar-header.svelte.d.ts +4 -0
  275. package/dist/lib/components/sidebar/sidebar-header.svelte.d.ts.map +1 -0
  276. package/dist/lib/components/sidebar/sidebar-input.svelte +23 -0
  277. package/dist/lib/components/sidebar/sidebar-input.svelte.d.ts +4 -0
  278. package/dist/lib/components/sidebar/sidebar-input.svelte.d.ts.map +1 -0
  279. package/dist/lib/components/sidebar/sidebar-inset.svelte +31 -0
  280. package/dist/lib/components/sidebar/sidebar-inset.svelte.d.ts +4 -0
  281. package/dist/lib/components/sidebar/sidebar-inset.svelte.d.ts.map +1 -0
  282. package/dist/lib/components/sidebar/sidebar-menu-action.svelte +56 -0
  283. package/dist/lib/components/sidebar/sidebar-menu-action.svelte.d.ts +4 -0
  284. package/dist/lib/components/sidebar/sidebar-menu-action.svelte.d.ts.map +1 -0
  285. package/dist/lib/components/sidebar/sidebar-menu-badge.svelte +29 -0
  286. package/dist/lib/components/sidebar/sidebar-menu-badge.svelte.d.ts +4 -0
  287. package/dist/lib/components/sidebar/sidebar-menu-badge.svelte.d.ts.map +1 -0
  288. package/dist/lib/components/sidebar/sidebar-menu-button.svelte +150 -0
  289. package/dist/lib/components/sidebar/sidebar-menu-button.svelte.d.ts +38 -0
  290. package/dist/lib/components/sidebar/sidebar-menu-button.svelte.d.ts.map +1 -0
  291. package/dist/lib/components/sidebar/sidebar-menu-item.svelte +21 -0
  292. package/dist/lib/components/sidebar/sidebar-menu-item.svelte.d.ts +4 -0
  293. package/dist/lib/components/sidebar/sidebar-menu-item.svelte.d.ts.map +1 -0
  294. package/dist/lib/components/sidebar/sidebar-menu-skeleton.svelte +36 -0
  295. package/dist/lib/components/sidebar/sidebar-menu-skeleton.svelte.d.ts +4 -0
  296. package/dist/lib/components/sidebar/sidebar-menu-skeleton.svelte.d.ts.map +1 -0
  297. package/dist/lib/components/sidebar/sidebar-menu-sub-button.svelte +53 -0
  298. package/dist/lib/components/sidebar/sidebar-menu-sub-button.svelte.d.ts +4 -0
  299. package/dist/lib/components/sidebar/sidebar-menu-sub-button.svelte.d.ts.map +1 -0
  300. package/dist/lib/components/sidebar/sidebar-menu-sub-item.svelte +16 -0
  301. package/dist/lib/components/sidebar/sidebar-menu-sub-item.svelte.d.ts +4 -0
  302. package/dist/lib/components/sidebar/sidebar-menu-sub-item.svelte.d.ts.map +1 -0
  303. package/dist/lib/components/sidebar/sidebar-menu-sub.svelte +25 -0
  304. package/dist/lib/components/sidebar/sidebar-menu-sub.svelte.d.ts +4 -0
  305. package/dist/lib/components/sidebar/sidebar-menu-sub.svelte.d.ts.map +1 -0
  306. package/dist/lib/components/sidebar/sidebar-menu.svelte +21 -0
  307. package/dist/lib/components/sidebar/sidebar-menu.svelte.d.ts +4 -0
  308. package/dist/lib/components/sidebar/sidebar-menu.svelte.d.ts.map +1 -0
  309. package/dist/lib/components/sidebar/sidebar-provider.svelte +57 -0
  310. package/dist/lib/components/sidebar/sidebar-provider.svelte.d.ts +4 -0
  311. package/dist/lib/components/sidebar/sidebar-provider.svelte.d.ts.map +1 -0
  312. package/dist/lib/components/sidebar/sidebar-rail.svelte +55 -0
  313. package/dist/lib/components/sidebar/sidebar-rail.svelte.d.ts +4 -0
  314. package/dist/lib/components/sidebar/sidebar-rail.svelte.d.ts.map +1 -0
  315. package/dist/lib/components/sidebar/sidebar-separator.svelte +18 -0
  316. package/dist/lib/components/sidebar/sidebar-separator.svelte.d.ts +4 -0
  317. package/dist/lib/components/sidebar/sidebar-separator.svelte.d.ts.map +1 -0
  318. package/dist/lib/components/sidebar/sidebar-trigger.svelte +36 -0
  319. package/dist/lib/components/sidebar/sidebar-trigger.svelte.d.ts +4 -0
  320. package/dist/lib/components/sidebar/sidebar-trigger.svelte.d.ts.map +1 -0
  321. package/dist/lib/components/sidebar/sidebar.svelte +162 -0
  322. package/dist/lib/components/sidebar/sidebar.svelte.d.ts +4 -0
  323. package/dist/lib/components/sidebar/sidebar.svelte.d.ts.map +1 -0
  324. package/dist/lib/components/utilities/arrow/arrow.svelte.d.ts +2 -1
  325. package/dist/lib/components/utilities/arrow/arrow.svelte.d.ts.map +1 -0
  326. package/dist/lib/components/utilities/arrow/index.d.ts +1 -0
  327. package/dist/lib/components/utilities/arrow/index.d.ts.map +1 -0
  328. package/dist/lib/components/utilities/arrow/types.d.ts +1 -0
  329. package/dist/lib/components/utilities/arrow/types.d.ts.map +1 -0
  330. package/dist/lib/components/utilities/floating-layer/components/floating-layer-anchor.svelte.d.ts +2 -2
  331. package/dist/lib/components/utilities/floating-layer/components/floating-layer-anchor.svelte.d.ts.map +1 -0
  332. package/dist/lib/components/utilities/floating-layer/components/floating-layer-arrow.svelte.d.ts +2 -1
  333. package/dist/lib/components/utilities/floating-layer/components/floating-layer-arrow.svelte.d.ts.map +1 -0
  334. package/dist/lib/components/utilities/floating-layer/components/floating-layer-content-static.svelte.d.ts +2 -11
  335. package/dist/lib/components/utilities/floating-layer/components/floating-layer-content-static.svelte.d.ts.map +1 -0
  336. package/dist/lib/components/utilities/floating-layer/components/floating-layer-content.svelte.d.ts +2 -2
  337. package/dist/lib/components/utilities/floating-layer/components/floating-layer-content.svelte.d.ts.map +1 -0
  338. package/dist/lib/components/utilities/floating-layer/components/floating-layer.svelte.d.ts +2 -5
  339. package/dist/lib/components/utilities/floating-layer/components/floating-layer.svelte.d.ts.map +1 -0
  340. package/dist/lib/components/utilities/floating-layer/components/index.d.ts +1 -0
  341. package/dist/lib/components/utilities/floating-layer/components/index.d.ts.map +1 -0
  342. package/dist/lib/components/utilities/floating-layer/index.d.ts +1 -0
  343. package/dist/lib/components/utilities/floating-layer/index.d.ts.map +1 -0
  344. package/dist/lib/components/utilities/floating-layer/types.d.ts +1 -0
  345. package/dist/lib/components/utilities/floating-layer/types.d.ts.map +1 -0
  346. package/dist/lib/components/utilities/floating-layer/use-floating-layer.svelte.d.ts +1 -0
  347. package/dist/lib/components/utilities/floating-layer/use-floating-layer.svelte.d.ts.map +1 -0
  348. package/dist/lib/index.d.ts +3 -1
  349. package/dist/lib/index.d.ts.map +1 -0
  350. package/dist/lib/index.js +2 -1
  351. package/dist/lib/utils/asyncDerived.svelte.d.ts +1 -0
  352. package/dist/lib/utils/asyncDerived.svelte.d.ts.map +1 -0
  353. package/dist/lib/utils/bits.d.ts +1 -0
  354. package/dist/lib/utils/bits.d.ts.map +1 -0
  355. package/dist/lib/utils/index.d.ts +5 -3
  356. package/dist/lib/utils/index.d.ts.map +1 -0
  357. package/dist/lib/utils/index.js +4 -3
  358. package/dist/lib/utils/reactive.svelte.d.ts +25 -0
  359. package/dist/lib/utils/reactive.svelte.d.ts.map +1 -0
  360. package/dist/lib/utils/reactive.svelte.js +34 -0
  361. package/dist/lib/utils/utils.d.ts +1 -0
  362. package/dist/lib/utils/utils.d.ts.map +1 -0
  363. package/dist/lib/vite/index.d.ts +2 -0
  364. package/dist/lib/vite/index.d.ts.map +1 -0
  365. package/dist/lib/vite/index.js +1 -0
  366. package/dist/lib/vite/vite-plugin-component-source-collector.d.ts +17 -0
  367. package/dist/lib/vite/vite-plugin-component-source-collector.d.ts.map +1 -0
  368. package/dist/lib/vite/vite-plugin-component-source-collector.js +84 -0
  369. package/dist/routes/+layout.svelte.d.ts +4 -11
  370. package/dist/routes/+layout.svelte.d.ts.map +1 -0
  371. package/package.json +48 -33
  372. package/src/app.css +0 -4
  373. package/src/lib/api/form.svelte.ts +65 -0
  374. package/src/lib/api/index.ts +2 -0
  375. package/src/lib/api/query.svelte.ts +59 -0
  376. package/src/lib/components/animated/animated.svelte +5 -3
  377. package/src/lib/components/carousel/carousel-content.svelte +44 -0
  378. package/src/lib/components/carousel/carousel-dots.svelte +28 -0
  379. package/src/lib/components/carousel/carousel-item.svelte +27 -0
  380. package/src/lib/components/carousel/carousel-next.svelte +38 -0
  381. package/src/lib/components/carousel/carousel-previous.svelte +38 -0
  382. package/src/lib/components/carousel/carousel.svelte +103 -0
  383. package/src/lib/components/carousel/context.ts +59 -0
  384. package/src/lib/components/carousel/index.ts +22 -0
  385. package/src/lib/components/dnd/context.svelte.ts +11 -8
  386. package/src/lib/components/dnd/dnd-draghandle.svelte +7 -1
  387. package/src/lib/components/dnd/dnd-sortable-item.svelte +9 -5
  388. package/src/lib/components/dnd/sortable.svelte.ts +4 -1
  389. package/src/lib/components/dnd/utils.svelte.ts +14 -3
  390. package/src/lib/components/form/form-button.svelte +20 -0
  391. package/src/lib/components/form/form-description.svelte +17 -0
  392. package/src/lib/components/form/form-element-field.svelte +24 -0
  393. package/src/lib/components/form/form-field-errors.svelte +30 -0
  394. package/src/lib/components/form/form-field.svelte +29 -0
  395. package/src/lib/components/form/form-fieldset.svelte +15 -0
  396. package/src/lib/components/form/form-label.svelte +24 -0
  397. package/src/lib/components/form/form-legend.svelte +16 -0
  398. package/src/lib/components/form/form.svelte +36 -0
  399. package/src/lib/components/form/index.ts +36 -0
  400. package/src/lib/components/gradient/Gradient.svelte +66 -0
  401. package/src/lib/components/gradient/index.ts +1 -0
  402. package/src/lib/components/safe/index.ts +3 -0
  403. package/src/lib/components/safe/safe.svelte +20 -0
  404. package/src/lib/components/search/components/search-list.svelte +2 -2
  405. package/src/lib/components/sidebar/README.md +10 -0
  406. package/src/lib/components/sidebar/constants.ts +6 -0
  407. package/src/lib/components/sidebar/context.svelte.ts +84 -0
  408. package/src/lib/components/sidebar/index.ts +75 -0
  409. package/src/lib/components/sidebar/sidebar-content.svelte +24 -0
  410. package/src/lib/components/sidebar/sidebar-footer.svelte +21 -0
  411. package/src/lib/components/sidebar/sidebar-group-action.svelte +36 -0
  412. package/src/lib/components/sidebar/sidebar-group-content.svelte +21 -0
  413. package/src/lib/components/sidebar/sidebar-group-label.svelte +34 -0
  414. package/src/lib/components/sidebar/sidebar-group.svelte +21 -0
  415. package/src/lib/components/sidebar/sidebar-header.svelte +21 -0
  416. package/src/lib/components/sidebar/sidebar-input.svelte +23 -0
  417. package/src/lib/components/sidebar/sidebar-inset.svelte +31 -0
  418. package/src/lib/components/sidebar/sidebar-menu-action.svelte +56 -0
  419. package/src/lib/components/sidebar/sidebar-menu-badge.svelte +29 -0
  420. package/src/lib/components/sidebar/sidebar-menu-button.svelte +150 -0
  421. package/src/lib/components/sidebar/sidebar-menu-item.svelte +21 -0
  422. package/src/lib/components/sidebar/sidebar-menu-skeleton.svelte +36 -0
  423. package/src/lib/components/sidebar/sidebar-menu-sub-button.svelte +53 -0
  424. package/src/lib/components/sidebar/sidebar-menu-sub-item.svelte +16 -0
  425. package/src/lib/components/sidebar/sidebar-menu-sub.svelte +25 -0
  426. package/src/lib/components/sidebar/sidebar-menu.svelte +21 -0
  427. package/src/lib/components/sidebar/sidebar-provider.svelte +57 -0
  428. package/src/lib/components/sidebar/sidebar-rail.svelte +55 -0
  429. package/src/lib/components/sidebar/sidebar-separator.svelte +18 -0
  430. package/src/lib/components/sidebar/sidebar-trigger.svelte +36 -0
  431. package/src/lib/components/sidebar/sidebar.svelte +162 -0
  432. package/src/lib/index.ts +2 -1
  433. package/src/lib/utils/index.ts +4 -3
  434. package/src/lib/utils/reactive.svelte.ts +38 -0
  435. package/src/lib/vite/index.ts +1 -0
  436. package/src/lib/vite/vite-plugin-component-source-collector.ts +115 -0
  437. package/dist/lib/components/Typeahead.svelte.d.ts +0 -47
  438. package/dist/lib/components/Typeahead.svelte.js +0 -150
  439. package/dist/lib/components/combo/combo.svelte +0 -186
  440. package/dist/lib/components/combo/combo.svelte.d.ts +0 -21
  441. package/dist/lib/components/combo/index.d.ts +0 -2
  442. package/dist/lib/components/combo/index.js +0 -2
  443. package/src/lib/components/Typeahead.svelte.ts +0 -200
  444. package/src/lib/components/combo/combo.svelte +0 -186
  445. package/src/lib/components/combo/index.ts +0 -3
@@ -0,0 +1,75 @@
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
+
26
+ export {
27
+ Content,
28
+ Footer,
29
+ Group,
30
+ GroupAction,
31
+ GroupContent,
32
+ GroupLabel,
33
+ Header,
34
+ Input,
35
+ Inset,
36
+ Menu,
37
+ MenuAction,
38
+ MenuBadge,
39
+ MenuButton,
40
+ MenuItem,
41
+ MenuSkeleton,
42
+ MenuSub,
43
+ MenuSubButton,
44
+ MenuSubItem,
45
+ Provider,
46
+ Rail,
47
+ Root,
48
+ Separator,
49
+ //
50
+ Root as Sidebar,
51
+ Content as SidebarContent,
52
+ Footer as SidebarFooter,
53
+ Group as SidebarGroup,
54
+ GroupAction as SidebarGroupAction,
55
+ GroupContent as SidebarGroupContent,
56
+ GroupLabel as SidebarGroupLabel,
57
+ Header as SidebarHeader,
58
+ Input as SidebarInput,
59
+ Inset as SidebarInset,
60
+ Menu as SidebarMenu,
61
+ MenuAction as SidebarMenuAction,
62
+ MenuBadge as SidebarMenuBadge,
63
+ MenuButton as SidebarMenuButton,
64
+ MenuItem as SidebarMenuItem,
65
+ MenuSkeleton as SidebarMenuSkeleton,
66
+ MenuSub as SidebarMenuSub,
67
+ MenuSubButton as SidebarMenuSubButton,
68
+ MenuSubItem as SidebarMenuSubItem,
69
+ Provider as SidebarProvider,
70
+ Rail as SidebarRail,
71
+ Separator as SidebarSeparator,
72
+ Trigger as SidebarTrigger,
73
+ Trigger,
74
+ useSidebar
75
+ };
@@ -0,0 +1,24 @@
1
+ <script lang="ts">
2
+ import type { HTMLAttributes } from "svelte/elements";
3
+ import type { WithElementRef } from "bits-ui";
4
+ import { cn } from "$shadcn/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>
@@ -0,0 +1,21 @@
1
+ <script lang="ts">
2
+ import type { HTMLAttributes } from "svelte/elements";
3
+ import type { WithElementRef } from "bits-ui";
4
+ import { cn } from "$shadcn/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>
@@ -0,0 +1,36 @@
1
+ <script lang="ts">
2
+ import { cn } from "$shadcn/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}
@@ -0,0 +1,21 @@
1
+ <script lang="ts">
2
+ import { cn } from "$shadcn/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>
@@ -0,0 +1,34 @@
1
+ <script lang="ts">
2
+ import { cn } from "$shadcn/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}
@@ -0,0 +1,21 @@
1
+ <script lang="ts">
2
+ import type { HTMLAttributes } from "svelte/elements";
3
+ import type { WithElementRef } from "bits-ui";
4
+ import { cn } from "$shadcn/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>
@@ -0,0 +1,21 @@
1
+ <script lang="ts">
2
+ import type { HTMLAttributes } from "svelte/elements";
3
+ import type { WithElementRef } from "bits-ui";
4
+ import { cn } from "$shadcn/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>
@@ -0,0 +1,23 @@
1
+ <script lang="ts">
2
+ import type { ComponentProps } from "svelte";
3
+ import { Input } from "$shadcn/input/index.js";
4
+ import { cn } from "$shadcn/utils.js";
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
+ />
@@ -0,0 +1,31 @@
1
+ <script lang="ts">
2
+ import { cn } from '$shadcn/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
+
13
+ // peer-data-[variant=inset]:min-h-[calc(100svh-theme(spacing.4))]
14
+ </script>
15
+
16
+ <main
17
+ bind:this={ref}
18
+ class={cn(
19
+ 'bg-background relative flex flex-1 flex-col',
20
+ `
21
+ md:peer-data-[variant=inset]:m-2 md:peer-data-[variant=inset]:ml-0
22
+ md:peer-data-[variant=inset]:rounded-xl
23
+ md:peer-data-[variant=inset]:shadow
24
+ md:peer-data-[state=collapsed]:peer-data-[variant=inset]:ml-2
25
+ `,
26
+ className
27
+ )}
28
+ {...restProps}
29
+ >
30
+ {@render children?.()}
31
+ </main>
@@ -0,0 +1,56 @@
1
+ <script lang="ts">
2
+ import { cn } from '$shadcn/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
+ `
22
+ text-sidebar-foreground ring-sidebar-ring absolute top-1.5 right-1 flex aspect-square w-5 items-center
23
+ justify-center rounded-md p-0 transition-transform outline-none
24
+ hover:bg-sidebar-accent hover:text-sidebar-accent-foreground
25
+ peer-hover/menu-button:text-sidebar-accent-foreground
26
+ focus-visible:ring-2
27
+ [&>svg]:size-4 [&>svg]:shrink-0
28
+ `,
29
+ // Increases the hit area of the button on mobile.
30
+ 'after:absolute after:-inset-2 after:md:hidden',
31
+ 'peer-data-[size=sm]/menu-button:top-1',
32
+ 'peer-data-[size=default]/menu-button:top-1.5',
33
+ 'peer-data-[size=lg]/menu-button:top-2.5',
34
+ 'group-data-[collapsible=icon]:hidden',
35
+ showOnHover &&
36
+ `
37
+ peer-data-[active=true]/menu-button:text-sidebar-accent-foreground
38
+ group-focus-within/menu-item:opacity-100
39
+ group-hover/menu-item:opacity-100
40
+ data-[state=open]:opacity-100
41
+ md:opacity-0
42
+ `,
43
+ className
44
+ ),
45
+ 'data-sidebar': 'menu-action',
46
+ ...restProps
47
+ });
48
+ </script>
49
+
50
+ {#if child}
51
+ {@render child({ props: mergedProps })}
52
+ {:else}
53
+ <button bind:this={ref} {...mergedProps}>
54
+ {@render children?.()}
55
+ </button>
56
+ {/if}
@@ -0,0 +1,29 @@
1
+ <script lang="ts">
2
+ import { cn } from "$shadcn/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>
@@ -0,0 +1,150 @@
1
+ <script lang="ts" module>
2
+ import { tv, type VariantProps } from 'tailwind-variants';
3
+
4
+ export const sidebarMenuButtonVariants = tv({
5
+ base: cn(`
6
+ peer/menu-button ring-sidebar-ring flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left text-sm
7
+ transition-[width,height,padding] outline-none
8
+ hover:bg-sidebar-accent hover:text-sidebar-accent-foreground
9
+ active:bg-sidebar-accent active:text-sidebar-accent-foreground
10
+ data-[active=true]:bg-sidebar-accent data-[active=true]:text-sidebar-accent-foreground
11
+ data-[active=true]:font-medium
12
+ data-[state=open]:hover:bg-sidebar-accent data-[state=open]:hover:text-sidebar-accent-foreground
13
+ group-has-[[data-sidebar=menu-action]]/menu-item:pr-8
14
+ group-data-[collapsible=icon]:!size-8 group-data-[collapsible=icon]:!p-2
15
+ focus-visible:ring-2
16
+ disabled:pointer-events-none disabled:opacity-50
17
+ aria-disabled:pointer-events-none aria-disabled:opacity-50
18
+ [&>span:last-child]:truncate
19
+ [&>svg]:size-4 [&>svg]:shrink-0
20
+ `),
21
+ variants: {
22
+ variant: {
23
+ default: 'hover:bg-sidebar-accent hover:text-sidebar-accent-foreground',
24
+ outline: `
25
+ bg-background shadow-[0_0_0_1px_hsl(var(--sidebar-border))]
26
+ hover:bg-sidebar-accent hover:text-sidebar-accent-foreground
27
+ hover:shadow-[0_0_0_1px_hsl(var(--sidebar-accent))]
28
+ `
29
+ },
30
+ size: {
31
+ default: 'h-8 text-sm',
32
+ sm: 'h-7 text-xs',
33
+ lg: `
34
+ h-12 text-sm
35
+ group-data-[collapsible=icon]:!p-0
36
+ `
37
+ }
38
+ },
39
+ defaultVariants: {
40
+ variant: 'default',
41
+ size: 'default'
42
+ }
43
+ });
44
+
45
+ export type SidebarMenuButtonVariant = VariantProps<typeof sidebarMenuButtonVariants>['variant'];
46
+ export type SidebarMenuButtonSize = VariantProps<typeof sidebarMenuButtonVariants>['size'];
47
+ </script>
48
+
49
+ <script lang="ts">
50
+ import { mergeProps, type WithElementRef, type WithoutChildrenOrChild } from 'bits-ui';
51
+ import * as Tooltip from '$shadcn/tooltip/index.js';
52
+ import * as AlertDialog from '$shadcn/alert-dialog/index.js';
53
+
54
+ import { cn } from '$shadcn/utils.js';
55
+ import type { ComponentProps, Snippet } from 'svelte';
56
+ import type { HTMLAttributes } from 'svelte/elements';
57
+ import { useSidebar } from './context.svelte.js';
58
+
59
+ let {
60
+ ref = $bindable(null),
61
+ class: className,
62
+ children,
63
+ child,
64
+ variant = 'default',
65
+ size = 'default',
66
+ side = 'left',
67
+ isActive = false,
68
+ tooltipContent,
69
+ tooltipContentProps,
70
+ alertContent,
71
+ alertContentProps,
72
+ alertOpen = $bindable(false),
73
+ ...restProps
74
+ }: WithElementRef<HTMLAttributes<HTMLButtonElement>, HTMLButtonElement> & {
75
+ isActive?: boolean;
76
+ variant?: SidebarMenuButtonVariant;
77
+ size?: SidebarMenuButtonSize;
78
+ side?: 'left' | 'right';
79
+ tooltipContent?: Snippet;
80
+ tooltipContentProps?: WithoutChildrenOrChild<ComponentProps<typeof Tooltip.Content>>;
81
+ alertContent?: Snippet;
82
+ alertContentProps?: WithoutChildrenOrChild<ComponentProps<typeof AlertDialog.Content>>;
83
+ alertOpen?: boolean;
84
+ child?: Snippet<[{ props: Record<string, unknown> }]>;
85
+ } = $props();
86
+
87
+ const sidebar = useSidebar();
88
+
89
+ const buttonProps = $derived({
90
+ class: cn(sidebarMenuButtonVariants({ variant, size }), className),
91
+ 'data-sidebar': 'menu-button',
92
+ 'data-size': size,
93
+ 'data-active': isActive,
94
+ ...restProps
95
+ });
96
+ </script>
97
+
98
+ {#snippet Button({ props }: { props?: Record<string, unknown> })}
99
+ {@const mergedProps = mergeProps(buttonProps, props)}
100
+ {#if child}
101
+ {@render child({ props: mergedProps })}
102
+ {:else}
103
+ <button bind:this={ref} {...mergedProps}>
104
+ {@render children?.()}
105
+ </button>
106
+ {/if}
107
+ {/snippet}
108
+
109
+ {#if !tooltipContent}
110
+ {@render Button({})}
111
+ {:else if tooltipContent && !alertContent}
112
+ <Tooltip.Root>
113
+ <Tooltip.Trigger>
114
+ {#snippet child({ props })}
115
+ {@render Button({ props })}
116
+ {/snippet}
117
+ </Tooltip.Trigger>
118
+ <Tooltip.Content
119
+ side="right"
120
+ align="center"
121
+ hidden={sidebar.state[side] !== 'collapsed' || sidebar.isMobile}
122
+ children={tooltipContent}
123
+ {...tooltipContentProps}
124
+ />
125
+ </Tooltip.Root>
126
+ <!-- Added by me. The option to also have an alert -->
127
+ {:else if alertContent}
128
+ <AlertDialog.Root bind:open={alertOpen}>
129
+ <Tooltip.Provider>
130
+ <Tooltip.Root delayDuration={0}>
131
+ <Tooltip.Trigger>
132
+ <AlertDialog.Trigger>
133
+ {#snippet child({ props })}
134
+ {@render Button({ props })}
135
+ {/snippet}
136
+ </AlertDialog.Trigger>
137
+ </Tooltip.Trigger>
138
+ <Tooltip.Content
139
+ side="right"
140
+ align="center"
141
+ hidden={sidebar.state[side] !== 'collapsed' || sidebar.isMobile}
142
+ children={tooltipContent}
143
+ {...tooltipContentProps}
144
+ />
145
+ </Tooltip.Root>
146
+ </Tooltip.Provider>
147
+
148
+ <AlertDialog.Content children={alertContent} {...alertContentProps} />
149
+ </AlertDialog.Root>
150
+ {/if}
@@ -0,0 +1,21 @@
1
+ <script lang="ts">
2
+ import { cn } from "$shadcn/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<HTMLLIElement>, HTMLLIElement> = $props();
12
+ </script>
13
+
14
+ <li
15
+ bind:this={ref}
16
+ data-sidebar="menu-item"
17
+ class={cn("group/menu-item relative", className)}
18
+ {...restProps}
19
+ >
20
+ {@render children?.()}
21
+ </li>
@@ -0,0 +1,36 @@
1
+ <script lang="ts">
2
+ import { Skeleton } from "$shadcn/skeleton/index.js";
3
+ import { cn } from "$shadcn/utils.js";
4
+ import type { WithElementRef } from "bits-ui";
5
+ import type { HTMLAttributes } from "svelte/elements";
6
+
7
+ let {
8
+ ref = $bindable(null),
9
+ class: className,
10
+ showIcon = false,
11
+ children,
12
+ ...restProps
13
+ }: WithElementRef<HTMLAttributes<HTMLElement>> & {
14
+ showIcon?: boolean;
15
+ } = $props();
16
+
17
+ // Random width between 50% and 90%
18
+ const width = `${Math.floor(Math.random() * 40) + 50}%`;
19
+ </script>
20
+
21
+ <div
22
+ bind:this={ref}
23
+ data-sidebar="menu-skeleton"
24
+ class={cn("flex h-8 items-center gap-2 rounded-md px-2", className)}
25
+ {...restProps}
26
+ >
27
+ {#if showIcon}
28
+ <Skeleton class="size-4 rounded-md" data-sidebar="menu-skeleton-icon" />
29
+ {/if}
30
+ <Skeleton
31
+ class="h-4 max-w-[var(--skeleton-width)] flex-1"
32
+ data-sidebar="menu-skeleton-text"
33
+ style="--skeleton-width: {width};"
34
+ />
35
+ {@render children?.()}
36
+ </div>
@@ -0,0 +1,53 @@
1
+ <script lang="ts">
2
+ import { cn } from '$shadcn/utils.js';
3
+ import type { WithElementRef } from 'bits-ui';
4
+ import type { Snippet } from 'svelte';
5
+ import type { HTMLAnchorAttributes } from 'svelte/elements';
6
+
7
+ let {
8
+ ref = $bindable(null),
9
+ children,
10
+ child,
11
+ class: className,
12
+ size = 'md',
13
+ isActive,
14
+ ...restProps
15
+ }: WithElementRef<HTMLAnchorAttributes> & {
16
+ child?: Snippet<[{ props: Record<string, unknown> }]>;
17
+ size?: 'sm' | 'md';
18
+ isActive?: boolean;
19
+ } = $props();
20
+
21
+ const mergedProps = $derived({
22
+ class: cn(
23
+ `
24
+ text-sidebar-foreground ring-sidebar-ring flex h-7 min-w-0 -translate-x-px items-center gap-2 overflow-hidden
25
+ rounded-md px-2 outline-none
26
+ hover:bg-sidebar-accent hover:text-sidebar-accent-foreground
27
+ active:bg-sidebar-accent active:text-sidebar-accent-foreground
28
+ [&>svg]:text-sidebar-accent-foreground [&>svg]:size-4 [&>svg]:shrink-0
29
+ focus-visible:ring-2
30
+ disabled:pointer-events-none disabled:opacity-50
31
+ aria-disabled:pointer-events-none aria-disabled:opacity-50
32
+ [&>span:last-child]:truncate
33
+ `,
34
+ 'data-[active=true]:bg-sidebar-accent data-[active=true]:text-sidebar-accent-foreground',
35
+ size === 'sm' && 'text-xs',
36
+ size === 'md' && 'text-sm',
37
+ 'group-data-[collapsible=icon]:hidden',
38
+ className
39
+ ),
40
+ 'data-sidebar': 'menu-sub-button',
41
+ 'data-size': size,
42
+ 'data-active': isActive,
43
+ ...restProps
44
+ });
45
+ </script>
46
+
47
+ {#if child}
48
+ {@render child({ props: mergedProps })}
49
+ {:else}
50
+ <a bind:this={ref} {...mergedProps}>
51
+ {@render children?.()}
52
+ </a>
53
+ {/if}
@@ -0,0 +1,16 @@
1
+ <script lang="ts">
2
+ import { cn } from '$utils';
3
+ import type { WithElementRef } from 'bits-ui';
4
+ import type { HTMLAttributes } from 'svelte/elements';
5
+
6
+ let {
7
+ ref = $bindable(null),
8
+ children,
9
+ class: className,
10
+ ...restProps
11
+ }: WithElementRef<HTMLAttributes<HTMLLIElement>> = $props();
12
+ </script>
13
+
14
+ <li bind:this={ref} data-sidebar="menu-sub-item" {...restProps} class={cn('relative', className)}>
15
+ {@render children?.()}
16
+ </li>