@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.
Files changed (175) hide show
  1. package/bin/hgdc-docs.mjs +48 -0
  2. package/docs.schema.json +294 -0
  3. package/package.json +50 -4
  4. package/src/build/auto-import.ts +74 -0
  5. package/src/build/markdown.ts +114 -0
  6. package/src/build/outputs.ts +91 -0
  7. package/src/build/public-files.test.ts +29 -0
  8. package/src/build/public-files.ts +35 -0
  9. package/src/components/Accordion.astro +12 -0
  10. package/src/components/AccordionGroup.astro +4 -0
  11. package/src/components/Card.astro +15 -0
  12. package/src/components/CardGroup.astro +8 -0
  13. package/src/components/Check.astro +10 -0
  14. package/src/components/CodeGroup.astro +4 -0
  15. package/src/components/Columns.astro +8 -0
  16. package/src/components/Danger.astro +10 -0
  17. package/src/components/Frame.astro +11 -0
  18. package/src/components/Info.astro +10 -0
  19. package/src/components/Note.astro +10 -0
  20. package/src/components/Step.astro +11 -0
  21. package/src/components/Steps.astro +4 -0
  22. package/src/components/Tab.astro +9 -0
  23. package/src/components/Tabs.astro +9 -0
  24. package/src/components/Tip.astro +10 -0
  25. package/src/components/Warning.astro +10 -0
  26. package/src/core/answer-markdown.ts +109 -0
  27. package/src/core/assistant-api.ts +65 -0
  28. package/src/core/chunk.ts +134 -0
  29. package/src/core/config.ts +153 -0
  30. package/src/core/core.test.ts +253 -0
  31. package/src/core/corpus.ts +42 -0
  32. package/src/core/json-schema.ts +12 -0
  33. package/src/core/llms.ts +95 -0
  34. package/src/core/navigation.ts +88 -0
  35. package/src/core/theme.ts +111 -0
  36. package/src/integration.ts +229 -0
  37. package/src/locals.d.ts +6 -0
  38. package/src/overrides/Assistant.astro +72 -0
  39. package/src/overrides/Head.astro +12 -0
  40. package/src/overrides/PageFrame.astro +15 -0
  41. package/src/overrides/PageTitle.astro +94 -0
  42. package/src/overrides/Sidebar.astro +60 -0
  43. package/src/overrides/route-data.ts +33 -0
  44. package/src/styles/theme.css +773 -0
  45. package/src/virtual.d.ts +6 -0
  46. package/src/widget/client.ts +252 -0
  47. package/template/.astro/collections/docs.schema.json +651 -0
  48. package/template/.astro/content-assets.mjs +1 -0
  49. package/template/.astro/content-modules.mjs +18 -0
  50. package/template/.astro/content.d.ts +179 -0
  51. package/template/.astro/types.d.ts +2 -0
  52. package/template/.build/.well-known/llms.txt +38 -0
  53. package/template/.build/404.html +42 -0
  54. package/template/.build/_astro/Assistant.astro_astro_type_script_index_0_lang.DWgmlr85.js +4 -0
  55. package/template/.build/_astro/MobileTableOfContents.astro_astro_type_script_index_0_lang.C3fM4Kra.js +1 -0
  56. package/template/.build/_astro/Search.astro_astro_type_script_index_0_lang.g9hoxVJg.js +1 -0
  57. package/template/.build/_astro/TableOfContents.astro_astro_type_script_index_0_lang.BpJaGz7G.js +1 -0
  58. package/template/.build/_astro/common.8GHCkW7i.css +3 -0
  59. package/template/.build/_astro/ec.0vx5m.js +3 -0
  60. package/template/.build/_astro/ec.8nqtp.css +1 -0
  61. package/template/.build/_astro/geist-cyrillic-ext-wght-normal.DjL33-gN.woff2 +0 -0
  62. package/template/.build/_astro/geist-cyrillic-wght-normal.BEAKL7Jp.woff2 +0 -0
  63. package/template/.build/_astro/geist-latin-ext-wght-normal.DC-KSUi6.woff2 +0 -0
  64. package/template/.build/_astro/geist-latin-wght-normal.BgDaEnEv.woff2 +0 -0
  65. package/template/.build/_astro/geist-vietnamese-wght-normal.6IgcOCM7.woff2 +0 -0
  66. package/template/.build/_astro/inter-cyrillic-ext-wght-normal.BOeWTOD4.woff2 +0 -0
  67. package/template/.build/_astro/inter-cyrillic-wght-normal.DqGufNeO.woff2 +0 -0
  68. package/template/.build/_astro/inter-greek-ext-wght-normal.DlzME5K_.woff2 +0 -0
  69. package/template/.build/_astro/inter-greek-wght-normal.CkhJZR-_.woff2 +0 -0
  70. package/template/.build/_astro/inter-latin-ext-wght-normal.DO1Apj_S.woff2 +0 -0
  71. package/template/.build/_astro/inter-latin-wght-normal.Dx4kXJAl.woff2 +0 -0
  72. package/template/.build/_astro/inter-vietnamese-wght-normal.CBcvBZtf.woff2 +0 -0
  73. package/template/.build/_astro/logo-clair.BqNh6JNi.svg +1 -0
  74. package/template/.build/_astro/logo-sombre.BkgsFXxh.svg +1 -0
  75. package/template/.build/_astro/page.cNngjUgL.js +1 -0
  76. package/template/.build/_astro/print.ehPL0gv-.css +1 -0
  77. package/template/.build/_astro/starlight-toc.D4UDIxQL.js +1 -0
  78. package/template/.build/_astro/ui-core.Clh5jUUO.js +2 -0
  79. package/template/.build/_hgdc/corpus.json +1 -0
  80. package/template/.build/demarrer/premiere-doc/index.html +84 -0
  81. package/template/.build/demarrer/premiere-doc.md +65 -0
  82. package/template/.build/explications/donnees/index.html +114 -0
  83. package/template/.build/explications/donnees.md +28 -0
  84. package/template/.build/explications/fonctionnement/index.html +92 -0
  85. package/template/.build/explications/fonctionnement.md +32 -0
  86. package/template/.build/guides/agents/index.html +113 -0
  87. package/template/.build/guides/agents.md +40 -0
  88. package/template/.build/guides/assistant/index.html +117 -0
  89. package/template/.build/guides/assistant.md +42 -0
  90. package/template/.build/guides/composants/index.html +97 -0
  91. package/template/.build/guides/composants.md +103 -0
  92. package/template/.build/guides/ecrire/index.html +115 -0
  93. package/template/.build/guides/ecrire.md +63 -0
  94. package/template/.build/guides/navigation/index.html +89 -0
  95. package/template/.build/guides/navigation.md +63 -0
  96. package/template/.build/guides/publier/index.html +86 -0
  97. package/template/.build/guides/publier.md +65 -0
  98. package/template/.build/guides/theme/index.html +86 -0
  99. package/template/.build/guides/theme.md +33 -0
  100. package/template/.build/images/favicon.svg +1 -0
  101. package/template/.build/images/logo-clair.svg +1 -0
  102. package/template/.build/images/logo-sombre.svg +1 -0
  103. package/template/.build/index.html +87 -0
  104. package/template/.build/index.md +35 -0
  105. package/template/.build/llms-full.txt +830 -0
  106. package/template/.build/llms.txt +38 -0
  107. package/template/.build/pagefind/fragment/fr-ch_148313b.pf_fragment +0 -0
  108. package/template/.build/pagefind/fragment/fr-ch_424fd16.pf_fragment +0 -0
  109. package/template/.build/pagefind/fragment/fr-ch_4f8575c.pf_fragment +0 -0
  110. package/template/.build/pagefind/fragment/fr-ch_5a4d77d.pf_fragment +0 -0
  111. package/template/.build/pagefind/fragment/fr-ch_6c36edc.pf_fragment +0 -0
  112. package/template/.build/pagefind/fragment/fr-ch_73d7887.pf_fragment +0 -0
  113. package/template/.build/pagefind/fragment/fr-ch_8234ed3.pf_fragment +0 -0
  114. package/template/.build/pagefind/fragment/fr-ch_8f8a19e.pf_fragment +0 -0
  115. package/template/.build/pagefind/fragment/fr-ch_9f1b981.pf_fragment +0 -0
  116. package/template/.build/pagefind/fragment/fr-ch_a19039d.pf_fragment +0 -0
  117. package/template/.build/pagefind/fragment/fr-ch_d72cc1e.pf_fragment +0 -0
  118. package/template/.build/pagefind/fragment/fr-ch_d732215.pf_fragment +0 -0
  119. package/template/.build/pagefind/fragment/fr-ch_e2c46e3.pf_fragment +0 -0
  120. package/template/.build/pagefind/fragment/fr-ch_e78d58b.pf_fragment +0 -0
  121. package/template/.build/pagefind/fragment/fr-ch_e92f972.pf_fragment +0 -0
  122. package/template/.build/pagefind/index/fr-ch_f94c95d.pf_index +0 -0
  123. package/template/.build/pagefind/pagefind-component-ui.css +1509 -0
  124. package/template/.build/pagefind/pagefind-component-ui.js +56 -0
  125. package/template/.build/pagefind/pagefind-entry.json +1 -0
  126. package/template/.build/pagefind/pagefind-highlight.js +1070 -0
  127. package/template/.build/pagefind/pagefind-modular-ui.css +214 -0
  128. package/template/.build/pagefind/pagefind-modular-ui.js +8 -0
  129. package/template/.build/pagefind/pagefind-ui.css +1 -0
  130. package/template/.build/pagefind/pagefind-ui.js +2 -0
  131. package/template/.build/pagefind/pagefind-worker.js +6 -0
  132. package/template/.build/pagefind/pagefind.fr-ch_fb78ab42961f4.pf_meta +0 -0
  133. package/template/.build/pagefind/pagefind.js +6 -0
  134. package/template/.build/pagefind/wasm.fr-ch.pagefind +0 -0
  135. package/template/.build/pagefind/wasm.unknown.pagefind +0 -0
  136. package/template/.build/reference/api-assistant/index.html +161 -0
  137. package/template/.build/reference/api-assistant.md +60 -0
  138. package/template/.build/reference/cli/index.html +153 -0
  139. package/template/.build/reference/cli.md +31 -0
  140. package/template/.build/reference/docs-json/index.html +192 -0
  141. package/template/.build/reference/docs-json.md +43 -0
  142. package/template/.build/reference/mcp/index.html +151 -0
  143. package/template/.build/reference/mcp.md +49 -0
  144. package/template/astro.config.ts +6 -0
  145. package/template/node_modules/.vite/deps/_metadata.json +74 -0
  146. package/template/node_modules/.vite/deps/astro-B3JHJyiv.js +434 -0
  147. package/template/node_modules/.vite/deps/astro-B3JHJyiv.js.map +1 -0
  148. package/template/node_modules/.vite/deps/astro_n_aria-query.js +6390 -0
  149. package/template/node_modules/.vite/deps/astro_n_aria-query.js.map +1 -0
  150. package/template/node_modules/.vite/deps/astro_n_axobject-query.js +2705 -0
  151. package/template/node_modules/.vite/deps/astro_n_axobject-query.js.map +1 -0
  152. package/template/node_modules/.vite/deps/astro_n_html-escaper.js +65 -0
  153. package/template/node_modules/.vite/deps/astro_n_html-escaper.js.map +1 -0
  154. package/template/node_modules/.vite/deps/astro_runtime_client_dev-toolbar_entrypoint__js.js +455 -0
  155. package/template/node_modules/.vite/deps/astro_runtime_client_dev-toolbar_entrypoint__js.js.map +1 -0
  156. package/template/node_modules/.vite/deps/audit-Do8QH17W.js +1543 -0
  157. package/template/node_modules/.vite/deps/audit-Do8QH17W.js.map +1 -0
  158. package/template/node_modules/.vite/deps/highlight-BLtvqtzO.js +48 -0
  159. package/template/node_modules/.vite/deps/highlight-BLtvqtzO.js.map +1 -0
  160. package/template/node_modules/.vite/deps/icons-C92i61-2.js +42 -0
  161. package/template/node_modules/.vite/deps/icons-C92i61-2.js.map +1 -0
  162. package/template/node_modules/.vite/deps/package.json +3 -0
  163. package/template/node_modules/.vite/deps/rolldown-runtime-C3I60J0A.js +4 -0
  164. package/template/node_modules/.vite/deps/settings-BYmTKrLi.js +189 -0
  165. package/template/node_modules/.vite/deps/settings-BYmTKrLi.js.map +1 -0
  166. package/template/node_modules/.vite/deps/toolbar-CEKhukuK.js +461 -0
  167. package/template/node_modules/.vite/deps/toolbar-CEKhukuK.js.map +1 -0
  168. package/template/node_modules/.vite/deps/ui-library-BO4--ANp.js +1015 -0
  169. package/template/node_modules/.vite/deps/ui-library-BO4--ANp.js.map +1 -0
  170. package/template/node_modules/.vite/deps/window-vo3A6TMn.js +32 -0
  171. package/template/node_modules/.vite/deps/window-vo3A6TMn.js.map +1 -0
  172. package/template/node_modules/.vite/deps/xray-Lf9x6g8P.js +112 -0
  173. package/template/node_modules/.vite/deps/xray-Lf9x6g8P.js.map +1 -0
  174. package/template/src/content.config.ts +21 -0
  175. package/README.md +0 -3
