@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,417 @@
1
+ /**
2
+ * Grove Design System - Animation Tokens
3
+ *
4
+ * Durations, easings, and animation definitions.
5
+ */
6
+ export declare const duration: {
7
+ readonly fast: "150ms";
8
+ readonly DEFAULT: "200ms";
9
+ readonly slow: "300ms";
10
+ readonly slower: "500ms";
11
+ };
12
+ export declare const easing: {
13
+ readonly DEFAULT: "cubic-bezier(0.4, 0, 0.2, 1)";
14
+ readonly in: "cubic-bezier(0.4, 0, 1, 1)";
15
+ readonly out: "cubic-bezier(0, 0, 0.2, 1)";
16
+ readonly 'in-out': "cubic-bezier(0.4, 0, 0.2, 1)";
17
+ readonly bounce: "cubic-bezier(0.68, -0.55, 0.265, 1.55)";
18
+ readonly soft: "cubic-bezier(0.25, 0.1, 0.25, 1)";
19
+ };
20
+ export declare const animations: {
21
+ readonly 'fade-in': {
22
+ readonly duration: "300ms";
23
+ readonly easing: "cubic-bezier(0, 0, 0.2, 1)";
24
+ readonly keyframes: {
25
+ readonly from: {
26
+ readonly opacity: 0;
27
+ };
28
+ readonly to: {
29
+ readonly opacity: 1;
30
+ };
31
+ };
32
+ };
33
+ readonly 'fade-out': {
34
+ readonly duration: "200ms";
35
+ readonly easing: "cubic-bezier(0.4, 0, 1, 1)";
36
+ readonly keyframes: {
37
+ readonly from: {
38
+ readonly opacity: 1;
39
+ };
40
+ readonly to: {
41
+ readonly opacity: 0;
42
+ };
43
+ };
44
+ };
45
+ readonly 'fade-in-up': {
46
+ readonly duration: "400ms";
47
+ readonly easing: "cubic-bezier(0, 0, 0.2, 1)";
48
+ readonly keyframes: {
49
+ readonly from: {
50
+ readonly opacity: 0;
51
+ readonly transform: "translateY(8px)";
52
+ };
53
+ readonly to: {
54
+ readonly opacity: 1;
55
+ readonly transform: "translateY(0)";
56
+ };
57
+ };
58
+ };
59
+ readonly 'fade-in-down': {
60
+ readonly duration: "400ms";
61
+ readonly easing: "cubic-bezier(0, 0, 0.2, 1)";
62
+ readonly keyframes: {
63
+ readonly from: {
64
+ readonly opacity: 0;
65
+ readonly transform: "translateY(-8px)";
66
+ };
67
+ readonly to: {
68
+ readonly opacity: 1;
69
+ readonly transform: "translateY(0)";
70
+ };
71
+ };
72
+ };
73
+ readonly grow: {
74
+ readonly duration: "400ms";
75
+ readonly easing: "cubic-bezier(0, 0, 0.2, 1)";
76
+ readonly keyframes: {
77
+ readonly from: {
78
+ readonly opacity: 0;
79
+ readonly transform: "scale(0.95)";
80
+ };
81
+ readonly to: {
82
+ readonly opacity: 1;
83
+ readonly transform: "scale(1)";
84
+ };
85
+ };
86
+ };
87
+ readonly shrink: {
88
+ readonly duration: "300ms";
89
+ readonly easing: "cubic-bezier(0.4, 0, 1, 1)";
90
+ readonly keyframes: {
91
+ readonly from: {
92
+ readonly opacity: 1;
93
+ readonly transform: "scale(1)";
94
+ };
95
+ readonly to: {
96
+ readonly opacity: 0;
97
+ readonly transform: "scale(0.95)";
98
+ };
99
+ };
100
+ };
101
+ readonly bloom: {
102
+ readonly duration: "500ms";
103
+ readonly easing: "cubic-bezier(0, 0, 0.2, 1)";
104
+ readonly keyframes: {
105
+ readonly '0%': {
106
+ readonly opacity: 0;
107
+ readonly transform: "scale(0.8)";
108
+ };
109
+ readonly '50%': {
110
+ readonly transform: "scale(1.02)";
111
+ };
112
+ readonly '100%': {
113
+ readonly opacity: 1;
114
+ readonly transform: "scale(1)";
115
+ };
116
+ };
117
+ };
118
+ readonly 'leaf-fall': {
119
+ readonly duration: "3000ms";
120
+ readonly easing: "cubic-bezier(0.4, 0, 0.2, 1)";
121
+ readonly iteration: "infinite";
122
+ readonly keyframes: {
123
+ readonly '0%': {
124
+ readonly transform: "translateY(-10px) rotate(0deg)";
125
+ readonly opacity: 0;
126
+ };
127
+ readonly '10%': {
128
+ readonly opacity: 1;
129
+ };
130
+ readonly '90%': {
131
+ readonly opacity: 1;
132
+ };
133
+ readonly '100%': {
134
+ readonly transform: "translateY(100px) rotate(45deg)";
135
+ readonly opacity: 0;
136
+ };
137
+ };
138
+ };
139
+ readonly 'leaf-sway': {
140
+ readonly duration: "4000ms";
141
+ readonly easing: "cubic-bezier(0.4, 0, 0.2, 1)";
142
+ readonly iteration: "infinite";
143
+ readonly keyframes: {
144
+ readonly '0%, 100%': {
145
+ readonly transform: "rotate(-3deg)";
146
+ };
147
+ readonly '50%': {
148
+ readonly transform: "rotate(3deg)";
149
+ };
150
+ };
151
+ };
152
+ readonly 'slide-in-right': {
153
+ readonly duration: "300ms";
154
+ readonly easing: "cubic-bezier(0, 0, 0.2, 1)";
155
+ readonly keyframes: {
156
+ readonly from: {
157
+ readonly opacity: 0;
158
+ readonly transform: "translateX(16px)";
159
+ };
160
+ readonly to: {
161
+ readonly opacity: 1;
162
+ readonly transform: "translateX(0)";
163
+ };
164
+ };
165
+ };
166
+ readonly 'slide-in-left': {
167
+ readonly duration: "300ms";
168
+ readonly easing: "cubic-bezier(0, 0, 0.2, 1)";
169
+ readonly keyframes: {
170
+ readonly from: {
171
+ readonly opacity: 0;
172
+ readonly transform: "translateX(-16px)";
173
+ };
174
+ readonly to: {
175
+ readonly opacity: 1;
176
+ readonly transform: "translateX(0)";
177
+ };
178
+ };
179
+ };
180
+ readonly 'slide-in-up': {
181
+ readonly duration: "300ms";
182
+ readonly easing: "cubic-bezier(0, 0, 0.2, 1)";
183
+ readonly keyframes: {
184
+ readonly from: {
185
+ readonly opacity: 0;
186
+ readonly transform: "translateY(16px)";
187
+ };
188
+ readonly to: {
189
+ readonly opacity: 1;
190
+ readonly transform: "translateY(0)";
191
+ };
192
+ };
193
+ };
194
+ readonly 'slide-in-down': {
195
+ readonly duration: "300ms";
196
+ readonly easing: "cubic-bezier(0, 0, 0.2, 1)";
197
+ readonly keyframes: {
198
+ readonly from: {
199
+ readonly opacity: 0;
200
+ readonly transform: "translateY(-16px)";
201
+ };
202
+ readonly to: {
203
+ readonly opacity: 1;
204
+ readonly transform: "translateY(0)";
205
+ };
206
+ };
207
+ };
208
+ };
209
+ export declare const animation: {
210
+ readonly duration: {
211
+ readonly fast: "150ms";
212
+ readonly DEFAULT: "200ms";
213
+ readonly slow: "300ms";
214
+ readonly slower: "500ms";
215
+ };
216
+ readonly easing: {
217
+ readonly DEFAULT: "cubic-bezier(0.4, 0, 0.2, 1)";
218
+ readonly in: "cubic-bezier(0.4, 0, 1, 1)";
219
+ readonly out: "cubic-bezier(0, 0, 0.2, 1)";
220
+ readonly 'in-out': "cubic-bezier(0.4, 0, 0.2, 1)";
221
+ readonly bounce: "cubic-bezier(0.68, -0.55, 0.265, 1.55)";
222
+ readonly soft: "cubic-bezier(0.25, 0.1, 0.25, 1)";
223
+ };
224
+ readonly animations: {
225
+ readonly 'fade-in': {
226
+ readonly duration: "300ms";
227
+ readonly easing: "cubic-bezier(0, 0, 0.2, 1)";
228
+ readonly keyframes: {
229
+ readonly from: {
230
+ readonly opacity: 0;
231
+ };
232
+ readonly to: {
233
+ readonly opacity: 1;
234
+ };
235
+ };
236
+ };
237
+ readonly 'fade-out': {
238
+ readonly duration: "200ms";
239
+ readonly easing: "cubic-bezier(0.4, 0, 1, 1)";
240
+ readonly keyframes: {
241
+ readonly from: {
242
+ readonly opacity: 1;
243
+ };
244
+ readonly to: {
245
+ readonly opacity: 0;
246
+ };
247
+ };
248
+ };
249
+ readonly 'fade-in-up': {
250
+ readonly duration: "400ms";
251
+ readonly easing: "cubic-bezier(0, 0, 0.2, 1)";
252
+ readonly keyframes: {
253
+ readonly from: {
254
+ readonly opacity: 0;
255
+ readonly transform: "translateY(8px)";
256
+ };
257
+ readonly to: {
258
+ readonly opacity: 1;
259
+ readonly transform: "translateY(0)";
260
+ };
261
+ };
262
+ };
263
+ readonly 'fade-in-down': {
264
+ readonly duration: "400ms";
265
+ readonly easing: "cubic-bezier(0, 0, 0.2, 1)";
266
+ readonly keyframes: {
267
+ readonly from: {
268
+ readonly opacity: 0;
269
+ readonly transform: "translateY(-8px)";
270
+ };
271
+ readonly to: {
272
+ readonly opacity: 1;
273
+ readonly transform: "translateY(0)";
274
+ };
275
+ };
276
+ };
277
+ readonly grow: {
278
+ readonly duration: "400ms";
279
+ readonly easing: "cubic-bezier(0, 0, 0.2, 1)";
280
+ readonly keyframes: {
281
+ readonly from: {
282
+ readonly opacity: 0;
283
+ readonly transform: "scale(0.95)";
284
+ };
285
+ readonly to: {
286
+ readonly opacity: 1;
287
+ readonly transform: "scale(1)";
288
+ };
289
+ };
290
+ };
291
+ readonly shrink: {
292
+ readonly duration: "300ms";
293
+ readonly easing: "cubic-bezier(0.4, 0, 1, 1)";
294
+ readonly keyframes: {
295
+ readonly from: {
296
+ readonly opacity: 1;
297
+ readonly transform: "scale(1)";
298
+ };
299
+ readonly to: {
300
+ readonly opacity: 0;
301
+ readonly transform: "scale(0.95)";
302
+ };
303
+ };
304
+ };
305
+ readonly bloom: {
306
+ readonly duration: "500ms";
307
+ readonly easing: "cubic-bezier(0, 0, 0.2, 1)";
308
+ readonly keyframes: {
309
+ readonly '0%': {
310
+ readonly opacity: 0;
311
+ readonly transform: "scale(0.8)";
312
+ };
313
+ readonly '50%': {
314
+ readonly transform: "scale(1.02)";
315
+ };
316
+ readonly '100%': {
317
+ readonly opacity: 1;
318
+ readonly transform: "scale(1)";
319
+ };
320
+ };
321
+ };
322
+ readonly 'leaf-fall': {
323
+ readonly duration: "3000ms";
324
+ readonly easing: "cubic-bezier(0.4, 0, 0.2, 1)";
325
+ readonly iteration: "infinite";
326
+ readonly keyframes: {
327
+ readonly '0%': {
328
+ readonly transform: "translateY(-10px) rotate(0deg)";
329
+ readonly opacity: 0;
330
+ };
331
+ readonly '10%': {
332
+ readonly opacity: 1;
333
+ };
334
+ readonly '90%': {
335
+ readonly opacity: 1;
336
+ };
337
+ readonly '100%': {
338
+ readonly transform: "translateY(100px) rotate(45deg)";
339
+ readonly opacity: 0;
340
+ };
341
+ };
342
+ };
343
+ readonly 'leaf-sway': {
344
+ readonly duration: "4000ms";
345
+ readonly easing: "cubic-bezier(0.4, 0, 0.2, 1)";
346
+ readonly iteration: "infinite";
347
+ readonly keyframes: {
348
+ readonly '0%, 100%': {
349
+ readonly transform: "rotate(-3deg)";
350
+ };
351
+ readonly '50%': {
352
+ readonly transform: "rotate(3deg)";
353
+ };
354
+ };
355
+ };
356
+ readonly 'slide-in-right': {
357
+ readonly duration: "300ms";
358
+ readonly easing: "cubic-bezier(0, 0, 0.2, 1)";
359
+ readonly keyframes: {
360
+ readonly from: {
361
+ readonly opacity: 0;
362
+ readonly transform: "translateX(16px)";
363
+ };
364
+ readonly to: {
365
+ readonly opacity: 1;
366
+ readonly transform: "translateX(0)";
367
+ };
368
+ };
369
+ };
370
+ readonly 'slide-in-left': {
371
+ readonly duration: "300ms";
372
+ readonly easing: "cubic-bezier(0, 0, 0.2, 1)";
373
+ readonly keyframes: {
374
+ readonly from: {
375
+ readonly opacity: 0;
376
+ readonly transform: "translateX(-16px)";
377
+ };
378
+ readonly to: {
379
+ readonly opacity: 1;
380
+ readonly transform: "translateX(0)";
381
+ };
382
+ };
383
+ };
384
+ readonly 'slide-in-up': {
385
+ readonly duration: "300ms";
386
+ readonly easing: "cubic-bezier(0, 0, 0.2, 1)";
387
+ readonly keyframes: {
388
+ readonly from: {
389
+ readonly opacity: 0;
390
+ readonly transform: "translateY(16px)";
391
+ };
392
+ readonly to: {
393
+ readonly opacity: 1;
394
+ readonly transform: "translateY(0)";
395
+ };
396
+ };
397
+ };
398
+ readonly 'slide-in-down': {
399
+ readonly duration: "300ms";
400
+ readonly easing: "cubic-bezier(0, 0, 0.2, 1)";
401
+ readonly keyframes: {
402
+ readonly from: {
403
+ readonly opacity: 0;
404
+ readonly transform: "translateY(-16px)";
405
+ };
406
+ readonly to: {
407
+ readonly opacity: 1;
408
+ readonly transform: "translateY(0)";
409
+ };
410
+ };
411
+ };
412
+ };
413
+ };
414
+ export type Duration = typeof duration;
415
+ export type Easing = typeof easing;
416
+ export type Animations = typeof animations;
417
+ export type Animation = typeof animation;
@@ -0,0 +1,139 @@
1
+ /**
2
+ * Grove Design System - Animation Tokens
3
+ *
4
+ * Durations, easings, and animation definitions.
5
+ */
6
+ export const duration = {
7
+ 'fast': '150ms',
8
+ 'DEFAULT': '200ms',
9
+ 'slow': '300ms',
10
+ 'slower': '500ms',
11
+ };
12
+ export const easing = {
13
+ 'DEFAULT': 'cubic-bezier(0.4, 0, 0.2, 1)',
14
+ 'in': 'cubic-bezier(0.4, 0, 1, 1)',
15
+ 'out': 'cubic-bezier(0, 0, 0.2, 1)',
16
+ 'in-out': 'cubic-bezier(0.4, 0, 0.2, 1)',
17
+ 'bounce': 'cubic-bezier(0.68, -0.55, 0.265, 1.55)',
18
+ 'soft': 'cubic-bezier(0.25, 0.1, 0.25, 1)',
19
+ };
20
+ export const animations = {
21
+ // Fade animations
22
+ 'fade-in': {
23
+ duration: '300ms',
24
+ easing: easing.out,
25
+ keyframes: {
26
+ from: { opacity: 0 },
27
+ to: { opacity: 1 },
28
+ },
29
+ },
30
+ 'fade-out': {
31
+ duration: '200ms',
32
+ easing: easing.in,
33
+ keyframes: {
34
+ from: { opacity: 1 },
35
+ to: { opacity: 0 },
36
+ },
37
+ },
38
+ 'fade-in-up': {
39
+ duration: '400ms',
40
+ easing: easing.out,
41
+ keyframes: {
42
+ from: { opacity: 0, transform: 'translateY(8px)' },
43
+ to: { opacity: 1, transform: 'translateY(0)' },
44
+ },
45
+ },
46
+ 'fade-in-down': {
47
+ duration: '400ms',
48
+ easing: easing.out,
49
+ keyframes: {
50
+ from: { opacity: 0, transform: 'translateY(-8px)' },
51
+ to: { opacity: 1, transform: 'translateY(0)' },
52
+ },
53
+ },
54
+ // Growth animations (organic)
55
+ 'grow': {
56
+ duration: '400ms',
57
+ easing: easing.out,
58
+ keyframes: {
59
+ from: { opacity: 0, transform: 'scale(0.95)' },
60
+ to: { opacity: 1, transform: 'scale(1)' },
61
+ },
62
+ },
63
+ 'shrink': {
64
+ duration: '300ms',
65
+ easing: easing.in,
66
+ keyframes: {
67
+ from: { opacity: 1, transform: 'scale(1)' },
68
+ to: { opacity: 0, transform: 'scale(0.95)' },
69
+ },
70
+ },
71
+ 'bloom': {
72
+ duration: '500ms',
73
+ easing: easing.out,
74
+ keyframes: {
75
+ '0%': { opacity: 0, transform: 'scale(0.8)' },
76
+ '50%': { transform: 'scale(1.02)' },
77
+ '100%': { opacity: 1, transform: 'scale(1)' },
78
+ },
79
+ },
80
+ // Leaf animations
81
+ 'leaf-fall': {
82
+ duration: '3000ms',
83
+ easing: easing['in-out'],
84
+ iteration: 'infinite',
85
+ keyframes: {
86
+ '0%': { transform: 'translateY(-10px) rotate(0deg)', opacity: 0 },
87
+ '10%': { opacity: 1 },
88
+ '90%': { opacity: 1 },
89
+ '100%': { transform: 'translateY(100px) rotate(45deg)', opacity: 0 },
90
+ },
91
+ },
92
+ 'leaf-sway': {
93
+ duration: '4000ms',
94
+ easing: easing['in-out'],
95
+ iteration: 'infinite',
96
+ keyframes: {
97
+ '0%, 100%': { transform: 'rotate(-3deg)' },
98
+ '50%': { transform: 'rotate(3deg)' },
99
+ },
100
+ },
101
+ // Slide animations
102
+ 'slide-in-right': {
103
+ duration: '300ms',
104
+ easing: easing.out,
105
+ keyframes: {
106
+ from: { opacity: 0, transform: 'translateX(16px)' },
107
+ to: { opacity: 1, transform: 'translateX(0)' },
108
+ },
109
+ },
110
+ 'slide-in-left': {
111
+ duration: '300ms',
112
+ easing: easing.out,
113
+ keyframes: {
114
+ from: { opacity: 0, transform: 'translateX(-16px)' },
115
+ to: { opacity: 1, transform: 'translateX(0)' },
116
+ },
117
+ },
118
+ 'slide-in-up': {
119
+ duration: '300ms',
120
+ easing: easing.out,
121
+ keyframes: {
122
+ from: { opacity: 0, transform: 'translateY(16px)' },
123
+ to: { opacity: 1, transform: 'translateY(0)' },
124
+ },
125
+ },
126
+ 'slide-in-down': {
127
+ duration: '300ms',
128
+ easing: easing.out,
129
+ keyframes: {
130
+ from: { opacity: 0, transform: 'translateY(-16px)' },
131
+ to: { opacity: 1, transform: 'translateY(0)' },
132
+ },
133
+ },
134
+ };
135
+ export const animation = {
136
+ duration,
137
+ easing,
138
+ animations,
139
+ };