@grove-dev/astro 0.1.5 → 0.2.5

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 (148) hide show
  1. package/LICENSE +21 -0
  2. package/dist/index.d.ts +4 -25
  3. package/dist/index.d.ts.map +1 -1
  4. package/dist/index.js +56 -22
  5. package/dist/index.js.map +1 -1
  6. package/dist/layouts/index.d.ts +25 -0
  7. package/dist/layouts/index.d.ts.map +1 -0
  8. package/dist/layouts/index.js +25 -0
  9. package/dist/layouts/index.js.map +1 -0
  10. package/dist/lib/display.d.ts +33 -0
  11. package/dist/lib/display.d.ts.map +1 -0
  12. package/dist/lib/display.js +104 -0
  13. package/dist/lib/display.js.map +1 -0
  14. package/dist/lib/format.d.ts +30 -0
  15. package/dist/lib/format.d.ts.map +1 -0
  16. package/dist/lib/format.js +73 -0
  17. package/dist/lib/format.js.map +1 -0
  18. package/dist/lib/index.d.ts +26 -0
  19. package/dist/lib/index.d.ts.map +1 -0
  20. package/dist/lib/index.js +26 -0
  21. package/dist/lib/index.js.map +1 -0
  22. package/dist/lib/lenses.d.ts +96 -0
  23. package/dist/lib/lenses.d.ts.map +1 -0
  24. package/dist/lib/lenses.js +181 -0
  25. package/dist/lib/lenses.js.map +1 -0
  26. package/dist/lib/repo.d.ts +30 -0
  27. package/dist/lib/repo.d.ts.map +1 -0
  28. package/dist/lib/repo.js +44 -0
  29. package/dist/lib/repo.js.map +1 -0
  30. package/dist/lib/scores.d.ts +38 -0
  31. package/dist/lib/scores.d.ts.map +1 -0
  32. package/dist/lib/scores.js +83 -0
  33. package/dist/lib/scores.js.map +1 -0
  34. package/dist/lib/search.d.ts +199 -0
  35. package/dist/lib/search.d.ts.map +1 -0
  36. package/dist/lib/search.js +357 -0
  37. package/dist/lib/search.js.map +1 -0
  38. package/dist/lib/taxonomy-counts.d.ts +25 -0
  39. package/dist/lib/taxonomy-counts.d.ts.map +1 -0
  40. package/dist/lib/taxonomy-counts.js +41 -0
  41. package/dist/lib/taxonomy-counts.js.map +1 -0
  42. package/package.json +7 -7
  43. package/src/components/AppsIndexRow.astro +204 -0
  44. package/src/components/AppsPagination.astro +126 -0
  45. package/src/components/CategoryGrid.astro +86 -17
  46. package/src/components/ContributorsGrid.astro +149 -0
  47. package/src/components/DecisionRow.astro +89 -0
  48. package/src/components/ExploreByCategory.astro +67 -0
  49. package/src/components/ExploreByStack.astro +72 -0
  50. package/src/components/Hero.astro +246 -0
  51. package/src/components/Icon.astro +223 -0
  52. package/src/components/ItemCard.astro +306 -30
  53. package/src/components/MinimalAbout.astro +82 -0
  54. package/src/components/OriginalCollection.astro +116 -0
  55. package/src/components/RecordSection.astro +88 -0
  56. package/src/components/RefinePanel.astro +197 -0
  57. package/src/components/ScoreBars.astro +92 -22
  58. package/src/components/SmartLensTabs.astro +71 -0
  59. package/src/components/StackGrid.astro +132 -0
  60. package/src/components/WhyThisExists.astro +116 -0
  61. package/src/index.ts +61 -14
  62. package/src/layouts/BaseLayout.astro +227 -15
  63. package/src/layouts/Container.astro +57 -0
  64. package/src/layouts/Footer.astro +235 -0
  65. package/src/layouts/Header.astro +159 -0
  66. package/src/layouts/SectionHeader.astro +58 -0
  67. package/{templates/default/src/components/layout → src/layouts}/Seo.astro +62 -38
  68. package/src/layouts/ThemeToggle.astro +110 -0
  69. package/src/layouts/astro-shim.d.ts +29 -0
  70. package/src/layouts/index.ts +24 -0
  71. package/src/lib/display.ts +118 -0
  72. package/src/lib/format.ts +65 -0
  73. package/src/lib/index.ts +26 -0
  74. package/src/lib/lenses.ts +241 -0
  75. package/src/lib/repo.ts +44 -0
  76. package/src/lib/scores.ts +94 -0
  77. package/src/lib/search.ts +481 -0
  78. package/src/lib/taxonomy-counts.ts +60 -0
  79. package/src/styles.css +366 -638
  80. package/templates/default/astro.config.mjs +8 -6
  81. package/templates/default/content/pages/about.md +66 -0
  82. package/templates/default/content/pages/methodology.md +103 -0
  83. package/templates/default/data/generated/records.full.json +8 -0
  84. package/templates/default/data/generated/records.index.json +7 -0
  85. package/templates/default/data/generated/records.json +8 -0
  86. package/templates/default/data/generated/site-config.json +31 -0
  87. package/templates/default/data/records/.gitkeep +0 -0
  88. package/templates/default/grove.config.ts +36 -0
  89. package/templates/default/package.json +6 -5
  90. package/templates/default/public/llms-full.txt +14 -0
  91. package/templates/default/public/llms.txt +11 -0
  92. package/templates/default/src/components/layout/BaseLayout.astro +10 -57
  93. package/templates/default/src/components/layout/Footer.astro +16 -134
  94. package/templates/default/src/components/layout/Header.astro +25 -126
  95. package/templates/default/src/data/records.ts +193 -0
  96. package/templates/default/src/lib/markdown.ts +171 -0
  97. package/templates/default/src/pages/about.astro +95 -429
  98. package/templates/default/src/pages/index.astro +263 -61
  99. package/templates/default/src/pages/projects/[slug].astro +480 -0
  100. package/templates/default/src/pages/projects/index.astro +193 -0
  101. package/templates/default/src/pages/sitemap.xml.ts +73 -61
  102. package/templates/default/src/pages/submit.astro +122 -411
  103. package/templates/default/src/styles/global.css +42 -68
  104. package/src/components/ActiveFilterChips.astro +0 -20
  105. package/src/components/DirectoryFilters.astro +0 -100
  106. package/src/components/DirectoryHero.astro +0 -32
  107. package/src/components/HealthBadge.astro +0 -12
  108. package/src/components/LensTabs.astro +0 -26
  109. package/src/components/MethodologyPanel.astro +0 -20
  110. package/src/components/Pagination.astro +0 -24
  111. package/src/components/ProjectDetail.astro +0 -166
  112. package/src/components/SubmitDraft.astro +0 -137
  113. package/templates/default/src/components/AppCard.astro +0 -248
  114. package/templates/default/src/components/AppSection.astro +0 -58
  115. package/templates/default/src/components/AppsIndexRow.astro +0 -230
  116. package/templates/default/src/components/AppsPagination.astro +0 -147
  117. package/templates/default/src/components/CategoryGrid.astro +0 -80
  118. package/templates/default/src/components/ContributorsGrid.astro +0 -105
  119. package/templates/default/src/components/DecisionRow.astro +0 -219
  120. package/templates/default/src/components/ExploreByCategory.astro +0 -74
  121. package/templates/default/src/components/ExploreByStack.astro +0 -102
  122. package/templates/default/src/components/Hero.astro +0 -176
  123. package/templates/default/src/components/MinimalAbout.astro +0 -57
  124. package/templates/default/src/components/OriginalCollection.astro +0 -144
  125. package/templates/default/src/components/RefinePanel.astro +0 -272
  126. package/templates/default/src/components/ScoreBars.astro +0 -72
  127. package/templates/default/src/components/SmartLensTabs.astro +0 -65
  128. package/templates/default/src/components/StackGrid.astro +0 -95
  129. package/templates/default/src/components/WhyThisExists.astro +0 -81
  130. package/templates/default/src/components/icons/Icon.astro +0 -148
  131. package/templates/default/src/components/layout/SectionHeader.astro +0 -42
  132. package/templates/default/src/components/layout/ThemeToggle.astro +0 -97
  133. package/templates/default/src/data/apps.ts +0 -149
  134. package/templates/default/src/data/categories.ts +0 -27
  135. package/templates/default/src/data/config.ts +0 -28
  136. package/templates/default/src/data/contributors.ts +0 -96
  137. package/templates/default/src/data/stacks.ts +0 -47
  138. package/templates/default/src/data/stats.ts +0 -65
  139. package/templates/default/src/data/types.ts +0 -248
  140. package/templates/default/src/lib/apps-search.ts +0 -228
  141. package/templates/default/src/lib/format.ts +0 -36
  142. package/templates/default/src/lib/lenses.ts +0 -98
  143. package/templates/default/src/lib/repo.ts +0 -12
  144. package/templates/default/src/lib/scores.ts +0 -51
  145. package/templates/default/src/lib/taxonomy-counts.ts +0 -31
  146. package/templates/default/src/pages/apps/[slug].astro +0 -709
  147. package/templates/default/src/pages/apps/index.astro +0 -669
  148. package/templates/default/src/pages/contributors.astro +0 -142