@@ -0,0 +1,1015 @@
1
+ import { n as DevToolbarWindow, t as settings } from "./astro_runtime_client_dev-toolbar_entrypoint__js.js";
2
+ import { n as isDefinedIcon, t as getIconElement } from "./icons-C92i61-2.js";
3
+ //#region ../../../node_modules/astro/dist/runtime/client/dev-toolbar/ui-library/badge.js
4
+ var sizes$1 = ["small", "large"];
5
+ var styles$6 = [
6
+ "purple",
7
+ "gray",
8
+ "red",
9
+ "green",
10
+ "yellow",
11
+ "blue"
12
+ ];
13
+ var DevToolbarBadge = class extends HTMLElement {
14
+ _size = "small";
15
+ _badgeStyle = "purple";
16
+ get size() {
17
+ return this._size;
18
+ }
19
+ set size(value) {
20
+ if (!sizes$1.includes(value)) {
21
+ settings.logger.error(`Invalid size: ${value}, expected one of ${sizes$1.join(", ")}, got ${value}.`);
22
+ return;
23
+ }
24
+ this._size = value;
25
+ this.updateStyle();
26
+ }
27
+ get badgeStyle() {
28
+ return this._badgeStyle;
29
+ }
30
+ set badgeStyle(value) {
31
+ if (!styles$6.includes(value)) {
32
+ settings.logger.error(`Invalid style: ${value}, expected one of ${styles$6.join(", ")}, got ${value}.`);
33
+ return;
34
+ }
35
+ this._badgeStyle = value;
36
+ this.updateStyle();
37
+ }
38
+ shadowRoot;
39
+ static observedAttributes = ["badge-style", "size"];
40
+ constructor() {
41
+ super();
42
+ this.shadowRoot = this.attachShadow({ mode: "open" });
43
+ this.shadowRoot.innerHTML = `
44
+ <style>
45
+ .badge {
46
+ box-sizing: border-box;
47
+ border-radius: 4px;
48
+ border: 1px solid transparent;
49
+ padding: 8px;
50
+ font-size: 12px;
51
+ color: var(--text-color);
52
+ height: var(--size);
53
+ border: 1px solid var(--border-color);
54
+ display: flex;
55
+ align-items: center;
56
+ justify-content: center;
57
+ font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
58
+
59
+ --purple-text: rgba(224, 204, 250, 1);
60
+ --purple-border: rgba(113, 24, 226, 1);
61
+
62
+ --gray-text: rgba(191, 193, 201, 1);
63
+ --gray-border:rgba(191, 193, 201, 1);
64
+
65
+ --red-text: rgba(249, 196, 215, 1);
66
+ --red-border: rgba(179, 62, 102, 1);
67
+
68
+ --green-text: rgba(213, 249, 196, 1);
69
+ --green-border: rgba(61, 125, 31, 1);
70
+
71
+ --yellow-text: rgba(249, 233, 196, 1);
72
+ --yellow-border: rgba(181, 138, 45, 1);
73
+
74
+ --blue-text: rgba(189, 195, 255, 1);
75
+ --blue-border: rgba(54, 69, 217, 1);
76
+
77
+ --large: 24px;
78
+ --small: 20px;
79
+ }
80
+ </style>
81
+ <style id="selected-style"></style>
82
+
83
+ <div class="badge">
84
+ <slot></slot>
85
+ </div>
86
+ `;
87
+ }
88
+ connectedCallback() {
89
+ this.updateStyle();
90
+ }
91
+ attributeChangedCallback() {
92
+ if (this.hasAttribute("badge-style")) this.badgeStyle = this.getAttribute("badge-style");
93
+ if (this.hasAttribute("size")) this.size = this.getAttribute("size");
94
+ }
95
+ updateStyle() {
96
+ const style = this.shadowRoot.querySelector("#selected-style");
97
+ if (style) style.innerHTML = `
98
+ .badge {
99
+ --text-color: var(--${this.badgeStyle}-text);
100
+ --border-color: var(--${this.badgeStyle}-border);
101
+ --size: var(--${this.size});
102
+ }`;
103
+ }
104
+ };
105
+ //#endregion
106
+ //#region ../../../node_modules/astro/dist/runtime/client/dev-toolbar/ui-library/button.js
107
+ var sizes = [
108
+ "small",
109
+ "medium",
110
+ "large"
111
+ ];
112
+ var styles$5 = [
113
+ "ghost",
114
+ "outline",
115
+ "purple",
116
+ "gray",
117
+ "red",
118
+ "green",
119
+ "yellow",
120
+ "blue"
121
+ ];
122
+ var borderRadii = ["normal", "rounded"];
123
+ var DevToolbarButton = class extends HTMLElement {
124
+ _size = "small";
125
+ _buttonStyle = "purple";
126
+ _buttonBorderRadius = "normal";
127
+ get size() {
128
+ return this._size;
129
+ }
130
+ set size(value) {
131
+ if (!sizes.includes(value)) {
132
+ settings.logger.error(`Invalid size: ${value}, expected one of ${sizes.join(", ")}, got ${value}.`);
133
+ return;
134
+ }
135
+ this._size = value;
136
+ this.updateStyle();
137
+ }
138
+ get buttonStyle() {
139
+ return this._buttonStyle;
140
+ }
141
+ set buttonStyle(value) {
142
+ if (!styles$5.includes(value)) {
143
+ settings.logger.error(`Invalid style: ${value}, expected one of ${styles$5.join(", ")}, got ${value}.`);
144
+ return;
145
+ }
146
+ this._buttonStyle = value;
147
+ this.updateStyle();
148
+ }
149
+ get buttonBorderRadius() {
150
+ return this._buttonBorderRadius;
151
+ }
152
+ set buttonBorderRadius(value) {
153
+ if (!borderRadii.includes(value)) {
154
+ settings.logger.error(`Invalid border-radius: ${value}, expected one of ${borderRadii.join(", ")}, got ${value}.`);
155
+ return;
156
+ }
157
+ this._buttonBorderRadius = value;
158
+ this.updateStyle();
159
+ }
160
+ static observedAttributes = [
161
+ "button-style",
162
+ "size",
163
+ "button-border-radius"
164
+ ];
165
+ shadowRoot;
166
+ constructor() {
167
+ super();
168
+ this.shadowRoot = this.attachShadow({ mode: "open" });
169
+ this.shadowRoot.innerHTML = `
170
+ <style>
171
+ button {
172
+ --purple-background: rgba(113, 24, 226, 1);
173
+ --purple-border: rgba(224, 204, 250, 0.33);
174
+ --purple-text: #fff;
175
+
176
+ --gray-background: rgba(52, 56, 65, 1);
177
+ --gray-border: rgba(71, 78, 94, 1);
178
+ --gray-text: #fff;
179
+
180
+ --red-background: rgba(179, 62, 102, 1);
181
+ --red-border: rgba(249, 196, 215, 0.33);
182
+ --red-text: #fff;
183
+
184
+ --green-background: rgba(213, 249, 196, 1);
185
+ --green-border: rgba(61, 125, 31, 1);
186
+ --green-text: #000;
187
+
188
+ --yellow-background: rgba(255, 236, 179, 1);
189
+ --yellow-border: rgba(255, 191, 0, 1);
190
+ --yellow-text: #000;
191
+
192
+ --blue-background: rgba(54, 69, 217, 1);
193
+ --blue-border: rgba(189, 195, 255, 1);
194
+ --blue-text: #fff;
195
+
196
+ --outline-background: transparent;
197
+ --outline-border: #fff;
198
+ --outline-text: #fff;
199
+
200
+ --ghost-background: transparent;
201
+ --ghost-border: transparent;
202
+ --ghost-text: #fff;
203
+
204
+ --large-font-size: 16px;
205
+ --medium-font-size: 14px;
206
+ --small-font-size: 12px;
207
+
208
+ --large-padding: 12px 16px;
209
+ --large-rounded-padding: 12px 12px;
210
+ --medium-padding: 8px 12px;
211
+ --medium-rounded-padding: 8px 8px;
212
+ --small-padding: 4px 8px;
213
+ --small-rounded-padding: 4px 4px;
214
+
215
+ --normal-border-radius: 4px;
216
+ --rounded-border-radius: 9999px;
217
+
218
+ border: 1px solid var(--border);
219
+ padding: var(--padding);
220
+ font-size: var(--font-size);
221
+ background: var(--background);
222
+
223
+ color: var(--text-color);
224
+ border-radius: var(--border-radius);
225
+ display: flex;
226
+ align-items: center;
227
+ justify-content: center;
228
+ }
229
+
230
+ button:hover {
231
+ cursor: pointer;
232
+ }
233
+
234
+ ::slotted(astro-dev-toolbar-icon) {
235
+ display: inline-block;
236
+ height: 1em;
237
+ width: 1em;
238
+ margin-left: 0.5em;
239
+ }
240
+ </style>
241
+ <style id="selected-style"></style>
242
+
243
+ <button>
244
+ <slot></slot>
245
+ </button>
246
+ `;
247
+ }
248
+ connectedCallback() {
249
+ this.updateStyle();
250
+ }
251
+ updateStyle() {
252
+ const style = this.shadowRoot.querySelector("#selected-style");
253
+ if (style) style.innerHTML = `
254
+ button {
255
+ --background: var(--${this.buttonStyle}-background);
256
+ --border: var(--${this.buttonStyle}-border);
257
+ --font-size: var(--${this.size}-font-size);
258
+ --text-color: var(--${this.buttonStyle}-text);
259
+ ${this.buttonBorderRadius === "normal" ? "--padding: var(--" + this.size + "-padding);" : "--padding: var(--" + this.size + "-rounded-padding);"}
260
+ --border-radius: var(--${this.buttonBorderRadius}-border-radius);
261
+ }`;
262
+ }
263
+ attributeChangedCallback() {
264
+ if (this.hasAttribute("size")) this.size = this.getAttribute("size");
265
+ if (this.hasAttribute("button-style")) this.buttonStyle = this.getAttribute("button-style");
266
+ }
267
+ };
268
+ //#endregion
269
+ //#region ../../../node_modules/astro/dist/runtime/client/dev-toolbar/ui-library/card.js
270
+ var styles$4 = [
271
+ "purple",
272
+ "gray",
273
+ "red",
274
+ "green",
275
+ "yellow",
276
+ "blue"
277
+ ];
278
+ var DevToolbarCard = class extends HTMLElement {
279
+ link;
280
+ clickAction;
281
+ shadowRoot;
282
+ _cardStyle = "purple";
283
+ get cardStyle() {
284
+ return this._cardStyle;
285
+ }
286
+ set cardStyle(value) {
287
+ if (!styles$4.includes(value)) {
288
+ settings.logger.error(`Invalid style: ${value}, expected one of ${styles$4.join(", ")}, got ${value}.`);
289
+ return;
290
+ }
291
+ this._cardStyle = value;
292
+ this.updateStyle();
293
+ }
294
+ static observedAttributes = ["card-style"];
295
+ constructor() {
296
+ super();
297
+ this.shadowRoot = this.attachShadow({ mode: "open" });
298
+ this.link = this.getAttribute("link");
299
+ }
300
+ attributeChangedCallback() {
301
+ if (this.hasAttribute("card-style")) this.cardStyle = this.getAttribute("card-style");
302
+ this.updateStyle();
303
+ }
304
+ updateStyle() {
305
+ const style = this.shadowRoot.querySelector("#selected-style");
306
+ if (style) style.innerHTML = `
307
+ :host {
308
+ --hover-background: var(--${this.cardStyle}-hover-background);
309
+ --hover-border: var(--${this.cardStyle}-hover-border);
310
+ }
311
+ `;
312
+ }
313
+ connectedCallback() {
314
+ const element = this.link ? "a" : this.clickAction ? "button" : "div";
315
+ this.shadowRoot.innerHTML += `
316
+ <style>
317
+ :host {
318
+ --purple-hover-background: rgba(136, 58, 234, 0.33);
319
+ --purple-hover-border: 1px solid rgba(113, 24, 226, 1);
320
+
321
+ --gray-hover-background: rgba(191, 193, 201, 0.33);
322
+ --gray-hover-border: 1px solid rgba(191, 193, 201, 1);
323
+
324
+ --red-hover-background: rgba(249, 196, 215, 0.33);
325
+ --red-hover-border: 1px solid rgba(179, 62, 102, 1);
326
+
327
+ --green-hover-background: rgba(213, 249, 196, 0.33);
328
+ --green-hover-border: 1px solid rgba(61, 125, 31, 1);
329
+
330
+ --yellow-hover-background: rgba(255, 236, 179, 0.33);
331
+ --yellow-hover-border: 1px solid rgba(255, 191, 0, 1);
332
+
333
+ --blue-hover-background: rgba(189, 195, 255, 0.33);
334
+ --blue-hover-border: 1px solid rgba(54, 69, 217, 1);
335
+ }
336
+
337
+ :host>a, :host>button, :host>div {
338
+ box-sizing: border-box;
339
+ padding: 16px;
340
+ display: block;
341
+ border-radius: 8px;
342
+ border: 1px solid rgba(35, 38, 45, 1);
343
+ color: rgba(191, 193, 201, 1);
344
+ text-decoration: none;
345
+ background-color: #13151A;
346
+ box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.10), 0px 1px 2px 0px rgba(0, 0, 0, 0.10), 0px 4px 4px 0px rgba(0, 0, 0, 0.09), 0px 10px 6px 0px rgba(0, 0, 0, 0.05), 0px 17px 7px 0px rgba(0, 0, 0, 0.01), 0px 26px 7px 0px rgba(0, 0, 0, 0.00);
347
+ width: 100%;
348
+ height: 100%;
349
+ }
350
+
351
+ h1, h2, h3, h4, h5, h6 {
352
+ color: #fff;
353
+ font-weight: 600;
354
+ }
355
+
356
+ a:hover, button:hover {
357
+ background: var(--hover-background);
358
+ border: var(--hover-border);
359
+ }
360
+
361
+ svg {
362
+ display: block;
363
+ margin: 0 auto;
364
+ }
365
+
366
+ span {
367
+ margin-top: 8px;
368
+ display: block;
369
+ text-align: center;
370
+ }
371
+ </style>
372
+ <style id="selected-style"></style>
373
+
374
+ <${element}${this.link ? ` href="${this.link}" target="_blank"` : ``} id="astro-overlay-card">
375
+ <slot />
376
+ </${element}>
377
+ `;
378
+ this.updateStyle();
379
+ if (this.clickAction) this.shadowRoot.getElementById("astro-overlay-card")?.addEventListener("click", this.clickAction);
380
+ }
381
+ };
382
+ //#endregion
383
+ //#region ../../../node_modules/astro/dist/runtime/client/dev-toolbar/ui-library/highlight.js
384
+ var styles$3 = [
385
+ "purple",
386
+ "gray",
387
+ "red",
388
+ "green",
389
+ "yellow",
390
+ "blue"
391
+ ];
392
+ var DevToolbarHighlight = class extends HTMLElement {
393
+ icon;
394
+ _highlightStyle = "purple";
395
+ get highlightStyle() {
396
+ return this._highlightStyle;
397
+ }
398
+ set highlightStyle(value) {
399
+ if (!styles$3.includes(value)) {
400
+ settings.logger.error(`Invalid style: ${value}, expected one of ${styles$3.join(", ")}, got ${value}.`);
401
+ return;
402
+ }
403
+ this._highlightStyle = value;
404
+ this.updateStyle();
405
+ }
406
+ static observedAttributes = ["highlight-style"];
407
+ shadowRoot;
408
+ constructor() {
409
+ super();
410
+ this.shadowRoot = this.attachShadow({ mode: "open" });
411
+ this.icon = this.hasAttribute("icon") ? this.getAttribute("icon") : void 0;
412
+ this.shadowRoot.innerHTML = `
413
+ <style>
414
+ :host {
415
+ --purple-background: linear-gradient(180deg, rgba(224, 204, 250, 0.33) 0%, rgba(224, 204, 250, 0.0825) 100%);
416
+ --purple-border: 1px solid rgba(113, 24, 226, 1);
417
+
418
+ --gray-background: linear-gradient(180deg, rgba(191, 193, 201, 0.33) 0%, rgba(191, 193, 201, 0.0825) 100%);
419
+ --gray-border: 1px solid rgba(191, 193, 201, 1);
420
+
421
+ --red-background: linear-gradient(180deg, rgba(249, 196, 215, 0.33) 0%, rgba(249, 196, 215, 0.0825) 100%);
422
+ --red-border: 1px solid rgba(179, 62, 102, 1);
423
+
424
+ --green-background: linear-gradient(180deg, rgba(213, 249, 196, 0.33) 0%, rgba(213, 249, 196, 0.0825) 100%);
425
+ --green-border: 1px solid rgba(61, 125, 31, 1);
426
+
427
+ --yellow-background: linear-gradient(180deg, rgba(255, 236, 179, 0.33) 0%, rgba(255, 236, 179, 0.0825) 100%);
428
+ --yellow-border: 1px solid rgba(181, 138, 45, 1);
429
+
430
+ --blue-background: linear-gradient(180deg, rgba(189, 195, 255, 0.33) 0%, rgba(189, 195, 255, 0.0825) 100%);
431
+ --blue-border: 1px solid rgba(54, 69, 217, 1);
432
+
433
+ border-radius: 4px;
434
+ display: block;
435
+ width: 100%;
436
+ height: 100%;
437
+ position: absolute;
438
+ z-index: 2000000000;
439
+
440
+ background: var(--background);
441
+ border: var(--border);
442
+ }
443
+
444
+ .icon {
445
+ width: 24px;
446
+ height: 24px;
447
+ color: white;
448
+ background: linear-gradient(0deg, #B33E66, #B33E66), linear-gradient(0deg, #351722, #351722);
449
+ border: 1px solid rgba(53, 23, 34, 1);
450
+ border-radius: 9999px;
451
+ display: flex;
452
+ justify-content: center;
453
+ align-items: center;
454
+ position: absolute;
455
+ top: -15px;
456
+ right: -15px;
457
+ }
458
+ </style>
459
+ <style id="selected-style"></style>
460
+ `;
461
+ }
462
+ updateStyle() {
463
+ const style = this.shadowRoot.querySelector("#selected-style");
464
+ if (style) style.innerHTML = `
465
+ :host {
466
+ --background: var(--${this.highlightStyle}-background);
467
+ --border: var(--${this.highlightStyle}-border);
468
+ }`;
469
+ }
470
+ attributeChangedCallback() {
471
+ if (this.hasAttribute("highlight-style")) this.highlightStyle = this.getAttribute("highlight-style");
472
+ }
473
+ connectedCallback() {
474
+ this.updateStyle();
475
+ if (this.icon) {
476
+ let iconContainer = document.createElement("div");
477
+ iconContainer.classList.add("icon");
478
+ let iconElement;
479
+ if (isDefinedIcon(this.icon)) iconElement = getIconElement(this.icon);
480
+ else {
481
+ iconElement = document.createElementNS("http://www.w3.org/2000/svg", "svg");
482
+ iconElement.setAttribute("viewBox", "0 0 16 16");
483
+ iconElement.innerHTML = this.icon;
484
+ }
485
+ if (iconElement) {
486
+ iconElement?.style.setProperty("width", "16px");
487
+ iconElement?.style.setProperty("height", "16px");
488
+ iconContainer.append(iconElement);
489
+ this.shadowRoot.append(iconContainer);
490
+ }
491
+ }
492
+ }
493
+ };
494
+ //#endregion
495
+ //#region ../../../node_modules/astro/dist/runtime/client/dev-toolbar/ui-library/icon.js
496
+ var DevToolbarIcon = class extends HTMLElement {
497
+ _icon = void 0;
498
+ shadowRoot;
499
+ get icon() {
500
+ return this._icon;
501
+ }
502
+ set icon(name) {
503
+ this._icon = name;
504
+ this.buildTemplate();
505
+ }
506
+ constructor() {
507
+ super();
508
+ this.shadowRoot = this.attachShadow({ mode: "open" });
509
+ if (this.hasAttribute("icon")) this.icon = this.getAttribute("icon");
510
+ else this.buildTemplate();
511
+ }
512
+ getIconHTML(icon) {
513
+ if (icon && isDefinedIcon(icon)) return getIconElement(icon)?.outerHTML ?? "";
514
+ return "<slot />";
515
+ }
516
+ buildTemplate() {
517
+ this.shadowRoot.innerHTML = `
518
+ <style>
519
+ svg {
520
+ width: 100%;
521
+ height: 100%;
522
+ }
523
+
524
+ @media (forced-colors: active) {
525
+ svg path[fill="#fff"] {
526
+ fill: black;
527
+ }
528
+ }
529
+ </style>\n${this.getIconHTML(this._icon)}`;
530
+ }
531
+ };
532
+ //#endregion
533
+ //#region ../../../node_modules/astro/dist/runtime/client/dev-toolbar/ui-library/radio-checkbox.js
534
+ var styles$2 = [
535
+ "purple",
536
+ "gray",
537
+ "red",
538
+ "green",
539
+ "yellow",
540
+ "blue"
541
+ ];
542
+ var DevToolbarRadioCheckbox = class extends HTMLElement {
543
+ _radioStyle = "purple";
544
+ input;
545
+ shadowRoot;
546
+ get radioStyle() {
547
+ return this._radioStyle;
548
+ }
549
+ set radioStyle(value) {
550
+ if (!styles$2.includes(value)) {
551
+ console.error(`Invalid style: ${value}, expected one of ${styles$2.join(", ")}.`);
552
+ return;
553
+ }
554
+ this._radioStyle = value;
555
+ this.updateStyle();
556
+ }
557
+ static observedAttributes = [
558
+ "radio-style",
559
+ "checked",
560
+ "disabled",
561
+ "name",
562
+ "value"
563
+ ];
564
+ constructor() {
565
+ super();
566
+ this.shadowRoot = this.attachShadow({ mode: "open" });
567
+ this.shadowRoot.innerHTML = `
568
+ <style>
569
+ :host {
570
+ --purple-unchecked: rgba(224, 204, 250, 0.33);
571
+ --purple-checked: rgba(224, 204, 250, 1);
572
+
573
+ --gray-unchecked: rgba(191, 193, 201, 0.33);
574
+ --gray-checked: rgba(191, 193, 201, 1);
575
+
576
+ --red-unchecked: rgba(249, 196, 215, 0.33);
577
+ --red-checked: rgba(179, 62, 102, 1);
578
+
579
+ --green-unchecked: rgba(213, 249, 196, 0.33);
580
+ --green-checked: rgba(61, 125, 31, 1);
581
+
582
+ --yellow-unchecked: rgba(255, 236, 179, 0.33);
583
+ --yellow-checked: rgba(181, 138, 45, 1);
584
+
585
+ --blue-unchecked: rgba(189, 195, 255, 0.33);
586
+ --blue-checked: rgba(54, 69, 217, 1);
587
+ }
588
+
589
+ input[type="radio"] {
590
+ appearance: none;
591
+ -webkit-appearance: none;
592
+ display: flex;
593
+ align-content: center;
594
+ justify-content: center;
595
+ border: 2px solid var(--unchecked-color);
596
+ border-radius: 9999px;
597
+ width: 16px;
598
+ height: 16px;
599
+ }
600
+
601
+ input[type="radio"]::before {
602
+ content: "";
603
+ background-color: var(--checked-color);
604
+ width: 8px;
605
+ height: 8px;
606
+ border-radius: 9999px;
607
+ visibility: hidden;
608
+ margin: 2px;
609
+ }
610
+
611
+ input[type="radio"]:checked {
612
+ border-color: var(--checked-color);
613
+ }
614
+
615
+ input[type="radio"]:checked::before {
616
+ visibility: visible;
617
+ }
618
+ </style>
619
+ <style id="selected-style"></style>
620
+ `;
621
+ this.input = document.createElement("input");
622
+ this.input.type = "radio";
623
+ this.shadowRoot.append(this.input);
624
+ }
625
+ connectedCallback() {
626
+ this.updateInputState();
627
+ this.updateStyle();
628
+ }
629
+ updateStyle() {
630
+ const styleElement = this.shadowRoot.querySelector("#selected-style");
631
+ if (styleElement) styleElement.innerHTML = `
632
+ :host {
633
+ --unchecked-color: var(--${this._radioStyle}-unchecked);
634
+ --checked-color: var(--${this._radioStyle}-checked);
635
+ }
636
+ `;
637
+ }
638
+ updateInputState() {
639
+ this.input.checked = this.hasAttribute("checked");
640
+ this.input.disabled = this.hasAttribute("disabled");
641
+ this.input.name = this.getAttribute("name") || "";
642
+ this.input.value = this.getAttribute("value") || "";
643
+ }
644
+ attributeChangedCallback() {
645
+ if (this.hasAttribute("radio-style")) this.radioStyle = this.getAttribute("radio-style");
646
+ this.updateInputState();
647
+ }
648
+ };
649
+ //#endregion
650
+ //#region ../../../node_modules/astro/dist/runtime/client/dev-toolbar/ui-library/select.js
651
+ var styles$1 = [
652
+ "purple",
653
+ "gray",
654
+ "red",
655
+ "green",
656
+ "yellow",
657
+ "blue"
658
+ ];
659
+ var DevToolbarSelect = class extends HTMLElement {
660
+ shadowRoot;
661
+ element;
662
+ _selectStyle = "gray";
663
+ get selectStyle() {
664
+ return this._selectStyle;
665
+ }
666
+ set selectStyle(value) {
667
+ if (!styles$1.includes(value)) {
668
+ settings.logger.error(`Invalid style: ${value}, expected one of ${styles$1.join(", ")}.`);
669
+ return;
670
+ }
671
+ this._selectStyle = value;
672
+ this.updateStyle();
673
+ }
674
+ static observedAttributes = ["select-style"];
675
+ constructor() {
676
+ super();
677
+ this.shadowRoot = this.attachShadow({ mode: "open" });
678
+ this.shadowRoot.innerHTML = `
679
+ <style>
680
+ :host {
681
+ --purple-text: rgba(224, 204, 250, 1);
682
+ --purple-border: rgba(113, 24, 226, 1);
683
+
684
+ --gray-text: rgba(191, 193, 201, 1);
685
+ --gray-border:rgba(191, 193, 201, 1);
686
+
687
+ --red-text: rgba(249, 196, 215, 1);
688
+ --red-border: rgba(179, 62, 102, 1);
689
+
690
+ --green-text: rgba(213, 249, 196, 1);
691
+ --green-border: rgba(61, 125, 31, 1);
692
+
693
+ --yellow-text: rgba(249, 233, 196, 1);
694
+ --yellow-border: rgba(181, 138, 45, 1);
695
+
696
+ --blue-text: rgba(189, 195, 255, 1);
697
+ --blue-border: rgba(54, 69, 217, 1);
698
+
699
+ --text-color: var(--gray-text);
700
+ --border-color: var(--gray-border);
701
+ }
702
+ select {
703
+ appearance: none;
704
+ text-align-last: center;
705
+ display: inline-block;
706
+ font-family: system-ui, sans-serif;
707
+ font-size: 14px;
708
+ padding: 4px 24px 4px 8px;
709
+ border: 1px solid var(--border-color);
710
+ border-radius: 4px;
711
+ color: var(--text-color);
712
+ background-color: transparent;
713
+ background-image:
714
+ linear-gradient(45deg, transparent 50%, var(--text-color) 50%),
715
+ linear-gradient(135deg, var(--text-color) 50%, transparent 50%);
716
+ background-position:
717
+ calc(100% - 12px) calc(1em - 2px),
718
+ calc(100% - 8px) calc(1em - 2px);
719
+ background-size: 4px 4px;
720
+ background-repeat: no-repeat;
721
+ }
722
+ </style>
723
+ <style id="selected-style"></style>
724
+ <slot></slot>
725
+ `;
726
+ this.element = document.createElement("select");
727
+ this.shadowRoot.addEventListener("slotchange", (event) => {
728
+ if (event.target instanceof HTMLSlotElement) this.element.append(...event.target.assignedNodes());
729
+ });
730
+ }
731
+ connectedCallback() {
732
+ this.element.name = "dev-toolbar-select";
733
+ this.shadowRoot.append(this.element);
734
+ this.updateStyle();
735
+ }
736
+ attributeChangedCallback() {
737
+ if (this.hasAttribute("select-style")) this.selectStyle = this.getAttribute("select-style");
738
+ }
739
+ updateStyle() {
740
+ const style = this.shadowRoot.querySelector("#selected-style");
741
+ if (style) style.innerHTML = `
742
+ :host {
743
+ --text-color: var(--${this.selectStyle}-text);
744
+ --border-color: var(--${this.selectStyle}-border);
745
+ }
746
+ `;
747
+ }
748
+ };
749
+ //#endregion
750
+ //#region ../../../node_modules/astro/dist/runtime/client/dev-toolbar/ui-library/toggle.js
751
+ var styles = [
752
+ "purple",
753
+ "gray",
754
+ "red",
755
+ "green",
756
+ "yellow",
757
+ "blue"
758
+ ];
759
+ var DevToolbarToggle = class extends HTMLElement {
760
+ shadowRoot;
761
+ input;
762
+ _toggleStyle = "gray";
763
+ get toggleStyle() {
764
+ return this._toggleStyle;
765
+ }
766
+ set toggleStyle(value) {
767
+ if (!styles.includes(value)) {
768
+ settings.logger.error(`Invalid style: ${value}, expected one of ${styles.join(", ")}.`);
769
+ return;
770
+ }
771
+ this._toggleStyle = value;
772
+ this.updateStyle();
773
+ }
774
+ static observedAttributes = ["toggle-style"];
775
+ constructor() {
776
+ super();
777
+ this.shadowRoot = this.attachShadow({ mode: "open" });
778
+ this.shadowRoot.innerHTML = `
779
+ <style>
780
+ :host {
781
+ --purple-bg-on: rgba(113, 24, 226, 1);
782
+ --purple-border-off: rgba(113, 24, 226, 1);
783
+ --purple-border-on: rgba(224, 204, 250, 1);
784
+
785
+ --gray-bg-on: rgba(61, 125, 31, 1);
786
+ --gray-border-off: rgba(145, 152, 173, 1);
787
+ --gray-border-on: rgba(213, 249, 196, 1);
788
+
789
+ --red-bg-on: rgba(179, 62, 102, 1);
790
+ --red-border-off: rgba(179, 62, 102, 1);
791
+ --red-border-on: rgba(249, 196, 215, 1);
792
+
793
+ --green-bg-on: rgba(61, 125, 31, 1);
794
+ --green-border-off: rgba(61, 125, 31, 1);
795
+ --green-border-on: rgba(213, 249, 196, 1);
796
+
797
+ --yellow-bg-on: rgba(181, 138, 45, 1);
798
+ --yellow-border-off: rgba(181, 138, 45, 1);
799
+ --yellow-border-on: rgba(255, 236, 179, 1);
800
+
801
+ --blue-bg-on: rgba(54, 69, 217, 1);
802
+ --blue-border-off: rgba(54, 69, 217, 1);
803
+ --blue-border-on: rgba(189, 195, 255, 1);
804
+ }
805
+
806
+ input {
807
+ appearance: none;
808
+ width: 32px;
809
+ height: 20px;
810
+ border: 1px solid var(--border-off);
811
+ transition: background-color 0.2s ease, border-color 0.2s ease;
812
+ border-radius: 9999px;
813
+ }
814
+
815
+ input::after {
816
+ content: '';
817
+ width: 16px;
818
+ display: inline-block;
819
+ height: 16px;
820
+ background-color: var(--border-off);
821
+ border-radius: 9999px;
822
+ transition: transform 0.2s ease, background-color 0.2s ease;
823
+ top: 1px;
824
+ left: 1px;
825
+ position: relative;
826
+ }
827
+
828
+ @media (forced-colors: active) {
829
+ input::after {
830
+ border: 1px solid black;
831
+ top: 0px;
832
+ left: 0px;
833
+ }
834
+ }
835
+
836
+ input:checked {
837
+ border: 1px solid var(--border-on);
838
+ background-color: var(--bg-on);
839
+ }
840
+
841
+ input:checked::after {
842
+ transform: translateX(12px);
843
+ background: var(--border-on);
844
+ }
845
+ </style>
846
+ <style id="selected-style"></style>
847
+ `;
848
+ this.input = document.createElement("input");
849
+ }
850
+ attributeChangedCallback() {
851
+ if (this.hasAttribute("toggle-style")) this.toggleStyle = this.getAttribute("toggle-style");
852
+ }
853
+ updateStyle() {
854
+ const style = this.shadowRoot.querySelector("#selected-style");
855
+ if (style) style.innerHTML = `
856
+ :host {
857
+ --bg-on: var(--${this.toggleStyle}-bg-on);
858
+ --border-off: var(--${this.toggleStyle}-border-off);
859
+ --border-on: var(--${this.toggleStyle}-border-on);
860
+ }
861
+ `;
862
+ }
863
+ connectedCallback() {
864
+ this.input.type = "checkbox";
865
+ this.input.name = "dev-toolbar-toggle";
866
+ this.shadowRoot.append(this.input);
867
+ this.updateStyle();
868
+ }
869
+ get value() {
870
+ return this.input.value;
871
+ }
872
+ set value(val) {
873
+ this.input.value = val;
874
+ }
875
+ };
876
+ //#endregion
877
+ //#region ../../../node_modules/astro/dist/runtime/client/dev-toolbar/ui-library/tooltip.js
878
+ var DevToolbarTooltip = class extends HTMLElement {
879
+ sections = [];
880
+ shadowRoot;
881
+ constructor() {
882
+ super();
883
+ this.shadowRoot = this.attachShadow({ mode: "open" });
884
+ }
885
+ connectedCallback() {
886
+ this.shadowRoot.innerHTML = `
887
+ <style>
888
+ :host {
889
+ position: absolute;
890
+ display: none;
891
+ color: white;
892
+ background: linear-gradient(0deg, #310A65, #310A65), linear-gradient(0deg, #7118E2, #7118E2);
893
+ border: 1px solid rgba(113, 24, 226, 1);
894
+ border-radius: 4px;
895
+ padding: 0;
896
+ 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";
897
+ font-size: 14px;
898
+ margin: 0;
899
+ z-index: 2000000001;
900
+ max-width: 45ch;
901
+ width: fit-content;
902
+ min-width: 30ch;
903
+ box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.30), 0px 1px 2px 0px rgba(0, 0, 0, 0.29), 0px 4px 4px 0px rgba(0, 0, 0, 0.26), 0px 10px 6px 0px rgba(0, 0, 0, 0.15), 0px 17px 7px 0px rgba(0, 0, 0, 0.04), 0px 26px 7px 0px rgba(0, 0, 0, 0.01);
904
+ }
905
+
906
+ :host([data-show="true"]) {
907
+ display: block;
908
+ }
909
+
910
+ svg {
911
+ vertical-align: bottom;
912
+ margin-inline-end: 4px;
913
+ }
914
+
915
+ hr {
916
+ border: 1px solid rgba(136, 58, 234, 0.33);
917
+ padding: 0;
918
+ margin: 0;
919
+ }
920
+
921
+ section {
922
+ padding: 8px;
923
+ }
924
+
925
+ .section-content {
926
+ max-height: 250px;
927
+ overflow-y: auto;
928
+ }
929
+
930
+ .modal-title {
931
+ display: flex;
932
+ justify-content: space-between;
933
+ align-items: center;
934
+ }
935
+
936
+ .modal-main-title {
937
+ font-weight: bold;
938
+ }
939
+
940
+ .modal-title + div {
941
+ margin-top: 8px;
942
+ }
943
+
944
+ .modal-cta {
945
+ display: block;
946
+ font-weight: bold;
947
+ font-size: 0.9em;
948
+ }
949
+
950
+ .clickable-section {
951
+ background: rgba(113, 24, 226, 1);
952
+ padding: 8px;
953
+ border: 0;
954
+ color: white;
955
+ font-family: system-ui, sans-serif;
956
+ text-align: left;
957
+ line-height: 1.2;
958
+ white-space: nowrap;
959
+ text-decoration: none;
960
+ margin: 0;
961
+ width: 100%;
962
+ }
963
+
964
+ .clickable-section:hover {
965
+ cursor: pointer;
966
+ }
967
+
968
+ pre, code {
969
+ background: rgb(78, 27, 145);
970
+ font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
971
+ border-radius: 2px;
972
+ font-size: 14px;
973
+ padding: 2px;
974
+ }
975
+ pre {
976
+ padding: 1em;
977
+ margin: 0 0;
978
+ overflow: auto;
979
+ }
980
+ `;
981
+ const fragment = new DocumentFragment();
982
+ this.sections.forEach((section, index) => {
983
+ const sectionElement = section.clickAction ? document.createElement("button") : document.createElement("section");
984
+ if (section.clickAction) {
985
+ sectionElement.classList.add("clickable-section");
986
+ sectionElement.addEventListener("click", async () => {
987
+ await section.clickAction();
988
+ });
989
+ }
990
+ sectionElement.innerHTML = `
991
+ ${section.title ? `<div class="modal-title"><span class="modal-main-title">
992
+ ${section.icon ? this.getElementForIcon(section.icon) : ""}${section.title}</span>${section.inlineTitle ?? ""}</div>` : ""}
993
+ ${section.content ? `<div class="section-content">${section.content}</div>` : ""}
994
+ ${section.clickDescription ? `<span class="modal-cta">${section.clickDescription}</span>` : ""}
995
+ `;
996
+ fragment.append(sectionElement);
997
+ if (index < this.sections.length - 1) fragment.append(document.createElement("hr"));
998
+ });
999
+ this.shadowRoot.append(fragment);
1000
+ }
1001
+ getElementForIcon(icon) {
1002
+ let iconElement;
1003
+ if (isDefinedIcon(icon)) iconElement = getIconElement(icon);
1004
+ else {
1005
+ iconElement = document.createElementNS("http://www.w3.org/2000/svg", "svg");
1006
+ iconElement.setAttribute("viewBox", "0 0 16 16");
1007
+ iconElement.innerHTML = icon;
1008
+ }
1009
+ iconElement?.style.setProperty("width", "16px");
1010
+ iconElement?.style.setProperty("height", "16px");
1011
+ return iconElement?.outerHTML ?? "";
1012
+ }
1013
+ };
1014
+ //#endregion
1015
+ export { DevToolbarBadge, DevToolbarButton, DevToolbarCard, DevToolbarHighlight, DevToolbarIcon, DevToolbarRadioCheckbox, DevToolbarSelect, DevToolbarToggle, DevToolbarTooltip, DevToolbarWindow };