@shoppexio/builder-runtime 0.1.0 → 0.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (53) hide show
  1. package/dist/css-vars.d.ts.map +1 -1
  2. package/dist/css-vars.js +24 -6
  3. package/dist/index.d.ts +4 -0
  4. package/dist/index.d.ts.map +1 -1
  5. package/dist/index.js +4 -0
  6. package/dist/layout.d.ts +5 -1
  7. package/dist/layout.d.ts.map +1 -1
  8. package/dist/layout.js +2 -0
  9. package/dist/preview-fixtures.d.ts +16 -0
  10. package/dist/preview-fixtures.d.ts.map +1 -0
  11. package/dist/preview-fixtures.js +40 -0
  12. package/dist/product-page.d.ts +13 -0
  13. package/dist/product-page.d.ts.map +1 -0
  14. package/dist/product-page.js +18 -0
  15. package/dist/react.d.ts +36 -224
  16. package/dist/react.d.ts.map +1 -1
  17. package/dist/react.js +606 -47
  18. package/dist/search-bar-settings.d.ts +33 -0
  19. package/dist/search-bar-settings.d.ts.map +1 -0
  20. package/dist/search-bar-settings.js +99 -0
  21. package/dist/standard-product-blocks.d.ts +48 -0
  22. package/dist/standard-product-blocks.d.ts.map +1 -0
  23. package/dist/standard-product-blocks.js +45 -0
  24. package/dist/standard-product-page.d.ts +69 -0
  25. package/dist/standard-product-page.d.ts.map +1 -0
  26. package/dist/standard-product-page.js +89 -0
  27. package/dist/storefront-google-fonts.d.ts +2 -0
  28. package/dist/storefront-google-fonts.d.ts.map +1 -0
  29. package/dist/storefront-google-fonts.js +28 -0
  30. package/package.json +3 -3
  31. package/src/builder-runtime.test.ts +57 -0
  32. package/src/css-vars.ts +29 -8
  33. package/src/index.ts +4 -0
  34. package/src/layout.ts +14 -1
  35. package/src/preview-fixtures.ts +56 -0
  36. package/src/product-page.test.ts +37 -0
  37. package/src/product-page.ts +32 -0
  38. package/src/react-runtime.test.tsx +215 -3
  39. package/src/react.tsx +769 -45
  40. package/src/search-bar-settings.test.ts +72 -0
  41. package/src/search-bar-settings.ts +176 -0
  42. package/src/standard-product-blocks.test.tsx +93 -0
  43. package/src/standard-product-blocks.tsx +121 -0
  44. package/src/standard-product-page.test.ts +171 -0
  45. package/src/standard-product-page.ts +169 -0
  46. package/src/storefront-google-fonts.test.ts +31 -0
  47. package/src/storefront-google-fonts.ts +43 -0
  48. package/dist/builder-runtime.test.d.ts +0 -2
  49. package/dist/builder-runtime.test.d.ts.map +0 -1
  50. package/dist/builder-runtime.test.js +0 -115
  51. package/dist/react-runtime.test.d.ts +0 -2
  52. package/dist/react-runtime.test.d.ts.map +0 -1
  53. package/dist/react-runtime.test.js +0 -292