@@ -1,142 +0,0 @@
1
- ---
2
- import { siteConfig } from "../data/config";
3
-
4
- // SPDX-License-Identifier: MIT
5
-
6
- /**
7
- * /contributors — full shout-out page. Every contributor is listed
8
- * with avatar, name (if known), and a link to their GitHub
9
- * profile. The page is what the homepage "View all" link points
10
- * to, so visitors can see who has actually shaped the directory
11
- * over time. Order matches the synced list (most active first)
12
- * but the page intentionally avoids leaderboard framing — no
13
- * commit counts, no rank numbering.
14
- */
15
- import BaseLayout from "../components/layout/BaseLayout.astro";
16
- import Container from "../components/layout/Container.astro";
17
- import { contributors as allContributors } from "../data/contributors";
18
-
19
- // `contributors.ts` is already sorted by contributions desc by the
20
- // sync script; the spread + sort is kept only as a defensive copy
21
- // in case the source order ever changes upstream.
22
- const contributors = [...allContributors].sort(
23
- (a, b) => (b.contributions ?? 0) - (a.contributions ?? 0),
24
- );
25
- const total = contributors.length;
26
- const withNames = contributors.filter((c) => c.name).length;
27
-
28
- const title = "Contributors — ${siteConfig.name}";
29
- const description = `Every person who has shaped the ${siteConfig.name} directory. ${total} contributors.`;
30
- ---
31
-
32
- <BaseLayout title={title} description={description}>
33
- <Container>
34
- <div class="py-14 sm:py-20">
35
- <span
36
- class="inline-flex items-center gap-1.5 text-2xs font-medium text-ink-500 dark:text-ink-400"
37
- >
38
- <span
39
- aria-hidden="true"
40
- class="inline-block h-1.5 w-1.5 rounded-full bg-emerald-500"
41
- ></span>
42
- Community · {total} contributors
43
- </span>
44
-
45
- <h1
46
- class="mt-3 text-[2.25rem] sm:text-[2.75rem] md:text-[3rem] font-semibold tracking-[-0.02em] leading-[1.05] text-ink-900 dark:text-ink-100 m-0"
47
- >
48
- Thanks to every contributor.
49
- </h1>
50
-
51
- <p
52
- class="mt-4 text-[0.9375rem] sm:text-[1rem] leading-relaxed text-ink-500 dark:text-ink-400 m-0 max-w-[64ch]"
53
- >
54
- This directory exists because {total} people keep discovering,
55
- submitting, reviewing, curating, and maintaining open-source app
56
- references. Below is the full list.
57
- {withNames > 0 && (
58
- <span class="block mt-1 text-ink-400 dark:text-ink-500">
59
- {withNames} of {total} have a public display name on GitHub; the rest are known by their username.
60
- </span>
61
- )}
62
- </p>
63
-
64
- <ul
65
- class="mt-8 grid list-none grid-cols-1 gap-x-6 gap-y-3 p-0 sm:grid-cols-2 lg:grid-cols-3"
66
- >
67
- {
68
- contributors.map((c) => (
69
- <li
70
- class="flex items-center gap-3 rounded-lg border border-ink-200 bg-white p-3 transition-colors hover:border-ink-300 dark:border-ink-800 dark:bg-ink-950 dark:hover:border-ink-700"
71
- >
72
- <img
73
- src={c.avatarUrl}
74
- alt={`${c.name ?? c.username} avatar`}
75
- loading="lazy"
76
- width="40"
77
- height="40"
78
- class="h-10 w-10 shrink-0 rounded-full border border-ink-200 bg-white object-cover dark:border-ink-800 dark:bg-ink-900"
79
- />
80
- <div class="min-w-0 flex-1">
81
- <a
82
- href={c.profileUrl}
83
- target="_blank"
84
- rel="noopener noreferrer"
85
- class="block truncate text-sm font-medium text-ink-900 hover:underline dark:text-ink-100"
86
- >
87
- {c.name ?? c.username}
88
- </a>
89
- {c.name && (
90
- <div class="mt-0.5 truncate text-2xs text-ink-500 dark:text-ink-400">
91
- @{c.username}
92
- </div>
93
- )}
94
- </div>
95
- <a
96
- href={c.profileUrl}
97
- target="_blank"
98
- rel="noopener noreferrer"
99
- aria-label={`${c.name ?? c.username} on GitHub`}
100
- class="shrink-0 text-ink-400 hover:text-ink-700 dark:text-ink-500 dark:hover:text-ink-200"
101
- >
102
- <svg
103
- viewBox="0 0 16 16"
104
- width="14"
105
- height="14"
106
- aria-hidden="true"
107
- fill="currentColor"
108
- >
109
- <path d="M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38v-1.33c-2.22.48-2.69-1.07-2.69-1.07-.36-.92-.89-1.17-.89-1.17-.73-.5.05-.49.05-.49.8.06 1.23.83 1.23.83.72 1.22 1.87.87 2.33.67.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48v2.19c0 .21.15.46.55.38A8 8 0 0 0 8 0Z" />
110
- </svg>
111
- </a>
112
- </li>
113
- ))
114
- }
115
- </ul>
116
-
117
- <div
118
- class="mt-10 flex flex-wrap items-center gap-x-4 gap-y-2 rounded-lg border border-ink-200 bg-ink-50 p-4 text-sm text-ink-500 dark:border-ink-800 dark:bg-ink-900/40 dark:text-ink-400"
119
- >
120
- <span>
121
- Want to be on this list? Submit an app, fix a typo, or
122
- open a PR — every commit counts.
123
- </span>
124
- <a
125
- href="/submit"
126
- class="font-medium text-ink-700 hover:text-ink-900 dark:text-ink-300 dark:hover:text-ink-100"
127
- >
128
- Submit an app →
129
- </a>
130
- <span aria-hidden="true">·</span>
131
- <a
132
- href="https://github.com/tortuvshin/open-apps/graphs/contributors"
133
- target="_blank"
134
- rel="noopener noreferrer"
135
- class="font-medium text-ink-700 hover:text-ink-900 dark:text-ink-300 dark:hover:text-ink-100"
136
- >
137
- View on GitHub →
138
- </a>
139
- </div>
140
- </div>
141
- </Container>
142
- </BaseLayout>