@riverbankcms/sdk 0.72.0 → 0.74.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/{PreviewEditorSidebar-44T64SAR.mjs → PreviewEditorSidebar-5XL7M3OM.mjs} +2 -2
- package/dist/{PreviewEditorUI-4WKHZTXW.mjs → PreviewEditorUI-ZDFRDJID.mjs} +2 -2
- package/dist/SdkPreviewModeRuntime-CRYNDSPL.mjs +8 -0
- package/dist/_dts/ai/src/contracts/proposals.d.ts +10 -10
- package/dist/_dts/blocks/src/system/manifest/schema.d.ts +6 -6
- package/dist/_dts/blocks/src/system/node/fragments/backgroundLayer.d.ts +15 -1
- package/dist/_dts/blocks/src/system/node/fragments/styledSection.d.ts +11 -0
- package/dist/_dts/blocks/src/system/runtime/header/enhanceHeaderSection.d.ts +13 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/media.d.ts +6 -0
- package/dist/_dts/sdk/src/rendering/components/Layout.d.ts +2 -2
- package/dist/_dts/sdk/src/rendering/islands/enhancers/accordion.d.ts +1 -0
- package/dist/_dts/sdk/src/rendering/islands/enhancers/bookingForm.d.ts +1 -0
- package/dist/_dts/sdk/src/rendering/islands/enhancers/carousel.d.ts +1 -0
- package/dist/_dts/sdk/src/rendering/islands/enhancers/cart.d.ts +1 -0
- package/dist/_dts/sdk/src/rendering/islands/enhancers/checkout.d.ts +1 -0
- package/dist/_dts/sdk/src/rendering/islands/enhancers/courseRegistration.d.ts +1 -0
- package/dist/_dts/sdk/src/rendering/islands/enhancers/eventCalendar.d.ts +1 -0
- package/dist/_dts/sdk/src/rendering/islands/enhancers/eventCombined.d.ts +1 -0
- package/dist/_dts/sdk/src/rendering/islands/enhancers/eventDetails.d.ts +1 -0
- package/dist/_dts/sdk/src/rendering/islands/enhancers/eventListing.d.ts +1 -0
- package/dist/_dts/sdk/src/rendering/islands/enhancers/eventRegistration.d.ts +1 -0
- package/dist/_dts/sdk/src/rendering/islands/enhancers/form.d.ts +1 -0
- package/dist/_dts/sdk/src/rendering/islands/enhancers/headerSection.d.ts +1 -0
- package/dist/_dts/sdk/src/rendering/islands/enhancers/locationMap.d.ts +1 -0
- package/dist/_dts/sdk/src/rendering/islands/enhancers/newsletterForm.d.ts +1 -0
- package/dist/_dts/sdk/src/rendering/islands/enhancers/productDetail.d.ts +1 -0
- package/dist/_dts/sdk/src/rendering/islands/enhancers/productList.d.ts +1 -0
- package/dist/_dts/sdk/src/rendering/islands/enhancers/shop.d.ts +1 -0
- package/dist/_dts/sdk/src/rendering/islands/hydrateBlocksIslands.d.ts +2 -2
- package/dist/_dts/sdk/src/rendering/islands/propsDecoder.d.ts +7 -0
- package/dist/_dts/sdk/src/rendering/islands/types.d.ts +9 -0
- package/dist/_dts/sdk/src/version.d.ts +1 -1
- package/dist/_dts/theme-core/src/accordions/types.d.ts +3 -3
- package/dist/_dts/theme-core/src/buttons/personalities/types.d.ts +7 -7
- package/dist/_dts/theme-core/src/buttons/types.d.ts +20 -20
- package/dist/_dts/theme-core/src/cards/types.d.ts +2 -2
- package/dist/_dts/theme-core/src/generated/containerResponsiveThemeCss.d.ts +1 -1
- package/dist/_dts/theme-core/src/header/navDropdownSizing.d.ts +7 -0
- package/dist/_dts/theme-core/src/inputs/types.d.ts +3 -3
- package/dist/_dts/theme-core/src/interactive/baseSchema.d.ts +1 -1
- package/dist/_dts/theme-core/src/mock-themes/all.d.ts +156 -156
- package/dist/_dts/theme-core/src/navigation/types.d.ts +1 -1
- package/dist/_dts/theme-core/src/palette/variants/types.d.ts +4 -4
- package/dist/_dts/theme-core/src/schema.d.ts +178 -178
- package/dist/_dts/theme-core/src/shared/componentStyles.d.ts +2 -2
- package/dist/_dts/theme-core/src/site-styles/designState.d.ts +8 -8
- package/dist/_dts/theme-core/src/site-styles/generatedSchemas.d.ts +5 -5
- package/dist/_dts/theme-core/src/tokens/themeColorTokens.d.ts +2 -2
- package/dist/{chunk-3YNCQG5N.mjs → chunk-2MIWNFJM.mjs} +149 -15
- package/dist/{chunk-KWQPAJYS.mjs → chunk-CBD47MTM.mjs} +1 -1
- package/dist/{chunk-HV745JYE.mjs → chunk-CEQBBLMJ.mjs} +1 -1
- package/dist/{chunk-G4NLITC2.mjs → chunk-YY7K3QD2.mjs} +5 -5
- package/dist/cli/index.mjs +233 -203
- package/dist/client/accordion-ZZVXWV3N.mjs +120 -0
- package/dist/client/altcha-LIGLPZS5.mjs +2755 -0
- package/dist/client/bookingForm-4X77HKDS.mjs +34 -0
- package/dist/client/bookings.mjs +13 -0
- package/dist/client/carousel-25WK2H7G.mjs +46 -0
- package/dist/client/cart-JWD2VRFU.mjs +11 -0
- package/dist/client/checkout-V7KYGWL7.mjs +11 -0
- package/dist/client/chunk-5IYGMTUE.mjs +18614 -0
- package/dist/client/chunk-6VGXRE34.mjs +7617 -0
- package/dist/client/chunk-N7PBWBWQ.mjs +26 -0
- package/dist/client/chunk-PMAIXMAB.mjs +1960 -0
- package/dist/client/chunk-RKCFVIMS.mjs +26 -0
- package/dist/client/client.mjs +621 -379
- package/dist/client/courseRegistration-O6ZPK4YT.mjs +29 -0
- package/dist/client/eventCalendar-X6GIPYFM.mjs +29 -0
- package/dist/client/eventCombined-EZUOPM3G.mjs +26 -0
- package/dist/client/eventDetails-3WODIXET.mjs +14 -0
- package/dist/client/eventListing-HEFGAETC.mjs +29 -0
- package/dist/client/eventRegistration-3LCP2V3P.mjs +29 -0
- package/dist/client/form-AKXQMY6Z.mjs +85 -0
- package/dist/client/headerSection-5KHCMU6B.mjs +12 -0
- package/dist/client/hooks.mjs +42 -9
- package/dist/client/locationMap-7HIADW76.mjs +14 -0
- package/dist/client/newsletterForm-5N4YTMU3.mjs +60 -0
- package/dist/client/productDetail-IZUA7ZP3.mjs +11 -0
- package/dist/client/productList-KWIIJE6I.mjs +11 -0
- package/dist/client/rendering/client.mjs +1655 -6472
- package/dist/client/rendering/islands.mjs +40 -44031
- package/dist/client/rendering.mjs +2909 -2663
- package/dist/client/shop-XZQFRQWZ.mjs +13 -0
- package/dist/preview-next/client/runtime.mjs +3 -3
- package/dist/{sdk-runtime-NGDWSWOS.mjs → sdk-runtime-OHNONZ5U.mjs} +4 -4
- package/dist/server/components.mjs +64 -11
- package/dist/server/config-validation.mjs +42 -9
- package/dist/server/config.mjs +42 -9
- package/dist/server/data.mjs +42 -9
- package/dist/server/index.mjs +1 -1
- package/dist/server/next.mjs +65 -12
- package/dist/server/page-converter.mjs +29 -9
- package/dist/server/prebuild.mjs +1 -1
- package/dist/server/rendering/server.mjs +64 -11
- package/dist/server/rendering.mjs +64 -11
- package/dist/server/routing.mjs +50 -10
- package/dist/server/server.mjs +43 -10
- package/dist/server/theme-bridge.mjs +24 -0
- package/dist/styles/index.css +11 -0
- package/package.json +1 -1
- package/dist/SdkPreviewModeRuntime-FO6V7YVY.mjs +0 -8
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { mountReactIsland } from './chunk-N7PBWBWQ.mjs';
|
|
2
|
+
import { BlockApiProvider, CourseRegistrationIslandClient } from './chunk-5IYGMTUE.mjs';
|
|
3
|
+
import { defineIslandPropsDecoder } from './chunk-6VGXRE34.mjs';
|
|
4
|
+
import './chunk-PMAIXMAB.mjs';
|
|
5
|
+
import { jsx } from 'react/jsx-runtime';
|
|
6
|
+
|
|
7
|
+
var decode = defineIslandPropsDecoder("course-registration");
|
|
8
|
+
var enhance = (root, props) => {
|
|
9
|
+
const { siteId, apiBaseUrl, stage, portalToken } = props;
|
|
10
|
+
if (!siteId) {
|
|
11
|
+
throw new Error("[sdk:islands] course-registration requires siteId");
|
|
12
|
+
}
|
|
13
|
+
if (!apiBaseUrl) {
|
|
14
|
+
throw new Error("[sdk:islands] course-registration requires apiBaseUrl");
|
|
15
|
+
}
|
|
16
|
+
const apiConfig = {
|
|
17
|
+
baseUrl: apiBaseUrl,
|
|
18
|
+
auth: portalToken ? { type: "bearer", token: portalToken } : { type: "none" },
|
|
19
|
+
siteId,
|
|
20
|
+
isPreview: stage === "preview"
|
|
21
|
+
};
|
|
22
|
+
return mountReactIsland(root, ({ root: reactRoot }) => {
|
|
23
|
+
reactRoot.render(
|
|
24
|
+
/* @__PURE__ */ jsx(BlockApiProvider, { config: apiConfig, children: /* @__PURE__ */ jsx(CourseRegistrationIslandClient, { ...props }) })
|
|
25
|
+
);
|
|
26
|
+
});
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
export { decode, enhance };
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { mountReactIsland } from './chunk-N7PBWBWQ.mjs';
|
|
2
|
+
import { BlockApiProvider, EventCalendarClient } from './chunk-5IYGMTUE.mjs';
|
|
3
|
+
import { defineIslandPropsDecoder } from './chunk-6VGXRE34.mjs';
|
|
4
|
+
import './chunk-PMAIXMAB.mjs';
|
|
5
|
+
import { jsx } from 'react/jsx-runtime';
|
|
6
|
+
|
|
7
|
+
var decode = defineIslandPropsDecoder("event-calendar");
|
|
8
|
+
var enhance = (root, props) => {
|
|
9
|
+
const { siteId, apiBaseUrl, stage } = props;
|
|
10
|
+
if (!siteId) {
|
|
11
|
+
throw new Error("[sdk:islands] event-calendar requires siteId");
|
|
12
|
+
}
|
|
13
|
+
if (!apiBaseUrl) {
|
|
14
|
+
throw new Error("[sdk:islands] event-calendar requires apiBaseUrl");
|
|
15
|
+
}
|
|
16
|
+
const apiConfig = {
|
|
17
|
+
baseUrl: apiBaseUrl,
|
|
18
|
+
auth: { type: "none" },
|
|
19
|
+
siteId,
|
|
20
|
+
isPreview: stage === "preview"
|
|
21
|
+
};
|
|
22
|
+
return mountReactIsland(root, ({ root: reactRoot }) => {
|
|
23
|
+
reactRoot.render(
|
|
24
|
+
/* @__PURE__ */ jsx(BlockApiProvider, { config: apiConfig, children: /* @__PURE__ */ jsx(EventCalendarClient, { ...props }) })
|
|
25
|
+
);
|
|
26
|
+
});
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
export { decode, enhance };
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { mountReactIsland } from './chunk-N7PBWBWQ.mjs';
|
|
2
|
+
import { BlockApiProvider, EventCombinedIslandClient } from './chunk-5IYGMTUE.mjs';
|
|
3
|
+
import { defineIslandPropsDecoder } from './chunk-6VGXRE34.mjs';
|
|
4
|
+
import './chunk-PMAIXMAB.mjs';
|
|
5
|
+
import { jsx } from 'react/jsx-runtime';
|
|
6
|
+
|
|
7
|
+
var decode = defineIslandPropsDecoder("event-combined");
|
|
8
|
+
var enhance = (root, props) => {
|
|
9
|
+
const { siteId, apiBaseUrl, stage } = props;
|
|
10
|
+
if (!apiBaseUrl) {
|
|
11
|
+
throw new Error("[sdk:islands] event-combined requires apiBaseUrl");
|
|
12
|
+
}
|
|
13
|
+
const apiConfig = {
|
|
14
|
+
baseUrl: apiBaseUrl,
|
|
15
|
+
auth: { type: "none" },
|
|
16
|
+
siteId,
|
|
17
|
+
isPreview: stage === "preview"
|
|
18
|
+
};
|
|
19
|
+
return mountReactIsland(root, ({ root: reactRoot }) => {
|
|
20
|
+
reactRoot.render(
|
|
21
|
+
/* @__PURE__ */ jsx(BlockApiProvider, { config: apiConfig, children: /* @__PURE__ */ jsx(EventCombinedIslandClient, { ...props }) })
|
|
22
|
+
);
|
|
23
|
+
});
|
|
24
|
+
};
|
|
25
|
+
|
|
26
|
+
export { decode, enhance };
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { mountReactIsland } from './chunk-N7PBWBWQ.mjs';
|
|
2
|
+
import { EventDetailsIslandClient } from './chunk-5IYGMTUE.mjs';
|
|
3
|
+
import { defineIslandPropsDecoder } from './chunk-6VGXRE34.mjs';
|
|
4
|
+
import './chunk-PMAIXMAB.mjs';
|
|
5
|
+
import { jsx } from 'react/jsx-runtime';
|
|
6
|
+
|
|
7
|
+
var decode = defineIslandPropsDecoder("event-details");
|
|
8
|
+
var enhance = (root, props) => {
|
|
9
|
+
return mountReactIsland(root, ({ root: reactRoot }) => {
|
|
10
|
+
reactRoot.render(/* @__PURE__ */ jsx(EventDetailsIslandClient, { ...props }));
|
|
11
|
+
});
|
|
12
|
+
};
|
|
13
|
+
|
|
14
|
+
export { decode, enhance };
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { mountReactIsland } from './chunk-N7PBWBWQ.mjs';
|
|
2
|
+
import { BlockApiProvider, EventListingClient } from './chunk-5IYGMTUE.mjs';
|
|
3
|
+
import { defineIslandPropsDecoder } from './chunk-6VGXRE34.mjs';
|
|
4
|
+
import './chunk-PMAIXMAB.mjs';
|
|
5
|
+
import { jsx } from 'react/jsx-runtime';
|
|
6
|
+
|
|
7
|
+
var decode = defineIslandPropsDecoder("event-listing");
|
|
8
|
+
var enhance = (root, props) => {
|
|
9
|
+
const { siteId, apiBaseUrl, stage } = props;
|
|
10
|
+
if (!siteId) {
|
|
11
|
+
throw new Error("[sdk:islands] event-listing requires siteId");
|
|
12
|
+
}
|
|
13
|
+
if (!apiBaseUrl) {
|
|
14
|
+
throw new Error("[sdk:islands] event-listing requires apiBaseUrl");
|
|
15
|
+
}
|
|
16
|
+
const apiConfig = {
|
|
17
|
+
baseUrl: apiBaseUrl,
|
|
18
|
+
auth: { type: "none" },
|
|
19
|
+
siteId,
|
|
20
|
+
isPreview: stage === "preview"
|
|
21
|
+
};
|
|
22
|
+
return mountReactIsland(root, ({ root: reactRoot }) => {
|
|
23
|
+
reactRoot.render(
|
|
24
|
+
/* @__PURE__ */ jsx(BlockApiProvider, { config: apiConfig, children: /* @__PURE__ */ jsx(EventListingClient, { ...props }) })
|
|
25
|
+
);
|
|
26
|
+
});
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
export { decode, enhance };
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { mountReactIsland } from './chunk-N7PBWBWQ.mjs';
|
|
2
|
+
import { BlockApiProvider, EventRegistrationIslandClient } from './chunk-5IYGMTUE.mjs';
|
|
3
|
+
import { defineIslandPropsDecoder } from './chunk-6VGXRE34.mjs';
|
|
4
|
+
import './chunk-PMAIXMAB.mjs';
|
|
5
|
+
import { jsx } from 'react/jsx-runtime';
|
|
6
|
+
|
|
7
|
+
var decode = defineIslandPropsDecoder("event-registration");
|
|
8
|
+
var enhance = (root, props) => {
|
|
9
|
+
const { siteId, apiBaseUrl, stage, portalToken } = props;
|
|
10
|
+
if (!siteId) {
|
|
11
|
+
throw new Error("[sdk:islands] event-registration requires siteId");
|
|
12
|
+
}
|
|
13
|
+
if (!apiBaseUrl) {
|
|
14
|
+
throw new Error("[sdk:islands] event-registration requires apiBaseUrl");
|
|
15
|
+
}
|
|
16
|
+
const apiConfig = {
|
|
17
|
+
baseUrl: apiBaseUrl,
|
|
18
|
+
auth: portalToken ? { type: "bearer", token: portalToken } : { type: "none" },
|
|
19
|
+
siteId,
|
|
20
|
+
isPreview: stage === "preview"
|
|
21
|
+
};
|
|
22
|
+
return mountReactIsland(root, ({ root: reactRoot }) => {
|
|
23
|
+
reactRoot.render(
|
|
24
|
+
/* @__PURE__ */ jsx(BlockApiProvider, { config: apiConfig, children: /* @__PURE__ */ jsx(EventRegistrationIslandClient, { ...props }) })
|
|
25
|
+
);
|
|
26
|
+
});
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
export { decode, enhance };
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import { mountReactIsland } from './chunk-N7PBWBWQ.mjs';
|
|
2
|
+
import { BlockApiProvider, FormNodeClient } from './chunk-5IYGMTUE.mjs';
|
|
3
|
+
import { defineIslandPropsDecoder } from './chunk-6VGXRE34.mjs';
|
|
4
|
+
import './chunk-PMAIXMAB.mjs';
|
|
5
|
+
import { jsx } from 'react/jsx-runtime';
|
|
6
|
+
|
|
7
|
+
var decode = defineIslandPropsDecoder("form");
|
|
8
|
+
function snapshotFormValues(form) {
|
|
9
|
+
if (!form) return [];
|
|
10
|
+
const snapshots = [];
|
|
11
|
+
const elements = Array.from(form.elements);
|
|
12
|
+
for (const el of elements) {
|
|
13
|
+
if (!(el instanceof HTMLInputElement || el instanceof HTMLTextAreaElement || el instanceof HTMLSelectElement)) {
|
|
14
|
+
continue;
|
|
15
|
+
}
|
|
16
|
+
const name = el.name;
|
|
17
|
+
if (!name) continue;
|
|
18
|
+
if (el instanceof HTMLSelectElement && el.multiple) {
|
|
19
|
+
const selected = Array.from(el.selectedOptions).map((o) => o.value);
|
|
20
|
+
snapshots.push({ kind: "select-multiple", name, values: selected });
|
|
21
|
+
continue;
|
|
22
|
+
}
|
|
23
|
+
if (el instanceof HTMLInputElement && (el.type === "checkbox" || el.type === "radio")) {
|
|
24
|
+
snapshots.push({ kind: "checked", name, value: el.value, checked: el.checked });
|
|
25
|
+
continue;
|
|
26
|
+
}
|
|
27
|
+
snapshots.push({ kind: "value", name, value: el.value });
|
|
28
|
+
}
|
|
29
|
+
return snapshots;
|
|
30
|
+
}
|
|
31
|
+
function applySnapshots(form, snapshots) {
|
|
32
|
+
if (!form) return;
|
|
33
|
+
for (const snapshot of snapshots) {
|
|
34
|
+
if (snapshot.kind === "select-multiple") {
|
|
35
|
+
const el2 = form.elements.namedItem(snapshot.name);
|
|
36
|
+
if (!(el2 instanceof HTMLSelectElement) || !el2.multiple) continue;
|
|
37
|
+
const selected = new Set(snapshot.values);
|
|
38
|
+
Array.from(el2.options).forEach((opt) => {
|
|
39
|
+
opt.selected = selected.has(opt.value);
|
|
40
|
+
});
|
|
41
|
+
continue;
|
|
42
|
+
}
|
|
43
|
+
const el = form.elements.namedItem(snapshot.name);
|
|
44
|
+
if (snapshot.kind === "checked") {
|
|
45
|
+
if (el instanceof RadioNodeList) {
|
|
46
|
+
const inputs = Array.from(el).filter((i) => i instanceof HTMLInputElement);
|
|
47
|
+
const match = inputs.find((i) => i.value === snapshot.value);
|
|
48
|
+
if (match) match.checked = snapshot.checked;
|
|
49
|
+
} else if (el instanceof HTMLInputElement) {
|
|
50
|
+
if (el.type === "checkbox") el.checked = snapshot.checked;
|
|
51
|
+
}
|
|
52
|
+
continue;
|
|
53
|
+
}
|
|
54
|
+
if (el instanceof HTMLInputElement || el instanceof HTMLTextAreaElement || el instanceof HTMLSelectElement) {
|
|
55
|
+
el.value = snapshot.value;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
var enhance = (root, props) => {
|
|
60
|
+
const { siteId, apiBaseUrl } = props;
|
|
61
|
+
if (!siteId) {
|
|
62
|
+
throw new Error("[sdk:islands] form requires siteId");
|
|
63
|
+
}
|
|
64
|
+
if (!apiBaseUrl) {
|
|
65
|
+
throw new Error("[sdk:islands] form requires apiBaseUrl");
|
|
66
|
+
}
|
|
67
|
+
const apiConfig = {
|
|
68
|
+
baseUrl: apiBaseUrl,
|
|
69
|
+
auth: { type: "none" },
|
|
70
|
+
siteId
|
|
71
|
+
};
|
|
72
|
+
const existingForm = root.querySelector("form");
|
|
73
|
+
const snapshots = snapshotFormValues(existingForm);
|
|
74
|
+
return mountReactIsland(root, ({ root: reactRoot }) => {
|
|
75
|
+
reactRoot.render(
|
|
76
|
+
/* @__PURE__ */ jsx(BlockApiProvider, { config: apiConfig, children: /* @__PURE__ */ jsx(FormNodeClient, { ...props }) })
|
|
77
|
+
);
|
|
78
|
+
requestAnimationFrame(() => {
|
|
79
|
+
const nextForm = root.querySelector("form");
|
|
80
|
+
applySnapshots(nextForm, snapshots);
|
|
81
|
+
});
|
|
82
|
+
});
|
|
83
|
+
};
|
|
84
|
+
|
|
85
|
+
export { decode, enhance };
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { enhanceHeaderSection } from './chunk-5IYGMTUE.mjs';
|
|
2
|
+
import { defineIslandPropsDecoder } from './chunk-6VGXRE34.mjs';
|
|
3
|
+
import './chunk-PMAIXMAB.mjs';
|
|
4
|
+
|
|
5
|
+
// src/rendering/islands/enhancers/headerSection.ts
|
|
6
|
+
var decode = defineIslandPropsDecoder("headerSection");
|
|
7
|
+
var enhance = (root, props) => {
|
|
8
|
+
const scrollEnabled = typeof props?.scrollEnabled === "boolean" ? props.scrollEnabled : typeof props?.enabled === "boolean" ? props.enabled : void 0;
|
|
9
|
+
return enhanceHeaderSection(root, { scrollEnabled });
|
|
10
|
+
};
|
|
11
|
+
|
|
12
|
+
export { decode, enhance };
|
package/dist/client/hooks.mjs
CHANGED
|
@@ -12762,7 +12762,9 @@ function backgroundLayer(path, options = {}) {
|
|
|
12762
12762
|
imageClassName,
|
|
12763
12763
|
overlayClassName = "background-overlay rb-absolute rb-inset-0 rb-z-neg-10 rb-h-full rb-w-full rb-pointer-events-none",
|
|
12764
12764
|
fallbackToken,
|
|
12765
|
-
omitImageLayer = false
|
|
12765
|
+
omitImageLayer = false,
|
|
12766
|
+
imageLoading,
|
|
12767
|
+
imageFetchPriority
|
|
12766
12768
|
} = options;
|
|
12767
12769
|
const styleLayer = el("div", {
|
|
12768
12770
|
className: styleClassName,
|
|
@@ -12778,11 +12780,14 @@ function backgroundLayer(path, options = {}) {
|
|
|
12778
12780
|
}
|
|
12779
12781
|
}
|
|
12780
12782
|
});
|
|
12781
|
-
const imageLayer = createBackgroundImageNode(path, imageClassName
|
|
12783
|
+
const imageLayer = createBackgroundImageNode(path, imageClassName, {
|
|
12784
|
+
loading: imageLoading,
|
|
12785
|
+
fetchPriority: imageFetchPriority
|
|
12786
|
+
});
|
|
12782
12787
|
const overlayLayer = createBackgroundOverlayNode(path, overlayClassName);
|
|
12783
12788
|
return omitImageLayer ? [styleLayer, overlayLayer] : [styleLayer, imageLayer, overlayLayer];
|
|
12784
12789
|
}
|
|
12785
|
-
function createBackgroundImageNode(path, baseClassName = "rb-absolute rb-z-neg-10") {
|
|
12790
|
+
function createBackgroundImageNode(path, baseClassName = "rb-absolute rb-z-neg-10", options = {}) {
|
|
12786
12791
|
const imagePath = `${path}.image`;
|
|
12787
12792
|
return media(
|
|
12788
12793
|
{
|
|
@@ -12803,7 +12808,9 @@ function createBackgroundImageNode(path, baseClassName = "rb-absolute rb-z-neg-1
|
|
|
12803
12808
|
transforms: [{ id: "background.resolveImageStyle" }]
|
|
12804
12809
|
}
|
|
12805
12810
|
},
|
|
12806
|
-
videoPlayback: "background"
|
|
12811
|
+
videoPlayback: "background",
|
|
12812
|
+
...options.loading ? { loading: options.loading } : {},
|
|
12813
|
+
...options.fetchPriority ? { fetchPriority: options.fetchPriority } : {}
|
|
12807
12814
|
},
|
|
12808
12815
|
when(imagePath),
|
|
12809
12816
|
bind(imagePath)
|
|
@@ -13000,12 +13007,16 @@ function styledSection(config) {
|
|
|
13000
13007
|
bindFrom = "_sectionStyles",
|
|
13001
13008
|
imageClassName = "rb-absolute rb-z-neg-10",
|
|
13002
13009
|
renderBackgroundImage = true,
|
|
13010
|
+
backgroundImageLoading,
|
|
13011
|
+
backgroundImageFetchPriority,
|
|
13003
13012
|
fullWidthPath
|
|
13004
13013
|
} = config;
|
|
13005
13014
|
const renderedBackgroundNodes = backgroundLayer(`${bindFrom}.background`, {
|
|
13006
13015
|
imageClassName,
|
|
13007
13016
|
fallbackToken: background,
|
|
13008
|
-
omitImageLayer: !renderBackgroundImage
|
|
13017
|
+
omitImageLayer: !renderBackgroundImage,
|
|
13018
|
+
imageLoading: backgroundImageLoading,
|
|
13019
|
+
imageFetchPriority: backgroundImageFetchPriority
|
|
13009
13020
|
});
|
|
13010
13021
|
const childrenArray = Array.isArray(children) ? children : [children];
|
|
13011
13022
|
return section(
|
|
@@ -13220,7 +13231,7 @@ function navRow(opts) {
|
|
|
13220
13231
|
el(
|
|
13221
13232
|
"div",
|
|
13222
13233
|
{
|
|
13223
|
-
className: "nav-dropdown-menu rb-absolute rb-left-0 rb-top-full rb-z-50 rb-hidden rb-
|
|
13234
|
+
className: "nav-dropdown-menu rb-absolute rb-left-0 rb-top-full rb-z-50 rb-hidden rb-overflow-hidden",
|
|
13224
13235
|
id: dropdownMenuId
|
|
13225
13236
|
},
|
|
13226
13237
|
[dropdownLinks]
|
|
@@ -16703,6 +16714,10 @@ var heroCopyAndCta = composeFragments([
|
|
|
16703
16714
|
{ fragment: heroCopyFragment },
|
|
16704
16715
|
{ fragment: heroCtaRowFragment }
|
|
16705
16716
|
]);
|
|
16717
|
+
var heroPriorityMediaProps = {
|
|
16718
|
+
loading: "eager",
|
|
16719
|
+
fetchPriority: "high"
|
|
16720
|
+
};
|
|
16706
16721
|
var heroContentNodes = heroCopyAndCta.layout;
|
|
16707
16722
|
function heroContentCard(children, gap) {
|
|
16708
16723
|
return styledContainer({
|
|
@@ -16765,7 +16780,8 @@ function heroSplitImagePane() {
|
|
|
16765
16780
|
[
|
|
16766
16781
|
media(
|
|
16767
16782
|
{
|
|
16768
|
-
className: "rb-absolute rb-inset-0 rb-h-full rb-w-full rb-object-cover"
|
|
16783
|
+
className: "rb-absolute rb-inset-0 rb-h-full rb-w-full rb-object-cover",
|
|
16784
|
+
...heroPriorityMediaProps
|
|
16769
16785
|
},
|
|
16770
16786
|
when("_sectionStyles.background.image"),
|
|
16771
16787
|
bind("_sectionStyles.background.image")
|
|
@@ -16776,13 +16792,17 @@ function heroSplitImagePane() {
|
|
|
16776
16792
|
var classicLayout = styledSection({
|
|
16777
16793
|
children: heroContainerStack(heroContentNodes, "md"),
|
|
16778
16794
|
// styledContainer (rb-container) already provides horizontal padding
|
|
16779
|
-
baseClass: ""
|
|
16795
|
+
baseClass: "",
|
|
16796
|
+
backgroundImageLoading: heroPriorityMediaProps.loading,
|
|
16797
|
+
backgroundImageFetchPriority: heroPriorityMediaProps.fetchPriority
|
|
16780
16798
|
});
|
|
16781
16799
|
var microLayout = styledSection({
|
|
16782
16800
|
children: heroContainerStack(heroContentNodes, "sm"),
|
|
16783
16801
|
// styledContainer (rb-container) already provides horizontal padding
|
|
16784
16802
|
baseClass: "",
|
|
16785
|
-
spacing: "compact"
|
|
16803
|
+
spacing: "compact",
|
|
16804
|
+
backgroundImageLoading: heroPriorityMediaProps.loading,
|
|
16805
|
+
backgroundImageFetchPriority: heroPriorityMediaProps.fetchPriority
|
|
16786
16806
|
});
|
|
16787
16807
|
function splitLayoutWith(children) {
|
|
16788
16808
|
return styledSection({
|
|
@@ -28906,6 +28926,19 @@ var NAV_LINK_PRESETS = {
|
|
|
28906
28926
|
};
|
|
28907
28927
|
var NAV_LINK_PRESET_IDS = Object.keys(NAV_LINK_PRESETS);
|
|
28908
28928
|
|
|
28929
|
+
// ../theme-core/src/header/navDropdownSizing.ts
|
|
28930
|
+
var NAV_DROPDOWN_MIN_WIDTH_REM = 12;
|
|
28931
|
+
var NAV_DROPDOWN_MAX_WIDTH_REM = 22;
|
|
28932
|
+
var NAV_DROPDOWN_VIEWPORT_GUTTER_REM = 1;
|
|
28933
|
+
var NAV_DROPDOWN_SHIFT_PROPERTY = "--nav-dropdown-shift-x";
|
|
28934
|
+
var NAV_DROPDOWN_MAX_WIDTH_CSS = `min(${NAV_DROPDOWN_MAX_WIDTH_REM}rem, calc(100vw - ${NAV_DROPDOWN_VIEWPORT_GUTTER_REM * 2}rem))`;
|
|
28935
|
+
var NAV_DROPDOWN_CONTAINER_RAIL_CSS_RULES = [
|
|
28936
|
+
`min-width: ${NAV_DROPDOWN_MIN_WIDTH_REM}rem;`,
|
|
28937
|
+
`width: max-content;`,
|
|
28938
|
+
`max-width: ${NAV_DROPDOWN_MAX_WIDTH_CSS};`,
|
|
28939
|
+
`transform: translateX(var(${NAV_DROPDOWN_SHIFT_PROPERTY}, 0px));`
|
|
28940
|
+
];
|
|
28941
|
+
|
|
28909
28942
|
// ../theme-core/src/layout/generateLayoutCss.ts
|
|
28910
28943
|
var waveTransitionMask = svgDataUrl(
|
|
28911
28944
|
"<svg viewBox='0 0 1440 72' xmlns='http://www.w3.org/2000/svg' preserveAspectRatio='none'><path d='M0 72V46C130 55 260 24 420 30C590 36 690 62 860 42C1035 21 1160 47 1305 36C1365 31 1415 33 1440 38V72H0Z' fill='white'/></svg>"
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { mountReactIsland } from './chunk-N7PBWBWQ.mjs';
|
|
2
|
+
import { LocationMapIslandClient } from './chunk-5IYGMTUE.mjs';
|
|
3
|
+
import { defineIslandPropsDecoder } from './chunk-6VGXRE34.mjs';
|
|
4
|
+
import './chunk-PMAIXMAB.mjs';
|
|
5
|
+
import { jsx } from 'react/jsx-runtime';
|
|
6
|
+
|
|
7
|
+
var decode = defineIslandPropsDecoder("location-map");
|
|
8
|
+
var enhance = (root, props) => {
|
|
9
|
+
return mountReactIsland(root, ({ root: reactRoot }) => {
|
|
10
|
+
reactRoot.render(/* @__PURE__ */ jsx(LocationMapIslandClient, { ...props }));
|
|
11
|
+
});
|
|
12
|
+
};
|
|
13
|
+
|
|
14
|
+
export { decode, enhance };
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { mountReactIsland } from './chunk-N7PBWBWQ.mjs';
|
|
2
|
+
import { BlockApiProvider, NewsletterFormClient } from './chunk-5IYGMTUE.mjs';
|
|
3
|
+
import { defineIslandPropsDecoder } from './chunk-6VGXRE34.mjs';
|
|
4
|
+
import './chunk-PMAIXMAB.mjs';
|
|
5
|
+
import { jsx } from 'react/jsx-runtime';
|
|
6
|
+
|
|
7
|
+
var decode = defineIslandPropsDecoder("newsletter-form");
|
|
8
|
+
function snapshotFormValues(form) {
|
|
9
|
+
if (!form) return [];
|
|
10
|
+
const snapshots = [];
|
|
11
|
+
const elements = Array.from(form.elements);
|
|
12
|
+
for (const el of elements) {
|
|
13
|
+
if (!(el instanceof HTMLInputElement || el instanceof HTMLTextAreaElement)) {
|
|
14
|
+
continue;
|
|
15
|
+
}
|
|
16
|
+
const name = el.name;
|
|
17
|
+
if (!name) continue;
|
|
18
|
+
snapshots.push({ name, value: el.value });
|
|
19
|
+
}
|
|
20
|
+
return snapshots;
|
|
21
|
+
}
|
|
22
|
+
function applySnapshots(form, snapshots) {
|
|
23
|
+
if (!form) return;
|
|
24
|
+
for (const snapshot of snapshots) {
|
|
25
|
+
const el = form.elements.namedItem(snapshot.name);
|
|
26
|
+
if (el instanceof HTMLInputElement || el instanceof HTMLTextAreaElement) {
|
|
27
|
+
el.value = snapshot.value;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
var enhance = (root, props) => {
|
|
32
|
+
const { siteId, apiBaseUrl, render } = props;
|
|
33
|
+
if (!siteId) {
|
|
34
|
+
throw new Error("[sdk:islands] newsletter-form requires siteId");
|
|
35
|
+
}
|
|
36
|
+
if (!apiBaseUrl) {
|
|
37
|
+
throw new Error("[sdk:islands] newsletter-form requires apiBaseUrl");
|
|
38
|
+
}
|
|
39
|
+
if (!render.hydration.listId) {
|
|
40
|
+
throw new Error("[sdk:islands] newsletter-form requires listId");
|
|
41
|
+
}
|
|
42
|
+
const apiConfig = {
|
|
43
|
+
baseUrl: apiBaseUrl,
|
|
44
|
+
auth: { type: "none" },
|
|
45
|
+
siteId
|
|
46
|
+
};
|
|
47
|
+
const existingForm = root.querySelector("form");
|
|
48
|
+
const snapshots = snapshotFormValues(existingForm);
|
|
49
|
+
return mountReactIsland(root, ({ root: reactRoot }) => {
|
|
50
|
+
reactRoot.render(
|
|
51
|
+
/* @__PURE__ */ jsx(BlockApiProvider, { config: apiConfig, children: /* @__PURE__ */ jsx(NewsletterFormClient, { ...props }) })
|
|
52
|
+
);
|
|
53
|
+
requestAnimationFrame(() => {
|
|
54
|
+
const nextForm = root.querySelector("form");
|
|
55
|
+
applySnapshots(nextForm, snapshots);
|
|
56
|
+
});
|
|
57
|
+
});
|
|
58
|
+
};
|
|
59
|
+
|
|
60
|
+
export { decode, enhance };
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { mountShopBlockIsland } from './chunk-RKCFVIMS.mjs';
|
|
2
|
+
import './chunk-N7PBWBWQ.mjs';
|
|
3
|
+
import { ProductDetailClient } from './chunk-5IYGMTUE.mjs';
|
|
4
|
+
import { defineIslandPropsDecoder } from './chunk-6VGXRE34.mjs';
|
|
5
|
+
import './chunk-PMAIXMAB.mjs';
|
|
6
|
+
|
|
7
|
+
// src/rendering/islands/enhancers/productDetail.tsx
|
|
8
|
+
var decode = defineIslandPropsDecoder("product-detail");
|
|
9
|
+
var enhance = (root, props) => mountShopBlockIsland(root, props, ProductDetailClient, "product-detail");
|
|
10
|
+
|
|
11
|
+
export { decode, enhance };
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { mountShopBlockIsland } from './chunk-RKCFVIMS.mjs';
|
|
2
|
+
import './chunk-N7PBWBWQ.mjs';
|
|
3
|
+
import { ProductListClient } from './chunk-5IYGMTUE.mjs';
|
|
4
|
+
import { defineIslandPropsDecoder } from './chunk-6VGXRE34.mjs';
|
|
5
|
+
import './chunk-PMAIXMAB.mjs';
|
|
6
|
+
|
|
7
|
+
// src/rendering/islands/enhancers/productList.tsx
|
|
8
|
+
var decode = defineIslandPropsDecoder("product-list");
|
|
9
|
+
var enhance = (root, props) => mountShopBlockIsland(root, props, ProductListClient, "product-list");
|
|
10
|
+
|
|
11
|
+
export { decode, enhance };
|