@@ -1 +1 @@
1
- {"version":3,"file":"css-vars.d.ts","sourceRoot":"","sources":["../src/css-vars.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAc,WAAW,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAsCvG,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM,CAEnE;AAED,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAarF;AAED,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,eAAe,EAAE,QAAQ,SAAU,GAAG,MAAM,CAEtF;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,UAAU,EAAE,QAAQ,SAAU,GAAG,MAAM,CAoDjF"}
1
+ {"version":3,"file":"css-vars.d.ts","sourceRoot":"","sources":["../src/css-vars.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAA+B,WAAW,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAsCxH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM,CAEnE;AAED,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAarF;AAED,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,eAAe,EAAE,QAAQ,SAAU,GAAG,MAAM,CAEtF;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,UAAU,EAAE,QAAQ,SAAU,GAAG,MAAM,CAoDjF"}
package/dist/css-vars.js CHANGED
@@ -33,16 +33,16 @@ const STYLE_SLOT_CSS_VARIABLES = {
33
33
  'typography.body.size': { name: '--builder-typography-body-size', unit: 'px' },
34
34
  };
35
35
  export function getStyleSlotCssVariable(slotId) {
36
- return STYLE_SLOT_CSS_VARIABLES[slotId].name;
36
+ return getStyleSlotCssVariableConfig(slotId).name;
37
37
  }
38
38
  export function createStyleSlotCssVariables(slots) {
39
39
  const variables = {};
40
- for (const slotId of CORE_STYLE_SLOT_IDS) {
40
+ for (const slotId of getRenderableStyleSlotIds(slots)) {
41
41
  const value = slots[slotId];
42
42
  if (value === undefined || isResponsiveRecord(value)) {
43
43
  continue;
44
44
  }
45
- variables[STYLE_SLOT_CSS_VARIABLES[slotId].name] = formatStyleSlotValue(slotId, value);
45
+ variables[getStyleSlotCssVariable(slotId)] = formatStyleSlotValue(slotId, value);
46
46
  }
47
47
  return variables;
48
48
  }
@@ -57,12 +57,12 @@ export function createStyleSlotsCss(slots, selector = ':root') {
57
57
  lg: [],
58
58
  xl: [],
59
59
  };
60
- for (const slotId of CORE_STYLE_SLOT_IDS) {
60
+ for (const slotId of getRenderableStyleSlotIds(slots)) {
61
61
  const value = slots[slotId];
62
62
  if (value === undefined) {
63
63
  continue;
64
64
  }
65
- const cssVariable = STYLE_SLOT_CSS_VARIABLES[slotId].name;
65
+ const cssVariable = getStyleSlotCssVariable(slotId);
66
66
  if (!isResponsiveRecord(value)) {
67
67
  baseDeclarations.push(`${cssVariable}: ${formatStyleSlotValue(slotId, value)};`);
68
68
  continue;
@@ -89,9 +89,27 @@ export function createStyleSlotsCss(slots, selector = ':root') {
89
89
  return chunks.join('\n\n');
90
90
  }
91
91
  function formatStyleSlotValue(slotId, value) {
92
- const unit = STYLE_SLOT_CSS_VARIABLES[slotId].unit;
92
+ const unit = getStyleSlotCssVariableConfig(slotId).unit;
93
93
  if (typeof value === 'number') {
94
94
  return unit ? `${value}${unit}` : `${value}`;
95
95
  }
96
96
  return String(value);
97
97
  }
98
+ function getStyleSlotCssVariableConfig(slotId) {
99
+ return isCoreStyleSlotId(slotId)
100
+ ? STYLE_SLOT_CSS_VARIABLES[slotId]
101
+ : { name: `--builder-${slotId.split('.').join('-')}` };
102
+ }
103
+ function getRenderableStyleSlotIds(slots) {
104
+ const declared = new Set();
105
+ for (const slotId of CORE_STYLE_SLOT_IDS) {
106
+ declared.add(slotId);
107
+ }
108
+ for (const slotId of Object.keys(slots)) {
109
+ declared.add(slotId);
110
+ }
111
+ return [...declared];
112
+ }
113
+ function isCoreStyleSlotId(slotId) {
114
+ return CORE_STYLE_SLOT_IDS.includes(slotId);
115
+ }
package/dist/index.d.ts CHANGED
@@ -1,7 +1,11 @@
1
+ export * from './preview-fixtures.js';
2
+ export * from './product-page.js';
3
+ export * from './standard-product-page.js';
1
4
  export * from './attributes.js';
2
5
  export * from './content.js';
3
6
  export * from './css-vars.js';
4
7
  export * from './layout.js';
5
8
  export * from './react.js';
9
+ export * from './storefront-google-fonts.js';
6
10
  export * from './style-slots.js';
7
11
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAClC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,8BAA8B,CAAC;AAC7C,cAAc,kBAAkB,CAAC"}
package/dist/index.js CHANGED
@@ -1,6 +1,10 @@
1
+ export * from './preview-fixtures.js';
2
+ export * from './product-page.js';
3
+ export * from './standard-product-page.js';
1
4
  export * from './attributes.js';
2
5
  export * from './content.js';
3
6
  export * from './css-vars.js';
4
7
  export * from './layout.js';
5
8
  export * from './react.js';
9
+ export * from './storefront-google-fonts.js';
6
10
  export * from './style-slots.js';
package/dist/layout.d.ts CHANGED
@@ -1,4 +1,8 @@
1
- import type { BlockInstance, BuilderSettings, PageLayout, ThemeManifest } from '@shoppex/builder-contracts';
1
+ import { getThemePageBlockOrderFromManifest as resolveThemePageBlockOrder, type BlockInstance, type BuilderSettings, type PageLayout, type ThemeManifest, type ThemePageBlockOrderPage } from '@shoppex/builder-contracts';
2
+ export type ThemePageBlockOrderManifest = {
3
+ pages?: Record<string, ThemePageBlockOrderPage>;
4
+ };
5
+ export { resolveThemePageBlockOrder as getThemePageBlockOrderFromManifest };
2
6
  export declare function getPageLayout(settings: BuilderSettings, pageId: string): PageLayout;
3
7
  export declare function getPageBlocks(settings: BuilderSettings, pageId: string): BlockInstance[];
4
8
  export declare function getVisiblePageBlocks(settings: BuilderSettings, pageId: string): BlockInstance[];
@@ -1 +1 @@
1
- {"version":3,"file":"layout.d.ts","sourceRoot":"","sources":["../src/layout.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAE5G,wBAAgB,aAAa,CAAC,QAAQ,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,GAAG,UAAU,CAEnF;AAED,wBAAgB,aAAa,CAAC,QAAQ,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,GAAG,aAAa,EAAE,CAExF;AAED,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,GAAG,aAAa,EAAE,CAE/F;AAED,wBAAgB,YAAY,CAAC,QAAQ,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI,CAE7G;AAED,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAEtF;AAED,wBAAgB,WAAW,CAAC,QAAQ,EAAE,eAAe,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAc1H;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAgB3G"}
1
+ {"version":3,"file":"layout.d.ts","sourceRoot":"","sources":["../src/layout.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kCAAkC,IAAI,0BAA0B,EAChE,KAAK,aAAa,EAClB,KAAK,eAAe,EACpB,KAAK,UAAU,EACf,KAAK,aAAa,EAClB,KAAK,uBAAuB,EAC7B,MAAM,4BAA4B,CAAC;AAEpC,MAAM,MAAM,2BAA2B,GAAG;IACxC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,uBAAuB,CAAC,CAAC;CACjD,CAAC;AAEF,OAAO,EAAE,0BAA0B,IAAI,kCAAkC,EAAE,CAAC;AAE5E,wBAAgB,aAAa,CAAC,QAAQ,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,GAAG,UAAU,CAEnF;AAED,wBAAgB,aAAa,CAAC,QAAQ,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,GAAG,aAAa,EAAE,CAExF;AAED,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,GAAG,aAAa,EAAE,CAE/F;AAED,wBAAgB,YAAY,CAAC,QAAQ,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI,CAE7G;AAED,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAEtF;AAED,wBAAgB,WAAW,CAAC,QAAQ,EAAE,eAAe,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAc1H;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAgB3G"}
package/dist/layout.js CHANGED
@@ -1,3 +1,5 @@
1
+ import { getThemePageBlockOrderFromManifest as resolveThemePageBlockOrder, } from '@shoppex/builder-contracts';
2
+ export { resolveThemePageBlockOrder as getThemePageBlockOrderFromManifest };
1
3
  export function getPageLayout(settings, pageId) {
2
4
  return settings.theme.layout[pageId] ?? { blocks: [] };
3
5
  }
@@ -0,0 +1,16 @@
1
+ export type BuilderPreviewReview = {
2
+ id: string;
3
+ author: string | null;
4
+ comment: string | null;
5
+ rating: number | null;
6
+ created_at: string;
7
+ is_automated?: boolean;
8
+ };
9
+ export type BuilderPreviewFaqItem = {
10
+ question: string;
11
+ answer: string;
12
+ };
13
+ export declare const BUILDER_PREVIEW_REVIEWS: BuilderPreviewReview[];
14
+ export declare function getBuilderPreviewReviewFixtures<T = BuilderPreviewReview>(): T[];
15
+ export declare const BUILDER_PREVIEW_FAQ_ITEMS: BuilderPreviewFaqItem[];
16
+ //# sourceMappingURL=preview-fixtures.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"preview-fixtures.d.ts","sourceRoot":"","sources":["../src/preview-fixtures.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,oBAAoB,GAAG;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,eAAO,MAAM,uBAAuB,EAAE,oBAAoB,EAsBzD,CAAC;AAEF,wBAAgB,+BAA+B,CAAC,CAAC,GAAG,oBAAoB,KAAK,CAAC,EAAE,CAE/E;AAED,eAAO,MAAM,yBAAyB,EAAE,qBAAqB,EAa5D,CAAC"}
@@ -0,0 +1,40 @@
1
+ export const BUILDER_PREVIEW_REVIEWS = [
2
+ {
3
+ id: 'preview-review-1',
4
+ author: 'Alex M.',
5
+ comment: 'Instant delivery and clear instructions. Would buy again.',
6
+ rating: 5,
7
+ created_at: '2026-04-12T10:00:00.000Z',
8
+ },
9
+ {
10
+ id: 'preview-review-2',
11
+ author: 'Jamie R.',
12
+ comment: 'Support answered quickly when I had a setup question.',
13
+ rating: 5,
14
+ created_at: '2026-04-03T14:30:00.000Z',
15
+ },
16
+ {
17
+ id: 'preview-review-3',
18
+ author: 'Taylor S.',
19
+ comment: 'Smooth checkout experience and exactly what was advertised.',
20
+ rating: 4,
21
+ created_at: '2026-03-22T09:15:00.000Z',
22
+ },
23
+ ];
24
+ export function getBuilderPreviewReviewFixtures() {
25
+ return BUILDER_PREVIEW_REVIEWS;
26
+ }
27
+ export const BUILDER_PREVIEW_FAQ_ITEMS = [
28
+ {
29
+ question: 'How fast is delivery?',
30
+ answer: 'Most digital products are delivered instantly after payment confirmation.',
31
+ },
32
+ {
33
+ question: 'Which payment methods do you accept?',
34
+ answer: 'Available payment methods depend on your shop configuration and region.',
35
+ },
36
+ {
37
+ question: 'How do I get support?',
38
+ answer: 'Use the contact page or your customer portal for order-related help.',
39
+ },
40
+ ];
@@ -0,0 +1,13 @@
1
+ import type { BlockInstance } from '@shoppex/builder-contracts';
2
+ export declare function getBuilderBlockSettingText(block: Pick<BlockInstance, 'settings'>, key: string): string | null;
3
+ export declare function getLayoutPageBlockAttributes(pageId: string, block: Pick<BlockInstance, 'id' | 'type'>): {
4
+ 'data-page-id': string;
5
+ };
6
+ export declare function getProductPageBlockAttributes(block: Pick<BlockInstance, 'id' | 'type'>): {
7
+ 'data-page-id': string;
8
+ };
9
+ /** @deprecated Use getBuilderBlockSettingText */
10
+ export declare const getProductBlockText: typeof getBuilderBlockSettingText;
11
+ /** @deprecated Use getProductPageBlockAttributes */
12
+ export declare const getBuilderProductBlockAttributes: typeof getProductPageBlockAttributes;
13
+ //# sourceMappingURL=product-page.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"product-page.d.ts","sourceRoot":"","sources":["../src/product-page.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAGhE,wBAAgB,0BAA0B,CACxC,KAAK,EAAE,IAAI,CAAC,aAAa,EAAE,UAAU,CAAC,EACtC,GAAG,EAAE,MAAM,GACV,MAAM,GAAG,IAAI,CAGf;AAED,wBAAgB,4BAA4B,CAC1C,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,IAAI,CAAC,aAAa,EAAE,IAAI,GAAG,MAAM,CAAC;;EAM1C;AAED,wBAAgB,6BAA6B,CAC3C,KAAK,EAAE,IAAI,CAAC,aAAa,EAAE,IAAI,GAAG,MAAM,CAAC;;EAG1C;AAED,iDAAiD;AACjD,eAAO,MAAM,mBAAmB,mCAA6B,CAAC;AAE9D,oDAAoD;AACpD,eAAO,MAAM,gCAAgC,sCAAgC,CAAC"}
@@ -0,0 +1,18 @@
1
+ import { builderBlock } from './attributes.js';
2
+ export function getBuilderBlockSettingText(block, key) {
3
+ const value = block.settings[key];
4
+ return typeof value === 'string' && value.trim().length > 0 ? value.trim() : null;
5
+ }
6
+ export function getLayoutPageBlockAttributes(pageId, block) {
7
+ return {
8
+ 'data-page-id': pageId,
9
+ ...builderBlock(block.id, block.type),
10
+ };
11
+ }
12
+ export function getProductPageBlockAttributes(block) {
13
+ return getLayoutPageBlockAttributes('product', block);
14
+ }
15
+ /** @deprecated Use getBuilderBlockSettingText */
16
+ export const getProductBlockText = getBuilderBlockSettingText;
17
+ /** @deprecated Use getProductPageBlockAttributes */
18
+ export const getBuilderProductBlockAttributes = getProductPageBlockAttributes;
package/dist/react.d.ts CHANGED
@@ -1,5 +1,6 @@
1
1
  import type { BlockInstance, BuilderSettings, Breakpoint, StyleSlotId } from '@shoppex/builder-contracts';
2
- import { type ComponentType, type ElementType, type ReactNode } from 'react';
2
+ import { type ComponentPropsWithoutRef, type ComponentType, type ElementType, type ReactNode } from 'react';
3
+ import { type BuilderAttributeMap } from './attributes.js';
3
4
  type BuilderRuntimeContextValue = {
4
5
  settings: BuilderSettings;
5
6
  };
@@ -55,80 +56,7 @@ export declare function useBuilderPageLayout(pageId: string): {
55
56
  visible: boolean;
56
57
  settings: Record<string, unknown>;
57
58
  variant?: string | undefined;
58
- style_overrides?: {
59
- 'button.radius'?: {
60
- base: number;
61
- sm?: number | undefined;
62
- md?: number | undefined;
63
- lg?: number | undefined;
64
- xl?: number | undefined;
65
- } | undefined;
66
- 'button.background'?: string | undefined;
67
- 'button.foreground'?: string | undefined;
68
- 'button.border'?: string | undefined;
69
- 'button.font.weight'?: 100 | 200 | 300 | 400 | 500 | 600 | 700 | 800 | 900 | undefined;
70
- 'input.radius'?: {
71
- base: number;
72
- sm?: number | undefined;
73
- md?: number | undefined;
74
- lg?: number | undefined;
75
- xl?: number | undefined;
76
- } | undefined;
77
- 'input.height'?: {
78
- base: number;
79
- sm?: number | undefined;
80
- md?: number | undefined;
81
- lg?: number | undefined;
82
- xl?: number | undefined;
83
- } | undefined;
84
- 'input.border'?: string | undefined;
85
- 'input.background'?: string | undefined;
86
- 'input.foreground'?: string | undefined;
87
- 'card.radius'?: {
88
- base: number;
89
- sm?: number | undefined;
90
- md?: number | undefined;
91
- lg?: number | undefined;
92
- xl?: number | undefined;
93
- } | undefined;
94
- 'card.background'?: string | undefined;
95
- 'card.border'?: string | undefined;
96
- 'section.padding.y'?: {
97
- base: number;
98
- sm?: number | undefined;
99
- md?: number | undefined;
100
- lg?: number | undefined;
101
- xl?: number | undefined;
102
- } | undefined;
103
- 'section.padding.x'?: {
104
- base: number;
105
- sm?: number | undefined;
106
- md?: number | undefined;
107
- lg?: number | undefined;
108
- xl?: number | undefined;
109
- } | undefined;
110
- 'container.width'?: {
111
- base: number;
112
- sm?: number | undefined;
113
- md?: number | undefined;
114
- lg?: number | undefined;
115
- xl?: number | undefined;
116
- } | undefined;
117
- 'color.primary'?: string | undefined;
118
- 'color.accent'?: string | undefined;
119
- 'color.background'?: string | undefined;
120
- 'color.foreground'?: string | undefined;
121
- 'color.muted'?: string | undefined;
122
- 'link.color'?: string | undefined;
123
- 'typography.heading.weight'?: 100 | 200 | 300 | 400 | 500 | 600 | 700 | 800 | 900 | undefined;
124
- 'typography.body.size'?: {
125
- base: number;
126
- sm?: number | undefined;
127
- md?: number | undefined;
128
- lg?: number | undefined;
129
- xl?: number | undefined;
130
- } | undefined;
131
- } | undefined;
59
+ style_overrides?: Partial<Record<StyleSlotId, import("@shoppex/builder-contracts").StyleSlotValue>> | undefined;
132
60
  }[];
133
61
  };
134
62
  export declare function useBuilderPageBlocks(pageId: string): {
@@ -137,80 +65,7 @@ export declare function useBuilderPageBlocks(pageId: string): {
137
65
  visible: boolean;
138
66
  settings: Record<string, unknown>;
139
67
  variant?: string | undefined;
140
- style_overrides?: {
141
- 'button.radius'?: {
142
- base: number;
143
- sm?: number | undefined;
144
- md?: number | undefined;
145
- lg?: number | undefined;
146
- xl?: number | undefined;
147
- } | undefined;
148
- 'button.background'?: string | undefined;
149
- 'button.foreground'?: string | undefined;
150
- 'button.border'?: string | undefined;
151
- 'button.font.weight'?: 100 | 200 | 300 | 400 | 500 | 600 | 700 | 800 | 900 | undefined;
152
- 'input.radius'?: {
153
- base: number;
154
- sm?: number | undefined;
155
- md?: number | undefined;
156
- lg?: number | undefined;
157
- xl?: number | undefined;
158
- } | undefined;
159
- 'input.height'?: {
160
- base: number;
161
- sm?: number | undefined;
162
- md?: number | undefined;
163
- lg?: number | undefined;
164
- xl?: number | undefined;
165
- } | undefined;
166
- 'input.border'?: string | undefined;
167
- 'input.background'?: string | undefined;
168
- 'input.foreground'?: string | undefined;
169
- 'card.radius'?: {
170
- base: number;
171
- sm?: number | undefined;
172
- md?: number | undefined;
173
- lg?: number | undefined;
174
- xl?: number | undefined;
175
- } | undefined;
176
- 'card.background'?: string | undefined;
177
- 'card.border'?: string | undefined;
178
- 'section.padding.y'?: {
179
- base: number;
180
- sm?: number | undefined;
181
- md?: number | undefined;
182
- lg?: number | undefined;
183
- xl?: number | undefined;
184
- } | undefined;
185
- 'section.padding.x'?: {
186
- base: number;
187
- sm?: number | undefined;
188
- md?: number | undefined;
189
- lg?: number | undefined;
190
- xl?: number | undefined;
191
- } | undefined;
192
- 'container.width'?: {
193
- base: number;
194
- sm?: number | undefined;
195
- md?: number | undefined;
196
- lg?: number | undefined;
197
- xl?: number | undefined;
198
- } | undefined;
199
- 'color.primary'?: string | undefined;
200
- 'color.accent'?: string | undefined;
201
- 'color.background'?: string | undefined;
202
- 'color.foreground'?: string | undefined;
203
- 'color.muted'?: string | undefined;
204
- 'link.color'?: string | undefined;
205
- 'typography.heading.weight'?: 100 | 200 | 300 | 400 | 500 | 600 | 700 | 800 | 900 | undefined;
206
- 'typography.body.size'?: {
207
- base: number;
208
- sm?: number | undefined;
209
- md?: number | undefined;
210
- lg?: number | undefined;
211
- xl?: number | undefined;
212
- } | undefined;
213
- } | undefined;
68
+ style_overrides?: Partial<Record<StyleSlotId, import("@shoppex/builder-contracts").StyleSlotValue>> | undefined;
214
69
  }[];
215
70
  export declare function useVisibleBuilderPageBlocks(pageId: string): {
216
71
  id: string;
@@ -218,85 +73,42 @@ export declare function useVisibleBuilderPageBlocks(pageId: string): {
218
73
  visible: boolean;
219
74
  settings: Record<string, unknown>;
220
75
  variant?: string | undefined;
221
- style_overrides?: {
222
- 'button.radius'?: {
223
- base: number;
224
- sm?: number | undefined;
225
- md?: number | undefined;
226
- lg?: number | undefined;
227
- xl?: number | undefined;
228
- } | undefined;
229
- 'button.background'?: string | undefined;
230
- 'button.foreground'?: string | undefined;
231
- 'button.border'?: string | undefined;
232
- 'button.font.weight'?: 100 | 200 | 300 | 400 | 500 | 600 | 700 | 800 | 900 | undefined;
233
- 'input.radius'?: {
234
- base: number;
235
- sm?: number | undefined;
236
- md?: number | undefined;
237
- lg?: number | undefined;
238
- xl?: number | undefined;
239
- } | undefined;
240
- 'input.height'?: {
241
- base: number;
242
- sm?: number | undefined;
243
- md?: number | undefined;
244
- lg?: number | undefined;
245
- xl?: number | undefined;
246
- } | undefined;
247
- 'input.border'?: string | undefined;
248
- 'input.background'?: string | undefined;
249
- 'input.foreground'?: string | undefined;
250
- 'card.radius'?: {
251
- base: number;
252
- sm?: number | undefined;
253
- md?: number | undefined;
254
- lg?: number | undefined;
255
- xl?: number | undefined;
256
- } | undefined;
257
- 'card.background'?: string | undefined;
258
- 'card.border'?: string | undefined;
259
- 'section.padding.y'?: {
260
- base: number;
261
- sm?: number | undefined;
262
- md?: number | undefined;
263
- lg?: number | undefined;
264
- xl?: number | undefined;
265
- } | undefined;
266
- 'section.padding.x'?: {
267
- base: number;
268
- sm?: number | undefined;
269
- md?: number | undefined;
270
- lg?: number | undefined;
271
- xl?: number | undefined;
272
- } | undefined;
273
- 'container.width'?: {
274
- base: number;
275
- sm?: number | undefined;
276
- md?: number | undefined;
277
- lg?: number | undefined;
278
- xl?: number | undefined;
279
- } | undefined;
280
- 'color.primary'?: string | undefined;
281
- 'color.accent'?: string | undefined;
282
- 'color.background'?: string | undefined;
283
- 'color.foreground'?: string | undefined;
284
- 'color.muted'?: string | undefined;
285
- 'link.color'?: string | undefined;
286
- 'typography.heading.weight'?: 100 | 200 | 300 | 400 | 500 | 600 | 700 | 800 | 900 | undefined;
287
- 'typography.body.size'?: {
288
- base: number;
289
- sm?: number | undefined;
290
- md?: number | undefined;
291
- lg?: number | undefined;
292
- xl?: number | undefined;
293
- } | undefined;
294
- } | undefined;
76
+ style_overrides?: Partial<Record<StyleSlotId, import("@shoppex/builder-contracts").StyleSlotValue>> | undefined;
295
77
  }[];
78
+ export declare function useThemePageBlocks(pageId: string, defaultOrder: string[]): BlockInstance[];
79
+ export declare function useThemePageBlockAttributes(pageId: string, defaultOrder: string[]): BuilderAttributeMap;
80
+ type DedicatedBuilderPageProps<T extends ElementType> = {
81
+ pageId: string;
82
+ defaultBlockOrder: string[];
83
+ as?: T;
84
+ children: ReactNode;
85
+ } & Omit<ComponentPropsWithoutRef<T>, 'as' | 'children'>;
86
+ export declare function DedicatedBuilderPage<T extends ElementType = 'section'>({ pageId, defaultBlockOrder, as, children, ...rest }: DedicatedBuilderPageProps<T>): import("react").ReactElement<any, string | import("react").JSXElementConstructor<any>>;
87
+ export declare function useBuilderPreviewReviews<T>(input: {
88
+ reviews: T[];
89
+ isLoading: boolean;
90
+ error: unknown;
91
+ fixtures?: T[];
92
+ }): {
93
+ reviews: T[];
94
+ isLoading: boolean;
95
+ error: unknown;
96
+ isUsingFixtures: boolean;
97
+ };
296
98
  export declare function useBuilderStyleSlot(slotId: StyleSlotId, input?: {
297
99
  breakpoint?: Breakpoint;
298
100
  fallback?: unknown;
299
101
  }): unknown;
300
102
  export declare function useBuilderCss(selector?: string): string;
301
- export {};
103
+ export declare function useSearchBarSettings(input: {
104
+ variant: 'hero' | 'navigation';
105
+ headerSettings?: Record<string, unknown>;
106
+ }): import("./search-bar-settings.js").ResolvedSearchBarSettings;
107
+ export { buildSearchShellStyle, getNavigationHeaderSettings, resolveSearchBarSettings, } from './search-bar-settings.js';
108
+ export declare function isBuilderPreviewRuntime(): boolean;
109
+ export declare function resolvePreviewReloadTarget(location: Pick<Location, 'search' | 'hash'>, sessionPath: unknown): string | null;
110
+ export { getBuilderBlockSettingText, getBuilderProductBlockAttributes, getLayoutPageBlockAttributes, getProductBlockText, getProductPageBlockAttributes, } from './product-page.js';
111
+ export { createStandardProductBlockRegistry, splitStandardProductPageBlocks, buildStandardProductInfoTabs, resolveStandardBuyBoxLabels, resolveStandardDetailsLabels, resolveStandardRelatedProductsTitle, resolveScopedBlockSettingText, STANDARD_PRODUCT_BLOCK_TYPES, STANDARD_PRODUCT_PRIMARY_BLOCK_TYPES, STANDARD_PRODUCT_SECONDARY_BLOCK_TYPES, } from './standard-product-blocks.js';
112
+ export type { StandardBuyBoxLabels, StandardDetailsLabels, StandardProductBlockRegistryData, StandardProductBlockRegistryOptions, StandardProductBlockRegistrySlots, StandardProductBlockType, StandardProductSettingScope, StandardProductTabSpec, } from './standard-product-blocks.js';
113
+ export { getBuilderPreviewReviewFixtures } from './preview-fixtures.js';
302
114
  //# sourceMappingURL=react.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"react.d.ts","sourceRoot":"","sources":["../src/react.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"react.d.ts","sourceRoot":"","sources":["../src/react.tsx"],"names":[],"mappings":"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"}