@grove-dev/astro 0.1.4 → 0.2.2

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 (246) hide show
  1. package/dist/index.d.ts +4 -25
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/index.js +56 -22
  4. package/dist/index.js.map +1 -1
  5. package/dist/layouts/index.d.ts +25 -0
  6. package/dist/layouts/index.d.ts.map +1 -0
  7. package/dist/layouts/index.js +25 -0
  8. package/dist/layouts/index.js.map +1 -0
  9. package/dist/lib/display.d.ts +33 -0
  10. package/dist/lib/display.d.ts.map +1 -0
  11. package/dist/lib/display.js +104 -0
  12. package/dist/lib/display.js.map +1 -0
  13. package/dist/lib/format.d.ts +30 -0
  14. package/dist/lib/format.d.ts.map +1 -0
  15. package/dist/lib/format.js +73 -0
  16. package/dist/lib/format.js.map +1 -0
  17. package/dist/lib/index.d.ts +26 -0
  18. package/dist/lib/index.d.ts.map +1 -0
  19. package/dist/lib/index.js +26 -0
  20. package/dist/lib/index.js.map +1 -0
  21. package/dist/lib/lenses.d.ts +96 -0
  22. package/dist/lib/lenses.d.ts.map +1 -0
  23. package/dist/lib/lenses.js +181 -0
  24. package/dist/lib/lenses.js.map +1 -0
  25. package/dist/lib/repo.d.ts +30 -0
  26. package/dist/lib/repo.d.ts.map +1 -0
  27. package/dist/lib/repo.js +44 -0
  28. package/dist/lib/repo.js.map +1 -0
  29. package/dist/lib/scores.d.ts +38 -0
  30. package/dist/lib/scores.d.ts.map +1 -0
  31. package/dist/lib/scores.js +83 -0
  32. package/dist/lib/scores.js.map +1 -0
  33. package/dist/lib/search.d.ts +199 -0
  34. package/dist/lib/search.d.ts.map +1 -0
  35. package/dist/lib/search.js +357 -0
  36. package/dist/lib/search.js.map +1 -0
  37. package/dist/lib/taxonomy-counts.d.ts +25 -0
  38. package/dist/lib/taxonomy-counts.d.ts.map +1 -0
  39. package/dist/lib/taxonomy-counts.js +41 -0
  40. package/dist/lib/taxonomy-counts.js.map +1 -0
  41. package/package.json +7 -7
  42. package/src/components/AppSection.astro +83 -0
  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 +289 -30
  53. package/src/components/MinimalAbout.astro +82 -0
  54. package/src/components/OriginalCollection.astro +116 -0
  55. package/src/components/RefinePanel.astro +197 -0
  56. package/src/components/ScoreBars.astro +92 -22
  57. package/src/components/SmartLensTabs.astro +71 -0
  58. package/src/components/StackGrid.astro +132 -0
  59. package/src/components/WhyThisExists.astro +116 -0
  60. package/src/index.ts +61 -14
  61. package/src/layouts/BaseLayout.astro +227 -15
  62. package/src/layouts/Container.astro +57 -0
  63. package/src/layouts/Footer.astro +235 -0
  64. package/src/layouts/Header.astro +159 -0
  65. package/src/layouts/SectionHeader.astro +58 -0
  66. package/{templates/default/src/components/layout → src/layouts}/Seo.astro +62 -38
  67. package/src/layouts/ThemeToggle.astro +110 -0
  68. package/src/layouts/astro-shim.d.ts +29 -0
  69. package/src/layouts/index.ts +24 -0
  70. package/src/lib/display.ts +118 -0
  71. package/src/lib/format.ts +65 -0
  72. package/src/lib/index.ts +26 -0
  73. package/src/lib/lenses.ts +241 -0
  74. package/src/lib/repo.ts +44 -0
  75. package/src/lib/scores.ts +94 -0
  76. package/src/lib/search.ts +481 -0
  77. package/src/lib/taxonomy-counts.ts +60 -0
  78. package/src/styles.css +366 -638
  79. package/templates/default/.astro/content.d.ts +155 -0
  80. package/templates/default/.astro/settings.json +5 -0
  81. package/templates/default/.astro/types.d.ts +2 -0
  82. package/templates/default/astro.config.mjs +8 -6
  83. package/templates/default/content/pages/about.md +66 -0
  84. package/templates/default/content/pages/methodology.md +103 -0
  85. package/templates/default/data/generated/records.full.json +8 -0
  86. package/templates/default/data/generated/records.index.json +7 -0
  87. package/templates/default/data/generated/records.json +8 -0
  88. package/templates/default/data/generated/site-config.json +31 -0
  89. package/templates/default/data/records/.gitkeep +0 -0
  90. package/templates/default/dist/_astro/BaseLayout.DfpwR3jc.css +1 -0
  91. package/templates/default/dist/about/index.html +165 -0
  92. package/templates/default/dist/icons/platforms/android.svg +1 -0
  93. package/templates/default/dist/icons/platforms/apple-dark.svg +1 -0
  94. package/templates/default/dist/icons/platforms/apple-light.svg +1 -0
  95. package/templates/default/dist/icons/platforms/chrome.svg +1 -0
  96. package/templates/default/dist/icons/platforms/chromeos.svg +5 -0
  97. package/templates/default/dist/icons/platforms/desktop.svg +4 -0
  98. package/templates/default/dist/icons/platforms/embedded.svg +5 -0
  99. package/templates/default/dist/icons/platforms/ios.svg +1 -0
  100. package/templates/default/dist/icons/platforms/linux.svg +1 -0
  101. package/templates/default/dist/icons/platforms/macos.svg +1 -0
  102. package/templates/default/dist/icons/platforms/ubuntu.svg +1 -0
  103. package/templates/default/dist/icons/platforms/web.svg +5 -0
  104. package/templates/default/dist/icons/platforms/windows.svg +6 -0
  105. package/templates/default/dist/icons/stacks/android.svg +1 -0
  106. package/templates/default/dist/icons/stacks/apple-dark.svg +1 -0
  107. package/templates/default/dist/icons/stacks/apple-light.svg +1 -0
  108. package/templates/default/dist/icons/stacks/capacitor.svg +14 -0
  109. package/templates/default/dist/icons/stacks/dart.svg +1 -0
  110. package/templates/default/dist/icons/stacks/firebase.svg +1 -0
  111. package/templates/default/dist/icons/stacks/flutter.svg +1 -0
  112. package/templates/default/dist/icons/stacks/graphql.svg +1 -0
  113. package/templates/default/dist/icons/stacks/ionic.svg +4 -0
  114. package/templates/default/dist/icons/stacks/java.svg +1 -0
  115. package/templates/default/dist/icons/stacks/javascript.svg +1 -0
  116. package/templates/default/dist/icons/stacks/kotlin.svg +1 -0
  117. package/templates/default/dist/icons/stacks/mongodb.svg +1 -0
  118. package/templates/default/dist/icons/stacks/nodejs.svg +1 -0
  119. package/templates/default/dist/icons/stacks/python.svg +1 -0
  120. package/templates/default/dist/icons/stacks/react-native.svg +1 -0
  121. package/templates/default/dist/icons/stacks/react.svg +1 -0
  122. package/templates/default/dist/icons/stacks/rust.svg +1 -0
  123. package/templates/default/dist/icons/stacks/solidity.svg +1 -0
  124. package/templates/default/dist/icons/stacks/swift.svg +1 -0
  125. package/templates/default/dist/icons/stacks/tensorflow.svg +1 -0
  126. package/templates/default/dist/icons/stacks/typescript.svg +1 -0
  127. package/templates/default/dist/index.html +55 -0
  128. package/templates/default/dist/llms-full.txt +14 -0
  129. package/templates/default/dist/llms.txt +11 -0
  130. package/templates/default/dist/og-image.svg +48 -0
  131. package/templates/default/dist/projects/index.html +61 -0
  132. package/templates/default/dist/robots.txt +53 -0
  133. package/templates/default/dist/sitemap.xml +21 -0
  134. package/templates/default/dist/submit/index.html +69 -0
  135. package/templates/default/grove.config.ts +36 -0
  136. package/templates/default/node_modules/.bin/astro +21 -0
  137. package/templates/default/node_modules/.bin/astro-check +21 -0
  138. package/templates/default/node_modules/.bin/grove +21 -0
  139. package/templates/default/node_modules/.bin/jiti +21 -0
  140. package/templates/default/node_modules/.bin/prettier +21 -0
  141. package/templates/default/node_modules/.bin/rollup +21 -0
  142. package/templates/default/node_modules/.bin/tsc +21 -0
  143. package/templates/default/node_modules/.bin/tsserver +21 -0
  144. package/templates/default/node_modules/.bin/tsx +21 -0
  145. package/templates/default/node_modules/.bin/vite +21 -0
  146. package/templates/default/node_modules/.bin/yaml +21 -0
  147. package/templates/default/node_modules/.vite/deps/_metadata.json +79 -0
  148. package/templates/default/node_modules/.vite/deps/astro-KRVZHBC5.js +433 -0
  149. package/templates/default/node_modules/.vite/deps/astro-KRVZHBC5.js.map +7 -0
  150. package/templates/default/node_modules/.vite/deps/astro___aria-query.js +5 -0
  151. package/templates/default/node_modules/.vite/deps/astro___aria-query.js.map +7 -0
  152. package/templates/default/node_modules/.vite/deps/astro___axobject-query.js +5 -0
  153. package/templates/default/node_modules/.vite/deps/astro___axobject-query.js.map +7 -0
  154. package/templates/default/node_modules/.vite/deps/astro___html-escaper.js +9 -0
  155. package/templates/default/node_modules/.vite/deps/astro___html-escaper.js.map +7 -0
  156. package/templates/default/node_modules/.vite/deps/astro_runtime_client_dev-toolbar_entrypoint__js.js +241 -0
  157. package/templates/default/node_modules/.vite/deps/astro_runtime_client_dev-toolbar_entrypoint__js.js.map +7 -0
  158. package/templates/default/node_modules/.vite/deps/audit-GYHQ3ITH.js +1592 -0
  159. package/templates/default/node_modules/.vite/deps/audit-GYHQ3ITH.js.map +7 -0
  160. package/templates/default/node_modules/.vite/deps/chunk-5WRI5ZAA.js +30 -0
  161. package/templates/default/node_modules/.vite/deps/chunk-5WRI5ZAA.js.map +7 -0
  162. package/templates/default/node_modules/.vite/deps/chunk-7P4KIK53.js +186 -0
  163. package/templates/default/node_modules/.vite/deps/chunk-7P4KIK53.js.map +7 -0
  164. package/templates/default/node_modules/.vite/deps/chunk-BQGHFQJH.js +48 -0
  165. package/templates/default/node_modules/.vite/deps/chunk-BQGHFQJH.js.map +7 -0
  166. package/templates/default/node_modules/.vite/deps/chunk-CJCDKWP2.js +6779 -0
  167. package/templates/default/node_modules/.vite/deps/chunk-CJCDKWP2.js.map +7 -0
  168. package/templates/default/node_modules/.vite/deps/chunk-FHJ3XBDE.js +33 -0
  169. package/templates/default/node_modules/.vite/deps/chunk-FHJ3XBDE.js.map +7 -0
  170. package/templates/default/node_modules/.vite/deps/chunk-FQEMNIUQ.js +88 -0
  171. package/templates/default/node_modules/.vite/deps/chunk-FQEMNIUQ.js.map +7 -0
  172. package/templates/default/node_modules/.vite/deps/chunk-HBSVDAQD.js +72 -0
  173. package/templates/default/node_modules/.vite/deps/chunk-HBSVDAQD.js.map +7 -0
  174. package/templates/default/node_modules/.vite/deps/chunk-HDOQ2U3U.js +3757 -0
  175. package/templates/default/node_modules/.vite/deps/chunk-HDOQ2U3U.js.map +7 -0
  176. package/templates/default/node_modules/.vite/deps/chunk-XEBKRCNE.js +54 -0
  177. package/templates/default/node_modules/.vite/deps/chunk-XEBKRCNE.js.map +7 -0
  178. package/templates/default/node_modules/.vite/deps/package.json +3 -0
  179. package/templates/default/node_modules/.vite/deps/settings-C5H4VHXU.js +213 -0
  180. package/templates/default/node_modules/.vite/deps/settings-C5H4VHXU.js.map +7 -0
  181. package/templates/default/node_modules/.vite/deps/toolbar-H5DB6HVP.js +525 -0
  182. package/templates/default/node_modules/.vite/deps/toolbar-H5DB6HVP.js.map +7 -0
  183. package/templates/default/node_modules/.vite/deps/ui-library-JGHU6JE2.js +1020 -0
  184. package/templates/default/node_modules/.vite/deps/ui-library-JGHU6JE2.js.map +7 -0
  185. package/templates/default/node_modules/.vite/deps/xray-EFCQOW4E.js +147 -0
  186. package/templates/default/node_modules/.vite/deps/xray-EFCQOW4E.js.map +7 -0
  187. package/templates/default/package.json +6 -5
  188. package/templates/default/public/llms-full.txt +14 -0
  189. package/templates/default/public/llms.txt +11 -0
  190. package/templates/default/src/components/layout/BaseLayout.astro +10 -57
  191. package/templates/default/src/components/layout/Footer.astro +16 -134
  192. package/templates/default/src/components/layout/Header.astro +25 -126
  193. package/templates/default/src/data/records.ts +161 -0
  194. package/templates/default/src/lib/markdown.ts +171 -0
  195. package/templates/default/src/pages/about.astro +95 -429
  196. package/templates/default/src/pages/index.astro +258 -61
  197. package/templates/default/src/pages/projects/[slug].astro +480 -0
  198. package/templates/default/src/pages/projects/index.astro +193 -0
  199. package/templates/default/src/pages/sitemap.xml.ts +73 -61
  200. package/templates/default/src/pages/submit.astro +122 -411
  201. package/templates/default/src/styles/global.css +42 -68
  202. package/src/components/ActiveFilterChips.astro +0 -20
  203. package/src/components/DirectoryFilters.astro +0 -100
  204. package/src/components/DirectoryHero.astro +0 -32
  205. package/src/components/HealthBadge.astro +0 -12
  206. package/src/components/LensTabs.astro +0 -26
  207. package/src/components/MethodologyPanel.astro +0 -20
  208. package/src/components/Pagination.astro +0 -24
  209. package/src/components/ProjectDetail.astro +0 -166
  210. package/src/components/SubmitDraft.astro +0 -137
  211. package/templates/default/src/components/AppCard.astro +0 -248
  212. package/templates/default/src/components/AppSection.astro +0 -58
  213. package/templates/default/src/components/AppsIndexRow.astro +0 -230
  214. package/templates/default/src/components/AppsPagination.astro +0 -147
  215. package/templates/default/src/components/CategoryGrid.astro +0 -80
  216. package/templates/default/src/components/ContributorsGrid.astro +0 -105
  217. package/templates/default/src/components/DecisionRow.astro +0 -219
  218. package/templates/default/src/components/ExploreByCategory.astro +0 -74
  219. package/templates/default/src/components/ExploreByStack.astro +0 -102
  220. package/templates/default/src/components/Hero.astro +0 -176
  221. package/templates/default/src/components/MinimalAbout.astro +0 -57
  222. package/templates/default/src/components/OriginalCollection.astro +0 -144
  223. package/templates/default/src/components/RefinePanel.astro +0 -272
  224. package/templates/default/src/components/ScoreBars.astro +0 -72
  225. package/templates/default/src/components/SmartLensTabs.astro +0 -65
  226. package/templates/default/src/components/StackGrid.astro +0 -95
  227. package/templates/default/src/components/WhyThisExists.astro +0 -81
  228. package/templates/default/src/components/icons/Icon.astro +0 -148
  229. package/templates/default/src/components/layout/SectionHeader.astro +0 -42
  230. package/templates/default/src/components/layout/ThemeToggle.astro +0 -97
  231. package/templates/default/src/data/apps.ts +0 -149
  232. package/templates/default/src/data/categories.ts +0 -27
  233. package/templates/default/src/data/config.ts +0 -28
  234. package/templates/default/src/data/contributors.ts +0 -96
  235. package/templates/default/src/data/stacks.ts +0 -47
  236. package/templates/default/src/data/stats.ts +0 -65
  237. package/templates/default/src/data/types.ts +0 -248
  238. package/templates/default/src/lib/apps-search.ts +0 -228
  239. package/templates/default/src/lib/format.ts +0 -36
  240. package/templates/default/src/lib/lenses.ts +0 -98
  241. package/templates/default/src/lib/repo.ts +0 -12
  242. package/templates/default/src/lib/scores.ts +0 -51
  243. package/templates/default/src/lib/taxonomy-counts.ts +0 -31
  244. package/templates/default/src/pages/apps/[slug].astro +0 -709
  245. package/templates/default/src/pages/apps/index.astro +0 -669
  246. package/templates/default/src/pages/contributors.astro +0 -142
