@prismicio/svelte 0.0.10 → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (57) hide show
  1. package/README.md +29 -30
  2. package/dist/PrismicEmbed.svelte +8 -7
  3. package/dist/PrismicEmbed.svelte.d.ts +7 -7
  4. package/dist/PrismicImage.svelte +58 -64
  5. package/dist/PrismicImage.svelte.d.ts +270 -44
  6. package/dist/PrismicLink.svelte +16 -13
  7. package/dist/PrismicLink.svelte.d.ts +242 -35
  8. package/dist/PrismicRichText/DefaultComponent.svelte +1 -8
  9. package/dist/PrismicRichText/DefaultComponent.svelte.d.ts +4 -9
  10. package/dist/PrismicRichText/PrismicRichText.svelte +9 -13
  11. package/dist/PrismicRichText/PrismicRichText.svelte.d.ts +12 -33
  12. package/dist/PrismicRichText/Serialize.svelte +16 -15
  13. package/dist/PrismicRichText/Serialize.svelte.d.ts +7 -8
  14. package/dist/PrismicText.svelte +28 -4
  15. package/dist/PrismicText.svelte.d.ts +7 -10
  16. package/dist/SliceZone/SliceZone.svelte +12 -9
  17. package/dist/SliceZone/SliceZone.svelte.d.ts +41 -13
  18. package/dist/SliceZone/{TodoSliceComponent.svelte → TodoComponent.svelte} +2 -1
  19. package/dist/SliceZone/TodoComponent.svelte.d.ts +20 -0
  20. package/dist/index.d.ts +1 -0
  21. package/dist/lib/devMsg.d.ts +16 -0
  22. package/dist/lib/devMsg.js +19 -0
  23. package/dist/types.d.ts +7 -0
  24. package/dist/types.js +1 -0
  25. package/package.json +52 -112
  26. package/src/PrismicEmbed.svelte +30 -0
  27. package/src/PrismicImage.svelte +168 -0
  28. package/src/PrismicLink.svelte +60 -0
  29. package/{dist/src/lib → src}/PrismicRichText/DefaultComponent.svelte +3 -15
  30. package/src/PrismicRichText/PrismicRichText.svelte +32 -0
  31. package/src/PrismicRichText/Serialize.svelte +36 -0
  32. package/src/PrismicText.svelte +58 -0
  33. package/{dist/src/lib → src}/SliceZone/SliceZone.svelte +29 -21
  34. package/{dist/src/lib/SliceZone/TodoSliceComponent.svelte → src/SliceZone/TodoComponent.svelte} +2 -1
  35. package/{dist/src/lib → src}/index.ts +2 -0
  36. package/src/lib/devMsg.ts +20 -0
  37. package/src/types.ts +15 -0
  38. package/dist/SliceZone/TodoSliceComponent.svelte.d.ts +0 -20
  39. package/dist/src/app.html +0 -12
  40. package/dist/src/global.d.ts +0 -1
  41. package/dist/src/lib/PrismicEmbed.svelte +0 -29
  42. package/dist/src/lib/PrismicImage.svelte +0 -192
  43. package/dist/src/lib/PrismicLink.svelte +0 -64
  44. package/dist/src/lib/PrismicRichText/PrismicRichText.svelte +0 -67
  45. package/dist/src/lib/PrismicRichText/Serialize.svelte +0 -33
  46. package/dist/src/lib/PrismicText.svelte +0 -29
  47. package/dist/src/routes/+page.server.ts +0 -19
  48. package/dist/src/routes/+page.svelte +0 -62
  49. package/dist/src/routes/components/Emphasis.svelte +0 -3
  50. package/dist/src/routes/slices/CodeSnippet.svelte +0 -19
  51. package/dist/src/routes/slices/RichText.svelte +0 -12
  52. package/dist/src/types/CodeSnippetSlice.type.ts +0 -7
  53. package/dist/src/types/ExampleDocument.type.ts +0 -8
  54. package/dist/src/types/PageDocument.type.ts +0 -7
  55. package/dist/src/types/RichTextSlice.type.ts +0 -7
  56. package/dist/src/types/Route.type.ts +0 -14
  57. package/dist/src/types/index.ts +0 -5
