astro 4.1.2 → 4.1.3

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 (72) hide show
  1. package/components/ViewTransitions.astro +6 -1
  2. package/dist/@types/astro.d.ts +26 -25
  3. package/dist/assets/internal.js +3 -2
  4. package/dist/assets/services/noop.js +1 -4
  5. package/dist/assets/types.d.ts +1 -1
  6. package/dist/assets/utils/emitAsset.js +1 -1
  7. package/dist/assets/utils/proxy.d.ts +2 -1
  8. package/dist/assets/utils/proxy.js +5 -1
  9. package/dist/assets/vite-plugin-assets.js +21 -14
  10. package/dist/content/runtime-assets.d.ts +1 -1
  11. package/dist/content/runtime-assets.js +1 -1
  12. package/dist/content/vite-plugin-content-imports.js +1 -0
  13. package/dist/core/config/vite-load.js +1 -1
  14. package/dist/core/constants.js +1 -1
  15. package/dist/core/create-vite.js +3 -3
  16. package/dist/core/dev/dev.js +1 -1
  17. package/dist/core/errors/errors-data.d.ts +5 -0
  18. package/dist/core/errors/errors-data.js +7 -0
  19. package/dist/core/messages.js +2 -2
  20. package/dist/core/routing/manifest/create.js +15 -0
  21. package/dist/core/sync/index.js +1 -1
  22. package/dist/runtime/client/{dev-overlay/plugins → dev-toolbar/apps}/astro.js +2 -2
  23. package/dist/runtime/client/{dev-overlay/plugins → dev-toolbar/apps}/audit/index.js +3 -3
  24. package/dist/runtime/client/{dev-overlay/plugins → dev-toolbar/apps}/settings.js +7 -7
  25. package/dist/runtime/client/dev-toolbar/apps/utils/highlight.d.ts +8 -0
  26. package/dist/runtime/client/{dev-overlay/plugins → dev-toolbar/apps}/utils/window.d.ts +1 -1
  27. package/dist/runtime/client/{dev-overlay/plugins → dev-toolbar/apps}/xray.js +4 -4
  28. package/dist/runtime/client/{dev-overlay → dev-toolbar}/entrypoint.js +64 -68
  29. package/dist/runtime/client/{dev-overlay → dev-toolbar}/settings.d.ts +2 -2
  30. package/dist/runtime/client/{dev-overlay → dev-toolbar}/settings.js +10 -5
  31. package/dist/runtime/client/dev-toolbar/toolbar.d.ts +45 -0
  32. package/dist/runtime/client/{dev-overlay/overlay.js → dev-toolbar/toolbar.js} +99 -103
  33. package/dist/runtime/client/{dev-overlay → dev-toolbar}/ui-library/badge.d.ts +1 -1
  34. package/dist/runtime/client/{dev-overlay → dev-toolbar}/ui-library/badge.js +2 -2
  35. package/dist/runtime/client/{dev-overlay → dev-toolbar}/ui-library/button.d.ts +1 -1
  36. package/dist/runtime/client/{dev-overlay → dev-toolbar}/ui-library/button.js +3 -2
  37. package/dist/runtime/client/{dev-overlay → dev-toolbar}/ui-library/card.d.ts +1 -1
  38. package/dist/runtime/client/{dev-overlay → dev-toolbar}/ui-library/card.js +2 -2
  39. package/dist/runtime/client/{dev-overlay → dev-toolbar}/ui-library/highlight.d.ts +1 -1
  40. package/dist/runtime/client/{dev-overlay → dev-toolbar}/ui-library/highlight.js +2 -2
  41. package/dist/runtime/client/{dev-overlay → dev-toolbar}/ui-library/icon.d.ts +1 -1
  42. package/dist/runtime/client/{dev-overlay → dev-toolbar}/ui-library/icon.js +2 -2
  43. package/dist/runtime/client/dev-toolbar/ui-library/index.d.ts +8 -0
  44. package/dist/runtime/client/dev-toolbar/ui-library/index.js +18 -0
  45. package/dist/runtime/client/{dev-overlay → dev-toolbar}/ui-library/toggle.d.ts +1 -1
  46. package/dist/runtime/client/{dev-overlay → dev-toolbar}/ui-library/toggle.js +2 -2
  47. package/dist/runtime/client/{dev-overlay → dev-toolbar}/ui-library/tooltip.d.ts +3 -3
  48. package/dist/runtime/client/{dev-overlay → dev-toolbar}/ui-library/tooltip.js +2 -2
  49. package/dist/runtime/client/{dev-overlay → dev-toolbar}/ui-library/window.d.ts +1 -1
  50. package/dist/runtime/client/{dev-overlay → dev-toolbar}/ui-library/window.js +3 -3
  51. package/dist/vite-plugin-astro/index.js +12 -2
  52. package/dist/vite-plugin-astro-server/route.js +3 -3
  53. package/dist/{vite-plugin-dev-overlay/vite-plugin-dev-overlay.d.ts → vite-plugin-dev-toolbar/vite-plugin-dev-toolbar.d.ts} +1 -1
  54. package/dist/{vite-plugin-dev-overlay/vite-plugin-dev-overlay.js → vite-plugin-dev-toolbar/vite-plugin-dev-toolbar.js} +5 -5
  55. package/package.json +1 -1
  56. package/dist/runtime/client/dev-overlay/overlay.d.ts +0 -45
  57. package/dist/runtime/client/dev-overlay/plugins/utils/highlight.d.ts +0 -8
  58. package/dist/runtime/client/dev-overlay/ui-library/index.d.ts +0 -8
  59. package/dist/runtime/client/dev-overlay/ui-library/index.js +0 -18
  60. /package/dist/runtime/client/{dev-overlay/plugins → dev-toolbar/apps}/astro.d.ts +0 -0
  61. /package/dist/runtime/client/{dev-overlay/plugins → dev-toolbar/apps}/audit/a11y.d.ts +0 -0
  62. /package/dist/runtime/client/{dev-overlay/plugins → dev-toolbar/apps}/audit/a11y.js +0 -0
  63. /package/dist/runtime/client/{dev-overlay/plugins → dev-toolbar/apps}/audit/index.d.ts +0 -0
  64. /package/dist/runtime/client/{dev-overlay/plugins → dev-toolbar/apps}/settings.d.ts +0 -0
  65. /package/dist/runtime/client/{dev-overlay/plugins → dev-toolbar/apps}/utils/highlight.js +0 -0
  66. /package/dist/runtime/client/{dev-overlay/plugins → dev-toolbar/apps}/utils/icons.d.ts +0 -0
  67. /package/dist/runtime/client/{dev-overlay/plugins → dev-toolbar/apps}/utils/icons.js +0 -0
  68. /package/dist/runtime/client/{dev-overlay/plugins → dev-toolbar/apps}/utils/window.js +0 -0
  69. /package/dist/runtime/client/{dev-overlay/plugins → dev-toolbar/apps}/xray.d.ts +0 -0
  70. /package/dist/runtime/client/{dev-overlay → dev-toolbar}/entrypoint.d.ts +0 -0
  71. /package/dist/runtime/client/{dev-overlay → dev-toolbar}/ui-library/icons.d.ts +0 -0
  72. /package/dist/runtime/client/{dev-overlay → dev-toolbar}/ui-library/icons.js +0 -0