@@ -0,0 +1,241 @@
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
+
@@ -0,0 +1,7 @@
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": ";;;;;;;;;AAAA,SAAS,0BAA0B;AAGnC,IAAI;AACJ,SAAS,iBAAiB,oBAAoB,YAAY;AACxD,QAAM;AAAA,IACJ;AAAA,IACA,EAAE,SAAS,gBAAgB;AAAA,IAC3B,EAAE,SAAS,cAAc;AAAA,IACzB,EAAE,SAAS,aAAa;AAAA,IACxB,EAAE,SAAS,iBAAiB;AAAA,IAC5B,EAAE,iBAAiB,kBAAkB,WAAW;AAAA,IAChD;AAAA,MACE;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EACF,IAAI,MAAM,QAAQ,IAAI;AAAA,IACpB,mBAAmB;AAAA,IACnB,OAAO,qBAAiB;AAAA,IACxB,OAAO,qBAAuB;AAAA,IAC9B,OAAO,oBAAgB;AAAA,IACvB,OAAO,wBAAoB;AAAA,IAC3B,OAAO,uBAAc;AAAA,IACrB,OAAO,0BAAuB;AAAA,EAChC,CAAC;AACD,iBAAe,OAAO,qBAAqB,eAAe;AAC1D,iBAAe,OAAO,4BAA4B,gBAAgB;AAClE,iBAAe,OAAO,gCAAgC,gBAAgB;AACtE,iBAAe,OAAO,6BAA6B,iBAAiB;AACpE,iBAAe,OAAO,+BAA+B,mBAAmB;AACxE,iBAAe,OAAO,0BAA0B,cAAc;AAC9D,iBAAe,OAAO,4BAA4B,gBAAgB;AAClE,iBAAe,OAAO,4BAA4B,gBAAgB;AAClE,iBAAe,OAAO,2BAA2B,eAAe;AAChE,iBAAe,OAAO,0BAA0B,cAAc;AAC9D,iBAAe,OAAO,4BAA4B,gBAAgB;AAClE,iBAAe,OAAO,oCAAoC,uBAAuB;AACjF,YAAU,SAAS,cAAc,mBAAmB;AACpD,QAAM,qBAAqB,CAAC,SAAS,WAAW,MAAM;AACtD,QAAM,mBAAmB;AAAA,IACvB,OAAO;AAAA,IACP,SAAS;AAAA,IACT,MAAM;AAAA,EACR;AACA,QAAM,aAAa,CAAC,eAAe,YAAY;AAC7C,UAAM,cAAc,IAAI,sBAAsB;AAC9C,UAAM,MAAM;AAAA,MACV,GAAG;AAAA,MACH;AAAA,MACA,QAAQ;AAAA,MACR,QAAQ;AAAA,MACR,cAAc,EAAE,OAAO,OAAO,OAAO,OAAO;AAAA,MAC5C;AAAA,IACF;AACA,gBAAY,iBAAiB,uBAAuB,CAAC,QAAQ;AAC3D,UAAI,EAAE,eAAe,aAAc;AACnC,YAAM,SAAS,QAAQ,YAAY,cAAc,iBAAiB,IAAI,EAAE,IAAI;AAC5E,UAAI,CAAC,OAAQ;AACb,YAAM,sBAAsB,OAAO,cAAc,eAAe;AAChE,UAAI,CAAC,oBAAqB;AAC1B,UAAI,WAAW,IAAI,OAAO,SAAS;AACnC,UAAI,QAAQ,mBAAmB,SAAS,KAAK,QAAQ,KAAK,IAAI,IAAI,OAAO,QAAQ;AACjF,UAAI,aAAa,QAAQ;AACzB,UAAI,SAAU,KAAI,aAAa,QAAQ;AACvC,0BAAoB,gBAAgB,eAAe,QAAQ;AAC3D,UAAI,UAAU;AACZ,4BAAoB,aAAa,cAAc,KAAK;AACpD,4BAAoB,YAAY,iBAAiB,KAAK;AAAA,MACxD;AAAA,IACF,CAAC;AACD,UAAM,cAAc,OAAO,QAAQ;AACjC,UAAI,WAAW;AACf,UAAI,eAAe,aAAa;AAC9B,mBAAW,IAAI,OAAO,SAAS;AAAA,MACjC;AACA,YAAM,QAAQ,aAAa,KAAK,QAAQ;AAAA,IAC1C;AACA,gBAAY,iBAAiB,cAAc,WAAW;AACtD,WAAO;AAAA,EACT;AACA,QAAM,eAAe;AAAA,IACnB,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,MAAM;AAAA,IACN,KAAK,QAAQ,aAAa;AACxB,YAAM,aAAa,KAAK,OAAO,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,MAAM,QAAQ,gBAAgB;AAChF,qBAAe;AACf,eAAS,iBAAiB,oBAAoB,cAAc;AAC5D,eAAS,iBAAiB;AACxB,cAAM,QAAQ,SAAS,cAAc,OAAO;AAC5C,cAAM,YAAY;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAsElB,eAAO,OAAO,KAAK;AACnB,cAAM,WAAW,SAAS,cAAc,KAAK;AAC7C,iBAAS,KAAK;AACd,iBAAS,gBAAgB,wBAAwB,SAAS,OAAO,sBAAsB;AACvF,mBAAW,OAAO,YAAY;AAC5B,gBAAM,kBAAkB,SAAS,cAAc,KAAK;AACpD,0BAAgB,UAAU,IAAI,MAAM;AACpC,gBAAM,SAAS,SAAS,cAAc,QAAQ;AAC9C,iBAAO,aAAa,eAAe,IAAI,EAAE;AACzC,gBAAM,gBAAgB,SAAS,cAAc,KAAK;AAClD,gBAAM,cAAc,SAAS,cAAc,UAAU;AACrD,sBAAY,YAAY,IAAI,OAAO,WAAW,IAAI,IAAI,IAAI;AAC1D,wBAAc,OAAO,YAAY,QAAQ,UAAU,IAAI,CAAC;AACxD,gBAAM,eAAe,SAAS,cAAc,KAAK;AACjD,uBAAa,UAAU,IAAI,cAAc;AACzC,wBAAc,OAAO,YAAY;AACjC,wBAAc,UAAU,IAAI,MAAM;AAClC,iBAAO,OAAO,aAAa;AAC3B,iBAAO,OAAO,SAAS,eAAe,IAAI,IAAI,CAAC;AAC/C,iBAAO,iBAAiB,SAAS,MAAM;AACrC,oBAAQ,gBAAgB,GAAG;AAAA,UAC7B,CAAC;AACD,0BAAgB,OAAO,MAAM;AAC7B,mBAAS,OAAO,eAAe;AAC/B,cAAI,YAAY,iBAAiB,uBAAuB,CAAC,QAAQ;AAC/D,gBAAI,EAAE,eAAe,aAAc;AACnC,gBAAI,WAAW,IAAI,OAAO,SAAS;AACnC,gBAAI,QAAQ,mBAAmB,SAAS,KAAK,QAAQ,KAAK,IAAI,IAAI,OAAO,QAAQ;AACjF,yBAAa,gBAAgB,eAAe,QAAQ;AACpD,gBAAI,UAAU;AACZ,2BAAa,aAAa,cAAc,KAAK;AAC7C,2BAAa,YAAY,iBAAiB,KAAK;AAAA,YACjD;AACA,gBAAI,aAAa,QAAQ;AACzB,gBAAI,SAAU,KAAI,aAAa,QAAQ;AACvC,wBAAY;AAAA,cACV,IAAI,YAAY,uBAAuB;AAAA,gBACrC,QAAQ;AAAA,kBACN,OAAO,WAAW,KAAK,CAAC,MAAM,EAAE,aAAa,UAAU,IAAI;AAAA,kBAC3D,OAAO,CAAC,SAAS,WAAW,MAAM,EAAE;AAAA,oBAClC,CAAC,sBAAsB,WAAW;AAAA,sBAChC,CAAC,MAAM,EAAE,aAAa,UAAU,QAAQ,EAAE,aAAa,UAAU;AAAA,oBACnE;AAAA,kBACF,KAAK;AAAA,gBACP;AAAA,cACF,CAAC;AAAA,YACH;AAAA,UACF,CAAC;AAAA,QACH;AACA,eAAO,OAAO,QAAQ;AAAA,MACxB;AAAA,IACF;AAAA,EACF;AACA,QAAM,OAAO;AAAA,IACX,GAAG,CAAC,iBAAiB,cAAc,eAAe,kBAAkB,YAAY,EAAE;AAAA,MAChF,CAAC,WAAW,WAAW,QAAQ,IAAI;AAAA,IACrC;AAAA,IACA,GAAG,sBAAsB,IAAI,CAAC,WAAW,WAAW,QAAQ,KAAK,CAAC;AAAA,EACpE;AACA,UAAQ,OAAO;AACf,WAAS,KAAK,OAAO,OAAO;AAC5B,WAAS,iBAAiB,oBAAoB,MAAM;AAClD,aAAS,KAAK,OAAO,OAAO;AAAA,EAC9B,CAAC;AACH,CAAC;",
6
+ "names": []
7
+ }