@autumnsgrove/groveengine 0.3.2 → 0.4.0

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 (270) hide show
  1. package/dist/auth/index.d.ts +2 -0
  2. package/dist/auth/index.js +5 -0
  3. package/dist/components/admin/GutterManager.svelte +4 -4
  4. package/dist/components/admin/MarkdownEditor.svelte +381 -1311
  5. package/dist/components/admin/MarkdownEditor.svelte.d.ts +2 -8
  6. package/dist/components/admin/composables/index.d.ts +7 -0
  7. package/dist/components/admin/composables/index.js +12 -0
  8. package/dist/components/admin/composables/useAmbientSounds.svelte.d.ts +53 -0
  9. package/dist/components/admin/composables/useAmbientSounds.svelte.js +192 -0
  10. package/dist/components/admin/composables/useCommandPalette.svelte.d.ts +17 -0
  11. package/dist/components/admin/composables/useCommandPalette.svelte.js +118 -0
  12. package/dist/components/admin/composables/useDraftManager.svelte.d.ts +17 -0
  13. package/dist/components/admin/composables/useDraftManager.svelte.js +154 -0
  14. package/dist/components/admin/composables/useEditorTheme.svelte.d.ts +195 -0
  15. package/dist/components/admin/composables/useEditorTheme.svelte.js +182 -0
  16. package/dist/components/admin/composables/useSlashCommands.svelte.d.ts +32 -0
  17. package/dist/components/admin/composables/useSlashCommands.svelte.js +166 -0
  18. package/dist/components/admin/composables/useSnippets.svelte.d.ts +5 -0
  19. package/dist/components/admin/composables/useSnippets.svelte.js +122 -0
  20. package/dist/components/admin/composables/useWritingSession.svelte.d.ts +13 -0
  21. package/dist/components/admin/composables/useWritingSession.svelte.js +100 -0
  22. package/dist/components/custom/ContentWithGutter.svelte +1 -1
  23. package/dist/components/custom/GutterItem.svelte +2 -2
  24. package/dist/config/ai-models.d.ts +25 -0
  25. package/dist/config/ai-models.js +50 -0
  26. package/dist/config/index.d.ts +1 -0
  27. package/dist/config/index.js +4 -0
  28. package/dist/index.d.ts +5 -5
  29. package/dist/index.js +6 -6
  30. package/dist/server/index.d.ts +1 -0
  31. package/dist/server/index.js +4 -0
  32. package/dist/ui/components/charts/ActivityOverview.svelte +293 -0
  33. package/dist/ui/components/charts/ActivityOverview.svelte.d.ts +12 -0
  34. package/dist/ui/components/charts/LOCBar.svelte +129 -0
  35. package/dist/ui/components/charts/LOCBar.svelte.d.ts +21 -0
  36. package/dist/ui/components/charts/RepoBreakdown.svelte +136 -0
  37. package/dist/ui/components/charts/RepoBreakdown.svelte.d.ts +16 -0
  38. package/dist/ui/components/charts/Sparkline.svelte +139 -0
  39. package/dist/ui/components/charts/Sparkline.svelte.d.ts +6 -0
  40. package/dist/ui/components/charts/index.d.ts +5 -0
  41. package/dist/ui/components/charts/index.js +11 -0
  42. package/dist/ui/components/content/PlanCard.svelte +91 -0
  43. package/dist/ui/components/content/PlanCard.svelte.d.ts +13 -0
  44. package/dist/ui/components/content/ProductCard.svelte +125 -0
  45. package/dist/ui/components/content/ProductCard.svelte.d.ts +14 -0
  46. package/dist/ui/components/content/SearchCard.svelte +60 -0
  47. package/dist/ui/components/content/SearchCard.svelte.d.ts +10 -0
  48. package/dist/ui/components/content/index.d.ts +4 -0
  49. package/dist/ui/components/content/index.js +10 -0
  50. package/dist/ui/components/forms/SearchInput.svelte +89 -0
  51. package/dist/ui/components/forms/SearchInput.svelte.d.ts +11 -0
  52. package/dist/ui/components/forms/index.d.ts +2 -0
  53. package/dist/ui/components/forms/index.js +8 -0
  54. package/dist/ui/components/gallery/index.d.ts +5 -0
  55. package/dist/ui/components/gallery/index.js +13 -0
  56. package/dist/ui/components/icons/IconLegend.svelte +83 -0
  57. package/dist/ui/components/icons/IconLegend.svelte.d.ts +11 -0
  58. package/dist/ui/components/icons/Icons.svelte +115 -0
  59. package/dist/ui/components/icons/Icons.svelte.d.ts +8 -0
  60. package/dist/ui/components/icons/index.d.ts +3 -0
  61. package/dist/ui/components/icons/index.js +9 -0
  62. package/dist/ui/components/indicators/CreditBalance.svelte +67 -0
  63. package/dist/ui/components/indicators/CreditBalance.svelte.d.ts +9 -0
  64. package/dist/ui/components/indicators/ScoreBar.svelte +63 -0
  65. package/dist/ui/components/indicators/ScoreBar.svelte.d.ts +9 -0
  66. package/dist/ui/components/indicators/StatusBadge.svelte +46 -0
  67. package/dist/ui/components/indicators/StatusBadge.svelte.d.ts +7 -0
  68. package/dist/ui/components/indicators/index.d.ts +4 -0
  69. package/dist/ui/components/indicators/index.js +10 -0
  70. package/dist/{components/ui → ui/components/primitives}/accordion/accordion-content.svelte +1 -1
  71. package/dist/{components/ui → ui/components/primitives}/accordion/accordion-item.svelte +1 -1
  72. package/dist/{components/ui → ui/components/primitives}/accordion/accordion-trigger.svelte +1 -1
  73. package/dist/ui/components/primitives/badge/badge.svelte +50 -0
  74. package/dist/ui/components/primitives/badge/badge.svelte.d.ts +60 -0
  75. package/dist/ui/components/primitives/badge/index.d.ts +2 -0
  76. package/dist/ui/components/primitives/badge/index.js +2 -0
  77. package/dist/ui/components/primitives/button/button.svelte +82 -0
  78. package/dist/ui/components/primitives/button/button.svelte.d.ts +132 -0
  79. package/dist/ui/components/primitives/button/index.d.ts +2 -0
  80. package/dist/ui/components/primitives/button/index.js +4 -0
  81. package/dist/ui/components/primitives/card/card-content.svelte +16 -0
  82. package/dist/ui/components/primitives/card/card-content.svelte.d.ts +5 -0
  83. package/dist/ui/components/primitives/card/card-description.svelte +16 -0
  84. package/dist/ui/components/primitives/card/card-description.svelte.d.ts +5 -0
  85. package/dist/ui/components/primitives/card/card-footer.svelte +16 -0
  86. package/dist/ui/components/primitives/card/card-footer.svelte.d.ts +5 -0
  87. package/dist/ui/components/primitives/card/card-header.svelte +16 -0
  88. package/dist/ui/components/primitives/card/card-header.svelte.d.ts +5 -0
  89. package/dist/ui/components/primitives/card/card-title.svelte +25 -0
  90. package/dist/ui/components/primitives/card/card-title.svelte.d.ts +8 -0
  91. package/dist/ui/components/primitives/card/card.svelte +20 -0
  92. package/dist/ui/components/primitives/card/card.svelte.d.ts +5 -0
  93. package/dist/ui/components/primitives/card/index.d.ts +7 -0
  94. package/dist/ui/components/primitives/card/index.js +9 -0
  95. package/dist/{components/ui → ui/components/primitives}/dialog/dialog-content.svelte +1 -1
  96. package/dist/{components/ui → ui/components/primitives}/dialog/dialog-description.svelte +1 -1
  97. package/dist/{components/ui → ui/components/primitives}/dialog/dialog-footer.svelte +1 -1
  98. package/dist/{components/ui → ui/components/primitives}/dialog/dialog-header.svelte +1 -1
  99. package/dist/{components/ui → ui/components/primitives}/dialog/dialog-overlay.svelte +1 -1
  100. package/dist/{components/ui → ui/components/primitives}/dialog/dialog-title.svelte +1 -1
  101. package/dist/ui/components/primitives/input/index.d.ts +2 -0
  102. package/dist/ui/components/primitives/input/index.js +4 -0
  103. package/dist/ui/components/primitives/input/input.svelte +46 -0
  104. package/dist/ui/components/primitives/input/input.svelte.d.ts +13 -0
  105. package/dist/{components/ui → ui/components/primitives}/select/select-content.svelte +1 -1
  106. package/dist/{components/ui → ui/components/primitives}/select/select-group-heading.svelte +1 -1
  107. package/dist/{components/ui → ui/components/primitives}/select/select-item.svelte +1 -1
  108. package/dist/{components/ui → ui/components/primitives}/select/select-scroll-down-button.svelte +1 -1
  109. package/dist/{components/ui → ui/components/primitives}/select/select-scroll-up-button.svelte +1 -1
  110. package/dist/{components/ui → ui/components/primitives}/select/select-separator.svelte +1 -1
  111. package/dist/{components/ui → ui/components/primitives}/select/select-trigger.svelte +1 -1
  112. package/dist/ui/components/primitives/separator/index.d.ts +2 -0
  113. package/dist/ui/components/primitives/separator/index.js +4 -0
  114. package/dist/ui/components/primitives/separator/separator.svelte +22 -0
  115. package/dist/ui/components/primitives/separator/separator.svelte.d.ts +4 -0
  116. package/dist/{components/ui → ui/components/primitives}/sheet/sheet-content.svelte +1 -1
  117. package/dist/{components/ui → ui/components/primitives}/sheet/sheet-description.svelte +1 -1
  118. package/dist/{components/ui → ui/components/primitives}/sheet/sheet-footer.svelte +1 -1
  119. package/dist/{components/ui → ui/components/primitives}/sheet/sheet-header.svelte +1 -1
  120. package/dist/{components/ui → ui/components/primitives}/sheet/sheet-overlay.svelte +1 -1
  121. package/dist/{components/ui → ui/components/primitives}/sheet/sheet-title.svelte +1 -1
  122. package/dist/ui/components/primitives/skeleton/index.d.ts +2 -0
  123. package/dist/ui/components/primitives/skeleton/index.js +4 -0
  124. package/dist/ui/components/primitives/skeleton/skeleton.svelte +17 -0
  125. package/dist/ui/components/primitives/skeleton/skeleton.svelte.d.ts +5 -0
  126. package/dist/{components/ui → ui/components/primitives}/table/table-body.svelte +1 -1
  127. package/dist/{components/ui → ui/components/primitives}/table/table-caption.svelte +1 -1
  128. package/dist/{components/ui → ui/components/primitives}/table/table-cell.svelte +1 -1
  129. package/dist/{components/ui → ui/components/primitives}/table/table-footer.svelte +1 -1
  130. package/dist/{components/ui → ui/components/primitives}/table/table-head.svelte +1 -1
  131. package/dist/{components/ui → ui/components/primitives}/table/table-header.svelte +1 -1
  132. package/dist/{components/ui → ui/components/primitives}/table/table-row.svelte +1 -1
  133. package/dist/{components/ui → ui/components/primitives}/table/table.svelte +1 -1
  134. package/dist/{components/ui → ui/components/primitives}/tabs/tabs-content.svelte +1 -1
  135. package/dist/{components/ui → ui/components/primitives}/tabs/tabs-list.svelte +1 -1
  136. package/dist/{components/ui → ui/components/primitives}/tabs/tabs-trigger.svelte +1 -1
  137. package/dist/ui/components/primitives/textarea/index.d.ts +2 -0
  138. package/dist/ui/components/primitives/textarea/index.js +4 -0
  139. package/dist/ui/components/primitives/textarea/textarea.svelte +24 -0
  140. package/dist/ui/components/primitives/textarea/textarea.svelte.d.ts +6 -0
  141. package/dist/ui/components/states/EmptyState.svelte +28 -0
  142. package/dist/ui/components/states/EmptyState.svelte.d.ts +10 -0
  143. package/dist/ui/components/states/Loading.svelte +62 -0
  144. package/dist/ui/components/states/Loading.svelte.d.ts +7 -0
  145. package/dist/ui/components/states/LoadingSkeleton.svelte +46 -0
  146. package/dist/ui/components/states/LoadingSkeleton.svelte.d.ts +8 -0
  147. package/dist/ui/components/states/ThemeToggle.svelte +138 -0
  148. package/dist/ui/components/states/ThemeToggle.svelte.d.ts +6 -0
  149. package/dist/ui/components/states/index.d.ts +5 -0
  150. package/dist/ui/components/states/index.js +11 -0
  151. package/dist/{components → ui/components}/ui/Accordion.svelte +1 -1
  152. package/dist/ui/components/ui/Badge.svelte +52 -0
  153. package/dist/ui/components/ui/Badge.svelte.d.ts +28 -0
  154. package/dist/ui/components/ui/Button.svelte +77 -0
  155. package/dist/ui/components/ui/Button.svelte.d.ts +34 -0
  156. package/dist/ui/components/ui/Card.svelte +102 -0
  157. package/dist/ui/components/ui/Card.svelte.d.ts +46 -0
  158. package/dist/ui/components/ui/CollapsibleSection.svelte +65 -0
  159. package/dist/ui/components/ui/CollapsibleSection.svelte.d.ts +10 -0
  160. package/dist/{components → ui/components}/ui/Dialog.svelte +1 -1
  161. package/dist/ui/components/ui/Input.svelte +81 -0
  162. package/dist/ui/components/ui/Input.svelte.d.ts +35 -0
  163. package/dist/{components → ui/components}/ui/Select.svelte +1 -1
  164. package/dist/{components → ui/components}/ui/Sheet.svelte +1 -1
  165. package/dist/ui/components/ui/Skeleton.svelte +31 -0
  166. package/dist/ui/components/ui/Skeleton.svelte.d.ts +26 -0
  167. package/dist/ui/components/ui/Spinner.svelte +45 -0
  168. package/dist/ui/components/ui/Spinner.svelte.d.ts +15 -0
  169. package/dist/{components → ui/components}/ui/Table.svelte +2 -2
  170. package/dist/{components → ui/components}/ui/Table.svelte.d.ts +1 -1
  171. package/dist/{components → ui/components}/ui/Tabs.svelte +2 -2
  172. package/dist/ui/components/ui/Textarea.svelte +81 -0
  173. package/dist/ui/components/ui/Textarea.svelte.d.ts +35 -0
  174. package/dist/{components → ui/components}/ui/Toast.svelte +1 -1
  175. package/dist/ui/components/ui/index.d.ts +18 -0
  176. package/dist/ui/components/ui/index.js +28 -0
  177. package/dist/{components → ui/components}/ui/toast.d.ts +1 -1
  178. package/dist/{components → ui/components}/ui/toast.js +2 -2
  179. package/dist/ui/index.d.ts +10 -0
  180. package/dist/ui/index.js +22 -0
  181. package/dist/ui/stores/theme.d.ts +12 -0
  182. package/dist/ui/stores/theme.js +52 -0
  183. package/dist/ui/styles/content.css +514 -0
  184. package/dist/ui/styles/grove.css +715 -0
  185. package/dist/ui/styles/tokens.css +429 -0
  186. package/dist/ui/tailwind.preset.d.ts +340 -0
  187. package/dist/ui/tailwind.preset.js +441 -0
  188. package/dist/ui/tokens/animation.d.ts +417 -0
  189. package/dist/ui/tokens/animation.js +139 -0
  190. package/dist/ui/tokens/colors.d.ts +183 -0
  191. package/dist/ui/tokens/colors.js +97 -0
  192. package/dist/ui/tokens/effects.d.ts +111 -0
  193. package/dist/ui/tokens/effects.js +61 -0
  194. package/dist/ui/tokens/index.d.ts +6 -0
  195. package/dist/ui/tokens/index.js +19 -0
  196. package/dist/ui/tokens/spacing.d.ts +89 -0
  197. package/dist/ui/tokens/spacing.js +49 -0
  198. package/dist/ui/tokens/typography.d.ts +85 -0
  199. package/dist/ui/tokens/typography.js +68 -0
  200. package/dist/ui/utils/cn.d.ts +13 -0
  201. package/dist/ui/utils/cn.js +24 -0
  202. package/dist/ui/utils/index.d.ts +2 -0
  203. package/dist/ui/utils/index.js +8 -0
  204. package/dist/utils/index.d.ts +11 -0
  205. package/dist/utils/index.js +14 -0
  206. package/dist/utils/markdown.d.ts +11 -0
  207. package/dist/utils/markdown.js +25 -0
  208. package/dist/utils/sanitize.js +2 -3
  209. package/package.json +73 -10
  210. package/dist/components/ui/index.d.ts +0 -14
  211. package/dist/components/ui/index.js +0 -18
  212. /package/dist/{components → ui/components}/gallery/ImageGallery.svelte +0 -0
  213. /package/dist/{components → ui/components}/gallery/ImageGallery.svelte.d.ts +0 -0
  214. /package/dist/{components → ui/components}/gallery/Lightbox.svelte +0 -0
  215. /package/dist/{components → ui/components}/gallery/Lightbox.svelte.d.ts +0 -0
  216. /package/dist/{components → ui/components}/gallery/LightboxCaption.svelte +0 -0
  217. /package/dist/{components → ui/components}/gallery/LightboxCaption.svelte.d.ts +0 -0
  218. /package/dist/{components → ui/components}/gallery/ZoomableImage.svelte +0 -0
  219. /package/dist/{components → ui/components}/gallery/ZoomableImage.svelte.d.ts +0 -0
  220. /package/dist/{components/ui → ui/components/primitives}/accordion/accordion-content.svelte.d.ts +0 -0
  221. /package/dist/{components/ui → ui/components/primitives}/accordion/accordion-item.svelte.d.ts +0 -0
  222. /package/dist/{components/ui → ui/components/primitives}/accordion/accordion-trigger.svelte.d.ts +0 -0
  223. /package/dist/{components/ui → ui/components/primitives}/accordion/index.d.ts +0 -0
  224. /package/dist/{components/ui → ui/components/primitives}/accordion/index.js +0 -0
  225. /package/dist/{components/ui → ui/components/primitives}/dialog/dialog-content.svelte.d.ts +0 -0
  226. /package/dist/{components/ui → ui/components/primitives}/dialog/dialog-description.svelte.d.ts +0 -0
  227. /package/dist/{components/ui → ui/components/primitives}/dialog/dialog-footer.svelte.d.ts +0 -0
  228. /package/dist/{components/ui → ui/components/primitives}/dialog/dialog-header.svelte.d.ts +0 -0
  229. /package/dist/{components/ui → ui/components/primitives}/dialog/dialog-overlay.svelte.d.ts +0 -0
  230. /package/dist/{components/ui → ui/components/primitives}/dialog/dialog-title.svelte.d.ts +0 -0
  231. /package/dist/{components/ui → ui/components/primitives}/dialog/index.d.ts +0 -0
  232. /package/dist/{components/ui → ui/components/primitives}/dialog/index.js +0 -0
  233. /package/dist/{components/ui → ui/components/primitives}/select/index.d.ts +0 -0
  234. /package/dist/{components/ui → ui/components/primitives}/select/index.js +0 -0
  235. /package/dist/{components/ui → ui/components/primitives}/select/select-content.svelte.d.ts +0 -0
  236. /package/dist/{components/ui → ui/components/primitives}/select/select-group-heading.svelte.d.ts +0 -0
  237. /package/dist/{components/ui → ui/components/primitives}/select/select-item.svelte.d.ts +0 -0
  238. /package/dist/{components/ui → ui/components/primitives}/select/select-scroll-down-button.svelte.d.ts +0 -0
  239. /package/dist/{components/ui → ui/components/primitives}/select/select-scroll-up-button.svelte.d.ts +0 -0
  240. /package/dist/{components/ui → ui/components/primitives}/select/select-separator.svelte.d.ts +0 -0
  241. /package/dist/{components/ui → ui/components/primitives}/select/select-trigger.svelte.d.ts +0 -0
  242. /package/dist/{components/ui → ui/components/primitives}/sheet/index.d.ts +0 -0
  243. /package/dist/{components/ui → ui/components/primitives}/sheet/index.js +0 -0
  244. /package/dist/{components/ui → ui/components/primitives}/sheet/sheet-content.svelte.d.ts +0 -0
  245. /package/dist/{components/ui → ui/components/primitives}/sheet/sheet-description.svelte.d.ts +0 -0
  246. /package/dist/{components/ui → ui/components/primitives}/sheet/sheet-footer.svelte.d.ts +0 -0
  247. /package/dist/{components/ui → ui/components/primitives}/sheet/sheet-header.svelte.d.ts +0 -0
  248. /package/dist/{components/ui → ui/components/primitives}/sheet/sheet-overlay.svelte.d.ts +0 -0
  249. /package/dist/{components/ui → ui/components/primitives}/sheet/sheet-title.svelte.d.ts +0 -0
  250. /package/dist/{components/ui → ui/components/primitives}/table/index.d.ts +0 -0
  251. /package/dist/{components/ui → ui/components/primitives}/table/index.js +0 -0
  252. /package/dist/{components/ui → ui/components/primitives}/table/table-body.svelte.d.ts +0 -0
  253. /package/dist/{components/ui → ui/components/primitives}/table/table-caption.svelte.d.ts +0 -0
  254. /package/dist/{components/ui → ui/components/primitives}/table/table-cell.svelte.d.ts +0 -0
  255. /package/dist/{components/ui → ui/components/primitives}/table/table-footer.svelte.d.ts +0 -0
  256. /package/dist/{components/ui → ui/components/primitives}/table/table-head.svelte.d.ts +0 -0
  257. /package/dist/{components/ui → ui/components/primitives}/table/table-header.svelte.d.ts +0 -0
  258. /package/dist/{components/ui → ui/components/primitives}/table/table-row.svelte.d.ts +0 -0
  259. /package/dist/{components/ui → ui/components/primitives}/table/table.svelte.d.ts +0 -0
  260. /package/dist/{components/ui → ui/components/primitives}/tabs/index.d.ts +0 -0
  261. /package/dist/{components/ui → ui/components/primitives}/tabs/index.js +0 -0
  262. /package/dist/{components/ui → ui/components/primitives}/tabs/tabs-content.svelte.d.ts +0 -0
  263. /package/dist/{components/ui → ui/components/primitives}/tabs/tabs-list.svelte.d.ts +0 -0
  264. /package/dist/{components/ui → ui/components/primitives}/tabs/tabs-trigger.svelte.d.ts +0 -0
  265. /package/dist/{components → ui/components}/ui/Accordion.svelte.d.ts +0 -0
  266. /package/dist/{components → ui/components}/ui/Dialog.svelte.d.ts +0 -0
  267. /package/dist/{components → ui/components}/ui/Select.svelte.d.ts +0 -0
  268. /package/dist/{components → ui/components}/ui/Sheet.svelte.d.ts +0 -0
  269. /package/dist/{components → ui/components}/ui/Tabs.svelte.d.ts +0 -0
  270. /package/dist/{components → ui/components}/ui/Toast.svelte.d.ts +0 -0
