@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.
- package/dist/angular/browser.js +6 -4
- package/dist/angular/browser.js.map +3 -3
- package/dist/angular/index.js +19 -10
- package/dist/angular/index.js.map +3 -3
- package/dist/angular/server.js +19 -10
- package/dist/angular/server.js.map +3 -3
- package/dist/build.js +145 -78
- package/dist/build.js.map +10 -10
- package/dist/cli/index.js +18 -11
- package/dist/client/index.js +4 -2
- package/dist/client/index.js.map +2 -2
- package/dist/index.js +166 -90
- package/dist/index.js.map +12 -12
- package/dist/islands/index.js +5 -3
- package/dist/islands/index.js.map +2 -2
- package/dist/react/browser.js +7 -7
- package/dist/react/browser.js.map +2 -2
- package/dist/react/components/browser/index.js +101 -101
- package/dist/react/components/index.js +104 -104
- package/dist/react/components/index.js.map +2 -2
- package/dist/react/index.js +29 -20
- package/dist/react/index.js.map +3 -3
- package/dist/react/server.js +15 -8
- package/dist/react/server.js.map +3 -3
- package/dist/src/angular/components/defer-slot-templates.directive.d.ts +0 -7
- package/dist/src/angular/components/defer-slot.component.d.ts +2 -5
- package/dist/src/angular/components/image.component.d.ts +2 -5
- package/dist/src/angular/components/index.d.ts +4 -4
- package/dist/src/angular/components/stream-slot.component.d.ts +0 -3
- package/dist/src/build/buildAngularVendor.d.ts +3 -4
- package/dist/src/utils/imageProcessing.d.ts +1 -1
- package/dist/src/vue/components/Image.d.ts +1 -1
- package/dist/svelte/index.js +19 -10
- package/dist/svelte/index.js.map +3 -3
- package/dist/svelte/server.js +16 -9
- package/dist/svelte/server.js.map +3 -3
- package/dist/vue/index.js +19 -10
- package/dist/vue/index.js.map +3 -3
- package/dist/vue/server.js +15 -8
- package/dist/vue/server.js.map +3 -3
- package/package.json +1 -1
- package/dist/angular/components/constants.js +0 -77
- package/dist/angular/components/core/streamingSlotRegistrar.js +0 -58
- package/dist/angular/components/core/streamingSlotRegistry.js +0 -114
- package/dist/angular/components/defer-slot-payload.js +0 -6
- package/dist/angular/components/defer-slot-templates.directive.js +0 -44
- package/dist/angular/components/defer-slot.component.js +0 -149
- package/dist/angular/components/image.component.js +0 -202
- package/dist/angular/components/index.js +0 -4
- package/dist/angular/components/stream-slot.component.js +0 -103
- package/dist/dev/client/constants.ts +0 -26
- package/dist/dev/client/cssUtils.ts +0 -307
- package/dist/dev/client/domDiff.ts +0 -226
- package/dist/dev/client/domState.ts +0 -421
- package/dist/dev/client/domTracker.ts +0 -61
- package/dist/dev/client/errorOverlay.ts +0 -184
- package/dist/dev/client/frameworkDetect.ts +0 -63
- package/dist/dev/client/handlers/angular.ts +0 -551
- package/dist/dev/client/handlers/angularRuntime.ts +0 -206
- package/dist/dev/client/handlers/html.ts +0 -363
- package/dist/dev/client/handlers/htmx.ts +0 -272
- package/dist/dev/client/handlers/react.ts +0 -108
- package/dist/dev/client/handlers/rebuild.ts +0 -153
- package/dist/dev/client/handlers/svelte.ts +0 -332
- package/dist/dev/client/handlers/vue.ts +0 -292
- package/dist/dev/client/headPatch.ts +0 -233
- package/dist/dev/client/hmrClient.ts +0 -251
- package/dist/dev/client/hmrState.ts +0 -14
- package/dist/dev/client/moduleVersions.ts +0 -62
- package/dist/dev/client/reactRefreshSetup.ts +0 -33
- package/dist/src/angular/components/constants.d.ts +0 -74
- package/dist/svelte/components/AwaitSlot.svelte +0 -39
- package/dist/svelte/components/AwaitSlot.svelte.d.ts +0 -2
- package/dist/svelte/components/Head.svelte +0 -144
- package/dist/svelte/components/Head.svelte.d.ts +0 -2
- package/dist/svelte/components/Image.svelte +0 -164
- package/dist/svelte/components/Image.svelte.d.ts +0 -5
- package/dist/svelte/components/Island.svelte +0 -71
- package/dist/svelte/components/Island.svelte.d.ts +0 -5
- package/dist/svelte/components/JsonLd.svelte +0 -21
- package/dist/svelte/components/JsonLd.svelte.d.ts +0 -2
- package/dist/svelte/components/StreamSlot.svelte +0 -41
- package/dist/svelte/components/StreamSlot.svelte.d.ts +0 -2
- package/dist/types/globals.d.ts +0 -121
|
@@ -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,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,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('&', '&')
|
|
27
|
-
.replaceAll('"', '"')
|
|
28
|
-
.replaceAll('<', '<')
|
|
29
|
-
.replaceAll('>', '>');
|
|
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,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>
|
package/dist/types/globals.d.ts
DELETED
|
@@ -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 {};
|