@slicemachine/adapter-sveltekit 0.3.78-beta.9 → 0.3.79-alpha.coderabbitai-chat-dniAA6r9GseKm4ouqNyJ8dl.1

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 (70) hide show
  1. package/dist/AlternateGrid/javascript.4.svelte +227 -0
  2. package/dist/AlternateGrid/javascript.svelte +6 -5
  3. package/dist/AlternateGrid/typescript.4.svelte +224 -0
  4. package/dist/AlternateGrid/typescript.svelte +9 -4
  5. package/dist/CallToAction/javascript.4.svelte +127 -0
  6. package/dist/CallToAction/javascript.svelte +6 -5
  7. package/dist/CallToAction/typescript.4.svelte +124 -0
  8. package/dist/CallToAction/typescript.svelte +4 -2
  9. package/dist/CustomerLogos/javascript.4.svelte +124 -0
  10. package/dist/CustomerLogos/javascript.svelte +6 -5
  11. package/dist/CustomerLogos/typescript.4.svelte +121 -0
  12. package/dist/CustomerLogos/typescript.svelte +4 -2
  13. package/dist/Hero/javascript.4.svelte +190 -0
  14. package/dist/Hero/javascript.svelte +5 -4
  15. package/dist/Hero/typescript.4.svelte +187 -0
  16. package/dist/Hero/typescript.svelte +4 -2
  17. package/dist/hooks/documentation-read.cjs +14 -51
  18. package/dist/hooks/documentation-read.cjs.map +1 -1
  19. package/dist/hooks/documentation-read.js +14 -51
  20. package/dist/hooks/documentation-read.js.map +1 -1
  21. package/dist/hooks/documentation-read.templates.cjs +114 -0
  22. package/dist/hooks/documentation-read.templates.cjs.map +1 -0
  23. package/dist/hooks/documentation-read.templates.d.ts +9 -0
  24. package/dist/hooks/documentation-read.templates.js +114 -0
  25. package/dist/hooks/documentation-read.templates.js.map +1 -0
  26. package/dist/hooks/project-init.cjs +44 -143
  27. package/dist/hooks/project-init.cjs.map +1 -1
  28. package/dist/hooks/project-init.js +44 -143
  29. package/dist/hooks/project-init.js.map +1 -1
  30. package/dist/hooks/project-init.templates.cjs +181 -0
  31. package/dist/hooks/project-init.templates.cjs.map +1 -0
  32. package/dist/hooks/project-init.templates.d.ts +12 -0
  33. package/dist/hooks/project-init.templates.js +181 -0
  34. package/dist/hooks/project-init.templates.js.map +1 -0
  35. package/dist/hooks/slice-create.cjs +5 -52
  36. package/dist/hooks/slice-create.cjs.map +1 -1
  37. package/dist/hooks/slice-create.js +5 -52
  38. package/dist/hooks/slice-create.js.map +1 -1
  39. package/dist/hooks/slice-create.templates.cjs +61 -0
  40. package/dist/hooks/slice-create.templates.cjs.map +1 -0
  41. package/dist/hooks/slice-create.templates.d.ts +6 -0
  42. package/dist/hooks/slice-create.templates.js +61 -0
  43. package/dist/hooks/slice-create.templates.js.map +1 -0
  44. package/dist/lib/getSvelteMajor.cjs +38 -0
  45. package/dist/lib/getSvelteMajor.cjs.map +1 -0
  46. package/dist/lib/getSvelteMajor.d.ts +1 -0
  47. package/dist/lib/getSvelteMajor.js +16 -0
  48. package/dist/lib/getSvelteMajor.js.map +1 -0
  49. package/dist/lib/requireResolve.cjs +16 -0
  50. package/dist/lib/requireResolve.cjs.map +1 -0
  51. package/dist/lib/requireResolve.d.ts +10 -0
  52. package/dist/lib/requireResolve.js +16 -0
  53. package/dist/lib/requireResolve.js.map +1 -0
  54. package/dist/plugin.cjs +4 -2
  55. package/dist/plugin.cjs.map +1 -1
  56. package/dist/plugin.js +4 -2
  57. package/dist/plugin.js.map +1 -1
  58. package/dist/simulator/SliceSimulator.svelte +3 -2
  59. package/dist/simulator/SliceSimulator.svelte.d.ts +7 -19
  60. package/package.json +9 -8
  61. package/src/hooks/documentation-read.templates.ts +170 -0
  62. package/src/hooks/documentation-read.ts +21 -59
  63. package/src/hooks/project-init.templates.ts +208 -0
  64. package/src/hooks/project-init.ts +57 -147
  65. package/src/hooks/slice-create.templates.ts +103 -0
  66. package/src/hooks/slice-create.ts +7 -66
  67. package/src/lib/getSvelteMajor.ts +23 -0
  68. package/src/lib/requireResolve.ts +30 -0
  69. package/src/plugin.ts +5 -2
  70. package/src/simulator/SliceSimulator.svelte +3 -2
