@prismicio/svelte 0.0.11 → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +29 -30
- package/dist/PrismicEmbed.svelte +8 -7
- package/dist/PrismicEmbed.svelte.d.ts +7 -7
- package/dist/PrismicImage.svelte +58 -64
- package/dist/PrismicImage.svelte.d.ts +270 -44
- package/dist/PrismicLink.svelte +16 -13
- package/dist/PrismicLink.svelte.d.ts +242 -35
- package/dist/PrismicRichText/DefaultComponent.svelte +1 -8
- package/dist/PrismicRichText/DefaultComponent.svelte.d.ts +4 -9
- package/dist/PrismicRichText/PrismicRichText.svelte +8 -14
- package/dist/PrismicRichText/PrismicRichText.svelte.d.ts +12 -33
- package/dist/PrismicRichText/Serialize.svelte +16 -15
- package/dist/PrismicRichText/Serialize.svelte.d.ts +7 -8
- package/dist/PrismicText.svelte +28 -4
- package/dist/PrismicText.svelte.d.ts +7 -10
- package/dist/SliceZone/SliceZone.svelte +12 -9
- package/dist/SliceZone/SliceZone.svelte.d.ts +41 -13
- package/dist/SliceZone/{TodoSliceComponent.svelte → TodoComponent.svelte} +2 -1
- package/dist/SliceZone/TodoComponent.svelte.d.ts +20 -0
- package/dist/index.d.ts +1 -0
- package/dist/lib/devMsg.d.ts +16 -0
- package/dist/lib/devMsg.js +19 -0
- package/dist/types.d.ts +7 -0
- package/dist/types.js +1 -0
- package/package.json +52 -112
- package/src/PrismicEmbed.svelte +30 -0
- package/src/PrismicImage.svelte +168 -0
- package/src/PrismicLink.svelte +60 -0
- package/{dist/src/lib → src}/PrismicRichText/DefaultComponent.svelte +3 -15
- package/src/PrismicRichText/PrismicRichText.svelte +32 -0
- package/src/PrismicRichText/Serialize.svelte +36 -0
- package/src/PrismicText.svelte +58 -0
- package/{dist/src/lib → src}/SliceZone/SliceZone.svelte +29 -21
- package/{dist/src/lib/SliceZone/TodoSliceComponent.svelte → src/SliceZone/TodoComponent.svelte} +2 -1
- package/{dist/src/lib → src}/index.ts +2 -0
- package/src/lib/devMsg.ts +20 -0
- package/src/types.ts +15 -0
- package/dist/SliceZone/TodoSliceComponent.svelte.d.ts +0 -20
- package/dist/src/app.html +0 -12
- package/dist/src/global.d.ts +0 -1
- package/dist/src/lib/PrismicEmbed.svelte +0 -29
- package/dist/src/lib/PrismicImage.svelte +0 -192
- package/dist/src/lib/PrismicLink.svelte +0 -64
- package/dist/src/lib/PrismicRichText/PrismicRichText.svelte +0 -67
- package/dist/src/lib/PrismicRichText/Serialize.svelte +0 -33
- package/dist/src/lib/PrismicText.svelte +0 -29
- package/dist/src/routes/+page.server.ts +0 -19
- package/dist/src/routes/+page.svelte +0 -62
- package/dist/src/routes/components/Emphasis.svelte +0 -3
- package/dist/src/routes/slices/CodeSnippet.svelte +0 -19
- package/dist/src/routes/slices/RichText.svelte +0 -12
- package/dist/src/types/CodeSnippetSlice.type.ts +0 -7
- package/dist/src/types/ExampleDocument.type.ts +0 -8
- package/dist/src/types/PageDocument.type.ts +0 -7
- package/dist/src/types/RichTextSlice.type.ts +0 -7
- package/dist/src/types/Route.type.ts +0 -14
- package/dist/src/types/index.ts +0 -5
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
<script>import
|
|
1
|
+
<script>import TodoComponent from "./TodoComponent.svelte";
|
|
2
2
|
export let slices = [];
|
|
3
3
|
export let components = {};
|
|
4
4
|
export let context = {};
|
|
@@ -7,15 +7,18 @@ export let defaultComponent = void 0;
|
|
|
7
7
|
|
|
8
8
|
<!--
|
|
9
9
|
@component
|
|
10
|
-
Component to render an array of Prismic
|
|
10
|
+
Component to render an array of Prismic slices.
|
|
11
11
|
|
|
12
|
-
@example Rendering a
|
|
12
|
+
@example Rendering a Slice Zone:
|
|
13
13
|
```svelte
|
|
14
|
-
<SliceZone
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
14
|
+
<SliceZone
|
|
15
|
+
slices={document.data.slices}
|
|
16
|
+
components={{
|
|
17
|
+
block_quote: BlockQuote,
|
|
18
|
+
hero_image: HeroImage
|
|
19
|
+
}}
|
|
20
|
+
/>
|
|
21
|
+
```
|
|
19
22
|
-->
|
|
20
23
|
|
|
21
24
|
{#each slices as slice, index}
|
|
@@ -24,6 +27,6 @@ export let defaultComponent = void 0;
|
|
|
24
27
|
{#if Component}
|
|
25
28
|
<svelte:component this={Component} {slice} {slices} {context} {index} />
|
|
26
29
|
{:else}
|
|
27
|
-
<
|
|
30
|
+
<TodoComponent {slice} />
|
|
28
31
|
{/if}
|
|
29
32
|
{/each}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import type { SvelteComponent } from "svelte";
|
|
1
|
+
import { SvelteComponent } from "svelte";
|
|
3
2
|
declare const __propDef: {
|
|
4
3
|
props: {
|
|
5
4
|
/**
|
|
@@ -11,7 +10,7 @@ declare const __propDef: {
|
|
|
11
10
|
type: string;
|
|
12
11
|
})[] | undefined;
|
|
13
12
|
/**
|
|
14
|
-
* An object that maps Slice components to their corresponding API IDs
|
|
13
|
+
* An object that maps Slice components to their corresponding API IDs.
|
|
15
14
|
*
|
|
16
15
|
* @example An example map:
|
|
17
16
|
*
|
|
@@ -24,14 +23,40 @@ declare const __propDef: {
|
|
|
24
23
|
* hero_image: HeroImage,
|
|
25
24
|
* };
|
|
26
25
|
* ```
|
|
27
|
-
*/ components?: Record<string, new (...args: any[]) => SvelteComponent
|
|
26
|
+
*/ components?: Record<string, new (...args: any[]) => SvelteComponent<{
|
|
27
|
+
slice: {
|
|
28
|
+
slice_type: string;
|
|
29
|
+
} | {
|
|
30
|
+
type: string;
|
|
31
|
+
};
|
|
32
|
+
slices: ({
|
|
33
|
+
slice_type: string;
|
|
34
|
+
} | {
|
|
35
|
+
type: string;
|
|
36
|
+
})[];
|
|
37
|
+
context: unknown;
|
|
38
|
+
index: number;
|
|
39
|
+
}, any, any>> | undefined;
|
|
28
40
|
/**
|
|
29
41
|
* Arbitrary data passed to all Slice components as a `context` prop.
|
|
30
42
|
*/ context?: any;
|
|
31
43
|
/**
|
|
32
44
|
* The Svelte component rendered if a component mapping from the `components`
|
|
33
45
|
* prop cannot be found.
|
|
34
|
-
*/ defaultComponent?:
|
|
46
|
+
*/ defaultComponent?: (new (...args: any[]) => SvelteComponent<{
|
|
47
|
+
slice: {
|
|
48
|
+
slice_type: string;
|
|
49
|
+
} | {
|
|
50
|
+
type: string;
|
|
51
|
+
};
|
|
52
|
+
slices: ({
|
|
53
|
+
slice_type: string;
|
|
54
|
+
} | {
|
|
55
|
+
type: string;
|
|
56
|
+
})[];
|
|
57
|
+
context: unknown;
|
|
58
|
+
index: number;
|
|
59
|
+
}, any, any>) | undefined;
|
|
35
60
|
};
|
|
36
61
|
events: {
|
|
37
62
|
[evt: string]: CustomEvent<any>;
|
|
@@ -42,16 +67,19 @@ export type SliceZoneProps = typeof __propDef.props;
|
|
|
42
67
|
export type SliceZoneEvents = typeof __propDef.events;
|
|
43
68
|
export type SliceZoneSlots = typeof __propDef.slots;
|
|
44
69
|
/**
|
|
45
|
-
* Component to render an array of Prismic
|
|
70
|
+
* Component to render an array of Prismic slices.
|
|
46
71
|
*
|
|
47
|
-
* @example Rendering a
|
|
72
|
+
* @example Rendering a Slice Zone:
|
|
48
73
|
* ```svelte
|
|
49
|
-
* <SliceZone
|
|
50
|
-
*
|
|
51
|
-
*
|
|
52
|
-
*
|
|
53
|
-
*
|
|
74
|
+
* <SliceZone
|
|
75
|
+
* slices={document.data.slices}
|
|
76
|
+
* components={{
|
|
77
|
+
* block_quote: BlockQuote,
|
|
78
|
+
* hero_image: HeroImage
|
|
79
|
+
* }}
|
|
80
|
+
* />
|
|
81
|
+
* ```
|
|
54
82
|
*/
|
|
55
|
-
export default class SliceZone extends
|
|
83
|
+
export default class SliceZone extends SvelteComponent<SliceZoneProps, SliceZoneEvents, SliceZoneSlots> {
|
|
56
84
|
}
|
|
57
85
|
export {};
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
<script>import { DEV } from "esm-env";
|
|
2
2
|
export let slice;
|
|
3
3
|
const type = "slice_type" in slice ? slice.slice_type : slice.type;
|
|
4
|
-
if (DEV)
|
|
4
|
+
if (DEV) {
|
|
5
5
|
console.warn(
|
|
6
6
|
`[SliceZone] Could not find a component for Slice type "${type}"`,
|
|
7
7
|
slice
|
|
8
8
|
);
|
|
9
|
+
}
|
|
9
10
|
</script>
|
|
10
11
|
|
|
11
12
|
{#if DEV}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { SvelteComponent } from "svelte";
|
|
2
|
+
declare const __propDef: {
|
|
3
|
+
props: {
|
|
4
|
+
slice: {
|
|
5
|
+
slice_type: string;
|
|
6
|
+
} | {
|
|
7
|
+
type: string;
|
|
8
|
+
};
|
|
9
|
+
};
|
|
10
|
+
events: {
|
|
11
|
+
[evt: string]: CustomEvent<any>;
|
|
12
|
+
};
|
|
13
|
+
slots: {};
|
|
14
|
+
};
|
|
15
|
+
export type TodoComponentProps = typeof __propDef.props;
|
|
16
|
+
export type TodoComponentEvents = typeof __propDef.events;
|
|
17
|
+
export type TodoComponentSlots = typeof __propDef.slots;
|
|
18
|
+
export default class TodoComponent extends SvelteComponent<TodoComponentProps, TodoComponentEvents, TodoComponentSlots> {
|
|
19
|
+
}
|
|
20
|
+
export {};
|
package/dist/index.d.ts
CHANGED
|
@@ -4,3 +4,4 @@ export { default as PrismicLink } from "./PrismicLink.svelte";
|
|
|
4
4
|
export { default as PrismicRichText } from "./PrismicRichText/PrismicRichText.svelte";
|
|
5
5
|
export { default as PrismicText } from "./PrismicText.svelte";
|
|
6
6
|
export { default as SliceZone } from "./SliceZone/SliceZone.svelte";
|
|
7
|
+
export type { SvelteRichTextSerializer } from "./types";
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Returns a `prismic.dev/msg` URL for a given message slug.
|
|
3
|
+
*
|
|
4
|
+
* @example
|
|
5
|
+
*
|
|
6
|
+
* ```ts
|
|
7
|
+
* devMsg("missing-param");
|
|
8
|
+
* // => "https://prismic.dev/msg/svelte/v1.2.3/missing-param.md"
|
|
9
|
+
* ```
|
|
10
|
+
*
|
|
11
|
+
* @param slug - Slug for the message. This corresponds to a Markdown file in
|
|
12
|
+
* the Git repository's `/messages` directory.
|
|
13
|
+
*
|
|
14
|
+
* @returns The `prismic.dev/msg` URL for the given slug.
|
|
15
|
+
*/
|
|
16
|
+
export declare const devMsg: (slug: string) => string;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { version } from "../../package.json";
|
|
2
|
+
/**
|
|
3
|
+
* Returns a `prismic.dev/msg` URL for a given message slug.
|
|
4
|
+
*
|
|
5
|
+
* @example
|
|
6
|
+
*
|
|
7
|
+
* ```ts
|
|
8
|
+
* devMsg("missing-param");
|
|
9
|
+
* // => "https://prismic.dev/msg/svelte/v1.2.3/missing-param.md"
|
|
10
|
+
* ```
|
|
11
|
+
*
|
|
12
|
+
* @param slug - Slug for the message. This corresponds to a Markdown file in
|
|
13
|
+
* the Git repository's `/messages` directory.
|
|
14
|
+
*
|
|
15
|
+
* @returns The `prismic.dev/msg` URL for the given slug.
|
|
16
|
+
*/
|
|
17
|
+
export const devMsg = (slug) => {
|
|
18
|
+
return `https://prismic.dev/msg/react/v${version}/${slug}`;
|
|
19
|
+
};
|
package/dist/types.d.ts
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { RTAnyNode, RichTextNodeType } from "@prismicio/client";
|
|
2
|
+
import type { SvelteComponent } from "svelte";
|
|
3
|
+
export type SvelteRichTextSerializer = Partial<Record<keyof typeof RichTextNodeType, SvelteRichTextComponent>>;
|
|
4
|
+
type SvelteRichTextComponent = new (...args: any[]) => SvelteComponent<Partial<{
|
|
5
|
+
node: RTAnyNode;
|
|
6
|
+
}>>;
|
|
7
|
+
export {};
|
package/dist/types.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
package/package.json
CHANGED
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@prismicio/svelte",
|
|
3
|
-
"version": "0.0
|
|
4
|
-
"description": "Svelte
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "Svelte components to present Prismic content.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"typescript",
|
|
7
|
-
"prismic"
|
|
8
|
-
"svelte"
|
|
7
|
+
"prismic"
|
|
9
8
|
],
|
|
10
9
|
"repository": {
|
|
11
10
|
"type": "git",
|
|
@@ -15,134 +14,75 @@
|
|
|
15
14
|
"author": "Prismic <contact@prismic.io> (https://prismic.io)",
|
|
16
15
|
"type": "module",
|
|
17
16
|
"exports": {
|
|
18
|
-
"./package.json": "./package.json",
|
|
19
17
|
".": {
|
|
20
18
|
"types": "./dist/index.d.ts",
|
|
21
19
|
"svelte": "./dist/index.js",
|
|
22
20
|
"default": "./dist/index.js"
|
|
23
21
|
},
|
|
24
|
-
"./
|
|
22
|
+
"./package.json": "./package.json"
|
|
25
23
|
},
|
|
26
24
|
"main": "./dist/index.js",
|
|
27
25
|
"module": "./dist/index.js",
|
|
28
26
|
"types": "./dist/index.d.ts",
|
|
29
|
-
"
|
|
27
|
+
"files": [
|
|
28
|
+
"./dist",
|
|
29
|
+
"./src"
|
|
30
|
+
],
|
|
30
31
|
"scripts": {
|
|
31
|
-
"build": "svelte-package
|
|
32
|
-
"dev": "
|
|
33
|
-
"format": "prettier --write .",
|
|
34
|
-
"prepare": "npm run build && svelte-kit sync",
|
|
35
|
-
"release": "npm run build && npm run test && standard-version && git push --follow-tags && npm run build && npm publish",
|
|
36
|
-
"release:dry": "standard-version --dry-run",
|
|
37
|
-
"release:alpha": "npm run build && npm run test && standard-version --release-as major --prerelease alpha && git push --follow-tags && npm run build && npm publish --tag alpha",
|
|
38
|
-
"release:alpha:dry": "standard-version --release-as major --prerelease alpha --dry-run",
|
|
39
|
-
"release:dev": "npm run build && npm run test && standard-version --prerelease dev && git push --follow-tags && npm run build && npm publish --tag dev",
|
|
40
|
-
"release:dev:dry": "standard-version --prerelease dev --dry-run",
|
|
32
|
+
"build": "svelte-package --input ./src",
|
|
33
|
+
"dev": "svelte-package --input ./src --watch",
|
|
34
|
+
"format": "prettier --write --plugin prettier-plugin-svelte .",
|
|
41
35
|
"lint": "eslint --ext .js,.ts .",
|
|
36
|
+
"prepare": "npm run build",
|
|
37
|
+
"release": "npm run test && standard-version && git push --follow-tags && npm run build && npm publish",
|
|
38
|
+
"release:alpha": "npm run test && standard-version --release-as major --prerelease alpha && git push --follow-tags && npm run build && npm publish --tag alpha",
|
|
39
|
+
"release:alpha:dry": "standard-version --release-as major --prerelease alpha --dry-run",
|
|
40
|
+
"release:dry": "standard-version --dry-run",
|
|
41
|
+
"size": "size-limit",
|
|
42
|
+
"test": "npm run lint && npm run types && npm run unit && npm run build && npm run size",
|
|
43
|
+
"types": "vitest typecheck --run && tsc --noEmit",
|
|
44
|
+
"types:watch": "vitest typecheck",
|
|
42
45
|
"unit": "vitest run --coverage",
|
|
43
|
-
"unit:watch": "vitest watch"
|
|
44
|
-
"test": "npm run lint && npm run unit",
|
|
45
|
-
"preview": "svelte-kit preview",
|
|
46
|
-
"package": "svelte-package -o dist package",
|
|
47
|
-
"check": "svelte-check --tsconfig ./tsconfig.json",
|
|
48
|
-
"check:watch": "svelte-check --tsconfig ./tsconfig.json --watch"
|
|
46
|
+
"unit:watch": "vitest watch"
|
|
49
47
|
},
|
|
50
48
|
"dependencies": {
|
|
51
|
-
"@prismicio/
|
|
52
|
-
"
|
|
53
|
-
"@prismicio/richtext": "^2.2.0-alpha.0",
|
|
54
|
-
"@sveltejs/kit": "^1.8.3",
|
|
55
|
-
"svelte": "^3.55.1"
|
|
49
|
+
"@prismicio/richtext": "^2.1.5",
|
|
50
|
+
"esm-env": "^1.0.0"
|
|
56
51
|
},
|
|
57
52
|
"devDependencies": {
|
|
58
|
-
"@prismicio/
|
|
59
|
-
"@prismicio/
|
|
60
|
-
"@
|
|
61
|
-
"@sveltejs/
|
|
62
|
-
"@sveltejs/
|
|
63
|
-
"@
|
|
64
|
-
"@
|
|
65
|
-
"@
|
|
66
|
-
"
|
|
67
|
-
"
|
|
68
|
-
"eslint
|
|
69
|
-
"eslint-
|
|
70
|
-
"eslint-plugin-
|
|
71
|
-
"eslint-plugin-
|
|
72
|
-
"
|
|
73
|
-
"
|
|
74
|
-
"prettier
|
|
75
|
-
"
|
|
76
|
-
"
|
|
77
|
-
"
|
|
78
|
-
"
|
|
79
|
-
"
|
|
80
|
-
"
|
|
81
|
-
"
|
|
82
|
-
|
|
53
|
+
"@prismicio/client": "^7.1.1",
|
|
54
|
+
"@prismicio/mock": "^0.3.1",
|
|
55
|
+
"@size-limit/preset-small-lib": "^8.2.6",
|
|
56
|
+
"@sveltejs/package": "^2.2.1",
|
|
57
|
+
"@sveltejs/vite-plugin-svelte": "^2.4.5",
|
|
58
|
+
"@testing-library/svelte": "^4.0.3",
|
|
59
|
+
"@trivago/prettier-plugin-sort-imports": "^4.2.0",
|
|
60
|
+
"@typescript-eslint/eslint-plugin": "^6.4.1",
|
|
61
|
+
"@typescript-eslint/parser": "^6.4.1",
|
|
62
|
+
"@vitest/coverage-v8": "^0.34.2",
|
|
63
|
+
"eslint": "^8.47.0",
|
|
64
|
+
"eslint-config-prettier": "^9.0.0",
|
|
65
|
+
"eslint-plugin-prettier": "^5.0.0",
|
|
66
|
+
"eslint-plugin-svelte": "^2.33.0",
|
|
67
|
+
"eslint-plugin-tsdoc": "^0.2.17",
|
|
68
|
+
"happy-dom": "^10.11.0",
|
|
69
|
+
"prettier": "^3.0.2",
|
|
70
|
+
"prettier-plugin-jsdoc": "^1.0.1",
|
|
71
|
+
"prettier-plugin-svelte": "^3.0.3",
|
|
72
|
+
"size-limit": "^8.2.6",
|
|
73
|
+
"standard-version": "^9.5.0",
|
|
74
|
+
"svelte": "^4.2.0",
|
|
75
|
+
"typescript": "^5.1.6",
|
|
76
|
+
"vitest": "^0.34.2"
|
|
77
|
+
},
|
|
78
|
+
"peerDependencies": {
|
|
79
|
+
"@prismicio/client": ">=7",
|
|
80
|
+
"svelte": ">=4"
|
|
83
81
|
},
|
|
84
82
|
"engines": {
|
|
85
|
-
"node": ">=
|
|
83
|
+
"node": ">=14.15.0"
|
|
86
84
|
},
|
|
87
85
|
"publishConfig": {
|
|
88
86
|
"access": "public"
|
|
89
|
-
},
|
|
90
|
-
"optionalDependencies": {
|
|
91
|
-
"@esbuild/android-arm": "^0.17.10"
|
|
92
|
-
},
|
|
93
|
-
"files": [
|
|
94
|
-
"dist"
|
|
95
|
-
],
|
|
96
|
-
"typesVersions": {
|
|
97
|
-
">4.0": {
|
|
98
|
-
"PrismicProvider.svelte": [
|
|
99
|
-
"./dist/PrismicProvider.svelte.d.ts"
|
|
100
|
-
],
|
|
101
|
-
"components/PrismicEmbed.svelte": [
|
|
102
|
-
"./dist/components/PrismicEmbed.svelte.d.ts"
|
|
103
|
-
],
|
|
104
|
-
"components/PrismicImage.svelte": [
|
|
105
|
-
"./dist/components/PrismicImage.svelte.d.ts"
|
|
106
|
-
],
|
|
107
|
-
"components/PrismicLink.svelte": [
|
|
108
|
-
"./dist/components/PrismicLink.svelte.d.ts"
|
|
109
|
-
],
|
|
110
|
-
"components/PrismicPreview.svelte": [
|
|
111
|
-
"./dist/components/PrismicPreview.svelte.d.ts"
|
|
112
|
-
],
|
|
113
|
-
"components/PrismicRichText/DefaultComponent.svelte": [
|
|
114
|
-
"./dist/components/PrismicRichText/DefaultComponent.svelte.d.ts"
|
|
115
|
-
],
|
|
116
|
-
"components/PrismicRichText/PrismicRichText.svelte": [
|
|
117
|
-
"./dist/components/PrismicRichText/PrismicRichText.svelte.d.ts"
|
|
118
|
-
],
|
|
119
|
-
"components/PrismicRichText/Serialize.svelte": [
|
|
120
|
-
"./dist/components/PrismicRichText/Serialize.svelte.d.ts"
|
|
121
|
-
],
|
|
122
|
-
"components/PrismicText.svelte": [
|
|
123
|
-
"./dist/components/PrismicText.svelte.d.ts"
|
|
124
|
-
],
|
|
125
|
-
"components/SliceZone.svelte": [
|
|
126
|
-
"./dist/components/SliceZone.svelte.d.ts"
|
|
127
|
-
],
|
|
128
|
-
"components/TodoSliceComponent.svelte": [
|
|
129
|
-
"./dist/components/TodoSliceComponent.svelte.d.ts"
|
|
130
|
-
],
|
|
131
|
-
"components": [
|
|
132
|
-
"./dist/components/index.d.ts"
|
|
133
|
-
],
|
|
134
|
-
"configurePrismic": [
|
|
135
|
-
"./dist/configurePrismic.d.ts"
|
|
136
|
-
],
|
|
137
|
-
"index": [
|
|
138
|
-
"./dist/index.d.ts"
|
|
139
|
-
],
|
|
140
|
-
"injectionSymbols": [
|
|
141
|
-
"./dist/injectionSymbols.d.ts"
|
|
142
|
-
],
|
|
143
|
-
"usePrismic": [
|
|
144
|
-
"./dist/usePrismic.d.ts"
|
|
145
|
-
]
|
|
146
|
-
}
|
|
147
87
|
}
|
|
148
88
|
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import type { EmbedField } from "@prismicio/client";
|
|
3
|
+
import { isFilled } from "@prismicio/client";
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* An Embed field from Prismic.
|
|
7
|
+
*/
|
|
8
|
+
export let field: EmbedField;
|
|
9
|
+
</script>
|
|
10
|
+
|
|
11
|
+
<!--
|
|
12
|
+
@component
|
|
13
|
+
Component to render a Prismic embed field.
|
|
14
|
+
|
|
15
|
+
@example Rendering an embed field:
|
|
16
|
+
```svelte
|
|
17
|
+
<PrismicEmbed field={document.data.example_embed} />
|
|
18
|
+
```
|
|
19
|
+
-->
|
|
20
|
+
|
|
21
|
+
{#if isFilled.embed(field)}
|
|
22
|
+
<div
|
|
23
|
+
data-oembed={field.embed_url}
|
|
24
|
+
data-oembed-type={field.type}
|
|
25
|
+
data-oembed-provider={field.provider_name}
|
|
26
|
+
>
|
|
27
|
+
<!-- eslint-disable-next-line svelte/no-at-html-tags -->
|
|
28
|
+
{@html field.html}
|
|
29
|
+
</div>
|
|
30
|
+
{/if}
|
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import {
|
|
3
|
+
asImageWidthSrcSet,
|
|
4
|
+
asImagePixelDensitySrcSet,
|
|
5
|
+
isFilled,
|
|
6
|
+
type ImageFieldImage,
|
|
7
|
+
} from "@prismicio/client";
|
|
8
|
+
import type { ImgixURLParams } from "imgix-url-builder";
|
|
9
|
+
import type { HTMLImgAttributes } from "svelte/elements";
|
|
10
|
+
|
|
11
|
+
type $$Props = Omit<HTMLImgAttributes, "src" | "srcset" | "alt"> & {
|
|
12
|
+
/**
|
|
13
|
+
* The Prismic image field or thumbnail to render.
|
|
14
|
+
*/
|
|
15
|
+
field: ImageFieldImage | null | undefined;
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* An object of Imgix URL API parameters to transform the image.
|
|
19
|
+
*
|
|
20
|
+
* See: https://docs.imgix.com/apis/rendering
|
|
21
|
+
*/
|
|
22
|
+
imgixParams?: ImgixURLParams;
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* Declare an image as decorative by providing `alt=""`.
|
|
26
|
+
*
|
|
27
|
+
* See:
|
|
28
|
+
* https://developer.mozilla.org/en-US/docs/Web/API/HTMLImageElement/alt#decorative_images
|
|
29
|
+
*/
|
|
30
|
+
alt?: "";
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* Declare an image as decorative only if the Image field does not have
|
|
34
|
+
* alternative text by providing `fallbackAlt=""`.
|
|
35
|
+
*
|
|
36
|
+
* See:
|
|
37
|
+
* https://developer.mozilla.org/en-US/docs/Web/API/HTMLImageElement/alt#decorative_images
|
|
38
|
+
*/
|
|
39
|
+
fallbackAlt?: "";
|
|
40
|
+
} & (
|
|
41
|
+
| {
|
|
42
|
+
/**
|
|
43
|
+
* Widths used to build a `srcset` value for the Image field.
|
|
44
|
+
*
|
|
45
|
+
* If a `widths` prop is not given or `"defaults"` is passed, the
|
|
46
|
+
* following widths will be used: 640, 750, 828, 1080, 1200, 1920,
|
|
47
|
+
* 2048, 3840.
|
|
48
|
+
*
|
|
49
|
+
* If the Image field contains responsive views, each responsive view
|
|
50
|
+
* can be used as a width in the resulting `srcset` by passing
|
|
51
|
+
* `"thumbnails"` as the `widths` prop.
|
|
52
|
+
*/
|
|
53
|
+
widths?:
|
|
54
|
+
| NonNullable<Parameters<typeof asImageWidthSrcSet>[1]>["widths"]
|
|
55
|
+
| "defaults";
|
|
56
|
+
pixelDensities?: never;
|
|
57
|
+
}
|
|
58
|
+
| {
|
|
59
|
+
/**
|
|
60
|
+
* Pixel densities used to build a `srcset` value for the Image field.
|
|
61
|
+
*
|
|
62
|
+
* If a `pixelDensities` prop is passed `"defaults"`, the following
|
|
63
|
+
* pixel densities will be used: 1, 2, 3.
|
|
64
|
+
*/
|
|
65
|
+
pixelDensities:
|
|
66
|
+
| NonNullable<
|
|
67
|
+
Parameters<typeof asImagePixelDensitySrcSet>[1]
|
|
68
|
+
>["pixelDensities"]
|
|
69
|
+
| "defaults";
|
|
70
|
+
widths?: never;
|
|
71
|
+
}
|
|
72
|
+
);
|
|
73
|
+
|
|
74
|
+
export let field: $$Props["field"];
|
|
75
|
+
export let imgixParams: $$Props["imgixParams"] = {};
|
|
76
|
+
export let alt: $$Props["alt"] = undefined;
|
|
77
|
+
export let fallbackAlt: $$Props["fallbackAlt"] = undefined;
|
|
78
|
+
export let width: $$Props["width"] = undefined;
|
|
79
|
+
export let height: $$Props["width"] = undefined;
|
|
80
|
+
export let widths: $$Props["widths"] = undefined;
|
|
81
|
+
export let pixelDensities: $$Props["pixelDensities"] = undefined;
|
|
82
|
+
|
|
83
|
+
let src: string | undefined = undefined;
|
|
84
|
+
let srcset: string | undefined = undefined;
|
|
85
|
+
let resolvedWidth: $$Props["width"] = undefined;
|
|
86
|
+
let resolvedHeight: $$Props["height"] = undefined;
|
|
87
|
+
|
|
88
|
+
$: {
|
|
89
|
+
if (isFilled.imageThumbnail(field)) {
|
|
90
|
+
const castInt = (
|
|
91
|
+
input: string | number | null | undefined,
|
|
92
|
+
): number | null | undefined => {
|
|
93
|
+
if (
|
|
94
|
+
typeof input === "number" ||
|
|
95
|
+
typeof input === "undefined" ||
|
|
96
|
+
input === null
|
|
97
|
+
) {
|
|
98
|
+
return input;
|
|
99
|
+
} else {
|
|
100
|
+
const parsed = Number.parseInt(input);
|
|
101
|
+
|
|
102
|
+
if (Number.isNaN(parsed)) {
|
|
103
|
+
return undefined;
|
|
104
|
+
} else {
|
|
105
|
+
return parsed;
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
};
|
|
109
|
+
|
|
110
|
+
const ar = field.dimensions.width / field.dimensions.height;
|
|
111
|
+
|
|
112
|
+
const castedWidth = castInt(width);
|
|
113
|
+
const castedHeight = castInt(height);
|
|
114
|
+
|
|
115
|
+
resolvedWidth = castedWidth ?? field.dimensions.width;
|
|
116
|
+
resolvedHeight = castedHeight ?? field.dimensions.height;
|
|
117
|
+
|
|
118
|
+
if (castedWidth != null && castedHeight == null) {
|
|
119
|
+
resolvedHeight = castedWidth / ar;
|
|
120
|
+
} else if (castedWidth == null && castedHeight != null) {
|
|
121
|
+
resolvedWidth = castedHeight * ar;
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
if (widths || !pixelDensities) {
|
|
125
|
+
const res = asImageWidthSrcSet(field, {
|
|
126
|
+
...imgixParams,
|
|
127
|
+
widths: widths === "defaults" ? undefined : widths,
|
|
128
|
+
});
|
|
129
|
+
|
|
130
|
+
src = res.src;
|
|
131
|
+
srcset = res.srcset;
|
|
132
|
+
} else if (pixelDensities) {
|
|
133
|
+
const res = asImagePixelDensitySrcSet(field, {
|
|
134
|
+
...imgixParams,
|
|
135
|
+
pixelDensities:
|
|
136
|
+
pixelDensities === "defaults" ? undefined : pixelDensities,
|
|
137
|
+
} as ImgixURLParams);
|
|
138
|
+
|
|
139
|
+
src = res.src;
|
|
140
|
+
srcset = res.srcset;
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
</script>
|
|
145
|
+
|
|
146
|
+
<!--
|
|
147
|
+
@component
|
|
148
|
+
Component to render a Prismic image field as an `img` element with `width`, `height`, `alt`, `src`, and `srcset` attributes.
|
|
149
|
+
|
|
150
|
+
@example Rendering an image field:
|
|
151
|
+
```svelte
|
|
152
|
+
<PrismicImage
|
|
153
|
+
field={document.data.example_image}
|
|
154
|
+
imgixParams={{ sat: -100 }}
|
|
155
|
+
/>
|
|
156
|
+
```
|
|
157
|
+
-->
|
|
158
|
+
|
|
159
|
+
{#if isFilled.imageThumbnail(field)}
|
|
160
|
+
<img
|
|
161
|
+
{src}
|
|
162
|
+
{srcset}
|
|
163
|
+
alt={alt ?? (field.alt || fallbackAlt)}
|
|
164
|
+
width={resolvedWidth}
|
|
165
|
+
height={resolvedHeight}
|
|
166
|
+
{...$$restProps}
|
|
167
|
+
/>
|
|
168
|
+
{/if}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import {
|
|
3
|
+
asLinkAttrs,
|
|
4
|
+
type AsLinkAttrsConfig,
|
|
5
|
+
type LinkField,
|
|
6
|
+
type PrismicDocument,
|
|
7
|
+
} from "@prismicio/client";
|
|
8
|
+
import type { HTMLAnchorAttributes } from "svelte/elements";
|
|
9
|
+
|
|
10
|
+
type $$Props = Omit<HTMLAnchorAttributes, "rel" | "href"> & {
|
|
11
|
+
/**
|
|
12
|
+
* The `rel` attribute for the link. By default, `"noreferrer"` is provided
|
|
13
|
+
* if the link's URL is external. This prop can be provided a function to
|
|
14
|
+
* use the link's metadata to determine the `rel` value.
|
|
15
|
+
*/
|
|
16
|
+
rel?: string | AsLinkAttrsConfig["rel"];
|
|
17
|
+
} & (
|
|
18
|
+
| {
|
|
19
|
+
/**
|
|
20
|
+
* A Prismic link field, content relationship field, or link to media
|
|
21
|
+
* field.
|
|
22
|
+
*/
|
|
23
|
+
field: LinkField;
|
|
24
|
+
document?: never;
|
|
25
|
+
}
|
|
26
|
+
| {
|
|
27
|
+
/**
|
|
28
|
+
* A Prismic document.
|
|
29
|
+
*/
|
|
30
|
+
document: PrismicDocument;
|
|
31
|
+
field?: never;
|
|
32
|
+
}
|
|
33
|
+
);
|
|
34
|
+
|
|
35
|
+
export let field: $$Props["field"] = undefined;
|
|
36
|
+
export let document: $$Props["document"] = undefined;
|
|
37
|
+
export let rel: $$Props["rel"] = undefined;
|
|
38
|
+
|
|
39
|
+
$: linkAttrs = asLinkAttrs(field ?? document, {
|
|
40
|
+
rel: typeof rel === "function" ? rel : undefined,
|
|
41
|
+
});
|
|
42
|
+
|
|
43
|
+
$: resolvedRel = typeof rel === "string" ? rel : linkAttrs.rel;
|
|
44
|
+
</script>
|
|
45
|
+
|
|
46
|
+
<!--
|
|
47
|
+
@component
|
|
48
|
+
Component to render a Prismic link, link to media, content relationship, or whole document as an `a` tag.
|
|
49
|
+
|
|
50
|
+
@example Rendering a Link field:
|
|
51
|
+
```svelte
|
|
52
|
+
<PrismicLink field={document.data.example_link}>
|
|
53
|
+
Example anchor text.
|
|
54
|
+
</PrismicLink>
|
|
55
|
+
```
|
|
56
|
+
-->
|
|
57
|
+
|
|
58
|
+
<a {...linkAttrs} rel={resolvedRel} href={linkAttrs.href} {...$$restProps}>
|
|
59
|
+
<slot />
|
|
60
|
+
</a>
|