@@ -1,60 +1,60 @@
1
1
  import { settings } from "./settings.js";
2
- import { loadDevOverlayPlugins } from "astro:dev-overlay";
2
+ import { loadDevToolbarApps } from "astro:dev-toolbar";
3
3
  let overlay;
4
4
  document.addEventListener("DOMContentLoaded", async () => {
5
5
  const [
6
- customPluginsDefinitions,
7
- { default: astroDevToolPlugin },
8
- { default: astroAuditPlugin },
9
- { default: astroXrayPlugin },
10
- { default: astroSettingsPlugin },
11
- { AstroDevOverlay, DevOverlayCanvas, getPluginIcon },
6
+ customAppsDefinitions,
7
+ { default: astroDevToolApp },
8
+ { default: astroAuditApp },
9
+ { default: astroXrayApp },
10
+ { default: astroSettingsApp },
11
+ { AstroDevToolbar, DevToolbarCanvas, getAppIcon },
12
12
  {
13
- DevOverlayCard,
14
- DevOverlayHighlight,
15
- DevOverlayTooltip,
16
- DevOverlayWindow,
17
- DevOverlayToggle,
18
- DevOverlayButton,
19
- DevOverlayBadge,
20
- DevOverlayIcon
13
+ DevToolbarCard,
14
+ DevToolbarHighlight,
15
+ DevToolbarTooltip,
16
+ DevToolbarWindow,
17
+ DevToolbarToggle,
18
+ DevToolbarButton,
19
+ DevToolbarBadge,
20
+ DevToolbarIcon
21
21
  }
22
22
  ] = await Promise.all([
23
- loadDevOverlayPlugins(),
24
- import("./plugins/astro.js"),
25
- import("./plugins/audit/index.js"),
26
- import("./plugins/xray.js"),
27
- import("./plugins/settings.js"),
28
- import("./overlay.js"),
23
+ loadDevToolbarApps(),
24
+ import("./apps/astro.js"),
25
+ import("./apps/audit/index.js"),
26
+ import("./apps/xray.js"),
27
+ import("./apps/settings.js"),
28
+ import("./toolbar.js"),
29
29
  import("./ui-library/index.js")
30
30
  ]);
31
- customElements.define("astro-dev-toolbar", AstroDevOverlay);
32
- customElements.define("astro-dev-toolbar-window", DevOverlayWindow);
33
- customElements.define("astro-dev-toolbar-plugin-canvas", DevOverlayCanvas);
34
- customElements.define("astro-dev-toolbar-tooltip", DevOverlayTooltip);
35
- customElements.define("astro-dev-toolbar-highlight", DevOverlayHighlight);
36
- customElements.define("astro-dev-toolbar-card", DevOverlayCard);
37
- customElements.define("astro-dev-toolbar-toggle", DevOverlayToggle);
38
- customElements.define("astro-dev-toolbar-button", DevOverlayButton);
39
- customElements.define("astro-dev-toolbar-badge", DevOverlayBadge);
40
- customElements.define("astro-dev-toolbar-icon", DevOverlayIcon);
31
+ customElements.define("astro-dev-toolbar", AstroDevToolbar);
32
+ customElements.define("astro-dev-toolbar-window", DevToolbarWindow);
33
+ customElements.define("astro-dev-toolbar-app-canvas", DevToolbarCanvas);
34
+ customElements.define("astro-dev-toolbar-tooltip", DevToolbarTooltip);
35
+ customElements.define("astro-dev-toolbar-highlight", DevToolbarHighlight);
36
+ customElements.define("astro-dev-toolbar-card", DevToolbarCard);
37
+ customElements.define("astro-dev-toolbar-toggle", DevToolbarToggle);
38
+ customElements.define("astro-dev-toolbar-button", DevToolbarButton);
39
+ customElements.define("astro-dev-toolbar-badge", DevToolbarBadge);
40
+ customElements.define("astro-dev-toolbar-icon", DevToolbarIcon);
41
41
  const deprecated = (Parent) => class extends Parent {
42
42
  };
43
- customElements.define("astro-dev-overlay", deprecated(AstroDevOverlay));
44
- customElements.define("astro-dev-overlay-window", deprecated(DevOverlayWindow));
45
- customElements.define("astro-dev-overlay-plugin-canvas", deprecated(DevOverlayCanvas));
46
- customElements.define("astro-dev-overlay-tooltip", deprecated(DevOverlayTooltip));
47
- customElements.define("astro-dev-overlay-highlight", deprecated(DevOverlayHighlight));
48
- customElements.define("astro-dev-overlay-card", deprecated(DevOverlayCard));
49
- customElements.define("astro-dev-overlay-toggle", deprecated(DevOverlayToggle));
50
- customElements.define("astro-dev-overlay-button", deprecated(DevOverlayButton));
51
- customElements.define("astro-dev-overlay-badge", deprecated(DevOverlayBadge));
52
- customElements.define("astro-dev-overlay-icon", deprecated(DevOverlayIcon));
43
+ customElements.define("astro-dev-overlay", deprecated(AstroDevToolbar));
44
+ customElements.define("astro-dev-overlay-window", deprecated(DevToolbarWindow));
45
+ customElements.define("astro-dev-overlay-plugin-canvas", deprecated(DevToolbarCanvas));
46
+ customElements.define("astro-dev-overlay-tooltip", deprecated(DevToolbarTooltip));
47
+ customElements.define("astro-dev-overlay-highlight", deprecated(DevToolbarHighlight));
48
+ customElements.define("astro-dev-overlay-card", deprecated(DevToolbarCard));
49
+ customElements.define("astro-dev-overlay-toggle", deprecated(DevToolbarToggle));
50
+ customElements.define("astro-dev-overlay-button", deprecated(DevToolbarButton));
51
+ customElements.define("astro-dev-overlay-badge", deprecated(DevToolbarBadge));
52
+ customElements.define("astro-dev-overlay-icon", deprecated(DevToolbarIcon));
53
53
  overlay = document.createElement("astro-dev-toolbar");
54
- const preparePlugin = (pluginDefinition, builtIn) => {
54
+ const prepareApp = (appDefinition, builtIn) => {
55
55
  const eventTarget = new EventTarget();
56
- const plugin = {
57
- ...pluginDefinition,
56
+ const app = {
57
+ ...appDefinition,
58
58
  builtIn,
59
59
  active: false,
60
60
  status: "loading",
@@ -62,14 +62,14 @@ document.addEventListener("DOMContentLoaded", async () => {
62
62
  eventTarget
63
63
  };
64
64
  eventTarget.addEventListener("toggle-notification", (evt) => {
65
- const target = overlay.shadowRoot?.querySelector(`[data-plugin-id="${plugin.id}"]`);
65
+ const target = overlay.shadowRoot?.querySelector(`[data-app-id="${app.id}"]`);
66
66
  if (!target)
67
67
  return;
68
68
  let newState = true;
69
69
  if (evt instanceof CustomEvent) {
70
70
  newState = evt.detail.state ?? true;
71
71
  }
72
- plugin.notification.state = newState;
72
+ app.notification.state = newState;
73
73
  target.querySelector(".notification")?.toggleAttribute("data-active", newState);
74
74
  });
75
75
  const onToggleApp = async (evt) => {
@@ -77,18 +77,18 @@ document.addEventListener("DOMContentLoaded", async () => {
77
77
  if (evt instanceof CustomEvent) {
78
78
  newState = evt.detail.state ?? true;
79
79
  }
80
- await overlay.setPluginStatus(plugin, newState);
80
+ await overlay.setAppStatus(app, newState);
81
81
  };
82
82
  eventTarget.addEventListener("toggle-app", onToggleApp);
83
83
  eventTarget.addEventListener("toggle-plugin", onToggleApp);
84
- return plugin;
84
+ return app;
85
85
  };
86
- const astromorePlugin = {
86
+ const astroMoreApp = {
87
87
  id: "astro:more",
88
88
  name: "More",
89
89
  icon: "dots-three",
90
90
  init(canvas, eventTarget) {
91
- const hiddenPlugins = plugins.filter((p) => !p.builtIn).slice(overlay.customPluginsToShow);
91
+ const hiddenApps = apps.filter((p) => !p.builtIn).slice(overlay.customAppsToShow);
92
92
  createDropdown();
93
93
  document.addEventListener("astro:after-swap", createDropdown);
94
94
  function createDropdown() {
@@ -165,35 +165,35 @@ document.addEventListener("DOMContentLoaded", async () => {
165
165
  canvas.append(style);
166
166
  const dropdown = document.createElement("div");
167
167
  dropdown.id = "dropdown";
168
- dropdown.toggleAttribute("data-no-notification", settings.config.disablePluginNotification);
169
- for (const plugin of hiddenPlugins) {
168
+ dropdown.toggleAttribute("data-no-notification", settings.config.disableAppNotification);
169
+ for (const app of hiddenApps) {
170
170
  const buttonContainer = document.createElement("div");
171
171
  buttonContainer.classList.add("item");
172
172
  const button = document.createElement("button");
173
- button.setAttribute("data-plugin-id", plugin.id);
173
+ button.setAttribute("data-app-id", app.id);
174
174
  const iconContainer = document.createElement("div");
175
175
  const iconElement = document.createElement("template");
176
- iconElement.innerHTML = getPluginIcon(plugin.icon);
176
+ iconElement.innerHTML = getAppIcon(app.icon);
177
177
  iconContainer.append(iconElement.content.cloneNode(true));
178
178
  const notification = document.createElement("div");
179
179
  notification.classList.add("notification");
180
180
  iconContainer.append(notification);
181
181
  iconContainer.classList.add("icon");
182
182
  button.append(iconContainer);
183
- button.append(document.createTextNode(plugin.name));
183
+ button.append(document.createTextNode(app.name));
184
184
  button.addEventListener("click", () => {
185
- overlay.togglePluginStatus(plugin);
185
+ overlay.toggleAppStatus(app);
186
186
  });
187
187
  buttonContainer.append(button);
188
188
  dropdown.append(buttonContainer);
189
- plugin.eventTarget.addEventListener("toggle-notification", (evt) => {
189
+ app.eventTarget.addEventListener("toggle-notification", (evt) => {
190
190
  if (!(evt instanceof CustomEvent))
191
191
  return;
192
192
  notification.toggleAttribute("data-active", evt.detail.state ?? true);
193
193
  eventTarget.dispatchEvent(
194
194
  new CustomEvent("toggle-notification", {
195
195
  detail: {
196
- state: hiddenPlugins.some((p) => p.notification.state === true)
196
+ state: hiddenApps.some((p) => p.notification.state === true)
197
197
  }
198
198
  })
199
199
  );
@@ -203,17 +203,13 @@ document.addEventListener("DOMContentLoaded", async () => {
203
203
  }
204
204
  }
205
205
  };
206
- const plugins = [
207
- ...[
208
- astroDevToolPlugin,
209
- astroXrayPlugin,
210
- astroAuditPlugin,
211
- astroSettingsPlugin,
212
- astromorePlugin
213
- ].map((pluginDef) => preparePlugin(pluginDef, true)),
214
- ...customPluginsDefinitions.map((pluginDef) => preparePlugin(pluginDef, false))
206
+ const apps = [
207
+ ...[astroDevToolApp, astroXrayApp, astroAuditApp, astroSettingsApp, astroMoreApp].map(
208
+ (appDef) => prepareApp(appDef, true)
209
+ ),
210
+ ...customAppsDefinitions.map((appDef) => prepareApp(appDef, false))
215
211
  ];
216
- overlay.plugins = plugins;
212
+ overlay.apps = apps;
217
213
  document.body.append(overlay);
218
214
  document.addEventListener("astro:after-swap", () => {
219
215
  document.body.append(overlay);
@@ -1,9 +1,9 @@
1
1
  export interface Settings {
2
- disablePluginNotification: boolean;
2
+ disableAppNotification: boolean;
3
3
  verbose: boolean;
4
4
  }
5
5
  export declare const defaultSettings: {
6
- disablePluginNotification: false;
6
+ disableAppNotification: false;
7
7
  verbose: false;
8
8
  };
9
9
  export declare const settings: {
@@ -1,17 +1,22 @@
1
1
  const defaultSettings = {
2
- disablePluginNotification: false,
2
+ disableAppNotification: false,
3
3
  verbose: false
4
4
  };
5
5
  const settings = getSettings();
6
6
  function getSettings() {
7
7
  let _settings = { ...defaultSettings };
8
- const overlaySettings = localStorage.getItem("astro:dev-overlay:settings");
9
- if (overlaySettings) {
10
- _settings = { ..._settings, ...JSON.parse(overlaySettings) };
8
+ const toolbarSettings = localStorage.getItem("astro:dev-toolbar:settings");
9
+ const oldSettings = localStorage.getItem("astro:dev-overlay:settings");
10
+ if (oldSettings && !toolbarSettings) {
11
+ localStorage.setItem("astro:dev-toolbar:settings", oldSettings);
12
+ localStorage.removeItem("astro:dev-overlay:settings");
13
+ }
14
+ if (toolbarSettings) {
15
+ _settings = { ..._settings, ...JSON.parse(toolbarSettings) };
11
16
  }
12
17
  function updateSetting(key, value) {
13
18
  _settings[key] = value;
14
- localStorage.setItem("astro:dev-overlay:settings", JSON.stringify(_settings));
19
+ localStorage.setItem("astro:dev-toolbar:settings", JSON.stringify(_settings));
15
20
  }
16
21
  function log(message) {
17
22
  console.log(
@@ -0,0 +1,45 @@
1
+ import type { DevToolbarApp as DevToolbarAppDefinition } from '../../../@types/astro.js';
2
+ import { type Icon } from './ui-library/icons.js';
3
+ export type DevToolbarApp = DevToolbarAppDefinition & {
4
+ builtIn: boolean;
5
+ active: boolean;
6
+ status: 'ready' | 'loading' | 'error';
7
+ notification: {
8
+ state: boolean;
9
+ };
10
+ eventTarget: EventTarget;
11
+ };
12
+ export declare class AstroDevToolbar extends HTMLElement {
13
+ shadowRoot: ShadowRoot;
14
+ delayedHideTimeout: number | undefined;
15
+ devToolbarContainer: HTMLDivElement | undefined;
16
+ apps: DevToolbarApp[];
17
+ hasBeenInitialized: boolean;
18
+ customAppsToShow: number;
19
+ constructor();
20
+ /**
21
+ * All one-time DOM setup runs through here. Only ever call this once,
22
+ * in connectedCallback(), and protect it from being called again.
23
+ */
24
+ init(): void;
25
+ connectedCallback(): void;
26
+ attachEvents(): void;
27
+ initApp(app: DevToolbarApp): Promise<void>;
28
+ getAppTemplate(app: DevToolbarApp): string;
29
+ getAppById(id: string): DevToolbarApp | undefined;
30
+ getAppCanvasById(id: string): HTMLElement | null;
31
+ toggleAppStatus(app: DevToolbarApp): Promise<void>;
32
+ setAppStatus(app: DevToolbarApp, newStatus: boolean): Promise<boolean>;
33
+ isHidden(): boolean;
34
+ getActiveApp(): DevToolbarApp | undefined;
35
+ clearDelayedHide(): void;
36
+ triggerDelayedHide(): void;
37
+ setToolbarVisible(newStatus: boolean): void;
38
+ setNotificationVisible(newStatus: boolean): void;
39
+ }
40
+ export declare class DevToolbarCanvas extends HTMLElement {
41
+ shadowRoot: ShadowRoot;
42
+ constructor();
43
+ connectedCallback(): void;
44
+ }
45
+ export declare function getAppIcon(icon: Icon): string;