@@ -0,0 +1,46 @@
1
+ <script lang="ts">
2
+ import Icons from '../icons/Icons.svelte';
3
+
4
+ interface Props {
5
+ status: 'pending' | 'running' | 'completed' | 'failed' | 'needs_confirmation';
6
+ size?: 'sm' | 'md';
7
+ }
8
+
9
+ let { status, size = 'md' }: Props = $props();
10
+
11
+ const statusConfig = {
12
+ pending: {
13
+ label: 'Pending',
14
+ class: 'scout-badge-pending',
15
+ icon: 'clock' as const
16
+ },
17
+ running: {
18
+ label: 'Searching',
19
+ class: 'scout-badge-running',
20
+ icon: 'loader' as const
21
+ },
22
+ completed: {
23
+ label: 'Complete',
24
+ class: 'scout-badge-completed',
25
+ icon: 'check' as const
26
+ },
27
+ failed: {
28
+ label: 'Failed',
29
+ class: 'scout-badge-failed',
30
+ icon: 'x' as const
31
+ },
32
+ needs_confirmation: {
33
+ label: 'Needs Review',
34
+ class: 'scout-badge-pending',
35
+ icon: 'zap' as const
36
+ }
37
+ };
38
+
39
+ const config = $derived(statusConfig[status]);
40
+ const sizeClass = $derived(size === 'sm' ? 'text-xs px-2 py-0.5' : 'text-sm px-2.5 py-1');
41
+ </script>
42
+
43
+ <span class="{config.class} {sizeClass} inline-flex items-center gap-1.5 font-medium rounded-full">
44
+ <Icons name={config.icon} size="sm" class={status === 'running' ? 'animate-spin' : ''} />
45
+ {config.label}
46
+ </span>
@@ -0,0 +1,7 @@
1
+ interface Props {
2
+ status: 'pending' | 'running' | 'completed' | 'failed' | 'needs_confirmation';
3
+ size?: 'sm' | 'md';
4
+ }
5
+ declare const StatusBadge: import("svelte").Component<Props, {}, "">;
6
+ type StatusBadge = ReturnType<typeof StatusBadge>;
7
+ export default StatusBadge;
@@ -0,0 +1,4 @@
1
+ export { default as StatusBadge } from './StatusBadge.svelte';
2
+ export { default as ScoreBar } from './ScoreBar.svelte';
3
+ export { default as CreditBalance } from './CreditBalance.svelte';
4
+ export declare const INDICATORS_VERSION = "0.2.0";
@@ -0,0 +1,10 @@
1
+ // GroveUI - Indicator Components
2
+ //
3
+ // This module exports status and progress indicator components
4
+ //
5
+ // Usage:
6
+ // import { StatusBadge, ScoreBar, CreditBalance } from '@groveengine/ui/indicators';
7
+ export { default as StatusBadge } from './StatusBadge.svelte';
8
+ export { default as ScoreBar } from './ScoreBar.svelte';
9
+ export { default as CreditBalance } from './CreditBalance.svelte';
10
+ export const INDICATORS_VERSION = '0.2.0';
@@ -1,6 +1,6 @@
1
1
  <script lang="ts">
