@hgdc/docs 0.0.0-stage → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/hgdc-docs.mjs +48 -0
- package/docs.schema.json +294 -0
- package/package.json +50 -4
- package/src/build/auto-import.ts +74 -0
- package/src/build/markdown.ts +114 -0
- package/src/build/outputs.ts +91 -0
- package/src/build/public-files.test.ts +29 -0
- package/src/build/public-files.ts +35 -0
- package/src/components/Accordion.astro +12 -0
- package/src/components/AccordionGroup.astro +4 -0
- package/src/components/Card.astro +15 -0
- package/src/components/CardGroup.astro +8 -0
- package/src/components/Check.astro +10 -0
- package/src/components/CodeGroup.astro +4 -0
- package/src/components/Columns.astro +8 -0
- package/src/components/Danger.astro +10 -0
- package/src/components/Frame.astro +11 -0
- package/src/components/Info.astro +10 -0
- package/src/components/Note.astro +10 -0
- package/src/components/Step.astro +11 -0
- package/src/components/Steps.astro +4 -0
- package/src/components/Tab.astro +9 -0
- package/src/components/Tabs.astro +9 -0
- package/src/components/Tip.astro +10 -0
- package/src/components/Warning.astro +10 -0
- package/src/core/answer-markdown.ts +109 -0
- package/src/core/assistant-api.ts +65 -0
- package/src/core/chunk.ts +134 -0
- package/src/core/config.ts +153 -0
- package/src/core/core.test.ts +253 -0
- package/src/core/corpus.ts +42 -0
- package/src/core/json-schema.ts +12 -0
- package/src/core/llms.ts +95 -0
- package/src/core/navigation.ts +88 -0
- package/src/core/theme.ts +111 -0
- package/src/integration.ts +229 -0
- package/src/locals.d.ts +6 -0
- package/src/overrides/Assistant.astro +72 -0
- package/src/overrides/Head.astro +12 -0
- package/src/overrides/PageFrame.astro +15 -0
- package/src/overrides/PageTitle.astro +94 -0
- package/src/overrides/Sidebar.astro +60 -0
- package/src/overrides/route-data.ts +33 -0
- package/src/styles/theme.css +773 -0
- package/src/virtual.d.ts +6 -0
- package/src/widget/client.ts +252 -0
- package/template/.astro/collections/docs.schema.json +651 -0
- package/template/.astro/content-assets.mjs +1 -0
- package/template/.astro/content-modules.mjs +18 -0
- package/template/.astro/content.d.ts +179 -0
- package/template/.astro/types.d.ts +2 -0
- package/template/.build/.well-known/llms.txt +38 -0
- package/template/.build/404.html +42 -0
- package/template/.build/_astro/Assistant.astro_astro_type_script_index_0_lang.DWgmlr85.js +4 -0
- package/template/.build/_astro/MobileTableOfContents.astro_astro_type_script_index_0_lang.C3fM4Kra.js +1 -0
- package/template/.build/_astro/Search.astro_astro_type_script_index_0_lang.g9hoxVJg.js +1 -0
- package/template/.build/_astro/TableOfContents.astro_astro_type_script_index_0_lang.BpJaGz7G.js +1 -0
- package/template/.build/_astro/common.8GHCkW7i.css +3 -0
- package/template/.build/_astro/ec.0vx5m.js +3 -0
- package/template/.build/_astro/ec.8nqtp.css +1 -0
- package/template/.build/_astro/geist-cyrillic-ext-wght-normal.DjL33-gN.woff2 +0 -0
- package/template/.build/_astro/geist-cyrillic-wght-normal.BEAKL7Jp.woff2 +0 -0
- package/template/.build/_astro/geist-latin-ext-wght-normal.DC-KSUi6.woff2 +0 -0
- package/template/.build/_astro/geist-latin-wght-normal.BgDaEnEv.woff2 +0 -0
- package/template/.build/_astro/geist-vietnamese-wght-normal.6IgcOCM7.woff2 +0 -0
- package/template/.build/_astro/inter-cyrillic-ext-wght-normal.BOeWTOD4.woff2 +0 -0
- package/template/.build/_astro/inter-cyrillic-wght-normal.DqGufNeO.woff2 +0 -0
- package/template/.build/_astro/inter-greek-ext-wght-normal.DlzME5K_.woff2 +0 -0
- package/template/.build/_astro/inter-greek-wght-normal.CkhJZR-_.woff2 +0 -0
- package/template/.build/_astro/inter-latin-ext-wght-normal.DO1Apj_S.woff2 +0 -0
- package/template/.build/_astro/inter-latin-wght-normal.Dx4kXJAl.woff2 +0 -0
- package/template/.build/_astro/inter-vietnamese-wght-normal.CBcvBZtf.woff2 +0 -0
- package/template/.build/_astro/logo-clair.BqNh6JNi.svg +1 -0
- package/template/.build/_astro/logo-sombre.BkgsFXxh.svg +1 -0
- package/template/.build/_astro/page.cNngjUgL.js +1 -0
- package/template/.build/_astro/print.ehPL0gv-.css +1 -0
- package/template/.build/_astro/starlight-toc.D4UDIxQL.js +1 -0
- package/template/.build/_astro/ui-core.Clh5jUUO.js +2 -0
- package/template/.build/_hgdc/corpus.json +1 -0
- package/template/.build/demarrer/premiere-doc/index.html +84 -0
- package/template/.build/demarrer/premiere-doc.md +65 -0
- package/template/.build/explications/donnees/index.html +114 -0
- package/template/.build/explications/donnees.md +28 -0
- package/template/.build/explications/fonctionnement/index.html +92 -0
- package/template/.build/explications/fonctionnement.md +32 -0
- package/template/.build/guides/agents/index.html +113 -0
- package/template/.build/guides/agents.md +40 -0
- package/template/.build/guides/assistant/index.html +117 -0
- package/template/.build/guides/assistant.md +42 -0
- package/template/.build/guides/composants/index.html +97 -0
- package/template/.build/guides/composants.md +103 -0
- package/template/.build/guides/ecrire/index.html +115 -0
- package/template/.build/guides/ecrire.md +63 -0
- package/template/.build/guides/navigation/index.html +89 -0
- package/template/.build/guides/navigation.md +63 -0
- package/template/.build/guides/publier/index.html +86 -0
- package/template/.build/guides/publier.md +65 -0
- package/template/.build/guides/theme/index.html +86 -0
- package/template/.build/guides/theme.md +33 -0
- package/template/.build/images/favicon.svg +1 -0
- package/template/.build/images/logo-clair.svg +1 -0
- package/template/.build/images/logo-sombre.svg +1 -0
- package/template/.build/index.html +87 -0
- package/template/.build/index.md +35 -0
- package/template/.build/llms-full.txt +830 -0
- package/template/.build/llms.txt +38 -0
- package/template/.build/pagefind/fragment/fr-ch_148313b.pf_fragment +0 -0
- package/template/.build/pagefind/fragment/fr-ch_424fd16.pf_fragment +0 -0
- package/template/.build/pagefind/fragment/fr-ch_4f8575c.pf_fragment +0 -0
- package/template/.build/pagefind/fragment/fr-ch_5a4d77d.pf_fragment +0 -0
- package/template/.build/pagefind/fragment/fr-ch_6c36edc.pf_fragment +0 -0
- package/template/.build/pagefind/fragment/fr-ch_73d7887.pf_fragment +0 -0
- package/template/.build/pagefind/fragment/fr-ch_8234ed3.pf_fragment +0 -0
- package/template/.build/pagefind/fragment/fr-ch_8f8a19e.pf_fragment +0 -0
- package/template/.build/pagefind/fragment/fr-ch_9f1b981.pf_fragment +0 -0
- package/template/.build/pagefind/fragment/fr-ch_a19039d.pf_fragment +0 -0
- package/template/.build/pagefind/fragment/fr-ch_d72cc1e.pf_fragment +0 -0
- package/template/.build/pagefind/fragment/fr-ch_d732215.pf_fragment +0 -0
- package/template/.build/pagefind/fragment/fr-ch_e2c46e3.pf_fragment +0 -0
- package/template/.build/pagefind/fragment/fr-ch_e78d58b.pf_fragment +0 -0
- package/template/.build/pagefind/fragment/fr-ch_e92f972.pf_fragment +0 -0
- package/template/.build/pagefind/index/fr-ch_f94c95d.pf_index +0 -0
- package/template/.build/pagefind/pagefind-component-ui.css +1509 -0
- package/template/.build/pagefind/pagefind-component-ui.js +56 -0
- package/template/.build/pagefind/pagefind-entry.json +1 -0
- package/template/.build/pagefind/pagefind-highlight.js +1070 -0
- package/template/.build/pagefind/pagefind-modular-ui.css +214 -0
- package/template/.build/pagefind/pagefind-modular-ui.js +8 -0
- package/template/.build/pagefind/pagefind-ui.css +1 -0
- package/template/.build/pagefind/pagefind-ui.js +2 -0
- package/template/.build/pagefind/pagefind-worker.js +6 -0
- package/template/.build/pagefind/pagefind.fr-ch_fb78ab42961f4.pf_meta +0 -0
- package/template/.build/pagefind/pagefind.js +6 -0
- package/template/.build/pagefind/wasm.fr-ch.pagefind +0 -0
- package/template/.build/pagefind/wasm.unknown.pagefind +0 -0
- package/template/.build/reference/api-assistant/index.html +161 -0
- package/template/.build/reference/api-assistant.md +60 -0
- package/template/.build/reference/cli/index.html +153 -0
- package/template/.build/reference/cli.md +31 -0
- package/template/.build/reference/docs-json/index.html +192 -0
- package/template/.build/reference/docs-json.md +43 -0
- package/template/.build/reference/mcp/index.html +151 -0
- package/template/.build/reference/mcp.md +49 -0
- package/template/astro.config.ts +6 -0
- package/template/node_modules/.vite/deps/_metadata.json +74 -0
- package/template/node_modules/.vite/deps/astro-B3JHJyiv.js +434 -0
- package/template/node_modules/.vite/deps/astro-B3JHJyiv.js.map +1 -0
- package/template/node_modules/.vite/deps/astro_n_aria-query.js +6390 -0
- package/template/node_modules/.vite/deps/astro_n_aria-query.js.map +1 -0
- package/template/node_modules/.vite/deps/astro_n_axobject-query.js +2705 -0
- package/template/node_modules/.vite/deps/astro_n_axobject-query.js.map +1 -0
- package/template/node_modules/.vite/deps/astro_n_html-escaper.js +65 -0
- package/template/node_modules/.vite/deps/astro_n_html-escaper.js.map +1 -0
- package/template/node_modules/.vite/deps/astro_runtime_client_dev-toolbar_entrypoint__js.js +455 -0
- package/template/node_modules/.vite/deps/astro_runtime_client_dev-toolbar_entrypoint__js.js.map +1 -0
- package/template/node_modules/.vite/deps/audit-Do8QH17W.js +1543 -0
- package/template/node_modules/.vite/deps/audit-Do8QH17W.js.map +1 -0
- package/template/node_modules/.vite/deps/highlight-BLtvqtzO.js +48 -0
- package/template/node_modules/.vite/deps/highlight-BLtvqtzO.js.map +1 -0
- package/template/node_modules/.vite/deps/icons-C92i61-2.js +42 -0
- package/template/node_modules/.vite/deps/icons-C92i61-2.js.map +1 -0
- package/template/node_modules/.vite/deps/package.json +3 -0
- package/template/node_modules/.vite/deps/rolldown-runtime-C3I60J0A.js +4 -0
- package/template/node_modules/.vite/deps/settings-BYmTKrLi.js +189 -0
- package/template/node_modules/.vite/deps/settings-BYmTKrLi.js.map +1 -0
- package/template/node_modules/.vite/deps/toolbar-CEKhukuK.js +461 -0
- package/template/node_modules/.vite/deps/toolbar-CEKhukuK.js.map +1 -0
- package/template/node_modules/.vite/deps/ui-library-BO4--ANp.js +1015 -0
- package/template/node_modules/.vite/deps/ui-library-BO4--ANp.js.map +1 -0
- package/template/node_modules/.vite/deps/window-vo3A6TMn.js +32 -0
- package/template/node_modules/.vite/deps/window-vo3A6TMn.js.map +1 -0
- package/template/node_modules/.vite/deps/xray-Lf9x6g8P.js +112 -0
- package/template/node_modules/.vite/deps/xray-Lf9x6g8P.js.map +1 -0
- package/template/src/content.config.ts +21 -0
- package/README.md +0 -3
|
@@ -0,0 +1,455 @@
|
|
|
1
|
+
import { loadDevToolbarApps } from "astro:toolbar:internal";
|
|
2
|
+
//#region ../../../node_modules/astro/dist/runtime/client/dev-toolbar/helpers.js
|
|
3
|
+
var ToolbarAppEventTarget = class extends EventTarget {
|
|
4
|
+
constructor() {
|
|
5
|
+
super();
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* Toggle the notification state of the toolbar
|
|
9
|
+
* @param options - The notification options
|
|
10
|
+
* @param options.state - The state of the notification
|
|
11
|
+
* @param options.level - The level of the notification, optional when state is false
|
|
12
|
+
*/
|
|
13
|
+
toggleNotification(options) {
|
|
14
|
+
this.dispatchEvent(new CustomEvent("toggle-notification", { detail: {
|
|
15
|
+
state: options.state,
|
|
16
|
+
level: options.state === true ? options.level : void 0
|
|
17
|
+
} }));
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Toggle the app state on or off
|
|
21
|
+
* @param options - The app state options
|
|
22
|
+
* @param options.state - The new state of the app
|
|
23
|
+
*/
|
|
24
|
+
toggleState(options) {
|
|
25
|
+
this.dispatchEvent(new CustomEvent("toggle-app", { detail: { state: options.state } }));
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Fired when the app is toggled on or off
|
|
29
|
+
* @param callback - The callback to run when the event is fired, takes an object with the new state
|
|
30
|
+
*/
|
|
31
|
+
onToggled(callback) {
|
|
32
|
+
this.addEventListener("app-toggled", (evt) => {
|
|
33
|
+
if (!(evt instanceof CustomEvent)) return;
|
|
34
|
+
callback(evt.detail);
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Fired when the toolbar placement is updated by the user
|
|
39
|
+
* @param callback - The callback to run when the event is fired, takes an object with the new placement
|
|
40
|
+
*/
|
|
41
|
+
onToolbarPlacementUpdated(callback) {
|
|
42
|
+
this.addEventListener("placement-updated", (evt) => {
|
|
43
|
+
if (!(evt instanceof CustomEvent)) return;
|
|
44
|
+
callback(evt.detail);
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
};
|
|
48
|
+
var serverHelpers = {
|
|
49
|
+
/**
|
|
50
|
+
* Send a message to the server, the payload can be any serializable data.
|
|
51
|
+
*
|
|
52
|
+
* The server can listen for this message in the `astro:server:config` hook of an Astro integration, using the `toolbar.on` method.
|
|
53
|
+
*
|
|
54
|
+
* @param event - The event name
|
|
55
|
+
* @param payload - The payload to send
|
|
56
|
+
*/
|
|
57
|
+
send: (event, payload) => {
|
|
58
|
+
if (import.meta.hot) import.meta.hot.send(event, payload);
|
|
59
|
+
},
|
|
60
|
+
/**
|
|
61
|
+
* Receive a message from the server.
|
|
62
|
+
* @param event - The event name
|
|
63
|
+
* @param callback - The callback to run when the event is received.
|
|
64
|
+
* The payload's content will be passed to the callback as an argument
|
|
65
|
+
*/
|
|
66
|
+
on: (event, callback) => {
|
|
67
|
+
if (import.meta.hot) import.meta.hot.on(event, callback);
|
|
68
|
+
}
|
|
69
|
+
};
|
|
70
|
+
//#endregion
|
|
71
|
+
//#region ../../../node_modules/astro/dist/runtime/client/dev-toolbar/ui-library/window.js
|
|
72
|
+
var placements = [
|
|
73
|
+
"bottom-left",
|
|
74
|
+
"bottom-center",
|
|
75
|
+
"bottom-right"
|
|
76
|
+
];
|
|
77
|
+
function isValidPlacement(value) {
|
|
78
|
+
return placements.map(String).includes(value);
|
|
79
|
+
}
|
|
80
|
+
var DevToolbarWindow = class extends HTMLElement {
|
|
81
|
+
shadowRoot;
|
|
82
|
+
_placement = defaultSettings.placement;
|
|
83
|
+
get placement() {
|
|
84
|
+
return this._placement;
|
|
85
|
+
}
|
|
86
|
+
set placement(value) {
|
|
87
|
+
if (!isValidPlacement(value)) {
|
|
88
|
+
settings.logger.error(`Invalid placement: ${value}, expected one of ${placements.join(", ")}, got ${value}.`);
|
|
89
|
+
return;
|
|
90
|
+
}
|
|
91
|
+
this._placement = value;
|
|
92
|
+
this.updateStyle();
|
|
93
|
+
}
|
|
94
|
+
static observedAttributes = ["placement"];
|
|
95
|
+
constructor() {
|
|
96
|
+
super();
|
|
97
|
+
this.shadowRoot = this.attachShadow({ mode: "open" });
|
|
98
|
+
}
|
|
99
|
+
async connectedCallback() {
|
|
100
|
+
this.shadowRoot.innerHTML = `
|
|
101
|
+
<style>
|
|
102
|
+
:host {
|
|
103
|
+
box-sizing: border-box;
|
|
104
|
+
display: flex;
|
|
105
|
+
flex-direction: column;
|
|
106
|
+
background: linear-gradient(0deg, #13151A, #13151A), linear-gradient(0deg, #343841, #343841);
|
|
107
|
+
border: 1px solid rgba(52, 56, 65, 1);
|
|
108
|
+
width: min(640px, 100%);
|
|
109
|
+
max-height: 480px;
|
|
110
|
+
border-radius: 12px;
|
|
111
|
+
padding: 24px;
|
|
112
|
+
font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
|
|
113
|
+
color: rgba(191, 193, 201, 1);
|
|
114
|
+
position: fixed;
|
|
115
|
+
z-index: 999999999;
|
|
116
|
+
bottom: 72px;
|
|
117
|
+
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);
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
@media (forced-colors: active) {
|
|
121
|
+
:host {
|
|
122
|
+
background: white;
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
@media (max-width: 640px) {
|
|
127
|
+
:host {
|
|
128
|
+
border-radius: 0;
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
::slotted(h1), ::slotted(h2), ::slotted(h3), ::slotted(h4), ::slotted(h5) {
|
|
133
|
+
font-weight: 600;
|
|
134
|
+
color: #fff;
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
::slotted(h1) {
|
|
138
|
+
font-size: 22px;
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
::slotted(h2) {
|
|
142
|
+
font-size: 20px;
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
::slotted(h3) {
|
|
146
|
+
font-size: 18px;
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
::slotted(h4) {
|
|
150
|
+
font-size: 16px;
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
::slotted(h5) {
|
|
154
|
+
font-size: 14px;
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
hr, ::slotted(hr) {
|
|
158
|
+
border: 1px solid rgba(27, 30, 36, 1);
|
|
159
|
+
margin: 1em 0;
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
p, ::slotted(p) {
|
|
163
|
+
line-height: 1.5em;
|
|
164
|
+
}
|
|
165
|
+
</style>
|
|
166
|
+
<style id="selected-style"></style>
|
|
167
|
+
|
|
168
|
+
<slot />
|
|
169
|
+
`;
|
|
170
|
+
this.updateStyle();
|
|
171
|
+
}
|
|
172
|
+
attributeChangedCallback() {
|
|
173
|
+
if (this.hasAttribute("placement")) this.placement = this.getAttribute("placement");
|
|
174
|
+
}
|
|
175
|
+
updateStyle() {
|
|
176
|
+
const style = this.shadowRoot.querySelector("#selected-style");
|
|
177
|
+
if (style) style.innerHTML = {
|
|
178
|
+
"bottom-left": `
|
|
179
|
+
:host {
|
|
180
|
+
left: 16px;
|
|
181
|
+
}
|
|
182
|
+
`,
|
|
183
|
+
"bottom-center": `
|
|
184
|
+
:host {
|
|
185
|
+
left: 50%;
|
|
186
|
+
transform: translateX(-50%);
|
|
187
|
+
}
|
|
188
|
+
`,
|
|
189
|
+
"bottom-right": `
|
|
190
|
+
:host {
|
|
191
|
+
right: 16px;
|
|
192
|
+
}
|
|
193
|
+
`
|
|
194
|
+
}[this.placement];
|
|
195
|
+
}
|
|
196
|
+
};
|
|
197
|
+
//#endregion
|
|
198
|
+
//#region ../../../node_modules/astro/dist/runtime/client/dev-toolbar/settings.js
|
|
199
|
+
var defaultSettings = {
|
|
200
|
+
disableAppNotification: false,
|
|
201
|
+
verbose: false,
|
|
202
|
+
placement: "bottom-center"
|
|
203
|
+
};
|
|
204
|
+
var settings = getSettings();
|
|
205
|
+
function getSettings() {
|
|
206
|
+
let _settings = { ...defaultSettings };
|
|
207
|
+
const configPlacement = globalThis.__astro_dev_toolbar__?.placement;
|
|
208
|
+
if (configPlacement && isValidPlacement(configPlacement)) _settings.placement = configPlacement;
|
|
209
|
+
const toolbarSettings = localStorage.getItem("astro:dev-toolbar:settings");
|
|
210
|
+
if (toolbarSettings) _settings = {
|
|
211
|
+
..._settings,
|
|
212
|
+
...JSON.parse(toolbarSettings)
|
|
213
|
+
};
|
|
214
|
+
function updateSetting(key, value) {
|
|
215
|
+
_settings[key] = value;
|
|
216
|
+
localStorage.setItem("astro:dev-toolbar:settings", JSON.stringify(_settings));
|
|
217
|
+
}
|
|
218
|
+
function log(message, level = "log") {
|
|
219
|
+
console[level](`%cAstro`, "background: linear-gradient(66.77deg, #D83333 0%, #F041FF 100%); color: white; padding-inline: 4px; border-radius: 2px; font-family: monospace;", message);
|
|
220
|
+
}
|
|
221
|
+
return {
|
|
222
|
+
get config() {
|
|
223
|
+
return _settings;
|
|
224
|
+
},
|
|
225
|
+
updateSetting,
|
|
226
|
+
logger: {
|
|
227
|
+
log,
|
|
228
|
+
warn: (message) => {
|
|
229
|
+
log(message, "warn");
|
|
230
|
+
},
|
|
231
|
+
error: (message) => {
|
|
232
|
+
log(message, "error");
|
|
233
|
+
},
|
|
234
|
+
verboseLog: (message) => {
|
|
235
|
+
if (_settings.verbose) log(message);
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
};
|
|
239
|
+
}
|
|
240
|
+
//#endregion
|
|
241
|
+
//#region ../../../node_modules/astro/dist/runtime/client/dev-toolbar/entrypoint.js
|
|
242
|
+
var overlay;
|
|
243
|
+
document.addEventListener("DOMContentLoaded", async () => {
|
|
244
|
+
const [customAppsDefinitions, { default: astroDevToolApp }, { default: astroAuditApp }, { default: astroXrayApp }, { default: astroSettingsApp }, { AstroDevToolbar, DevToolbarCanvas, getAppIcon }, { DevToolbarCard, DevToolbarHighlight, DevToolbarTooltip, DevToolbarWindow, DevToolbarToggle, DevToolbarButton, DevToolbarBadge, DevToolbarIcon, DevToolbarSelect, DevToolbarRadioCheckbox }] = await Promise.all([
|
|
245
|
+
loadDevToolbarApps(),
|
|
246
|
+
import("./astro-B3JHJyiv.js"),
|
|
247
|
+
import("./audit-Do8QH17W.js"),
|
|
248
|
+
import("./xray-Lf9x6g8P.js"),
|
|
249
|
+
import("./settings-BYmTKrLi.js"),
|
|
250
|
+
import("./toolbar-CEKhukuK.js"),
|
|
251
|
+
import("./ui-library-BO4--ANp.js")
|
|
252
|
+
]);
|
|
253
|
+
customElements.define("astro-dev-toolbar", AstroDevToolbar);
|
|
254
|
+
customElements.define("astro-dev-toolbar-window", DevToolbarWindow);
|
|
255
|
+
customElements.define("astro-dev-toolbar-app-canvas", DevToolbarCanvas);
|
|
256
|
+
customElements.define("astro-dev-toolbar-tooltip", DevToolbarTooltip);
|
|
257
|
+
customElements.define("astro-dev-toolbar-highlight", DevToolbarHighlight);
|
|
258
|
+
customElements.define("astro-dev-toolbar-card", DevToolbarCard);
|
|
259
|
+
customElements.define("astro-dev-toolbar-toggle", DevToolbarToggle);
|
|
260
|
+
customElements.define("astro-dev-toolbar-button", DevToolbarButton);
|
|
261
|
+
customElements.define("astro-dev-toolbar-badge", DevToolbarBadge);
|
|
262
|
+
customElements.define("astro-dev-toolbar-icon", DevToolbarIcon);
|
|
263
|
+
customElements.define("astro-dev-toolbar-select", DevToolbarSelect);
|
|
264
|
+
customElements.define("astro-dev-toolbar-radio-checkbox", DevToolbarRadioCheckbox);
|
|
265
|
+
overlay = document.createElement("astro-dev-toolbar");
|
|
266
|
+
const notificationLevels = [
|
|
267
|
+
"error",
|
|
268
|
+
"warning",
|
|
269
|
+
"info"
|
|
270
|
+
];
|
|
271
|
+
const notificationSVGs = {
|
|
272
|
+
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>",
|
|
273
|
+
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>",
|
|
274
|
+
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>"
|
|
275
|
+
};
|
|
276
|
+
const prepareApp = (appDefinition, builtIn) => {
|
|
277
|
+
const eventTarget = new ToolbarAppEventTarget();
|
|
278
|
+
const app = {
|
|
279
|
+
...appDefinition,
|
|
280
|
+
builtIn,
|
|
281
|
+
active: false,
|
|
282
|
+
status: "loading",
|
|
283
|
+
notification: {
|
|
284
|
+
state: false,
|
|
285
|
+
level: void 0
|
|
286
|
+
},
|
|
287
|
+
eventTarget
|
|
288
|
+
};
|
|
289
|
+
eventTarget.addEventListener("toggle-notification", (evt) => {
|
|
290
|
+
if (!(evt instanceof CustomEvent)) return;
|
|
291
|
+
const target = overlay.shadowRoot?.querySelector(`[data-app-id="${app.id}"]`);
|
|
292
|
+
if (!target) return;
|
|
293
|
+
const notificationElement = target.querySelector(".notification");
|
|
294
|
+
if (!notificationElement) return;
|
|
295
|
+
let newState = evt.detail.state ?? true;
|
|
296
|
+
let level = notificationLevels.includes(evt?.detail?.level) ? evt.detail.level : "error";
|
|
297
|
+
app.notification.state = newState;
|
|
298
|
+
if (newState) app.notification.level = level;
|
|
299
|
+
notificationElement.toggleAttribute("data-active", newState);
|
|
300
|
+
if (newState) {
|
|
301
|
+
notificationElement.setAttribute("data-level", level);
|
|
302
|
+
notificationElement.innerHTML = notificationSVGs[level];
|
|
303
|
+
}
|
|
304
|
+
});
|
|
305
|
+
const onToggleApp = async (evt) => {
|
|
306
|
+
let newState = void 0;
|
|
307
|
+
if (evt instanceof CustomEvent) newState = evt.detail.state ?? true;
|
|
308
|
+
await overlay.setAppStatus(app, newState);
|
|
309
|
+
};
|
|
310
|
+
eventTarget.addEventListener("toggle-app", onToggleApp);
|
|
311
|
+
return app;
|
|
312
|
+
};
|
|
313
|
+
const apps = [...[
|
|
314
|
+
astroDevToolApp,
|
|
315
|
+
astroXrayApp,
|
|
316
|
+
astroAuditApp,
|
|
317
|
+
astroSettingsApp,
|
|
318
|
+
{
|
|
319
|
+
id: "astro:more",
|
|
320
|
+
name: "More",
|
|
321
|
+
icon: "dots-three",
|
|
322
|
+
init(canvas, eventTarget) {
|
|
323
|
+
const hiddenApps = apps.filter((p) => !p.builtIn).slice(overlay.customAppsToShow);
|
|
324
|
+
createDropdown();
|
|
325
|
+
document.addEventListener("astro:after-swap", createDropdown);
|
|
326
|
+
function createDropdown() {
|
|
327
|
+
const style = document.createElement("style");
|
|
328
|
+
style.innerHTML = `
|
|
329
|
+
#dropdown {
|
|
330
|
+
background: rgba(19, 21, 26, 1);
|
|
331
|
+
border: 1px solid rgba(52, 56, 65, 1);
|
|
332
|
+
border-radius: 12px;
|
|
333
|
+
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);
|
|
334
|
+
width: 192px;
|
|
335
|
+
padding: 8px;
|
|
336
|
+
z-index: 2000000010;
|
|
337
|
+
transform: translate(-50%, 0%);
|
|
338
|
+
position: fixed;
|
|
339
|
+
bottom: 72px;
|
|
340
|
+
left: 50%;
|
|
341
|
+
}
|
|
342
|
+
|
|
343
|
+
.notification {
|
|
344
|
+
display: none;
|
|
345
|
+
position: absolute;
|
|
346
|
+
top: -4px;
|
|
347
|
+
right: -5px;
|
|
348
|
+
width: 12px;
|
|
349
|
+
height: 10px;
|
|
350
|
+
}
|
|
351
|
+
|
|
352
|
+
.notification svg {
|
|
353
|
+
display: block;
|
|
354
|
+
}
|
|
355
|
+
|
|
356
|
+
#dropdown:not([data-no-notification]) .notification[data-active] {
|
|
357
|
+
display: block;
|
|
358
|
+
}
|
|
359
|
+
|
|
360
|
+
#dropdown button {
|
|
361
|
+
border: 0;
|
|
362
|
+
background: transparent;
|
|
363
|
+
color: white;
|
|
364
|
+
font-family: system-ui, sans-serif;
|
|
365
|
+
font-size: 14px;
|
|
366
|
+
white-space: nowrap;
|
|
367
|
+
text-decoration: none;
|
|
368
|
+
margin: 0;
|
|
369
|
+
display: flex;
|
|
370
|
+
align-items: center;
|
|
371
|
+
width: 100%;
|
|
372
|
+
padding: 8px;
|
|
373
|
+
border-radius: 8px;
|
|
374
|
+
}
|
|
375
|
+
|
|
376
|
+
#dropdown button:hover, #dropdown button:focus-visible {
|
|
377
|
+
background: #FFFFFF20;
|
|
378
|
+
cursor: pointer;
|
|
379
|
+
}
|
|
380
|
+
|
|
381
|
+
#dropdown button.active {
|
|
382
|
+
background: rgba(71, 78, 94, 1);
|
|
383
|
+
}
|
|
384
|
+
|
|
385
|
+
#dropdown .icon {
|
|
386
|
+
position: relative;
|
|
387
|
+
height: 20px;
|
|
388
|
+
width: 20px;
|
|
389
|
+
padding: 1px;
|
|
390
|
+
margin-right: 0.5em;
|
|
391
|
+
}
|
|
392
|
+
|
|
393
|
+
#dropdown .icon svg {
|
|
394
|
+
max-height: 100%;
|
|
395
|
+
max-width: 100%;
|
|
396
|
+
}
|
|
397
|
+
`;
|
|
398
|
+
canvas.append(style);
|
|
399
|
+
const dropdown = document.createElement("div");
|
|
400
|
+
dropdown.id = "dropdown";
|
|
401
|
+
dropdown.toggleAttribute("data-no-notification", settings.config.disableAppNotification);
|
|
402
|
+
for (const app of hiddenApps) {
|
|
403
|
+
const buttonContainer = document.createElement("div");
|
|
404
|
+
buttonContainer.classList.add("item");
|
|
405
|
+
const button = document.createElement("button");
|
|
406
|
+
button.setAttribute("data-app-id", app.id);
|
|
407
|
+
const iconContainer = document.createElement("div");
|
|
408
|
+
const iconElement = document.createElement("template");
|
|
409
|
+
iconElement.innerHTML = app.icon ? getAppIcon(app.icon) : "?";
|
|
410
|
+
iconContainer.append(iconElement.content.cloneNode(true));
|
|
411
|
+
const notification = document.createElement("div");
|
|
412
|
+
notification.classList.add("notification");
|
|
413
|
+
iconContainer.append(notification);
|
|
414
|
+
iconContainer.classList.add("icon");
|
|
415
|
+
button.append(iconContainer);
|
|
416
|
+
button.append(document.createTextNode(app.name));
|
|
417
|
+
button.addEventListener("click", () => {
|
|
418
|
+
overlay.toggleAppStatus(app);
|
|
419
|
+
});
|
|
420
|
+
buttonContainer.append(button);
|
|
421
|
+
dropdown.append(buttonContainer);
|
|
422
|
+
app.eventTarget.addEventListener("toggle-notification", (evt) => {
|
|
423
|
+
if (!(evt instanceof CustomEvent)) return;
|
|
424
|
+
let newState = evt.detail.state ?? true;
|
|
425
|
+
let level = notificationLevels.includes(evt?.detail?.level) ? evt.detail.level : "error";
|
|
426
|
+
notification.toggleAttribute("data-active", newState);
|
|
427
|
+
if (newState) {
|
|
428
|
+
notification.setAttribute("data-level", level);
|
|
429
|
+
notification.innerHTML = notificationSVGs[level];
|
|
430
|
+
}
|
|
431
|
+
app.notification.state = newState;
|
|
432
|
+
if (newState) app.notification.level = level;
|
|
433
|
+
eventTarget.dispatchEvent(new CustomEvent("toggle-notification", { detail: {
|
|
434
|
+
state: hiddenApps.some((p) => p.notification.state === true),
|
|
435
|
+
level: [
|
|
436
|
+
"error",
|
|
437
|
+
"warning",
|
|
438
|
+
"info"
|
|
439
|
+
].find((notificationLevel) => hiddenApps.some((p) => p.notification.state === true && p.notification.level === notificationLevel)) ?? "error"
|
|
440
|
+
} }));
|
|
441
|
+
});
|
|
442
|
+
}
|
|
443
|
+
canvas.append(dropdown);
|
|
444
|
+
}
|
|
445
|
+
}
|
|
446
|
+
}
|
|
447
|
+
].map((appDef) => prepareApp(appDef, true)), ...customAppsDefinitions.map((appDef) => prepareApp(appDef, false))];
|
|
448
|
+
overlay.apps = apps;
|
|
449
|
+
document.body.append(overlay);
|
|
450
|
+
document.addEventListener("astro:after-swap", () => {
|
|
451
|
+
document.body.append(overlay);
|
|
452
|
+
});
|
|
453
|
+
});
|
|
454
|
+
//#endregion
|
|
455
|
+
export { serverHelpers as a, placements as i, DevToolbarWindow as n, isValidPlacement as r, settings as t };
|
package/template/node_modules/.vite/deps/astro_runtime_client_dev-toolbar_entrypoint__js.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"astro_runtime_client_dev-toolbar_entrypoint__js.js","names":[],"sources":["../../../../../../node_modules/astro/dist/runtime/client/dev-toolbar/helpers.js","../../../../../../node_modules/astro/dist/runtime/client/dev-toolbar/ui-library/window.js","../../../../../../node_modules/astro/dist/runtime/client/dev-toolbar/settings.js","../../../../../../node_modules/astro/dist/runtime/client/dev-toolbar/entrypoint.js"],"sourcesContent":["export class ToolbarAppEventTarget extends EventTarget {\n\tconstructor() {\n\t\tsuper();\n\t}\n\t/**\n\t* Toggle the notification state of the toolbar\n\t* @param options - The notification options\n\t* @param options.state - The state of the notification\n\t* @param options.level - The level of the notification, optional when state is false\n\t*/\n\ttoggleNotification(options) {\n\t\tthis.dispatchEvent(new CustomEvent(\"toggle-notification\", { detail: {\n\t\t\tstate: options.state,\n\t\t\tlevel: options.state === true ? options.level : undefined\n\t\t} }));\n\t}\n\t/**\n\t* Toggle the app state on or off\n\t* @param options - The app state options\n\t* @param options.state - The new state of the app\n\t*/\n\ttoggleState(options) {\n\t\tthis.dispatchEvent(new CustomEvent(\"toggle-app\", { detail: { state: options.state } }));\n\t}\n\t/**\n\t* Fired when the app is toggled on or off\n\t* @param callback - The callback to run when the event is fired, takes an object with the new state\n\t*/\n\tonToggled(callback) {\n\t\tthis.addEventListener(\"app-toggled\", (evt) => {\n\t\t\tif (!(evt instanceof CustomEvent)) return;\n\t\t\tcallback(evt.detail);\n\t\t});\n\t}\n\t/**\n\t* Fired when the toolbar placement is updated by the user\n\t* @param callback - The callback to run when the event is fired, takes an object with the new placement\n\t*/\n\tonToolbarPlacementUpdated(callback) {\n\t\tthis.addEventListener(\"placement-updated\", (evt) => {\n\t\t\tif (!(evt instanceof CustomEvent)) return;\n\t\t\tcallback(evt.detail);\n\t\t});\n\t}\n}\nexport const serverHelpers = {\n\t/**\n\t* Send a message to the server, the payload can be any serializable data.\n\t*\n\t* The server can listen for this message in the `astro:server:config` hook of an Astro integration, using the `toolbar.on` method.\n\t*\n\t* @param event - The event name\n\t* @param payload - The payload to send\n\t*/\n\tsend: (event, payload) => {\n\t\tif (import.meta.hot) {\n\t\t\timport.meta.hot.send(event, payload);\n\t\t}\n\t},\n\t/**\n\t* Receive a message from the server.\n\t* @param event - The event name\n\t* @param callback - The callback to run when the event is received.\n\t* The payload's content will be passed to the callback as an argument\n\t*/\n\ton: (event, callback) => {\n\t\tif (import.meta.hot) {\n\t\t\timport.meta.hot.on(event, callback);\n\t\t}\n\t}\n};\n","import { defaultSettings, settings } from \"../settings.js\";\nexport const placements = [\n\t\"bottom-left\",\n\t\"bottom-center\",\n\t\"bottom-right\"\n];\nexport function isValidPlacement(value) {\n\treturn placements.map(String).includes(value);\n}\nexport class DevToolbarWindow extends HTMLElement {\n\tshadowRoot;\n\t_placement = defaultSettings.placement;\n\tget placement() {\n\t\treturn this._placement;\n\t}\n\tset placement(value) {\n\t\tif (!isValidPlacement(value)) {\n\t\t\tsettings.logger.error(`Invalid placement: ${value}, expected one of ${placements.join(\", \")}, got ${value}.`);\n\t\t\treturn;\n\t\t}\n\t\tthis._placement = value;\n\t\tthis.updateStyle();\n\t}\n\tstatic observedAttributes = [\"placement\"];\n\tconstructor() {\n\t\tsuper();\n\t\tthis.shadowRoot = this.attachShadow({ mode: \"open\" });\n\t}\n\tasync connectedCallback() {\n\t\tthis.shadowRoot.innerHTML = `\n\t\t\t<style>\n\t\t\t\t:host {\n\t\t\t\t\tbox-sizing: border-box;\n\t\t\t\t\tdisplay: flex;\n\t\t\t\t\tflex-direction: column;\n\t\t\t\t\tbackground: linear-gradient(0deg, #13151A, #13151A), linear-gradient(0deg, #343841, #343841);\n\t\t\t\t\tborder: 1px solid rgba(52, 56, 65, 1);\n\t\t\t\t\twidth: min(640px, 100%);\n\t\t\t\t\tmax-height: 480px;\n\t\t\t\t\tborder-radius: 12px;\n\t\t\t\t\tpadding: 24px;\n\t\t\t\t\tfont-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n\t\t\t\t\tcolor: rgba(191, 193, 201, 1);\n\t\t\t\t\tposition: fixed;\n\t\t\t\t\tz-index: 999999999;\n\t\t\t\t\tbottom: 72px;\n\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}\n\n\t\t\t\t@media (forced-colors: active) {\n\t\t\t\t\t:host {\n\t\t\t\t\t\tbackground: white;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t@media (max-width: 640px) {\n\t\t\t\t\t:host {\n\t\t\t\t\t\tborder-radius: 0;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t::slotted(h1), ::slotted(h2), ::slotted(h3), ::slotted(h4), ::slotted(h5) {\n\t\t\t\t\tfont-weight: 600;\n\t\t\t\t\tcolor: #fff;\n\t\t\t\t}\n\n\t\t\t\t::slotted(h1) {\n\t\t\t\t\tfont-size: 22px;\n\t\t\t\t}\n\n\t\t\t\t::slotted(h2) {\n\t\t\t\t\tfont-size: 20px;\n\t\t\t\t}\n\n\t\t\t\t::slotted(h3) {\n\t\t\t\t\tfont-size: 18px;\n\t\t\t\t}\n\n\t\t\t\t::slotted(h4) {\n\t\t\t\t\tfont-size: 16px;\n\t\t\t\t}\n\n\t\t\t\t::slotted(h5) {\n\t\t\t\t\tfont-size: 14px;\n\t\t\t\t}\n\n\t\t\t\thr, ::slotted(hr) {\n\t\t\t\t\tborder: 1px solid rgba(27, 30, 36, 1);\n\t\t\t\t\tmargin: 1em 0;\n\t\t\t\t}\n\n\t\t\t\tp, ::slotted(p) {\n\t\t\t\t\tline-height: 1.5em;\n\t\t\t\t}\n\t\t\t</style>\n\t\t\t<style id=\"selected-style\"></style>\n\n\t\t\t<slot />\n\t\t`;\n\t\tthis.updateStyle();\n\t}\n\tattributeChangedCallback() {\n\t\tif (this.hasAttribute(\"placement\")) this.placement = this.getAttribute(\"placement\");\n\t}\n\tupdateStyle() {\n\t\tconst style = this.shadowRoot.querySelector(\"#selected-style\");\n\t\tif (style) {\n\t\t\tconst styleMap = {\n\t\t\t\t\"bottom-left\": `\n\t\t\t\t\t:host {\n\t\t\t\t\t\tleft: 16px;\n\t\t\t\t\t}\n\t\t\t\t`,\n\t\t\t\t\"bottom-center\": `\n\t\t\t\t\t:host {\n\t\t\t\t\t\tleft: 50%;\n\t\t\t\t\t\ttransform: translateX(-50%);\n\t\t\t\t\t}\n\t\t\t\t`,\n\t\t\t\t\"bottom-right\": `\n\t\t\t\t\t:host {\n\t\t\t\t\t\tright: 16px;\n\t\t\t\t\t}\n\t\t\t\t`\n\t\t\t};\n\t\t\tstyle.innerHTML = styleMap[this.placement];\n\t\t}\n\t}\n}\n","import { isValidPlacement } from \"./ui-library/window.js\";\nexport const defaultSettings = {\n\tdisableAppNotification: false,\n\tverbose: false,\n\tplacement: \"bottom-center\"\n};\nexport const settings = getSettings();\nfunction getSettings() {\n\t// 1. Start with hardcoded defaults\n\tlet _settings = { ...defaultSettings };\n\t// 2. Override with config placement (if provided)\n\tconst configPlacement = globalThis.__astro_dev_toolbar__?.placement;\n\tif (configPlacement && isValidPlacement(configPlacement)) {\n\t\t_settings.placement = configPlacement;\n\t}\n\t// 3. Override with localStorage (preserves user's UI choice)\n\tconst toolbarSettings = localStorage.getItem(\"astro:dev-toolbar:settings\");\n\tif (toolbarSettings) {\n\t\t_settings = {\n\t\t\t..._settings,\n\t\t\t...JSON.parse(toolbarSettings)\n\t\t};\n\t}\n\tfunction updateSetting(key, value) {\n\t\t_settings[key] = value;\n\t\tlocalStorage.setItem(\"astro:dev-toolbar:settings\", JSON.stringify(_settings));\n\t}\n\tfunction log(message, level = \"log\") {\n\t\t// biome-ignore lint/suspicious/noConsole: it can't infer types yet\n\t\tconsole[level](`%cAstro`, \"background: linear-gradient(66.77deg, #D83333 0%, #F041FF 100%); color: white; padding-inline: 4px; border-radius: 2px; font-family: monospace;\", message);\n\t}\n\treturn {\n\t\tget config() {\n\t\t\treturn _settings;\n\t\t},\n\t\tupdateSetting,\n\t\tlogger: {\n\t\t\tlog,\n\t\t\twarn: (message) => {\n\t\t\t\tlog(message, \"warn\");\n\t\t\t},\n\t\t\terror: (message) => {\n\t\t\t\tlog(message, \"error\");\n\t\t\t},\n\t\t\tverboseLog: (message) => {\n\t\t\t\tif (_settings.verbose) {\n\t\t\t\t\tlog(message);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n}\n","// @ts-expect-error - This module is private and untyped\nimport { loadDevToolbarApps } from \"astro:toolbar:internal\";\nimport { ToolbarAppEventTarget } from \"./helpers.js\";\nimport { settings } from \"./settings.js\";\nlet overlay;\ndocument.addEventListener(\"DOMContentLoaded\", async () => {\n\tconst [customAppsDefinitions, { default: astroDevToolApp }, { default: astroAuditApp }, { default: astroXrayApp }, { default: astroSettingsApp }, { AstroDevToolbar, DevToolbarCanvas, getAppIcon }, { DevToolbarCard, DevToolbarHighlight, DevToolbarTooltip, DevToolbarWindow, DevToolbarToggle, DevToolbarButton, DevToolbarBadge, DevToolbarIcon, DevToolbarSelect, DevToolbarRadioCheckbox }] = await Promise.all([\n\t\tloadDevToolbarApps(),\n\t\timport(\"./apps/astro.js\"),\n\t\timport(\"./apps/audit/index.js\"),\n\t\timport(\"./apps/xray.js\"),\n\t\timport(\"./apps/settings.js\"),\n\t\timport(\"./toolbar.js\"),\n\t\timport(\"./ui-library/index.js\")\n\t]);\n\t// Register custom elements\n\tcustomElements.define(\"astro-dev-toolbar\", AstroDevToolbar);\n\tcustomElements.define(\"astro-dev-toolbar-window\", DevToolbarWindow);\n\tcustomElements.define(\"astro-dev-toolbar-app-canvas\", DevToolbarCanvas);\n\tcustomElements.define(\"astro-dev-toolbar-tooltip\", DevToolbarTooltip);\n\tcustomElements.define(\"astro-dev-toolbar-highlight\", DevToolbarHighlight);\n\tcustomElements.define(\"astro-dev-toolbar-card\", DevToolbarCard);\n\tcustomElements.define(\"astro-dev-toolbar-toggle\", DevToolbarToggle);\n\tcustomElements.define(\"astro-dev-toolbar-button\", DevToolbarButton);\n\tcustomElements.define(\"astro-dev-toolbar-badge\", DevToolbarBadge);\n\tcustomElements.define(\"astro-dev-toolbar-icon\", DevToolbarIcon);\n\tcustomElements.define(\"astro-dev-toolbar-select\", DevToolbarSelect);\n\tcustomElements.define(\"astro-dev-toolbar-radio-checkbox\", DevToolbarRadioCheckbox);\n\toverlay = document.createElement(\"astro-dev-toolbar\");\n\tconst notificationLevels = [\n\t\t\"error\",\n\t\t\"warning\",\n\t\t\"info\"\n\t];\n\tconst notificationSVGs = {\n\t\terror: \"<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\t\twarning: \"<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\t\tinfo: \"<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\t};\n\tconst prepareApp = (appDefinition, builtIn) => {\n\t\tconst eventTarget = new ToolbarAppEventTarget();\n\t\tconst app = {\n\t\t\t...appDefinition,\n\t\t\tbuiltIn,\n\t\t\tactive: false,\n\t\t\tstatus: \"loading\",\n\t\t\tnotification: {\n\t\t\t\tstate: false,\n\t\t\t\tlevel: undefined\n\t\t\t},\n\t\t\teventTarget\n\t\t};\n\t\t// Events apps can send to the overlay to update their status\n\t\teventTarget.addEventListener(\"toggle-notification\", (evt) => {\n\t\t\tif (!(evt instanceof CustomEvent)) return;\n\t\t\tconst target = overlay.shadowRoot?.querySelector(`[data-app-id=\"${app.id}\"]`);\n\t\t\tif (!target) return;\n\t\t\tconst notificationElement = target.querySelector(\".notification\");\n\t\t\tif (!notificationElement) return;\n\t\t\tlet newState = evt.detail.state ?? true;\n\t\t\tlet level = notificationLevels.includes(evt?.detail?.level) ? evt.detail.level : \"error\";\n\t\t\tapp.notification.state = newState;\n\t\t\tif (newState) app.notification.level = level;\n\t\t\tnotificationElement.toggleAttribute(\"data-active\", newState);\n\t\t\tif (newState) {\n\t\t\t\tnotificationElement.setAttribute(\"data-level\", level);\n\t\t\t\tnotificationElement.innerHTML = notificationSVGs[level];\n\t\t\t}\n\t\t});\n\t\tconst onToggleApp = async (evt) => {\n\t\t\tlet newState = undefined;\n\t\t\tif (evt instanceof CustomEvent) {\n\t\t\t\tnewState = evt.detail.state ?? true;\n\t\t\t}\n\t\t\tawait overlay.setAppStatus(app, newState);\n\t\t};\n\t\teventTarget.addEventListener(\"toggle-app\", onToggleApp);\n\t\treturn app;\n\t};\n\tconst astroMoreApp = {\n\t\tid: \"astro:more\",\n\t\tname: \"More\",\n\t\ticon: \"dots-three\",\n\t\tinit(canvas, eventTarget) {\n\t\t\tconst hiddenApps = apps.filter((p) => !p.builtIn).slice(overlay.customAppsToShow);\n\t\t\tcreateDropdown();\n\t\t\tdocument.addEventListener(\"astro:after-swap\", createDropdown);\n\t\t\tfunction createDropdown() {\n\t\t\t\tconst style = document.createElement(\"style\");\n\t\t\t\tstyle.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\t\t\t\tcanvas.append(style);\n\t\t\t\tconst dropdown = document.createElement(\"div\");\n\t\t\t\tdropdown.id = \"dropdown\";\n\t\t\t\tdropdown.toggleAttribute(\"data-no-notification\", settings.config.disableAppNotification);\n\t\t\t\tfor (const app of hiddenApps) {\n\t\t\t\t\tconst buttonContainer = document.createElement(\"div\");\n\t\t\t\t\tbuttonContainer.classList.add(\"item\");\n\t\t\t\t\tconst button = document.createElement(\"button\");\n\t\t\t\t\tbutton.setAttribute(\"data-app-id\", app.id);\n\t\t\t\t\tconst iconContainer = document.createElement(\"div\");\n\t\t\t\t\tconst iconElement = document.createElement(\"template\");\n\t\t\t\t\ticonElement.innerHTML = app.icon ? getAppIcon(app.icon) : \"?\";\n\t\t\t\t\ticonContainer.append(iconElement.content.cloneNode(true));\n\t\t\t\t\tconst notification = document.createElement(\"div\");\n\t\t\t\t\tnotification.classList.add(\"notification\");\n\t\t\t\t\ticonContainer.append(notification);\n\t\t\t\t\ticonContainer.classList.add(\"icon\");\n\t\t\t\t\tbutton.append(iconContainer);\n\t\t\t\t\tbutton.append(document.createTextNode(app.name));\n\t\t\t\t\tbutton.addEventListener(\"click\", () => {\n\t\t\t\t\t\toverlay.toggleAppStatus(app);\n\t\t\t\t\t});\n\t\t\t\t\tbuttonContainer.append(button);\n\t\t\t\t\tdropdown.append(buttonContainer);\n\t\t\t\t\tapp.eventTarget.addEventListener(\"toggle-notification\", (evt) => {\n\t\t\t\t\t\tif (!(evt instanceof CustomEvent)) return;\n\t\t\t\t\t\tlet newState = evt.detail.state ?? true;\n\t\t\t\t\t\tlet level = notificationLevels.includes(evt?.detail?.level) ? evt.detail.level : \"error\";\n\t\t\t\t\t\tnotification.toggleAttribute(\"data-active\", newState);\n\t\t\t\t\t\tif (newState) {\n\t\t\t\t\t\t\tnotification.setAttribute(\"data-level\", level);\n\t\t\t\t\t\t\tnotification.innerHTML = notificationSVGs[level];\n\t\t\t\t\t\t}\n\t\t\t\t\t\tapp.notification.state = newState;\n\t\t\t\t\t\tif (newState) app.notification.level = level;\n\t\t\t\t\t\teventTarget.dispatchEvent(new CustomEvent(\"toggle-notification\", { detail: {\n\t\t\t\t\t\t\tstate: hiddenApps.some((p) => p.notification.state === true),\n\t\t\t\t\t\t\tlevel: [\n\t\t\t\t\t\t\t\t\"error\",\n\t\t\t\t\t\t\t\t\"warning\",\n\t\t\t\t\t\t\t\t\"info\"\n\t\t\t\t\t\t\t].find((notificationLevel) => hiddenApps.some((p) => p.notification.state === true && p.notification.level === notificationLevel)) ?? \"error\"\n\t\t\t\t\t\t} }));\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tcanvas.append(dropdown);\n\t\t\t}\n\t\t}\n\t};\n\tconst apps = [...[\n\t\tastroDevToolApp,\n\t\tastroXrayApp,\n\t\tastroAuditApp,\n\t\tastroSettingsApp,\n\t\tastroMoreApp\n\t].map((appDef) => prepareApp(appDef, true)), ...customAppsDefinitions.map((appDef) => prepareApp(appDef, false))];\n\toverlay.apps = apps;\n\tdocument.body.append(overlay);\n\tdocument.addEventListener(\"astro:after-swap\", () => {\n\t\tdocument.body.append(overlay);\n\t});\n});\n"],"ignoreList":[0,1,2,3],"mappings":"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"}
|