@weaverse/next 0.1.0-alpha.7 → 0.1.0-alpha.9

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.
@@ -1,7 +1,42 @@
1
- import { PageType, SchemaType, PageSEOData } from '@weaverse/schema';
1
+ import { PageType, PageSEOData, SchemaType } from '@weaverse/schema';
2
2
  import { WeaverseElement, WeaverseResourcePickerData } from '@weaverse/react';
3
3
  import { ReactNode, ComponentType, ForwardRefExoticComponent } from 'react';
4
4
 
5
+ /**
6
+ * Minimal mutable store for design-mode static text overrides.
7
+ *
8
+ * `useSyncExternalStore`-compatible. Passed into {@link TranslationProvider}
9
+ * (from `./translation-context`) which subscribes internally and layers
10
+ * overrides on top of `merchantOverrides`/`staticContent`. The Studio bridge
11
+ * calls `updateOverrides()` via `runtime.internal.translationStore` (also
12
+ * exposed as the deprecated `runtime.internal.themeTextStore` alias) so live
13
+ * static-text edits reach the runtime — identical surface to Hydrogen's store,
14
+ * so Builder's existing static-text RPC works with `@weaverse/next` unchanged.
15
+ *
16
+ * Shape: flat `Record<string, string>` — dot-notation keys map to values
17
+ * (e.g. "cart.title" → "Shopping Cart").
18
+ */
19
+ declare class TranslationStore {
20
+ overrides: Record<string, string>;
21
+ private readonly listeners;
22
+ setOverrides: (overrides: Record<string, string>) => void;
23
+ updateOverrides: (newOverrides: Record<string, string>) => void;
24
+ getSnapshot: () => Record<string, string>;
25
+ getServerSnapshot: () => Record<string, string>;
26
+ subscribe: (callback: () => void) => () => void;
27
+ private readonly emit;
28
+ }
29
+ /**
30
+ * @deprecated Use {@link TranslationStore} instead. Kept as a backward-compatible
31
+ * alias and will remain exported for existing integrations.
32
+ */
33
+ declare const ThemeTextStore: typeof TranslationStore;
34
+ /**
35
+ * @deprecated Use {@link TranslationStore} instead. Kept as a backward-compatible
36
+ * alias and will remain exported for existing integrations.
37
+ */
38
+ type ThemeTextStore = TranslationStore;
39
+
5
40
  interface WeaverseNextRequestInfo {
6
41
  i18n?: WeaverseNextI18n;
7
42
  pathname: string;
@@ -39,6 +74,8 @@ interface WeaverseNextPageAssignment {
39
74
  type: PageType | string;
40
75
  }
41
76
  interface WeaverseNextRuntimeInternal {
77
+ /** Active-locale static-text overrides fetched from the API (nested). */
78
+ merchantOverrides?: Record<string, unknown>;
42
79
  navigate?: (to: string, options?: {
43
80
  preventScrollReset?: boolean;
44
81
  } | Record<string, unknown>) => void;
@@ -52,14 +89,59 @@ interface WeaverseNextRuntimeInternal {
52
89
  */
53
90
  revalidateItem?: (draftItem: WeaverseNextComponentData) => Promise<void>;
54
91
  themeSettingsStore?: WeaverseNextThemeSettingsStore;
92
+ /**
93
+ * @deprecated Use {@link WeaverseNextRuntimeInternal.translationStore}
94
+ * instead. Same instance, kept so Builder's existing `updateStaticText()`
95
+ * RPC (which reads `internal.themeTextStore`) works with Next unchanged.
96
+ */
97
+ themeTextStore?: TranslationStore;
98
+ /**
99
+ * Live design-mode static-text override store. Builder's `updateStaticText()`
100
+ * RPC mutates it via `updateOverrides()`; the `TranslationProvider` observing
101
+ * the same instance re-renders `useTranslation()` consumers.
102
+ */
103
+ translationStore?: TranslationStore;
55
104
  }
56
105
  interface WeaverseNextRuntimeConfig {
57
106
  client?: WeaverseNextClient;
58
107
  data: WeaverseNextLoaderData;
59
108
  dataContext?: Record<string, unknown>;
109
+ /** Active-locale static-text overrides threaded onto `internal`. */
110
+ merchantOverrides?: Record<string, unknown>;
60
111
  navigate?: WeaverseNextRuntimeInternal['navigate'];
61
112
  revalidate?: WeaverseNextRuntimeInternal['revalidate'];
62
113
  themeSettingsStore?: WeaverseNextThemeSettingsStore;
114
+ /** Root/route-owned translation store to attach to `internal`. */
115
+ translationStore?: TranslationStore;
116
+ }
117
+ /** A single translated field for one item. */
118
+ interface WeaverseNextTranslationMapEntry {
119
+ originalValue: string;
120
+ translatedValue: string;
121
+ }
122
+ /** Per-item translation fields, keyed by field name. */
123
+ interface WeaverseNextTranslationItemEntry {
124
+ [key: string]: WeaverseNextTranslationMapEntry;
125
+ }
126
+ /**
127
+ * Translation map sent from Builder alongside page data in design mode.
128
+ * Keyed by item ID, each value maps field names to translation entries.
129
+ */
130
+ interface WeaverseNextTranslationMap {
131
+ [itemId: string]: WeaverseNextTranslationItemEntry;
132
+ }
133
+ /** A single translation entry for save payloads. */
134
+ interface WeaverseNextTranslationEntry {
135
+ deleted?: boolean;
136
+ itemId: string;
137
+ key: string;
138
+ originalValue: string;
139
+ translatedValue: string;
140
+ }
141
+ /** Result of collecting translation changes for the save flow. */
142
+ interface WeaverseNextTranslationChanges {
143
+ entries: WeaverseNextTranslationEntry[];
144
+ languageId: string;
63
145
  }
64
146
  /**
65
147
  * Locale/market info passed through to component loaders and the Storefront
@@ -392,4 +474,4 @@ declare function getWeaverseNextSeoMetadata(data: WeaverseNextLoaderData | Weave
392
474
  page?: WeaverseNextPageData | null;
393
475
  } | null | undefined): WeaverseNextSeoMetadata;
394
476
 
395
- export { type WeaverseNextSeoMetadata as A, type WeaverseNextServerClient as B, type WeaverseNextServerClientConfig as C, type WeaverseNextServerLoadPageInput as D, type WeaverseNextStorefront as E, type WeaverseNextThemeSettingsOptions as F, type WeaverseNextThemeSettingsResponse as G, type WeaverseNextThemeSettingsStore as H, type WeaverseProduct as I, formatWeaverseNextSeoMetadata as J, getWeaverseNextSeoMetadata as K, type WeaverseArticle as W, type WeaverseBlog as a, type WeaverseCollection as b, type WeaverseMetaObject as c, type WeaverseNextBaseConfigs as d, type WeaverseNextCacheConfig as e, type WeaverseNextClient as f, type WeaverseNextClientConfig as g, type WeaverseNextCommerceContext as h, type WeaverseNextComponent as i, type WeaverseNextComponentData as j, type WeaverseNextComponentLoaderArgs as k, type WeaverseNextComponentProps as l, type WeaverseNextConfigs as m, type WeaverseNextCustomPageEntry as n, type WeaverseNextFetchCustomPagesOptions as o, type WeaverseNextFetchOptions as p, type WeaverseNextI18n as q, type WeaverseNextLoadPageInput as r, type WeaverseNextLoaderData as s, type WeaverseNextPageAssignment as t, type WeaverseNextPageData as u, type WeaverseNextProjectId as v, type WeaverseNextRequestContext as w, type WeaverseNextRequestInfo as x, type WeaverseNextRuntimeConfig as y, type WeaverseNextRuntimeInternal as z };
477
+ export { type WeaverseNextRuntimeInternal as A, type WeaverseNextSeoMetadata as B, type WeaverseNextServerClient as C, type WeaverseNextServerClientConfig as D, type WeaverseNextServerLoadPageInput as E, type WeaverseNextStorefront as F, type WeaverseNextThemeSettingsOptions as G, type WeaverseNextThemeSettingsResponse as H, type WeaverseNextThemeSettingsStore as I, type WeaverseNextTranslationChanges as J, type WeaverseNextTranslationEntry as K, type WeaverseNextTranslationItemEntry as L, type WeaverseNextTranslationMap as M, type WeaverseNextTranslationMapEntry as N, type WeaverseProduct as O, formatWeaverseNextSeoMetadata as P, getWeaverseNextSeoMetadata as Q, ThemeTextStore as T, type WeaverseArticle as W, TranslationStore as a, type WeaverseBlog as b, type WeaverseCollection as c, type WeaverseMetaObject as d, type WeaverseNextBaseConfigs as e, type WeaverseNextCacheConfig as f, type WeaverseNextClient as g, type WeaverseNextClientConfig as h, type WeaverseNextCommerceContext as i, type WeaverseNextComponent as j, type WeaverseNextComponentData as k, type WeaverseNextComponentLoaderArgs as l, type WeaverseNextComponentProps as m, type WeaverseNextConfigs as n, type WeaverseNextCustomPageEntry as o, type WeaverseNextFetchCustomPagesOptions as p, type WeaverseNextFetchOptions as q, type WeaverseNextI18n as r, type WeaverseNextLoadPageInput as s, type WeaverseNextLoaderData as t, type WeaverseNextPageAssignment as u, type WeaverseNextPageData as v, type WeaverseNextProjectId as w, type WeaverseNextRequestContext as x, type WeaverseNextRequestInfo as y, type WeaverseNextRuntimeConfig as z };
package/dist/server.d.mts CHANGED
@@ -1,5 +1,5 @@
1
- import { w as WeaverseNextRequestContext, d as WeaverseNextBaseConfigs, B as WeaverseNextServerClient, j as WeaverseNextComponentData, C as WeaverseNextServerClientConfig } from './seo-B9yNko4W.mjs';
2
- export { e as WeaverseNextCacheConfig, m as WeaverseNextConfigs, n as WeaverseNextCustomPageEntry, o as WeaverseNextFetchCustomPagesOptions, p as WeaverseNextFetchOptions, v as WeaverseNextProjectId, A as WeaverseNextSeoMetadata, D as WeaverseNextServerLoadPageInput, F as WeaverseNextThemeSettingsOptions, G as WeaverseNextThemeSettingsResponse, J as formatWeaverseNextSeoMetadata, K as getWeaverseNextSeoMetadata } from './seo-B9yNko4W.mjs';
1
+ import { x as WeaverseNextRequestContext, e as WeaverseNextBaseConfigs, C as WeaverseNextServerClient, k as WeaverseNextComponentData, D as WeaverseNextServerClientConfig } from './seo-Dos9t22_.mjs';
2
+ export { f as WeaverseNextCacheConfig, n as WeaverseNextConfigs, o as WeaverseNextCustomPageEntry, p as WeaverseNextFetchCustomPagesOptions, q as WeaverseNextFetchOptions, w as WeaverseNextProjectId, B as WeaverseNextSeoMetadata, E as WeaverseNextServerLoadPageInput, G as WeaverseNextThemeSettingsOptions, H as WeaverseNextThemeSettingsResponse, P as formatWeaverseNextSeoMetadata, Q as getWeaverseNextSeoMetadata } from './seo-Dos9t22_.mjs';
3
3
  import '@weaverse/schema';
4
4
  import '@weaverse/react';
5
5
  import 'react';
package/dist/server.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- import { w as WeaverseNextRequestContext, d as WeaverseNextBaseConfigs, B as WeaverseNextServerClient, j as WeaverseNextComponentData, C as WeaverseNextServerClientConfig } from './seo-B9yNko4W.js';
2
- export { e as WeaverseNextCacheConfig, m as WeaverseNextConfigs, n as WeaverseNextCustomPageEntry, o as WeaverseNextFetchCustomPagesOptions, p as WeaverseNextFetchOptions, v as WeaverseNextProjectId, A as WeaverseNextSeoMetadata, D as WeaverseNextServerLoadPageInput, F as WeaverseNextThemeSettingsOptions, G as WeaverseNextThemeSettingsResponse, J as formatWeaverseNextSeoMetadata, K as getWeaverseNextSeoMetadata } from './seo-B9yNko4W.js';
1
+ import { x as WeaverseNextRequestContext, e as WeaverseNextBaseConfigs, C as WeaverseNextServerClient, k as WeaverseNextComponentData, D as WeaverseNextServerClientConfig } from './seo-Dos9t22_.js';
2
+ export { f as WeaverseNextCacheConfig, n as WeaverseNextConfigs, o as WeaverseNextCustomPageEntry, p as WeaverseNextFetchCustomPagesOptions, q as WeaverseNextFetchOptions, w as WeaverseNextProjectId, B as WeaverseNextSeoMetadata, E as WeaverseNextServerLoadPageInput, G as WeaverseNextThemeSettingsOptions, H as WeaverseNextThemeSettingsResponse, P as formatWeaverseNextSeoMetadata, Q as getWeaverseNextSeoMetadata } from './seo-Dos9t22_.js';
3
3
  import '@weaverse/schema';
4
4
  import '@weaverse/react';
5
5
  import 'react';
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@weaverse/next",
3
3
  "author": "Weaverse Team",
4
4
  "description": "Next.js App Router integration for building Weaverse-powered storefronts",
5
- "version": "0.1.0-alpha.7",
5
+ "version": "0.1.0-alpha.9",
6
6
  "license": "MIT",
7
7
  "main": "dist/index.js",
8
8
  "typings": "dist/index.d.ts",