@grove-dev/astro 0.3.1 → 0.3.4

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 (163) hide show
  1. package/README.md +9 -75
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/index.js +11 -1
  4. package/dist/index.js.map +1 -1
  5. package/dist/lib/display.d.ts +1 -26
  6. package/dist/lib/display.d.ts.map +1 -1
  7. package/dist/lib/display.js +1 -103
  8. package/dist/lib/display.js.map +1 -1
  9. package/dist/lib/format.d.ts +1 -28
  10. package/dist/lib/format.d.ts.map +1 -1
  11. package/dist/lib/format.js +1 -71
  12. package/dist/lib/format.js.map +1 -1
  13. package/dist/lib/lenses.d.ts +1 -57
  14. package/dist/lib/lenses.d.ts.map +1 -1
  15. package/dist/lib/lenses.js +1 -198
  16. package/dist/lib/lenses.js.map +1 -1
  17. package/dist/lib/repo.d.ts +1 -19
  18. package/dist/lib/repo.d.ts.map +1 -1
  19. package/dist/lib/repo.js +1 -30
  20. package/dist/lib/repo.js.map +1 -1
  21. package/dist/lib/scores.d.ts +1 -36
  22. package/dist/lib/scores.d.ts.map +1 -1
  23. package/dist/lib/scores.js +1 -75
  24. package/dist/lib/scores.js.map +1 -1
  25. package/dist/lib/search.d.ts +1 -113
  26. package/dist/lib/search.d.ts.map +1 -1
  27. package/dist/lib/search.js +1 -379
  28. package/dist/lib/search.js.map +1 -1
  29. package/dist/lib/taxonomy-counts.d.ts +1 -10
  30. package/dist/lib/taxonomy-counts.d.ts.map +1 -1
  31. package/dist/lib/taxonomy-counts.js +1 -21
  32. package/dist/lib/taxonomy-counts.js.map +1 -1
  33. package/package.json +23 -11
  34. package/src/components/ContributorsGrid.astro +3 -3
  35. package/src/components/CurationGrid.astro +2 -2
  36. package/src/components/DirectoryIndexClient.astro +240 -0
  37. package/src/components/FilterGroupMenu.astro +8 -4
  38. package/src/components/FinalCta.astro +41 -0
  39. package/src/components/Hero.astro +15 -18
  40. package/src/components/Icon.astro +35 -7
  41. package/src/components/IndexRow.astro +2 -2
  42. package/src/components/ItemCard.astro +2 -7
  43. package/src/components/RefinePanel.astro +7 -7
  44. package/src/components/SmartLensTabs.astro +9 -5
  45. package/src/components/StackGrid.astro +1 -1
  46. package/src/components/SubmissionClient.astro +133 -0
  47. package/src/index.ts +11 -1
  48. package/src/layouts/BaseLayout.astro +30 -8
  49. package/src/layouts/Footer.astro +25 -56
  50. package/src/layouts/Header.astro +33 -15
  51. package/src/layouts/ThemeToggle.astro +7 -3
  52. package/src/lib/display.ts +1 -111
  53. package/src/lib/format.ts +1 -64
  54. package/src/lib/lenses.ts +1 -220
  55. package/src/lib/repo.ts +1 -32
  56. package/src/lib/scores.ts +1 -90
  57. package/src/lib/search.ts +1 -418
  58. package/src/lib/taxonomy-counts.ts +1 -26
  59. package/{templates/default/src/data/records.ts → src/server/directory.ts} +12 -8
  60. package/src/server/index.ts +2 -0
  61. package/src/server/models.ts +436 -0
  62. package/dist/template-routes.test.d.ts +0 -2
  63. package/dist/template-routes.test.d.ts.map +0 -1
  64. package/dist/template-routes.test.js +0 -63
  65. package/dist/template-routes.test.js.map +0 -1
  66. package/dist/theme.test.d.ts +0 -2
  67. package/dist/theme.test.d.ts.map +0 -1
  68. package/dist/theme.test.js +0 -60
  69. package/dist/theme.test.js.map +0 -1
  70. package/src/template-routes.test.ts +0 -103
  71. package/src/theme.test.ts +0 -76
  72. package/templates/default/.github/ISSUE_TEMPLATE/bug_report.md +0 -33
  73. package/templates/default/.github/ISSUE_TEMPLATE/feature_request.md +0 -20
  74. package/templates/default/.github/ISSUE_TEMPLATE/record_submission.md +0 -48
  75. package/templates/default/.github/pull_request_template.md +0 -27
  76. package/templates/default/.github/workflows/build.yml +0 -53
  77. package/templates/default/.github/workflows/cleanup-stale-records.yml +0 -46
  78. package/templates/default/.github/workflows/daily-refresh.yml +0 -51
  79. package/templates/default/.github/workflows/sync-contributors.yml +0 -51
  80. package/templates/default/.github/workflows/sync-github-metadata.yml +0 -56
  81. package/templates/default/.github/workflows/validate-data.yml +0 -33
  82. package/templates/default/astro.config.mjs +0 -25
  83. package/templates/default/content/pages/about.md +0 -66
  84. package/templates/default/content/pages/methodology.md +0 -103
  85. package/templates/default/data/records/.gitkeep +0 -0
  86. package/templates/default/data/records/coolify.yml +0 -46
  87. package/templates/default/data/records/gitea.yml +0 -46
  88. package/templates/default/data/records/hoppscotch.yml +0 -47
  89. package/templates/default/data/records/inventree.yml +0 -47
  90. package/templates/default/data/records/label-studio.yml +0 -46
  91. package/templates/default/data/records/logseq.yml +0 -48
  92. package/templates/default/data/records/private-gpt.yml +0 -47
  93. package/templates/default/data/records/wakapi.yml +0 -44
  94. package/templates/default/data/taxonomy/categories.yml +0 -47
  95. package/templates/default/data/taxonomy/distribution-channels.yml +0 -43
  96. package/templates/default/data/taxonomy/platforms.yml +0 -27
  97. package/templates/default/data/taxonomy/stacks.yml +0 -41
  98. package/templates/default/grove.config.ts +0 -36
  99. package/templates/default/package.json +0 -43
  100. package/templates/default/public/icons/platforms/android.svg +0 -1
  101. package/templates/default/public/icons/platforms/apple-dark.svg +0 -1
  102. package/templates/default/public/icons/platforms/apple-light.svg +0 -1
  103. package/templates/default/public/icons/platforms/chrome.svg +0 -1
  104. package/templates/default/public/icons/platforms/chromeos.svg +0 -5
  105. package/templates/default/public/icons/platforms/desktop.svg +0 -4
  106. package/templates/default/public/icons/platforms/embedded.svg +0 -5
  107. package/templates/default/public/icons/platforms/ios.svg +0 -1
  108. package/templates/default/public/icons/platforms/linux.svg +0 -1
  109. package/templates/default/public/icons/platforms/macos.svg +0 -1
  110. package/templates/default/public/icons/platforms/ubuntu.svg +0 -1
  111. package/templates/default/public/icons/platforms/web.svg +0 -5
  112. package/templates/default/public/icons/platforms/windows.svg +0 -6
  113. package/templates/default/public/icons/stacks/android.svg +0 -1
  114. package/templates/default/public/icons/stacks/apple-dark.svg +0 -1
  115. package/templates/default/public/icons/stacks/apple-light.svg +0 -1
  116. package/templates/default/public/icons/stacks/bun.svg +0 -1
  117. package/templates/default/public/icons/stacks/capacitor.svg +0 -14
  118. package/templates/default/public/icons/stacks/clojure.svg +0 -1
  119. package/templates/default/public/icons/stacks/clojurescript.svg +0 -1
  120. package/templates/default/public/icons/stacks/dart.svg +0 -1
  121. package/templates/default/public/icons/stacks/deno.svg +0 -1
  122. package/templates/default/public/icons/stacks/django.svg +0 -1
  123. package/templates/default/public/icons/stacks/docker.svg +0 -1
  124. package/templates/default/public/icons/stacks/firebase.svg +0 -1
  125. package/templates/default/public/icons/stacks/flutter.svg +0 -1
  126. package/templates/default/public/icons/stacks/go.svg +0 -1
  127. package/templates/default/public/icons/stacks/graphql.svg +0 -1
  128. package/templates/default/public/icons/stacks/ionic.svg +0 -4
  129. package/templates/default/public/icons/stacks/java.svg +0 -1
  130. package/templates/default/public/icons/stacks/javascript.svg +0 -1
  131. package/templates/default/public/icons/stacks/kotlin.svg +0 -1
  132. package/templates/default/public/icons/stacks/llm.svg +0 -1
  133. package/templates/default/public/icons/stacks/mongodb.svg +0 -1
  134. package/templates/default/public/icons/stacks/node.js.svg +0 -1
  135. package/templates/default/public/icons/stacks/nodejs.svg +0 -1
  136. package/templates/default/public/icons/stacks/python.svg +0 -1
  137. package/templates/default/public/icons/stacks/rag.svg +0 -7
  138. package/templates/default/public/icons/stacks/react-native.svg +0 -1
  139. package/templates/default/public/icons/stacks/react.svg +0 -1
  140. package/templates/default/public/icons/stacks/rust.svg +0 -1
  141. package/templates/default/public/icons/stacks/solidity.svg +0 -1
  142. package/templates/default/public/icons/stacks/sveltekit.svg +0 -1
  143. package/templates/default/public/icons/stacks/swift.svg +0 -1
  144. package/templates/default/public/icons/stacks/tensorflow.svg +0 -1
  145. package/templates/default/public/icons/stacks/typescript.svg +0 -1
  146. package/templates/default/public/icons/stacks/vue.svg +0 -1
  147. package/templates/default/public/llms-full.txt +0 -83
  148. package/templates/default/public/llms.txt +0 -11
  149. package/templates/default/public/og-image.svg +0 -48
  150. package/templates/default/public/robots.txt +0 -53
  151. package/templates/default/public/sitemap.xml +0 -63
  152. package/templates/default/src/pages/404.astro +0 -64
  153. package/templates/default/src/pages/[slug]/[recordSlug].astro +0 -691
  154. package/templates/default/src/pages/[slug]/index.astro +0 -482
  155. package/templates/default/src/pages/about.astro +0 -189
  156. package/templates/default/src/pages/apps/[recordSlug].astro +0 -34
  157. package/templates/default/src/pages/contributors.astro +0 -175
  158. package/templates/default/src/pages/index.astro +0 -233
  159. package/templates/default/src/pages/sitemap.xml.ts +0 -89
  160. package/templates/default/src/pages/submit.astro +0 -281
  161. package/templates/default/src/styles/global.css +0 -33
  162. package/templates/default/tsconfig.json +0 -9
  163. package/templates/default/wrangler.jsonc +0 -28
