@grove-dev/astro 0.2.10 → 0.2.14

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 (237) hide show
  1. package/README.md +26 -18
  2. package/dist/lib/display.d.ts +11 -17
  3. package/dist/lib/display.d.ts.map +1 -1
  4. package/dist/lib/display.js +43 -43
  5. package/dist/lib/display.js.map +1 -1
  6. package/dist/lib/format.d.ts +6 -7
  7. package/dist/lib/format.d.ts.map +1 -1
  8. package/dist/lib/format.js +11 -12
  9. package/dist/lib/format.js.map +1 -1
  10. package/dist/lib/lenses.d.ts +35 -73
  11. package/dist/lib/lenses.d.ts.map +1 -1
  12. package/dist/lib/lenses.js +144 -126
  13. package/dist/lib/lenses.js.map +1 -1
  14. package/dist/lib/repo.d.ts +12 -22
  15. package/dist/lib/repo.d.ts.map +1 -1
  16. package/dist/lib/repo.js +13 -25
  17. package/dist/lib/repo.js.map +1 -1
  18. package/dist/lib/scores.d.ts +15 -16
  19. package/dist/lib/scores.d.ts.map +1 -1
  20. package/dist/lib/scores.js +4 -11
  21. package/dist/lib/scores.js.map +1 -1
  22. package/dist/lib/search.d.ts +44 -129
  23. package/dist/lib/search.d.ts.map +1 -1
  24. package/dist/lib/search.js +192 -180
  25. package/dist/lib/search.js.map +1 -1
  26. package/dist/lib/taxonomy-counts.d.ts +7 -21
  27. package/dist/lib/taxonomy-counts.d.ts.map +1 -1
  28. package/dist/lib/taxonomy-counts.js +12 -31
  29. package/dist/lib/taxonomy-counts.js.map +1 -1
  30. package/package.json +4 -4
  31. package/src/components/CategoryGrid.astro +43 -31
  32. package/src/components/ContributorsGrid.astro +3 -3
  33. package/src/components/CurationGrid.astro +41 -0
  34. package/src/components/ExploreByStack.astro +6 -0
  35. package/src/components/FilterGroupMenu.astro +49 -0
  36. package/src/components/FilterOptions.astro +44 -0
  37. package/src/components/Hero.astro +198 -147
  38. package/src/components/Icon.astro +10 -3
  39. package/src/components/IndexRow.astro +75 -0
  40. package/src/components/ItemCard.astro +266 -248
  41. package/src/components/Pagination.astro +63 -0
  42. package/src/components/RecordSection.astro +70 -34
  43. package/src/components/RefinePanel.astro +115 -141
  44. package/src/components/StackGrid.astro +32 -24
  45. package/src/components/WhyThisExists.astro +32 -32
  46. package/src/layouts/BaseLayout.astro +104 -49
  47. package/src/layouts/Container.astro +5 -44
  48. package/src/layouts/Footer.astro +31 -20
  49. package/src/layouts/Header.astro +40 -19
  50. package/src/layouts/SectionHeader.astro +27 -43
  51. package/src/layouts/Seo.astro +38 -56
  52. package/src/layouts/ThemeToggle.astro +35 -48
  53. package/src/lib/display.ts +46 -53
  54. package/src/lib/format.ts +11 -12
  55. package/src/lib/lenses.ts +151 -172
  56. package/src/lib/repo.ts +17 -28
  57. package/src/lib/scores.ts +15 -19
  58. package/src/lib/search.ts +218 -291
  59. package/src/lib/taxonomy-counts.ts +12 -46
  60. package/src/styles.css +209 -1
  61. package/templates/default/.github/ISSUE_TEMPLATE/bug_report.md +33 -0
  62. package/templates/default/.github/ISSUE_TEMPLATE/feature_request.md +20 -0
  63. package/templates/default/.github/ISSUE_TEMPLATE/record_submission.md +48 -0
  64. package/templates/default/.github/pull_request_template.md +27 -0
  65. package/templates/default/.github/workflows/build.yml +55 -0
  66. package/templates/default/.github/workflows/cleanup-stale-records.yml +48 -0
  67. package/templates/default/.github/workflows/daily-refresh.yml +53 -0
  68. package/templates/default/.github/workflows/sync-contributors.yml +53 -0
  69. package/templates/default/.github/workflows/sync-github-metadata.yml +58 -0
  70. package/templates/default/.github/workflows/validate-data.yml +35 -0
  71. package/templates/default/data/records/coolify.yml +46 -0
  72. package/templates/default/data/records/gitea.yml +46 -0
  73. package/templates/default/data/records/hoppscotch.yml +47 -0
  74. package/templates/default/data/records/inventree.yml +47 -0
  75. package/templates/default/data/records/label-studio.yml +46 -0
  76. package/templates/default/data/records/logseq.yml +48 -0
  77. package/templates/default/data/records/private-gpt.yml +47 -0
  78. package/templates/default/data/records/wakapi.yml +44 -0
  79. package/templates/default/data/taxonomy/categories.yml +47 -0
  80. package/templates/default/data/taxonomy/distribution-channels.yml +43 -0
  81. package/templates/default/data/taxonomy/platforms.yml +27 -0
  82. package/templates/default/data/taxonomy/stacks.yml +41 -0
  83. package/templates/default/grove.config.ts +1 -1
  84. package/templates/default/package.json +5 -4
  85. package/templates/default/public/icons/stacks/bun.svg +1 -0
  86. package/templates/default/public/icons/stacks/clojure.svg +1 -0
  87. package/templates/default/public/icons/stacks/clojurescript.svg +1 -0
  88. package/templates/default/public/icons/stacks/deno.svg +1 -0
  89. package/templates/default/public/icons/stacks/django.svg +1 -0
  90. package/templates/default/public/icons/stacks/docker.svg +1 -0
  91. package/templates/default/public/icons/stacks/go.svg +1 -0
  92. package/templates/default/public/icons/stacks/llm.svg +1 -0
  93. package/templates/default/public/icons/stacks/node.js.svg +1 -0
  94. package/templates/default/public/icons/stacks/sveltekit.svg +1 -0
  95. package/templates/default/public/icons/stacks/vue.svg +1 -0
  96. package/templates/default/public/llms-full.txt +197 -5
  97. package/templates/default/public/llms.txt +107 -6
  98. package/templates/default/public/sitemap.xml +63 -0
  99. package/templates/default/scripts/build-llms.mjs +123 -0
  100. package/templates/default/scripts/build-records-json.mjs +27 -0
  101. package/templates/default/scripts/build-sitemap.mjs +20 -0
  102. package/templates/default/scripts/cleanup-stale-records.mjs +20 -0
  103. package/templates/default/scripts/enrich-github-metadata.mjs +99 -0
  104. package/templates/default/scripts/fetch-icons.mjs +137 -0
  105. package/templates/default/scripts/migrate-legacy-to-schema-v1.mjs +86 -0
  106. package/templates/default/scripts/parse-legacy-readme.mjs +59 -0
  107. package/templates/default/scripts/refresh-records-activity.mjs +24 -0
  108. package/templates/default/scripts/repair-license-format.mjs +72 -0
  109. package/templates/default/scripts/report-cleanup-candidates.mjs +21 -0
  110. package/templates/default/scripts/seed-from-github.mjs +62 -0
  111. package/templates/default/scripts/sync-contributors.mjs +145 -0
  112. package/templates/default/scripts/sync-github-metadata.mjs +28 -0
  113. package/templates/default/scripts/validate-records.mjs +27 -0
  114. package/templates/default/src/data/records.ts +138 -51
  115. package/templates/default/src/pages/404.astro +64 -0
  116. package/templates/default/src/pages/{projects/[slug].astro → [slug]/[recordSlug].astro} +236 -66
  117. package/templates/default/src/pages/[slug]/index.astro +477 -0
  118. package/templates/default/src/pages/about.astro +165 -82
  119. package/templates/default/src/pages/apps/[recordSlug].astro +33 -0
  120. package/templates/default/src/pages/contributors.astro +184 -0
  121. package/templates/default/src/pages/index.astro +119 -162
  122. package/templates/default/src/pages/submit.astro +276 -114
  123. package/templates/default/wrangler.jsonc +28 -0
  124. package/LICENSE +0 -21
  125. package/src/components/AppsIndexRow.astro +0 -204
  126. package/src/components/AppsPagination.astro +0 -126
  127. package/templates/default/.astro/content.d.ts +0 -155
  128. package/templates/default/.astro/settings.json +0 -5
  129. package/templates/default/.astro/types.d.ts +0 -1
  130. package/templates/default/data/generated/apps.json +0 -1
  131. package/templates/default/data/generated/records.full.json +0 -8
  132. package/templates/default/data/generated/records.index.json +0 -7
  133. package/templates/default/data/generated/records.json +0 -8
  134. package/templates/default/data/generated/repo-stats.json +0 -1
  135. package/templates/default/data/generated/site-config.json +0 -31
  136. package/templates/default/dist/_astro/BaseLayout.Dz_HR-68.css +0 -1
  137. package/templates/default/dist/about/index.html +0 -165
  138. package/templates/default/dist/icons/platforms/android.svg +0 -1
  139. package/templates/default/dist/icons/platforms/apple-dark.svg +0 -1
  140. package/templates/default/dist/icons/platforms/apple-light.svg +0 -1
  141. package/templates/default/dist/icons/platforms/chrome.svg +0 -1
  142. package/templates/default/dist/icons/platforms/chromeos.svg +0 -5
  143. package/templates/default/dist/icons/platforms/desktop.svg +0 -4
  144. package/templates/default/dist/icons/platforms/embedded.svg +0 -5
  145. package/templates/default/dist/icons/platforms/ios.svg +0 -1
  146. package/templates/default/dist/icons/platforms/linux.svg +0 -1
  147. package/templates/default/dist/icons/platforms/macos.svg +0 -1
  148. package/templates/default/dist/icons/platforms/ubuntu.svg +0 -1
  149. package/templates/default/dist/icons/platforms/web.svg +0 -5
  150. package/templates/default/dist/icons/platforms/windows.svg +0 -6
  151. package/templates/default/dist/icons/stacks/android.svg +0 -1
  152. package/templates/default/dist/icons/stacks/apple-dark.svg +0 -1
  153. package/templates/default/dist/icons/stacks/apple-light.svg +0 -1
  154. package/templates/default/dist/icons/stacks/capacitor.svg +0 -14
  155. package/templates/default/dist/icons/stacks/dart.svg +0 -1
  156. package/templates/default/dist/icons/stacks/firebase.svg +0 -1
  157. package/templates/default/dist/icons/stacks/flutter.svg +0 -1
  158. package/templates/default/dist/icons/stacks/graphql.svg +0 -1
  159. package/templates/default/dist/icons/stacks/ionic.svg +0 -4
  160. package/templates/default/dist/icons/stacks/java.svg +0 -1
  161. package/templates/default/dist/icons/stacks/javascript.svg +0 -1
  162. package/templates/default/dist/icons/stacks/kotlin.svg +0 -1
  163. package/templates/default/dist/icons/stacks/mongodb.svg +0 -1
  164. package/templates/default/dist/icons/stacks/nodejs.svg +0 -1
  165. package/templates/default/dist/icons/stacks/python.svg +0 -1
  166. package/templates/default/dist/icons/stacks/react-native.svg +0 -1
  167. package/templates/default/dist/icons/stacks/react.svg +0 -1
  168. package/templates/default/dist/icons/stacks/rust.svg +0 -1
  169. package/templates/default/dist/icons/stacks/solidity.svg +0 -1
  170. package/templates/default/dist/icons/stacks/swift.svg +0 -1
  171. package/templates/default/dist/icons/stacks/tensorflow.svg +0 -1
  172. package/templates/default/dist/icons/stacks/typescript.svg +0 -1
  173. package/templates/default/dist/index.html +0 -55
  174. package/templates/default/dist/llms-full.txt +0 -14
  175. package/templates/default/dist/llms.txt +0 -11
  176. package/templates/default/dist/og-image.svg +0 -48
  177. package/templates/default/dist/projects/index.html +0 -61
  178. package/templates/default/dist/robots.txt +0 -53
  179. package/templates/default/dist/sitemap.xml +0 -21
  180. package/templates/default/dist/submit/index.html +0 -69
  181. package/templates/default/node_modules/.bin/astro +0 -21
  182. package/templates/default/node_modules/.bin/astro-check +0 -21
  183. package/templates/default/node_modules/.bin/grove +0 -21
  184. package/templates/default/node_modules/.bin/jiti +0 -21
  185. package/templates/default/node_modules/.bin/prettier +0 -21
  186. package/templates/default/node_modules/.bin/rollup +0 -21
  187. package/templates/default/node_modules/.bin/tsc +0 -21
  188. package/templates/default/node_modules/.bin/tsserver +0 -21
  189. package/templates/default/node_modules/.bin/tsx +0 -21
  190. package/templates/default/node_modules/.bin/vite +0 -21
  191. package/templates/default/node_modules/.bin/yaml +0 -21
  192. package/templates/default/node_modules/.vite/deps/_metadata.json +0 -79
  193. package/templates/default/node_modules/.vite/deps/astro-KRVZHBC5.js +0 -433
  194. package/templates/default/node_modules/.vite/deps/astro-KRVZHBC5.js.map +0 -7
  195. package/templates/default/node_modules/.vite/deps/astro___aria-query.js +0 -5
  196. package/templates/default/node_modules/.vite/deps/astro___aria-query.js.map +0 -7
  197. package/templates/default/node_modules/.vite/deps/astro___axobject-query.js +0 -5
  198. package/templates/default/node_modules/.vite/deps/astro___axobject-query.js.map +0 -7
  199. package/templates/default/node_modules/.vite/deps/astro___html-escaper.js +0 -9
  200. package/templates/default/node_modules/.vite/deps/astro___html-escaper.js.map +0 -7
  201. package/templates/default/node_modules/.vite/deps/astro_runtime_client_dev-toolbar_entrypoint__js.js +0 -241
  202. package/templates/default/node_modules/.vite/deps/astro_runtime_client_dev-toolbar_entrypoint__js.js.map +0 -7
  203. package/templates/default/node_modules/.vite/deps/audit-GYHQ3ITH.js +0 -1592
  204. package/templates/default/node_modules/.vite/deps/audit-GYHQ3ITH.js.map +0 -7
  205. package/templates/default/node_modules/.vite/deps/chunk-5WRI5ZAA.js +0 -30
  206. package/templates/default/node_modules/.vite/deps/chunk-5WRI5ZAA.js.map +0 -7
  207. package/templates/default/node_modules/.vite/deps/chunk-7P4KIK53.js +0 -186
  208. package/templates/default/node_modules/.vite/deps/chunk-7P4KIK53.js.map +0 -7
  209. package/templates/default/node_modules/.vite/deps/chunk-BQGHFQJH.js +0 -48
  210. package/templates/default/node_modules/.vite/deps/chunk-BQGHFQJH.js.map +0 -7
  211. package/templates/default/node_modules/.vite/deps/chunk-CJCDKWP2.js +0 -6779
  212. package/templates/default/node_modules/.vite/deps/chunk-CJCDKWP2.js.map +0 -7
  213. package/templates/default/node_modules/.vite/deps/chunk-FHJ3XBDE.js +0 -33
  214. package/templates/default/node_modules/.vite/deps/chunk-FHJ3XBDE.js.map +0 -7
  215. package/templates/default/node_modules/.vite/deps/chunk-FQEMNIUQ.js +0 -88
  216. package/templates/default/node_modules/.vite/deps/chunk-FQEMNIUQ.js.map +0 -7
  217. package/templates/default/node_modules/.vite/deps/chunk-HBSVDAQD.js +0 -72
  218. package/templates/default/node_modules/.vite/deps/chunk-HBSVDAQD.js.map +0 -7
  219. package/templates/default/node_modules/.vite/deps/chunk-HDOQ2U3U.js +0 -3757
  220. package/templates/default/node_modules/.vite/deps/chunk-HDOQ2U3U.js.map +0 -7
  221. package/templates/default/node_modules/.vite/deps/chunk-XEBKRCNE.js +0 -54
  222. package/templates/default/node_modules/.vite/deps/chunk-XEBKRCNE.js.map +0 -7
  223. package/templates/default/node_modules/.vite/deps/package.json +0 -3
  224. package/templates/default/node_modules/.vite/deps/settings-C5H4VHXU.js +0 -213
  225. package/templates/default/node_modules/.vite/deps/settings-C5H4VHXU.js.map +0 -7
  226. package/templates/default/node_modules/.vite/deps/toolbar-H5DB6HVP.js +0 -525
  227. package/templates/default/node_modules/.vite/deps/toolbar-H5DB6HVP.js.map +0 -7
  228. package/templates/default/node_modules/.vite/deps/ui-library-JGHU6JE2.js +0 -1020
  229. package/templates/default/node_modules/.vite/deps/ui-library-JGHU6JE2.js.map +0 -7
  230. package/templates/default/node_modules/.vite/deps/xray-EFCQOW4E.js +0 -147
  231. package/templates/default/node_modules/.vite/deps/xray-EFCQOW4E.js.map +0 -7
  232. package/templates/default/src/components/layout/BaseLayout.astro +0 -47
  233. package/templates/default/src/components/layout/Container.astro +0 -18
  234. package/templates/default/src/components/layout/Footer.astro +0 -27
  235. package/templates/default/src/components/layout/Header.astro +0 -43
  236. package/templates/default/src/lib/markdown.ts +0 -171
  237. package/templates/default/src/pages/projects/index.astro +0 -193
