@prismicio/react 2.9.1 → 3.0.0-alpha.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 (191) hide show
  1. package/README.md +10 -11
  2. package/dist/PrismicImage.d.ts +18 -633
  3. package/dist/PrismicImage.js +32 -33
  4. package/dist/PrismicImage.js.map +1 -1
  5. package/dist/PrismicLink.d.ts +77 -6
  6. package/dist/PrismicLink.js +42 -7
  7. package/dist/PrismicLink.js.map +1 -1
  8. package/dist/PrismicRichText.d.ts +117 -4
  9. package/dist/PrismicRichText.js +74 -8
  10. package/dist/PrismicRichText.js.map +1 -1
  11. package/dist/PrismicText.d.ts +8 -13
  12. package/dist/PrismicText.js +15 -16
  13. package/dist/PrismicText.js.map +1 -1
  14. package/dist/PrismicToolbar.d.ts +2 -12
  15. package/dist/PrismicToolbar.js +8 -10
  16. package/dist/PrismicToolbar.js.map +1 -1
  17. package/dist/SliceZone.d.ts +16 -70
  18. package/dist/SliceZone.js +16 -37
  19. package/dist/SliceZone.js.map +1 -1
  20. package/dist/index.d.ts +13 -21
  21. package/dist/index.js +2 -29
  22. package/dist/index.js.map +1 -1
  23. package/dist/lib/devMsg.d.ts +2 -2
  24. package/dist/lib/devMsg.js +2 -2
  25. package/dist/lib/devMsg.js.map +1 -1
  26. package/dist/package.json.js +1 -1
  27. package/package.json +53 -70
  28. package/src/PrismicImage.tsx +80 -65
  29. package/src/PrismicLink.tsx +196 -26
  30. package/src/PrismicRichText.tsx +333 -33
  31. package/src/PrismicText.tsx +25 -30
  32. package/src/PrismicToolbar.tsx +10 -30
  33. package/src/SliceZone.tsx +58 -150
  34. package/src/index.ts +17 -53
  35. package/src/lib/devMsg.ts +3 -3
  36. package/dist/PrismicImage.cjs +0 -68
  37. package/dist/PrismicImage.cjs.map +0 -1
  38. package/dist/PrismicLink.cjs +0 -29
  39. package/dist/PrismicLink.cjs.map +0 -1
  40. package/dist/PrismicProvider.cjs +0 -41
  41. package/dist/PrismicProvider.cjs.map +0 -1
  42. package/dist/PrismicProvider.d.ts +0 -83
  43. package/dist/PrismicProvider.js +0 -24
  44. package/dist/PrismicProvider.js.map +0 -1
  45. package/dist/PrismicRichText.cjs +0 -30
  46. package/dist/PrismicRichText.cjs.map +0 -1
  47. package/dist/PrismicText.cjs +0 -44
  48. package/dist/PrismicText.cjs.map +0 -1
  49. package/dist/PrismicToolbar.cjs +0 -43
  50. package/dist/PrismicToolbar.cjs.map +0 -1
  51. package/dist/SliceZone.cjs +0 -53
  52. package/dist/SliceZone.cjs.map +0 -1
  53. package/dist/_node_modules/@prismicio/client/dist/errors/PrismicError.cjs +0 -16
  54. package/dist/_node_modules/@prismicio/client/dist/errors/PrismicError.cjs.map +0 -1
  55. package/dist/_node_modules/@prismicio/client/dist/errors/PrismicError.js +0 -16
  56. package/dist/_node_modules/@prismicio/client/dist/errors/PrismicError.js.map +0 -1
  57. package/dist/_node_modules/@prismicio/client/dist/getToolbarSrc.cjs +0 -13
  58. package/dist/_node_modules/@prismicio/client/dist/getToolbarSrc.cjs.map +0 -1
  59. package/dist/_node_modules/@prismicio/client/dist/getToolbarSrc.js +0 -13
  60. package/dist/_node_modules/@prismicio/client/dist/getToolbarSrc.js.map +0 -1
  61. package/dist/_node_modules/@prismicio/client/dist/helpers/asImagePixelDensitySrcSet.cjs +0 -22
  62. package/dist/_node_modules/@prismicio/client/dist/helpers/asImagePixelDensitySrcSet.cjs.map +0 -1
  63. package/dist/_node_modules/@prismicio/client/dist/helpers/asImagePixelDensitySrcSet.js +0 -22
  64. package/dist/_node_modules/@prismicio/client/dist/helpers/asImagePixelDensitySrcSet.js.map +0 -1
  65. package/dist/_node_modules/@prismicio/client/dist/helpers/asImageWidthSrcSet.cjs +0 -46
  66. package/dist/_node_modules/@prismicio/client/dist/helpers/asImageWidthSrcSet.cjs.map +0 -1
  67. package/dist/_node_modules/@prismicio/client/dist/helpers/asImageWidthSrcSet.js +0 -46
  68. package/dist/_node_modules/@prismicio/client/dist/helpers/asImageWidthSrcSet.js.map +0 -1
  69. package/dist/_node_modules/@prismicio/client/dist/helpers/asLink.cjs +0 -47
  70. package/dist/_node_modules/@prismicio/client/dist/helpers/asLink.cjs.map +0 -1
  71. package/dist/_node_modules/@prismicio/client/dist/helpers/asLink.js +0 -47
  72. package/dist/_node_modules/@prismicio/client/dist/helpers/asLink.js.map +0 -1
  73. package/dist/_node_modules/@prismicio/client/dist/helpers/asLinkAttrs.cjs +0 -28
  74. package/dist/_node_modules/@prismicio/client/dist/helpers/asLinkAttrs.cjs.map +0 -1
  75. package/dist/_node_modules/@prismicio/client/dist/helpers/asLinkAttrs.js +0 -28
  76. package/dist/_node_modules/@prismicio/client/dist/helpers/asLinkAttrs.js.map +0 -1
  77. package/dist/_node_modules/@prismicio/client/dist/helpers/asText.cjs +0 -21
  78. package/dist/_node_modules/@prismicio/client/dist/helpers/asText.cjs.map +0 -1
  79. package/dist/_node_modules/@prismicio/client/dist/helpers/asText.js +0 -21
  80. package/dist/_node_modules/@prismicio/client/dist/helpers/asText.js.map +0 -1
  81. package/dist/_node_modules/@prismicio/client/dist/helpers/documentToLinkField.cjs +0 -27
  82. package/dist/_node_modules/@prismicio/client/dist/helpers/documentToLinkField.cjs.map +0 -1
  83. package/dist/_node_modules/@prismicio/client/dist/helpers/documentToLinkField.js +0 -27
  84. package/dist/_node_modules/@prismicio/client/dist/helpers/documentToLinkField.js.map +0 -1
  85. package/dist/_node_modules/@prismicio/client/dist/helpers/isFilled.cjs +0 -24
  86. package/dist/_node_modules/@prismicio/client/dist/helpers/isFilled.cjs.map +0 -1
  87. package/dist/_node_modules/@prismicio/client/dist/helpers/isFilled.js +0 -24
  88. package/dist/_node_modules/@prismicio/client/dist/helpers/isFilled.js.map +0 -1
  89. package/dist/_node_modules/@prismicio/client/dist/isRepositoryName.cjs +0 -7
  90. package/dist/_node_modules/@prismicio/client/dist/isRepositoryName.cjs.map +0 -1
  91. package/dist/_node_modules/@prismicio/client/dist/isRepositoryName.js +0 -7
  92. package/dist/_node_modules/@prismicio/client/dist/isRepositoryName.js.map +0 -1
  93. package/dist/_node_modules/@prismicio/client/dist/lib/isInternalURL.cjs +0 -9
  94. package/dist/_node_modules/@prismicio/client/dist/lib/isInternalURL.cjs.map +0 -1
  95. package/dist/_node_modules/@prismicio/client/dist/lib/isInternalURL.js +0 -9
  96. package/dist/_node_modules/@prismicio/client/dist/lib/isInternalURL.js.map +0 -1
  97. package/dist/_node_modules/@prismicio/client/dist/richtext/asText.cjs +0 -13
  98. package/dist/_node_modules/@prismicio/client/dist/richtext/asText.cjs.map +0 -1
  99. package/dist/_node_modules/@prismicio/client/dist/richtext/asText.js +0 -13
  100. package/dist/_node_modules/@prismicio/client/dist/richtext/asText.js.map +0 -1
  101. package/dist/_node_modules/@prismicio/client/dist/types/value/link.cjs +0 -10
  102. package/dist/_node_modules/@prismicio/client/dist/types/value/link.cjs.map +0 -1
  103. package/dist/_node_modules/@prismicio/client/dist/types/value/link.js +0 -10
  104. package/dist/_node_modules/@prismicio/client/dist/types/value/link.js.map +0 -1
  105. package/dist/_node_modules/imgix-url-builder/dist/buildPixelDensitySrcSet.cjs +0 -10
  106. package/dist/_node_modules/imgix-url-builder/dist/buildPixelDensitySrcSet.cjs.map +0 -1
  107. package/dist/_node_modules/imgix-url-builder/dist/buildPixelDensitySrcSet.js +0 -10
  108. package/dist/_node_modules/imgix-url-builder/dist/buildPixelDensitySrcSet.js.map +0 -1
  109. package/dist/_node_modules/imgix-url-builder/dist/buildURL.cjs +0 -29
  110. package/dist/_node_modules/imgix-url-builder/dist/buildURL.cjs.map +0 -1
  111. package/dist/_node_modules/imgix-url-builder/dist/buildURL.js +0 -29
  112. package/dist/_node_modules/imgix-url-builder/dist/buildURL.js.map +0 -1
  113. package/dist/_node_modules/imgix-url-builder/dist/buildWidthSrcSet.cjs +0 -10
  114. package/dist/_node_modules/imgix-url-builder/dist/buildWidthSrcSet.cjs.map +0 -1
  115. package/dist/_node_modules/imgix-url-builder/dist/buildWidthSrcSet.js +0 -10
  116. package/dist/_node_modules/imgix-url-builder/dist/buildWidthSrcSet.js.map +0 -1
  117. package/dist/clientHooks.cjs +0 -40
  118. package/dist/clientHooks.cjs.map +0 -1
  119. package/dist/clientHooks.d.ts +0 -321
  120. package/dist/clientHooks.js +0 -40
  121. package/dist/clientHooks.js.map +0 -1
  122. package/dist/index.cjs +0 -48
  123. package/dist/index.cjs.map +0 -1
  124. package/dist/lib/devMsg.cjs +0 -8
  125. package/dist/lib/devMsg.cjs.map +0 -1
  126. package/dist/lib/isInternalURL.cjs +0 -9
  127. package/dist/lib/isInternalURL.cjs.map +0 -1
  128. package/dist/lib/isInternalURL.d.ts +0 -8
  129. package/dist/lib/isInternalURL.js +0 -9
  130. package/dist/lib/isInternalURL.js.map +0 -1
  131. package/dist/lib/pascalCase.cjs +0 -10
  132. package/dist/lib/pascalCase.cjs.map +0 -1
  133. package/dist/lib/pascalCase.d.ts +0 -26
  134. package/dist/lib/pascalCase.js +0 -10
  135. package/dist/lib/pascalCase.js.map +0 -1
  136. package/dist/package.json.cjs +0 -5
  137. package/dist/package.json.cjs.map +0 -1
  138. package/dist/react-server/PrismicLink.cjs +0 -59
  139. package/dist/react-server/PrismicLink.cjs.map +0 -1
  140. package/dist/react-server/PrismicLink.d.ts +0 -77
  141. package/dist/react-server/PrismicLink.js +0 -42
  142. package/dist/react-server/PrismicLink.js.map +0 -1
  143. package/dist/react-server/PrismicRichText.cjs +0 -102
  144. package/dist/react-server/PrismicRichText.cjs.map +0 -1
  145. package/dist/react-server/PrismicRichText.d.ts +0 -104
  146. package/dist/react-server/PrismicRichText.js +0 -84
  147. package/dist/react-server/PrismicRichText.js.map +0 -1
  148. package/dist/react-server/index.d.ts +0 -4
  149. package/dist/react-server/unsupported.cjs +0 -97
  150. package/dist/react-server/unsupported.cjs.map +0 -1
  151. package/dist/react-server/unsupported.d.ts +0 -22
  152. package/dist/react-server/unsupported.js +0 -97
  153. package/dist/react-server/unsupported.js.map +0 -1
  154. package/dist/react-server.cjs +0 -44
  155. package/dist/react-server.cjs.map +0 -1
  156. package/dist/react-server.js +0 -41
  157. package/dist/react-server.js.map +0 -1
  158. package/dist/types.d.ts +0 -19
  159. package/dist/usePrismicClient.cjs +0 -13
  160. package/dist/usePrismicClient.cjs.map +0 -1
  161. package/dist/usePrismicClient.d.ts +0 -11
  162. package/dist/usePrismicClient.js +0 -13
  163. package/dist/usePrismicClient.js.map +0 -1
  164. package/dist/usePrismicContext.cjs +0 -26
  165. package/dist/usePrismicContext.cjs.map +0 -1
  166. package/dist/usePrismicContext.d.ts +0 -8
  167. package/dist/usePrismicContext.js +0 -9
  168. package/dist/usePrismicContext.js.map +0 -1
  169. package/dist/usePrismicPreviewResolver.cjs +0 -44
  170. package/dist/usePrismicPreviewResolver.cjs.map +0 -1
  171. package/dist/usePrismicPreviewResolver.d.ts +0 -45
  172. package/dist/usePrismicPreviewResolver.js +0 -27
  173. package/dist/usePrismicPreviewResolver.js.map +0 -1
  174. package/dist/useStatefulPrismicClientMethod.cjs +0 -91
  175. package/dist/useStatefulPrismicClientMethod.cjs.map +0 -1
  176. package/dist/useStatefulPrismicClientMethod.d.ts +0 -44
  177. package/dist/useStatefulPrismicClientMethod.js +0 -74
  178. package/dist/useStatefulPrismicClientMethod.js.map +0 -1
  179. package/src/PrismicProvider.tsx +0 -132
  180. package/src/clientHooks.ts +0 -472
  181. package/src/lib/isInternalURL.ts +0 -14
  182. package/src/lib/pascalCase.ts +0 -79
  183. package/src/react-server/PrismicLink.tsx +0 -197
  184. package/src/react-server/PrismicRichText.tsx +0 -326
  185. package/src/react-server/index.ts +0 -38
  186. package/src/react-server/unsupported.ts +0 -184
  187. package/src/types.ts +0 -23
  188. package/src/usePrismicClient.ts +0 -30
  189. package/src/usePrismicContext.ts +0 -13
  190. package/src/usePrismicPreviewResolver.ts +0 -93
  191. package/src/useStatefulPrismicClientMethod.ts +0 -196
