@absolutejs/absolute 0.19.0-beta.705 → 0.19.0-beta.706

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 (84) hide show
  1. package/dist/angular/browser.js +6 -4
  2. package/dist/angular/browser.js.map +3 -3
  3. package/dist/angular/index.js +19 -10
  4. package/dist/angular/index.js.map +3 -3
  5. package/dist/angular/server.js +19 -10
  6. package/dist/angular/server.js.map +3 -3
  7. package/dist/build.js +145 -78
  8. package/dist/build.js.map +10 -10
  9. package/dist/cli/index.js +18 -11
  10. package/dist/client/index.js +4 -2
  11. package/dist/client/index.js.map +2 -2
  12. package/dist/index.js +166 -90
  13. package/dist/index.js.map +12 -12
  14. package/dist/islands/index.js +5 -3
  15. package/dist/islands/index.js.map +2 -2
  16. package/dist/react/browser.js +7 -7
  17. package/dist/react/browser.js.map +2 -2
  18. package/dist/react/components/browser/index.js +101 -101
  19. package/dist/react/components/index.js +104 -104
  20. package/dist/react/components/index.js.map +2 -2
  21. package/dist/react/index.js +29 -20
  22. package/dist/react/index.js.map +3 -3
  23. package/dist/react/server.js +15 -8
  24. package/dist/react/server.js.map +3 -3
  25. package/dist/src/angular/components/defer-slot-templates.directive.d.ts +0 -7
  26. package/dist/src/angular/components/defer-slot.component.d.ts +2 -5
  27. package/dist/src/angular/components/image.component.d.ts +2 -5
  28. package/dist/src/angular/components/index.d.ts +4 -4
  29. package/dist/src/angular/components/stream-slot.component.d.ts +0 -3
  30. package/dist/src/build/buildAngularVendor.d.ts +3 -4
  31. package/dist/src/utils/imageProcessing.d.ts +1 -1
  32. package/dist/src/vue/components/Image.d.ts +1 -1
  33. package/dist/svelte/index.js +19 -10
  34. package/dist/svelte/index.js.map +3 -3
  35. package/dist/svelte/server.js +16 -9
  36. package/dist/svelte/server.js.map +3 -3
  37. package/dist/vue/index.js +19 -10
  38. package/dist/vue/index.js.map +3 -3
  39. package/dist/vue/server.js +15 -8
  40. package/dist/vue/server.js.map +3 -3
  41. package/package.json +1 -1
  42. package/dist/angular/components/constants.js +0 -77
  43. package/dist/angular/components/core/streamingSlotRegistrar.js +0 -58
  44. package/dist/angular/components/core/streamingSlotRegistry.js +0 -114
  45. package/dist/angular/components/defer-slot-payload.js +0 -6
  46. package/dist/angular/components/defer-slot-templates.directive.js +0 -44
  47. package/dist/angular/components/defer-slot.component.js +0 -149
  48. package/dist/angular/components/image.component.js +0 -202
  49. package/dist/angular/components/index.js +0 -4
  50. package/dist/angular/components/stream-slot.component.js +0 -103
  51. package/dist/dev/client/constants.ts +0 -26
  52. package/dist/dev/client/cssUtils.ts +0 -307
  53. package/dist/dev/client/domDiff.ts +0 -226
  54. package/dist/dev/client/domState.ts +0 -421
  55. package/dist/dev/client/domTracker.ts +0 -61
  56. package/dist/dev/client/errorOverlay.ts +0 -184
  57. package/dist/dev/client/frameworkDetect.ts +0 -63
  58. package/dist/dev/client/handlers/angular.ts +0 -551
  59. package/dist/dev/client/handlers/angularRuntime.ts +0 -206
  60. package/dist/dev/client/handlers/html.ts +0 -363
  61. package/dist/dev/client/handlers/htmx.ts +0 -272
  62. package/dist/dev/client/handlers/react.ts +0 -108
  63. package/dist/dev/client/handlers/rebuild.ts +0 -153
  64. package/dist/dev/client/handlers/svelte.ts +0 -332
  65. package/dist/dev/client/handlers/vue.ts +0 -292
  66. package/dist/dev/client/headPatch.ts +0 -233
  67. package/dist/dev/client/hmrClient.ts +0 -251
  68. package/dist/dev/client/hmrState.ts +0 -14
  69. package/dist/dev/client/moduleVersions.ts +0 -62
  70. package/dist/dev/client/reactRefreshSetup.ts +0 -33
  71. package/dist/src/angular/components/constants.d.ts +0 -74
  72. package/dist/svelte/components/AwaitSlot.svelte +0 -39
  73. package/dist/svelte/components/AwaitSlot.svelte.d.ts +0 -2
  74. package/dist/svelte/components/Head.svelte +0 -144
  75. package/dist/svelte/components/Head.svelte.d.ts +0 -2
  76. package/dist/svelte/components/Image.svelte +0 -164
  77. package/dist/svelte/components/Image.svelte.d.ts +0 -5
  78. package/dist/svelte/components/Island.svelte +0 -71
  79. package/dist/svelte/components/Island.svelte.d.ts +0 -5
  80. package/dist/svelte/components/JsonLd.svelte +0 -21
  81. package/dist/svelte/components/JsonLd.svelte.d.ts +0 -2
  82. package/dist/svelte/components/StreamSlot.svelte +0 -41
  83. package/dist/svelte/components/StreamSlot.svelte.d.ts +0 -2
  84. package/dist/types/globals.d.ts +0 -121