2
2
  import { Accordion as AccordionPrimitive, type WithoutChild } from "bits-ui";
3
- import { cn } from "../../../utils";
3
+ import { cn } from "../../../../utils";
4
4
 
5
5
  let {
6
6
  ref = $bindable(null),
@@ -1,6 +1,6 @@
1
1
  <script lang="ts">
2
2
  import { Accordion as AccordionPrimitive } from "bits-ui";
3
- import { cn } from "../../../utils";
3
+ import { cn } from "../../../../utils";
4
4
 
5
5
  let {
6
6
  ref = $bindable(null),
@@ -1,7 +1,7 @@
1
1
  <script lang="ts">
2
2
  import { Accordion as AccordionPrimitive, type WithoutChild } from "bits-ui";
3
3
  import ChevronDown from "@lucide/svelte/icons/chevron-down";
4
- import { cn } from "../../../utils";
4
+ import { cn } from "../../../../utils";
5
5
 
6
6
  let {
7
7
  ref = $bindable(null),
@@ -0,0 +1,50 @@
1
+ <script lang="ts" module>
2
+ import { type VariantProps, tv } from "tailwind-variants";
3
+
4
+ export const badgeVariants = tv({
5
+ base: "focus:ring-ring inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-offset-2",
6
+ variants: {
7
+ variant: {
8
+ default:
9
+ "bg-primary text-primary-foreground hover:bg-primary/80 border-transparent",
10
+ secondary:
11
+ "bg-secondary text-secondary-foreground hover:bg-secondary/80 border-transparent",
12
+ destructive:
13
+ "bg-destructive text-destructive-foreground hover:bg-destructive/80 border-transparent",
14
+ outline: "text-foreground",
15
+ },
16
+ },
17
+ defaultVariants: {
18
+ variant: "default",
19
+ },
20
+ });
21
+
22
+ export type BadgeVariant = VariantProps<typeof badgeVariants>["variant"];
23
+ </script>
24
+
25
+ <script lang="ts">
26
+ import type { WithElementRef } from "bits-ui";
27
+ import type { HTMLAnchorAttributes } from "svelte/elements";
28
+ import { cn } from "../../../../utils";
29
+
30
+ let {
31
+ ref = $bindable(null),
32
+ href,
33
+ class: className,
34
+ variant = "default",
35
+ children,
36
+ ...restProps
37
+ }: WithElementRef<HTMLAnchorAttributes> & {
38
+ variant?: BadgeVariant;
39
+ } = $props();
40
+ </script>
41
+
42
+ <svelte:element
43
+ this={href ? "a" : "span"}
44
+ bind:this={ref}
45
+ {href}
46
+ class={cn(badgeVariants({ variant }), className)}
47
+ {...restProps}
48
+ >
49
+ {@render children?.()}
50
+ </svelte:element>
@@ -0,0 +1,60 @@
1
+ import { type VariantProps } from "tailwind-variants";
2
+ export declare const badgeVariants: import("tailwind-variants").TVReturnType<{
3
+ variant: {
4
+ default: string;
5
+ secondary: string;
6
+ destructive: string;
7
+ outline: string;
8
+ };
9
+ }, undefined, "focus:ring-ring inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-offset-2", import("tailwind-variants/dist/config.js").TVConfig<{
10
+ variant: {
11
+ default: string;
12
+ secondary: string;
13
+ destructive: string;
14
+ outline: string;
15
+ };
16
+ }, {
17
+ variant: {
18
+ default: string;
19
+ secondary: string;
20
+ destructive: string;
21
+ outline: string;
22
+ };
23
+ }>, {
24
+ variant: {
25
+ default: string;
26
+ secondary: string;
27
+ destructive: string;
28
+ outline: string;
29
+ };
30
+ }, undefined, import("tailwind-variants").TVReturnType<{
31
+ variant: {
32
+ default: string;
33
+ secondary: string;
34
+ destructive: string;
35
+ outline: string;
36
+ };
37
+ }, undefined, "focus:ring-ring inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-offset-2", import("tailwind-variants/dist/config.js").TVConfig<{
38
+ variant: {
39
+ default: string;
40
+ secondary: string;
41
+ destructive: string;
42
+ outline: string;
43
+ };
44
+ }, {
45
+ variant: {
46
+ default: string;
47
+ secondary: string;
48
+ destructive: string;
49
+ outline: string;
50
+ };
51
+ }>, unknown, unknown, undefined>>;
52
+ export type BadgeVariant = VariantProps<typeof badgeVariants>["variant"];
53
+ import type { WithElementRef } from "bits-ui";
54
+ import type { HTMLAnchorAttributes } from "svelte/elements";
55
+ type $$ComponentProps = WithElementRef<HTMLAnchorAttributes> & {
56
+ variant?: BadgeVariant;
57
+ };
58
+ declare const Badge: import("svelte").Component<$$ComponentProps, {}, "ref">;
59
+ type Badge = ReturnType<typeof Badge>;
60
+ export default Badge;
@@ -0,0 +1,2 @@
1
+ export { default as Badge } from "./badge.svelte";
2
+ export { badgeVariants, type BadgeVariant } from "./badge.svelte";
@@ -0,0 +1,2 @@
1
+ export { default as Badge } from "./badge.svelte";
2
+ export { badgeVariants } from "./badge.svelte";
@@ -0,0 +1,82 @@
1
+ <script lang="ts" module>
2
+ import { cn, type WithElementRef } from "../../../../utils";
3
+ import type { HTMLAnchorAttributes, HTMLButtonAttributes } from "svelte/elements";
4
+ import { type VariantProps, tv } from "tailwind-variants";
5
+
6
+ export const buttonVariants = tv({
7
+ base: "focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive inline-flex shrink-0 items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium outline-none transition-all focus-visible:ring-[3px] disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 [&_svg:not([class*='size-'])]:size-4 [&_svg]:pointer-events-none [&_svg]:shrink-0",
8
+ variants: {
9
+ variant: {
10
+ default: "bg-primary text-primary-foreground shadow-xs hover:bg-primary/90",
11
+ destructive:
12
+ "bg-destructive shadow-xs hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60 text-white",
13
+ outline:
14
+ "bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50 border",
15
+ secondary: "bg-secondary text-secondary-foreground shadow-xs hover:bg-secondary/80",
16
+ ghost: "hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50",
17
+ link: "text-primary underline-offset-4 hover:underline",
18
+ },
19
+ size: {
20
+ default: "h-9 px-4 py-2 has-[>svg]:px-3",
21
+ sm: "h-8 gap-1.5 rounded-md px-3 has-[>svg]:px-2.5",
22
+ lg: "h-10 rounded-md px-6 has-[>svg]:px-4",
23
+ icon: "size-9",
24
+ "icon-sm": "size-8",
25
+ "icon-lg": "size-10",
26
+ },
27
+ },
28
+ defaultVariants: {
29
+ variant: "default",
30
+ size: "default",
31
+ },
32
+ });
33
+
34
+ export type ButtonVariant = VariantProps<typeof buttonVariants>["variant"];
35
+ export type ButtonSize = VariantProps<typeof buttonVariants>["size"];
36
+
37
+ export type ButtonProps = WithElementRef<HTMLButtonAttributes> &
38
+ WithElementRef<HTMLAnchorAttributes> & {
39
+ variant?: ButtonVariant;
40
+ size?: ButtonSize;
41
+ };
42
+ </script>
43
+
44
+ <script lang="ts">
45
+ let {
46
+ class: className,
47
+ variant = "default",
48
+ size = "default",
49
+ ref = $bindable(null),
50
+ href = undefined,
51
+ type = "button",
52
+ disabled,
53
+ children,
54
+ ...restProps
55
+ }: ButtonProps = $props();
56
+ </script>
57
+
58
+ {#if href}
59
+ <a
60
+ bind:this={ref}
61
+ data-slot="button"
62
+ class={cn(buttonVariants({ variant, size }), className)}
63
+ href={disabled ? undefined : href}
64
+ aria-disabled={disabled}
65
+ role={disabled ? "link" : undefined}
66
+ tabindex={disabled ? -1 : undefined}
67
+ {...restProps}
68
+ >
69
+ {@render children?.()}
70
+ </a>
71
+ {:else}
72
+ <button
73
+ bind:this={ref}
74
+ data-slot="button"
75
+ class={cn(buttonVariants({ variant, size }), className)}
76
+ {type}
77
+ {disabled}
78
+ {...restProps}
79
+ >
80
+ {@render children?.()}
81
+ </button>
82
+ {/if}
@@ -0,0 +1,132 @@
1
+ import { type WithElementRef } from "../../../../utils";
2
+ import type { HTMLAnchorAttributes, HTMLButtonAttributes } from "svelte/elements";
3
+ import { type VariantProps } from "tailwind-variants";
4
+ export declare const buttonVariants: import("tailwind-variants").TVReturnType<{
5
+ variant: {
6
+ default: string;
7
+ destructive: string;
8
+ outline: string;
9
+ secondary: string;
10
+ ghost: string;
11
+ link: string;
12
+ };
13
+ size: {
14
+ default: string;
15
+ sm: string;
16
+ lg: string;
17
+ icon: string;
18
+ "icon-sm": string;
19
+ "icon-lg": string;
20
+ };
21
+ }, undefined, "focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive inline-flex shrink-0 items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium outline-none transition-all focus-visible:ring-[3px] disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 [&_svg:not([class*='size-'])]:size-4 [&_svg]:pointer-events-none [&_svg]:shrink-0", import("tailwind-variants/dist/config.js").TVConfig<{
22
+ variant: {
23
+ default: string;
24
+ destructive: string;
25
+ outline: string;
26
+ secondary: string;
27
+ ghost: string;
28
+ link: string;
29
+ };
30
+ size: {
31
+ default: string;
32
+ sm: string;
33
+ lg: string;
34
+ icon: string;
35
+ "icon-sm": string;
36
+ "icon-lg": string;
37
+ };
38
+ }, {
39
+ variant: {
40
+ default: string;
41
+ destructive: string;
42
+ outline: string;
43
+ secondary: string;
44
+ ghost: string;
45
+ link: string;
46
+ };
47
+ size: {
48
+ default: string;
49
+ sm: string;
50
+ lg: string;
51
+ icon: string;
52
+ "icon-sm": string;
53
+ "icon-lg": string;
54
+ };
55
+ }>, {
56
+ variant: {
57
+ default: string;
58
+ destructive: string;
59
+ outline: string;
60
+ secondary: string;
61
+ ghost: string;
62
+ link: string;
63
+ };
64
+ size: {
65
+ default: string;
66
+ sm: string;
67
+ lg: string;
68
+ icon: string;
69
+ "icon-sm": string;
70
+ "icon-lg": string;
71
+ };
72
+ }, undefined, import("tailwind-variants").TVReturnType<{
73
+ variant: {
74
+ default: string;
75
+ destructive: string;
76
+ outline: string;
77
+ secondary: string;
78
+ ghost: string;
79
+ link: string;
80
+ };
81
+ size: {
82
+ default: string;
83
+ sm: string;
84
+ lg: string;
85
+ icon: string;
86
+ "icon-sm": string;
87
+ "icon-lg": string;
88
+ };
89
+ }, undefined, "focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive inline-flex shrink-0 items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium outline-none transition-all focus-visible:ring-[3px] disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 [&_svg:not([class*='size-'])]:size-4 [&_svg]:pointer-events-none [&_svg]:shrink-0", import("tailwind-variants/dist/config.js").TVConfig<{
90
+ variant: {
91
+ default: string;
92
+ destructive: string;
93
+ outline: string;
94
+ secondary: string;
95
+ ghost: string;
96
+ link: string;
97
+ };
98
+ size: {
99
+ default: string;
100
+ sm: string;
101
+ lg: string;
102
+ icon: string;
103
+ "icon-sm": string;
104
+ "icon-lg": string;
105
+ };
106
+ }, {
107
+ variant: {
108
+ default: string;
109
+ destructive: string;
110
+ outline: string;
111
+ secondary: string;
112
+ ghost: string;
113
+ link: string;
114
+ };
115
+ size: {
116
+ default: string;
117
+ sm: string;
118
+ lg: string;
119
+ icon: string;
120
+ "icon-sm": string;
121
+ "icon-lg": string;
122
+ };
123
+ }>, unknown, unknown, undefined>>;
124
+ export type ButtonVariant = VariantProps<typeof buttonVariants>["variant"];
125
+ export type ButtonSize = VariantProps<typeof buttonVariants>["size"];
126
+ export type ButtonProps = WithElementRef<HTMLButtonAttributes> & WithElementRef<HTMLAnchorAttributes> & {
127
+ variant?: ButtonVariant;
128
+ size?: ButtonSize;
129
+ };
130
+ declare const Button: import("svelte").Component<ButtonProps, {}, "ref">;
131
+ type Button = ReturnType<typeof Button>;
132
+ export default Button;
@@ -0,0 +1,2 @@
1
+ import Root, { type ButtonProps, type ButtonSize, type ButtonVariant, buttonVariants } from "./button.svelte";
2
+ export { Root, type ButtonProps as Props, Root as Button, buttonVariants, type ButtonProps, type ButtonSize, type ButtonVariant, };
@@ -0,0 +1,4 @@
1
+ import Root, { buttonVariants, } from "./button.svelte";
2
+ export { Root,
3
+ //
4
+ Root as Button, buttonVariants, };
@@ -0,0 +1,16 @@
1
+ <script lang="ts">
2
+ import type { WithElementRef } from "bits-ui";
3
+ import type { HTMLAttributes } from "svelte/elements";
4
+ import { cn } from "../../../../utils";
5
+
6
+ let {
7
+ ref = $bindable(null),
8
+ class: className,
9
+ children,
10
+ ...restProps
11
+ }: WithElementRef<HTMLAttributes<HTMLDivElement>> = $props();
12
+ </script>
13
+
14
+ <div bind:this={ref} class={cn("p-6", className)} {...restProps}>
15
+ {@render children?.()}
16
+ </div>
@@ -0,0 +1,5 @@
1
+ import type { WithElementRef } from "bits-ui";
2
+ import type { HTMLAttributes } from "svelte/elements";
3
+ declare const CardContent: import("svelte").Component<WithElementRef<HTMLAttributes<HTMLDivElement>>, {}, "ref">;
4
+ type CardContent = ReturnType<typeof CardContent>;
5
+ export default CardContent;
@@ -0,0 +1,16 @@
1
+ <script lang="ts">
2
+ import type { WithElementRef } from "bits-ui";
3
+ import type { HTMLAttributes } from "svelte/elements";
4
+ import { cn } from "../../../../utils";
5
+
6
+ let {
7
+ ref = $bindable(null),
8
+ class: className,
9
+ children,
10
+ ...restProps
11
+ }: WithElementRef<HTMLAttributes<HTMLParagraphElement>> = $props();
12
+ </script>
13
+
14
+ <p bind:this={ref} class={cn("text-muted-foreground text-sm", className)} {...restProps}>
15
+ {@render children?.()}
16
+ </p>
@@ -0,0 +1,5 @@
1
+ import type { WithElementRef } from "bits-ui";
2
+ import type { HTMLAttributes } from "svelte/elements";
3
+ declare const CardDescription: import("svelte").Component<WithElementRef<HTMLAttributes<HTMLParagraphElement>>, {}, "ref">;
4
+ type CardDescription = ReturnType<typeof CardDescription>;
5
+ export default CardDescription;
@@ -0,0 +1,16 @@
1
+ <script lang="ts">
2
+ import type { WithElementRef } from "bits-ui";
3
+ import type { HTMLAttributes } from "svelte/elements";
4
+ import { cn } from "../../../../utils";
5
+
6
+ let {
7
+ ref = $bindable(null),
8
+ class: className,
9
+ children,
10
+ ...restProps
11
+ }: WithElementRef<HTMLAttributes<HTMLDivElement>> = $props();
12
+ </script>
13
+
14
+ <div bind:this={ref} class={cn("flex items-center p-6 pt-0", className)} {...restProps}>
15
+ {@render children?.()}
16
+ </div>
@@ -0,0 +1,5 @@
1
+ import type { WithElementRef } from "bits-ui";
2
+ import type { HTMLAttributes } from "svelte/elements";
3
+ declare const CardFooter: import("svelte").Component<WithElementRef<HTMLAttributes<HTMLDivElement>>, {}, "ref">;
4
+ type CardFooter = ReturnType<typeof CardFooter>;
5
+ export default CardFooter;
@@ -0,0 +1,16 @@
1
+ <script lang="ts">
2
+ import type { WithElementRef } from "bits-ui";
3
+ import type { HTMLAttributes } from "svelte/elements";
4
+ import { cn } from "../../../../utils";
5
+
6
+ let {
7
+ ref = $bindable(null),
8
+ class: className,
9
+ children,
10
+ ...restProps
11
+ }: WithElementRef<HTMLAttributes<HTMLDivElement>> = $props();
12
+ </script>
13
+
14
+ <div bind:this={ref} class={cn("flex flex-col space-y-1.5 p-6 pb-0", className)} {...restProps}>
15
+ {@render children?.()}
16
+ </div>
@@ -0,0 +1,5 @@
1
+ import type { WithElementRef } from "bits-ui";
2
+ import type { HTMLAttributes } from "svelte/elements";
3
+ declare const CardHeader: import("svelte").Component<WithElementRef<HTMLAttributes<HTMLDivElement>>, {}, "ref">;
4
+ type CardHeader = ReturnType<typeof CardHeader>;
5
+ export default CardHeader;
@@ -0,0 +1,25 @@
1
+ <script lang="ts">
2
+ import type { WithElementRef } from "bits-ui";
3
+ import type { HTMLAttributes } from "svelte/elements";
4
+ import { cn } from "../../../../utils";
5
+
6
+ let {
7
+ ref = $bindable(null),
8
+ class: className,
9
+ level = 3,
10
+ children,
11
+ ...restProps
12
+ }: WithElementRef<HTMLAttributes<HTMLDivElement>> & {
13
+ level?: 1 | 2 | 3 | 4 | 5 | 6;
14
+ } = $props();
15
+ </script>
16
+
17
+ <div
18
+ role="heading"
19
+ aria-level={level}
20
+ bind:this={ref}
21
+ class={cn("text-2xl font-semibold leading-none tracking-tight", className)}
22
+ {...restProps}
23
+ >
24
+ {@render children?.()}
25
+ </div>
@@ -0,0 +1,8 @@
1
+ import type { WithElementRef } from "bits-ui";
2
+ import type { HTMLAttributes } from "svelte/elements";
3
+ type $$ComponentProps = WithElementRef<HTMLAttributes<HTMLDivElement>> & {
4
+ level?: 1 | 2 | 3 | 4 | 5 | 6;
5
+ };
6
+ declare const CardTitle: import("svelte").Component<$$ComponentProps, {}, "ref">;
7
+ type CardTitle = ReturnType<typeof CardTitle>;
8
+ export default CardTitle;
@@ -0,0 +1,20 @@
1
+ <script lang="ts">
2
+ import type { WithElementRef } from "bits-ui";
3
+ import type { HTMLAttributes } from "svelte/elements";
4
+ import { cn } from "../../../../utils";
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
+ class={cn("bg-card text-card-foreground rounded-lg border shadow-sm", className)}
17
+ {...restProps}
18
+ >
19
+ {@render children?.()}
20
+ </div>
@@ -0,0 +1,5 @@
1
+ import type { WithElementRef } from "bits-ui";
2
+ import type { HTMLAttributes } from "svelte/elements";
3
+ declare const Card: import("svelte").Component<WithElementRef<HTMLAttributes<HTMLDivElement>>, {}, "ref">;
4
+ type Card = ReturnType<typeof Card>;
5
+ export default Card;
@@ -0,0 +1,7 @@
1
+ import Root from "./card.svelte";
2
+ import Content from "./card-content.svelte";
3
+ import Description from "./card-description.svelte";
4
+ import Footer from "./card-footer.svelte";
5
+ import Header from "./card-header.svelte";
6
+ import Title from "./card-title.svelte";
7
+ export { Root, Content, Description, Footer, Header, Title, Root as Card, Content as CardContent, Description as CardDescription, Footer as CardFooter, Header as CardHeader, Title as CardTitle, };
@@ -0,0 +1,9 @@
1
+ import Root from "./card.svelte";
2
+ import Content from "./card-content.svelte";
3
+ import Description from "./card-description.svelte";
4
+ import Footer from "./card-footer.svelte";
5
+ import Header from "./card-header.svelte";
6
+ import Title from "./card-title.svelte";
7
+ export { Root, Content, Description, Footer, Header, Title,
8
+ //
9
+ Root as Card, Content as CardContent, Description as CardDescription, Footer as CardFooter, Header as CardHeader, Title as CardTitle, };
@@ -3,7 +3,7 @@
3
3
  import X from "@lucide/svelte/icons/x";
4
4
  import type { Snippet } from "svelte";
5
5
  import * as Dialog from "./index.js";
6
- import { cn } from "../../../utils";
6
+ import { cn } from "../../../../utils";
7
7
 
8
8
  let {
9
9
  ref = $bindable(null),
@@ -1,6 +1,6 @@
1
1
  <script lang="ts">
2
2
  import { Dialog as DialogPrimitive } from "bits-ui";
3
- import { cn } from "../../../utils";
3
+ import { cn } from "../../../../utils";
4
4
 
5
5
  let {
6
6
  ref = $bindable(null),
@@ -1,7 +1,7 @@
1
1
  <script lang="ts">
2
2
  import type { WithElementRef } from "bits-ui";
3
3
  import type { HTMLAttributes } from "svelte/elements";
4
- import { cn } from "../../../utils";
4
+ import { cn } from "../../../../utils";
5
5
 
6
6
  let {
7
7
  ref = $bindable(null),