@@ -1,241 +0,0 @@
1
- import {
2
- ToolbarAppEventTarget
3
- } from "./chunk-FQEMNIUQ.js";
4
- import {
5
- settings
6
- } from "./chunk-7P4KIK53.js";
7
- import "./chunk-5WRI5ZAA.js";
8
-
9
- // ../../../../node_modules/.pnpm/astro@6.4.5_@types+node@25.9.2_jiti@2.7.0_lightningcss@1.32.0_rollup@4.61.1_tsx@4.22.4_yaml@2.9.0/node_modules/astro/dist/runtime/client/dev-toolbar/entrypoint.js
10
- import { loadDevToolbarApps } from "astro:toolbar:internal";
11
- var overlay;
12
- document.addEventListener("DOMContentLoaded", async () => {
13
- const [
14
- customAppsDefinitions,
15
- { default: astroDevToolApp },
16
- { default: astroAuditApp },
17
- { default: astroXrayApp },
18
- { default: astroSettingsApp },
19
- { AstroDevToolbar, DevToolbarCanvas, getAppIcon },
20
- {
21
- DevToolbarCard,
22
- DevToolbarHighlight,
23
- DevToolbarTooltip,
24
- DevToolbarWindow,
25
- DevToolbarToggle,
26
- DevToolbarButton,
27
- DevToolbarBadge,
28
- DevToolbarIcon,
29
- DevToolbarSelect,
30
- DevToolbarRadioCheckbox
31
- }
32
- ] = await Promise.all([
33
- loadDevToolbarApps(),
34
- import("./astro-KRVZHBC5.js"),
35
- import("./audit-GYHQ3ITH.js"),
36
- import("./xray-EFCQOW4E.js"),
37
- import("./settings-C5H4VHXU.js"),
38
- import("./toolbar-H5DB6HVP.js"),
39
- import("./ui-library-JGHU6JE2.js")
40
- ]);
41
- customElements.define("astro-dev-toolbar", AstroDevToolbar);
42
- customElements.define("astro-dev-toolbar-window", DevToolbarWindow);
43
- customElements.define("astro-dev-toolbar-app-canvas", DevToolbarCanvas);
44
- customElements.define("astro-dev-toolbar-tooltip", DevToolbarTooltip);
45
- customElements.define("astro-dev-toolbar-highlight", DevToolbarHighlight);
46
- customElements.define("astro-dev-toolbar-card", DevToolbarCard);
47
- customElements.define("astro-dev-toolbar-toggle", DevToolbarToggle);
48
- customElements.define("astro-dev-toolbar-button", DevToolbarButton);
49
- customElements.define("astro-dev-toolbar-badge", DevToolbarBadge);
50
- customElements.define("astro-dev-toolbar-icon", DevToolbarIcon);
51
- customElements.define("astro-dev-toolbar-select", DevToolbarSelect);
52
- customElements.define("astro-dev-toolbar-radio-checkbox", DevToolbarRadioCheckbox);
53
- overlay = document.createElement("astro-dev-toolbar");
54
- const notificationLevels = ["error", "warning", "info"];
55
- const notificationSVGs = {
56
- error: '<svg viewBox="0 0 10 10" style="--fill:var(--fill-default);--fill-default:#B33E66;--fill-hover:#E3AFC1;"><rect width="9" height="9" x=".5" y=".5" fill="var(--fill)" stroke="#13151A" stroke-width="2" rx="4.5"/></svg>',
57
- warning: '<svg width="12" height="10" fill="none" style="--fill:var(--fill-default);--fill-default:#B58A2D;--fill-hover:#D5B776;"><path fill="var(--fill)" stroke="#13151A" stroke-width="2" d="M7.29904 1.25c-.57735-1-2.02073-1-2.59808 0l-3.4641 6C.65951 8.25 1.3812 9.5 2.5359 9.5h6.9282c1.1547 0 1.8764-1.25 1.299-2.25l-3.46406-6Z"/></svg>',
58
- info: '<svg viewBox="0 0 10 10" style="--fill:var(--fill-default);--fill-default:#3645D9;--fill-hover:#BDC3FF;"><rect width="9" height="9" x=".5" y=".5" fill="var(--fill)" stroke="#13151A" stroke-width="2" rx="1.5"/></svg>'
59
- };
60
- const prepareApp = (appDefinition, builtIn) => {
61
- const eventTarget = new ToolbarAppEventTarget();
62
- const app = {
63
- ...appDefinition,
64
- builtIn,
65
- active: false,
66
- status: "loading",
67
- notification: { state: false, level: void 0 },
68
- eventTarget
69
- };
70
- eventTarget.addEventListener("toggle-notification", (evt) => {
71
- if (!(evt instanceof CustomEvent)) return;
72
- const target = overlay.shadowRoot?.querySelector(`[data-app-id="${app.id}"]`);
73
- if (!target) return;
74
- const notificationElement = target.querySelector(".notification");
75
- if (!notificationElement) return;
76
- let newState = evt.detail.state ?? true;
77
- let level = notificationLevels.includes(evt?.detail?.level) ? evt.detail.level : "error";
78
- app.notification.state = newState;
79
- if (newState) app.notification.level = level;
80
- notificationElement.toggleAttribute("data-active", newState);
81
- if (newState) {
82
- notificationElement.setAttribute("data-level", level);
83
- notificationElement.innerHTML = notificationSVGs[level];
84
- }
85
- });
86
- const onToggleApp = async (evt) => {
87
- let newState = void 0;
88
- if (evt instanceof CustomEvent) {
89
- newState = evt.detail.state ?? true;
90
- }
91
- await overlay.setAppStatus(app, newState);
92
- };
93
- eventTarget.addEventListener("toggle-app", onToggleApp);
94
- return app;
95
- };
96
- const astroMoreApp = {
97
- id: "astro:more",
98
- name: "More",
99
- icon: "dots-three",
100
- init(canvas, eventTarget) {
101
- const hiddenApps = apps.filter((p) => !p.builtIn).slice(overlay.customAppsToShow);
102
- createDropdown();
103
- document.addEventListener("astro:after-swap", createDropdown);
104
- function createDropdown() {
105
- const style = document.createElement("style");
106
- style.innerHTML = `
107
- #dropdown {
108
- background: rgba(19, 21, 26, 1);
109
- border: 1px solid rgba(52, 56, 65, 1);
110
- border-radius: 12px;
111
- box-shadow: 0px 0px 0px 0px rgba(19, 21, 26, 0.30), 0px 1px 2px 0px rgba(19, 21, 26, 0.29), 0px 4px 4px 0px rgba(19, 21, 26, 0.26), 0px 10px 6px 0px rgba(19, 21, 26, 0.15), 0px 17px 7px 0px rgba(19, 21, 26, 0.04), 0px 26px 7px 0px rgba(19, 21, 26, 0.01);
112
- width: 192px;
113
- padding: 8px;
114
- z-index: 2000000010;
115
- transform: translate(-50%, 0%);
116
- position: fixed;
117
- bottom: 72px;
118
- left: 50%;
119
- }
120
-
121
- .notification {
122
- display: none;
123
- position: absolute;
124
- top: -4px;
125
- right: -5px;
126
- width: 12px;
127
- height: 10px;
128
- }
129
-
130
- .notification svg {
131
- display: block;
132
- }
133
-
134
- #dropdown:not([data-no-notification]) .notification[data-active] {
135
- display: block;
136
- }
137
-
138
- #dropdown button {
139
- border: 0;
140
- background: transparent;
141
- color: white;
142
- font-family: system-ui, sans-serif;
143
- font-size: 14px;
144
- white-space: nowrap;
145
- text-decoration: none;
146
- margin: 0;
147
- display: flex;
148
- align-items: center;
149
- width: 100%;
150
- padding: 8px;
151
- border-radius: 8px;
152
- }
153
-
154
- #dropdown button:hover, #dropdown button:focus-visible {
155
- background: #FFFFFF20;
156
- cursor: pointer;
157
- }
158
-
159
- #dropdown button.active {
160
- background: rgba(71, 78, 94, 1);
161
- }
162
-
163
- #dropdown .icon {
164
- position: relative;
165
- height: 20px;
166
- width: 20px;
167
- padding: 1px;
168
- margin-right: 0.5em;
169
- }
170
-
171
- #dropdown .icon svg {
172
- max-height: 100%;
173
- max-width: 100%;
174
- }
175
- `;
176
- canvas.append(style);
177
- const dropdown = document.createElement("div");
178
- dropdown.id = "dropdown";
179
- dropdown.toggleAttribute("data-no-notification", settings.config.disableAppNotification);
180
- for (const app of hiddenApps) {
181
- const buttonContainer = document.createElement("div");
182
- buttonContainer.classList.add("item");
183
- const button = document.createElement("button");
184
- button.setAttribute("data-app-id", app.id);
185
- const iconContainer = document.createElement("div");
186
- const iconElement = document.createElement("template");
187
- iconElement.innerHTML = app.icon ? getAppIcon(app.icon) : "?";
188
- iconContainer.append(iconElement.content.cloneNode(true));
189
- const notification = document.createElement("div");
190
- notification.classList.add("notification");
191
- iconContainer.append(notification);
192
- iconContainer.classList.add("icon");
193
- button.append(iconContainer);
194
- button.append(document.createTextNode(app.name));
195
- button.addEventListener("click", () => {
196
- overlay.toggleAppStatus(app);
197
- });
198
- buttonContainer.append(button);
199
- dropdown.append(buttonContainer);
200
- app.eventTarget.addEventListener("toggle-notification", (evt) => {
201
- if (!(evt instanceof CustomEvent)) return;
202
- let newState = evt.detail.state ?? true;
203
- let level = notificationLevels.includes(evt?.detail?.level) ? evt.detail.level : "error";
204
- notification.toggleAttribute("data-active", newState);
205
- if (newState) {
206
- notification.setAttribute("data-level", level);
207
- notification.innerHTML = notificationSVGs[level];
208
- }
209
- app.notification.state = newState;
210
- if (newState) app.notification.level = level;
211
- eventTarget.dispatchEvent(
212
- new CustomEvent("toggle-notification", {
213
- detail: {
214
- state: hiddenApps.some((p) => p.notification.state === true),
215
- level: ["error", "warning", "info"].find(
216
- (notificationLevel) => hiddenApps.some(
217
- (p) => p.notification.state === true && p.notification.level === notificationLevel
218
- )
219
- ) ?? "error"
220
- }
221
- })
222
- );
223
- });
224
- }
225
- canvas.append(dropdown);
226
- }
227
- }
228
- };
229
- const apps = [
230
- ...[astroDevToolApp, astroXrayApp, astroAuditApp, astroSettingsApp, astroMoreApp].map(
231
- (appDef) => prepareApp(appDef, true)
232
- ),
233
- ...customAppsDefinitions.map((appDef) => prepareApp(appDef, false))
234
- ];
235
- overlay.apps = apps;
236
- document.body.append(overlay);
237
- document.addEventListener("astro:after-swap", () => {
238
- document.body.append(overlay);
239
- });
240
- });
241
-
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../../../../../node_modules/.pnpm/astro@6.4.5_@types+node@25.9.2_jiti@2.7.0_lightningcss@1.32.0_rollup@4.61.1_tsx@4.22.4_yaml@2.9.0/node_modules/astro/dist/runtime/client/dev-toolbar/entrypoint.js"],
4
- "sourcesContent": ["import { loadDevToolbarApps } from \"astro:toolbar:internal\";\nimport { ToolbarAppEventTarget } from \"./helpers.js\";\nimport { settings } from \"./settings.js\";\nlet overlay;\ndocument.addEventListener(\"DOMContentLoaded\", async () => {\n const [\n customAppsDefinitions,\n { default: astroDevToolApp },\n { default: astroAuditApp },\n { default: astroXrayApp },\n { default: astroSettingsApp },\n { AstroDevToolbar, DevToolbarCanvas, getAppIcon },\n {\n DevToolbarCard,\n DevToolbarHighlight,\n DevToolbarTooltip,\n DevToolbarWindow,\n DevToolbarToggle,\n DevToolbarButton,\n DevToolbarBadge,\n DevToolbarIcon,\n DevToolbarSelect,\n DevToolbarRadioCheckbox\n }\n ] = await Promise.all([\n loadDevToolbarApps(),\n import(\"./apps/astro.js\"),\n import(\"./apps/audit/index.js\"),\n import(\"./apps/xray.js\"),\n import(\"./apps/settings.js\"),\n import(\"./toolbar.js\"),\n import(\"./ui-library/index.js\")\n ]);\n customElements.define(\"astro-dev-toolbar\", AstroDevToolbar);\n customElements.define(\"astro-dev-toolbar-window\", DevToolbarWindow);\n customElements.define(\"astro-dev-toolbar-app-canvas\", DevToolbarCanvas);\n customElements.define(\"astro-dev-toolbar-tooltip\", DevToolbarTooltip);\n customElements.define(\"astro-dev-toolbar-highlight\", DevToolbarHighlight);\n customElements.define(\"astro-dev-toolbar-card\", DevToolbarCard);\n customElements.define(\"astro-dev-toolbar-toggle\", DevToolbarToggle);\n customElements.define(\"astro-dev-toolbar-button\", DevToolbarButton);\n customElements.define(\"astro-dev-toolbar-badge\", DevToolbarBadge);\n customElements.define(\"astro-dev-toolbar-icon\", DevToolbarIcon);\n customElements.define(\"astro-dev-toolbar-select\", DevToolbarSelect);\n customElements.define(\"astro-dev-toolbar-radio-checkbox\", DevToolbarRadioCheckbox);\n overlay = document.createElement(\"astro-dev-toolbar\");\n const notificationLevels = [\"error\", \"warning\", \"info\"];\n const notificationSVGs = {\n error: '<svg viewBox=\"0 0 10 10\" style=\"--fill:var(--fill-default);--fill-default:#B33E66;--fill-hover:#E3AFC1;\"><rect width=\"9\" height=\"9\" x=\".5\" y=\".5\" fill=\"var(--fill)\" stroke=\"#13151A\" stroke-width=\"2\" rx=\"4.5\"/></svg>',\n warning: '<svg width=\"12\" height=\"10\" fill=\"none\" style=\"--fill:var(--fill-default);--fill-default:#B58A2D;--fill-hover:#D5B776;\"><path fill=\"var(--fill)\" stroke=\"#13151A\" stroke-width=\"2\" d=\"M7.29904 1.25c-.57735-1-2.02073-1-2.59808 0l-3.4641 6C.65951 8.25 1.3812 9.5 2.5359 9.5h6.9282c1.1547 0 1.8764-1.25 1.299-2.25l-3.46406-6Z\"/></svg>',\n info: '<svg viewBox=\"0 0 10 10\" style=\"--fill:var(--fill-default);--fill-default:#3645D9;--fill-hover:#BDC3FF;\"><rect width=\"9\" height=\"9\" x=\".5\" y=\".5\" fill=\"var(--fill)\" stroke=\"#13151A\" stroke-width=\"2\" rx=\"1.5\"/></svg>'\n };\n const prepareApp = (appDefinition, builtIn) => {\n const eventTarget = new ToolbarAppEventTarget();\n const app = {\n ...appDefinition,\n builtIn,\n active: false,\n status: \"loading\",\n notification: { state: false, level: void 0 },\n eventTarget\n };\n eventTarget.addEventListener(\"toggle-notification\", (evt) => {\n if (!(evt instanceof CustomEvent)) return;\n const target = overlay.shadowRoot?.querySelector(`[data-app-id=\"${app.id}\"]`);\n if (!target) return;\n const notificationElement = target.querySelector(\".notification\");\n if (!notificationElement) return;\n let newState = evt.detail.state ?? true;\n let level = notificationLevels.includes(evt?.detail?.level) ? evt.detail.level : \"error\";\n app.notification.state = newState;\n if (newState) app.notification.level = level;\n notificationElement.toggleAttribute(\"data-active\", newState);\n if (newState) {\n notificationElement.setAttribute(\"data-level\", level);\n notificationElement.innerHTML = notificationSVGs[level];\n }\n });\n const onToggleApp = async (evt) => {\n let newState = void 0;\n if (evt instanceof CustomEvent) {\n newState = evt.detail.state ?? true;\n }\n await overlay.setAppStatus(app, newState);\n };\n eventTarget.addEventListener(\"toggle-app\", onToggleApp);\n return app;\n };\n const astroMoreApp = {\n id: \"astro:more\",\n name: \"More\",\n icon: \"dots-three\",\n init(canvas, eventTarget) {\n const hiddenApps = apps.filter((p) => !p.builtIn).slice(overlay.customAppsToShow);\n createDropdown();\n document.addEventListener(\"astro:after-swap\", createDropdown);\n function createDropdown() {\n const style = document.createElement(\"style\");\n style.innerHTML = `\n\t\t\t\t\t#dropdown {\n\t\t\t\t\t\tbackground: rgba(19, 21, 26, 1);\n\t\t\t\t\t\tborder: 1px solid rgba(52, 56, 65, 1);\n\t\t\t\t\t\tborder-radius: 12px;\n\t\t\t\t\t\tbox-shadow: 0px 0px 0px 0px rgba(19, 21, 26, 0.30), 0px 1px 2px 0px rgba(19, 21, 26, 0.29), 0px 4px 4px 0px rgba(19, 21, 26, 0.26), 0px 10px 6px 0px rgba(19, 21, 26, 0.15), 0px 17px 7px 0px rgba(19, 21, 26, 0.04), 0px 26px 7px 0px rgba(19, 21, 26, 0.01);\n\t\t\t\t\t\twidth: 192px;\n\t\t\t\t\t\tpadding: 8px;\n\t\t\t\t\t\tz-index: 2000000010;\n\t\t\t\t\t\ttransform: translate(-50%, 0%);\n\t\t\t\t\t\tposition: fixed;\n\t\t\t\t\t\tbottom: 72px;\n\t\t\t\t\t\tleft: 50%;\n\t\t\t\t\t}\n\n\t\t\t\t\t.notification {\n\t\t\t\t\t\tdisplay: none;\n\t\t\t\t\t\tposition: absolute;\n\t\t\t\t\t\ttop: -4px;\n\t\t\t\t\t\tright: -5px;\n\t\t\t\t\t\twidth: 12px;\n\t\t\t\t\t\theight: 10px;\n\t\t\t\t\t}\n\n\t\t\t\t\t.notification svg {\n\t\t\t\t\t\tdisplay: block;\n\t\t\t\t\t}\n\n\t\t\t\t\t#dropdown:not([data-no-notification]) .notification[data-active] {\n\t\t\t\t\t\tdisplay: block;\n\t\t\t\t\t}\n\n\t\t\t\t\t#dropdown button {\n\t\t\t\t\t\tborder: 0;\n\t\t\t\t\t\tbackground: transparent;\n\t\t\t\t\t\tcolor: white;\n\t\t\t\t\t\tfont-family: system-ui, sans-serif;\n\t\t\t\t\t\tfont-size: 14px;\n\t\t\t\t\t\twhite-space: nowrap;\n\t\t\t\t\t\ttext-decoration: none;\n\t\t\t\t\t\tmargin: 0;\n\t\t\t\t\t\tdisplay: flex;\n\t\t\t\t\t\talign-items: center;\n\t\t\t\t\t\twidth: 100%;\n\t\t\t\t\t\tpadding: 8px;\n\t\t\t\t\t\tborder-radius: 8px;\n\t\t\t\t\t}\n\n\t\t\t\t\t#dropdown button:hover, #dropdown button:focus-visible {\n\t\t\t\t\t\tbackground: #FFFFFF20;\n\t\t\t\t\t\tcursor: pointer;\n\t\t\t\t\t}\n\n\t\t\t\t\t#dropdown button.active {\n\t\t\t\t\t\tbackground: rgba(71, 78, 94, 1);\n\t\t\t\t\t}\n\n\t\t\t\t\t#dropdown .icon {\n\t\t\t\t\t\tposition: relative;\n\t\t\t\t\t\theight: 20px;\n\t\t\t\t\t\twidth: 20px;\n\t\t\t\t\t\tpadding: 1px;\n\t\t\t\t\t\tmargin-right: 0.5em;\n\t\t\t\t\t}\n\n\t\t\t\t\t#dropdown .icon svg {\n\t\t\t\t\t\tmax-height: 100%;\n\t\t\t\t\t\tmax-width: 100%;\n\t\t\t\t\t}\n\t\t\t\t`;\n canvas.append(style);\n const dropdown = document.createElement(\"div\");\n dropdown.id = \"dropdown\";\n dropdown.toggleAttribute(\"data-no-notification\", settings.config.disableAppNotification);\n for (const app of hiddenApps) {\n const buttonContainer = document.createElement(\"div\");\n buttonContainer.classList.add(\"item\");\n const button = document.createElement(\"button\");\n button.setAttribute(\"data-app-id\", app.id);\n const iconContainer = document.createElement(\"div\");\n const iconElement = document.createElement(\"template\");\n iconElement.innerHTML = app.icon ? getAppIcon(app.icon) : \"?\";\n iconContainer.append(iconElement.content.cloneNode(true));\n const notification = document.createElement(\"div\");\n notification.classList.add(\"notification\");\n iconContainer.append(notification);\n iconContainer.classList.add(\"icon\");\n button.append(iconContainer);\n button.append(document.createTextNode(app.name));\n button.addEventListener(\"click\", () => {\n overlay.toggleAppStatus(app);\n });\n buttonContainer.append(button);\n dropdown.append(buttonContainer);\n app.eventTarget.addEventListener(\"toggle-notification\", (evt) => {\n if (!(evt instanceof CustomEvent)) return;\n let newState = evt.detail.state ?? true;\n let level = notificationLevels.includes(evt?.detail?.level) ? evt.detail.level : \"error\";\n notification.toggleAttribute(\"data-active\", newState);\n if (newState) {\n notification.setAttribute(\"data-level\", level);\n notification.innerHTML = notificationSVGs[level];\n }\n app.notification.state = newState;\n if (newState) app.notification.level = level;\n eventTarget.dispatchEvent(\n new CustomEvent(\"toggle-notification\", {\n detail: {\n state: hiddenApps.some((p) => p.notification.state === true),\n level: [\"error\", \"warning\", \"info\"].find(\n (notificationLevel) => hiddenApps.some(\n (p) => p.notification.state === true && p.notification.level === notificationLevel\n )\n ) ?? \"error\"\n }\n })\n );\n });\n }\n canvas.append(dropdown);\n }\n }\n };\n const apps = [\n ...[astroDevToolApp, astroXrayApp, astroAuditApp, astroSettingsApp, astroMoreApp].map(\n (appDef) => prepareApp(appDef, true)\n ),\n ...customAppsDefinitions.map((appDef) => prepareApp(appDef, false))\n ];\n overlay.apps = apps;\n document.body.append(overlay);\n document.addEventListener(\"astro:after-swap\", () => {\n document.body.append(overlay);\n });\n});\n"],
5
- "mappings": "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",
6
- "names": []
7
- }