@@ -1,2 +0,0 @@
1
- import { SvelteComponent } from 'svelte';
2
- export default class AwaitSlot extends SvelteComponent {}
@@ -1,144 +0,0 @@
1
- <script lang="ts">
2
- import type { Metadata, RobotsDirective } from '../../../types/metadata';
3
-
4
- export let title: Metadata['title'] = 'AbsoluteJS';
5
- export let description: Metadata['description'] =
6
- 'A page created using AbsoluteJS';
7
- export let icon: Metadata['icon'] = '/assets/ico/favicon.ico';
8
- export let font: Metadata['font'] = undefined;
9
- export let cssPath: Metadata['cssPath'] = undefined;
10
- export let canonical: Metadata['canonical'] = undefined;
11
- export let openGraph: Metadata['openGraph'] = undefined;
12
- export let twitter: Metadata['twitter'] = undefined;
13
- export let robots: Metadata['robots'] = undefined;
14
- export let meta: Metadata['meta'] = undefined;
15
-
16
- const robotsContent = (r: RobotsDirective) => {
17
- const directives: string[] = [];
18
- if (r.index === false) directives.push('noindex');
19
- if (r.index === true) directives.push('index');
20
- if (r.follow === false) directives.push('nofollow');
21
- if (r.follow === true) directives.push('follow');
22
- if (r.noarchive) directives.push('noarchive');
23
- if (r.nosnippet) directives.push('nosnippet');
24
- if (r.noimageindex) directives.push('noimageindex');
25
- if (r.maxSnippet !== undefined)
26
- directives.push(`max-snippet:${r.maxSnippet}`);
27
- if (r.maxImagePreview)
28
- directives.push(`max-image-preview:${r.maxImagePreview}`);
29
- if (r.maxVideoPreview !== undefined)
30
- directives.push(`max-video-preview:${r.maxVideoPreview}`);
31
- return directives.join(', ');
32
- };
33
-
34
- $: cssPaths = cssPath ? (Array.isArray(cssPath) ? cssPath : [cssPath]) : [];
35
- </script>
36
-
37
- <svelte:head>
38
- <meta charset="utf-8" />
39
- <title>{title}</title>
40
- <meta name="description" content={description} />
41
- <meta name="viewport" content="width=device-width, initial-scale=1" />
42
- <link rel="icon" href={icon} />
43
-
44
- {#if canonical}
45
- <link rel="canonical" href={canonical} />
46
- {/if}
47
-
48
- {#if openGraph}
49
- <meta property="og:title" content={openGraph.title ?? title} />
50
- <meta
51
- property="og:description"
52
- content={openGraph.description ?? description}
53
- />
54
- {#if openGraph.url}
55
- <meta property="og:url" content={openGraph.url} />
56
- {/if}
57
- {#if openGraph.image}
58
- <meta property="og:image" content={openGraph.image} />
59
- {/if}
60
- {#if openGraph.imageAlt}
61
- <meta property="og:image:alt" content={openGraph.imageAlt} />
62
- {/if}
63
- {#if openGraph.imageWidth}
64
- <meta
65
- property="og:image:width"
66
- content={String(openGraph.imageWidth)}
67
- />
68
- {/if}
69
- {#if openGraph.imageHeight}
70
- <meta
71
- property="og:image:height"
72
- content={String(openGraph.imageHeight)}
73
- />
74
- {/if}
75
- {#if openGraph.type}
76
- <meta property="og:type" content={openGraph.type} />
77
- {/if}
78
- {#if openGraph.siteName}
79
- <meta property="og:site_name" content={openGraph.siteName} />
80
- {/if}
81
- {#if openGraph.locale}
82
- <meta property="og:locale" content={openGraph.locale} />
83
- {/if}
84
- {/if}
85
-
86
- {#if twitter}
87
- {#if twitter.card}
88
- <meta name="twitter:card" content={twitter.card} />
89
- {/if}
90
- <meta name="twitter:title" content={twitter.title ?? title} />
91
- <meta
92
- name="twitter:description"
93
- content={twitter.description ?? description}
94
- />
95
- {#if twitter.image}
96
- <meta name="twitter:image" content={twitter.image} />
97
- {/if}
98
- {#if twitter.imageAlt}
99
- <meta name="twitter:image:alt" content={twitter.imageAlt} />
100
- {/if}
101
- {#if twitter.site}
102
- <meta name="twitter:site" content={twitter.site} />
103
- {/if}
104
- {#if twitter.creator}
105
- <meta name="twitter:creator" content={twitter.creator} />
106
- {/if}
107
- {/if}
108
-
109
- {#if robots}
110
- {@const content = robotsContent(robots)}
111
- {#if content}
112
- <meta name="robots" {content} />
113
- {/if}
114
- {/if}
115
-
116
- {#if meta}
117
- {#each meta as tag}
118
- {#if tag.property}
119
- <meta property={tag.property} content={tag.content} />
120
- {:else if tag.httpEquiv}
121
- <meta http-equiv={tag.httpEquiv} content={tag.content} />
122
- {:else if tag.name}
123
- <meta name={tag.name} content={tag.content} />
124
- {/if}
125
- {/each}
126
- {/if}
127
-
128
- {#if font}
129
- <link rel="preconnect" href="https://fonts.googleapis.com" />
130
- <link
131
- rel="preconnect"
132
- href="https://fonts.gstatic.com"
133
- crossorigin="anonymous"
134
- />
135
- <link
136
- href={`https://fonts.googleapis.com/css2?family=${font}:wght@100..900&display=swap`}
137
- rel="stylesheet"
138
- />
139
- {/if}
140
-
141
- {#each cssPaths as path}
142
- <link rel="stylesheet" href={path} type="text/css" />
143
- {/each}
144
- </svelte:head>
@@ -1,2 +0,0 @@
1
- import { SvelteComponent } from 'svelte';
2
- export default class Head extends SvelteComponent {}
@@ -1,164 +0,0 @@
1
- <script lang="ts">
2
- import type { ImageProps } from '@absolutejs/absolute/image';
3
- import {
4
- DEFAULT_QUALITY,
5
- buildOptimizedUrl,
6
- generateBlurSvg,
7
- generateSrcSet
8
- } from '@absolutejs/absolute/image';
9
-
10
- let {
11
- src,
12
- alt,
13
- width,
14
- height,
15
- fill,
16
- quality = DEFAULT_QUALITY,
17
- sizes,
18
- loader,
19
- unoptimized,
20
- loading,
21
- priority,
22
- placeholder,
23
- blurDataURL,
24
- className,
25
- style,
26
- onLoad,
27
- onError,
28
- crossOrigin,
29
- referrerPolicy,
30
- fetchPriority,
31
- overrideSrc
32
- }: ImageProps = $props();
33
-
34
- const resolvedSrc = $derived.by(() => {
35
- if (overrideSrc) return overrideSrc;
36
- if (unoptimized) return src;
37
- if (loader) return loader({ src, width: width ?? 0, quality });
38
- if (!width) return buildOptimizedUrl(src, 0, quality);
39
- return buildOptimizedUrl(src, width, quality);
40
- });
41
-
42
- const srcSet = $derived(
43
- unoptimized ? undefined : generateSrcSet(src, width, sizes)
44
- );
45
-
46
- const resolvedSizes = $derived(sizes ?? (fill ? '100vw' : undefined));
47
-
48
- const resolvedLoading = $derived(priority ? 'eager' : (loading ?? 'lazy'));
49
-
50
- const resolvedFetchPriority = $derived(priority ? 'high' : fetchPriority);
51
-
52
- const hasBlur = $derived(
53
- placeholder === 'blur' ||
54
- (typeof placeholder === 'string' &&
55
- placeholder !== 'empty' &&
56
- placeholder.startsWith('data:'))
57
- );
58
-
59
- const blurBackground = $derived.by(() => {
60
- if (!hasBlur) return undefined;
61
- if (
62
- typeof placeholder === 'string' &&
63
- placeholder !== 'blur' &&
64
- placeholder.startsWith('data:')
65
- ) {
66
- return generateBlurSvg(placeholder);
67
- }
68
- if (blurDataURL) return generateBlurSvg(blurDataURL);
69
- return undefined;
70
- });
71
-
72
- const imgStyle = $derived.by(() => {
73
- const base: Record<string, string | number> = {
74
- ...(style ?? {}),
75
- color: 'transparent'
76
- };
77
- if (blurBackground) {
78
- base.backgroundImage = blurBackground;
79
- base.backgroundSize = 'cover';
80
- base.backgroundPosition = 'center';
81
- base.backgroundRepeat = 'no-repeat';
82
- }
83
- if (fill) {
84
- base.position = 'absolute';
85
- base.height = '100%';
86
- base.width = '100%';
87
- base.inset = 0;
88
- base.objectFit = 'cover';
89
- }
90
- return Object.entries(base)
91
- .map(
92
- ([k, v]) =>
93
- `${k.replace(/[A-Z]/g, (m) => `-${m.toLowerCase()}`)}:${v}`
94
- )
95
- .join(';');
96
- });
97
-
98
- const handleLoad = (e: Event) => {
99
- const target = e.currentTarget;
100
- if (blurBackground) {
101
- if (target instanceof HTMLImageElement) {
102
- target.style.backgroundImage = 'none';
103
- }
104
- }
105
- onLoad?.(e);
106
- };
107
-
108
- const handleError = (e: Event) => {
109
- onError?.(e);
110
- };
111
- </script>
112
-
113
- <svelte:head>
114
- {#if priority}
115
- <link
116
- rel="preload"
117
- as="image"
118
- href={resolvedSrc}
119
- imagesrcset={srcSet}
120
- imagesizes={resolvedSizes}
121
- crossorigin={crossOrigin}
122
- />
123
- {/if}
124
- </svelte:head>
125
-
126
- {#if fill}
127
- <span
128
- style="position:relative;overflow:hidden;display:block;width:100%;height:100%"
129
- >
130
- <img
131
- {alt}
132
- src={resolvedSrc}
133
- srcset={srcSet}
134
- sizes={resolvedSizes}
135
- loading={resolvedLoading}
136
- class={className}
137
- style={imgStyle}
138
- crossorigin={crossOrigin}
139
- referrerpolicy={referrerPolicy}
140
- fetchpriority={resolvedFetchPriority}
141
- decoding="async"
142
- onload={handleLoad}
143
- onerror={handleError}
144
- />
145
- </span>
146
- {:else}
147
- <img
148
- {alt}
149
- src={resolvedSrc}
150
- srcset={srcSet}
151
- sizes={resolvedSizes}
152
- {width}
153
- {height}
154
- loading={resolvedLoading}
155
- class={className}
156
- style={imgStyle}
157
- crossorigin={crossOrigin}
158
- referrerpolicy={referrerPolicy}
159
- fetchpriority={resolvedFetchPriority}
160
- decoding="async"
161
- onload={handleLoad}
162
- onerror={handleError}
163
- />
164
- {/if}
@@ -1,5 +0,0 @@
1
- import type { ImageProps } from '../../types/image';
2
- import { SvelteComponent } from 'svelte';
3
- declare const __propDef: { props: ImageProps };
4
- type Props = typeof __propDef.props;
5
- export default class Image extends SvelteComponent<Props> {}
@@ -1,71 +0,0 @@
1
- <script context="module" lang="ts">
2
- let islandSlotIndex = 0;
3
-
4
- const createSlotId = () => {
5
- const current = islandSlotIndex;
6
- islandSlotIndex += 1;
7
-
8
- return `absolute-svelte-island-${current.toString(36)}`;
9
- };
10
- </script>
11
-
12
- <script lang="ts">
13
- import type { RuntimeIslandRenderProps } from '../../../types/island';
14
-
15
- let {
16
- component,
17
- framework,
18
- hydrate = 'load',
19
- props
20
- }: RuntimeIslandRenderProps = $props();
21
-
22
- const slotId = createSlotId();
23
-
24
- const escapeHtmlAttribute = (value: string) =>
25
- value
26
- .replaceAll('&', '&amp;')
27
- .replaceAll('"', '&quot;')
28
- .replaceAll('<', '&lt;')
29
- .replaceAll('>', '&gt;');
30
-
31
- const buildFallbackMarkup = (runtimeProps: RuntimeIslandRenderProps) => {
32
- const attributes = [
33
- ['data-component', runtimeProps.component],
34
- ['data-framework', runtimeProps.framework],
35
- ['data-hydrate', runtimeProps.hydrate ?? 'load'],
36
- ['data-island', 'true'],
37
- ['data-props', JSON.stringify(runtimeProps.props ?? {})]
38
- ];
39
-
40
- const serialized = attributes
41
- .map(([name, value]) => `${name}="${escapeHtmlAttribute(value)}"`)
42
- .join(' ');
43
-
44
- return `<div ${serialized}></div>`;
45
- };
46
-
47
- const html = $derived(
48
- (() => {
49
- const runtimeProps = {
50
- component,
51
- framework,
52
- hydrate,
53
- props
54
- };
55
-
56
- if (typeof document === 'undefined') {
57
- return buildFallbackMarkup(runtimeProps);
58
- }
59
-
60
- const slot = document.querySelector<HTMLElement>(
61
- `[data-absolute-island-slot="${slotId}"]`
62
- );
63
-
64
- return slot?.innerHTML ?? buildFallbackMarkup(runtimeProps);
65
- })()
66
- );
67
- </script>
68
-
69
- <div data-absolute-island-slot={slotId} style="display: contents">
70
- {@html html}
71
- </div>
@@ -1,5 +0,0 @@
1
- import type { RuntimeIslandRenderProps } from '../../types/metadata';
2
- import { SvelteComponent } from 'svelte';
3
- declare const __propDef: { props: RuntimeIslandRenderProps };
4
- type Props = typeof __propDef.props;
5
- export default class Island extends SvelteComponent<Props> {}
@@ -1,21 +0,0 @@
1
- <script lang="ts">
2
- import type { JsonLdSchema, WithContext } from '../../../types/jsonLd';
3
-
4
- let { schema }: { schema: JsonLdSchema | JsonLdSchema[] } = $props();
5
- const schemaOrgContext = 'https://schema.org';
6
-
7
- const data = $derived<
8
- WithContext<JsonLdSchema> | WithContext<JsonLdSchema>[]
9
- >(
10
- Array.isArray(schema)
11
- ? schema.map((s) => ({
12
- '@context': schemaOrgContext,
13
- ...s
14
- }))
15
- : { '@context': schemaOrgContext, ...schema }
16
- );
17
- </script>
18
-
19
- <svelte:head>
20
- {@html `<script type="application/ld+json">${JSON.stringify(data)}</script>`}
21
- </svelte:head>
@@ -1,2 +0,0 @@
1
- import { SvelteComponent } from 'svelte';
2
- export default class JsonLd extends SvelteComponent {}
@@ -1,41 +0,0 @@
1
- <script lang="ts">
2
- import {
3
- isStreamingSlotCollectionActive,
4
- registerStreamingSlot,
5
- warnMissingStreamingSlotCollector
6
- } from '../../core/streamingSlotRegistrar';
7
-
8
- type Resolver = () => Promise<string> | string;
9
-
10
- let {
11
- className,
12
- errorHtml,
13
- fallbackHtml = '',
14
- id,
15
- resolve,
16
- timeoutMs
17
- }: {
18
- className?: string;
19
- errorHtml?: string;
20
- fallbackHtml?: string;
21
- id: string;
22
- resolve: Resolver;
23
- timeoutMs?: number;
24
- } = $props();
25
-
26
- if (isStreamingSlotCollectionActive()) {
27
- registerStreamingSlot({
28
- errorHtml,
29
- fallbackHtml,
30
- id,
31
- resolve,
32
- timeoutMs
33
- });
34
- } else {
35
- warnMissingStreamingSlotCollector('StreamSlot');
36
- }
37
- </script>
38
-
39
- <div class={className} data-absolute-slot="true" {id}>
40
- {@html fallbackHtml}
41
- </div>
@@ -1,2 +0,0 @@
1
- import { SvelteComponent } from 'svelte';
2
- export default class StreamSlot extends SvelteComponent {}
@@ -1,121 +0,0 @@
1
- declare global {
2
- /* Server-side globals (Bun --hot reload state) */
3
- var __hmrServerStartup: boolean | undefined;
4
- var __hmrBuildDuration: number | undefined;
5
- var __absoluteVersion: string | undefined;
6
- var __hmrServerMtime: number | undefined;
7
- var __hmrSkipServerRestart: boolean | undefined;
8
- /** Pinned React module from initial devBuild — used to detect and bridge
9
- * duplicate React instances after bun install invalidates the module cache. */
10
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
11
- var __reactModuleRef: any;
12
- var __depVendorPaths: Record<string, string> | undefined;
13
- var __transformCache:
14
- | Map<string, { content: string; imports: string[]; mtime: number }>
15
- | undefined;
16
- var __transformImporters: Map<string, Set<string>> | undefined;
17
- var __transformInvalidationVersions: Map<string, number> | undefined;
18
- var __http2Config:
19
- | {
20
- hmrState: import('../src/dev/clientManager').HMRState;
21
- manifest: Record<string, string>;
22
- }
23
- | undefined;
24
- var __hmrDevResult:
25
- | {
26
- hmrState: import('../src/dev/clientManager').HMRState;
27
- manifest: Record<string, string>;
28
- conventions?: import('./conventions').ConventionsMap;
29
- }
30
- | undefined;
31
-
32
- /* Client-side globals (Window extensions for HMR) */
33
- interface Window {
34
- $RefreshReg$?: (type: unknown, id: string) => void;
35
- $RefreshRuntime$?: {
36
- createSignatureFunctionForTransform: () => (
37
- type: unknown
38
- ) => unknown;
39
- injectIntoGlobalHook: (win: Window) => void;
40
- performReactRefresh: () => void;
41
- register: (type: unknown, id: string) => void;
42
- };
43
- $RefreshSig$?: () => (type: unknown) => unknown;
44
- __HMR_FRAMEWORK__?: string;
45
- __HMR_MANIFEST__?: Record<string, string>;
46
- __HMR_MODULE_UPDATES__?: Array<unknown>;
47
- __HMR_MODULE_VERSIONS__?: Record<string, number>;
48
- __HMR_PRESERVED_STATE__?: Record<string, unknown>;
49
- __HMR_SERVER_VERSIONS__?: Record<string, number>;
50
- __HMR_UPDATE_COUNT__?: number;
51
- __HMR_WS__?: WebSocket;
52
- __ERROR_BOUNDARY__?: { reset: () => void };
53
- __INITIAL_PROPS__?: Record<string, unknown>;
54
- __REACT_COMPONENT_KEY__?: string;
55
- __REACT_ROOT__?: { render: (element: unknown) => void };
56
- __SVELTE_COMPONENT__?: Record<string, unknown>;
57
- __ABS_SVELTE_ISLAND_HTML__?: Record<string, string>;
58
- __SVELTE_UNMOUNT__?: () => void;
59
- __ANGULAR_APP__?: { destroy: () => void; tick: () => void } | null;
60
- __HMR_SKIP_HYDRATION__?: boolean;
61
- __HMR_NEW_PAGE_CLASS__?: unknown;
62
- __NG_REPLACE_METADATA__?: (...args: unknown[]) => void;
63
- __ANGULAR_HMR__?: {
64
- register: (id: string, ctor: unknown) => void;
65
- applyUpdate: (id: string, newCtor: unknown) => boolean;
66
- refresh: () => void;
67
- getStats: () => { componentCount: number; updateCount: number };
68
- getRegistry: () => Map<
69
- string,
70
- {
71
- liveCtor: unknown;
72
- id: string;
73
- registeredAt: number;
74
- updateCount: number;
75
- }
76
- >;
77
- };
78
- __VUE_APP__?:
79
- | ({
80
- unmount: () => void;
81
- _instance?: import('./vue').VueComponentInstance;
82
- } & Record<string, unknown>)
83
- | null;
84
- __VUE_HMR_COMPONENTS__?: Record<string, unknown>;
85
- __VUE_HMR_RUNTIME__?: {
86
- createRecord: (id: string, component: unknown) => void;
87
- reload: (id: string, component: unknown) => void;
88
- rerender: (id: string, render: unknown) => void;
89
- };
90
- __REFRESH_BUFFER__?: Array<[unknown, string]>;
91
- htmx?: { process: (element: HTMLElement | Document) => void };
92
- __ABS_ANGULAR_ISLAND_APPS__?: unknown[];
93
- __ABS_CLAIMED_ISLAND_MARKUP__?: Map<string, number>;
94
- __ABS_SERVER_ISLAND_HTML__?: Map<
95
- string,
96
- Array<{ attributes: Record<string, string>; innerHTML: string }>
97
- >;
98
- }
99
-
100
- /**
101
- * Platform-native island element for HTML and HTMX host pages.
102
- *
103
- * Attributes:
104
- * - `framework`: one of `react`, `svelte`, `vue`, or `angular`
105
- * - `component`: the registry component name to render
106
- * - `hydrate`: one of `load`, `idle`, `visible`, or `none`
107
- * - `props`: JSON-serialized props payload
108
- */
109
- interface AbsoluteIslandElement extends HTMLElement {
110
- component: string;
111
- framework: 'react' | 'svelte' | 'vue' | 'angular';
112
- hydrate?: 'load' | 'idle' | 'visible' | 'none';
113
- props: string;
114
- }
115
-
116
- interface HTMLElementTagNameMap {
117
- 'absolute-island': AbsoluteIslandElement;
118
- }
119
- }
120
-
121
- export {};