@@ -1,67 +0,0 @@
1
- <script lang="ts">
2
- import type { SvelteComponent } from "svelte";
3
- import type { RichTextField } from "@prismicio/types";
4
- import {
5
- asTree,
6
- wrapMapSerializer,
7
- type RichTextFunctionSerializer,
8
- type RichTextMapSerializer,
9
- type TreeNode,
10
- } from "@prismicio/richtext";
11
-
12
- import Serialize from "./Serialize.svelte";
13
- import type { LinkResolverFunction } from "@prismicio/helpers";
14
-
15
- /**
16
- * The Prismic Rich Text field to render.
17
- */
18
- export let field: RichTextField = [];
19
-
20
- /**
21
- * The Link Resolver used to resolve links.
22
- *
23
- * @remarks
24
- * If your app uses Route Resolvers when querying for your Prismic
25
- * repository's content, a Link Resolver does not need to be provided.
26
- * @see Learn about Link Resolvers and Route Resolvers {@link https://prismic.io/docs/route-resolver}
27
- */
28
- export let linkResolver: LinkResolverFunction | undefined = undefined;
29
-
30
- /**
31
- * An object that maps Rich Text blocks to Svelte components.
32
- *
33
- * **Important**: Your components must be wrapped in a function. For example:
34
- * `{ heading1: () => Heading }`, not: `{ heading1: Heading }`.
35
- *
36
- * @example A serializer that modififes `h1` elements:
37
- *
38
- * ```js
39
- * import Title from "./Title.svelte";
40
- *
41
- * const richTextSerializer = {
42
- * h1: () => Title,
43
- * };
44
- * ```
45
- */
46
- export let components:
47
- | RichTextMapSerializer<typeof SvelteComponent, TreeNode>
48
- | RichTextFunctionSerializer<typeof SvelteComponent, TreeNode>
49
- | undefined = undefined;
50
-
51
- let resolvedSerializer =
52
- typeof components === "object" ? wrapMapSerializer(components) : components;
53
-
54
- const nodes = asTree(field).children;
55
- </script>
56
-
57
- <!--
58
- @component
59
- Component to render a Prismic Rich Text or Title field as HTML.
60
-
61
- @example Rendering a Link field:
62
- ```svelte
63
- <PrismicRichText field={document.data.example_rich_text} />
64
- ```
65
- -->
66
-
67
- <Serialize {nodes} serializer={resolvedSerializer} {linkResolver} />
@@ -1,33 +0,0 @@
1
- <script lang="ts">
2
- import type { SvelteComponent } from "svelte";
3
- import type {
4
- RichTextFunctionSerializer,
5
- TreeNode,
6
- } from "@prismicio/richtext";
7
- import type { LinkResolverFunction } from "@prismicio/helpers";
8
-
9
- import Default from "./DefaultComponent.svelte";
10
-
11
- export let serializer:
12
- | RichTextFunctionSerializer<typeof SvelteComponent, TreeNode>
13
- | undefined;
14
- export let nodes: TreeNode[] = [];
15
- export let linkResolver: LinkResolverFunction | undefined = undefined;
16
- </script>
17
-
18
- {#each nodes as node}
19
- <svelte:component
20
- this={(serializer &&
21
- serializer(node.type, node.node, node.text, node.children, node.key)) ||
22
- Default}
23
- type={node.type}
24
- node={node.node}
25
- text={node.text}
26
- key={node.key}
27
- {linkResolver}
28
- >
29
- {#if node.children.length > 0}
30
- <svelte:self nodes={node.children} {serializer} />
31
- {/if}
32
- </svelte:component>
33
- {/each}
@@ -1,29 +0,0 @@
1
- <script lang="ts">
2
- import * as prismicH from "@prismicio/helpers";
3
- import type * as prismicR from "@prismicio/richtext";
4
-
5
- import type { RichTextField as RichTextFieldType } from "@prismicio/types";
6
- import type { TitleField as TitleFieldType } from "@prismicio/types";
7
-
8
- /**
9
- * A Rich Text or Title field from Prismic.
10
- */
11
- export let field: TitleFieldType | RichTextFieldType;
12
-
13
- /**
14
- * The separator used between blocks. Defaults to `\n`.
15
- */
16
- export let separator: string | undefined = undefined;
17
- </script>
18
-
19
- <!--
20
- @component
21
- Component to render a Prismic Rich Text or Title field as plain text.
22
-
23
- @example Rendering a Rich Text field:
24
- ```svelte
25
- <PrismicText field={document.data.example_rich_text} />
26
- ```
27
- -->
28
-
29
- {@html prismicH.asText(field, separator)}
@@ -1,19 +0,0 @@
1
- import * as prismic from "@prismicio/client";
2
- import type { PageDocument } from "../types/PageDocument.type";
3
- import type { PageServerLoad } from "./$types";
4
-
5
- export const load = (async ({ fetch }) => {
6
- const endpoint = prismic.getRepositoryEndpoint("svelte-package-dev");
7
- const client = prismic.createClient(endpoint, { fetch });
8
-
9
- const pageDocument: PageDocument = await client.getSingle("homepage");
10
-
11
- const exampleClient = prismic.createClient("example-prismic-repo", { fetch });
12
- const exampleDocument = exampleClient.getFirst({ page: 11, pageSize: 1 });
13
-
14
- return {
15
- pageDocument,
16
- exampleDocument,
17
- };
18
- // eslint-disable-next-line prettier/prettier
19
- }) satisfies PageServerLoad;
@@ -1,62 +0,0 @@
1
- <script lang="ts">
2
- import {
3
- SliceZone,
4
- PrismicLink,
5
- PrismicImage,
6
- PrismicRichText,
7
- PrismicText,
8
- PrismicEmbed,
9
- } from "$lib";
10
-
11
- import type { PageData } from "./$types";
12
-
13
- import CodeSnippet from "./slices/CodeSnippet.svelte";
14
- import RichText from "./slices/RichText.svelte";
15
-
16
- const components = {
17
- rich_text: RichText,
18
- code_snippet: CodeSnippet,
19
- };
20
-
21
- export let data: PageData;
22
- </script>
23
-
24
- <main>
25
- <h1>Welcome to SvelteKit</h1>
26
- <h2><code>PrismicText</code></h2>
27
- <PrismicText field={data.exampleDocument.data.example_rich_text} />
28
- <h2><code>PrismicRichText</code></h2>
29
- <PrismicRichText field={data.exampleDocument.data.example_rich_text} />
30
- <h2><code>PrismicImage</code></h2>
31
- <PrismicImage
32
- field={data.exampleDocument.data.example_image}
33
- height="200"
34
- alt=""
35
- />
36
- <h2><code>PrismicLink</code></h2>
37
- <PrismicLink
38
- data-sveltekit-noscroll
39
- data-sveltekit-preload-code
40
- data-sveltekit-preload-data
41
- data-sveltekit-reload
42
- rel="external"
43
- class="doggo"
44
- field={data.exampleDocument.data.example_link}>Link</PrismicLink
45
- >
46
- <h2><code>PrismicEmbed</code></h2>
47
- <PrismicEmbed field={data.exampleDocument.data.example_embed} />
48
- <h2><code>SliceZone</code></h2>
49
- <SliceZone slices={data.pageDocument.data.body} {components} />
50
- </main>
51
-
52
- <style>
53
- main {
54
- max-width: min(90%, 700px);
55
- margin: auto;
56
- }
57
-
58
- :global(img) {
59
- height: auto;
60
- max-width: 100%;
61
- }
62
- </style>
@@ -1,3 +0,0 @@
1
- <mark>
2
- <slot />
3
- </mark>
@@ -1,19 +0,0 @@
1
- <script lang="ts">
2
- import * as prismicH from "@prismicio/helpers";
3
- import type { CodeSnippetSlice } from "../../../types/CodeSnippetSlice.type";
4
-
5
- export let slice: CodeSnippetSlice;
6
- </script>
7
-
8
- <pre>
9
- {@html prismicH.asHTML(slice.primary.content)}
10
- </pre>
11
-
12
- <style>
13
- pre {
14
- background: #222;
15
- color: white;
16
- padding: 10px;
17
- border-radius: 10px;
18
- }
19
- </style>
@@ -1,12 +0,0 @@
1
- <script lang="ts">
2
- import { PrismicRichText } from "$lib";
3
- import type { RichTextSlice } from "../../types";
4
- import Emphasis from "../components/Emphasis.svelte";
5
-
6
- export let slice: RichTextSlice;
7
- </script>
8
-
9
- <PrismicRichText
10
- field={slice.primary.content}
11
- components={{ em: () => Emphasis }}
12
- />
@@ -1,7 +0,0 @@
1
- import type * as prismicT from "@prismicio/types";
2
-
3
- type PrimaryFields = {
4
- content: prismicT.RichTextField;
5
- };
6
-
7
- export type CodeSnippetSlice = prismicT.Slice<"code_snippet", PrimaryFields>;
@@ -1,8 +0,0 @@
1
- import type * as prismicT from "@prismicio/types";
2
-
3
- export type ExampleDocument = prismicT.PrismicDocument<{
4
- example_link: prismicT.LinkField;
5
- example_content_relationship: prismicT.ContentRelationshipField;
6
- example_rich_text: prismicT.RichTextField;
7
- example_image: prismicT.ImageField;
8
- }>;
@@ -1,7 +0,0 @@
1
- import type * as prismicT from "@prismicio/types";
2
- import type { CodeSnippetSlice } from "./CodeSnippetSlice.type";
3
- import type { RichTextSlice } from "./RichTextSlice.type";
4
-
5
- export type PageDocument = prismicT.PrismicDocument<{
6
- body: prismicT.SliceZone<CodeSnippetSlice | RichTextSlice>;
7
- }>;
@@ -1,7 +0,0 @@
1
- import type * as prismicT from "@prismicio/types";
2
-
3
- type PrimaryFields = {
4
- content: prismicT.RichTextField;
5
- };
6
-
7
- export type RichTextSlice = prismicT.Slice<"rich_text", PrimaryFields>;
@@ -1,14 +0,0 @@
1
- export interface Route {
2
- /**
3
- * The Custom Type of the document.
4
- */
5
- type: string;
6
- /**
7
- * The resolved path of the document with optional placeholders.
8
- */
9
- path: string;
10
- /**
11
- * An object that lists the API IDs of the Content Relationships in the route.
12
- */
13
- resolvers: Record<string, string>;
14
- }
@@ -1,5 +0,0 @@
1
- export type { CodeSnippetSlice } from "./CodeSnippetSlice.type";
2
- export type { PageDocument } from "./PageDocument.type";
3
- export type { ExampleDocument } from "./ExampleDocument.type";
4
- export type { RichTextSlice } from "./RichTextSlice.type";
5
- export type { Route } from "./Route.type";