@@ -0,0 +1,124 @@
1
+ <script lang="ts">
2
+ import { type Content, isFilled } from "@prismicio/client";
3
+ import {
4
+ PrismicLink,
5
+ PrismicImage,
6
+ PrismicRichText,
7
+ } from "@prismicio/svelte";
8
+
9
+ export let slice: Content.PascalNameToReplaceSlice;
10
+
11
+ $: alignment = slice.variation === "alignLeft" ? "left" : "center";
12
+ </script>
13
+
14
+ <section
15
+ data-slice-type={slice.slice_type}
16
+ data-slice-variation={slice.variation}
17
+ class="es-bounded es-call-to-action"
18
+ style="--alignment: {alignment}"
19
+ >
20
+ <div class="es-bounded__content es-call-to-action__content">
21
+ {#if isFilled.image(slice.primary.image)}
22
+ <PrismicImage
23
+ class="es-call-to-action__image"
24
+ field={slice.primary.image}
25
+ />
26
+ {/if}
27
+ <div class="es-call-to-action__content">
28
+ {#if isFilled.richText(slice.primary.title)}
29
+ <div class="es-call-to-action__content__heading">
30
+ <PrismicRichText field={slice.primary.title} />
31
+ </div>
32
+ {/if}
33
+ {#if isFilled.richText(slice.primary.paragraph)}
34
+ <div class="es-call-to-action__content__paragraph">
35
+ <PrismicRichText field={slice.primary.paragraph} />
36
+ </div>
37
+ {/if}
38
+ </div>
39
+ <PrismicLink
40
+ class="es-call-to-action__button"
41
+ field={slice.primary.buttonLink}
42
+ />
43
+ </div>
44
+ <style>
45
+ .es-bounded {
46
+ padding: 8vw 2rem;
47
+ }
48
+
49
+ .es-bounded__content {
50
+ margin-left: auto;
51
+ margin-right: auto;
52
+ }
53
+
54
+ @media screen and (min-width: 640px) {
55
+ .es-bounded__content {
56
+ max-width: 90%;
57
+ }
58
+ }
59
+
60
+ @media screen and (min-width: 896px) {
61
+ .es-bounded__content {
62
+ max-width: 80%;
63
+ }
64
+ }
65
+
66
+ @media screen and (min-width: 1280px) {
67
+ .es-bounded__content {
68
+ max-width: 75%;
69
+ }
70
+ }
71
+
72
+ .es-call-to-action {
73
+ font-family: system-ui, sans-serif;
74
+ background-color: #fff;
75
+ color: #333;
76
+ }
77
+
78
+ .es-call-to-action__image {
79
+ max-width: 14rem;
80
+ height: auto;
81
+ width: auto;
82
+ justify-self: var(--alignment);
83
+ }
84
+
85
+ .es-call-to-action__content {
86
+ display: grid;
87
+ gap: 1rem;
88
+ justify-items: var(--alignment);
89
+ }
90
+
91
+ .es-call-to-action__content__heading {
92
+ font-size: 2rem;
93
+ font-weight: 700;
94
+ text-align: var(--alignment);
95
+ }
96
+
97
+ .es-call-to-action__content__heading * {
98
+ margin: 0;
99
+ }
100
+
101
+ .es-call-to-action__content__paragraph {
102
+ font-size: 1.15rem;
103
+ max-width: 38rem;
104
+ text-align: var(--alignment);
105
+ }
106
+
107
+ .es-call-to-action__button {
108
+ justify-self: var(--alignment);
109
+ border-radius: 0.25rem;
110
+ display: inline-block;
111
+ font-size: 0.875rem;
112
+ line-height: 1.3;
113
+ padding: 1rem 2.625rem;
114
+ text-align: var(--alignment);
115
+ transition: background-color 100ms linear;
116
+ background-color: #16745f;
117
+ color: #fff;
118
+ }
119
+
120
+ .es-call-to-action__button:hover {
121
+ background-color: #0d5e4c;
122
+ }
123
+ </style>
124
+ </section>
@@ -4,11 +4,13 @@
4
4
  PrismicLink,
5
5
  PrismicImage,
6
6
  PrismicRichText,
7
+ type SliceComponentProps,
7
8
  } from "@prismicio/svelte";
8
9
 
9
- export let slice: Content.PascalNameToReplaceSlice;
10
+ const { slice }: SliceComponentProps<Content.PascalNameToReplaceSlice> =
11
+ $props();
10
12
 
11
- $: alignment = slice.variation === "alignLeft" ? "left" : "center";
13
+ let alignment = $derived(slice.variation === "alignLeft" ? "left" : "center");
12
14
  </script>
13
15
 
14
16
  <section
@@ -0,0 +1,124 @@
1
+ <script>
2
+ import { isFilled } from "@prismicio/client";
3
+ import {
4
+ PrismicImage,
5
+ PrismicRichText,
6
+ PrismicLink,
7
+ } from "@prismicio/svelte";
8
+
9
+ /**
10
+ * @type {import("@prismicio/client").Content.${PascalNameToReplace}Slice}
11
+ */
12
+ export let slice;
13
+ </script>
14
+
15
+ <section
16
+ data-slice-type={slice.slice_type}
17
+ data-slice-variation={slice.variation}
18
+ class="es-bounded es-customer-logos"
19
+ >
20
+ <div class="es-bounded__content es-customer-logos__content">
21
+ {#if isFilled.richText(slice.primary.eyebrowHeadline)}
22
+ <div class="es-customer-logos__heading">
23
+ <PrismicRichText field={slice.primary.eyebrowHeadline} />
24
+ </div>
25
+ {/if}
26
+ {#if slice.primary.logos.length > 0}
27
+ <ul class="es-customer-logos__logos">
28
+ {#each slice.primary.logos as logo}
29
+ {#if isFilled.image(logo.image)}
30
+ <li class="es-customer-logos__logo">
31
+ <PrismicLink field={logo.link}>
32
+ <PrismicImage
33
+ field={logo.image}
34
+ class="es-customer-logos__logo__link__image"
35
+ height="26"
36
+ width="160"
37
+ />
38
+ </PrismicLink>
39
+ </li>
40
+ {/if}
41
+ {/each}
42
+ </ul>
43
+ {/if}
44
+ <PrismicLink
45
+ field={slice.primary.callToActionLink}
46
+ class="es-customer-logos__button"
47
+ />
48
+ </div>
49
+
50
+ <style>
51
+ .es-bounded {
52
+ margin: 0px;
53
+ min-width: 0px;
54
+ position: relative;
55
+ padding: 8vw 1.25rem;
56
+ }
57
+
58
+ .es-bounded__content {
59
+ min-width: 0px;
60
+ max-width: 90%;
61
+ margin: 0px auto;
62
+ }
63
+
64
+ .es-customer-logos {
65
+ font-family: system-ui, sans-serif;
66
+ background-color: #f4f0ec;
67
+ color: #333;
68
+ }
69
+
70
+ .es-customer-logos__content {
71
+ display: grid;
72
+ gap: 2rem;
73
+ justify-items: center;
74
+ }
75
+
76
+ .es-customer-logos__heading {
77
+ color: #8592e0;
78
+ font-size: 1.5rem;
79
+ font-weight: 500;
80
+ text-align: center;
81
+ }
82
+
83
+ .es-customer-logos__heading * {
84
+ margin: 0;
85
+ }
86
+
87
+ .es-customer-logos__logos {
88
+ display: grid;
89
+ grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
90
+ grid-column-gap: 1.25rem;
91
+ grid-row-gap: 2rem;
92
+ align-items: center;
93
+ list-style-type: none;
94
+ width: 100%;
95
+ }
96
+
97
+ @media (min-width: 1200px) {
98
+ .es-customer-logos__logos {
99
+ margin-left: -3rem;
100
+ }
101
+ }
102
+
103
+ .es-customer-logos__logo {
104
+ margin: 0;
105
+ display: flex;
106
+ justify-content: center;
107
+ }
108
+
109
+ @media (min-width: 1200px) {
110
+ .es-customer-logos__logo {
111
+ margin-left: 3rem;
112
+ }
113
+ }
114
+
115
+ .es-customer-logos__logo__link__image {
116
+ max-width: 10rem;
117
+ }
118
+
119
+ .es-customer-logos__button {
120
+ justify-self: center;
121
+ text-decoration: underline;
122
+ }
123
+ </style>
124
+ </section>
@@ -6,10 +6,11 @@
6
6
  PrismicLink,
7
7
  } from "@prismicio/svelte";
8
8
 
9
- /**
10
- * @type {import("@prismicio/client").Content.${PascalNameToReplace}Slice}
11
- */
12
- export let slice;
9
+ /* @typedef {import("@prismicio/client").Content} Content */
10
+ /* @typedef {import("@prismicio/svelte").SliceComponentProps} SliceComponentProps */
11
+
12
+ /* @type {SliceComponentProps<Content.${PascalNameToReplace}Slice>} */
13
+ const { slice } = $props();
13
14
  </script>
14
15
 
15
16
  <section
@@ -25,7 +26,7 @@
25
26
  {/if}
26
27
  {#if slice.primary.logos.length > 0}
27
28
  <ul class="es-customer-logos__logos">
28
- {#each slice.primary.logos as logo}
29
+ {#each slice.primary.logos as logo (logo.image)}
29
30
  {#if isFilled.image(logo.image)}
30
31
  <li class="es-customer-logos__logo">
31
32
  <PrismicLink field={logo.link}>
@@ -0,0 +1,121 @@
1
+ <script lang="ts">
2
+ import { type Content, isFilled } from "@prismicio/client";
3
+ import {
4
+ PrismicImage,
5
+ PrismicRichText,
6
+ PrismicLink,
7
+ } from "@prismicio/svelte";
8
+
9
+ export let slice: Content.PascalNameToReplaceSlice;
10
+ </script>
11
+
12
+ <section
13
+ data-slice-type={slice.slice_type}
14
+ data-slice-variation={slice.variation}
15
+ class="es-bounded es-customer-logos"
16
+ >
17
+ <div class="es-bounded__content es-customer-logos__content">
18
+ {#if isFilled.richText(slice.primary.eyebrowHeadline)}
19
+ <div class="es-customer-logos__heading">
20
+ <PrismicRichText field={slice.primary.eyebrowHeadline} />
21
+ </div>
22
+ {/if}
23
+ {#if slice.primary.logos.length > 0}
24
+ <ul class="es-customer-logos__logos">
25
+ {#each slice.primary.logos as logo}
26
+ {#if isFilled.image(logo.image)}
27
+ <li class="es-customer-logos__logo">
28
+ <PrismicLink field={logo.link}>
29
+ <PrismicImage
30
+ field={logo.image}
31
+ class="es-customer-logos__logo__link__image"
32
+ height="26"
33
+ width="160"
34
+ />
35
+ </PrismicLink>
36
+ </li>
37
+ {/if}
38
+ {/each}
39
+ </ul>
40
+ {/if}
41
+ <PrismicLink
42
+ field={slice.primary.callToActionLink}
43
+ class="es-customer-logos__button"
44
+ />
45
+ </div>
46
+
47
+ <style>
48
+ .es-bounded {
49
+ margin: 0px;
50
+ min-width: 0px;
51
+ position: relative;
52
+ padding: 8vw 1.25rem;
53
+ }
54
+
55
+ .es-bounded__content {
56
+ min-width: 0px;
57
+ max-width: 90%;
58
+ margin: 0px auto;
59
+ }
60
+
61
+ .es-customer-logos {
62
+ font-family: system-ui, sans-serif;
63
+ background-color: #f4f0ec;
64
+ color: #333;
65
+ }
66
+
67
+ .es-customer-logos__content {
68
+ display: grid;
69
+ gap: 2rem;
70
+ justify-items: center;
71
+ }
72
+
73
+ .es-customer-logos__heading {
74
+ color: #8592e0;
75
+ font-size: 1.5rem;
76
+ font-weight: 500;
77
+ text-align: center;
78
+ }
79
+
80
+ .es-customer-logos__heading * {
81
+ margin: 0;
82
+ }
83
+
84
+ .es-customer-logos__logos {
85
+ display: grid;
86
+ grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
87
+ grid-column-gap: 1.25rem;
88
+ grid-row-gap: 2rem;
89
+ align-items: center;
90
+ list-style-type: none;
91
+ width: 100%;
92
+ }
93
+
94
+ @media (min-width: 1200px) {
95
+ .es-customer-logos__logos {
96
+ margin-left: -3rem;
97
+ }
98
+ }
99
+
100
+ .es-customer-logos__logo {
101
+ margin: 0;
102
+ display: flex;
103
+ justify-content: center;
104
+ }
105
+
106
+ @media (min-width: 1200px) {
107
+ .es-customer-logos__logo {
108
+ margin-left: 3rem;
109
+ }
110
+ }
111
+
112
+ .es-customer-logos__logo__link__image {
113
+ max-width: 10rem;
114
+ }
115
+
116
+ .es-customer-logos__button {
117
+ justify-self: center;
118
+ text-decoration: underline;
119
+ }
120
+ </style>
121
+ </section>
@@ -4,9 +4,11 @@
4
4
  PrismicImage,
5
5
  PrismicRichText,
6
6
  PrismicLink,
7
+ type SliceComponentProps,
7
8
  } from "@prismicio/svelte";
8
9
 
9
- export let slice: Content.PascalNameToReplaceSlice;
10
+ const { slice }: SliceComponentProps<Content.PascalNameToReplaceSlice> =
11
+ $props();
10
12
  </script>
11
13
 
12
14
  <section
@@ -22,7 +24,7 @@
22
24
  {/if}
23
25
  {#if slice.primary.logos.length > 0}
24
26
  <ul class="es-customer-logos__logos">
25
- {#each slice.primary.logos as logo}
27
+ {#each slice.primary.logos as logo (logo.image)}
26
28
  {#if isFilled.image(logo.image)}
27
29
  <li class="es-customer-logos__logo">
28
30
  <PrismicLink field={logo.link}>
@@ -0,0 +1,190 @@
1
+ <script>
2
+ import {
3
+ PrismicImage,
4
+ PrismicRichText,
5
+ PrismicLink,
6
+ } from "@prismicio/svelte";
7
+ import { isFilled } from "@prismicio/client";
8
+
9
+ /**
10
+ * @type {import("@prismicio/client").Content.${PascalNameToReplace}Slice}
11
+ */
12
+ export let slice;
13
+ </script>
14
+
15
+ <section
16
+ data-slice-type={slice.slice_type}
17
+ data-slice-variation={slice.variation}
18
+ class="es-bounded es-fullpage-hero"
19
+ >
20
+ <div
21
+ class={`
22
+ es-fullpage-hero__content
23
+ ${
24
+ slice.variation === "imageRight"
25
+ ? "es-fullpage-hero__image--right"
26
+ : "es-fullpage-hero__image--left"
27
+ }
28
+ `}
29
+ >
30
+ <div>
31
+ {#if isFilled.image(slice.primary.image)}
32
+ <PrismicImage
33
+ field={slice.primary.image}
34
+ class="es-fullpage-hero__image"
35
+ />
36
+ {/if}
37
+ </div>
38
+ <div class="es-fullpage-hero__content-right">
39
+ <div class="es-fullpage-hero__content__intro">
40
+ {#if isFilled.keyText(slice.primary.eyebrowHeadline)}
41
+ <p class="es-fullpage-hero__content__intro__eyebrow">
42
+ {slice.primary.eyebrowHeadline}
43
+ </p>
44
+ {/if}
45
+ {#if isFilled.richText(slice.primary.title)}
46
+ <div class="es-fullpage-hero__content__intro__headline">
47
+ <PrismicRichText field={slice.primary.title} />
48
+ </div>
49
+ {/if}
50
+ {#if isFilled.richText(slice.primary.description)}
51
+ <div class="es-fullpage-hero__content__intro__description">
52
+ <PrismicRichText field={slice.primary.description} />
53
+ </div>
54
+ {/if}
55
+ <PrismicLink
56
+ field={slice.primary.callToActionLink}
57
+ class="es-call-to-action__link"
58
+ />
59
+ </div>
60
+ </div>
61
+ </div>
62
+
63
+ <style>
64
+ .es-bounded {
65
+ margin: 0px;
66
+ min-width: 0px;
67
+ position: relative;
68
+ }
69
+
70
+ .es-fullpage-hero {
71
+ font-family: system-ui, sans-serif;
72
+ background-color: #fff;
73
+ color: #333;
74
+ }
75
+
76
+ .es-fullpage-hero__image {
77
+ max-width: 100%;
78
+ height: auto;
79
+ align-self: center;
80
+ }
81
+
82
+ .es-fullpage-hero__image--left > div:first-child {
83
+ order: 1;
84
+ }
85
+
86
+ .es-fullpage-hero__image--left > div:nth-child(2) {
87
+ order: 2;
88
+ }
89
+
90
+ .es-fullpage-hero__image--right > div:first-child {
91
+ order: 2;
92
+ }
93
+
94
+ .es-fullpage-hero__image--right > div:nth-child(2) {
95
+ order: 1;
96
+ }
97
+
98
+ .es-fullpage-hero__content {
99
+ display: flex;
100
+ flex-direction: column;
101
+ gap: 2rem;
102
+ }
103
+
104
+ .es-fullpage-hero__content-right {
105
+ display: flex;
106
+ flex-direction: column;
107
+ justify-content: space-around;
108
+ padding: 1.5rem;
109
+ }
110
+
111
+ @media (min-width: 1080px) {
112
+ .es-fullpage-hero__content {
113
+ flex-direction: row;
114
+ }
115
+
116
+ .es-fullpage-hero__content > div {
117
+ width: 50%;
118
+ }
119
+ }
120
+
121
+ .es-fullpage-hero__content__intro {
122
+ display: grid;
123
+ gap: 1rem;
124
+ }
125
+
126
+ .es-fullpage-hero__content__intro__eyebrow {
127
+ color: #47c1af;
128
+ font-size: 1.15rem;
129
+ font-weight: 500;
130
+ margin: 0;
131
+ }
132
+
133
+ .es-fullpage-hero__content__intro__headline {
134
+ font-size: 1.625rem;
135
+ font-weight: 700;
136
+ }
137
+
138
+ .es-fullpage-hero__content__intro__headline * {
139
+ margin: 0;
140
+ }
141
+
142
+ @media (min-width: 640px) {
143
+ .es-fullpage-hero__content__intro__headline {
144
+ font-size: 2rem;
145
+ }
146
+ }
147
+
148
+ @media (min-width: 1024px) {
149
+ .es-fullpage-hero__content__intro__headline {
150
+ font-size: 2.5rem;
151
+ }
152
+ }
153
+
154
+ @media (min-width: 1200px) {
155
+ .es-fullpage-hero__content__intro__headline {
156
+ font-size: 2.75rem;
157
+ }
158
+ }
159
+
160
+ .es-fullpage-hero__content__intro__description {
161
+ font-size: 1.15rem;
162
+ max-width: 38rem;
163
+ }
164
+
165
+ .es-fullpage-hero__content__intro__description > p {
166
+ margin: 0;
167
+ }
168
+
169
+ @media (min-width: 1200px) {
170
+ .es-fullpage-hero__content__intro__description {
171
+ font-size: 1.4rem;
172
+ }
173
+ }
174
+
175
+ .es-call-to-action__link {
176
+ justify-self: flex-start;
177
+ border-radius: 0.25rem;
178
+ font-size: 0.875rem;
179
+ line-height: 1.3;
180
+ padding: 1rem 2.625rem;
181
+ transition: background-color 100ms linear;
182
+ background-color: #16745f;
183
+ color: #fff;
184
+ }
185
+
186
+ .es-call-to-action__link:hover {
187
+ background-color: #0d5e4c;
188
+ }
189
+ </style>
190
+ </section>
@@ -6,10 +6,11 @@
6
6
  } from "@prismicio/svelte";
7
7
  import { isFilled } from "@prismicio/client";
8
8
 
9
- /**
10
- * @type {import("@prismicio/client").Content.${PascalNameToReplace}Slice}
11
- */
12
- export let slice;
9
+ /* @typedef {import("@prismicio/client").Content} Content */
10
+ /* @typedef {import("@prismicio/svelte").SliceComponentProps} SliceComponentProps */
11
+
12
+ /* @type {SliceComponentProps<Content.${PascalNameToReplace}Slice>} */
13
+ const { slice } = $props();
13
14
  </script>
14
15
 
15
16
  <section