@@ -1,53 +0,0 @@
1
- # robots.txt for open-curated.dev
2
- #
3
- # Search engines, AI crawlers, and link preview bots are all welcome.
4
- # The directory is intended to be fully indexable.
5
- #
6
- # The /submit path is a thin wrapper that POSTs to GitHub Issues —
7
- # it carries no indexable content of its own, so we disallow it here
8
- # (the page also serves `noindex,nofollow` as a belt-and-suspenders).
9
-
10
- User-agent: *
11
- Allow: /
12
- Disallow: /submit
13
-
14
- # LLM/AI crawlers — explicitly welcome. The curated per-app metadata
15
- # is the primary audience for the /llms.txt and /llms-full.txt files.
16
- User-agent: GPTBot
17
- Allow: /
18
-
19
- User-agent: ChatGPT-User
20
- Allow: /
21
-
22
- User-agent: ClaudeBot
23
- Allow: /
24
-
25
- User-agent: Claude-Web
26
- Allow: /
27
-
28
- User-agent: anthropic-ai
29
- Allow: /
30
-
31
- User-agent: PerplexityBot
32
- Allow: /
33
-
34
- User-agent: Google-Extended
35
- Allow: /
36
-
37
- User-agent: Applebot-Extended
38
- Allow: /
39
-
40
- User-agent: cohere-ai
41
- Allow: /
42
-
43
- User-agent: CCBot
44
- Allow: /
45
-
46
- User-agent: Amazonbot
47
- Allow: /
48
-
49
- # Sitemaps
50
- Sitemap: https://example.com/sitemap.xml
51
-
52
- # LLM context
53
- LLM-Content: https://example.com/llms.txt
@@ -1,63 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
3
- <url>
4
- <loc>https://example.com/</loc>
5
- <lastmod>2026-07-01T16:50:32.236Z</lastmod>
6
- <changefreq>daily</changefreq>
7
- <priority>1.0</priority>
8
- </url>
9
- <url>
10
- <loc>https://example.com/projects</loc>
11
- <lastmod>2026-07-01T16:50:32.236Z</lastmod>
12
- <changefreq>daily</changefreq>
13
- <priority>0.9</priority>
14
- </url>
15
- <url>
16
- <loc>https://example.com/projects/coolify</loc>
17
- <lastmod>2026-07-01T16:50:32.236Z</lastmod>
18
- <changefreq>weekly</changefreq>
19
- <priority>0.7</priority>
20
- </url>
21
- <url>
22
- <loc>https://example.com/projects/gitea</loc>
23
- <lastmod>2026-07-01T16:50:32.236Z</lastmod>
24
- <changefreq>weekly</changefreq>
25
- <priority>0.7</priority>
26
- </url>
27
- <url>
28
- <loc>https://example.com/projects/hoppscotch</loc>
29
- <lastmod>2026-07-01T16:50:32.236Z</lastmod>
30
- <changefreq>weekly</changefreq>
31
- <priority>0.7</priority>
32
- </url>
33
- <url>
34
- <loc>https://example.com/projects/inventree</loc>
35
- <lastmod>2026-07-01T16:50:32.236Z</lastmod>
36
- <changefreq>weekly</changefreq>
37
- <priority>0.7</priority>
38
- </url>
39
- <url>
40
- <loc>https://example.com/projects/label-studio</loc>
41
- <lastmod>2026-07-01T16:50:32.236Z</lastmod>
42
- <changefreq>weekly</changefreq>
43
- <priority>0.7</priority>
44
- </url>
45
- <url>
46
- <loc>https://example.com/projects/logseq</loc>
47
- <lastmod>2026-07-01T16:50:32.236Z</lastmod>
48
- <changefreq>weekly</changefreq>
49
- <priority>0.7</priority>
50
- </url>
51
- <url>
52
- <loc>https://example.com/projects/private-gpt</loc>
53
- <lastmod>2026-07-01T16:50:32.236Z</lastmod>
54
- <changefreq>weekly</changefreq>
55
- <priority>0.7</priority>
56
- </url>
57
- <url>
58
- <loc>https://example.com/projects/wakapi</loc>
59
- <lastmod>2026-07-01T16:50:32.236Z</lastmod>
60
- <changefreq>weekly</changefreq>
61
- <priority>0.7</priority>
62
- </url>
63
- </urlset>
@@ -1,64 +0,0 @@
1
- ---
2
- /**
3
- * 404 — generic fallback page.
4
- *
5
- * Renders the normal shell (header / footer / theme toggle) with a
6
- * short message and a search form pointing at the list page. Stays
7
- * on-brand regardless of blueprint.
8
- */
9
- import siteConfig from "../../data/generated/site-config.json";
10
- import { indexSlug } from "../data/records";
11
- import BaseLayout from "@grove-dev/astro/layouts/BaseLayout.astro";
12
-
13
- const slug = indexSlug();
14
- const title = `Not found — ${siteConfig.name}`;
15
- const description = `That page doesn't exist on ${siteConfig.name}.`;
16
- ---
17
-
18
- <BaseLayout
19
- title={title}
20
- description={description}
21
- site={siteConfig}
22
- noindex
23
- >
24
- <section class="py-12 sm:py-16">
25
- <div class="mx-auto w-full max-w-container px-5 py-20 sm:px-7 sm:py-28">
26
- <span class="text-2xs font-medium uppercase tracking-wider text-ink-500 dark:text-ink-400">
27
- 404
28
- </span>
29
- <h1 class="m-0 mt-2 text-[2.25rem] sm:text-[3rem] font-semibold leading-[1.05] tracking-tight text-ink-900 dark:text-ink-100">
30
- Page not found
31
- </h1>
32
- <p class="m-0 mt-4 max-w-xl text-lg leading-relaxed text-ink-700 dark:text-ink-200">
33
- The page you're looking for doesn't exist on {siteConfig.name}.
34
- It may have been moved, renamed, or never existed.
35
- </p>
36
-
37
- <form
38
- class="mt-8 flex max-w-xl flex-col gap-2 sm:flex-row sm:items-center"
39
- role="search"
40
- action={`/${slug}`}
41
- method="get"
42
- >
43
- <label class="relative flex-1">
44
- <span class="sr-only">Search</span>
45
- <input
46
- type="search"
47
- name="q"
48
- placeholder={`Search ${slug}...`}
49
- autocomplete="off"
50
- class="w-full rounded-md border border-ink-200 bg-white py-2.5 px-3 text-sm placeholder:text-ink-400 focus:border-ink-900 focus:outline-none focus:ring-2 focus:ring-ink-900/10 dark:border-ink-800 dark:bg-ink-950 dark:text-ink-100"
51
- />
52
- </label>
53
- <button type="submit" class="inline-flex h-8 cursor-pointer items-center justify-center gap-1.5 rounded-[var(--radius)] border border-transparent px-3 text-sm font-medium leading-none no-underline outline-none transition-colors focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/35 bg-primary text-primary-foreground hover:bg-primary/90">
54
- Search
55
- </button>
56
- </form>
57
-
58
- <div class="mt-6 flex flex-wrap gap-3">
59
- <a href="/" class="inline-flex h-8 cursor-pointer items-center justify-center gap-1.5 rounded-[var(--radius)] border border-transparent px-3 text-sm font-medium leading-none no-underline outline-none transition-colors focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/35 bg-primary text-primary-foreground hover:bg-primary/90">Back to home</a>
60
- <a href={`/${slug}`} class="inline-flex h-8 cursor-pointer items-center justify-center gap-1.5 rounded-[var(--radius)] border border-transparent px-3 text-sm font-medium leading-none no-underline outline-none transition-colors focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/35 border-border bg-secondary text-foreground hover:bg-accent">Browse {slug}</a>
61
- </div>
62
- </div>
63
- </section>
64
- </BaseLayout>