@@ -1,472 +0,0 @@
1
- import type * as prismic from "@prismicio/client";
2
-
3
- import {
4
- ClientHookReturnType,
5
- ClientMethodParameters,
6
- HookOnlyParameters,
7
- useStatefulPrismicClientMethod,
8
- } from "./useStatefulPrismicClientMethod";
9
-
10
- /**
11
- * A hook that queries content from the Prismic repository.
12
- *
13
- * @remarks
14
- * An additional `@prismicio/client` instance can be provided at
15
- * `params.client`.
16
- * @typeParam TDocument - Type of Prismic documents returned
17
- *
18
- * @param params - Parameters to filter, sort, and paginate results
19
- *
20
- * @returns The composable payload {@link ClientHookReturnType}
21
- *
22
- * @see Underlying `@prismicio/client` method {@link proto.get}
23
- */
24
- export const usePrismicDocuments = <TDocument extends prismic.PrismicDocument>(
25
- ...args: [params?: ClientMethodParameters<"get">[0] & HookOnlyParameters]
26
- ): ClientHookReturnType<prismic.Query<TDocument>> =>
27
- useStatefulPrismicClientMethod("get", args);
28
-
29
- /**
30
- * A hook that queries content from the Prismic repository and returns only the
31
- * first result, if any.
32
- *
33
- * @remarks
34
- * An additional `@prismicio/client` instance can be provided at
35
- * `params.client`.
36
- * @typeParam TDocument - Type of the Prismic document returned
37
- *
38
- * @param params - Parameters to filter, sort, and paginate results
39
- *
40
- * @returns The composable payload {@link ClientHookReturnType}
41
- *
42
- * @see Underlying `@prismicio/client` method {@link proto.getFirst}
43
- */
44
- export const useFirstPrismicDocument = <
45
- TDocument extends prismic.PrismicDocument,
46
- >(
47
- ...args: [params?: ClientMethodParameters<"getFirst">[0] & HookOnlyParameters]
48
- ): ClientHookReturnType<TDocument> =>
49
- useStatefulPrismicClientMethod("getFirst", args);
50
-
51
- /**
52
- * A hook that queries content from the Prismic repository and returns all
53
- * matching content. If no predicates are provided, all documents will be
54
- * fetched.
55
- *
56
- * @remarks
57
- * An additional `@prismicio/client` instance can be provided at
58
- * `params.client`.
59
- * @typeParam TDocument - Type of Prismic documents returned
60
- *
61
- * @param params - Parameters to filter and sort results
62
- *
63
- * @returns The composable payload {@link ClientHookReturnType}
64
- *
65
- * @see Underlying `@prismicio/client` method {@link proto.getAll}
66
- */
67
- export const useAllPrismicDocumentsDangerously = <
68
- TDocument extends prismic.PrismicDocument,
69
- >(
70
- ...args: [
71
- params?: ClientMethodParameters<"dangerouslyGetAll">[0] &
72
- HookOnlyParameters,
73
- ]
74
- ): ClientHookReturnType<TDocument[]> =>
75
- useStatefulPrismicClientMethod("dangerouslyGetAll", args);
76
-
77
- /**
78
- * A hook that queries a document from the Prismic repository with a specific
79
- * ID.
80
- *
81
- * @remarks
82
- * An additional `@prismicio/client` instance can be provided at
83
- * `params.client`.
84
- * @typeParam TDocument - Type of the Prismic document returned
85
- *
86
- * @param id - ID of the document
87
- * @param params - Parameters to filter, sort, and paginate results
88
- *
89
- * @returns The composable payload {@link ClientHookReturnType}
90
- *
91
- * @see Underlying `@prismicio/client` method {@link proto.getByID}
92
- */
93
- export const usePrismicDocumentByID = <
94
- TDocument extends prismic.PrismicDocument,
95
- >(
96
- ...args: [
97
- id: ClientMethodParameters<"getByID">[0],
98
- params?: ClientMethodParameters<"getByID">[1] & HookOnlyParameters,
99
- ]
100
- ): ClientHookReturnType<TDocument> =>
101
- useStatefulPrismicClientMethod("getByID", args);
102
-
103
- /**
104
- * A hook that queries documents from the Prismic repository with specific IDs.
105
- *
106
- * @remarks
107
- * An additional `@prismicio/client` instance can be provided at
108
- * `params.client`.
109
- * @typeParam TDocument - Type of Prismic documents returned
110
- *
111
- * @param ids - A list of document IDs
112
- * @param params - Parameters to filter, sort, and paginate results
113
- *
114
- * @returns The composable payload {@link ClientHookReturnType}
115
- *
116
- * @see Underlying `@prismicio/client` method {@link proto.getByIDs}
117
- */
118
- export const usePrismicDocumentsByIDs = <
119
- TDocument extends prismic.PrismicDocument,
120
- >(
121
- ...args: [
122
- id: ClientMethodParameters<"getByIDs">[0],
123
- params?: ClientMethodParameters<"getByIDs">[1] & HookOnlyParameters,
124
- ]
125
- ): ClientHookReturnType<prismic.Query<TDocument>> =>
126
- useStatefulPrismicClientMethod("getByIDs", args);
127
-
128
- /**
129
- * A hook that queries all documents from the Prismic repository with specific
130
- * IDs.
131
- *
132
- * @remarks
133
- * An additional `@prismicio/client` instance can be provided at
134
- * `params.client`.
135
- * @typeParam TDocument - Type of Prismic documents returned
136
- *
137
- * @param ids - A list of document IDs
138
- * @param params - Parameters to filter and sort results
139
- *
140
- * @returns The composable payload {@link ClientHookReturnType}
141
- *
142
- * @see Underlying `@prismicio/client` method {@link proto.getAllByIDs}
143
- */
144
- export const useAllPrismicDocumentsByIDs = <
145
- TDocument extends prismic.PrismicDocument,
146
- >(
147
- ...args: [
148
- id: ClientMethodParameters<"getAllByIDs">[0],
149
- params?: ClientMethodParameters<"getAllByIDs">[1] & HookOnlyParameters,
150
- ]
151
- ): ClientHookReturnType<TDocument[]> =>
152
- useStatefulPrismicClientMethod("getAllByIDs", args);
153
-
154
- /**
155
- * A hook that queries a document from the Prismic repository with a specific
156
- * UID and Custom Type.
157
- *
158
- * @remarks
159
- * An additional `@prismicio/client` instance can be provided at
160
- * `params.client`.
161
- * @typeParam TDocument - Type of the Prismic document returned
162
- *
163
- * @param documentType - The API ID of the document's Custom Type
164
- * @param uid - UID of the document
165
- * @param params - Parameters to filter, sort, and paginate results
166
- *
167
- * @returns The composable payload {@link ClientHookReturnType}
168
- *
169
- * @see Underlying `@prismicio/client` method {@link proto.getByUID}
170
- */
171
- export const usePrismicDocumentByUID = <
172
- TDocument extends prismic.PrismicDocument,
173
- >(
174
- ...args: [
175
- documentType: ClientMethodParameters<"getByUID">[0],
176
- uid: ClientMethodParameters<"getByUID">[1],
177
- params?: ClientMethodParameters<"getByUID">[2] & HookOnlyParameters,
178
- ]
179
- ): ClientHookReturnType<TDocument> =>
180
- useStatefulPrismicClientMethod("getByUID", args);
181
-
182
- /**
183
- * A hook that queries documents from the Prismic repository with specific UIDs
184
- * of a Custom Type.
185
- *
186
- * @remarks
187
- * An additional `@prismicio/client` instance can be provided at
188
- * `params.client`.
189
- * @typeParam TDocument - Type of the Prismic document returned
190
- *
191
- * @param documentType - The API ID of the document's Custom Type
192
- * @param uids - A list of document UIDs.
193
- * @param params - Parameters to filter, sort, and paginate results
194
- *
195
- * @returns The composable payload {@link ClientHookReturnType}
196
- *
197
- * @see Underlying `@prismicio/client` method {@link proto.getByUID}
198
- */
199
- export const usePrismicDocumentsByUIDs = <
200
- TDocument extends prismic.PrismicDocument,
201
- >(
202
- ...args: [
203
- documentType: ClientMethodParameters<"getByUIDs">[0],
204
- uids: ClientMethodParameters<"getByUIDs">[1],
205
- params?: ClientMethodParameters<"getByUIDs">[2] & HookOnlyParameters,
206
- ]
207
- ): ClientHookReturnType<prismic.Query<TDocument>> =>
208
- useStatefulPrismicClientMethod("getByUIDs", args);
209
-
210
- /**
211
- * A hook that queries all documents from the Prismic repository with specific
212
- * UIDs of a Custom Type.
213
- *
214
- * @remarks
215
- * An additional `@prismicio/client` instance can be provided at
216
- * `params.client`.
217
- * @typeParam TDocument - Type of the Prismic document returned
218
- *
219
- * @param documentType - The API ID of the document's Custom Type
220
- * @param uids - A list of document UIDs.
221
- * @param params - Parameters to filter, sort, and paginate results
222
- *
223
- * @returns The composable payload {@link ClientHookReturnType}
224
- *
225
- * @see Underlying `@prismicio/client` method {@link proto.getByUID}
226
- */
227
- export const useAllPrismicDocumentsByUIDs = <
228
- TDocument extends prismic.PrismicDocument,
229
- >(
230
- ...args: [
231
- documentType: ClientMethodParameters<"getByUIDs">[0],
232
- uids: ClientMethodParameters<"getByUIDs">[1],
233
- params?: ClientMethodParameters<"getByUIDs">[2] & HookOnlyParameters,
234
- ]
235
- ): ClientHookReturnType<TDocument[]> =>
236
- useStatefulPrismicClientMethod("getAllByUIDs", args);
237
-
238
- /**
239
- * A hook that queries a singleton document from the Prismic repository for a
240
- * specific Custom Type.
241
- *
242
- * @remarks
243
- * An additional `@prismicio/client` instance can be provided at
244
- * `params.client`.
245
- * @typeParam TDocument - Type of the Prismic document returned
246
- *
247
- * @param documentType - The API ID of the singleton Custom Type
248
- * @param params - Parameters to filter, sort, and paginate results
249
- *
250
- * @returns The composable payload {@link ClientHookReturnType}
251
- *
252
- * @see Underlying `@prismicio/client` method {@link proto.getSingle}
253
- */
254
- export const useSinglePrismicDocument = <
255
- TDocument extends prismic.PrismicDocument,
256
- >(
257
- ...args: [
258
- documentType: ClientMethodParameters<"getSingle">[0],
259
- params?: ClientMethodParameters<"getSingle">[1] & HookOnlyParameters,
260
- ]
261
- ): ClientHookReturnType<TDocument> =>
262
- useStatefulPrismicClientMethod("getSingle", args);
263
-
264
- /**
265
- * A hook that queries documents from the Prismic repository for a specific
266
- * Custom Type.
267
- *
268
- * @remarks
269
- * An additional `@prismicio/client` instance can be provided at
270
- * `params.client`.
271
- * @typeParam TDocument - Type of Prismic documents returned
272
- *
273
- * @param documentType - The API ID of the Custom Type
274
- * @param params - Parameters to filter, sort, and paginate results
275
- *
276
- * @returns The composable payload {@link ClientHookReturnType}
277
- *
278
- * @see Underlying `@prismicio/client` method {@link proto.getByType}
279
- */
280
- export const usePrismicDocumentsByType = <
281
- TDocument extends prismic.PrismicDocument,
282
- >(
283
- ...args: [
284
- documentType: ClientMethodParameters<"getByType">[0],
285
- params?: ClientMethodParameters<"getByType">[1] & HookOnlyParameters,
286
- ]
287
- ): ClientHookReturnType<prismic.Query<TDocument>> =>
288
- useStatefulPrismicClientMethod("getByType", args);
289
-
290
- /**
291
- * A hook that queries all documents from the Prismic repository for a specific
292
- * Custom Type.
293
- *
294
- * @remarks
295
- * An additional `@prismicio/client` instance can be provided at
296
- * `params.client`.
297
- * @typeParam TDocument - Type of Prismic documents returned
298
- *
299
- * @param documentType - The API ID of the Custom Type
300
- * @param params - Parameters to filter and sort results
301
- *
302
- * @returns The composable payload {@link ClientHookReturnType}
303
- *
304
- * @see Underlying `@prismicio/client` method {@link proto.getAllByType}
305
- */
306
- export const useAllPrismicDocumentsByType = <
307
- TDocument extends prismic.PrismicDocument,
308
- >(
309
- ...args: [
310
- documentType: ClientMethodParameters<"getAllByType">[0],
311
- params?: ClientMethodParameters<"getAllByType">[1] & HookOnlyParameters,
312
- ]
313
- ): ClientHookReturnType<TDocument[]> =>
314
- useStatefulPrismicClientMethod("getAllByType", args);
315
-
316
- /**
317
- * A hook that queries documents from the Prismic repository with a specific
318
- * tag.
319
- *
320
- * @remarks
321
- * An additional `@prismicio/client` instance can be provided at
322
- * `params.client`.
323
- * @typeParam TDocument - Type of Prismic documents returned
324
- *
325
- * @param tag - The tag that must be included on a document
326
- * @param params - Parameters to filter, sort, and paginate results
327
- *
328
- * @returns The composable payload {@link ClientHookReturnType}
329
- *
330
- * @see Underlying `@prismicio/client` method {@link proto.getByTag}
331
- */
332
- export const usePrismicDocumentsByTag = <
333
- TDocument extends prismic.PrismicDocument,
334
- >(
335
- ...args: [
336
- tag: ClientMethodParameters<"getByTag">[0],
337
- params?: ClientMethodParameters<"getByTag">[1] & HookOnlyParameters,
338
- ]
339
- ): ClientHookReturnType<prismic.Query<TDocument>> =>
340
- useStatefulPrismicClientMethod("getByTag", args);
341
-
342
- /**
343
- * A hook that queries all documents from the Prismic repository with a specific
344
- * tag.
345
- *
346
- * @remarks
347
- * An additional `@prismicio/client` instance can be provided at
348
- * `params.client`.
349
- * @typeParam TDocument - Type of Prismic documents returned
350
- *
351
- * @param tag - The tag that must be included on a document
352
- * @param params - Parameters to filter and sort results
353
- *
354
- * @returns The composable payload {@link ClientHookReturnType}
355
- *
356
- * @see Underlying `@prismicio/client` method {@link proto.getAllByTag}
357
- */
358
- export const useAllPrismicDocumentsByTag = <
359
- TDocument extends prismic.PrismicDocument,
360
- >(
361
- ...args: [
362
- tag: ClientMethodParameters<"getAllByTag">[0],
363
- params?: ClientMethodParameters<"getAllByTag">[1] & HookOnlyParameters,
364
- ]
365
- ): ClientHookReturnType<TDocument[]> =>
366
- useStatefulPrismicClientMethod("getAllByTag", args);
367
-
368
- /**
369
- * A hook that queries documents from the Prismic repository with specific tags.
370
- * A document must be tagged with at least one of the queried tags to be
371
- * included.
372
- *
373
- * @remarks
374
- * An additional `@prismicio/client` instance can be provided at
375
- * `params.client`.
376
- * @typeParam TDocument - Type of Prismic documents returned
377
- *
378
- * @param tags - A list of tags that must be included on a document
379
- * @param params - Parameters to filter, sort, and paginate results
380
- *
381
- * @returns The composable payload {@link ClientHookReturnType}
382
- *
383
- * @see Underlying `@prismicio/client` method {@link proto.getByTags}
384
- */
385
- export const usePrismicDocumentsBySomeTags = <
386
- TDocument extends prismic.PrismicDocument,
387
- >(
388
- ...args: [
389
- tag: ClientMethodParameters<"getBySomeTags">[0],
390
- params?: ClientMethodParameters<"getBySomeTags">[1] & HookOnlyParameters,
391
- ]
392
- ): ClientHookReturnType<prismic.Query<TDocument>> =>
393
- useStatefulPrismicClientMethod("getBySomeTags", args);
394
-
395
- /**
396
- * A hook that queries all documents from the Prismic repository with specific
397
- * tags. A document must be tagged with at least one of the queried tags to be
398
- * included.
399
- *
400
- * @remarks
401
- * An additional `@prismicio/client` instance can be provided at
402
- * `params.client`.
403
- * @typeParam TDocument - Type of Prismic documents returned
404
- *
405
- * @param tags - A list of tags that must be included on a document
406
- * @param params - Parameters to filter and sort results
407
- *
408
- * @returns The composable payload {@link ClientHookReturnType}
409
- *
410
- * @see Underlying `@prismicio/client` method {@link proto.getAllByTags}
411
- */
412
- export const useAllPrismicDocumentsBySomeTags = <
413
- TDocument extends prismic.PrismicDocument,
414
- >(
415
- ...args: [
416
- tag: ClientMethodParameters<"getAllBySomeTags">[0],
417
- params?: ClientMethodParameters<"getAllBySomeTags">[1] & HookOnlyParameters,
418
- ]
419
- ): ClientHookReturnType<TDocument[]> =>
420
- useStatefulPrismicClientMethod("getAllBySomeTags", args);
421
-
422
- /**
423
- * A hook that queries documents from the Prismic repository with specific tags.
424
- * A document must be tagged with all of the queried tags to be included.
425
- *
426
- * @remarks
427
- * An additional `@prismicio/client` instance can be provided at
428
- * `params.client`.
429
- * @typeParam TDocument - Type of Prismic documents returned
430
- *
431
- * @param tags - A list of tags that must be included on a document
432
- * @param params - Parameters to filter, sort, and paginate results
433
- *
434
- * @returns The composable payload {@link ClientHookReturnType}
435
- *
436
- * @see Underlying `@prismicio/client` method {@link proto.getByTags}
437
- */
438
- export const usePrismicDocumentsByEveryTag = <
439
- TDocument extends prismic.PrismicDocument,
440
- >(
441
- ...args: [
442
- tag: ClientMethodParameters<"getByEveryTag">[0],
443
- params?: ClientMethodParameters<"getByEveryTag">[1] & HookOnlyParameters,
444
- ]
445
- ): ClientHookReturnType<prismic.Query<TDocument>> =>
446
- useStatefulPrismicClientMethod("getByEveryTag", args);
447
-
448
- /**
449
- * A hook that queries all documents from the Prismic repository with specific
450
- * tags. A document must be tagged with all of the queried tags to be included.
451
- *
452
- * @remarks
453
- * An additional `@prismicio/client` instance can be provided at
454
- * `params.client`.
455
- * @typeParam TDocument - Type of Prismic documents returned
456
- *
457
- * @param tags - A list of tags that must be included on a document
458
- * @param params - Parameters to filter and sort results
459
- *
460
- * @returns The composable payload {@link ClientHookReturnType}
461
- *
462
- * @see Underlying `@prismicio/client` method {@link proto.getAllByTags}
463
- */
464
- export const useAllPrismicDocumentsByEveryTag = <
465
- TDocument extends prismic.PrismicDocument,
466
- >(
467
- ...args: [
468
- tag: ClientMethodParameters<"getAllByEveryTag">[0],
469
- params?: ClientMethodParameters<"getAllByEveryTag">[1] & HookOnlyParameters,
470
- ]
471
- ): ClientHookReturnType<TDocument[]> =>
472
- useStatefulPrismicClientMethod("getAllByEveryTag", args);
@@ -1,14 +0,0 @@
1
- /**
2
- * Determines if a URL is internal or external.
3
- *
4
- * @param url - The URL to check if internal or external.
5
- *
6
- * @returns `true` if `url` is internal, `false` otherwise.
7
- */
8
- // TODO: This does not detect all relative URLs as internal such as `about` or `./about`. This function assumes relative URLs start with a "/" or "#"`.
9
- export const isInternalURL = (url: string): boolean => {
10
- const isInternal = /^(\/(?!\/)|#)/.test(url);
11
- const isSpecialLink = !isInternal && !/^https?:\/\//.test(url);
12
-
13
- return isInternal && !isSpecialLink;
14
- };
@@ -1,79 +0,0 @@
1
- // `PascalCase`-related types have been taken from the `type-fest` package.
2
- //
3
- // They are copied here to mininize dependencies in this project.
4
- //
5
- // See: https://github.com/sindresorhus/type-fest/blob/61c35052f09caa23de5eef96d95196375d8ed498/source/camel-case.d.ts
6
-
7
- type WordSeparators = "-" | "_" | " ";
8
-
9
- type Split<
10
- S extends string,
11
- Delimiter extends string,
12
- > = S extends `${infer Head}${Delimiter}${infer Tail}`
13
- ? [Head, ...Split<Tail, Delimiter>]
14
- : S extends Delimiter
15
- ? []
16
- : [S];
17
-
18
- type InnerCamelCaseStringArray<
19
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
20
- Parts extends readonly any[],
21
- PreviousPart,
22
- > = Parts extends [`${infer FirstPart}`, ...infer RemainingParts]
23
- ? FirstPart extends undefined
24
- ? ""
25
- : FirstPart extends ""
26
- ? InnerCamelCaseStringArray<RemainingParts, PreviousPart>
27
- : `${PreviousPart extends ""
28
- ? FirstPart
29
- : Capitalize<FirstPart>}${InnerCamelCaseStringArray<
30
- RemainingParts,
31
- FirstPart
32
- >}`
33
- : "";
34
-
35
- type CamelCaseStringArray<Parts extends readonly string[]> = Parts extends [
36
- `${infer FirstPart}`,
37
- ...infer RemainingParts,
38
- ]
39
- ? Uncapitalize<`${FirstPart}${InnerCamelCaseStringArray<
40
- RemainingParts,
41
- FirstPart
42
- >}`>
43
- : never;
44
-
45
- type CamelCase<K> = K extends string
46
- ? CamelCaseStringArray<
47
- Split<K extends Uppercase<K> ? Lowercase<K> : K, WordSeparators>
48
- >
49
- : K;
50
-
51
- /**
52
- * Converts a string literal to Pascal case.
53
- *
54
- * Taken from the `type-fest` package.
55
- *
56
- * See:
57
- * https://github.com/sindresorhus/type-fest/blob/61c35052f09caa23de5eef96d95196375d8ed498/source/pascal-case.d.ts
58
- */
59
- export type PascalCase<Value> = CamelCase<Value> extends string
60
- ? Capitalize<CamelCase<Value>>
61
- : CamelCase<Value>;
62
-
63
- /**
64
- * Converts a string to Pascal case.
65
- *
66
- * @param input - The string to convert.
67
- *
68
- * @returns `input` as Pascal case.
69
- */
70
- export const pascalCase = <Input extends string>(
71
- input: Input,
72
- ): PascalCase<Input> => {
73
- const camelCased = input.replace(/(?:-|_)(\w)/g, (_, c) => {
74
- return c ? c.toUpperCase() : "";
75
- });
76
-
77
- return (camelCased[0].toUpperCase() +
78
- camelCased.slice(1)) as PascalCase<Input>;
79
- };