@gaddario98/react-core 2.1.4 → 2.1.6

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.
@@ -5,21 +5,383 @@ import { QueriesArray, MultipleQueryResponse, AllMutation, QueryDefinition, Muta
5
5
  import { DeepKeys, DeepValue } from '@tanstack/react-form';
6
6
  import { ComponentProps } from 'react';
7
7
  import * as jotai from 'jotai';
8
- import { AuthState } from '../auth/index';
9
8
  import * as jotai_family from 'jotai-family';
10
9
 
11
10
  /**
12
- * Metadata Configuration Types
13
- * Custom metadata system replacing react-helmet-async
14
- * Platform-agnostic: works on web, React Native, and SSR
11
+ * Metadata Store, DOM Application, and Server Collection
12
+ *
13
+ * Architecture:
14
+ * - `createMetadataStore()` → request-scoped store (SSR-safe)
15
+ * - `applyMetadataToDom(resolved)` → client-side DOM manipulation
16
+ * - `collectMetadataToHtml(resolved)` → server-side HTML string collection
17
+ * - `setMetadata / getMetadata / resetMetadata` → backward-compatible global API
18
+ *
19
+ * @module config/metadata
20
+ */
21
+
22
+ /**
23
+ * Create a new request-scoped metadata store.
24
+ * In SSR, each incoming request should create its own store
25
+ * to avoid cross-request data leaks.
26
+ * On the client, a single global store is used (see below).
27
+ */
28
+ declare function createMetadataStore(): MetadataStore;
29
+ /**
30
+ * Apply resolved metadata to the document `<head>`.
31
+ * Client-only: this function does nothing if `document` is not available.
32
+ * Covers: title, description, canonical, lang, keywords, author, viewport,
33
+ * themeColor, Open Graph (advanced), Twitter Card, alternates/hreflang,
34
+ * icons, manifest, structured data JSON-LD, AI hints, robots, customMeta.
35
+ */
36
+ declare function applyMetadataToDom(resolved: ResolvedMetadata): void;
37
+ /**
38
+ * Collect resolved metadata as an HTML string for SSR injection into `<head>`.
39
+ * Pure function — no DOM, no side effects.
40
+ */
41
+ declare function collectMetadataToHtml(resolved: ResolvedMetadata): string;
42
+ /**
43
+ * Apply metadata configuration to the page.
44
+ * Merges with existing metadata in the global store.
45
+ * On web: also applies changes to the DOM.
46
+ *
47
+ * @deprecated Prefer using `MetadataStoreProvider` + `resolveMetadata` + `applyMetadataToDom`
48
+ * for SSR-safe, request-scoped metadata management.
49
+ */
50
+ declare const setMetadata: (config: MetadataConfig$1) => void;
51
+ /**
52
+ * Get current metadata from the global store.
53
+ * @deprecated Prefer using `MetadataStoreProvider` context in SSR.
54
+ */
55
+ declare const getMetadata: () => MetadataConfig$1;
56
+ /**
57
+ * Reset all metadata in the global store.
58
+ * @deprecated Prefer using `MetadataStoreProvider` context in SSR.
59
+ */
60
+ declare const resetMetadata: () => void;
61
+
62
+ /**
63
+ * resolveMetadata — Pure function that evaluates dynamic MetadataConfig into ResolvedMetadata.
64
+ *
65
+ * All evaluator functions (title, description, og fields, twitter fields, etc.)
66
+ * are called with the provided context. The result is a plain object with no functions.
67
+ *
68
+ * This function has NO side effects: no DOM, no global state.
69
+ *
70
+ * @module config/resolveMetadata
71
+ */
72
+
73
+ /**
74
+ * Resolve a MetadataConfig (which may contain evaluator functions)
75
+ * into a plain ResolvedMetadata object.
76
+ *
77
+ * @param meta - The metadata configuration (static or with dynamic functions)
78
+ * @param ctx - The context providing get/set accessors for queries, form, state
79
+ * @returns Fully resolved metadata with all functions evaluated
80
+ */
81
+ declare function resolveMetadata<F extends FieldValues = FieldValues, Q extends QueriesArray = QueriesArray, V extends Record<string, unknown> = Record<string, unknown>>(meta: MetadataConfig$1<F, Q, V>, ctx: MetadataEvaluatorContext$1<F, Q, V>): ResolvedMetadata;
82
+
83
+ interface MetadataStoreProviderProps {
84
+ /** Optional pre-created store. If not provided, a new one is created. */
85
+ store?: MetadataStore;
86
+ children: React.ReactNode;
87
+ }
88
+ /**
89
+ * Provides a request-scoped MetadataStore via React Context.
90
+ *
91
+ * @example SSR (one per request)
92
+ * ```tsx
93
+ * import { createMetadataStore, MetadataStoreProvider } from '@/core/pages';
94
+ *
95
+ * function handleRequest(req, res) {
96
+ * const store = createMetadataStore();
97
+ * const html = renderToString(
98
+ * <MetadataStoreProvider store={store}>
99
+ * <App />
100
+ * </MetadataStoreProvider>
101
+ * );
102
+ * const headHtml = collectMetadataToHtml(store.getMetadata());
103
+ * // inject headHtml into <head>
104
+ * }
105
+ * ```
106
+ */
107
+ declare function MetadataStoreProvider({ store, children, }: MetadataStoreProviderProps): react_jsx_runtime.JSX.Element;
108
+ /**
109
+ * Access the nearest request-scoped MetadataStore.
110
+ * Returns `null` if no provider is found (falls back to global store in consumers).
111
+ */
112
+ declare function useMetadataStore(): MetadataStore | null;
113
+
114
+ /**
115
+ * Optional dev-only metadata logging.
116
+ *
117
+ * Tracks what metadata was resolved and applied, useful for debugging
118
+ * metadata issues during development.
119
+ *
120
+ * Logging is a no-op in production builds.
121
+ *
122
+ * @module config/metadataLogger
123
+ */
124
+
125
+ interface MetadataLogEntry {
126
+ pageId: string;
127
+ action: "resolve" | "apply-dom" | "apply-store" | "translate";
128
+ metadata: ResolvedMetadata;
129
+ timestamp: number;
130
+ }
131
+ /**
132
+ * Enable or disable metadata logging.
133
+ * Only effective in development mode.
134
+ */
135
+ declare function setMetadataLogging(enabled: boolean): void;
136
+ /**
137
+ * Log a metadata action (resolve, apply, translate).
138
+ * No-op in production or when logging is disabled.
139
+ */
140
+ declare function logMetadata(pageId: string, action: MetadataLogEntry["action"], metadata: ResolvedMetadata): void;
141
+ /**
142
+ * Get all logged metadata entries (dev only).
143
+ * Useful for inspecting metadata in browser devtools.
144
+ */
145
+ declare function getMetadataLog(): Array<MetadataLogEntry>;
146
+ /**
147
+ * Clear the metadata log.
148
+ */
149
+ declare function clearMetadataLog(): void;
150
+
151
+ interface DefaultContainerProps$1<F extends FieldValues = FieldValues, Q extends QueriesArray = QueriesArray, V extends Record<string, unknown> = Record<string, unknown>> {
152
+ children?: Array<React.JSX.Element>;
153
+ allContents: Array<ContentItem$1<F, Q, V> | FormManagerConfig<F> | Submit<F>>;
154
+ handleRefresh?: () => void;
155
+ viewSettings?: ViewSettings$1;
156
+ pageId?: string;
157
+ }
158
+ type PageAuthState$1 = {
159
+ id: string;
160
+ accountVerified?: boolean;
161
+ isLogged?: boolean;
162
+ token?: string;
163
+ phoneNumber?: string;
164
+ email?: string;
165
+ };
166
+ interface PageTranslationOptions$1 {
167
+ [key: string]: string | number | boolean | undefined;
168
+ ns?: string;
169
+ }
170
+ interface PageConfigProps$1 {
171
+ HeaderContainer: <F extends FieldValues = FieldValues, Q extends QueriesArray = QueriesArray, V extends Record<string, unknown> = Record<string, unknown>>(props: Omit<DefaultContainerProps$1<F, Q, V>, "viewSettings"> & ViewSettings$1["header"]) => React.ReactNode;
172
+ FooterContainer: <F extends FieldValues = FieldValues, Q extends QueriesArray = QueriesArray, V extends Record<string, unknown> = Record<string, unknown>>(props: Omit<DefaultContainerProps$1<F, Q, V>, "viewSettings"> & ViewSettings$1["footer"]) => React.ReactNode;
173
+ BodyContainer: <F extends FieldValues = FieldValues, Q extends QueriesArray = QueriesArray, V extends Record<string, unknown> = Record<string, unknown>>(props: DefaultContainerProps$1<F, Q, V>) => React.ReactNode;
174
+ authPageImage: string;
175
+ authPageProps: PageProps$1;
176
+ isLogged: (val: PageAuthState$1 | null) => boolean;
177
+ ItemsContainer: (props: {
178
+ children: React.ReactNode;
179
+ }) => React.ReactNode;
180
+ LoaderComponent?: (props: {
181
+ loading?: boolean;
182
+ message?: string;
183
+ ns?: string;
184
+ }) => React.ReactNode;
185
+ PageContainer: (props: {
186
+ children: React.ReactNode;
187
+ id: string;
188
+ }) => React.ReactNode;
189
+ meta?: {
190
+ title?: string;
191
+ description?: string;
192
+ };
193
+ defaultMetadata: MetadataConfig$1;
194
+ setMetadata: (config: MetadataConfig$1) => void;
195
+ getMetadata: () => MetadataConfig$1;
196
+ resetMetadata: () => void;
197
+ authValues?: PageAuthState$1 | null;
198
+ locale?: string;
199
+ translateText?: (key: string, options?: PageTranslationOptions$1) => string;
200
+ }
201
+ declare function getPageConfig(): PageConfigProps$1;
202
+ declare const pageConfigAtom: jotai.PrimitiveAtom<PageConfigProps$1>;
203
+ declare const usePageConfigValue: () => PageConfigProps$1;
204
+ declare const usePageConfigState: () => [PageConfigProps$1, (value: PageConfigProps$1) => void];
205
+ declare const usePageConfigReset: () => () => void;
206
+
207
+ type StringKey$1<T> = Extract<keyof T, string>;
208
+ type VariableTopKey$1<V> = StringKey$1<V>;
209
+ type VariableValue$1<V, K extends VariableTopKey$1<V>> = V[K];
210
+ type QueryTopKey$1<Q extends QueriesArray> = StringKey$1<MultipleQueryResponse<Q>>;
211
+ type QuerySubKey$1<Q extends QueriesArray, K extends QueryTopKey$1<Q>> = StringKey$1<MultipleQueryResponse<Q>[K]>;
212
+ type QueryCompositeKey$1<Q extends QueriesArray> = {
213
+ [K in QueryTopKey$1<Q>]: K | `${K}.${QuerySubKey$1<Q, K>}`;
214
+ }[QueryTopKey$1<Q>];
215
+ type QueryValue$1<Q extends QueriesArray, K extends QueryCompositeKey$1<Q>> = K extends `${infer Top}.${infer Sub}` ? Top extends QueryTopKey$1<Q> ? Sub extends QuerySubKey$1<Q, Top> ? MultipleQueryResponse<Q>[Top][Sub] : never : never : K extends QueryTopKey$1<Q> ? MultipleQueryResponse<Q>[K] : never;
216
+ type MutationTopKey$1<Q extends QueriesArray> = StringKey$1<AllMutation<Q>>;
217
+ type MutationSubKey$1<Q extends QueriesArray, K extends MutationTopKey$1<Q>> = StringKey$1<AllMutation<Q>[K]>;
218
+ type MutationCompositeKey$1<Q extends QueriesArray> = {
219
+ [K in MutationTopKey$1<Q>]: K | `${K}.${MutationSubKey$1<Q, K>}`;
220
+ }[MutationTopKey$1<Q>];
221
+ type MutationValue$1<Q extends QueriesArray, K extends MutationCompositeKey$1<Q>> = K extends `${infer Top}.${infer Sub}` ? Top extends MutationTopKey$1<Q> ? Sub extends MutationSubKey$1<Q, Top> ? AllMutation<Q>[Top][Sub] : never : never : K extends MutationTopKey$1<Q> ? AllMutation<Q>[K] : never;
222
+ type GetFunction$1<F extends FieldValues, Q extends QueriesArray, V extends Record<string, unknown> = Record<string, unknown>> = {
223
+ <K extends QueryTopKey$1<Q>>(type: "query", key: K): MultipleQueryResponse<Q>[K];
224
+ <K extends QueryCompositeKey$1<Q>>(type: "query", key: K): QueryValue$1<Q, K>;
225
+ <K extends QueryCompositeKey$1<Q>>(type: "query", key: K, defaultValue: unknown): NonNullable<QueryValue$1<Q, K>>;
226
+ <K extends QueryTopKey$1<Q>>(type: "query", key: K, defaultValue: MultipleQueryResponse<Q>[K]["data"]): MultipleQueryResponse<Q>[K]["data"];
227
+ <K extends QueryCompositeKey$1<Q>>(type: "query", key: K, defaultValue: QueryValue$1<Q, K>): NonNullable<QueryValue$1<Q, K>>;
228
+ <K extends MutationTopKey$1<Q>>(type: "mutation", key: K): AllMutation<Q>[K];
229
+ <K extends MutationCompositeKey$1<Q>>(type: "mutation", key: K): MutationValue$1<Q, K>;
230
+ <K extends MutationCompositeKey$1<Q>>(type: "mutation", key: K, defaultValue: unknown): NonNullable<MutationValue$1<Q, K>>;
231
+ <K extends MutationTopKey$1<Q>>(type: "mutation", key: K, defaultValue: AllMutation<Q>[K]["data"]): AllMutation<Q>[K]["data"];
232
+ <K extends MutationCompositeKey$1<Q>>(type: "mutation", key: K, defaultValue: MutationValue$1<Q, K>): NonNullable<MutationValue$1<Q, K>>;
233
+ <K extends VariableTopKey$1<V>>(type: "state", key: K): VariableValue$1<V, K>;
234
+ <K extends VariableTopKey$1<V>>(type: "state", key: K, defaultValue: VariableValue$1<V, K>): NonNullable<VariableValue$1<V, K>>;
235
+ <TField extends DeepKeys<F>>(type: "form", key: TField): DeepValue<F, TField> | undefined;
236
+ <TField extends DeepKeys<F>>(type: "form", key: TField, defaultValue: DeepValue<F, TField>): NonNullable<DeepValue<F, TField>>;
237
+ };
238
+ type SetFunction$1<F extends FieldValues, V extends Record<string, unknown> = Record<string, unknown>> = {
239
+ (type: "form"): SetValueFunction<F>;
240
+ (type: "state"): <K extends VariableTopKey$1<V>>(key: K, value: VariableValue$1<V, K>) => void;
241
+ };
242
+ type FunctionProps$1<F extends FieldValues, Q extends QueriesArray, V extends Record<string, unknown> = Record<string, unknown>> = {
243
+ /**
244
+ * Read the current query/mutation value by key.
245
+ * Example: get('query', 'bookings')
246
+ */
247
+ get: GetFunction$1<F, Q, V>;
248
+ /**
249
+ * Generic setter accessor.
250
+ * - set('form') returns `setValue`
251
+ * - set('state') returns state setter
252
+ */
253
+ set: SetFunction$1<F, V>;
254
+ };
255
+ type MappedItemsFunction$1<F extends FieldValues, Q extends QueriesArray, ComponentType, V extends Record<string, unknown> = Record<string, unknown>> = (props: FunctionProps$1<F, Q, V>) => ComponentType;
256
+ type Items$1<F extends FieldValues, Q extends QueriesArray, V extends Record<string, unknown> = Record<string, unknown>> = {
257
+ type: "custom";
258
+ component: React.JSX.Element | ((props: FunctionProps$1<F, Q, V>) => React.JSX.Element);
259
+ index?: number;
260
+ usedBoxes?: number;
261
+ renderInFooter?: boolean;
262
+ renderInHeader?: boolean;
263
+ hidden?: boolean | MappedItemsFunction$1<F, Q, boolean, V>;
264
+ isDraggable?: boolean;
265
+ isInDraggableView?: boolean;
266
+ key?: string;
267
+ /** @deprecated Query dependencies for selective rendering */
268
+ usedQueries?: string[];
269
+ lazy?: boolean;
270
+ lazyTrigger?: "viewport" | "interaction" | "conditional";
271
+ lazyCondition?: MappedItemsFunction$1<F, Q, boolean, V>;
272
+ };
273
+ type ContainerItem$1<F extends FieldValues, Q extends QueriesArray, V extends Record<string, unknown> = Record<string, unknown>> = {
274
+ type: "container";
275
+ component?: PageConfigProps$1["ItemsContainer"];
276
+ items: ContentItemsType$1<F, Q, V>;
277
+ index?: number;
278
+ usedBoxes?: number;
279
+ renderInFooter?: boolean;
280
+ renderInHeader?: boolean;
281
+ hidden?: boolean | MappedItemsFunction$1<F, Q, boolean, V>;
282
+ isDraggable?: boolean;
283
+ isInDraggableView?: boolean;
284
+ key?: string;
285
+ /** @deprecated Query dependencies for selective rendering */
286
+ usedQueries?: string[];
287
+ lazy?: boolean;
288
+ lazyTrigger?: "viewport" | "interaction" | "conditional";
289
+ lazyCondition?: MappedItemsFunction$1<F, Q, boolean, V>;
290
+ };
291
+ type ContentItem$1<F extends FieldValues, Q extends QueriesArray, V extends Record<string, unknown> = Record<string, unknown>> = Items$1<F, Q, V> | ContainerItem$1<F, Q, V>;
292
+ type MappedContents$1<F extends FieldValues, Q extends QueriesArray, V extends Record<string, unknown> = Record<string, unknown>> = MappedItemsFunction$1<F, Q, Array<ContentItem$1<F, Q, V>>, V>;
293
+ type ContentItemsType$1<F extends FieldValues, Q extends QueriesArray = QueriesArray, V extends Record<string, unknown> = Record<string, unknown>> = Array<ContentItem$1<F, Q, V>> | MappedContents$1<F, Q, V>;
294
+ type FormPageProps$1<F extends FieldValues, Q extends QueriesArray, V extends Record<string, unknown> = Record<string, unknown>> = Omit<ComponentProps<typeof FormManager<F>>, "updateFormValues" | "submit" | "data"> & {
295
+ defaultValueQueryKey?: Array<string>;
296
+ defaultValueQueryMap?: (props: ExtractQuery<Q>["response"]) => F;
297
+ submit?: Array<Submit<F>> | MappedItemsFunction$1<F, Q, Array<Submit<F>>, V>;
298
+ index?: number;
299
+ data?: Array<FormManagerConfig<F> | MappedItemsFunction$1<F, Q, FormManagerConfig<F>, V>>;
300
+ debounceDelay?: number;
301
+ hidden?: boolean | MappedItemsFunction$1<F, Q, boolean, V>;
302
+ };
303
+ type SingleQueryConfig$1<F extends FieldValues, Q extends QueryDefinition<any, any, any, any, any>, V extends Record<string, unknown> = Record<string, unknown>> = Q extends QueryDefinition<infer K, infer T, infer P, infer R, infer C> ? T extends "mutation" ? {
304
+ type: "mutation";
305
+ mutationConfig: (<Qa extends QueriesArray>(props: FunctionProps$1<F, Qa, V>) => MutationConfig<P, R, C>) | MutationConfig<P, R, C>;
306
+ key: K;
307
+ } : {
308
+ type: "query";
309
+ queryConfig?: (<Qa extends QueriesArray>(props: FunctionProps$1<F, Qa, V>) => Omit<QueryProps<K, R>, "keyToMap">) | Omit<QueryProps<K, R>, "keyToMap">;
310
+ key: K;
311
+ } : never;
312
+ type QueryPageConfigArray$1<F extends FieldValues, Q extends QueriesArray, V extends Record<string, unknown> = Record<string, unknown>> = {
313
+ [I in keyof Q]: SingleQueryConfig$1<F, QueryAtIndex<Q, I>, V>;
314
+ };
315
+ interface PageProps$1<F extends FieldValues = FieldValues, Q extends QueriesArray = QueriesArray, V extends Record<string, unknown> = Record<string, unknown>> {
316
+ id: string;
317
+ ns?: string;
318
+ contents?: ContentItemsType$1<F, Q, V>;
319
+ queries?: QueryPageConfigArray$1<F, Q, V>;
320
+ form?: FormPageProps$1<F, Q, V>;
321
+ variables?: V;
322
+ viewSettings?: MappedItemsFunction$1<F, Q, ViewSettings$1, V> | ViewSettings$1;
323
+ meta?: MetadataConfig$1<F, Q, V>;
324
+ enableAuthControl?: boolean;
325
+ }
326
+ type ViewSettings$1 = {
327
+ withoutPadding?: boolean;
328
+ header?: {
329
+ withoutPadding?: boolean;
330
+ };
331
+ footer?: {
332
+ withoutPadding?: boolean;
333
+ };
334
+ disableRefreshing?: boolean;
335
+ layoutComponent?: <F extends FieldValues = FieldValues, Q extends QueriesArray = QueriesArray, V extends Record<string, unknown> = Record<string, unknown>>(props: DefaultContainerProps$1<F, Q, V> & Record<string, unknown>) => React.ReactNode;
336
+ layoutProps?: Record<string, unknown>;
337
+ pageContainerComponent?: React.ComponentType<{
338
+ children: React.ReactNode;
339
+ id: string;
340
+ } & Record<string, unknown>>;
341
+ pageContainerProps?: Record<string, unknown>;
342
+ /** @deprecated Use layoutComponent instead */
343
+ customLayoutComponent?: PageConfigProps$1["BodyContainer"];
344
+ /** @deprecated Use pageContainerComponent instead */
345
+ customPageContainer?: PageConfigProps$1["PageContainer"];
346
+ };
347
+ /**
348
+ * Dependency Graph Node
349
+ * Tracks which queries, form values, and mutations a component depends on
350
+ */
351
+ interface DependencyNode {
352
+ componentId: string;
353
+ parentComponent: string | null;
354
+ childComponents: Array<string>;
355
+ }
356
+ /**
357
+ * Dependency Graph
358
+ * Maps component IDs to their dependency nodes for selective re-rendering
359
+ */
360
+ interface DependencyGraph {
361
+ nodes: Map<string, DependencyNode>;
362
+ addNode: (node: DependencyNode) => void;
363
+ getNode: (componentId: string) => DependencyNode | undefined;
364
+ getAffectedComponents: (changedKeys: Array<string>) => Array<string>;
365
+ }
366
+ /**
367
+ * Memoization Cache Types
368
+ * For tracking memoized computations and their cache hits
15
369
  */
370
+ interface MemoizationCacheStats {
371
+ hits: number;
372
+ misses: number;
373
+ size: number;
374
+ maxSize: number;
375
+ }
376
+ interface RenderComponentsProps<F extends FieldValues = FieldValues, Q extends QueriesArray = QueriesArray, V extends Record<string, unknown> = Record<string, unknown>> {
377
+ content: ContentItem$1<F, Q, V>;
378
+ ns: string;
379
+ pageId: string;
380
+ key: string;
381
+ }
16
382
 
17
- /**
18
- * Context passed to dynamic metadata evaluator functions
19
- * Provides access to form values, queries, and page state
20
- */
21
- type MetadataEvaluatorContext<F extends FieldValues = FieldValues, Q extends QueriesArray = QueriesArray> = FunctionProps<F, Q>;
22
- interface MetaTag {
383
+ type MetadataEvaluatorContext$1<F extends FieldValues = FieldValues, Q extends QueriesArray = QueriesArray, V extends Record<string, unknown> = Record<string, unknown>> = FunctionProps$1<F, Q, V>;
384
+ interface MetaTag$1 {
23
385
  /** For <meta name="..." content="..." /> */
24
386
  name?: string;
25
387
  /** For <meta property="og:..." content="..." /> */
@@ -34,7 +396,7 @@ interface MetaTag {
34
396
  /**
35
397
  * Open Graph Image Configuration
36
398
  */
37
- interface OpenGraphImage {
399
+ interface OpenGraphImage$1 {
38
400
  /** Absolute URL to the image */
39
401
  url: string;
40
402
  /** Alt text for the image */
@@ -49,7 +411,7 @@ interface OpenGraphImage {
49
411
  /**
50
412
  * Open Graph Article Configuration (when type='article')
51
413
  */
52
- interface OpenGraphArticle {
414
+ interface OpenGraphArticle$1 {
53
415
  /** ISO 8601 date string */
54
416
  publishedTime?: string;
55
417
  /** ISO 8601 date string */
@@ -66,45 +428,45 @@ interface OpenGraphArticle {
66
428
  /**
67
429
  * Open Graph Configuration (Facebook, LinkedIn, etc.)
68
430
  */
69
- interface OpenGraphConfig<F extends FieldValues = FieldValues, Q extends QueriesArray = QueriesArray> {
70
- type?: 'website' | 'article' | 'product' | 'profile';
71
- title?: string | ((context: MetadataEvaluatorContext<F, Q>) => string);
72
- description?: string | ((context: MetadataEvaluatorContext<F, Q>) => string);
431
+ interface OpenGraphConfig$1<F extends FieldValues = FieldValues, Q extends QueriesArray = QueriesArray, V extends Record<string, unknown> = Record<string, unknown>> {
432
+ type?: "website" | "article" | "product" | "profile";
433
+ title?: string | ((context: MetadataEvaluatorContext$1<F, Q, V>) => string);
434
+ description?: string | ((context: MetadataEvaluatorContext$1<F, Q, V>) => string);
73
435
  /** Single image URL or full image config */
74
- image?: string | OpenGraphImage | ((context: MetadataEvaluatorContext<F, Q>) => string | OpenGraphImage);
436
+ image?: string | OpenGraphImage$1 | ((context: MetadataEvaluatorContext$1<F, Q, V>) => string | OpenGraphImage$1);
75
437
  /** Multiple images for the page */
76
- images?: Array<OpenGraphImage> | ((context: MetadataEvaluatorContext<F, Q>) => Array<OpenGraphImage>);
438
+ images?: Array<OpenGraphImage$1> | ((context: MetadataEvaluatorContext$1<F, Q, V>) => Array<OpenGraphImage$1>);
77
439
  /** Canonical URL */
78
- url?: string | ((context: MetadataEvaluatorContext<F, Q>) => string);
440
+ url?: string | ((context: MetadataEvaluatorContext$1<F, Q, V>) => string);
79
441
  siteName?: string;
80
442
  /** Locale (e.g., "en_US", "it_IT") */
81
443
  locale?: string;
82
444
  /** Article-specific metadata (when type='article') */
83
- article?: OpenGraphArticle;
445
+ article?: OpenGraphArticle$1;
84
446
  }
85
447
  /**
86
448
  * Twitter Card Configuration
87
449
  */
88
- interface TwitterCardConfig<F extends FieldValues = FieldValues, Q extends QueriesArray = QueriesArray> {
450
+ interface TwitterCardConfig$1<F extends FieldValues = FieldValues, Q extends QueriesArray = QueriesArray, V extends Record<string, unknown> = Record<string, unknown>> {
89
451
  /** Card type */
90
- card?: 'summary' | 'summary_large_image' | 'app' | 'player';
452
+ card?: "summary" | "summary_large_image" | "app" | "player";
91
453
  /** @username of the website */
92
454
  site?: string;
93
455
  /** @username of the content creator */
94
456
  creator?: string;
95
457
  /** Title (falls back to og:title then page title) */
96
- title?: string | ((context: MetadataEvaluatorContext<F, Q>) => string);
458
+ title?: string | ((context: MetadataEvaluatorContext$1<F, Q, V>) => string);
97
459
  /** Description (falls back to og:description then page description) */
98
- description?: string | ((context: MetadataEvaluatorContext<F, Q>) => string);
460
+ description?: string | ((context: MetadataEvaluatorContext$1<F, Q, V>) => string);
99
461
  /** Image URL (falls back to og:image) */
100
- image?: string | ((context: MetadataEvaluatorContext<F, Q>) => string);
462
+ image?: string | ((context: MetadataEvaluatorContext$1<F, Q, V>) => string);
101
463
  /** Alt text for the image */
102
- imageAlt?: string | ((context: MetadataEvaluatorContext<F, Q>) => string);
464
+ imageAlt?: string | ((context: MetadataEvaluatorContext$1<F, Q, V>) => string);
103
465
  }
104
466
  /**
105
467
  * Alternate languages/URLs configuration for i18n SEO
106
468
  */
107
- interface AlternatesConfig {
469
+ interface AlternatesConfig$1 {
108
470
  /** Canonical URL for this page */
109
471
  canonical?: string;
110
472
  /** Map of locale → URL for hreflang tags (e.g., { "en": "/en/page", "it": "/it/page" }) */
@@ -120,7 +482,7 @@ interface AlternatesConfig {
120
482
  /**
121
483
  * Icon configuration
122
484
  */
123
- interface IconConfig {
485
+ interface IconConfig$1 {
124
486
  /** URL to the icon */
125
487
  url: string;
126
488
  /** Icon type (e.g., "image/png", "image/svg+xml") */
@@ -133,38 +495,38 @@ interface IconConfig {
133
495
  /**
134
496
  * Icons & PWA configuration
135
497
  */
136
- interface IconsConfig {
498
+ interface IconsConfig$1 {
137
499
  /** Standard favicon(s) - link[rel="icon"] */
138
- icon?: string | IconConfig | Array<IconConfig>;
500
+ icon?: string | IconConfig$1 | Array<IconConfig$1>;
139
501
  /** Apple touch icon(s) - link[rel="apple-touch-icon"] */
140
- apple?: string | IconConfig | Array<IconConfig>;
502
+ apple?: string | IconConfig$1 | Array<IconConfig$1>;
141
503
  /** Shortcut icon (legacy) */
142
504
  shortcut?: string;
143
505
  }
144
506
  /**
145
507
  * Structured Data Configuration (schema.org JSON-LD)
146
508
  */
147
- interface StructuredDataConfig<F extends FieldValues = FieldValues, Q extends QueriesArray = QueriesArray> {
148
- type: 'Article' | 'Product' | 'WebPage' | 'FAQPage' | 'Organization' | 'Person' | 'WebSite' | 'BreadcrumbList';
149
- schema: Record<string, unknown> | ((context: MetadataEvaluatorContext<F, Q>) => Record<string, unknown>);
509
+ interface StructuredDataConfig$1<F extends FieldValues = FieldValues, Q extends QueriesArray = QueriesArray, V extends Record<string, unknown> = Record<string, unknown>> {
510
+ type: "Article" | "Product" | "WebPage" | "FAQPage" | "Organization" | "Person" | "WebSite" | "BreadcrumbList";
511
+ schema: Record<string, unknown> | ((context: MetadataEvaluatorContext$1<F, Q, V>) => Record<string, unknown>);
150
512
  }
151
513
  /**
152
514
  * AI Crawler Hints (for AI search engines and LLMs)
153
515
  */
154
- interface AIHintsConfig<F extends FieldValues = FieldValues, Q extends QueriesArray = QueriesArray> {
516
+ interface AIHintsConfig$1<F extends FieldValues = FieldValues, Q extends QueriesArray = QueriesArray, V extends Record<string, unknown> = Record<string, unknown>> {
155
517
  /** Content classification (e.g., "documentation", "tutorial", "reference") */
156
- contentClassification?: string | ((context: MetadataEvaluatorContext<F, Q>) => string);
518
+ contentClassification?: string | ((context: MetadataEvaluatorContext$1<F, Q, V>) => string);
157
519
  /** Hints for AI models (e.g., ["code-heavy", "technical"]) */
158
- modelHints?: Array<string> | ((context: MetadataEvaluatorContext<F, Q>) => Array<string>);
520
+ modelHints?: Array<string> | ((context: MetadataEvaluatorContext$1<F, Q, V>) => Array<string>);
159
521
  /** Additional context for AI understanding */
160
- contextualInfo?: string | ((context: MetadataEvaluatorContext<F, Q>) => string);
522
+ contextualInfo?: string | ((context: MetadataEvaluatorContext$1<F, Q, V>) => string);
161
523
  /** Exclude this page from AI crawler indexing */
162
524
  excludeFromIndexing?: boolean;
163
525
  }
164
526
  /**
165
527
  * Robots Configuration (indexing directives)
166
528
  */
167
- interface RobotsConfig {
529
+ interface RobotsConfig$1 {
168
530
  /** Prevent indexing */
169
531
  noindex?: boolean;
170
532
  /** Don't follow links */
@@ -174,7 +536,7 @@ interface RobotsConfig {
174
536
  /** Don't show snippets in search results */
175
537
  nosnippet?: boolean;
176
538
  /** Image preview size in search results */
177
- maxImagePreview?: 'none' | 'standard' | 'large';
539
+ maxImagePreview?: "none" | "standard" | "large";
178
540
  /** Max snippet length in search results */
179
541
  maxSnippet?: number;
180
542
  }
@@ -193,18 +555,18 @@ interface ResolvedMetadata {
193
555
  viewport?: string;
194
556
  themeColor?: string;
195
557
  openGraph?: {
196
- type?: 'website' | 'article' | 'product' | 'profile';
558
+ type?: "website" | "article" | "product" | "profile";
197
559
  title?: string;
198
560
  description?: string;
199
- image?: string | OpenGraphImage;
200
- images?: Array<OpenGraphImage>;
561
+ image?: string | OpenGraphImage$1;
562
+ images?: Array<OpenGraphImage$1>;
201
563
  url?: string;
202
564
  siteName?: string;
203
565
  locale?: string;
204
- article?: OpenGraphArticle;
566
+ article?: OpenGraphArticle$1;
205
567
  };
206
568
  twitter?: {
207
- card?: 'summary' | 'summary_large_image' | 'app' | 'player';
569
+ card?: "summary" | "summary_large_image" | "app" | "player";
208
570
  site?: string;
209
571
  creator?: string;
210
572
  title?: string;
@@ -212,8 +574,8 @@ interface ResolvedMetadata {
212
574
  image?: string;
213
575
  imageAlt?: string;
214
576
  };
215
- alternates?: AlternatesConfig;
216
- icons?: IconsConfig;
577
+ alternates?: AlternatesConfig$1;
578
+ icons?: IconsConfig$1;
217
579
  /** Web app manifest URL */
218
580
  manifest?: string;
219
581
  structuredData?: {
@@ -226,22 +588,22 @@ interface ResolvedMetadata {
226
588
  contextualInfo?: string;
227
589
  excludeFromIndexing?: boolean;
228
590
  };
229
- robots?: RobotsConfig;
591
+ robots?: RobotsConfig$1;
230
592
  disableIndexing?: boolean;
231
- customMeta?: Array<MetaTag>;
593
+ customMeta?: Array<MetaTag$1>;
232
594
  }
233
595
  /**
234
596
  * Complete Metadata Configuration (Generic over F and Q for dynamic metadata)
235
597
  * This is the "input" type — values can be strings or evaluator functions.
236
598
  * Use resolveMetadata() to convert this to ResolvedMetadata.
237
599
  */
238
- interface MetadataConfig<F extends FieldValues = FieldValues, Q extends QueriesArray = QueriesArray> {
600
+ interface MetadataConfig$1<F extends FieldValues = FieldValues, Q extends QueriesArray = QueriesArray, V extends Record<string, unknown> = Record<string, unknown>> {
239
601
  /** Page title - sets document.title on web */
240
- title?: string | ((context: MetadataEvaluatorContext<F, Q>) => string);
602
+ title?: string | ((context: MetadataEvaluatorContext$1<F, Q, V>) => string);
241
603
  /** Page description meta tag */
242
- description?: string | ((context: MetadataEvaluatorContext<F, Q>) => string);
604
+ description?: string | ((context: MetadataEvaluatorContext$1<F, Q, V>) => string);
243
605
  /** Canonical URL for the page */
244
- canonical?: string | ((context: MetadataEvaluatorContext<F, Q>) => string);
606
+ canonical?: string | ((context: MetadataEvaluatorContext$1<F, Q, V>) => string);
245
607
  /** HTML lang attribute (e.g., "en", "it") */
246
608
  lang?: string;
247
609
  /**
@@ -249,17 +611,17 @@ interface MetadataConfig<F extends FieldValues = FieldValues, Q extends QueriesA
249
611
  */
250
612
  documentLang?: string;
251
613
  /** Keywords for SEO */
252
- keywords?: Array<string> | ((context: MetadataEvaluatorContext<F, Q>) => Array<string>);
253
- openGraph?: OpenGraphConfig<F, Q>;
254
- twitter?: TwitterCardConfig<F, Q>;
255
- alternates?: AlternatesConfig;
256
- icons?: IconsConfig;
614
+ keywords?: Array<string> | ((context: MetadataEvaluatorContext$1<F, Q, V>) => Array<string>);
615
+ openGraph?: OpenGraphConfig$1<F, Q, V>;
616
+ twitter?: TwitterCardConfig$1<F, Q, V>;
617
+ alternates?: AlternatesConfig$1;
618
+ icons?: IconsConfig$1;
257
619
  /** Web app manifest URL */
258
620
  manifest?: string;
259
- structuredData?: StructuredDataConfig<F, Q>;
260
- aiHints?: AIHintsConfig<F, Q>;
261
- robots?: RobotsConfig;
262
- customMeta?: Array<MetaTag> | ((context: MetadataEvaluatorContext<F, Q>) => Array<MetaTag>);
621
+ structuredData?: StructuredDataConfig$1<F, Q, V>;
622
+ aiHints?: AIHintsConfig$1<F, Q, V>;
623
+ robots?: RobotsConfig$1;
624
+ customMeta?: Array<MetaTag$1> | ((context: MetadataEvaluatorContext$1<F, Q, V>) => Array<MetaTag$1>);
263
625
  disableIndexing?: boolean;
264
626
  /** Author meta tag */
265
627
  author?: string;
@@ -283,51 +645,12 @@ interface MetadataStore {
283
645
  }
284
646
  interface MetadataProvider {
285
647
  /** Apply metadata configuration to the page */
286
- setMetadata: (config: MetadataConfig) => void;
648
+ setMetadata: (config: MetadataConfig$1) => void;
287
649
  /** Get current metadata configuration */
288
- getMetadata: () => MetadataConfig;
650
+ getMetadata: () => MetadataConfig$1;
289
651
  /** Reset all metadata to defaults */
290
652
  resetMetadata: () => void;
291
653
  }
292
- /**
293
- * Configuration for lazy loading and code splitting behavior
294
- * Enables deferred component loading to reduce initial bundle size
295
- */
296
- interface LazyLoadingConfig<F extends FieldValues = FieldValues, Q extends QueriesArray = QueriesArray> {
297
- /** Enable lazy loading (default: true) */
298
- enabled?: boolean;
299
- /** Preload on hover for interactive elements (default: false) */
300
- preloadOnHover?: boolean;
301
- /** Preload on focus for keyboard navigation (default: false) */
302
- preloadOnFocus?: boolean;
303
- /** Preload after render with delay (in ms, default: undefined - no delay) */
304
- preloadAfterRender?: number;
305
- /** Fallback component to show while loading (default: null) */
306
- suspenseFallback?: React.ReactNode;
307
- /** Custom error boundary component for lazy-loaded modules */
308
- errorBoundary?: React.ComponentType<{
309
- error: Error;
310
- retry: () => void;
311
- }>;
312
- /** Maximum time to wait before showing error state (in ms, default: 30000) */
313
- timeout?: number;
314
- /** Log performance metrics for lazy loading (development only) */
315
- logMetrics?: boolean;
316
- /** IntersectionObserver threshold (0-1, default: 0.1) - alias for intersectionThreshold */
317
- threshold?: number | Array<number>;
318
- /** IntersectionObserver threshold (0-1, default: 0.1) */
319
- intersectionThreshold?: number | Array<number>;
320
- /** IntersectionObserver root margin (default: "100px") - alias for intersectionRootMargin */
321
- rootMargin?: string;
322
- /** IntersectionObserver root margin (default: "100px") */
323
- intersectionRootMargin?: string;
324
- /** Trigger type for lazy loading: viewport (IntersectionObserver), interaction (manual), or conditional (based on function) */
325
- trigger?: 'viewport' | 'interaction' | 'conditional';
326
- /** Conditional function to determine if content should load (for trigger: "conditional") */
327
- condition?: (context: MetadataEvaluatorContext<F, Q>) => boolean;
328
- /** Placeholder component to show before lazy content loads */
329
- placeholder?: React.ReactNode;
330
- }
331
654
  /**
332
655
  * Entry for the llms.txt file
333
656
  */
@@ -351,146 +674,22 @@ interface LlmsTxtConfig {
351
674
  entries: Array<LlmsTxtEntry>;
352
675
  }
353
676
 
354
- /**
355
- * Metadata Store, DOM Application, and Server Collection
356
- *
357
- * Architecture:
358
- * - `createMetadataStore()` → request-scoped store (SSR-safe)
359
- * - `applyMetadataToDom(resolved)` → client-side DOM manipulation
360
- * - `collectMetadataToHtml(resolved)` → server-side HTML string collection
361
- * - `setMetadata / getMetadata / resetMetadata` → backward-compatible global API
362
- *
363
- * @module config/metadata
364
- */
365
-
366
- /**
367
- * Create a new request-scoped metadata store.
368
- * In SSR, each incoming request should create its own store
369
- * to avoid cross-request data leaks.
370
- * On the client, a single global store is used (see below).
371
- */
372
- declare function createMetadataStore(): MetadataStore;
373
- /**
374
- * Apply resolved metadata to the document `<head>`.
375
- * Client-only: this function does nothing if `document` is not available.
376
- * Covers: title, description, canonical, lang, keywords, author, viewport,
377
- * themeColor, Open Graph (advanced), Twitter Card, alternates/hreflang,
378
- * icons, manifest, structured data JSON-LD, AI hints, robots, customMeta.
379
- */
380
- declare function applyMetadataToDom(resolved: ResolvedMetadata): void;
381
- /**
382
- * Collect resolved metadata as an HTML string for SSR injection into `<head>`.
383
- * Pure function — no DOM, no side effects.
384
- */
385
- declare function collectMetadataToHtml(resolved: ResolvedMetadata): string;
386
- /**
387
- * Apply metadata configuration to the page.
388
- * Merges with existing metadata in the global store.
389
- * On web: also applies changes to the DOM.
390
- *
391
- * @deprecated Prefer using `MetadataStoreProvider` + `resolveMetadata` + `applyMetadataToDom`
392
- * for SSR-safe, request-scoped metadata management.
393
- */
394
- declare const setMetadata: (config: MetadataConfig) => void;
395
- /**
396
- * Get current metadata from the global store.
397
- * @deprecated Prefer using `MetadataStoreProvider` context in SSR.
398
- */
399
- declare const getMetadata: () => MetadataConfig;
400
- /**
401
- * Reset all metadata in the global store.
402
- * @deprecated Prefer using `MetadataStoreProvider` context in SSR.
403
- */
404
- declare const resetMetadata: () => void;
405
-
406
- /**
407
- * resolveMetadata — Pure function that evaluates dynamic MetadataConfig into ResolvedMetadata.
408
- *
409
- * All evaluator functions (title, description, og fields, twitter fields, etc.)
410
- * are called with the provided context. The result is a plain object with no functions.
411
- *
412
- * This function has NO side effects: no DOM, no global state.
413
- *
414
- * @module config/resolveMetadata
415
- */
677
+ declare const PageGenerator: <F extends FieldValues = FieldValues, Q extends QueriesArray = QueriesArray, V extends Record<string, unknown> = Record<string, unknown>>({ enableAuthControl, meta, variables, ...props }: PageProps$1<F, Q, V>) => react_jsx_runtime.JSX.Element;
416
678
 
417
- /**
418
- * Resolve a MetadataConfig (which may contain evaluator functions)
419
- * into a plain ResolvedMetadata object.
420
- *
421
- * @param meta - The metadata configuration (static or with dynamic functions)
422
- * @param ctx - The context providing get/set accessors for queries, form, state
423
- * @returns Fully resolved metadata with all functions evaluated
424
- */
425
- declare function resolveMetadata<F extends FieldValues = FieldValues, Q extends QueriesArray = QueriesArray>(meta: MetadataConfig<F, Q>, ctx: MetadataEvaluatorContext<F, Q>): ResolvedMetadata;
679
+ declare const RenderComponents: <F extends FieldValues, Q extends QueriesArray, V extends Record<string, unknown> = Record<string, unknown>>(props: RenderComponentsProps<F, Q, V>) => react_jsx_runtime.JSX.Element;
426
680
 
427
- interface MetadataStoreProviderProps {
428
- /** Optional pre-created store. If not provided, a new one is created. */
429
- store?: MetadataStore;
430
- children: React.ReactNode;
681
+ interface Props<F extends FieldValues = FieldValues, Q extends QueriesArray = QueriesArray, V extends Record<string, unknown> = Record<string, unknown>> {
682
+ content: ContentItem$1<F, Q, V>;
683
+ ns: string;
684
+ pageId: string;
431
685
  }
432
- /**
433
- * Provides a request-scoped MetadataStore via React Context.
434
- *
435
- * @example SSR (one per request)
436
- * ```tsx
437
- * import { createMetadataStore, MetadataStoreProvider } from '@/core/pages';
438
- *
439
- * function handleRequest(req, res) {
440
- * const store = createMetadataStore();
441
- * const html = renderToString(
442
- * <MetadataStoreProvider store={store}>
443
- * <App />
444
- * </MetadataStoreProvider>
445
- * );
446
- * const headHtml = collectMetadataToHtml(store.getMetadata());
447
- * // inject headHtml into <head>
448
- * }
449
- * ```
450
- */
451
- declare function MetadataStoreProvider({ store, children, }: MetadataStoreProviderProps): react_jsx_runtime.JSX.Element;
452
- /**
453
- * Access the nearest request-scoped MetadataStore.
454
- * Returns `null` if no provider is found (falls back to global store in consumers).
455
- */
456
- declare function useMetadataStore(): MetadataStore | null;
457
-
458
- /**
459
- * Optional dev-only metadata logging.
460
- *
461
- * Tracks what metadata was resolved and applied, useful for debugging
462
- * metadata issues during development.
463
- *
464
- * Logging is a no-op in production builds.
465
- *
466
- * @module config/metadataLogger
467
- */
468
-
469
- interface MetadataLogEntry {
686
+ interface ContentProps<F extends FieldValues = FieldValues, Q extends QueriesArray = QueriesArray, V extends Record<string, unknown> = Record<string, unknown>> extends Omit<Props<F, Q, V>, 'content'> {
687
+ content: Items$1<F, Q, V>;
470
688
  pageId: string;
471
- action: 'resolve' | 'apply-dom' | 'apply-store' | 'translate';
472
- metadata: ResolvedMetadata;
473
- timestamp: number;
474
689
  }
475
- /**
476
- * Enable or disable metadata logging.
477
- * Only effective in development mode.
478
- */
479
- declare function setMetadataLogging(enabled: boolean): void;
480
- /**
481
- * Log a metadata action (resolve, apply, translate).
482
- * No-op in production or when logging is disabled.
483
- */
484
- declare function logMetadata(pageId: string, action: MetadataLogEntry['action'], metadata: ResolvedMetadata): void;
485
- /**
486
- * Get all logged metadata entries (dev only).
487
- * Useful for inspecting metadata in browser devtools.
488
- */
489
- declare function getMetadataLog(): Array<MetadataLogEntry>;
490
- /**
491
- * Clear the metadata log.
492
- */
493
- declare function clearMetadataLog(): void;
690
+ interface ItemContainerProps<F extends FieldValues = FieldValues, Q extends QueriesArray = QueriesArray, V extends Record<string, unknown> = Record<string, unknown>> extends Omit<Props<F, Q, V>, 'content'> {
691
+ content: ContainerItem$1<F, Q, V>;
692
+ }
494
693
 
495
694
  interface DefaultContainerProps<F extends FieldValues = FieldValues, Q extends QueriesArray = QueriesArray, V extends Record<string, unknown> = Record<string, unknown>> {
496
695
  children?: Array<React.JSX.Element>;
@@ -538,16 +737,10 @@ interface PageConfigProps {
538
737
  setMetadata: (config: MetadataConfig) => void;
539
738
  getMetadata: () => MetadataConfig;
540
739
  resetMetadata: () => void;
541
- lazyLoading: LazyLoadingConfig;
542
740
  authValues?: PageAuthState | null;
543
741
  locale?: string;
544
742
  translateText?: (key: string, options?: PageTranslationOptions) => string;
545
743
  }
546
- declare function getPageConfig(): PageConfigProps;
547
- declare const pageConfigAtom: jotai.PrimitiveAtom<PageConfigProps>;
548
- declare const usePageConfigValue: () => PageConfigProps;
549
- declare const usePageConfigState: () => [PageConfigProps, (value: PageConfigProps) => void];
550
- declare const usePageConfigReset: () => () => void;
551
744
 
552
745
  type StringKey<T> = Extract<keyof T, string>;
553
746
  type VariableTopKey<V> = StringKey<V>;
@@ -598,15 +791,6 @@ type FunctionProps<F extends FieldValues, Q extends QueriesArray, V extends Reco
598
791
  set: SetFunction<F, V>;
599
792
  };
600
793
  type MappedItemsFunction<F extends FieldValues, Q extends QueriesArray, ComponentType, V extends Record<string, unknown> = Record<string, unknown>> = (props: FunctionProps<F, Q, V>) => ComponentType;
601
- /**
602
- * Context passed to lifecycle callbacks
603
- * Provides access to form, queries, mutations, and utilities
604
- */
605
- type LifecycleContext<F extends FieldValues = FieldValues, Q extends QueriesArray = QueriesArray, V extends Record<string, unknown> = Record<string, unknown>> = FunctionProps<F, Q, V> & {
606
- ns?: string;
607
- pageId?: string;
608
- pageConfig?: PageProps<F, Q, V>;
609
- };
610
794
  type Items<F extends FieldValues, Q extends QueriesArray, V extends Record<string, unknown> = Record<string, unknown>> = {
611
795
  type: "custom";
612
796
  component: React.JSX.Element | ((props: FunctionProps<F, Q, V>) => React.JSX.Element);
@@ -674,114 +858,33 @@ interface PageProps<F extends FieldValues = FieldValues, Q extends QueriesArray
674
858
  form?: FormPageProps<F, Q, V>;
675
859
  variables?: V;
676
860
  viewSettings?: MappedItemsFunction<F, Q, ViewSettings, V> | ViewSettings;
677
- meta?: MetadataConfig<F, Q>;
678
- lazyLoading?: LazyLoadingConfig;
679
- platformOverrides?: PlatformOverrides<F, Q, V>;
680
- lifecycleCallbacks?: {
681
- onMountComplete?: (context: LifecycleContext<F, Q, V>) => void | Promise<void>;
682
- onQuerySuccess?: (context: LifecycleContext<F, Q, V>, queryKey: string, data: unknown) => void | Promise<void>;
683
- onQueryError?: (context: LifecycleContext<F, Q, V>, queryKey: string, error: Error) => void | Promise<void>;
684
- onFormSubmit?: (context: LifecycleContext<F, Q, V>, result: unknown) => void | Promise<void>;
685
- onValuesChange?: MappedItemsFunction<F, Q, void, V>;
686
- };
861
+ meta?: MetadataConfig<F, Q, V>;
687
862
  enableAuthControl?: boolean;
688
863
  }
689
- /**
690
- * Platform-specific configuration overrides (proper type with PageProps reference)
691
- * Allows different behavior on web vs React Native
692
- */
693
- type PlatformOverrides<F extends FieldValues = FieldValues, Q extends QueriesArray = QueriesArray, V extends Record<string, unknown> = Record<string, unknown>> = {
694
- /** Web-specific overrides (React DOM) */
695
- web?: Partial<PageProps<F, Q, V>>;
696
- /** React Native-specific overrides */
697
- native?: Partial<PageProps<F, Q, V>>;
698
- };
699
- type ViewSettings = {
700
- withoutPadding?: boolean;
701
- header?: {
702
- withoutPadding?: boolean;
703
- };
704
- footer?: {
705
- withoutPadding?: boolean;
706
- };
707
- disableRefreshing?: boolean;
708
- layoutComponent?: <F extends FieldValues = FieldValues, Q extends QueriesArray = QueriesArray, V extends Record<string, unknown> = Record<string, unknown>>(props: DefaultContainerProps<F, Q, V> & Record<string, unknown>) => React.ReactNode;
709
- layoutProps?: Record<string, unknown>;
710
- pageContainerComponent?: React.ComponentType<{
711
- children: React.ReactNode;
712
- id: string;
713
- } & Record<string, unknown>>;
714
- pageContainerProps?: Record<string, unknown>;
715
- /** @deprecated Use layoutComponent instead */
716
- customLayoutComponent?: PageConfigProps["BodyContainer"];
717
- /** @deprecated Use pageContainerComponent instead */
718
- customPageContainer?: PageConfigProps["PageContainer"];
719
- };
720
- /**
721
- * Dependency Graph Node
722
- * Tracks which queries, form values, and mutations a component depends on
723
- */
724
- interface DependencyNode {
725
- componentId: string;
726
- parentComponent: string | null;
727
- childComponents: Array<string>;
728
- }
729
- /**
730
- * Dependency Graph
731
- * Maps component IDs to their dependency nodes for selective re-rendering
732
- */
733
- interface DependencyGraph {
734
- nodes: Map<string, DependencyNode>;
735
- addNode: (node: DependencyNode) => void;
736
- getNode: (componentId: string) => DependencyNode | undefined;
737
- getAffectedComponents: (changedKeys: Array<string>) => Array<string>;
738
- }
739
- /**
740
- * Memoization Cache Types
741
- * For tracking memoized computations and their cache hits
742
- */
743
- interface MemoizationCacheStats {
744
- hits: number;
745
- misses: number;
746
- size: number;
747
- maxSize: number;
748
- }
749
- interface RenderComponentsProps<F extends FieldValues = FieldValues, Q extends QueriesArray = QueriesArray, V extends Record<string, unknown> = Record<string, unknown>> {
750
- content: ContentItem<F, Q, V>;
751
- ns: string;
752
- pageId: string;
753
- key: string;
754
- }
755
-
756
- declare const PageGenerator: <F extends FieldValues = FieldValues, Q extends QueriesArray = QueriesArray, V extends Record<string, unknown> = Record<string, unknown>>({ enableAuthControl, meta, variables, ...props }: PageProps<F, Q, V>) => react_jsx_runtime.JSX.Element;
757
-
758
- declare const RenderComponents: <F extends FieldValues, Q extends QueriesArray, V extends Record<string, unknown> = Record<string, unknown>>(props: RenderComponentsProps<F, Q, V>) => react_jsx_runtime.JSX.Element;
759
-
760
- interface Props<F extends FieldValues = FieldValues, Q extends QueriesArray = QueriesArray, V extends Record<string, unknown> = Record<string, unknown>> {
761
- content: ContentItem<F, Q, V>;
762
- ns: string;
763
- pageId: string;
764
- }
765
- interface ContentProps<F extends FieldValues = FieldValues, Q extends QueriesArray = QueriesArray, V extends Record<string, unknown> = Record<string, unknown>> extends Omit<Props<F, Q, V>, 'content'> {
766
- content: Items<F, Q, V>;
767
- pageId: string;
768
- }
769
- interface ItemContainerProps<F extends FieldValues = FieldValues, Q extends QueriesArray = QueriesArray, V extends Record<string, unknown> = Record<string, unknown>> extends Omit<Props<F, Q, V>, 'content'> {
770
- content: ContainerItem<F, Q, V>;
771
- }
772
-
773
- /**
774
- * Metadata Configuration Types
775
- * Custom metadata system replacing react-helmet-async
776
- * Platform-agnostic: works on web, React Native, and SSR
777
- */
864
+ type ViewSettings = {
865
+ withoutPadding?: boolean;
866
+ header?: {
867
+ withoutPadding?: boolean;
868
+ };
869
+ footer?: {
870
+ withoutPadding?: boolean;
871
+ };
872
+ disableRefreshing?: boolean;
873
+ layoutComponent?: <F extends FieldValues = FieldValues, Q extends QueriesArray = QueriesArray, V extends Record<string, unknown> = Record<string, unknown>>(props: DefaultContainerProps<F, Q, V> & Record<string, unknown>) => React.ReactNode;
874
+ layoutProps?: Record<string, unknown>;
875
+ pageContainerComponent?: React.ComponentType<{
876
+ children: React.ReactNode;
877
+ id: string;
878
+ } & Record<string, unknown>>;
879
+ pageContainerProps?: Record<string, unknown>;
880
+ /** @deprecated Use layoutComponent instead */
881
+ customLayoutComponent?: PageConfigProps["BodyContainer"];
882
+ /** @deprecated Use pageContainerComponent instead */
883
+ customPageContainer?: PageConfigProps["PageContainer"];
884
+ };
778
885
 
779
- /**
780
- * Context passed to dynamic metadata evaluator functions
781
- * Provides access to form values, queries, and page state
782
- */
783
- type MetadataEvaluatorContext$1<F extends FieldValues = FieldValues, Q extends QueriesArray = QueriesArray> = FunctionProps$1<F, Q>;
784
- interface MetaTag$1 {
886
+ type MetadataEvaluatorContext<F extends FieldValues = FieldValues, Q extends QueriesArray = QueriesArray, V extends Record<string, unknown> = Record<string, unknown>> = FunctionProps<F, Q, V>;
887
+ interface MetaTag {
785
888
  /** For <meta name="..." content="..." /> */
786
889
  name?: string;
787
890
  /** For <meta property="og:..." content="..." /> */
@@ -796,7 +899,7 @@ interface MetaTag$1 {
796
899
  /**
797
900
  * Open Graph Image Configuration
798
901
  */
799
- interface OpenGraphImage$1 {
902
+ interface OpenGraphImage {
800
903
  /** Absolute URL to the image */
801
904
  url: string;
802
905
  /** Alt text for the image */
@@ -811,7 +914,7 @@ interface OpenGraphImage$1 {
811
914
  /**
812
915
  * Open Graph Article Configuration (when type='article')
813
916
  */
814
- interface OpenGraphArticle$1 {
917
+ interface OpenGraphArticle {
815
918
  /** ISO 8601 date string */
816
919
  publishedTime?: string;
817
920
  /** ISO 8601 date string */
@@ -828,45 +931,45 @@ interface OpenGraphArticle$1 {
828
931
  /**
829
932
  * Open Graph Configuration (Facebook, LinkedIn, etc.)
830
933
  */
831
- interface OpenGraphConfig$1<F extends FieldValues = FieldValues, Q extends QueriesArray = QueriesArray> {
832
- type?: 'website' | 'article' | 'product' | 'profile';
833
- title?: string | ((context: MetadataEvaluatorContext$1<F, Q>) => string);
834
- description?: string | ((context: MetadataEvaluatorContext$1<F, Q>) => string);
934
+ interface OpenGraphConfig<F extends FieldValues = FieldValues, Q extends QueriesArray = QueriesArray, V extends Record<string, unknown> = Record<string, unknown>> {
935
+ type?: "website" | "article" | "product" | "profile";
936
+ title?: string | ((context: MetadataEvaluatorContext<F, Q, V>) => string);
937
+ description?: string | ((context: MetadataEvaluatorContext<F, Q, V>) => string);
835
938
  /** Single image URL or full image config */
836
- image?: string | OpenGraphImage$1 | ((context: MetadataEvaluatorContext$1<F, Q>) => string | OpenGraphImage$1);
939
+ image?: string | OpenGraphImage | ((context: MetadataEvaluatorContext<F, Q, V>) => string | OpenGraphImage);
837
940
  /** Multiple images for the page */
838
- images?: Array<OpenGraphImage$1> | ((context: MetadataEvaluatorContext$1<F, Q>) => Array<OpenGraphImage$1>);
941
+ images?: Array<OpenGraphImage> | ((context: MetadataEvaluatorContext<F, Q, V>) => Array<OpenGraphImage>);
839
942
  /** Canonical URL */
840
- url?: string | ((context: MetadataEvaluatorContext$1<F, Q>) => string);
943
+ url?: string | ((context: MetadataEvaluatorContext<F, Q, V>) => string);
841
944
  siteName?: string;
842
945
  /** Locale (e.g., "en_US", "it_IT") */
843
946
  locale?: string;
844
947
  /** Article-specific metadata (when type='article') */
845
- article?: OpenGraphArticle$1;
948
+ article?: OpenGraphArticle;
846
949
  }
847
950
  /**
848
951
  * Twitter Card Configuration
849
952
  */
850
- interface TwitterCardConfig$1<F extends FieldValues = FieldValues, Q extends QueriesArray = QueriesArray> {
953
+ interface TwitterCardConfig<F extends FieldValues = FieldValues, Q extends QueriesArray = QueriesArray, V extends Record<string, unknown> = Record<string, unknown>> {
851
954
  /** Card type */
852
- card?: 'summary' | 'summary_large_image' | 'app' | 'player';
955
+ card?: "summary" | "summary_large_image" | "app" | "player";
853
956
  /** @username of the website */
854
957
  site?: string;
855
958
  /** @username of the content creator */
856
959
  creator?: string;
857
960
  /** Title (falls back to og:title then page title) */
858
- title?: string | ((context: MetadataEvaluatorContext$1<F, Q>) => string);
961
+ title?: string | ((context: MetadataEvaluatorContext<F, Q, V>) => string);
859
962
  /** Description (falls back to og:description then page description) */
860
- description?: string | ((context: MetadataEvaluatorContext$1<F, Q>) => string);
963
+ description?: string | ((context: MetadataEvaluatorContext<F, Q, V>) => string);
861
964
  /** Image URL (falls back to og:image) */
862
- image?: string | ((context: MetadataEvaluatorContext$1<F, Q>) => string);
965
+ image?: string | ((context: MetadataEvaluatorContext<F, Q, V>) => string);
863
966
  /** Alt text for the image */
864
- imageAlt?: string | ((context: MetadataEvaluatorContext$1<F, Q>) => string);
967
+ imageAlt?: string | ((context: MetadataEvaluatorContext<F, Q, V>) => string);
865
968
  }
866
969
  /**
867
970
  * Alternate languages/URLs configuration for i18n SEO
868
971
  */
869
- interface AlternatesConfig$1 {
972
+ interface AlternatesConfig {
870
973
  /** Canonical URL for this page */
871
974
  canonical?: string;
872
975
  /** Map of locale → URL for hreflang tags (e.g., { "en": "/en/page", "it": "/it/page" }) */
@@ -882,7 +985,7 @@ interface AlternatesConfig$1 {
882
985
  /**
883
986
  * Icon configuration
884
987
  */
885
- interface IconConfig$1 {
988
+ interface IconConfig {
886
989
  /** URL to the icon */
887
990
  url: string;
888
991
  /** Icon type (e.g., "image/png", "image/svg+xml") */
@@ -895,38 +998,38 @@ interface IconConfig$1 {
895
998
  /**
896
999
  * Icons & PWA configuration
897
1000
  */
898
- interface IconsConfig$1 {
1001
+ interface IconsConfig {
899
1002
  /** Standard favicon(s) - link[rel="icon"] */
900
- icon?: string | IconConfig$1 | Array<IconConfig$1>;
1003
+ icon?: string | IconConfig | Array<IconConfig>;
901
1004
  /** Apple touch icon(s) - link[rel="apple-touch-icon"] */
902
- apple?: string | IconConfig$1 | Array<IconConfig$1>;
1005
+ apple?: string | IconConfig | Array<IconConfig>;
903
1006
  /** Shortcut icon (legacy) */
904
1007
  shortcut?: string;
905
1008
  }
906
1009
  /**
907
1010
  * Structured Data Configuration (schema.org JSON-LD)
908
1011
  */
909
- interface StructuredDataConfig$1<F extends FieldValues = FieldValues, Q extends QueriesArray = QueriesArray> {
910
- type: 'Article' | 'Product' | 'WebPage' | 'FAQPage' | 'Organization' | 'Person' | 'WebSite' | 'BreadcrumbList';
911
- schema: Record<string, unknown> | ((context: MetadataEvaluatorContext$1<F, Q>) => Record<string, unknown>);
1012
+ interface StructuredDataConfig<F extends FieldValues = FieldValues, Q extends QueriesArray = QueriesArray, V extends Record<string, unknown> = Record<string, unknown>> {
1013
+ type: "Article" | "Product" | "WebPage" | "FAQPage" | "Organization" | "Person" | "WebSite" | "BreadcrumbList";
1014
+ schema: Record<string, unknown> | ((context: MetadataEvaluatorContext<F, Q, V>) => Record<string, unknown>);
912
1015
  }
913
1016
  /**
914
1017
  * AI Crawler Hints (for AI search engines and LLMs)
915
1018
  */
916
- interface AIHintsConfig$1<F extends FieldValues = FieldValues, Q extends QueriesArray = QueriesArray> {
1019
+ interface AIHintsConfig<F extends FieldValues = FieldValues, Q extends QueriesArray = QueriesArray, V extends Record<string, unknown> = Record<string, unknown>> {
917
1020
  /** Content classification (e.g., "documentation", "tutorial", "reference") */
918
- contentClassification?: string | ((context: MetadataEvaluatorContext$1<F, Q>) => string);
1021
+ contentClassification?: string | ((context: MetadataEvaluatorContext<F, Q, V>) => string);
919
1022
  /** Hints for AI models (e.g., ["code-heavy", "technical"]) */
920
- modelHints?: Array<string> | ((context: MetadataEvaluatorContext$1<F, Q>) => Array<string>);
1023
+ modelHints?: Array<string> | ((context: MetadataEvaluatorContext<F, Q, V>) => Array<string>);
921
1024
  /** Additional context for AI understanding */
922
- contextualInfo?: string | ((context: MetadataEvaluatorContext$1<F, Q>) => string);
1025
+ contextualInfo?: string | ((context: MetadataEvaluatorContext<F, Q, V>) => string);
923
1026
  /** Exclude this page from AI crawler indexing */
924
1027
  excludeFromIndexing?: boolean;
925
1028
  }
926
1029
  /**
927
1030
  * Robots Configuration (indexing directives)
928
1031
  */
929
- interface RobotsConfig$1 {
1032
+ interface RobotsConfig {
930
1033
  /** Prevent indexing */
931
1034
  noindex?: boolean;
932
1035
  /** Don't follow links */
@@ -936,7 +1039,7 @@ interface RobotsConfig$1 {
936
1039
  /** Don't show snippets in search results */
937
1040
  nosnippet?: boolean;
938
1041
  /** Image preview size in search results */
939
- maxImagePreview?: 'none' | 'standard' | 'large';
1042
+ maxImagePreview?: "none" | "standard" | "large";
940
1043
  /** Max snippet length in search results */
941
1044
  maxSnippet?: number;
942
1045
  }
@@ -945,13 +1048,13 @@ interface RobotsConfig$1 {
945
1048
  * This is the "input" type — values can be strings or evaluator functions.
946
1049
  * Use resolveMetadata() to convert this to ResolvedMetadata.
947
1050
  */
948
- interface MetadataConfig$1<F extends FieldValues = FieldValues, Q extends QueriesArray = QueriesArray> {
1051
+ interface MetadataConfig<F extends FieldValues = FieldValues, Q extends QueriesArray = QueriesArray, V extends Record<string, unknown> = Record<string, unknown>> {
949
1052
  /** Page title - sets document.title on web */
950
- title?: string | ((context: MetadataEvaluatorContext$1<F, Q>) => string);
1053
+ title?: string | ((context: MetadataEvaluatorContext<F, Q, V>) => string);
951
1054
  /** Page description meta tag */
952
- description?: string | ((context: MetadataEvaluatorContext$1<F, Q>) => string);
1055
+ description?: string | ((context: MetadataEvaluatorContext<F, Q, V>) => string);
953
1056
  /** Canonical URL for the page */
954
- canonical?: string | ((context: MetadataEvaluatorContext$1<F, Q>) => string);
1057
+ canonical?: string | ((context: MetadataEvaluatorContext<F, Q, V>) => string);
955
1058
  /** HTML lang attribute (e.g., "en", "it") */
956
1059
  lang?: string;
957
1060
  /**
@@ -959,17 +1062,17 @@ interface MetadataConfig$1<F extends FieldValues = FieldValues, Q extends Querie
959
1062
  */
960
1063
  documentLang?: string;
961
1064
  /** Keywords for SEO */
962
- keywords?: Array<string> | ((context: MetadataEvaluatorContext$1<F, Q>) => Array<string>);
963
- openGraph?: OpenGraphConfig$1<F, Q>;
964
- twitter?: TwitterCardConfig$1<F, Q>;
965
- alternates?: AlternatesConfig$1;
966
- icons?: IconsConfig$1;
1065
+ keywords?: Array<string> | ((context: MetadataEvaluatorContext<F, Q, V>) => Array<string>);
1066
+ openGraph?: OpenGraphConfig<F, Q, V>;
1067
+ twitter?: TwitterCardConfig<F, Q, V>;
1068
+ alternates?: AlternatesConfig;
1069
+ icons?: IconsConfig;
967
1070
  /** Web app manifest URL */
968
1071
  manifest?: string;
969
- structuredData?: StructuredDataConfig$1<F, Q>;
970
- aiHints?: AIHintsConfig$1<F, Q>;
971
- robots?: RobotsConfig$1;
972
- customMeta?: Array<MetaTag$1> | ((context: MetadataEvaluatorContext$1<F, Q>) => Array<MetaTag$1>);
1072
+ structuredData?: StructuredDataConfig<F, Q, V>;
1073
+ aiHints?: AIHintsConfig<F, Q, V>;
1074
+ robots?: RobotsConfig;
1075
+ customMeta?: Array<MetaTag> | ((context: MetadataEvaluatorContext<F, Q, V>) => Array<MetaTag>);
973
1076
  disableIndexing?: boolean;
974
1077
  /** Author meta tag */
975
1078
  author?: string;
@@ -978,270 +1081,13 @@ interface MetadataConfig$1<F extends FieldValues = FieldValues, Q extends Querie
978
1081
  /** Theme color for browser UI */
979
1082
  themeColor?: string;
980
1083
  }
981
- /**
982
- * Configuration for lazy loading and code splitting behavior
983
- * Enables deferred component loading to reduce initial bundle size
984
- */
985
- interface LazyLoadingConfig$1<F extends FieldValues = FieldValues, Q extends QueriesArray = QueriesArray> {
986
- /** Enable lazy loading (default: true) */
987
- enabled?: boolean;
988
- /** Preload on hover for interactive elements (default: false) */
989
- preloadOnHover?: boolean;
990
- /** Preload on focus for keyboard navigation (default: false) */
991
- preloadOnFocus?: boolean;
992
- /** Preload after render with delay (in ms, default: undefined - no delay) */
993
- preloadAfterRender?: number;
994
- /** Fallback component to show while loading (default: null) */
995
- suspenseFallback?: React.ReactNode;
996
- /** Custom error boundary component for lazy-loaded modules */
997
- errorBoundary?: React.ComponentType<{
998
- error: Error;
999
- retry: () => void;
1000
- }>;
1001
- /** Maximum time to wait before showing error state (in ms, default: 30000) */
1002
- timeout?: number;
1003
- /** Log performance metrics for lazy loading (development only) */
1004
- logMetrics?: boolean;
1005
- /** IntersectionObserver threshold (0-1, default: 0.1) - alias for intersectionThreshold */
1006
- threshold?: number | Array<number>;
1007
- /** IntersectionObserver threshold (0-1, default: 0.1) */
1008
- intersectionThreshold?: number | Array<number>;
1009
- /** IntersectionObserver root margin (default: "100px") - alias for intersectionRootMargin */
1010
- rootMargin?: string;
1011
- /** IntersectionObserver root margin (default: "100px") */
1012
- intersectionRootMargin?: string;
1013
- /** Trigger type for lazy loading: viewport (IntersectionObserver), interaction (manual), or conditional (based on function) */
1014
- trigger?: 'viewport' | 'interaction' | 'conditional';
1015
- /** Conditional function to determine if content should load (for trigger: "conditional") */
1016
- condition?: (context: MetadataEvaluatorContext$1<F, Q>) => boolean;
1017
- /** Placeholder component to show before lazy content loads */
1018
- placeholder?: React.ReactNode;
1019
- }
1020
-
1021
- interface DefaultContainerProps$1<F extends FieldValues = FieldValues, Q extends QueriesArray = QueriesArray, V extends Record<string, unknown> = Record<string, unknown>> {
1022
- children?: Array<React.JSX.Element>;
1023
- allContents: Array<ContentItem$1<F, Q, V> | FormManagerConfig<F> | Submit<F>>;
1024
- handleRefresh?: () => void;
1025
- viewSettings?: ViewSettings$1;
1026
- pageId?: string;
1027
- }
1028
- type PageAuthState$1 = {
1029
- id: string;
1030
- accountVerified?: boolean;
1031
- isLogged?: boolean;
1032
- token?: string;
1033
- phoneNumber?: string;
1034
- email?: string;
1035
- };
1036
- interface PageTranslationOptions$1 {
1037
- [key: string]: string | number | boolean | undefined;
1038
- ns?: string;
1039
- }
1040
- interface PageConfigProps$1 {
1041
- HeaderContainer: <F extends FieldValues = FieldValues, Q extends QueriesArray = QueriesArray, V extends Record<string, unknown> = Record<string, unknown>>(props: Omit<DefaultContainerProps$1<F, Q, V>, 'viewSettings'> & ViewSettings$1['header']) => React.ReactNode;
1042
- FooterContainer: <F extends FieldValues = FieldValues, Q extends QueriesArray = QueriesArray, V extends Record<string, unknown> = Record<string, unknown>>(props: Omit<DefaultContainerProps$1<F, Q, V>, 'viewSettings'> & ViewSettings$1['footer']) => React.ReactNode;
1043
- BodyContainer: <F extends FieldValues = FieldValues, Q extends QueriesArray = QueriesArray, V extends Record<string, unknown> = Record<string, unknown>>(props: DefaultContainerProps$1<F, Q, V>) => React.ReactNode;
1044
- authPageImage: string;
1045
- authPageProps: PageProps$1;
1046
- isLogged: (val: AuthState | null) => boolean;
1047
- ItemsContainer: (props: {
1048
- children: React.ReactNode;
1049
- }) => React.ReactNode;
1050
- LoaderComponent?: (props: {
1051
- loading?: boolean;
1052
- message?: string;
1053
- ns?: string;
1054
- }) => React.ReactNode;
1055
- PageContainer: (props: {
1056
- children: React.ReactNode;
1057
- id: string;
1058
- }) => React.ReactNode;
1059
- meta?: {
1060
- title?: string;
1061
- description?: string;
1062
- };
1063
- defaultMetadata: MetadataConfig$1;
1064
- setMetadata: (config: MetadataConfig$1) => void;
1065
- getMetadata: () => MetadataConfig$1;
1066
- resetMetadata: () => void;
1067
- lazyLoading: LazyLoadingConfig$1;
1068
- authValues?: PageAuthState$1 | null;
1069
- locale?: string;
1070
- translateText?: (key: string, options?: PageTranslationOptions$1) => string;
1071
- }
1072
1084
 
1073
- type StringKey$1<T> = Extract<keyof T, string>;
1074
- type VariableTopKey$1<V> = StringKey$1<V>;
1075
- type VariableValue$1<V, K extends VariableTopKey$1<V>> = V[K];
1076
- type QueryTopKey$1<Q extends QueriesArray> = StringKey$1<MultipleQueryResponse<Q>>;
1077
- type QuerySubKey$1<Q extends QueriesArray, K extends QueryTopKey$1<Q>> = StringKey$1<MultipleQueryResponse<Q>[K]>;
1078
- type QueryCompositeKey$1<Q extends QueriesArray> = {
1079
- [K in QueryTopKey$1<Q>]: K | `${K}.${QuerySubKey$1<Q, K>}`;
1080
- }[QueryTopKey$1<Q>];
1081
- type QueryValue$1<Q extends QueriesArray, K extends QueryCompositeKey$1<Q>> = K extends `${infer Top}.${infer Sub}` ? Top extends QueryTopKey$1<Q> ? Sub extends QuerySubKey$1<Q, Top> ? MultipleQueryResponse<Q>[Top][Sub] : never : never : K extends QueryTopKey$1<Q> ? MultipleQueryResponse<Q>[K] : never;
1082
- type MutationTopKey$1<Q extends QueriesArray> = StringKey$1<AllMutation<Q>>;
1083
- type MutationSubKey$1<Q extends QueriesArray, K extends MutationTopKey$1<Q>> = StringKey$1<AllMutation<Q>[K]>;
1084
- type MutationCompositeKey$1<Q extends QueriesArray> = {
1085
- [K in MutationTopKey$1<Q>]: K | `${K}.${MutationSubKey$1<Q, K>}`;
1086
- }[MutationTopKey$1<Q>];
1087
- type MutationValue$1<Q extends QueriesArray, K extends MutationCompositeKey$1<Q>> = K extends `${infer Top}.${infer Sub}` ? Top extends MutationTopKey$1<Q> ? Sub extends MutationSubKey$1<Q, Top> ? AllMutation<Q>[Top][Sub] : never : never : K extends MutationTopKey$1<Q> ? AllMutation<Q>[K] : never;
1088
- type GetFunction$1<F extends FieldValues, Q extends QueriesArray, V extends Record<string, unknown> = Record<string, unknown>> = {
1089
- <K extends QueryTopKey$1<Q>>(type: "query", key: K): MultipleQueryResponse<Q>[K];
1090
- <K extends QueryCompositeKey$1<Q>>(type: "query", key: K): QueryValue$1<Q, K>;
1091
- <K extends QueryCompositeKey$1<Q>>(type: "query", key: K, defaultValue: unknown): NonNullable<QueryValue$1<Q, K>>;
1092
- <K extends QueryTopKey$1<Q>>(type: "query", key: K, defaultValue: MultipleQueryResponse<Q>[K]["data"]): MultipleQueryResponse<Q>[K]["data"];
1093
- <K extends QueryCompositeKey$1<Q>>(type: "query", key: K, defaultValue: QueryValue$1<Q, K>): NonNullable<QueryValue$1<Q, K>>;
1094
- <K extends MutationTopKey$1<Q>>(type: "mutation", key: K): AllMutation<Q>[K];
1095
- <K extends MutationCompositeKey$1<Q>>(type: "mutation", key: K): MutationValue$1<Q, K>;
1096
- <K extends MutationCompositeKey$1<Q>>(type: "mutation", key: K, defaultValue: unknown): NonNullable<MutationValue$1<Q, K>>;
1097
- <K extends MutationTopKey$1<Q>>(type: "mutation", key: K, defaultValue: AllMutation<Q>[K]["data"]): AllMutation<Q>[K]["data"];
1098
- <K extends MutationCompositeKey$1<Q>>(type: "mutation", key: K, defaultValue: MutationValue$1<Q, K>): NonNullable<MutationValue$1<Q, K>>;
1099
- <K extends VariableTopKey$1<V>>(type: "state", key: K): VariableValue$1<V, K>;
1100
- <K extends VariableTopKey$1<V>>(type: "state", key: K, defaultValue: VariableValue$1<V, K>): NonNullable<VariableValue$1<V, K>>;
1101
- <TField extends DeepKeys<F>>(type: "form", key: TField): DeepValue<F, TField> | undefined;
1102
- <TField extends DeepKeys<F>>(type: "form", key: TField, defaultValue: DeepValue<F, TField>): NonNullable<DeepValue<F, TField>>;
1103
- };
1104
- type SetFunction$1<F extends FieldValues, V extends Record<string, unknown> = Record<string, unknown>> = {
1105
- (type: "form"): SetValueFunction<F>;
1106
- (type: "state"): <K extends VariableTopKey$1<V>>(key: K, value: VariableValue$1<V, K>) => void;
1107
- };
1108
- type FunctionProps$1<F extends FieldValues, Q extends QueriesArray, V extends Record<string, unknown> = Record<string, unknown>> = {
1109
- /**
1110
- * Read the current query/mutation value by key.
1111
- * Example: get('query', 'bookings')
1112
- */
1113
- get: GetFunction$1<F, Q, V>;
1114
- /**
1115
- * Generic setter accessor.
1116
- * - set('form') returns `setValue`
1117
- * - set('state') returns state setter
1118
- */
1119
- set: SetFunction$1<F, V>;
1120
- };
1121
- type MappedItemsFunction$1<F extends FieldValues, Q extends QueriesArray, ComponentType, V extends Record<string, unknown> = Record<string, unknown>> = (props: FunctionProps$1<F, Q, V>) => ComponentType;
1122
- /**
1123
- * Context passed to lifecycle callbacks
1124
- * Provides access to form, queries, mutations, and utilities
1125
- */
1126
- type LifecycleContext$1<F extends FieldValues = FieldValues, Q extends QueriesArray = QueriesArray, V extends Record<string, unknown> = Record<string, unknown>> = FunctionProps$1<F, Q, V> & {
1127
- ns?: string;
1128
- pageId?: string;
1129
- pageConfig?: PageProps$1<F, Q, V>;
1130
- };
1131
- type Items$1<F extends FieldValues, Q extends QueriesArray, V extends Record<string, unknown> = Record<string, unknown>> = {
1132
- type: "custom";
1133
- component: React.JSX.Element | ((props: FunctionProps$1<F, Q, V>) => React.JSX.Element);
1134
- index?: number;
1135
- usedBoxes?: number;
1136
- renderInFooter?: boolean;
1137
- renderInHeader?: boolean;
1138
- hidden?: boolean | MappedItemsFunction$1<F, Q, boolean, V>;
1139
- isDraggable?: boolean;
1140
- isInDraggableView?: boolean;
1141
- key?: string;
1142
- lazy?: boolean;
1143
- lazyTrigger?: "viewport" | "interaction" | "conditional";
1144
- lazyCondition?: MappedItemsFunction$1<F, Q, boolean, V>;
1145
- };
1146
- type ContainerItem$1<F extends FieldValues, Q extends QueriesArray, V extends Record<string, unknown> = Record<string, unknown>> = {
1147
- type: "container";
1148
- component?: PageConfigProps$1["ItemsContainer"];
1149
- items: ContentItemsType$1<F, Q, V>;
1150
- index?: number;
1151
- usedBoxes?: number;
1152
- renderInFooter?: boolean;
1153
- renderInHeader?: boolean;
1154
- hidden?: boolean | MappedItemsFunction$1<F, Q, boolean, V>;
1155
- isDraggable?: boolean;
1156
- isInDraggableView?: boolean;
1157
- key?: string;
1158
- lazy?: boolean;
1159
- lazyTrigger?: "viewport" | "interaction" | "conditional";
1160
- lazyCondition?: MappedItemsFunction$1<F, Q, boolean, V>;
1161
- };
1162
- type ContentItem$1<F extends FieldValues, Q extends QueriesArray, V extends Record<string, unknown> = Record<string, unknown>> = Items$1<F, Q, V> | ContainerItem$1<F, Q, V>;
1163
- type MappedContents$1<F extends FieldValues, Q extends QueriesArray, V extends Record<string, unknown> = Record<string, unknown>> = MappedItemsFunction$1<F, Q, Array<ContentItem$1<F, Q, V>>, V>;
1164
- type ContentItemsType$1<F extends FieldValues, Q extends QueriesArray = QueriesArray, V extends Record<string, unknown> = Record<string, unknown>> = Array<ContentItem$1<F, Q, V>> | MappedContents$1<F, Q, V>;
1165
- type FormPageProps$1<F extends FieldValues, Q extends QueriesArray, V extends Record<string, unknown> = Record<string, unknown>> = Omit<ComponentProps<typeof FormManager<F>>, "updateFormValues" | "submit" | "data"> & {
1166
- defaultValueQueryKey?: Array<string>;
1167
- defaultValueQueryMap?: (props: ExtractQuery<Q>["response"]) => F;
1168
- submit?: Array<Submit<F>> | MappedItemsFunction$1<F, Q, Array<Submit<F>>, V>;
1169
- index?: number;
1170
- data?: Array<FormManagerConfig<F> | MappedItemsFunction$1<F, Q, FormManagerConfig<F>, V>>;
1171
- debounceDelay?: number;
1172
- hidden?: boolean | MappedItemsFunction$1<F, Q, boolean, V>;
1173
- };
1174
- type SingleQueryConfig$1<F extends FieldValues, Q extends QueryDefinition<any, any, any, any, any>, V extends Record<string, unknown> = Record<string, unknown>> = Q extends QueryDefinition<infer K, infer T, infer P, infer R, infer C> ? T extends "mutation" ? {
1175
- type: "mutation";
1176
- mutationConfig: (<Qa extends QueriesArray>(props: FunctionProps$1<F, Qa, V>) => MutationConfig<P, R, C>) | MutationConfig<P, R, C>;
1177
- key: K;
1178
- } : {
1179
- type: "query";
1180
- queryConfig?: (<Qa extends QueriesArray>(props: FunctionProps$1<F, Qa, V>) => Omit<QueryProps<K, R>, "keyToMap">) | Omit<QueryProps<K, R>, "keyToMap">;
1181
- key: K;
1182
- } : never;
1183
- type QueryPageConfigArray$1<F extends FieldValues, Q extends QueriesArray, V extends Record<string, unknown> = Record<string, unknown>> = {
1184
- [I in keyof Q]: SingleQueryConfig$1<F, QueryAtIndex<Q, I>, V>;
1185
- };
1186
- interface PageProps$1<F extends FieldValues = FieldValues, Q extends QueriesArray = QueriesArray, V extends Record<string, unknown> = Record<string, unknown>> {
1187
- id: string;
1188
- ns?: string;
1189
- contents?: ContentItemsType$1<F, Q, V>;
1190
- queries?: QueryPageConfigArray$1<F, Q, V>;
1085
+ declare const usePageConfig: <F extends FieldValues, Q extends QueriesArray, V extends Record<string, unknown> = Record<string, unknown>>({ queries, form, ns, viewSettings, meta, variables, pageId, }: {
1086
+ queries: QueryPageConfigArray$1<F, Q, V>;
1191
1087
  form?: FormPageProps$1<F, Q, V>;
1192
- variables?: V;
1088
+ ns: string;
1193
1089
  viewSettings?: MappedItemsFunction$1<F, Q, ViewSettings$1, V> | ViewSettings$1;
1194
1090
  meta?: MetadataConfig$1<F, Q>;
1195
- lazyLoading?: LazyLoadingConfig$1;
1196
- platformOverrides?: PlatformOverrides$1<F, Q, V>;
1197
- lifecycleCallbacks?: {
1198
- onMountComplete?: (context: LifecycleContext$1<F, Q, V>) => void | Promise<void>;
1199
- onQuerySuccess?: (context: LifecycleContext$1<F, Q, V>, queryKey: string, data: unknown) => void | Promise<void>;
1200
- onQueryError?: (context: LifecycleContext$1<F, Q, V>, queryKey: string, error: Error) => void | Promise<void>;
1201
- onFormSubmit?: (context: LifecycleContext$1<F, Q, V>, result: unknown) => void | Promise<void>;
1202
- onValuesChange?: MappedItemsFunction$1<F, Q, void, V>;
1203
- };
1204
- enableAuthControl?: boolean;
1205
- }
1206
- /**
1207
- * Platform-specific configuration overrides (proper type with PageProps reference)
1208
- * Allows different behavior on web vs React Native
1209
- */
1210
- type PlatformOverrides$1<F extends FieldValues = FieldValues, Q extends QueriesArray = QueriesArray, V extends Record<string, unknown> = Record<string, unknown>> = {
1211
- /** Web-specific overrides (React DOM) */
1212
- web?: Partial<PageProps$1<F, Q, V>>;
1213
- /** React Native-specific overrides */
1214
- native?: Partial<PageProps$1<F, Q, V>>;
1215
- };
1216
- type ViewSettings$1 = {
1217
- withoutPadding?: boolean;
1218
- header?: {
1219
- withoutPadding?: boolean;
1220
- };
1221
- footer?: {
1222
- withoutPadding?: boolean;
1223
- };
1224
- disableRefreshing?: boolean;
1225
- layoutComponent?: <F extends FieldValues = FieldValues, Q extends QueriesArray = QueriesArray, V extends Record<string, unknown> = Record<string, unknown>>(props: DefaultContainerProps$1<F, Q, V> & Record<string, unknown>) => React.ReactNode;
1226
- layoutProps?: Record<string, unknown>;
1227
- pageContainerComponent?: React.ComponentType<{
1228
- children: React.ReactNode;
1229
- id: string;
1230
- } & Record<string, unknown>>;
1231
- pageContainerProps?: Record<string, unknown>;
1232
- /** @deprecated Use layoutComponent instead */
1233
- customLayoutComponent?: PageConfigProps$1["BodyContainer"];
1234
- /** @deprecated Use pageContainerComponent instead */
1235
- customPageContainer?: PageConfigProps$1["PageContainer"];
1236
- };
1237
-
1238
- declare const usePageConfig: <F extends FieldValues, Q extends QueriesArray, V extends Record<string, unknown> = Record<string, unknown>>({ queries, form, ns, viewSettings, meta, lazyLoading, variables, pageId, }: {
1239
- queries: QueryPageConfigArray<F, Q, V>;
1240
- form?: FormPageProps<F, Q, V>;
1241
- ns: string;
1242
- viewSettings?: MappedItemsFunction<F, Q, ViewSettings, V> | ViewSettings;
1243
- meta?: MetadataConfig<F, Q>;
1244
- lazyLoading?: LazyLoadingConfig;
1245
1091
  variables?: V;
1246
1092
  pageId: string;
1247
1093
  }) => {
@@ -1252,28 +1098,27 @@ declare const usePageConfig: <F extends FieldValues, Q extends QueriesArray, V e
1252
1098
  formValues: F;
1253
1099
  setValue: _gaddario98_react_form.SetValueFunction<F>;
1254
1100
  };
1255
- form: FormPageProps<F, Q, V> | undefined;
1256
- mappedViewSettings: ViewSettings;
1257
- meta: MetadataConfig<F, Q> | undefined;
1258
- lazyLoading: LazyLoadingConfig<FieldValues, QueriesArray> | undefined;
1259
- globalConfig: PageConfigProps$1;
1101
+ form: FormPageProps$1<F, Q, V> | undefined;
1102
+ mappedViewSettings: ViewSettings$1;
1103
+ meta: MetadataConfig$1<F, Q, Record<string, unknown>> | undefined;
1104
+ globalConfig: PageConfigProps;
1260
1105
  };
1261
1106
 
1262
1107
  interface GenerateContentProps<F extends FieldValues, Q extends QueriesArray, V extends Record<string, unknown> = Record<string, unknown>> {
1263
1108
  pageId: string;
1264
1109
  ns?: string;
1265
- contents: ContentItemsType<F, Q, V>;
1110
+ contents: ContentItemsType$1<F, Q, V>;
1266
1111
  pageConfig: ReturnType<typeof usePageConfig<F, Q, V>>;
1267
1112
  }
1268
1113
  declare const useGenerateContent: <F extends FieldValues, Q extends QueriesArray, V extends Record<string, unknown> = Record<string, unknown>>({ pageId, ns, contents, pageConfig, }: GenerateContentProps<F, Q, V>) => {
1269
1114
  header: react_jsx_runtime.JSX.Element[];
1270
1115
  body: react_jsx_runtime.JSX.Element[];
1271
1116
  footer: react_jsx_runtime.JSX.Element[];
1272
- allContents: (ContentItem$1<F, Q, V> | _gaddario98_react_form.Submit<F, _gaddario98_react_form.SubmitKeysArg<F>> | _gaddario98_react_form.FormManagerConfig<F>)[];
1117
+ allContents: (ContentItem<F, Q, V> | _gaddario98_react_form.Submit<F, _gaddario98_react_form.SubmitKeysArg<F>> | _gaddario98_react_form.FormManagerConfig<F>)[];
1273
1118
  };
1274
1119
 
1275
1120
  interface GenerateContentRenderProps<F extends FieldValues, Q extends QueriesArray, V extends Record<string, unknown> = Record<string, unknown>> {
1276
- contents?: ContentItemsType<F, Q, V>;
1121
+ contents?: ContentItemsType$1<F, Q, V>;
1277
1122
  ns?: string;
1278
1123
  pageId: string;
1279
1124
  formData: {
@@ -1299,7 +1144,7 @@ declare const useGenerateContentRender: <F extends FieldValues, Q extends Querie
1299
1144
  renderInHeader: boolean;
1300
1145
  key: string;
1301
1146
  }[];
1302
- allContents: (ContentItem<F, Q, V> | Submit<F, SubmitKeysArg<F>> | FormManagerConfig<F>)[];
1147
+ allContents: (ContentItem$1<F, Q, V> | Submit<F, SubmitKeysArg<F>> | FormManagerConfig<F>)[];
1303
1148
  };
1304
1149
 
1305
1150
  /**
@@ -1313,9 +1158,9 @@ declare const useGenerateContentRender: <F extends FieldValues, Q extends Querie
1313
1158
  * @returns Processed view settings
1314
1159
  */
1315
1160
  declare function useViewSettings<F extends FieldValues, Q extends QueriesArray, V extends Record<string, unknown> = Record<string, unknown>>({ viewSettings, pageId, }: {
1316
- viewSettings?: MappedItemsFunction<F, Q, ViewSettings, V> | ViewSettings;
1161
+ viewSettings?: MappedItemsFunction$1<F, Q, ViewSettings$1, V> | ViewSettings$1;
1317
1162
  pageId: string;
1318
- }): ViewSettings;
1163
+ }): ViewSettings$1;
1319
1164
 
1320
1165
  /**
1321
1166
  * Specialized hook for managing form data processing
@@ -1329,7 +1174,7 @@ declare function useViewSettings<F extends FieldValues, Q extends QueriesArray,
1329
1174
  * @returns Processed form data and submit handlers
1330
1175
  */
1331
1176
  declare function useFormData<F extends FieldValues, Q extends QueriesArray, V extends Record<string, unknown> = Record<string, unknown>>({ form, pageId }: {
1332
- form?: FormPageProps<F, Q, V>;
1177
+ form?: FormPageProps$1<F, Q, V>;
1333
1178
  pageId: string;
1334
1179
  }): {
1335
1180
  mappedFormData: FormManagerConfig<F>[];
@@ -1348,9 +1193,9 @@ declare function useFormData<F extends FieldValues, Q extends QueriesArray, V ex
1348
1193
  /**
1349
1194
  * Props for useMetadata hook
1350
1195
  */
1351
- interface UseMetadataProps<F extends FieldValues = FieldValues, Q extends QueriesArray = QueriesArray> {
1196
+ interface UseMetadataProps<F extends FieldValues = FieldValues, Q extends QueriesArray = QueriesArray, V extends Record<string, unknown> = Record<string, unknown>> {
1352
1197
  /** Base metadata configuration (static or dynamic function) */
1353
- meta?: MetadataConfig<F, Q> | MappedItemsFunction<F, Q, MetadataConfig>;
1198
+ meta?: MetadataConfig$1<F, Q, V> | MappedItemsFunction$1<F, Q, MetadataConfig$1<F, Q, V>, V>;
1354
1199
  /** Namespace for i18n translations */
1355
1200
  ns?: string;
1356
1201
  /** Whether to automatically apply metadata (default: true) */
@@ -1368,7 +1213,7 @@ interface UseMetadataProps<F extends FieldValues = FieldValues, Q extends Querie
1368
1213
  *
1369
1214
  * @returns Resolved and translated metadata
1370
1215
  */
1371
- declare function useMetadata<F extends FieldValues = FieldValues, Q extends QueriesArray = QueriesArray>({ meta, autoApply, pageId }: UseMetadataProps<F, Q>): ResolvedMetadata;
1216
+ declare function useMetadata<F extends FieldValues = FieldValues, Q extends QueriesArray = QueriesArray, V extends Record<string, unknown> = Record<string, unknown>>({ meta, autoApply, pageId, }: UseMetadataProps<F, Q, V>): ResolvedMetadata;
1372
1217
  /**
1373
1218
  * Hook to manually apply metadata (when autoApply is false)
1374
1219
  * @returns Function to apply resolved metadata to the DOM
@@ -1376,8 +1221,8 @@ declare function useMetadata<F extends FieldValues = FieldValues, Q extends Quer
1376
1221
  declare function useApplyMetadata(): (meta: ResolvedMetadata) => void;
1377
1222
 
1378
1223
  declare const usePageUtiles: () => {
1379
- getContentProps: <F extends FieldValues = FieldValues, Q extends QueriesArray = QueriesArray>(props: ContentItem<F, Q>) => ContentItem<F, Q>;
1380
- getContentItems: <F extends FieldValues = FieldValues, Q extends QueriesArray = QueriesArray>(props: Array<ContentItem<F, Q>>) => ContentItem<F, Q>[];
1224
+ getContentProps: <F extends FieldValues = FieldValues, Q extends QueriesArray = QueriesArray>(props: ContentItem$1<F, Q>) => ContentItem$1<F, Q>;
1225
+ getContentItems: <F extends FieldValues = FieldValues, Q extends QueriesArray = QueriesArray>(props: Array<ContentItem$1<F, Q>>) => ContentItem$1<F, Q>[];
1381
1226
  };
1382
1227
 
1383
1228
  /**
@@ -1485,8 +1330,8 @@ interface NextMetadata {
1485
1330
  follow?: boolean;
1486
1331
  noarchive?: boolean;
1487
1332
  nosnippet?: boolean;
1488
- 'max-image-preview'?: 'none' | 'standard' | 'large';
1489
- 'max-snippet'?: number;
1333
+ "max-image-preview"?: "none" | "standard" | "large";
1334
+ "max-snippet"?: number;
1490
1335
  };
1491
1336
  alternates?: {
1492
1337
  canonical?: string;
@@ -1515,7 +1360,7 @@ interface NextMetadata {
1515
1360
  tags?: Array<string>;
1516
1361
  };
1517
1362
  twitter?: {
1518
- card?: 'summary' | 'summary_large_image' | 'app' | 'player';
1363
+ card?: "summary" | "summary_large_image" | "app" | "player";
1519
1364
  site?: string;
1520
1365
  creator?: string;
1521
1366
  title?: string;
@@ -1832,4 +1677,4 @@ declare function pageToMarkdown(options: {
1832
1677
  }): string;
1833
1678
 
1834
1679
  export { MemoizationCache, MetadataStoreProvider, PageGenerator, RenderComponents, applyMetadataToDom, buildArticleJsonLd, buildBreadcrumbListJsonLd, buildFAQPageJsonLd, buildOrganizationJsonLd, buildProductJsonLd, buildWebSiteJsonLd, clearMetadataLog, collectMetadataToHtml, createMetadataStore, createScopePageVariablesAtom, deepEqual, generateLlmsFullTxt, generateLlmsTxt, generateRobotsTxt, generateSitemapEntries, generateSitemapXml, getMetadata, getMetadataLog, getPageConfig, getPageVariablesCompositeKey, isStableValue, logMetadata, memoPropsComparator, memoize, optimizeDeps, pageConfigAtom, pageToMarkdown, pageVariablesAtom, pageVariablesAtomFamily, resetMetadata, resolveMetadata, setMetadata, setMetadataLogging, shallowEqual, toNextHeadTags, toNextMetadata, useApplyMetadata, useFormData, useGenerateContent, useGenerateContentRender, useMetadata, useMetadataStore, usePageConfig, usePageConfigReset, usePageConfigState, usePageConfigValue, usePageUtiles, useViewSettings };
1835
- export type { AIHintsConfig, AlternatesConfig, ArticleJsonLdInput, BreadcrumbItem, ContainerItem, ContentItem, ContentItemsType, ContentProps, DefaultContainerProps, DependencyGraph, DependencyNode, Elements, FAQItem, FormPageProps, FunctionProps, GenerateContentProps, GenerateContentRenderProps, GetFunction, HeadTag, IconConfig, IconsConfig, ItemContainerProps, Items, LazyLoadingConfig, LlmsTxtConfig, LlmsTxtEntry, MappedContents, MappedItemsFunction, MemoizationCacheStats, MetaTag, MetadataConfig, MetadataProvider, MetadataStore, NextMetadata, OpenGraphArticle, OpenGraphConfig, OpenGraphImage, OrganizationJsonLdInput, PageAuthState, PageConfigProps, MetadataConfig as PageMetadataProps, PageProps, PageTranslationOptions, PlatformOverrides, ProductJsonLdInput, Props, QueryPageConfigArray, RenderComponentsProps, ResolvedMetadata, RobotsConfig, RobotsTxtConfig, SetFunction, SitemapEntry, StructuredDataConfig, TwitterCardConfig, UseMetadataProps, ViewSettings, WebSiteJsonLdInput };
1680
+ export type { AIHintsConfig$1 as AIHintsConfig, AlternatesConfig$1 as AlternatesConfig, ArticleJsonLdInput, BreadcrumbItem, ContainerItem$1 as ContainerItem, ContentItem$1 as ContentItem, ContentItemsType$1 as ContentItemsType, ContentProps, DefaultContainerProps$1 as DefaultContainerProps, DependencyGraph, DependencyNode, Elements, FAQItem, FormPageProps$1 as FormPageProps, FunctionProps$1 as FunctionProps, GenerateContentProps, GenerateContentRenderProps, GetFunction$1 as GetFunction, HeadTag, IconConfig$1 as IconConfig, IconsConfig$1 as IconsConfig, ItemContainerProps, Items$1 as Items, LlmsTxtConfig, LlmsTxtEntry, MappedContents$1 as MappedContents, MappedItemsFunction$1 as MappedItemsFunction, MemoizationCacheStats, MetaTag$1 as MetaTag, MetadataConfig$1 as MetadataConfig, MetadataEvaluatorContext$1 as MetadataEvaluatorContext, MetadataProvider, MetadataStore, NextMetadata, OpenGraphArticle$1 as OpenGraphArticle, OpenGraphConfig$1 as OpenGraphConfig, OpenGraphImage$1 as OpenGraphImage, OrganizationJsonLdInput, PageAuthState$1 as PageAuthState, PageConfigProps$1 as PageConfigProps, MetadataConfig$1 as PageMetadataProps, PageProps$1 as PageProps, PageTranslationOptions$1 as PageTranslationOptions, ProductJsonLdInput, Props, QueryPageConfigArray$1 as QueryPageConfigArray, RenderComponentsProps, ResolvedMetadata, RobotsConfig$1 as RobotsConfig, RobotsTxtConfig, SetFunction$1 as SetFunction, SitemapEntry, StructuredDataConfig$1 as StructuredDataConfig, TwitterCardConfig$1 as TwitterCardConfig, UseMetadataProps, ViewSettings$1 as ViewSettings, WebSiteJsonLdInput };