@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,429 @@
1
+ /**
2
+ * Grove Design System - CSS Custom Properties
3
+ *
4
+ * All design tokens as CSS variables for use without Tailwind.
5
+ * "a place to Be"
6
+ */
7
+
8
+ :root {
9
+ /* ═══════════════════════════════════════════════════════════════
10
+ COLOR TOKENS
11
+ ═══════════════════════════════════════════════════════════════ */
12
+
13
+ /* Primary: Grove Green */
14
+ --grove-50: #f0fdf4;
15
+ --grove-100: #dcfce7;
16
+ --grove-200: #bbf7d0;
17
+ --grove-300: #86efac;
18
+ --grove-400: #4ade80;
19
+ --grove-500: #22c55e;
20
+ --grove-600: #16a34a;
21
+ --grove-700: #15803d;
22
+ --grove-800: #166534;
23
+ --grove-900: #14532d;
24
+ --grove-950: #052e16;
25
+
26
+ /* Neutral: Cream */
27
+ --cream: #fefdfb;
28
+ --cream-50: #fefdfb;
29
+ --cream-100: #fdfcf8;
30
+ --cream-200: #faf8f3;
31
+ --cream-300: #f5f2ea;
32
+ --cream-400: #ede9de;
33
+ --cream-500: #e2ddd0;
34
+
35
+ /* Neutral: Bark */
36
+ --bark: #3d2914;
37
+ --bark-50: #f9f6f3;
38
+ --bark-100: #f0e9e1;
39
+ --bark-200: #e0d2c2;
40
+ --bark-300: #ccb59c;
41
+ --bark-400: #b69575;
42
+ --bark-500: #a57c5a;
43
+ --bark-600: #8a6347;
44
+ --bark-700: #6f4d39;
45
+ --bark-800: #5a3f30;
46
+ --bark-900: #3d2914;
47
+ --bark-950: #2a1b0d;
48
+
49
+ /* Semantic Colors */
50
+ --color-primary: var(--grove-600);
51
+ --color-primary-hover: var(--grove-700);
52
+ --color-primary-active: var(--grove-800);
53
+ --color-primary-foreground: #ffffff;
54
+
55
+ --color-secondary: var(--cream-500);
56
+ --color-secondary-hover: var(--cream-400);
57
+ --color-secondary-active: var(--cream-300);
58
+ --color-secondary-foreground: var(--bark);
59
+
60
+ --color-background: var(--cream);
61
+ --color-foreground: var(--bark);
62
+ --color-muted: var(--cream-300);
63
+ --color-muted-foreground: var(--bark-700);
64
+
65
+ --color-accent: var(--grove-100);
66
+ --color-accent-foreground: var(--grove-800);
67
+
68
+ --color-border: var(--cream-200);
69
+ --color-border-strong: var(--cream-400);
70
+ --color-input: var(--cream-200);
71
+ --color-ring: var(--grove-500);
72
+
73
+ /* Status Colors */
74
+ --color-success: var(--grove-500);
75
+ --color-success-light: var(--grove-100);
76
+ --color-success-foreground: var(--grove-800);
77
+
78
+ --color-warning: #f59e0b;
79
+ --color-warning-light: #fef3c7;
80
+ --color-warning-foreground: #92400e;
81
+
82
+ --color-error: #dc2626;
83
+ --color-error-light: #fee2e2;
84
+ --color-error-foreground: #991b1b;
85
+
86
+ --color-info: #0ea5e9;
87
+ --color-info-light: #e0f2fe;
88
+ --color-info-foreground: #075985;
89
+
90
+ /* ═══════════════════════════════════════════════════════════════
91
+ TYPOGRAPHY TOKENS
92
+ ═══════════════════════════════════════════════════════════════ */
93
+
94
+ /* Font Families */
95
+ --font-serif: Georgia, Cambria, 'Times New Roman', Times, serif;
96
+ --font-sans: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif;
97
+ --font-mono: ui-monospace, SFMono-Regular, 'SF Mono', Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New', monospace;
98
+
99
+ /* Font Sizes */
100
+ --text-display-lg: 3.5rem;
101
+ --text-display: 2.5rem;
102
+ --text-display-sm: 2rem;
103
+ --text-heading-lg: 1.5rem;
104
+ --text-heading: 1.25rem;
105
+ --text-heading-sm: 1.125rem;
106
+ --text-body-lg: 1.125rem;
107
+ --text-body: 1rem;
108
+ --text-body-sm: 0.875rem;
109
+ --text-caption: 0.75rem;
110
+
111
+ /* Line Heights */
112
+ --leading-display: 1.1;
113
+ --leading-heading: 1.35;
114
+ --leading-body: 1.75;
115
+ --leading-tight: 1.25;
116
+ --leading-normal: 1.5;
117
+
118
+ /* Letter Spacing */
119
+ --tracking-tight: -0.02em;
120
+ --tracking-normal: 0;
121
+ --tracking-wide: 0.025em;
122
+
123
+ /* Font Weights */
124
+ --font-weight-normal: 400;
125
+ --font-weight-medium: 500;
126
+ --font-weight-semibold: 600;
127
+ --font-weight-bold: 700;
128
+
129
+ /* ═══════════════════════════════════════════════════════════════
130
+ SPACING TOKENS
131
+ ═══════════════════════════════════════════════════════════════ */
132
+
133
+ --space-0: 0;
134
+ --space-px: 1px;
135
+ --space-0-5: 0.125rem;
136
+ --space-1: 0.25rem;
137
+ --space-1-5: 0.375rem;
138
+ --space-2: 0.5rem;
139
+ --space-2-5: 0.625rem;
140
+ --space-3: 0.75rem;
141
+ --space-3-5: 0.875rem;
142
+ --space-4: 1rem;
143
+ --space-5: 1.25rem;
144
+ --space-6: 1.5rem;
145
+ --space-7: 1.75rem;
146
+ --space-8: 2rem;
147
+ --space-9: 2.25rem;
148
+ --space-10: 2.5rem;
149
+ --space-11: 2.75rem;
150
+ --space-12: 3rem;
151
+ --space-14: 3.5rem;
152
+ --space-16: 4rem;
153
+ --space-18: 4.5rem;
154
+ --space-20: 5rem;
155
+ --space-22: 5.5rem;
156
+ --space-24: 6rem;
157
+ --space-30: 7.5rem;
158
+
159
+ /* ═══════════════════════════════════════════════════════════════
160
+ SIZE TOKENS
161
+ ═══════════════════════════════════════════════════════════════ */
162
+
163
+ --size-prose: 65ch;
164
+ --size-prose-wide: 75ch;
165
+ --size-prose-narrow: 55ch;
166
+ --size-container-sm: 640px;
167
+ --size-container-md: 768px;
168
+ --size-container-lg: 1024px;
169
+ --size-container-xl: 1280px;
170
+
171
+ /* ═══════════════════════════════════════════════════════════════
172
+ BORDER TOKENS
173
+ ═══════════════════════════════════════════════════════════════ */
174
+
175
+ /* Border Radius */
176
+ --radius-none: 0;
177
+ --radius-sm: 0.125rem;
178
+ --radius: 0.25rem;
179
+ --radius-md: 0.375rem;
180
+ --radius-lg: 0.5rem;
181
+ --radius-grove: 0.75rem;
182
+ --radius-grove-lg: 1rem;
183
+ --radius-grove-xl: 1.5rem;
184
+ --radius-full: 9999px;
185
+
186
+ /* Border Width */
187
+ --border-width: 1px;
188
+ --border-width-2: 2px;
189
+ --border-width-4: 4px;
190
+
191
+ /* ═══════════════════════════════════════════════════════════════
192
+ SHADOW TOKENS
193
+ ═══════════════════════════════════════════════════════════════ */
194
+
195
+ --shadow-grove-sm: 0 1px 2px 0 rgb(61 41 20 / 0.05);
196
+ --shadow-grove: 0 2px 8px -2px rgb(61 41 20 / 0.08), 0 1px 2px -1px rgb(61 41 20 / 0.04);
197
+ --shadow-grove-md: 0 4px 12px -4px rgb(61 41 20 / 0.1), 0 2px 4px -2px rgb(61 41 20 / 0.05);
198
+ --shadow-grove-lg: 0 8px 24px -8px rgb(61 41 20 / 0.12), 0 4px 8px -4px rgb(61 41 20 / 0.06);
199
+ --shadow-grove-xl: 0 16px 48px -16px rgb(61 41 20 / 0.15), 0 8px 16px -8px rgb(61 41 20 / 0.08);
200
+ --shadow-grove-inner: inset 0 1px 2px 0 rgb(61 41 20 / 0.05);
201
+ --shadow-grove-glow: 0 0 0 3px rgb(22 163 74 / 0.15);
202
+
203
+ /* Focus Shadows */
204
+ --shadow-focus: 0 0 0 2px var(--cream), 0 0 0 4px var(--grove-500);
205
+ --shadow-focus-error: 0 0 0 2px var(--cream), 0 0 0 4px var(--color-error);
206
+
207
+ /* ═══════════════════════════════════════════════════════════════
208
+ ANIMATION TOKENS
209
+ ═══════════════════════════════════════════════════════════════ */
210
+
211
+ /* Durations */
212
+ --duration-fast: 150ms;
213
+ --duration: 200ms;
214
+ --duration-slow: 300ms;
215
+ --duration-slower: 500ms;
216
+
217
+ /* Easing */
218
+ --ease-default: cubic-bezier(0.4, 0, 0.2, 1);
219
+ --ease-in: cubic-bezier(0.4, 0, 1, 1);
220
+ --ease-out: cubic-bezier(0, 0, 0.2, 1);
221
+ --ease-in-out: cubic-bezier(0.4, 0, 0.2, 1);
222
+ --ease-bounce: cubic-bezier(0.68, -0.55, 0.265, 1.55);
223
+ --ease-soft: cubic-bezier(0.25, 0.1, 0.25, 1);
224
+
225
+ /* ═══════════════════════════════════════════════════════════════
226
+ Z-INDEX TOKENS
227
+ ═══════════════════════════════════════════════════════════════ */
228
+
229
+ --z-dropdown: 50;
230
+ --z-sticky: 100;
231
+ --z-fixed: 200;
232
+ --z-modal-backdrop: 400;
233
+ --z-modal: 500;
234
+ --z-popover: 600;
235
+ --z-tooltip: 700;
236
+ --z-toast: 800;
237
+ }
238
+
239
+ /* ═══════════════════════════════════════════════════════════════
240
+ DARK MODE TOKENS (Nature at Night)
241
+ ═══════════════════════════════════════════════════════════════ */
242
+
243
+ :root[data-theme='dark'],
244
+ .dark {
245
+ --cream: #1a1915;
246
+ --cream-50: #1a1915;
247
+ --cream-100: #252320;
248
+ --cream-200: #32302b;
249
+ --cream-300: #43403a;
250
+ --cream-400: #5c584f;
251
+ --cream-500: #777267;
252
+
253
+ --bark: #f5f2ea;
254
+ --bark-50: #2a1b0d;
255
+ --bark-100: #3d2914;
256
+ --bark-200: #5a3f30;
257
+ --bark-300: #6f4d39;
258
+ --bark-400: #8a6347;
259
+ --bark-500: #a57c5a;
260
+ --bark-600: #b69575;
261
+ --bark-700: #ccb59c;
262
+ --bark-800: #e0d2c2;
263
+ --bark-900: #f0e9e1;
264
+ --bark-950: #f9f6f3;
265
+
266
+ --color-background: var(--cream);
267
+ --color-foreground: var(--bark);
268
+ --color-muted: var(--cream-300);
269
+ --color-muted-foreground: var(--bark-300);
270
+ --color-border: var(--cream-300);
271
+ --color-border-strong: var(--cream-400);
272
+ --color-input: var(--cream-300);
273
+
274
+ --color-accent: var(--grove-900);
275
+ --color-accent-foreground: var(--grove-200);
276
+
277
+ --shadow-grove-sm: 0 1px 2px 0 rgb(0 0 0 / 0.2);
278
+ --shadow-grove: 0 2px 8px -2px rgb(0 0 0 / 0.3), 0 1px 2px -1px rgb(0 0 0 / 0.2);
279
+ --shadow-grove-md: 0 4px 12px -4px rgb(0 0 0 / 0.4), 0 2px 4px -2px rgb(0 0 0 / 0.25);
280
+ --shadow-grove-lg: 0 8px 24px -8px rgb(0 0 0 / 0.5), 0 4px 8px -4px rgb(0 0 0 / 0.3);
281
+ --shadow-grove-xl: 0 16px 48px -16px rgb(0 0 0 / 0.6), 0 8px 16px -8px rgb(0 0 0 / 0.4);
282
+ }
283
+
284
+ /* ═══════════════════════════════════════════════════════════════
285
+ KEYFRAME ANIMATIONS
286
+ ═══════════════════════════════════════════════════════════════ */
287
+
288
+ @keyframes grove-fade-in {
289
+ from { opacity: 0; }
290
+ to { opacity: 1; }
291
+ }
292
+
293
+ @keyframes grove-fade-out {
294
+ from { opacity: 1; }
295
+ to { opacity: 0; }
296
+ }
297
+
298
+ @keyframes grove-fade-in-up {
299
+ from {
300
+ opacity: 0;
301
+ transform: translateY(8px);
302
+ }
303
+ to {
304
+ opacity: 1;
305
+ transform: translateY(0);
306
+ }
307
+ }
308
+
309
+ @keyframes grove-fade-in-down {
310
+ from {
311
+ opacity: 0;
312
+ transform: translateY(-8px);
313
+ }
314
+ to {
315
+ opacity: 1;
316
+ transform: translateY(0);
317
+ }
318
+ }
319
+
320
+ @keyframes grove-grow {
321
+ from {
322
+ opacity: 0;
323
+ transform: scale(0.95);
324
+ }
325
+ to {
326
+ opacity: 1;
327
+ transform: scale(1);
328
+ }
329
+ }
330
+
331
+ @keyframes grove-shrink {
332
+ from {
333
+ opacity: 1;
334
+ transform: scale(1);
335
+ }
336
+ to {
337
+ opacity: 0;
338
+ transform: scale(0.95);
339
+ }
340
+ }
341
+
342
+ @keyframes grove-bloom {
343
+ 0% {
344
+ opacity: 0;
345
+ transform: scale(0.8);
346
+ }
347
+ 50% {
348
+ transform: scale(1.02);
349
+ }
350
+ 100% {
351
+ opacity: 1;
352
+ transform: scale(1);
353
+ }
354
+ }
355
+
356
+ @keyframes grove-pulse-soft {
357
+ 0%, 100% { opacity: 1; }
358
+ 50% { opacity: 0.7; }
359
+ }
360
+
361
+ @keyframes grove-leaf-fall {
362
+ 0% {
363
+ transform: translateY(-10px) rotate(0deg);
364
+ opacity: 0;
365
+ }
366
+ 10% { opacity: 1; }
367
+ 90% { opacity: 1; }
368
+ 100% {
369
+ transform: translateY(100px) rotate(45deg);
370
+ opacity: 0;
371
+ }
372
+ }
373
+
374
+ @keyframes grove-leaf-sway {
375
+ 0%, 100% { transform: rotate(-3deg); }
376
+ 50% { transform: rotate(3deg); }
377
+ }
378
+
379
+ @keyframes grove-spin-organic {
380
+ 0% { transform: rotate(0deg); }
381
+ 25% { transform: rotate(100deg); }
382
+ 50% { transform: rotate(180deg); }
383
+ 75% { transform: rotate(260deg); }
384
+ 100% { transform: rotate(360deg); }
385
+ }
386
+
387
+ @keyframes grove-slide-in-right {
388
+ from {
389
+ opacity: 0;
390
+ transform: translateX(16px);
391
+ }
392
+ to {
393
+ opacity: 1;
394
+ transform: translateX(0);
395
+ }
396
+ }
397
+
398
+ @keyframes grove-slide-in-left {
399
+ from {
400
+ opacity: 0;
401
+ transform: translateX(-16px);
402
+ }
403
+ to {
404
+ opacity: 1;
405
+ transform: translateX(0);
406
+ }
407
+ }
408
+
409
+ @keyframes grove-slide-in-up {
410
+ from {
411
+ opacity: 0;
412
+ transform: translateY(16px);
413
+ }
414
+ to {
415
+ opacity: 1;
416
+ transform: translateY(0);
417
+ }
418
+ }
419
+
420
+ @keyframes grove-slide-in-down {
421
+ from {
422
+ opacity: 0;
423
+ transform: translateY(-16px);
424
+ }
425
+ to {
426
+ opacity: 1;
427
+ transform: translateY(0);
428
+ }
429
+ }