@dreamtree-org/landing-kit 0.9.0 → 0.10.1

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/dist/index.cjs CHANGED
@@ -58,6 +58,7 @@ __export(index_exports, {
58
58
  Wrap: () => Wrap,
59
59
  brandStyle: () => brandStyle,
60
60
  brands: () => brands,
61
+ buildSsoUrl: () => buildSsoUrl,
61
62
  createDemoIsland: () => createDemoIsland,
62
63
  fetchDemoAccounts: () => fetchDemoAccounts,
63
64
  getBrand: () => getBrand,
@@ -76,10 +77,10 @@ __export(index_exports, {
76
77
  module.exports = __toCommonJS(index_exports);
77
78
 
78
79
  // src/LandingPage.jsx
79
- var import_react7 = require("react");
80
+ var import_react8 = require("react");
80
81
 
81
82
  // src/AuthShell.jsx
82
- var import_react3 = require("react");
83
+ var import_react5 = require("react");
83
84
 
84
85
  // src/DemoAccounts.jsx
85
86
  var import_react = require("react");
@@ -165,13 +166,121 @@ function DemoAccounts({ load, onSelect, className = "" }) {
165
166
  ] });
166
167
  }
167
168
 
168
- // src/useTapReveal.js
169
+ // src/DreamtreeSso.jsx
170
+ var import_react3 = require("react");
171
+
172
+ // src/sso.js
173
+ function decodeKey(part) {
174
+ const key = part.split("=")[0];
175
+ try {
176
+ return decodeURIComponent(key.replace(/\+/g, " "));
177
+ } catch {
178
+ return key;
179
+ }
180
+ }
181
+ function buildSsoUrl(startUrl, { returnTo, companySlug } = {}) {
182
+ const raw = String(startUrl != null ? startUrl : "");
183
+ const hashAt = raw.indexOf("#");
184
+ const hash = hashAt === -1 ? "" : raw.slice(hashAt);
185
+ const beforeHash = hashAt === -1 ? raw : raw.slice(0, hashAt);
186
+ const queryAt = beforeHash.indexOf("?");
187
+ const path = queryAt === -1 ? beforeHash : beforeHash.slice(0, queryAt);
188
+ const query = queryAt === -1 ? "" : beforeHash.slice(queryAt + 1);
189
+ const add = [
190
+ ["return_to", returnTo],
191
+ ["dt_company", companySlug]
192
+ ].filter(([, v]) => v != null && v !== "");
193
+ const replaced = new Set(add.map(([k]) => k));
194
+ const params = query.split("&").filter((p) => p && !replaced.has(decodeKey(p))).concat(add.map(([k, v]) => `${k}=${encodeURIComponent(String(v))}`));
195
+ return `${path}${params.length ? `?${params.join("&")}` : ""}${hash}`;
196
+ }
197
+
198
+ // src/icons.jsx
169
199
  var import_react2 = require("react");
200
+ var import_jsx_runtime2 = require("react/jsx-runtime");
201
+ var base = {
202
+ viewBox: "0 0 24 24",
203
+ fill: "none",
204
+ stroke: "currentColor",
205
+ strokeWidth: 2,
206
+ strokeLinecap: "round",
207
+ strokeLinejoin: "round",
208
+ "aria-hidden": "true",
209
+ focusable: "false"
210
+ };
211
+ var make = (paths) => function Icon({ size = 16, className = "dt-lp-icon" }) {
212
+ return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("svg", { ...base, width: size, height: size, className, children: paths });
213
+ };
214
+ var ArrowRight = make(/* @__PURE__ */ (0, import_jsx_runtime2.jsx)("path", { d: "M5 12h14M13 6l6 6-6 6" }));
215
+ var ChevronRight = make(/* @__PURE__ */ (0, import_jsx_runtime2.jsx)("path", { d: "m9 6 6 6-6 6" }));
216
+ var Check = make(/* @__PURE__ */ (0, import_jsx_runtime2.jsx)("path", { d: "M20 6 9 17l-5-5" }));
217
+ var Help = make(
218
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(import_jsx_runtime2.Fragment, { children: [
219
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("circle", { cx: "12", cy: "12", r: "10" }),
220
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("path", { d: "M9.1 9a3 3 0 0 1 5.8 1c0 2-3 3-3 3M12 17h.01" })
221
+ ] })
222
+ );
223
+ var Alert = make(
224
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(import_jsx_runtime2.Fragment, { children: [
225
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("path", { d: "M10.3 3.9 1.8 18a2 2 0 0 0 1.7 3h17a2 2 0 0 0 1.7-3L13.7 3.9a2 2 0 0 0-3.4 0Z" }),
226
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("path", { d: "M12 9v4M12 17h.01" })
227
+ ] })
228
+ );
229
+ var MenuIcon = make(/* @__PURE__ */ (0, import_jsx_runtime2.jsx)("path", { d: "M4 6h16M4 12h16M4 18h16" }));
230
+ var Close = make(/* @__PURE__ */ (0, import_jsx_runtime2.jsx)("path", { d: "M18 6 6 18M6 6l12 12" }));
231
+ var Calendar = make(
232
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(import_jsx_runtime2.Fragment, { children: [
233
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("rect", { x: "3", y: "4", width: "18", height: "18", rx: "2" }),
234
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("path", { d: "M16 2v4M8 2v4M3 10h18m-12 6 2 2 4-4" })
235
+ ] })
236
+ );
237
+ function renderIcon(icon, size = 20, className = "dt-lp-icon") {
238
+ if (!icon) return null;
239
+ if ((0, import_react2.isValidElement)(icon)) return icon;
240
+ return (0, import_react2.createElement)(icon, { size, "aria-hidden": true, className, strokeWidth: 1.8 });
241
+ }
242
+
243
+ // src/DreamtreeSso.jsx
244
+ var import_jsx_runtime3 = require("react/jsx-runtime");
245
+ var DEFAULT_SSO_LABEL = "Continue with Dreamtree";
246
+ function DreamtreeSso({ provider, children }) {
247
+ const { startUrl, mode, label = DEFAULT_SSO_LABEL, companySlug, returnTo } = provider;
248
+ const isSso = mode === "sso";
249
+ const autoRedirect = isSso && provider.autoRedirect !== false;
250
+ const href = buildSsoUrl(startUrl, { returnTo, companySlug });
251
+ const redirected = (0, import_react3.useRef)(false);
252
+ (0, import_react3.useEffect)(() => {
253
+ if (!autoRedirect || redirected.current) return;
254
+ redirected.current = true;
255
+ window.location.assign(href);
256
+ }, [autoRedirect, href]);
257
+ const button = /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("a", { className: "dt-auth-sso-btn", href, children: [
258
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("span", { children: label }),
259
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(ArrowRight, { size: 16, className: "dt-auth-sso-icon" })
260
+ ] });
261
+ if (isSso) {
262
+ return /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("div", { className: "dt-auth-sso dt-auth-sso--only", children: [
263
+ autoRedirect ? /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("p", { className: "dt-auth-sso-status", role: "status", "aria-live": "polite", children: [
264
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("span", { className: "dt-auth-sso-spinner", "aria-hidden": "true" }),
265
+ "Redirecting to Dreamtree ID\u2026"
266
+ ] }) : null,
267
+ button
268
+ ] });
269
+ }
270
+ return /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)(import_jsx_runtime3.Fragment, { children: [
271
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("div", { className: "dt-auth-sso", children: button }),
272
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("div", { className: "dt-auth-or", children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("span", { children: "or" }) }),
273
+ children
274
+ ] });
275
+ }
276
+
277
+ // src/useTapReveal.js
278
+ var import_react4 = require("react");
170
279
  function useTapReveal({ taps = 4, windowMs = 1500 } = {}) {
171
- const [revealed, setRevealed] = (0, import_react2.useState)(false);
172
- const count = (0, import_react2.useRef)(0);
173
- const last = (0, import_react2.useRef)(0);
174
- const onClick = (0, import_react2.useCallback)(() => {
280
+ const [revealed, setRevealed] = (0, import_react4.useState)(false);
281
+ const count = (0, import_react4.useRef)(0);
282
+ const last = (0, import_react4.useRef)(0);
283
+ const onClick = (0, import_react4.useCallback)(() => {
175
284
  if (revealed) return;
176
285
  const now = Date.now();
177
286
  count.current = now - last.current <= windowMs ? count.current + 1 : 1;
@@ -182,7 +291,7 @@ function useTapReveal({ taps = 4, windowMs = 1500 } = {}) {
182
291
  }
183
292
 
184
293
  // src/AuthShell.jsx
185
- var import_jsx_runtime2 = require("react/jsx-runtime");
294
+ var import_jsx_runtime4 = require("react/jsx-runtime");
186
295
  var DEFAULT_LEGAL = [
187
296
  { label: "Privacy Policy", href: "/privacy" },
188
297
  { label: "Terms", href: "/terms" },
@@ -190,10 +299,10 @@ var DEFAULT_LEGAL = [
190
299
  ];
191
300
  function BrandMark({ brand, size }) {
192
301
  if (brand.logoSrc) {
193
- return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("img", { className: "dt-auth-mark-img", src: brand.logoSrc, alt: "", width: size, height: size });
302
+ return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("img", { className: "dt-auth-mark-img", src: brand.logoSrc, alt: "", width: size, height: size });
194
303
  }
195
- if (brand.mark) return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("span", { className: "dt-auth-mark-node", children: brand.mark });
196
- return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("span", { className: "dt-auth-monogram", style: { width: size, height: size }, "aria-hidden": "true", children: brand.name.charAt(0) });
304
+ if (brand.mark) return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("span", { className: "dt-auth-mark-node", children: brand.mark });
305
+ return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("span", { className: "dt-auth-monogram", style: { width: size, height: size }, "aria-hidden": "true", children: brand.name.charAt(0) });
197
306
  }
198
307
  function brandStyle(brand) {
199
308
  return {
@@ -212,52 +321,53 @@ function AuthShell({
212
321
  legalLinks = DEFAULT_LEGAL,
213
322
  linkComponent: LinkComponent,
214
323
  className = "",
215
- demoAccounts
324
+ demoAccounts,
325
+ ssoProvider
216
326
  }) {
217
327
  var _a, _b;
218
- const headingId = (0, import_react3.useId)();
328
+ const headingId = (0, import_react5.useId)();
219
329
  const { revealed, tapProps } = useTapReveal({ taps: (_a = demoAccounts == null ? void 0 : demoAccounts.taps) != null ? _a : 4 });
220
330
  const isPlatform = variant === "platform";
221
331
  const headline = isPlatform ? brand.platformHeadline || "Platform administration" : brand.headline;
222
332
  const pitch = isPlatform ? brand.platformPitch || `Super administrator console for ${brand.name}. Every action here is audited.` : brand.pitch;
223
- const renderLink = (l) => LinkComponent ? /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(LinkComponent, { to: l.href, href: l.href, className: "dt-auth-legal-link", children: l.label }, l.href) : /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("a", { href: l.href, className: "dt-auth-legal-link", children: l.label }, l.href);
224
- return /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(
333
+ const renderLink = (l) => LinkComponent ? /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(LinkComponent, { to: l.href, href: l.href, className: "dt-auth-legal-link", children: l.label }, l.href) : /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("a", { href: l.href, className: "dt-auth-legal-link", children: l.label }, l.href);
334
+ return /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(
225
335
  "div",
226
336
  {
227
337
  className: `dt-auth ${isPlatform ? "dt-auth--platform" : ""} ${className}`,
228
338
  style: brandStyle(brand),
229
339
  "data-product": brand.id,
230
340
  children: [
231
- /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("aside", { className: "dt-auth-panel", children: [
232
- /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("a", { href: "/", className: "dt-auth-brand", children: [
233
- /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(BrandMark, { brand, size: 28 }),
234
- /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("span", { className: "dt-auth-brand-name", children: brand.name }),
235
- isPlatform ? /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("span", { className: "dt-auth-badge", children: "Platform" }) : null
341
+ /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)("aside", { className: "dt-auth-panel", children: [
342
+ /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)("a", { href: "/", className: "dt-auth-brand", children: [
343
+ /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(BrandMark, { brand, size: 28 }),
344
+ /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("span", { className: "dt-auth-brand-name", children: brand.name }),
345
+ isPlatform ? /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("span", { className: "dt-auth-badge", children: "Platform" }) : null
236
346
  ] }),
237
- /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("div", { className: "dt-auth-pitch", children: [
238
- /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("h2", { children: headline }),
239
- pitch ? /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("p", { children: pitch }) : null,
240
- !isPlatform && ((_b = brand.points) == null ? void 0 : _b.length) ? /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("ul", { children: brand.points.map((p) => /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("li", { children: p }, p)) }) : null
347
+ /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)("div", { className: "dt-auth-pitch", children: [
348
+ /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("h2", { children: headline }),
349
+ pitch ? /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("p", { children: pitch }) : null,
350
+ !isPlatform && ((_b = brand.points) == null ? void 0 : _b.length) ? /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("ul", { children: brand.points.map((p) => /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("li", { children: p }, p)) }) : null
241
351
  ] }),
242
- /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("p", { className: "dt-auth-panel-foot", children: brand.category || "by Dreamtree-Org" })
352
+ /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("p", { className: "dt-auth-panel-foot", children: brand.category || "by Dreamtree-Org" })
243
353
  ] }),
244
- /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("main", { className: "dt-auth-main", children: /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("div", { className: "dt-auth-column", children: [
245
- /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("a", { href: "/", className: "dt-auth-brand dt-auth-brand--mobile", children: [
246
- /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(BrandMark, { brand, size: 24 }),
247
- /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("span", { className: "dt-auth-brand-name", children: brand.name }),
248
- isPlatform ? /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("span", { className: "dt-auth-badge", children: "Platform" }) : null
354
+ /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("main", { className: "dt-auth-main", children: /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)("div", { className: "dt-auth-column", children: [
355
+ /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)("a", { href: "/", className: "dt-auth-brand dt-auth-brand--mobile", children: [
356
+ /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(BrandMark, { brand, size: 24 }),
357
+ /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("span", { className: "dt-auth-brand-name", children: brand.name }),
358
+ isPlatform ? /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("span", { className: "dt-auth-badge", children: "Platform" }) : null
249
359
  ] }),
250
- /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("section", { className: "dt-auth-card", "aria-labelledby": headingId, children: [
251
- /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("header", { className: "dt-auth-head", children: [
252
- /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("h1", { id: headingId, ...demoAccounts ? tapProps : {}, children: title2 }),
253
- subtitle ? /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("p", { children: subtitle }) : null
360
+ /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)("section", { className: "dt-auth-card", "aria-labelledby": headingId, children: [
361
+ /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)("header", { className: "dt-auth-head", children: [
362
+ /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("h1", { id: headingId, ...demoAccounts ? tapProps : {}, children: title2 }),
363
+ subtitle ? /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("p", { children: subtitle }) : null
254
364
  ] }),
255
- children,
256
- demoAccounts && revealed ? /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(DemoAccounts, { load: demoAccounts.load, onSelect: demoAccounts.onSelect }) : null
365
+ ssoProvider ? /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(DreamtreeSso, { provider: ssoProvider, children }) : children,
366
+ demoAccounts && revealed && (ssoProvider == null ? void 0 : ssoProvider.mode) !== "sso" ? /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(DemoAccounts, { load: demoAccounts.load, onSelect: demoAccounts.onSelect }) : null
257
367
  ] }),
258
- footer ? /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("div", { className: "dt-auth-footer", children: footer }) : null,
259
- (legalLinks == null ? void 0 : legalLinks.length) ? /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("nav", { className: "dt-auth-legal", "aria-label": "Legal", children: legalLinks.map((l, i) => /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("span", { className: "dt-auth-legal-item", children: [
260
- i > 0 ? /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("span", { "aria-hidden": "true", children: "\xB7" }) : null,
368
+ footer ? /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("div", { className: "dt-auth-footer", children: footer }) : null,
369
+ (legalLinks == null ? void 0 : legalLinks.length) ? /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("nav", { className: "dt-auth-legal", "aria-label": "Legal", children: legalLinks.map((l, i) => /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)("span", { className: "dt-auth-legal-item", children: [
370
+ i > 0 ? /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("span", { "aria-hidden": "true", children: "\xB7" }) : null,
261
371
  renderLink(l)
262
372
  ] }, l.href)) }) : null
263
373
  ] }) })
@@ -267,11 +377,11 @@ function AuthShell({
267
377
  }
268
378
 
269
379
  // src/context.jsx
270
- var import_react4 = require("react");
271
- var import_jsx_runtime3 = require("react/jsx-runtime");
272
- var LandingContext = (0, import_react4.createContext)({ brand: null, linkComponent: null, onBookDemo: null, home: true });
380
+ var import_react6 = require("react");
381
+ var import_jsx_runtime5 = require("react/jsx-runtime");
382
+ var LandingContext = (0, import_react6.createContext)({ brand: null, linkComponent: null, onBookDemo: null, home: true });
273
383
  var LandingProvider = LandingContext.Provider;
274
- var useLanding = () => (0, import_react4.useContext)(LandingContext);
384
+ var useLanding = () => (0, import_react6.useContext)(LandingContext);
275
385
  function resolveHref(href, home) {
276
386
  if (!href) return href;
277
387
  return !home && href.startsWith("#") ? `/${href}` : href;
@@ -281,95 +391,50 @@ function SmartLink({ href, children, className, reload, ...rest }) {
281
391
  const to = resolveHref(href, home);
282
392
  const internal = to && to.startsWith("/") && !to.startsWith("//") && !to.includes("#");
283
393
  if (Link && internal && !reload) {
284
- return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(Link, { to, href: to, className, ...rest, children });
394
+ return /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(Link, { to, href: to, className, ...rest, children });
285
395
  }
286
- return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("a", { href: to, className, ...rest, children });
396
+ return /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("a", { href: to, className, ...rest, children });
287
397
  }
288
398
 
289
399
  // src/Header.jsx
290
- var import_react6 = require("react");
291
-
292
- // src/icons.jsx
293
- var import_react5 = require("react");
294
- var import_jsx_runtime4 = require("react/jsx-runtime");
295
- var base = {
296
- viewBox: "0 0 24 24",
297
- fill: "none",
298
- stroke: "currentColor",
299
- strokeWidth: 2,
300
- strokeLinecap: "round",
301
- strokeLinejoin: "round",
302
- "aria-hidden": "true",
303
- focusable: "false"
304
- };
305
- var make = (paths) => function Icon({ size = 16, className = "dt-lp-icon" }) {
306
- return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("svg", { ...base, width: size, height: size, className, children: paths });
307
- };
308
- var ArrowRight = make(/* @__PURE__ */ (0, import_jsx_runtime4.jsx)("path", { d: "M5 12h14M13 6l6 6-6 6" }));
309
- var ChevronRight = make(/* @__PURE__ */ (0, import_jsx_runtime4.jsx)("path", { d: "m9 6 6 6-6 6" }));
310
- var Check = make(/* @__PURE__ */ (0, import_jsx_runtime4.jsx)("path", { d: "M20 6 9 17l-5-5" }));
311
- var Help = make(
312
- /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(import_jsx_runtime4.Fragment, { children: [
313
- /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("circle", { cx: "12", cy: "12", r: "10" }),
314
- /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("path", { d: "M9.1 9a3 3 0 0 1 5.8 1c0 2-3 3-3 3M12 17h.01" })
315
- ] })
316
- );
317
- var Alert = make(
318
- /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(import_jsx_runtime4.Fragment, { children: [
319
- /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("path", { d: "M10.3 3.9 1.8 18a2 2 0 0 0 1.7 3h17a2 2 0 0 0 1.7-3L13.7 3.9a2 2 0 0 0-3.4 0Z" }),
320
- /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("path", { d: "M12 9v4M12 17h.01" })
321
- ] })
322
- );
323
- var MenuIcon = make(/* @__PURE__ */ (0, import_jsx_runtime4.jsx)("path", { d: "M4 6h16M4 12h16M4 18h16" }));
324
- var Close = make(/* @__PURE__ */ (0, import_jsx_runtime4.jsx)("path", { d: "M18 6 6 18M6 6l12 12" }));
325
- var Calendar = make(
326
- /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(import_jsx_runtime4.Fragment, { children: [
327
- /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("rect", { x: "3", y: "4", width: "18", height: "18", rx: "2" }),
328
- /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("path", { d: "M16 2v4M8 2v4M3 10h18m-12 6 2 2 4-4" })
329
- ] })
330
- );
331
- function renderIcon(icon, size = 20, className = "dt-lp-icon") {
332
- if (!icon) return null;
333
- if ((0, import_react5.isValidElement)(icon)) return icon;
334
- return (0, import_react5.createElement)(icon, { size, "aria-hidden": true, className, strokeWidth: 1.8 });
335
- }
400
+ var import_react7 = require("react");
336
401
 
337
402
  // src/Brand.jsx
338
- var import_jsx_runtime5 = require("react/jsx-runtime");
403
+ var import_jsx_runtime6 = require("react/jsx-runtime");
339
404
  function BrandMark2({ brand, size = 36 }) {
340
405
  if (brand.logoSrc) {
341
- return /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("img", { className: "dt-lp-mark-img", src: brand.logoSrc, alt: "", width: size, height: size });
406
+ return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("img", { className: "dt-lp-mark-img", src: brand.logoSrc, alt: "", width: size, height: size });
342
407
  }
343
- if (brand.mark) return /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("span", { className: "dt-lp-mark-node", "aria-hidden": "true", children: brand.mark });
344
- return /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("span", { className: "dt-lp-monogram", style: { width: size, height: size }, "aria-hidden": "true", children: brand.name.charAt(0) });
408
+ if (brand.mark) return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("span", { className: "dt-lp-mark-node", "aria-hidden": "true", children: brand.mark });
409
+ return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("span", { className: "dt-lp-monogram", style: { width: size, height: size }, "aria-hidden": "true", children: brand.name.charAt(0) });
345
410
  }
346
411
  function Wordmark({ name }) {
347
412
  const m = /^(.+?)(Pro)$/.exec(name);
348
- if (!m) return /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("span", { className: "dt-lp-wordmark", children: name });
349
- return /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("span", { className: "dt-lp-wordmark", children: [
413
+ if (!m) return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("span", { className: "dt-lp-wordmark", children: name });
414
+ return /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)("span", { className: "dt-lp-wordmark", children: [
350
415
  m[1],
351
- /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("span", { className: "dt-lp-wordmark-hi", children: m[2] })
416
+ /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("span", { className: "dt-lp-wordmark-hi", children: m[2] })
352
417
  ] });
353
418
  }
354
419
  function BrandLockup({ brand: own2, byline = "by Dreamtree-Org", href = "/" }) {
355
420
  const ctx = useLanding();
356
421
  const brand = own2 || ctx.brand;
357
422
  if (!brand) return null;
358
- return /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("a", { href, className: "dt-lp-brand", "aria-label": `${brand.name}${byline ? ` ${byline}` : ""}, home`, children: [
359
- /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(BrandMark2, { brand }),
360
- /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("span", { className: "dt-lp-brand-text", "aria-hidden": "true", children: [
361
- /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(Wordmark, { name: brand.name }),
362
- byline ? /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("span", { className: "dt-lp-byline", children: byline }) : null
423
+ return /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)("a", { href, className: "dt-lp-brand", "aria-label": `${brand.name}${byline ? ` ${byline}` : ""}, home`, children: [
424
+ /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(BrandMark2, { brand }),
425
+ /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)("span", { className: "dt-lp-brand-text", "aria-hidden": "true", children: [
426
+ /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(Wordmark, { name: brand.name }),
427
+ byline ? /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("span", { className: "dt-lp-byline", children: byline }) : null
363
428
  ] })
364
429
  ] });
365
430
  }
366
431
 
367
432
  // src/BookDemoButton.jsx
368
- var import_jsx_runtime6 = require("react/jsx-runtime");
433
+ var import_jsx_runtime7 = require("react/jsx-runtime");
369
434
  function BookDemoButton({ size = "md", variant = "primary", className = "", children = "Book a demo", onClick }) {
370
435
  const { onBookDemo } = useLanding();
371
436
  const handler = onClick || (onBookDemo ? (e) => onBookDemo(e.currentTarget) : void 0);
372
- return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
437
+ return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
373
438
  "button",
374
439
  {
375
440
  type: "button",
@@ -383,61 +448,61 @@ function BookDemoButton({ size = "md", variant = "primary", className = "", chil
383
448
  }
384
449
 
385
450
  // src/Section.jsx
386
- var import_jsx_runtime7 = require("react/jsx-runtime");
451
+ var import_jsx_runtime8 = require("react/jsx-runtime");
387
452
  function Wrap({ className = "", narrow, children }) {
388
- return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("div", { className: `dt-lp-wrap${narrow ? " dt-lp-wrap--narrow" : ""} ${className}`.trim(), children });
453
+ return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("div", { className: `dt-lp-wrap${narrow ? " dt-lp-wrap--narrow" : ""} ${className}`.trim(), children });
389
454
  }
390
455
  function Eyebrow({ children, className = "" }) {
391
456
  if (!children) return null;
392
- return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("p", { className: `dt-lp-eyebrow ${className}`.trim(), children });
457
+ return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("p", { className: `dt-lp-eyebrow ${className}`.trim(), children });
393
458
  }
394
459
  function SectionIntro({ id, eyebrow, title: title2, body, align = "start", children }) {
395
- return /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("div", { className: `dt-lp-intro dt-lp-intro--${align}`, children: [
396
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(Eyebrow, { children: eyebrow }),
397
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("h2", { id, className: "dt-lp-h2", children: title2 }),
398
- body ? /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("p", { className: "dt-lp-lead", children: body }) : null,
460
+ return /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("div", { className: `dt-lp-intro dt-lp-intro--${align}`, children: [
461
+ /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(Eyebrow, { children: eyebrow }),
462
+ /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("h2", { id, className: "dt-lp-h2", children: title2 }),
463
+ body ? /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("p", { className: "dt-lp-lead", children: body }) : null,
399
464
  children
400
465
  ] });
401
466
  }
402
467
  function Section({ id, labelledBy, tone: tone2 = "plain", className = "", children, narrow }) {
403
- return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("section", { id, "aria-labelledby": labelledBy, className: `dt-lp-section dt-lp-tone--${tone2} ${className}`.trim(), children: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(Wrap, { narrow, children }) });
468
+ return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("section", { id, "aria-labelledby": labelledBy, className: `dt-lp-section dt-lp-tone--${tone2} ${className}`.trim(), children: /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(Wrap, { narrow, children }) });
404
469
  }
405
470
  function TextLink({ href, children, className = "", ...rest }) {
406
- return /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(SmartLink, { href, className: `dt-lp-textlink ${className}`.trim(), ...rest, children: [
471
+ return /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)(SmartLink, { href, className: `dt-lp-textlink ${className}`.trim(), ...rest, children: [
407
472
  children,
408
473
  " ",
409
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(ArrowRight, {})
474
+ /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(ArrowRight, {})
410
475
  ] });
411
476
  }
412
477
  function Cta({ cta, className = "" }) {
413
478
  if (!cta) return null;
414
479
  if (Array.isArray(cta)) {
415
480
  if (!cta.length) return null;
416
- return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("div", { className: `dt-lp-ctas ${className}`.trim(), children: cta.map((c2, i) => /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(Cta, { cta: c2 }, i)) });
481
+ return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("div", { className: `dt-lp-ctas ${className}`.trim(), children: cta.map((c2, i) => /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(Cta, { cta: c2 }, i)) });
417
482
  }
418
483
  const c = typeof cta === "string" ? { label: cta, demo: true } : cta;
419
- if (c.href && !c.demo) return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(TextLink, { href: c.href, className, children: c.label });
420
- return /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(BookDemoButton, { size: "lg", className, children: [
484
+ if (c.href && !c.demo) return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(TextLink, { href: c.href, className, children: c.label });
485
+ return /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)(BookDemoButton, { size: "lg", className, children: [
421
486
  c.label,
422
487
  " ",
423
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(ArrowRight, {})
488
+ /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(ArrowRight, {})
424
489
  ] });
425
490
  }
426
491
 
427
492
  // src/Header.jsx
428
- var import_jsx_runtime8 = require("react/jsx-runtime");
493
+ var import_jsx_runtime9 = require("react/jsx-runtime");
429
494
  function Header({ nav = [], login = { label: "Log in", href: "/login" }, cta = "Book a demo", brand }) {
430
495
  const { home } = useLanding();
431
- const [open, setOpen] = (0, import_react6.useState)(false);
496
+ const [open, setOpen] = (0, import_react7.useState)(false);
432
497
  const items = login ? [...nav, login] : nav;
433
- return /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("header", { className: "dt-lp-header", children: [
434
- /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)(Wrap, { className: "dt-lp-header-bar", children: [
435
- /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(BrandLockup, { brand }),
436
- nav.length ? /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("nav", { "aria-label": "Primary", className: "dt-lp-nav", children: nav.map((n) => /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(SmartLink, { href: n.href, className: "dt-lp-nav-link", children: n.label }, n.href)) }) : null,
437
- /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("div", { className: "dt-lp-header-actions", children: [
438
- login ? /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(SmartLink, { href: login.href, className: "dt-lp-nav-link dt-lp-login", reload: true, children: login.label }) : null,
439
- cta ? /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(BookDemoButton, { size: "sm", children: cta }) : null,
440
- items.length ? /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)(
498
+ return /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)("header", { className: "dt-lp-header", children: [
499
+ /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(Wrap, { className: "dt-lp-header-bar", children: [
500
+ /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(BrandLockup, { brand }),
501
+ nav.length ? /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("nav", { "aria-label": "Primary", className: "dt-lp-nav", children: nav.map((n) => /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(SmartLink, { href: n.href, className: "dt-lp-nav-link", children: n.label }, n.href)) }) : null,
502
+ /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)("div", { className: "dt-lp-header-actions", children: [
503
+ login ? /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(SmartLink, { href: login.href, className: "dt-lp-nav-link dt-lp-login", reload: true, children: login.label }) : null,
504
+ cta ? /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(BookDemoButton, { size: "sm", children: cta }) : null,
505
+ items.length ? /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(
441
506
  "button",
442
507
  {
443
508
  type: "button",
@@ -448,29 +513,29 @@ function Header({ nav = [], login = { label: "Log in", href: "/login" }, cta = "
448
513
  "data-menu-toggle": "",
449
514
  onClick: () => setOpen((o) => !o),
450
515
  children: [
451
- /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("span", { className: "dt-lp-menu-open", children: /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(MenuIcon, { size: 20 }) }),
452
- /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("span", { className: "dt-lp-menu-close", children: /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(Close, { size: 20 }) })
516
+ /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("span", { className: "dt-lp-menu-open", children: /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(MenuIcon, { size: 20 }) }),
517
+ /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("span", { className: "dt-lp-menu-close", children: /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(Close, { size: 20 }) })
453
518
  ]
454
519
  }
455
520
  ) : null
456
521
  ] })
457
522
  ] }),
458
- items.length ? /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("nav", { id: "mobile-nav", "aria-label": "Mobile", className: "dt-lp-mobile-nav", hidden: !open, onClick: (e) => {
523
+ items.length ? /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("nav", { id: "mobile-nav", "aria-label": "Mobile", className: "dt-lp-mobile-nav", hidden: !open, onClick: (e) => {
459
524
  var _a, _b;
460
525
  return ((_b = (_a = e.target).closest) == null ? void 0 : _b.call(_a, "a")) && setOpen(false);
461
- }, children: /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(Wrap, { children: /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("ul", { children: items.map((n) => /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("li", { children: /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(SmartLink, { href: n.href, reload: n === login, children: n.label }) }, n.href)) }) }) }) : null
526
+ }, children: /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(Wrap, { children: /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("ul", { children: items.map((n) => /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("li", { children: /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(SmartLink, { href: n.href, reload: n === login, children: n.label }) }, n.href)) }) }) }) : null
462
527
  ] });
463
528
  }
464
529
 
465
530
  // src/DreamtreeFooter.jsx
466
- var import_jsx_runtime9 = require("react/jsx-runtime");
531
+ var import_jsx_runtime10 = require("react/jsx-runtime");
467
532
  function DreamtreeMark({ size = 28 }) {
468
- return /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)("span", { className: "dt-lp-org", role: "img", "aria-label": "Dreamtree-Org", children: [
469
- /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("svg", { viewBox: "0 0 48.35 48.35", width: size, height: size, "aria-hidden": "true", children: /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)("g", { fill: "none", strokeWidth: "4", strokeLinecap: "round", strokeLinejoin: "round", stroke: "#0f766e", children: [
470
- /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("path", { d: "M23.01,44.02c-9.02.03-16.36-7.27-16.39-16.29-.02-7.98,5.72-14.81,13.59-16.16,13.31-2.57,16.81-3.78,21.48-9.57,2.33,4.67,4.67,9.76,4.67,18.67,0,12.84-11.16,23.34-23.34,23.34Z" }),
471
- /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("path", { d: "M2,46.35c0-7,4.32-12.51,11.86-14.01,5.65-1.12,11.49-4.67,13.82-7" })
533
+ return /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)("span", { className: "dt-lp-org", role: "img", "aria-label": "Dreamtree-Org", children: [
534
+ /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("svg", { viewBox: "0 0 48.35 48.35", width: size, height: size, "aria-hidden": "true", children: /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)("g", { fill: "none", strokeWidth: "4", strokeLinecap: "round", strokeLinejoin: "round", stroke: "#0f766e", children: [
535
+ /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("path", { d: "M23.01,44.02c-9.02.03-16.36-7.27-16.39-16.29-.02-7.98,5.72-14.81,13.59-16.16,13.31-2.57,16.81-3.78,21.48-9.57,2.33,4.67,4.67,9.76,4.67,18.67,0,12.84-11.16,23.34-23.34,23.34Z" }),
536
+ /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("path", { d: "M2,46.35c0-7,4.32-12.51,11.86-14.01,5.65-1.12,11.49-4.67,13.82-7" })
472
537
  ] }) }),
473
- /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("span", { "aria-hidden": "true", className: "dt-lp-org-name", children: "Dreamtree-Org" })
538
+ /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("span", { "aria-hidden": "true", className: "dt-lp-org-name", children: "Dreamtree-Org" })
474
539
  ] });
475
540
  }
476
541
  function DreamtreeFooter({
@@ -484,27 +549,27 @@ function DreamtreeFooter({
484
549
  }) {
485
550
  const ctx = useLanding();
486
551
  const brand = own2 || ctx.brand;
487
- return /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)("footer", { className: "dt-lp-footer", children: [
488
- /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(Wrap, { className: `dt-lp-footer-grid dt-lp-footer-grid--${Math.min(columns.length, 3)}`, children: [
489
- /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)("div", { className: "dt-lp-footer-about", children: [
490
- /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(DreamtreeMark, {}),
491
- blurb ? /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("p", { children: blurb }) : null
552
+ return /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)("footer", { className: "dt-lp-footer", children: [
553
+ /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(Wrap, { className: `dt-lp-footer-grid dt-lp-footer-grid--${Math.min(columns.length, 3)}`, children: [
554
+ /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)("div", { className: "dt-lp-footer-about", children: [
555
+ /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(DreamtreeMark, {}),
556
+ blurb ? /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("p", { children: blurb }) : null
492
557
  ] }),
493
- columns.map((col) => /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)("nav", { "aria-label": col.label || col.title, className: "dt-lp-footer-col", children: [
494
- /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("p", { className: "dt-lp-footer-title", children: col.title }),
495
- /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("ul", { className: col.links.length > 5 && col.compact !== false ? "dt-lp-footer-links" : "dt-lp-footer-links dt-lp-footer-links--one", children: col.links.map((l) => /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("li", { children: /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(SmartLink, { href: l.href, reload: l.reload, children: l.label }) }, l.href)) })
558
+ columns.map((col) => /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)("nav", { "aria-label": col.label || col.title, className: "dt-lp-footer-col", children: [
559
+ /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("p", { className: "dt-lp-footer-title", children: col.title }),
560
+ /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("ul", { className: col.links.length > 5 && col.compact !== false ? "dt-lp-footer-links" : "dt-lp-footer-links dt-lp-footer-links--one", children: col.links.map((l) => /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("li", { children: /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(SmartLink, { href: l.href, reload: l.reload, children: l.label }) }, l.href)) })
496
561
  ] }, col.title))
497
562
  ] }),
498
- /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("div", { className: "dt-lp-footer-bar", children: /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(Wrap, { className: "dt-lp-footer-bar-inner", children: [
499
- /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)("p", { children: [
563
+ /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("div", { className: "dt-lp-footer-bar", children: /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(Wrap, { className: "dt-lp-footer-bar-inner", children: [
564
+ /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)("p", { children: [
500
565
  "\xA9 ",
501
566
  year,
502
567
  " ",
503
568
  org,
504
569
  ". All rights reserved."
505
570
  ] }),
506
- legal.length ? /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("nav", { "aria-label": "Legal", className: "dt-lp-footer-legal", children: legal.map((l) => /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(SmartLink, { href: l.href, children: l.label }, l.href)) }) : null,
507
- brand && tagline ? /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)("p", { children: [
571
+ legal.length ? /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("nav", { "aria-label": "Legal", className: "dt-lp-footer-legal", children: legal.map((l) => /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(SmartLink, { href: l.href, children: l.label }, l.href)) }) : null,
572
+ brand && tagline ? /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)("p", { children: [
508
573
  brand.name,
509
574
  ": ",
510
575
  tagline
@@ -514,7 +579,7 @@ function DreamtreeFooter({
514
579
  }
515
580
 
516
581
  // src/MarketingLayout.jsx
517
- var import_jsx_runtime10 = require("react/jsx-runtime");
582
+ var import_jsx_runtime11 = require("react/jsx-runtime");
518
583
  function MarketingLayout({
519
584
  brand,
520
585
  nav = [],
@@ -530,16 +595,16 @@ function MarketingLayout({
530
595
  if (!brand || !brand.name) {
531
596
  throw new Error(`landing-kit: "brand" is missing. Pass getBrand('<product>') from @dreamtree-org/auth-kit, or your own { id, name, primary }.`);
532
597
  }
533
- return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(LandingProvider, { value: { brand, linkComponent, onBookDemo, home }, children: /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)("div", { className: `dt-landing ${className}`.trim(), style: brandStyle(brand), "data-product": brand.id, children: [
534
- /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("a", { href: "#main", className: "dt-lp-skip", children: "Skip to content" }),
535
- /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(Header, { nav, ...login !== void 0 ? { login } : {}, ...cta !== void 0 ? { cta } : {} }),
536
- /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("main", { id: "main", children }),
537
- footer === false ? null : /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(DreamtreeFooter, { ...footer || {} })
598
+ return /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(LandingProvider, { value: { brand, linkComponent, onBookDemo, home }, children: /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)("div", { className: `dt-landing ${className}`.trim(), style: brandStyle(brand), "data-product": brand.id, children: [
599
+ /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("a", { href: "#main", className: "dt-lp-skip", children: "Skip to content" }),
600
+ /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(Header, { nav, ...login !== void 0 ? { login } : {}, ...cta !== void 0 ? { cta } : {} }),
601
+ /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("main", { id: "main", children }),
602
+ footer === false ? null : /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(DreamtreeFooter, { ...footer || {} })
538
603
  ] }) });
539
604
  }
540
605
 
541
606
  // src/Hero.jsx
542
- var import_jsx_runtime11 = require("react/jsx-runtime");
607
+ var import_jsx_runtime12 = require("react/jsx-runtime");
543
608
  function Hero({
544
609
  eyebrow,
545
610
  title: title2,
@@ -554,169 +619,169 @@ function Hero({
554
619
  backdrop
555
620
  }) {
556
621
  const [first, hi] = Array.isArray(title2) ? title2 : [title2, null];
557
- return /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)("section", { id, "aria-labelledby": "hero-title", className: `dt-lp-hero${overlap ? " dt-lp-hero--overlap" : ""}`, children: [
558
- /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("div", { className: "dt-lp-hero-glow", "aria-hidden": "true" }),
559
- backdrop ? /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("div", { className: "dt-lp-hero-backdrop", "aria-hidden": "true", children: backdrop }) : null,
560
- /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(Wrap, { className: "dt-lp-hero-inner", children: [
561
- /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(Eyebrow, { children: eyebrow }),
562
- /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)("h1", { id: "hero-title", className: "dt-lp-h1", children: [
622
+ return /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("section", { id, "aria-labelledby": "hero-title", className: `dt-lp-hero${overlap ? " dt-lp-hero--overlap" : ""}`, children: [
623
+ /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("div", { className: "dt-lp-hero-glow", "aria-hidden": "true" }),
624
+ backdrop ? /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("div", { className: "dt-lp-hero-backdrop", "aria-hidden": "true", children: backdrop }) : null,
625
+ /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(Wrap, { className: "dt-lp-hero-inner", children: [
626
+ /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(Eyebrow, { children: eyebrow }),
627
+ /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("h1", { id: "hero-title", className: "dt-lp-h1", children: [
563
628
  first,
564
- hi ? /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(import_jsx_runtime11.Fragment, { children: [
629
+ hi ? /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(import_jsx_runtime12.Fragment, { children: [
565
630
  " ",
566
- /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("span", { className: "dt-lp-h1-hi", children: hi })
631
+ /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("span", { className: "dt-lp-h1-hi", children: hi })
567
632
  ] }) : null
568
633
  ] }),
569
- subtitle ? /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("p", { className: "dt-lp-hero-subtitle", children: subtitle }) : null,
570
- lead ? /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("p", { className: "dt-lp-hero-lead", children: lead }) : null,
571
- /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)("div", { className: "dt-lp-actions", children: [
572
- cta ? /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(BookDemoButton, { size: "lg", children: cta }) : null,
573
- secondary ? /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(TextLink, { href: secondary.href, children: secondary.label }) : null
634
+ subtitle ? /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("p", { className: "dt-lp-hero-subtitle", children: subtitle }) : null,
635
+ lead ? /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("p", { className: "dt-lp-hero-lead", children: lead }) : null,
636
+ /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("div", { className: "dt-lp-actions", children: [
637
+ cta ? /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(BookDemoButton, { size: "lg", children: cta }) : null,
638
+ secondary ? /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(TextLink, { href: secondary.href, children: secondary.label }) : null
574
639
  ] }),
575
- (chips == null ? void 0 : chips.length) ? /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("ul", { className: "dt-lp-chips", "aria-label": chipsLabel, children: chips.map((c) => /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("li", { children: c }, c)) }) : null
640
+ (chips == null ? void 0 : chips.length) ? /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("ul", { className: "dt-lp-chips", "aria-label": chipsLabel, children: chips.map((c) => /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("li", { children: c }, c)) }) : null
576
641
  ] })
577
642
  ] });
578
643
  }
579
644
 
580
645
  // src/FeatureSection.jsx
581
- var import_jsx_runtime12 = require("react/jsx-runtime");
646
+ var import_jsx_runtime13 = require("react/jsx-runtime");
582
647
  var asItem = (x) => typeof x === "string" ? { title: x } : x;
583
648
  function Items({ items, kind }) {
584
- return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("ul", { className: `dt-lp-grid dt-lp-grid--${kind}`, children: items.map(asItem).map((f) => /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("li", { className: `dt-lp-card dt-lp-card--${kind}`, children: [
585
- f.icon ? /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("span", { className: "dt-lp-icon-tile", children: renderIcon(f.icon, 20) }) : null,
586
- /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("div", { className: "dt-lp-card-text", children: [
587
- f.label ? /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("p", { className: "dt-lp-kicker", children: f.label }) : null,
588
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("h3", { className: "dt-lp-h3", children: f.href ? /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(SmartLink, { href: f.href, children: f.title }) : f.title }),
589
- f.body ? /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("p", { children: f.body }) : null
649
+ return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("ul", { className: `dt-lp-grid dt-lp-grid--${kind}`, children: items.map(asItem).map((f) => /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)("li", { className: `dt-lp-card dt-lp-card--${kind}`, children: [
650
+ f.icon ? /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("span", { className: "dt-lp-icon-tile", children: renderIcon(f.icon, 20) }) : null,
651
+ /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)("div", { className: "dt-lp-card-text", children: [
652
+ f.label ? /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("p", { className: "dt-lp-kicker", children: f.label }) : null,
653
+ /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("h3", { className: "dt-lp-h3", children: f.href ? /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(SmartLink, { href: f.href, children: f.title }) : f.title }),
654
+ f.body ? /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("p", { children: f.body }) : null
590
655
  ] })
591
656
  ] }, f.title)) });
592
657
  }
593
658
  function Checklist({ items, icon: Icon = Check, tone: tone2 = "good", labelledBy }) {
594
- return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("ul", { className: `dt-lp-checklist dt-lp-checklist--${tone2}`, "aria-labelledby": labelledBy, children: items.map((x) => /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("li", { children: [
595
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(Icon, { size: 18 }),
596
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("span", { children: x })
659
+ return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("ul", { className: `dt-lp-checklist dt-lp-checklist--${tone2}`, "aria-labelledby": labelledBy, children: items.map((x) => /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)("li", { children: [
660
+ /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(Icon, { size: 18 }),
661
+ /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("span", { children: x })
597
662
  ] }, x)) });
598
663
  }
599
664
  function InlineItems({ items }) {
600
665
  if (!(items == null ? void 0 : items.length)) return null;
601
- return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("ul", { className: "dt-lp-inline-items", children: items.map(asItem).map((f) => /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("li", { children: [
666
+ return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("ul", { className: "dt-lp-inline-items", children: items.map(asItem).map((f) => /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)("li", { children: [
602
667
  f.icon ? renderIcon(f.icon, 22) : null,
603
- /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("span", { children: [
604
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("span", { className: "dt-lp-inline-title", children: f.title }),
605
- f.body ? /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("span", { className: "dt-lp-inline-body", children: f.body }) : null
668
+ /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)("span", { children: [
669
+ /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("span", { className: "dt-lp-inline-title", children: f.title }),
670
+ f.body ? /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("span", { className: "dt-lp-inline-body", children: f.body }) : null
606
671
  ] })
607
672
  ] }, f.title)) });
608
673
  }
609
674
  function Media({ children }) {
610
- return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("div", { className: "dt-lp-media", children });
675
+ return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("div", { className: "dt-lp-media", children });
611
676
  }
612
677
  function Pair({ className, reverse, text, side }) {
613
- return /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("div", { className: `${className}${reverse ? " dt-lp-pair--reverse" : ""}`, children: [
678
+ return /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)("div", { className: `${className}${reverse ? " dt-lp-pair--reverse" : ""}`, children: [
614
679
  reverse ? side : text,
615
680
  reverse ? text : side
616
681
  ] });
617
682
  }
618
683
  function Chips({ items, label, className = "" }) {
619
684
  if (!(items == null ? void 0 : items.length)) return null;
620
- return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("ul", { className: `dt-lp-chips dt-lp-chips--start ${className}`.trim(), "aria-label": label, children: items.map((c) => /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("li", { children: c }, c)) });
685
+ return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("ul", { className: `dt-lp-chips dt-lp-chips--start ${className}`.trim(), "aria-label": label, children: items.map((c) => /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("li", { children: c }, c)) });
621
686
  }
622
687
  function FeatureSection(props) {
623
688
  const { id, variant = "cards", tone: tone2, eyebrow, title: title2, body, items = [], cta, footnote, media, reverse, bullets } = props;
624
689
  const hid2 = `${id || variant}-title`;
625
690
  const defaultTone = { highlight: "dark", split: "tinted", compare: "muted" }[variant] || "plain";
626
- const shell = (children, extra = {}) => /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(Section, { id, labelledBy: hid2, tone: tone2 || defaultTone, className: `dt-lp-feature dt-lp-feature--${variant}`, ...extra, children });
691
+ const shell = (children, extra = {}) => /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(Section, { id, labelledBy: hid2, tone: tone2 || defaultTone, className: `dt-lp-feature dt-lp-feature--${variant}`, ...extra, children });
627
692
  switch (variant) {
628
693
  case "split":
629
694
  return shell(
630
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
695
+ /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
631
696
  Pair,
632
697
  {
633
698
  className: "dt-lp-split",
634
699
  reverse,
635
- text: /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(SectionIntro, { id: hid2, eyebrow, title: title2, body, children: [
636
- media ? /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(InlineItems, { items }) : null,
637
- (bullets == null ? void 0 : bullets.length) ? /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(Checklist, { items: bullets }) : null,
638
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(Cta, { cta, className: "dt-lp-mt" })
700
+ text: /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(SectionIntro, { id: hid2, eyebrow, title: title2, body, children: [
701
+ media ? /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(InlineItems, { items }) : null,
702
+ (bullets == null ? void 0 : bullets.length) ? /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(Checklist, { items: bullets }) : null,
703
+ /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(Cta, { cta, className: "dt-lp-mt" })
639
704
  ] }, "text"),
640
- side: media ? /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(Media, { children: media }, "side") : /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(Items, { items, kind: "split" }, "side")
705
+ side: media ? /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(Media, { children: media }, "side") : /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(Items, { items, kind: "split" }, "side")
641
706
  }
642
707
  )
643
708
  );
644
709
  case "list":
645
710
  return shell(
646
- /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(import_jsx_runtime12.Fragment, { children: [
647
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(SectionIntro, { id: hid2, eyebrow, title: title2, body, align: "center" }),
648
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(Items, { items, kind: "list" }),
649
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(Cta, { cta, className: "dt-lp-mt" })
711
+ /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(import_jsx_runtime13.Fragment, { children: [
712
+ /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(SectionIntro, { id: hid2, eyebrow, title: title2, body, align: "center" }),
713
+ /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(Items, { items, kind: "list" }),
714
+ /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(Cta, { cta, className: "dt-lp-mt" })
650
715
  ] })
651
716
  );
652
717
  case "intro": {
653
718
  const { subtitle, detail, note, glance = [], glanceTitle = "At a glance", link: link2 } = props;
654
719
  return shell(
655
- /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("div", { className: "dt-lp-intro-grid", children: [
656
- /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("div", { children: [
657
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(SectionIntro, { id: hid2, eyebrow, title: title2, body }),
658
- subtitle ? /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("h3", { className: "dt-lp-h3 dt-lp-h3--lg", children: subtitle }) : null,
659
- detail ? /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("p", { className: "dt-lp-body", children: detail }) : null,
660
- note ? /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("p", { className: "dt-lp-note", children: note }) : null,
661
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(Cta, { cta, className: "dt-lp-mt" })
720
+ /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)("div", { className: "dt-lp-intro-grid", children: [
721
+ /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)("div", { children: [
722
+ /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(SectionIntro, { id: hid2, eyebrow, title: title2, body }),
723
+ subtitle ? /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("h3", { className: "dt-lp-h3 dt-lp-h3--lg", children: subtitle }) : null,
724
+ detail ? /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("p", { className: "dt-lp-body", children: detail }) : null,
725
+ note ? /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("p", { className: "dt-lp-note", children: note }) : null,
726
+ /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(Cta, { cta, className: "dt-lp-mt" })
662
727
  ] }),
663
- glance.length ? /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("aside", { className: "dt-lp-glance", "aria-labelledby": `${hid2}-glance`, children: [
664
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("p", { id: `${hid2}-glance`, className: "dt-lp-eyebrow", children: glanceTitle }),
665
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(Checklist, { items: glance }),
666
- props.glanceNote ? /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("p", { className: "dt-lp-note", children: props.glanceNote }) : null,
667
- link2 ? /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(TextLink, { href: link2.href, className: "dt-lp-mt", children: link2.label }) : null
728
+ glance.length ? /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)("aside", { className: "dt-lp-glance", "aria-labelledby": `${hid2}-glance`, children: [
729
+ /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("p", { id: `${hid2}-glance`, className: "dt-lp-eyebrow", children: glanceTitle }),
730
+ /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(Checklist, { items: glance }),
731
+ props.glanceNote ? /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("p", { className: "dt-lp-note", children: props.glanceNote }) : null,
732
+ link2 ? /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(TextLink, { href: link2.href, className: "dt-lp-mt", children: link2.label }) : null
668
733
  ] }) : null
669
734
  ] })
670
735
  );
671
736
  }
672
737
  case "highlight": {
673
738
  const { note, noteLabel = "Important:" } = props;
674
- const text = /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("div", { className: "dt-lp-intro", children: [
675
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(Eyebrow, { children: eyebrow }),
676
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("h2", { id: hid2, className: "dt-lp-h2", children: title2 }),
677
- body ? /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("p", { className: "dt-lp-lead", children: body }) : null,
678
- note ? /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("p", { className: "dt-lp-callout", children: [
679
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(Alert, { size: 20 }),
680
- /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("span", { children: [
681
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("strong", { children: noteLabel }),
739
+ const text = /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)("div", { className: "dt-lp-intro", children: [
740
+ /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(Eyebrow, { children: eyebrow }),
741
+ /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("h2", { id: hid2, className: "dt-lp-h2", children: title2 }),
742
+ body ? /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("p", { className: "dt-lp-lead", children: body }) : null,
743
+ note ? /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)("p", { className: "dt-lp-callout", children: [
744
+ /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(Alert, { size: 20 }),
745
+ /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)("span", { children: [
746
+ /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("strong", { children: noteLabel }),
682
747
  " ",
683
748
  note
684
749
  ] })
685
750
  ] }) : null,
686
- media ? /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(InlineItems, { items }) : null,
687
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(Cta, { cta, className: "dt-lp-mt" })
751
+ media ? /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(InlineItems, { items }) : null,
752
+ /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(Cta, { cta, className: "dt-lp-mt" })
688
753
  ] }, "text");
689
- const side = media ? /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(Media, { children: media }, "side") : /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("ul", { className: "dt-lp-grid dt-lp-grid--chips", children: items.map(asItem).map((f) => /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("li", { className: "dt-lp-chip-card", children: [
754
+ const side = media ? /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(Media, { children: media }, "side") : /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("ul", { className: "dt-lp-grid dt-lp-grid--chips", children: items.map(asItem).map((f) => /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)("li", { className: "dt-lp-chip-card", children: [
690
755
  renderIcon(f.icon, 22),
691
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("span", { children: f.title })
756
+ /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("span", { children: f.title })
692
757
  ] }, f.title)) }, "side");
693
- return shell(/* @__PURE__ */ (0, import_jsx_runtime12.jsx)(Pair, { className: "dt-lp-split dt-lp-split--wide", reverse, text, side }));
758
+ return shell(/* @__PURE__ */ (0, import_jsx_runtime13.jsx)(Pair, { className: "dt-lp-split dt-lp-split--wide", reverse, text, side }));
694
759
  }
695
760
  case "band": {
696
761
  const { examples, examplesLabel = "Examples" } = props;
697
- const text = /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("div", { children: [
698
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(SectionIntro, { id: hid2, eyebrow, title: title2, body }),
699
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(Chips, { items: examples, label: examplesLabel, className: "dt-lp-mt" }),
700
- media ? /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(InlineItems, { items }) : null,
701
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(Cta, { cta, className: "dt-lp-mt" })
762
+ const text = /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)("div", { children: [
763
+ /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(SectionIntro, { id: hid2, eyebrow, title: title2, body }),
764
+ /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(Chips, { items: examples, label: examplesLabel, className: "dt-lp-mt" }),
765
+ media ? /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(InlineItems, { items }) : null,
766
+ /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(Cta, { cta, className: "dt-lp-mt" })
702
767
  ] }, "text");
703
- const side = media ? /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(Media, { children: media }, "side") : /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("ul", { className: "dt-lp-band-list", children: items.map(asItem).map((f) => /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("li", { children: [
768
+ const side = media ? /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(Media, { children: media }, "side") : /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("ul", { className: "dt-lp-band-list", children: items.map(asItem).map((f) => /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)("li", { children: [
704
769
  renderIcon(f.icon, 22),
705
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("span", { children: f.title })
770
+ /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("span", { children: f.title })
706
771
  ] }, f.title)) }, "side");
707
- return shell(/* @__PURE__ */ (0, import_jsx_runtime12.jsx)(Pair, { className: "dt-lp-band", reverse, text, side }));
772
+ return shell(/* @__PURE__ */ (0, import_jsx_runtime13.jsx)(Pair, { className: "dt-lp-band", reverse, text, side }));
708
773
  }
709
774
  case "compare": {
710
775
  const { columns = [] } = props;
711
776
  return shell(
712
- /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(import_jsx_runtime12.Fragment, { children: [
713
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(SectionIntro, { id: hid2, eyebrow, title: title2, body }),
714
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("div", { className: "dt-lp-compare", children: columns.map((col, i) => {
777
+ /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(import_jsx_runtime13.Fragment, { children: [
778
+ /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(SectionIntro, { id: hid2, eyebrow, title: title2, body }),
779
+ /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("div", { className: "dt-lp-compare", children: columns.map((col, i) => {
715
780
  const cid = `${id || "compare"}-${i + 1}`;
716
781
  const tone3 = col.tone || (i === 0 ? "good" : "check");
717
- return /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("div", { className: "dt-lp-card dt-lp-card--compare", children: [
718
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("h3", { id: cid, className: "dt-lp-h3 dt-lp-h3--lg", children: col.title }),
719
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(Checklist, { items: col.items, tone: tone3, icon: tone3 === "good" ? Check : Help, labelledBy: cid })
782
+ return /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)("div", { className: "dt-lp-card dt-lp-card--compare", children: [
783
+ /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("h3", { id: cid, className: "dt-lp-h3 dt-lp-h3--lg", children: col.title }),
784
+ /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(Checklist, { items: col.items, tone: tone3, icon: tone3 === "good" ? Check : Help, labelledBy: cid })
720
785
  ] }, cid);
721
786
  }) })
722
787
  ] })
@@ -724,124 +789,124 @@ function FeatureSection(props) {
724
789
  }
725
790
  case "links":
726
791
  return shell(
727
- /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(import_jsx_runtime12.Fragment, { children: [
728
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(SectionIntro, { id: hid2, eyebrow, title: title2, body }),
729
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("ul", { className: "dt-lp-grid dt-lp-grid--links", children: items.map((s) => /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("li", { children: /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(SmartLink, { href: s.href, className: "dt-lp-linkcard", children: [
730
- /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("span", { className: "dt-lp-linkcard-title", children: [
792
+ /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(import_jsx_runtime13.Fragment, { children: [
793
+ /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(SectionIntro, { id: hid2, eyebrow, title: title2, body }),
794
+ /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("ul", { className: "dt-lp-grid dt-lp-grid--links", children: items.map((s) => /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("li", { children: /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(SmartLink, { href: s.href, className: "dt-lp-linkcard", children: [
795
+ /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)("span", { className: "dt-lp-linkcard-title", children: [
731
796
  s.title,
732
797
  " ",
733
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(ArrowRight, {})
798
+ /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(ArrowRight, {})
734
799
  ] }),
735
- s.body ? /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("span", { className: "dt-lp-linkcard-body", children: s.body }) : null
800
+ s.body ? /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("span", { className: "dt-lp-linkcard-body", children: s.body }) : null
736
801
  ] }) }, s.href)) })
737
802
  ] })
738
803
  );
739
804
  case "detail": {
740
805
  return shell(
741
- /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("div", { className: "dt-lp-detail", children: [
742
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("h2", { id: hid2, className: "dt-lp-h2", children: title2 }),
743
- /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("div", { children: [
744
- body ? /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("p", { className: "dt-lp-body", children: body }) : null,
745
- (bullets == null ? void 0 : bullets.length) ? /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(Checklist, { items: bullets }) : null
806
+ /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)("div", { className: "dt-lp-detail", children: [
807
+ /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("h2", { id: hid2, className: "dt-lp-h2", children: title2 }),
808
+ /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)("div", { children: [
809
+ body ? /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("p", { className: "dt-lp-body", children: body }) : null,
810
+ (bullets == null ? void 0 : bullets.length) ? /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(Checklist, { items: bullets }) : null
746
811
  ] })
747
812
  ] })
748
813
  );
749
814
  }
750
815
  default:
751
816
  return shell(
752
- /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(import_jsx_runtime12.Fragment, { children: [
753
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(SectionIntro, { id: hid2, eyebrow, title: title2, body }),
754
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(Items, { items, kind: "cards" }),
755
- footnote ? /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("p", { className: "dt-lp-footnote", children: footnote }) : null,
756
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(Cta, { cta, className: "dt-lp-mt" })
817
+ /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(import_jsx_runtime13.Fragment, { children: [
818
+ /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(SectionIntro, { id: hid2, eyebrow, title: title2, body }),
819
+ /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(Items, { items, kind: "cards" }),
820
+ footnote ? /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("p", { className: "dt-lp-footnote", children: footnote }) : null,
821
+ /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(Cta, { cta, className: "dt-lp-mt" })
757
822
  ] })
758
823
  );
759
824
  }
760
825
  }
761
826
 
762
827
  // src/Audiences.jsx
763
- var import_jsx_runtime13 = require("react/jsx-runtime");
828
+ var import_jsx_runtime14 = require("react/jsx-runtime");
764
829
  function Audiences({ id = "audiences", eyebrow, title: title2, body, items = [], linkLabel = "See how it works", tone: tone2 = "muted" }) {
765
830
  const hid2 = `${id}-title`;
766
- return /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(Section, { id, labelledBy: hid2, tone: tone2, className: "dt-lp-audiences", children: [
767
- /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(SectionIntro, { id: hid2, eyebrow, title: title2, body, align: "center" }),
768
- /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("div", { className: `dt-lp-grid dt-lp-grid--audiences dt-lp-grid--n${Math.min(items.length, 4)}`, children: items.map((a, i) => {
831
+ return /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(Section, { id, labelledBy: hid2, tone: tone2, className: "dt-lp-audiences", children: [
832
+ /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(SectionIntro, { id: hid2, eyebrow, title: title2, body, align: "center" }),
833
+ /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("div", { className: `dt-lp-grid dt-lp-grid--audiences dt-lp-grid--n${Math.min(items.length, 4)}`, children: items.map((a, i) => {
769
834
  var _a;
770
835
  const aid = a.id || `${id}-${i + 1}`;
771
- return /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)("article", { id: aid, "aria-labelledby": `${aid}-title`, className: "dt-lp-card dt-lp-card--audience", children: [
772
- a.icon ? /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("span", { className: "dt-lp-audience-icon", children: renderIcon(a.icon, 30) }) : null,
773
- /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)("div", { className: a.media ? "dt-lp-audience-head" : void 0, children: [
774
- /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)("div", { children: [
775
- a.keyword ? /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("p", { className: "dt-lp-kicker", children: a.keyword }) : null,
776
- /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("h3", { id: `${aid}-title`, className: "dt-lp-h3 dt-lp-h3--lg", children: a.title }),
777
- /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("p", { className: a.media || a.features ? void 0 : "dt-lp-grow", children: a.body })
836
+ return /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)("article", { id: aid, "aria-labelledby": `${aid}-title`, className: "dt-lp-card dt-lp-card--audience", children: [
837
+ a.icon ? /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("span", { className: "dt-lp-audience-icon", children: renderIcon(a.icon, 30) }) : null,
838
+ /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)("div", { className: a.media ? "dt-lp-audience-head" : void 0, children: [
839
+ /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)("div", { children: [
840
+ a.keyword ? /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("p", { className: "dt-lp-kicker", children: a.keyword }) : null,
841
+ /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("h3", { id: `${aid}-title`, className: "dt-lp-h3 dt-lp-h3--lg", children: a.title }),
842
+ /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("p", { className: a.media || a.features ? void 0 : "dt-lp-grow", children: a.body })
778
843
  ] }),
779
- a.media ? /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("div", { className: "dt-lp-audience-media", "aria-hidden": "true", children: a.media }) : null
844
+ a.media ? /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("div", { className: "dt-lp-audience-media", "aria-hidden": "true", children: a.media }) : null
780
845
  ] }),
781
- ((_a = a.features) == null ? void 0 : _a.length) ? /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("ul", { className: "dt-lp-audience-features dt-lp-grow", children: a.features.map((f) => {
846
+ ((_a = a.features) == null ? void 0 : _a.length) ? /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("ul", { className: "dt-lp-audience-features dt-lp-grow", children: a.features.map((f) => {
782
847
  const it = typeof f === "string" ? { title: f } : f;
783
- return /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)("li", { children: [
848
+ return /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)("li", { children: [
784
849
  it.icon ? renderIcon(it.icon, 22) : null,
785
- /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("span", { children: it.title })
850
+ /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("span", { children: it.title })
786
851
  ] }, it.title);
787
852
  }) }) : null,
788
- a.href ? /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(TextLink, { href: a.href, "aria-label": `${a.keyword || a.title}: ${(a.linkLabel || linkLabel).toLowerCase()}`, children: a.linkLabel || linkLabel }) : null
853
+ a.href ? /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(TextLink, { href: a.href, "aria-label": `${a.keyword || a.title}: ${(a.linkLabel || linkLabel).toLowerCase()}`, children: a.linkLabel || linkLabel }) : null
789
854
  ] }, aid);
790
855
  }) })
791
856
  ] });
792
857
  }
793
858
 
794
859
  // src/HowItWorks.jsx
795
- var import_jsx_runtime14 = require("react/jsx-runtime");
860
+ var import_jsx_runtime15 = require("react/jsx-runtime");
796
861
  function HowItWorks({ id = "how-it-works", eyebrow, title: title2, body, steps, items, tone: tone2 = "plain", cta }) {
797
862
  const list = steps || items || [];
798
863
  const hid2 = `${id}-title`;
799
- return /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(Section, { id, labelledBy: hid2, tone: tone2, className: "dt-lp-steps", children: [
800
- /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(SectionIntro, { id: hid2, eyebrow, title: title2, body }),
801
- /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("ol", { className: "dt-lp-grid dt-lp-grid--steps", children: list.map((st, i) => /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)("li", { className: "dt-lp-card", children: [
802
- /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("span", { className: "dt-lp-step-num", "aria-hidden": "true", children: i + 1 }),
803
- /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("h3", { className: "dt-lp-h3", children: st.name || st.title }),
804
- /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("p", { children: st.text || st.body })
864
+ return /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(Section, { id, labelledBy: hid2, tone: tone2, className: "dt-lp-steps", children: [
865
+ /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(SectionIntro, { id: hid2, eyebrow, title: title2, body }),
866
+ /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("ol", { className: "dt-lp-grid dt-lp-grid--steps", children: list.map((st, i) => /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("li", { className: "dt-lp-card", children: [
867
+ /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { className: "dt-lp-step-num", "aria-hidden": "true", children: i + 1 }),
868
+ /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("h3", { className: "dt-lp-h3", children: st.name || st.title }),
869
+ /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("p", { children: st.text || st.body })
805
870
  ] }, st.name || st.title)) }),
806
- /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(Cta, { cta, className: "dt-lp-mt" })
871
+ /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(Cta, { cta, className: "dt-lp-mt" })
807
872
  ] });
808
873
  }
809
874
 
810
875
  // src/Faq.jsx
811
- var import_jsx_runtime15 = require("react/jsx-runtime");
876
+ var import_jsx_runtime16 = require("react/jsx-runtime");
812
877
  function Faq({ id = "faq", eyebrow, title: title2 = "Frequently asked questions", intro: intro2, items = [], openFirst = true, tone: tone2 = "muted" }) {
813
878
  const hid2 = `${id}-title`;
814
- return /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(Section, { id, labelledBy: hid2, tone: tone2, narrow: true, className: "dt-lp-faq", children: [
815
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(SectionIntro, { id: hid2, eyebrow, title: title2, body: intro2, align: "center" }),
816
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: "dt-lp-faq-list", children: items.map((f, i) => /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("details", { className: "dt-lp-faq-item", open: openFirst && i === 0, children: [
817
- /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("summary", { children: [
818
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("h3", { className: "dt-lp-h3", children: f.q }),
819
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(ChevronRight, { size: 18, className: "dt-lp-icon dt-lp-faq-chevron" })
879
+ return /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)(Section, { id, labelledBy: hid2, tone: tone2, narrow: true, className: "dt-lp-faq", children: [
880
+ /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(SectionIntro, { id: hid2, eyebrow, title: title2, body: intro2, align: "center" }),
881
+ /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("div", { className: "dt-lp-faq-list", children: items.map((f, i) => /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)("details", { className: "dt-lp-faq-item", open: openFirst && i === 0, children: [
882
+ /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)("summary", { children: [
883
+ /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("h3", { className: "dt-lp-h3", children: f.q }),
884
+ /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(ChevronRight, { size: 18, className: "dt-lp-icon dt-lp-faq-chevron" })
820
885
  ] }),
821
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("p", { children: f.a })
886
+ /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("p", { children: f.a })
822
887
  ] }, f.q)) })
823
888
  ] });
824
889
  }
825
890
 
826
891
  // src/DemoCta.jsx
827
- var import_jsx_runtime16 = require("react/jsx-runtime");
892
+ var import_jsx_runtime17 = require("react/jsx-runtime");
828
893
  function DemoCta({ id = "demo", eyebrow, title: title2, body, label = "Book a demo", chips, chipsLabel = "Business types", note, link: link2 }) {
829
- return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("section", { id, "aria-labelledby": `${id}-title`, className: "dt-lp-section dt-lp-cta", children: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(Wrap, { children: /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)("div", { className: "dt-lp-cta-panel", children: [
830
- eyebrow ? /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("p", { className: "dt-lp-eyebrow dt-lp-eyebrow--inverse", children: eyebrow }) : null,
831
- /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("h2", { id: `${id}-title`, className: "dt-lp-h2 dt-lp-h2--cta", children: title2 }),
832
- body ? /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("p", { className: "dt-lp-cta-body", children: body }) : null,
833
- /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(BookDemoButton, { size: "lg", variant: "inverse", children: label }),
834
- (chips == null ? void 0 : chips.length) ? /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("ul", { className: "dt-lp-chips dt-lp-chips--inverse", "aria-label": chipsLabel, children: chips.map((k) => /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("li", { children: k }, k)) }) : null,
835
- note ? /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)("div", { className: "dt-lp-cta-note", children: [
836
- note.title ? /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("h3", { className: "dt-lp-h3", children: note.title }) : null,
837
- note.body ? /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("p", { children: note.body }) : null
894
+ return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("section", { id, "aria-labelledby": `${id}-title`, className: "dt-lp-section dt-lp-cta", children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(Wrap, { children: /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)("div", { className: "dt-lp-cta-panel", children: [
895
+ eyebrow ? /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("p", { className: "dt-lp-eyebrow dt-lp-eyebrow--inverse", children: eyebrow }) : null,
896
+ /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("h2", { id: `${id}-title`, className: "dt-lp-h2 dt-lp-h2--cta", children: title2 }),
897
+ body ? /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("p", { className: "dt-lp-cta-body", children: body }) : null,
898
+ /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(BookDemoButton, { size: "lg", variant: "inverse", children: label }),
899
+ (chips == null ? void 0 : chips.length) ? /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("ul", { className: "dt-lp-chips dt-lp-chips--inverse", "aria-label": chipsLabel, children: chips.map((k) => /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("li", { children: k }, k)) }) : null,
900
+ note ? /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)("div", { className: "dt-lp-cta-note", children: [
901
+ note.title ? /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("h3", { className: "dt-lp-h3", children: note.title }) : null,
902
+ note.body ? /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("p", { children: note.body }) : null
838
903
  ] }) : null,
839
- link2 ? /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("p", { className: "dt-lp-cta-link", children: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(SmartLink, { href: link2.href, reload: link2.reload, children: link2.label }) }) : null
904
+ link2 ? /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("p", { className: "dt-lp-cta-link", children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(SmartLink, { href: link2.href, reload: link2.reload, children: link2.label }) }) : null
840
905
  ] }) }) });
841
906
  }
842
907
 
843
908
  // src/LandingPage.jsx
844
- var import_jsx_runtime17 = require("react/jsx-runtime");
909
+ var import_jsx_runtime18 = require("react/jsx-runtime");
845
910
  var BLOCKS = { audiences: Audiences, steps: HowItWorks, faq: Faq, cta: DemoCta };
846
911
  var TAIL = ["audiences", "steps", "faq", "cta"];
847
912
  function LandingPage({ brand, content, preview = null, slots = {}, linkComponent, onBookDemo, home = true, className }) {
@@ -854,23 +919,23 @@ function LandingPage({ brand, content, preview = null, slots = {}, linkComponent
854
919
  const render = (s, i) => {
855
920
  var _a;
856
921
  if (!s) return null;
857
- if ((0, import_react7.isValidElement)(s)) return (0, import_react7.cloneElement)(s, { key: (_a = s.key) != null ? _a : `el-${i}` });
858
- if (s.use === "preview") return preview ? /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("div", { children: preview }, "preview") : null;
922
+ if ((0, import_react8.isValidElement)(s)) return (0, import_react8.cloneElement)(s, { key: (_a = s.key) != null ? _a : `el-${i}` });
923
+ if (s.use === "preview") return preview ? /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { children: preview }, "preview") : null;
859
924
  if (s.use) {
860
925
  if (slots && Object.prototype.hasOwnProperty.call(slots, s.use)) {
861
926
  const node = slots[s.use];
862
- return node ? /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(import_react7.Fragment, { children: node }, `slot-${s.use}`) : null;
927
+ return node ? /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_react8.Fragment, { children: node }, `slot-${s.use}`) : null;
863
928
  }
864
929
  const Block = BLOCKS[s.use];
865
930
  if (!Block) {
866
931
  const known = ["preview", ...TAIL, ...Object.keys(slots || {})].join(", ");
867
932
  throw new Error(`landing-kit: unknown section use "${s.use}" (known: ${known}). Pass custom sections as <LandingPage slots={{ ${s.use}: <YourSection /> }} />.`);
868
933
  }
869
- return content[s.use] ? /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(Block, { ...content[s.use] }, s.use) : null;
934
+ return content[s.use] ? /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(Block, { ...content[s.use] }, s.use) : null;
870
935
  }
871
- return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(FeatureSection, { ...s }, s.id || `section-${i}`);
936
+ return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(FeatureSection, { ...s }, s.id || `section-${i}`);
872
937
  };
873
- return /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(
938
+ return /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(
874
939
  MarketingLayout,
875
940
  {
876
941
  brand,
@@ -883,12 +948,12 @@ function LandingPage({ brand, content, preview = null, slots = {}, linkComponent
883
948
  onBookDemo,
884
949
  className,
885
950
  children: [
886
- /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(Hero, { ...hero, overlap: !!preview && !previewInline }),
951
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(Hero, { ...hero, overlap: !!preview && !previewInline }),
887
952
  preview && !previewInline ? preview : null,
888
953
  sections.map(render),
889
954
  TAIL.filter((k) => !used.has(k) && content[k]).map((k) => {
890
955
  const Block = BLOCKS[k];
891
- return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(Block, { ...content[k] }, k);
956
+ return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(Block, { ...content[k] }, k);
892
957
  })
893
958
  ]
894
959
  }
@@ -896,7 +961,7 @@ function LandingPage({ brand, content, preview = null, slots = {}, linkComponent
896
961
  }
897
962
 
898
963
  // src/PreviewFrame.jsx
899
- var import_jsx_runtime18 = require("react/jsx-runtime");
964
+ var import_jsx_runtime19 = require("react/jsx-runtime");
900
965
  function PreviewFrame({
901
966
  id = "product",
902
967
  heading: heading2,
@@ -908,25 +973,25 @@ function PreviewFrame({
908
973
  }) {
909
974
  const ctx = useLanding();
910
975
  const brand = own2 || ctx.brand;
911
- return /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("section", { id, "aria-labelledby": `${id}-title`, className: "dt-lp-preview", children: [
912
- /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("h2", { id: `${id}-title`, className: "dt-lp-sr-only", children: heading2 || `${brand ? brand.name : "Product"} overview` }),
913
- /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(Wrap, { children: /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("figure", { className: "dt-lp-preview-frame", children: [
914
- /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { className: "dt-lp-preview-bar", children: [
915
- /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { className: "dt-lp-preview-title", children: [
916
- brand ? /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(Wordmark, { name: brand.name }) : null,
917
- meta ? /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("span", { className: "dt-lp-preview-meta", children: meta }) : null
976
+ return /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)("section", { id, "aria-labelledby": `${id}-title`, className: "dt-lp-preview", children: [
977
+ /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("h2", { id: `${id}-title`, className: "dt-lp-sr-only", children: heading2 || `${brand ? brand.name : "Product"} overview` }),
978
+ /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(Wrap, { children: /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)("figure", { className: "dt-lp-preview-frame", children: [
979
+ /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)("div", { className: "dt-lp-preview-bar", children: [
980
+ /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)("div", { className: "dt-lp-preview-title", children: [
981
+ brand ? /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(Wordmark, { name: brand.name }) : null,
982
+ meta ? /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("span", { className: "dt-lp-preview-meta", children: meta }) : null
918
983
  ] }),
919
- badge ? /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("span", { className: "dt-lp-preview-badge", children: badge }) : null
984
+ badge ? /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("span", { className: "dt-lp-preview-badge", children: badge }) : null
920
985
  ] }),
921
- /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { className: "dt-lp-preview-body", children }),
922
- caption ? /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("figcaption", { className: "dt-lp-sr-only", children: caption }) : null
986
+ /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("div", { className: "dt-lp-preview-body", children }),
987
+ caption ? /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("figcaption", { className: "dt-lp-sr-only", children: caption }) : null
923
988
  ] }) })
924
989
  ] });
925
990
  }
926
991
 
927
992
  // src/DemoDialog.jsx
928
- var import_react8 = require("react");
929
- var import_jsx_runtime19 = require("react/jsx-runtime");
993
+ var import_react9 = require("react");
994
+ var import_jsx_runtime20 = require("react/jsx-runtime");
930
995
  var DEFAULT_DEMO_FIELDS = [
931
996
  { name: "name", label: "Your name", required: true, maxLength: 120, autoComplete: "name" },
932
997
  { name: "phone", label: "Mobile", type: "tel", required: true, maxLength: 20, autoComplete: "tel", inputMode: "tel" },
@@ -948,14 +1013,14 @@ function Field({ f, value, onChange, error }) {
948
1013
  };
949
1014
  let control;
950
1015
  if (f.type === "select") {
951
- control = /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)("select", { ...common, children: [
952
- /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("option", { value: "", children: f.placeholder || "Choose one" }),
953
- (f.options || []).map((o) => /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("option", { value: o.value, children: o.label }, o.value))
1016
+ control = /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)("select", { ...common, children: [
1017
+ /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("option", { value: "", children: f.placeholder || "Choose one" }),
1018
+ (f.options || []).map((o) => /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("option", { value: o.value, children: o.label }, o.value))
954
1019
  ] });
955
1020
  } else if (f.type === "textarea") {
956
- control = /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("textarea", { ...common, rows: f.rows || 3, maxLength: f.maxLength });
1021
+ control = /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("textarea", { ...common, rows: f.rows || 3, maxLength: f.maxLength });
957
1022
  } else {
958
- control = /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
1023
+ control = /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
959
1024
  "input",
960
1025
  {
961
1026
  ...common,
@@ -968,13 +1033,13 @@ function Field({ f, value, onChange, error }) {
968
1033
  }
969
1034
  );
970
1035
  }
971
- return /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)("label", { htmlFor: id, className: `dt-lp-field${f.wide || f.type === "textarea" ? " dt-lp-field--wide" : ""}`, children: [
972
- /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)("span", { children: [
1036
+ return /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)("label", { htmlFor: id, className: `dt-lp-field${f.wide || f.type === "textarea" ? " dt-lp-field--wide" : ""}`, children: [
1037
+ /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)("span", { children: [
973
1038
  f.label,
974
1039
  f.required ? " *" : ""
975
1040
  ] }),
976
1041
  control,
977
- error ? /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("span", { id: errId, className: "dt-lp-field-error", children: error }) : null
1042
+ error ? /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("span", { id: errId, className: "dt-lp-field-error", children: error }) : null
978
1043
  ] });
979
1044
  }
980
1045
  function DemoDialog({
@@ -994,16 +1059,16 @@ function DemoDialog({
994
1059
  successMessage,
995
1060
  validate
996
1061
  }) {
997
- const ref = (0, import_react8.useRef)(null);
998
- const [form, setForm] = (0, import_react8.useState)(() => initial(fields2));
999
- const [website, setWebsite] = (0, import_react8.useState)("");
1000
- const [consent, setConsent] = (0, import_react8.useState)(false);
1001
- const [busy, setBusy] = (0, import_react8.useState)(false);
1002
- const [err, setErr] = (0, import_react8.useState)("");
1003
- const [fieldErrors, setFieldErrors] = (0, import_react8.useState)({});
1004
- const [sent, setSent] = (0, import_react8.useState)(false);
1062
+ const ref = (0, import_react9.useRef)(null);
1063
+ const [form, setForm] = (0, import_react9.useState)(() => initial(fields2));
1064
+ const [website, setWebsite] = (0, import_react9.useState)("");
1065
+ const [consent, setConsent] = (0, import_react9.useState)(false);
1066
+ const [busy, setBusy] = (0, import_react9.useState)(false);
1067
+ const [err, setErr] = (0, import_react9.useState)("");
1068
+ const [fieldErrors, setFieldErrors] = (0, import_react9.useState)({});
1069
+ const [sent, setSent] = (0, import_react9.useState)(false);
1005
1070
  const name = brand ? brand.name : "a";
1006
- (0, import_react8.useEffect)(() => {
1071
+ (0, import_react9.useEffect)(() => {
1007
1072
  const dlg = ref.current;
1008
1073
  if (open && dlg && !dlg.open && typeof dlg.showModal === "function") dlg.showModal();
1009
1074
  }, [open]);
@@ -1038,7 +1103,7 @@ function DemoDialog({
1038
1103
  };
1039
1104
  const first = String(form.name || "").trim().split(/\s+/)[0] || "there";
1040
1105
  const thanks = typeof successMessage === "function" ? successMessage(form) : successMessage || `Thanks, ${first}. We have your request. Someone from the ${name} team will call you within one working day to fix a time.`;
1041
- return /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(
1106
+ return /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(
1042
1107
  "dialog",
1043
1108
  {
1044
1109
  ref,
@@ -1051,33 +1116,33 @@ function DemoDialog({
1051
1116
  onClose();
1052
1117
  },
1053
1118
  children: [
1054
- /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)("div", { className: "dt-lp-dialog-head", children: [
1055
- /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("h2", { id: "dt-demo-title", children: sent ? "Thank you" : title2 || `Book a ${name} demo` }),
1056
- /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("button", { type: "button", className: "dt-lp-dialog-x", onClick: onClose, "aria-label": "Close", children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(Close, { size: 18 }) })
1119
+ /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)("div", { className: "dt-lp-dialog-head", children: [
1120
+ /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("h2", { id: "dt-demo-title", children: sent ? "Thank you" : title2 || `Book a ${name} demo` }),
1121
+ /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("button", { type: "button", className: "dt-lp-dialog-x", onClick: onClose, "aria-label": "Close", children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(Close, { size: 18 }) })
1057
1122
  ] }),
1058
- /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("div", { className: "dt-lp-dialog-body", children: sent ? /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)("div", { className: "dt-lp-stack", children: [
1059
- /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("p", { role: "status", children: thanks }),
1060
- /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("button", { type: "button", className: "dt-lp-btn dt-lp-btn--outline dt-lp-btn--md", onClick: onClose, children: "Close" })
1061
- ] }) : /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)("form", { className: "dt-lp-stack", onSubmit: submit, noValidate: true, children: [
1062
- intro2 ? /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("p", { className: "dt-lp-muted", children: intro2 }) : null,
1063
- err ? /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("p", { role: "alert", className: "dt-lp-error", children: err }) : null,
1064
- /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("div", { className: "dt-lp-fields", children: fields2.map((f) => /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(Field, { f, value: form[f.name], onChange: set(f.name), error: fieldErrors[f.name] }, f.name)) }),
1065
- /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("div", { "aria-hidden": "true", className: "dt-lp-honeypot", children: /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)("label", { children: [
1123
+ /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("div", { className: "dt-lp-dialog-body", children: sent ? /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)("div", { className: "dt-lp-stack", children: [
1124
+ /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("p", { role: "status", children: thanks }),
1125
+ /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("button", { type: "button", className: "dt-lp-btn dt-lp-btn--outline dt-lp-btn--md", onClick: onClose, children: "Close" })
1126
+ ] }) : /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)("form", { className: "dt-lp-stack", onSubmit: submit, noValidate: true, children: [
1127
+ intro2 ? /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("p", { className: "dt-lp-muted", children: intro2 }) : null,
1128
+ err ? /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("p", { role: "alert", className: "dt-lp-error", children: err }) : null,
1129
+ /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("div", { className: "dt-lp-fields", children: fields2.map((f) => /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(Field, { f, value: form[f.name], onChange: set(f.name), error: fieldErrors[f.name] }, f.name)) }),
1130
+ /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("div", { "aria-hidden": "true", className: "dt-lp-honeypot", children: /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)("label", { children: [
1066
1131
  "Website",
1067
- /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("input", { type: "text", name: "website", tabIndex: -1, autoComplete: "off", value: website, onChange: (e) => setWebsite(e.target.value) })
1132
+ /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("input", { type: "text", name: "website", tabIndex: -1, autoComplete: "off", value: website, onChange: (e) => setWebsite(e.target.value) })
1068
1133
  ] }) }),
1069
- /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)("label", { className: "dt-lp-consent", children: [
1070
- /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("input", { type: "checkbox", checked: consent, onChange: (e) => setConsent(e.target.checked) }),
1071
- /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("span", { children: consentText || `I agree that ${fiduciary} may call, message or email me about this demo.` })
1134
+ /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)("label", { className: "dt-lp-consent", children: [
1135
+ /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("input", { type: "checkbox", checked: consent, onChange: (e) => setConsent(e.target.checked) }),
1136
+ /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("span", { children: consentText || `I agree that ${fiduciary} may call, message or email me about this demo.` })
1072
1137
  ] }),
1073
- privacyHref ? /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)("p", { className: "dt-lp-fineprint", children: [
1138
+ privacyHref ? /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)("p", { className: "dt-lp-fineprint", children: [
1074
1139
  "Used only to arrange your demo. See the ",
1075
- /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("a", { href: privacyHref, children: "privacy policy" }),
1140
+ /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("a", { href: privacyHref, children: "privacy policy" }),
1076
1141
  policyVersion ? ` (v${policyVersion})` : "",
1077
1142
  "."
1078
1143
  ] }) : null,
1079
- /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)("button", { type: "submit", className: "dt-lp-btn dt-lp-btn--primary dt-lp-btn--md", disabled: !ready || busy, "aria-busy": busy ? "true" : void 0, children: [
1080
- /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(Calendar, { size: 16 }),
1144
+ /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)("button", { type: "submit", className: "dt-lp-btn dt-lp-btn--primary dt-lp-btn--md", disabled: !ready || busy, "aria-busy": busy ? "true" : void 0, children: [
1145
+ /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(Calendar, { size: 16 }),
1081
1146
  busy ? "Sending\u2026" : submitLabel
1082
1147
  ] })
1083
1148
  ] }) })
@@ -1087,33 +1152,33 @@ function DemoDialog({
1087
1152
  }
1088
1153
 
1089
1154
  // src/PageHero.jsx
1090
- var import_jsx_runtime20 = require("react/jsx-runtime");
1155
+ var import_jsx_runtime21 = require("react/jsx-runtime");
1091
1156
  function Breadcrumbs({ items = [] }) {
1092
1157
  if (!items.length) return null;
1093
- return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("nav", { "aria-label": "Breadcrumb", className: "dt-lp-crumbs", children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("ol", { children: items.map((c, i) => {
1158
+ return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("nav", { "aria-label": "Breadcrumb", className: "dt-lp-crumbs", children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("ol", { children: items.map((c, i) => {
1094
1159
  const last = i === items.length - 1;
1095
- return /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)("li", { children: [
1096
- i > 0 ? /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(ChevronRight, { size: 14 }) : null,
1097
- last || !c.href ? /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("span", { "aria-current": last ? "page" : void 0, children: c.label }) : /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(SmartLink, { href: c.href, children: c.label })
1160
+ return /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)("li", { children: [
1161
+ i > 0 ? /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(ChevronRight, { size: 14 }) : null,
1162
+ last || !c.href ? /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("span", { "aria-current": last ? "page" : void 0, children: c.label }) : /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(SmartLink, { href: c.href, children: c.label })
1098
1163
  ] }, `${c.label}-${i}`);
1099
1164
  }) }) });
1100
1165
  }
1101
1166
  function PageHero({ breadcrumbs, eyebrow, title: title2, lead, cta = "Book a demo", secondary }) {
1102
- return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("section", { "aria-labelledby": "hero-title", className: "dt-lp-hero dt-lp-hero--page", children: /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(Wrap, { className: "dt-lp-hero-inner dt-lp-hero-inner--start", children: [
1103
- /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(Breadcrumbs, { items: breadcrumbs }),
1104
- /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(Eyebrow, { className: "dt-lp-mt-lg", children: eyebrow }),
1105
- /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("h1", { id: "hero-title", className: "dt-lp-h1 dt-lp-h1--page", children: title2 }),
1106
- lead ? /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("p", { id: "answer", className: "dt-lp-hero-lead", children: lead }) : null,
1107
- /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)("div", { className: "dt-lp-actions dt-lp-actions--start", children: [
1108
- cta ? /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(BookDemoButton, { size: "lg", children: cta }) : null,
1109
- secondary ? /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(TextLink, { href: secondary.href, children: secondary.label }) : null
1167
+ return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("section", { "aria-labelledby": "hero-title", className: "dt-lp-hero dt-lp-hero--page", children: /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(Wrap, { className: "dt-lp-hero-inner dt-lp-hero-inner--start", children: [
1168
+ /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(Breadcrumbs, { items: breadcrumbs }),
1169
+ /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(Eyebrow, { className: "dt-lp-mt-lg", children: eyebrow }),
1170
+ /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("h1", { id: "hero-title", className: "dt-lp-h1 dt-lp-h1--page", children: title2 }),
1171
+ lead ? /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("p", { id: "answer", className: "dt-lp-hero-lead", children: lead }) : null,
1172
+ /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)("div", { className: "dt-lp-actions dt-lp-actions--start", children: [
1173
+ cta ? /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(BookDemoButton, { size: "lg", children: cta }) : null,
1174
+ secondary ? /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(TextLink, { href: secondary.href, children: secondary.label }) : null
1110
1175
  ] })
1111
1176
  ] }) });
1112
1177
  }
1113
1178
 
1114
1179
  // src/island.jsx
1115
1180
  var import_client = require("react-dom/client");
1116
- var import_jsx_runtime21 = require("react/jsx-runtime");
1181
+ var import_jsx_runtime22 = require("react/jsx-runtime");
1117
1182
  function createDemoIsland(props) {
1118
1183
  let root;
1119
1184
  let returnTo = null;
@@ -1132,7 +1197,7 @@ function createDemoIsland(props) {
1132
1197
  root = (0, import_client.createRoot)(host);
1133
1198
  }
1134
1199
  const p = typeof props === "function" ? props() : props;
1135
- root.render(/* @__PURE__ */ (0, import_jsx_runtime21.jsx)(DemoDialog, { ...p, onClose: close }, Date.now()));
1200
+ root.render(/* @__PURE__ */ (0, import_jsx_runtime22.jsx)(DemoDialog, { ...p, onClose: close }, Date.now()));
1136
1201
  },
1137
1202
  close
1138
1203
  };
@@ -1291,7 +1356,7 @@ function toLandingBrand(file, copy = {}) {
1291
1356
  }
1292
1357
 
1293
1358
  // src/tenant/TenantPage.jsx
1294
- var import_react11 = require("react");
1359
+ var import_react12 = require("react");
1295
1360
 
1296
1361
  // src/schema/sections.js
1297
1362
  var ICON_NAMES = [
@@ -1937,10 +2002,10 @@ function themeVars(input) {
1937
2002
  }
1938
2003
 
1939
2004
  // src/tenant/HeroSlider.jsx
1940
- var import_react9 = require("react");
2005
+ var import_react10 = require("react");
1941
2006
 
1942
2007
  // src/tenant/icons.jsx
1943
- var import_jsx_runtime22 = require("react/jsx-runtime");
2008
+ var import_jsx_runtime23 = require("react/jsx-runtime");
1944
2009
  var base2 = {
1945
2010
  viewBox: "0 0 24 24",
1946
2011
  fill: "none",
@@ -1952,88 +2017,88 @@ var base2 = {
1952
2017
  focusable: "false"
1953
2018
  };
1954
2019
  var PATHS = {
1955
- "shield-check": /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(import_jsx_runtime22.Fragment, { children: [
1956
- /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("path", { d: "M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10Z" }),
1957
- /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("path", { d: "m9 12 2 2 4-4" })
2020
+ "shield-check": /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(import_jsx_runtime23.Fragment, { children: [
2021
+ /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("path", { d: "M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10Z" }),
2022
+ /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("path", { d: "m9 12 2 2 4-4" })
1958
2023
  ] }),
1959
- "badge-check": /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(import_jsx_runtime22.Fragment, { children: [
1960
- /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("path", { d: "M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z" }),
1961
- /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("path", { d: "m9 12 2 2 4-4" })
2024
+ "badge-check": /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(import_jsx_runtime23.Fragment, { children: [
2025
+ /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("path", { d: "M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z" }),
2026
+ /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("path", { d: "m9 12 2 2 4-4" })
1962
2027
  ] }),
1963
- truck: /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(import_jsx_runtime22.Fragment, { children: [
1964
- /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("path", { d: "M14 18V6a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v11a1 1 0 0 0 1 1h2" }),
1965
- /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("path", { d: "M15 18H9" }),
1966
- /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("path", { d: "M19 18h2a1 1 0 0 0 1-1v-3.65a1 1 0 0 0-.22-.62L18.3 9.38a1 1 0 0 0-.78-.38H14" }),
1967
- /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("circle", { cx: "17", cy: "18", r: "2" }),
1968
- /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("circle", { cx: "7", cy: "18", r: "2" })
2028
+ truck: /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(import_jsx_runtime23.Fragment, { children: [
2029
+ /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("path", { d: "M14 18V6a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v11a1 1 0 0 0 1 1h2" }),
2030
+ /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("path", { d: "M15 18H9" }),
2031
+ /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("path", { d: "M19 18h2a1 1 0 0 0 1-1v-3.65a1 1 0 0 0-.22-.62L18.3 9.38a1 1 0 0 0-.78-.38H14" }),
2032
+ /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("circle", { cx: "17", cy: "18", r: "2" }),
2033
+ /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("circle", { cx: "7", cy: "18", r: "2" })
1969
2034
  ] }),
1970
- wrench: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("path", { d: "M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.77-3.77a6 6 0 0 1-7.94 7.94l-6.91 6.91a2.12 2.12 0 0 1-3-3l6.91-6.91a6 6 0 0 1 7.94-7.94l-3.76 3.76z" }),
1971
- refresh: /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(import_jsx_runtime22.Fragment, { children: [
1972
- /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("path", { d: "M3 12a9 9 0 0 1 15-6.7L21 8" }),
1973
- /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("path", { d: "M21 3v5h-5" }),
1974
- /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("path", { d: "M21 12a9 9 0 0 1-15 6.7L3 16" }),
1975
- /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("path", { d: "M8 16H3v5" })
2035
+ wrench: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("path", { d: "M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.77-3.77a6 6 0 0 1-7.94 7.94l-6.91 6.91a2.12 2.12 0 0 1-3-3l6.91-6.91a6 6 0 0 1 7.94-7.94l-3.76 3.76z" }),
2036
+ refresh: /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(import_jsx_runtime23.Fragment, { children: [
2037
+ /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("path", { d: "M3 12a9 9 0 0 1 15-6.7L21 8" }),
2038
+ /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("path", { d: "M21 3v5h-5" }),
2039
+ /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("path", { d: "M21 12a9 9 0 0 1-15 6.7L3 16" }),
2040
+ /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("path", { d: "M8 16H3v5" })
1976
2041
  ] }),
1977
- battery: /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(import_jsx_runtime22.Fragment, { children: [
1978
- /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("rect", { x: "2", y: "7", width: "16", height: "10", rx: "2" }),
1979
- /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("path", { d: "M22 11v2M6 11v2M10 11v2" })
2042
+ battery: /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(import_jsx_runtime23.Fragment, { children: [
2043
+ /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("rect", { x: "2", y: "7", width: "16", height: "10", rx: "2" }),
2044
+ /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("path", { d: "M22 11v2M6 11v2M10 11v2" })
1980
2045
  ] }),
1981
- cpu: /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(import_jsx_runtime22.Fragment, { children: [
1982
- /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("rect", { x: "4", y: "4", width: "16", height: "16", rx: "2" }),
1983
- /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("rect", { x: "9", y: "9", width: "6", height: "6" }),
1984
- /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("path", { d: "M15 2v2M15 20v2M2 15h2M2 9h2M20 15h2M20 9h2M9 2v2M9 20v2" })
2046
+ cpu: /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(import_jsx_runtime23.Fragment, { children: [
2047
+ /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("rect", { x: "4", y: "4", width: "16", height: "16", rx: "2" }),
2048
+ /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("rect", { x: "9", y: "9", width: "6", height: "6" }),
2049
+ /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("path", { d: "M15 2v2M15 20v2M2 15h2M2 9h2M20 15h2M20 9h2M9 2v2M9 20v2" })
1985
2050
  ] }),
1986
- laptop: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("path", { d: "M20 16V7a2 2 0 0 0-2-2H6a2 2 0 0 0-2 2v9m16 0H4m16 0 1.28 2.55a1 1 0 0 1-.9 1.45H3.62a1 1 0 0 1-.9-1.45L4 16" }),
1987
- star: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("path", { d: "M12 2l3.09 6.26L22 9.27l-5 4.87 1.18 6.88L12 17.77l-6.18 3.25L7 14.14 2 9.27l6.91-1.01L12 2z" }),
1988
- headset: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("path", { d: "M3 14h3a2 2 0 0 1 2 2v3a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-7a9 9 0 0 1 18 0v7a2 2 0 0 1-2 2h-1a2 2 0 0 1-2-2v-3a2 2 0 0 1 2-2h3" }),
1989
- rupee: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("path", { d: "M6 3h12M6 8h12M6 13l8.5 8M6 13h3M9 13c6.67 0 6.67-10 0-10" }),
1990
- award: /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(import_jsx_runtime22.Fragment, { children: [
1991
- /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("circle", { cx: "12", cy: "8", r: "6" }),
1992
- /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("path", { d: "M15.48 12.89 17 22l-5-3-5 3 1.52-9.11" })
2051
+ laptop: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("path", { d: "M20 16V7a2 2 0 0 0-2-2H6a2 2 0 0 0-2 2v9m16 0H4m16 0 1.28 2.55a1 1 0 0 1-.9 1.45H3.62a1 1 0 0 1-.9-1.45L4 16" }),
2052
+ star: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("path", { d: "M12 2l3.09 6.26L22 9.27l-5 4.87 1.18 6.88L12 17.77l-6.18 3.25L7 14.14 2 9.27l6.91-1.01L12 2z" }),
2053
+ headset: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("path", { d: "M3 14h3a2 2 0 0 1 2 2v3a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-7a9 9 0 0 1 18 0v7a2 2 0 0 1-2 2h-1a2 2 0 0 1-2-2v-3a2 2 0 0 1 2-2h3" }),
2054
+ rupee: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("path", { d: "M6 3h12M6 8h12M6 13l8.5 8M6 13h3M9 13c6.67 0 6.67-10 0-10" }),
2055
+ award: /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(import_jsx_runtime23.Fragment, { children: [
2056
+ /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("circle", { cx: "12", cy: "8", r: "6" }),
2057
+ /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("path", { d: "M15.48 12.89 17 22l-5-3-5 3 1.52-9.11" })
1993
2058
  ] }),
1994
- clock: /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(import_jsx_runtime22.Fragment, { children: [
1995
- /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("circle", { cx: "12", cy: "12", r: "10" }),
1996
- /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("path", { d: "M12 6v6l4 2" })
2059
+ clock: /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(import_jsx_runtime23.Fragment, { children: [
2060
+ /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("circle", { cx: "12", cy: "12", r: "10" }),
2061
+ /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("path", { d: "M12 6v6l4 2" })
1997
2062
  ] }),
1998
- "map-pin": /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(import_jsx_runtime22.Fragment, { children: [
1999
- /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("path", { d: "M20 10c0 6-8 12-8 12s-8-6-8-12a8 8 0 0 1 16 0Z" }),
2000
- /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("circle", { cx: "12", cy: "10", r: "3" })
2063
+ "map-pin": /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(import_jsx_runtime23.Fragment, { children: [
2064
+ /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("path", { d: "M20 10c0 6-8 12-8 12s-8-6-8-12a8 8 0 0 1 16 0Z" }),
2065
+ /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("circle", { cx: "12", cy: "10", r: "3" })
2001
2066
  ] }),
2002
- phone: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("path", { d: "M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z" }),
2003
- check: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("path", { d: "M20 6 9 17l-5-5" }),
2004
- sparkles: /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(import_jsx_runtime22.Fragment, { children: [
2005
- /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("path", { d: "M12 3l1.9 5.1L19 10l-5.1 1.9L12 17l-1.9-5.1L5 10l5.1-1.9L12 3z" }),
2006
- /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("path", { d: "M5 3v4M3 5h4M19 17v4M17 19h4" })
2067
+ phone: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("path", { d: "M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z" }),
2068
+ check: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("path", { d: "M20 6 9 17l-5-5" }),
2069
+ sparkles: /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(import_jsx_runtime23.Fragment, { children: [
2070
+ /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("path", { d: "M12 3l1.9 5.1L19 10l-5.1 1.9L12 17l-1.9-5.1L5 10l5.1-1.9L12 3z" }),
2071
+ /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("path", { d: "M5 3v4M3 5h4M19 17v4M17 19h4" })
2007
2072
  ] }),
2008
- tag: /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(import_jsx_runtime22.Fragment, { children: [
2009
- /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("path", { d: "M12.59 2.59A2 2 0 0 0 11.17 2H4a2 2 0 0 0-2 2v7.17a2 2 0 0 0 .59 1.42l8.7 8.7a2.43 2.43 0 0 0 3.42 0l6.58-6.58a2.43 2.43 0 0 0 0-3.42z" }),
2010
- /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("circle", { cx: "7.5", cy: "7.5", r: "1.5" })
2073
+ tag: /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(import_jsx_runtime23.Fragment, { children: [
2074
+ /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("path", { d: "M12.59 2.59A2 2 0 0 0 11.17 2H4a2 2 0 0 0-2 2v7.17a2 2 0 0 0 .59 1.42l8.7 8.7a2.43 2.43 0 0 0 3.42 0l6.58-6.58a2.43 2.43 0 0 0 0-3.42z" }),
2075
+ /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("circle", { cx: "7.5", cy: "7.5", r: "1.5" })
2011
2076
  ] }),
2012
- gift: /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(import_jsx_runtime22.Fragment, { children: [
2013
- /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("rect", { x: "3", y: "8", width: "18", height: "4", rx: "1" }),
2014
- /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("path", { d: "M12 8v13M19 12v7a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2v-7" }),
2015
- /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("path", { d: "M7.5 8a2.5 2.5 0 0 1 0-5C10 3 12 8 12 8s2-5 4.5-5a2.5 2.5 0 0 1 0 5" })
2077
+ gift: /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(import_jsx_runtime23.Fragment, { children: [
2078
+ /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("rect", { x: "3", y: "8", width: "18", height: "4", rx: "1" }),
2079
+ /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("path", { d: "M12 8v13M19 12v7a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2v-7" }),
2080
+ /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("path", { d: "M7.5 8a2.5 2.5 0 0 1 0-5C10 3 12 8 12 8s2-5 4.5-5a2.5 2.5 0 0 1 0 5" })
2016
2081
  ] }),
2017
- heart: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("path", { d: "M19 14c1.49-1.46 3-3.21 3-5.5A5.5 5.5 0 0 0 16.5 3c-1.76 0-3 .5-4.5 2-1.5-1.5-2.74-2-4.5-2A5.5 5.5 0 0 0 2 8.5c0 2.3 1.5 4.05 3 5.5l7 7Z" }),
2082
+ heart: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("path", { d: "M19 14c1.49-1.46 3-3.21 3-5.5A5.5 5.5 0 0 0 16.5 3c-1.76 0-3 .5-4.5 2-1.5-1.5-2.74-2-4.5-2A5.5 5.5 0 0 0 2 8.5c0 2.3 1.5 4.05 3 5.5l7 7Z" }),
2018
2083
  // Controls (not offered to content).
2019
- "chevron-left": /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("path", { d: "m15 18-6-6 6-6" }),
2020
- "chevron-right": /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("path", { d: "m9 18 6-6-6-6" }),
2021
- pause: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("path", { d: "M8 5v14M16 5v14" }),
2022
- play: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("path", { d: "M7 4.5v15l12-7.5-12-7.5Z" })
2084
+ "chevron-left": /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("path", { d: "m15 18-6-6 6-6" }),
2085
+ "chevron-right": /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("path", { d: "m9 18 6-6-6-6" }),
2086
+ pause: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("path", { d: "M8 5v14M16 5v14" }),
2087
+ play: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("path", { d: "M7 4.5v15l12-7.5-12-7.5Z" })
2023
2088
  };
2024
2089
  function NamedIcon({ name, size = 20, className = "dt-lp-icon" }) {
2025
2090
  const paths = PATHS[name];
2026
2091
  if (!paths) return null;
2027
- return /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("svg", { ...base2, width: size, height: size, className, children: paths });
2092
+ return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("svg", { ...base2, width: size, height: size, className, children: paths });
2028
2093
  }
2029
2094
 
2030
2095
  // src/tenant/HeroSlider.jsx
2031
- var import_jsx_runtime23 = require("react/jsx-runtime");
2096
+ var import_jsx_runtime24 = require("react/jsx-runtime");
2032
2097
  var reducedMotion = () => typeof window !== "undefined" && window.matchMedia && window.matchMedia("(prefers-reduced-motion: reduce)").matches;
2033
2098
  function Slide({ slide, index, count, active, headingTag: H, media, eager }) {
2034
2099
  const wide = media(slide.image, "wide");
2035
2100
  const narrow = media(slide.mobile_image, "narrow");
2036
- return /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(
2101
+ return /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(
2037
2102
  "div",
2038
2103
  {
2039
2104
  className: `dt-lp-slide dt-lp-slide--${slide.align} dt-lp-slide--overlay-${wide || narrow ? slide.overlay : "none"}${wide || narrow ? " dt-lp-slide--image" : ""}`,
@@ -2043,15 +2108,15 @@ function Slide({ slide, index, count, active, headingTag: H, media, eager }) {
2043
2108
  "aria-hidden": active ? void 0 : "true",
2044
2109
  "data-active": active ? "" : void 0,
2045
2110
  children: [
2046
- wide || narrow ? /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)("picture", { className: "dt-lp-slide-media", children: [
2047
- narrow && wide ? /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("source", { media: "(max-width: 640px)", srcSet: narrow }) : null,
2048
- /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("img", { src: wide || narrow, alt: slide.image && slide.image.alt || "", loading: eager ? "eager" : "lazy", decoding: "async" })
2111
+ wide || narrow ? /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)("picture", { className: "dt-lp-slide-media", children: [
2112
+ narrow && wide ? /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("source", { media: "(max-width: 640px)", srcSet: narrow }) : null,
2113
+ /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("img", { src: wide || narrow, alt: slide.image && slide.image.alt || "", loading: eager ? "eager" : "lazy", decoding: "async" })
2049
2114
  ] }) : null,
2050
- /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("div", { className: "dt-lp-wrap dt-lp-slide-body", children: /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)("div", { className: "dt-lp-slide-copy", children: [
2051
- slide.eyebrow ? /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("p", { className: "dt-lp-eyebrow dt-lp-slide-eyebrow", children: slide.eyebrow }) : null,
2052
- /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(H, { className: "dt-lp-slide-heading", children: slide.heading }),
2053
- slide.text ? /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("p", { className: "dt-lp-slide-text", children: slide.text }) : null,
2054
- slide.cta_label && slide.cta_href ? /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(SmartLink, { href: slide.cta_href, className: "dt-lp-btn dt-lp-btn--lg dt-lp-btn--primary dt-lp-slide-cta", tabIndex: active ? void 0 : -1, children: slide.cta_label }) : null
2115
+ /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("div", { className: "dt-lp-wrap dt-lp-slide-body", children: /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)("div", { className: "dt-lp-slide-copy", children: [
2116
+ slide.eyebrow ? /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("p", { className: "dt-lp-eyebrow dt-lp-slide-eyebrow", children: slide.eyebrow }) : null,
2117
+ /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(H, { className: "dt-lp-slide-heading", children: slide.heading }),
2118
+ slide.text ? /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("p", { className: "dt-lp-slide-text", children: slide.text }) : null,
2119
+ slide.cta_label && slide.cta_href ? /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(SmartLink, { href: slide.cta_href, className: "dt-lp-btn dt-lp-btn--lg dt-lp-btn--primary dt-lp-slide-cta", tabIndex: active ? void 0 : -1, children: slide.cta_label }) : null
2055
2120
  ] }) })
2056
2121
  ]
2057
2122
  }
@@ -2059,20 +2124,20 @@ function Slide({ slide, index, count, active, headingTag: H, media, eager }) {
2059
2124
  }
2060
2125
  function HeroSlider({ id, slides = [], height = "standard", autoplay = true, interval = "6", first = false, media }) {
2061
2126
  const count = slides.length;
2062
- const [index, setIndex] = (0, import_react9.useState)(0);
2063
- const [playing, setPlaying] = (0, import_react9.useState)(false);
2064
- const [hold, setHold] = (0, import_react9.useState)(false);
2065
- const touch = (0, import_react9.useRef)(null);
2066
- const go = (0, import_react9.useCallback)((i) => setIndex((i % count + count) % count), [count]);
2067
- (0, import_react9.useEffect)(() => {
2127
+ const [index, setIndex] = (0, import_react10.useState)(0);
2128
+ const [playing, setPlaying] = (0, import_react10.useState)(false);
2129
+ const [hold, setHold] = (0, import_react10.useState)(false);
2130
+ const touch = (0, import_react10.useRef)(null);
2131
+ const go = (0, import_react10.useCallback)((i) => setIndex((i % count + count) % count), [count]);
2132
+ (0, import_react10.useEffect)(() => {
2068
2133
  setPlaying(Boolean(autoplay) && count > 1 && !reducedMotion());
2069
2134
  }, [autoplay, count]);
2070
- (0, import_react9.useEffect)(() => {
2135
+ (0, import_react10.useEffect)(() => {
2071
2136
  if (!playing || hold || count < 2) return void 0;
2072
2137
  const t = setTimeout(() => go(index + 1), Math.max(3, Number(interval) || 6) * 1e3);
2073
2138
  return () => clearTimeout(t);
2074
2139
  }, [playing, hold, index, interval, count, go]);
2075
- (0, import_react9.useEffect)(() => {
2140
+ (0, import_react10.useEffect)(() => {
2076
2141
  if (index >= count) setIndex(0);
2077
2142
  }, [count, index]);
2078
2143
  if (!count) return null;
@@ -2095,7 +2160,7 @@ function HeroSlider({ id, slides = [], height = "standard", autoplay = true, int
2095
2160
  touch.current = null;
2096
2161
  if (Math.abs(dx) > 40) go(index + (dx < 0 ? 1 : -1));
2097
2162
  };
2098
- return /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(
2163
+ return /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(
2099
2164
  "section",
2100
2165
  {
2101
2166
  id,
@@ -2110,12 +2175,12 @@ function HeroSlider({ id, slides = [], height = "standard", autoplay = true, int
2110
2175
  onTouchStart,
2111
2176
  onTouchEnd,
2112
2177
  children: [
2113
- /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("div", { className: "dt-lp-slides", "aria-live": playing && !hold ? "off" : "polite", children: slides.map((s, i) => /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(Slide, { slide: s, index: i, count, active: i === index, eager: i === 0, headingTag: first && i === 0 ? "h1" : "h2", media }, i)) }),
2114
- count > 1 ? /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)("div", { className: "dt-lp-slider-controls", children: [
2115
- /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("button", { type: "button", className: "dt-lp-slider-btn", "aria-label": "Previous slide", onClick: () => go(index - 1), children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(NamedIcon, { name: "chevron-left", size: 20 }) }),
2116
- /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("div", { className: "dt-lp-slider-dots", children: slides.map((s, i) => /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("button", { type: "button", className: "dt-lp-slider-dot", "aria-label": `Go to slide ${i + 1}`, "aria-current": i === index ? "true" : void 0, onClick: () => go(i) }, i)) }),
2117
- /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("button", { type: "button", className: "dt-lp-slider-btn", "aria-label": "Next slide", onClick: () => go(index + 1), children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(NamedIcon, { name: "chevron-right", size: 20 }) }),
2118
- autoplay ? /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("button", { type: "button", className: "dt-lp-slider-btn", "aria-label": playing ? "Pause slides" : "Play slides", onClick: () => setPlaying((p) => !p), children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(NamedIcon, { name: playing ? "pause" : "play", size: 18 }) }) : null
2178
+ /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("div", { className: "dt-lp-slides", "aria-live": playing && !hold ? "off" : "polite", children: slides.map((s, i) => /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(Slide, { slide: s, index: i, count, active: i === index, eager: i === 0, headingTag: first && i === 0 ? "h1" : "h2", media }, i)) }),
2179
+ count > 1 ? /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)("div", { className: "dt-lp-slider-controls", children: [
2180
+ /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("button", { type: "button", className: "dt-lp-slider-btn", "aria-label": "Previous slide", onClick: () => go(index - 1), children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(NamedIcon, { name: "chevron-left", size: 20 }) }),
2181
+ /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("div", { className: "dt-lp-slider-dots", children: slides.map((s, i) => /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("button", { type: "button", className: "dt-lp-slider-dot", "aria-label": `Go to slide ${i + 1}`, "aria-current": i === index ? "true" : void 0, onClick: () => go(i) }, i)) }),
2182
+ /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("button", { type: "button", className: "dt-lp-slider-btn", "aria-label": "Next slide", onClick: () => go(index + 1), children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(NamedIcon, { name: "chevron-right", size: 20 }) }),
2183
+ autoplay ? /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("button", { type: "button", className: "dt-lp-slider-btn", "aria-label": playing ? "Pause slides" : "Play slides", onClick: () => setPlaying((p) => !p), children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(NamedIcon, { name: playing ? "pause" : "play", size: 18 }) }) : null
2119
2184
  ] }) : null
2120
2185
  ]
2121
2186
  }
@@ -2123,70 +2188,70 @@ function HeroSlider({ id, slides = [], height = "standard", autoplay = true, int
2123
2188
  }
2124
2189
 
2125
2190
  // src/tenant/blocks.jsx
2126
- var import_react10 = require("react");
2127
- var import_jsx_runtime24 = require("react/jsx-runtime");
2191
+ var import_react11 = require("react");
2192
+ var import_jsx_runtime25 = require("react/jsx-runtime");
2128
2193
  var hid = (id) => `${id}-title`;
2129
- var Heading = ({ id, title: title2, intro: intro2, align = "center" }) => title2 ? /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(SectionIntro, { id: hid(id), title: title2, body: intro2, align }) : null;
2194
+ var Heading = ({ id, title: title2, intro: intro2, align = "center" }) => title2 ? /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(SectionIntro, { id: hid(id), title: title2, body: intro2, align }) : null;
2130
2195
  function SlotSection({ id, title: title2, intro: intro2, tone: tone2, slot, ...props }) {
2131
2196
  const body = typeof slot === "function" ? slot({ title: title2, intro: intro2, ...props }) : slot;
2132
2197
  if (!body) return null;
2133
- return /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(Section, { id, labelledBy: title2 ? hid(id) : void 0, tone: tone2, className: "dt-lp-slot", children: [
2134
- /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(Heading, { id, title: title2, intro: intro2, align: "start" }),
2135
- /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("div", { className: "dt-lp-slot-body", children: body })
2198
+ return /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(Section, { id, labelledBy: title2 ? hid(id) : void 0, tone: tone2, className: "dt-lp-slot", children: [
2199
+ /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(Heading, { id, title: title2, intro: intro2, align: "start" }),
2200
+ /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("div", { className: "dt-lp-slot-body", children: body })
2136
2201
  ] });
2137
2202
  }
2138
2203
  function PromoBanner({ id, eyebrow, heading: heading2, text, cta_label: label, cta_href: href, image, style = "brand", media }) {
2139
2204
  const src = media(image, "wide");
2140
- return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("section", { id, "aria-labelledby": hid(id), className: "dt-lp-section dt-lp-promo-wrap", children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("div", { className: "dt-lp-wrap", children: /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)("div", { className: `dt-lp-promo dt-lp-promo--${style}${src ? " dt-lp-promo--image" : ""}`, children: [
2141
- /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)("div", { className: "dt-lp-promo-copy", children: [
2142
- eyebrow ? /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("p", { className: "dt-lp-eyebrow dt-lp-eyebrow--inverse", children: eyebrow }) : null,
2143
- /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("h2", { id: hid(id), className: "dt-lp-h2 dt-lp-promo-heading", children: heading2 }),
2144
- text ? /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("p", { className: "dt-lp-promo-text", children: text }) : null,
2145
- label && href ? /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(SmartLink, { href, className: "dt-lp-btn dt-lp-btn--lg dt-lp-btn--inverse", children: label }) : null
2205
+ return /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("section", { id, "aria-labelledby": hid(id), className: "dt-lp-section dt-lp-promo-wrap", children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("div", { className: "dt-lp-wrap", children: /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)("div", { className: `dt-lp-promo dt-lp-promo--${style}${src ? " dt-lp-promo--image" : ""}`, children: [
2206
+ /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)("div", { className: "dt-lp-promo-copy", children: [
2207
+ eyebrow ? /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("p", { className: "dt-lp-eyebrow dt-lp-eyebrow--inverse", children: eyebrow }) : null,
2208
+ /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("h2", { id: hid(id), className: "dt-lp-h2 dt-lp-promo-heading", children: heading2 }),
2209
+ text ? /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("p", { className: "dt-lp-promo-text", children: text }) : null,
2210
+ label && href ? /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(SmartLink, { href, className: "dt-lp-btn dt-lp-btn--lg dt-lp-btn--inverse", children: label }) : null
2146
2211
  ] }),
2147
- src ? /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("img", { className: "dt-lp-promo-img", src, alt: image.alt || "", loading: "lazy", decoding: "async" }) : null
2212
+ src ? /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("img", { className: "dt-lp-promo-img", src, alt: image.alt || "", loading: "lazy", decoding: "async" }) : null
2148
2213
  ] }) }) });
2149
2214
  }
2150
2215
  function TrustBadges({ id, title: title2, intro: intro2, items = [], tone: tone2 }) {
2151
- return /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(Section, { id, labelledBy: title2 ? hid(id) : void 0, tone: tone2, children: [
2152
- /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(Heading, { id, title: title2, intro: intro2 }),
2153
- /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("ul", { className: "dt-lp-tgrid dt-lp-tgrid--4", children: items.map((it, i) => /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)("li", { className: "dt-lp-card dt-lp-tcard", children: [
2154
- /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("span", { className: "dt-lp-icon-tile", children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(NamedIcon, { name: it.icon, size: 22 }) }),
2155
- /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)("div", { className: "dt-lp-card-text", children: [
2156
- /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("h3", { className: "dt-lp-h3", children: it.title }),
2157
- it.text ? /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("p", { children: it.text }) : null
2216
+ return /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(Section, { id, labelledBy: title2 ? hid(id) : void 0, tone: tone2, children: [
2217
+ /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(Heading, { id, title: title2, intro: intro2 }),
2218
+ /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("ul", { className: "dt-lp-tgrid dt-lp-tgrid--4", children: items.map((it, i) => /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)("li", { className: "dt-lp-card dt-lp-tcard", children: [
2219
+ /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("span", { className: "dt-lp-icon-tile", children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(NamedIcon, { name: it.icon, size: 22 }) }),
2220
+ /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)("div", { className: "dt-lp-card-text", children: [
2221
+ /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("h3", { className: "dt-lp-h3", children: it.title }),
2222
+ it.text ? /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("p", { children: it.text }) : null
2158
2223
  ] })
2159
2224
  ] }, i)) })
2160
2225
  ] });
2161
2226
  }
2162
2227
  function CtaCards({ id, title: title2, items = [], tone: tone2 }) {
2163
- return /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(Section, { id, labelledBy: title2 ? hid(id) : void 0, tone: tone2, children: [
2164
- /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(Heading, { id, title: title2 }),
2165
- /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("ul", { className: `dt-lp-tgrid dt-lp-tgrid--${Math.min(items.length, 4) || 1}`, children: items.map((it, i) => /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("li", { children: /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(SmartLink, { href: it.cta_href, className: "dt-lp-card dt-lp-tcard dt-lp-ctacard", children: [
2166
- /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("span", { className: "dt-lp-icon-tile", children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(NamedIcon, { name: it.icon, size: 22 }) }),
2167
- /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)("div", { className: "dt-lp-card-text", children: [
2168
- /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("h3", { className: "dt-lp-h3", children: it.title }),
2169
- it.text ? /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("p", { children: it.text }) : null,
2170
- it.cta_label ? /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)("span", { className: "dt-lp-textlink", children: [
2228
+ return /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(Section, { id, labelledBy: title2 ? hid(id) : void 0, tone: tone2, children: [
2229
+ /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(Heading, { id, title: title2 }),
2230
+ /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("ul", { className: `dt-lp-tgrid dt-lp-tgrid--${Math.min(items.length, 4) || 1}`, children: items.map((it, i) => /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("li", { children: /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(SmartLink, { href: it.cta_href, className: "dt-lp-card dt-lp-tcard dt-lp-ctacard", children: [
2231
+ /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("span", { className: "dt-lp-icon-tile", children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(NamedIcon, { name: it.icon, size: 22 }) }),
2232
+ /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)("div", { className: "dt-lp-card-text", children: [
2233
+ /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("h3", { className: "dt-lp-h3", children: it.title }),
2234
+ it.text ? /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("p", { children: it.text }) : null,
2235
+ it.cta_label ? /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)("span", { className: "dt-lp-textlink", children: [
2171
2236
  it.cta_label,
2172
2237
  " ",
2173
- /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(NamedIcon, { name: "chevron-right", size: 16 })
2238
+ /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(NamedIcon, { name: "chevron-right", size: 16 })
2174
2239
  ] }) : null
2175
2240
  ] })
2176
2241
  ] }) }, i)) })
2177
2242
  ] });
2178
2243
  }
2179
2244
  function Testimonials({ id, title: title2, items = [], tone: tone2 }) {
2180
- return /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(Section, { id, labelledBy: title2 ? hid(id) : void 0, tone: tone2, children: [
2181
- /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(Heading, { id, title: title2 }),
2182
- /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("ul", { className: "dt-lp-tgrid dt-lp-tgrid--3", children: items.map((it, i) => {
2245
+ return /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(Section, { id, labelledBy: title2 ? hid(id) : void 0, tone: tone2, children: [
2246
+ /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(Heading, { id, title: title2 }),
2247
+ /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("ul", { className: "dt-lp-tgrid dt-lp-tgrid--3", children: items.map((it, i) => {
2183
2248
  const stars = Math.max(1, Math.min(5, Number(it.rating) || 5));
2184
- return /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)("li", { className: "dt-lp-card dt-lp-quote", children: [
2185
- /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("p", { className: "dt-lp-stars", "aria-label": `${stars} out of 5 stars`, children: Array.from({ length: 5 }, (_, s) => /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("span", { "aria-hidden": "true", className: s < stars ? "dt-lp-star dt-lp-star--on" : "dt-lp-star", children: "\u2605" }, s)) }),
2186
- /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("blockquote", { children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("p", { children: it.quote }) }),
2187
- /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)("p", { className: "dt-lp-quote-by", children: [
2188
- /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("strong", { children: it.name }),
2189
- it.detail ? /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)("span", { children: [
2249
+ return /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)("li", { className: "dt-lp-card dt-lp-quote", children: [
2250
+ /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("p", { className: "dt-lp-stars", "aria-label": `${stars} out of 5 stars`, children: Array.from({ length: 5 }, (_, s) => /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("span", { "aria-hidden": "true", className: s < stars ? "dt-lp-star dt-lp-star--on" : "dt-lp-star", children: "\u2605" }, s)) }),
2251
+ /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("blockquote", { children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("p", { children: it.quote }) }),
2252
+ /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)("p", { className: "dt-lp-quote-by", children: [
2253
+ /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("strong", { children: it.name }),
2254
+ it.detail ? /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)("span", { children: [
2190
2255
  " \xB7 ",
2191
2256
  it.detail
2192
2257
  ] }) : null
@@ -2196,36 +2261,36 @@ function Testimonials({ id, title: title2, items = [], tone: tone2 }) {
2196
2261
  ] });
2197
2262
  }
2198
2263
  function FaqSection({ id, title: title2, intro: intro2, items = [], tone: tone2 }) {
2199
- return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(Faq, { id, title: title2, intro: intro2, items, tone: tone2, openFirst: true });
2264
+ return /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(Faq, { id, title: title2, intro: intro2, items, tone: tone2, openFirst: true });
2200
2265
  }
2201
2266
  function RichText({ id, title: title2, html, width = "narrow", tone: tone2 }) {
2202
- return /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(Section, { id, labelledBy: title2 ? hid(id) : void 0, tone: tone2, narrow: width === "narrow", children: [
2203
- title2 ? /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("h2", { id: hid(id), className: "dt-lp-h2", children: title2 }) : null,
2204
- /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("div", { className: "dt-lp-prose", dangerouslySetInnerHTML: { __html: sanitizeRichText(html) } })
2267
+ return /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(Section, { id, labelledBy: title2 ? hid(id) : void 0, tone: tone2, narrow: width === "narrow", children: [
2268
+ title2 ? /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("h2", { id: hid(id), className: "dt-lp-h2", children: title2 }) : null,
2269
+ /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("div", { className: "dt-lp-prose", dangerouslySetInnerHTML: { __html: sanitizeRichText(html) } })
2205
2270
  ] });
2206
2271
  }
2207
2272
  function UspStrip({ id, items = [], tone: tone2 = "tinted" }) {
2208
- return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("section", { id, "aria-label": "Highlights", className: `dt-lp-usp dt-lp-tone--${tone2}`, children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("div", { className: "dt-lp-wrap", children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("ul", { className: "dt-lp-usp-list", children: items.map((it, i) => /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)("li", { className: "dt-lp-usp-item", children: [
2209
- /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(NamedIcon, { name: it.icon, size: 20, className: "dt-lp-icon dt-lp-usp-icon" }),
2210
- /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)("span", { children: [
2211
- /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("strong", { children: it.title }),
2212
- it.text ? /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("span", { className: "dt-lp-usp-text", children: it.text }) : null
2273
+ return /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("section", { id, "aria-label": "Highlights", className: `dt-lp-usp dt-lp-tone--${tone2}`, children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("div", { className: "dt-lp-wrap", children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("ul", { className: "dt-lp-usp-list", children: items.map((it, i) => /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)("li", { className: "dt-lp-usp-item", children: [
2274
+ /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(NamedIcon, { name: it.icon, size: 20, className: "dt-lp-icon dt-lp-usp-icon" }),
2275
+ /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)("span", { children: [
2276
+ /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("strong", { children: it.title }),
2277
+ it.text ? /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("span", { className: "dt-lp-usp-text", children: it.text }) : null
2213
2278
  ] })
2214
2279
  ] }, i)) }) }) });
2215
2280
  }
2216
2281
  function BrandStrip({ id, title: title2, items = [], tone: tone2, media }) {
2217
- return /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(Section, { id, labelledBy: title2 ? hid(id) : void 0, tone: tone2, className: "dt-lp-brands", children: [
2218
- /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(Heading, { id, title: title2 }),
2219
- /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("ul", { className: "dt-lp-brand-list", children: items.map((it, i) => {
2282
+ return /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(Section, { id, labelledBy: title2 ? hid(id) : void 0, tone: tone2, className: "dt-lp-brands", children: [
2283
+ /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(Heading, { id, title: title2 }),
2284
+ /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("ul", { className: "dt-lp-brand-list", children: items.map((it, i) => {
2220
2285
  const src = media(it.logo, "logo");
2221
- return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("li", { className: "dt-lp-brand-item", children: src ? /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("img", { src, alt: it.name, loading: "lazy", decoding: "async" }) : /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("span", { children: it.name }) }, i);
2286
+ return /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("li", { className: "dt-lp-brand-item", children: src ? /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("img", { src, alt: it.name, loading: "lazy", decoding: "async" }) : /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("span", { children: it.name }) }, i);
2222
2287
  }) })
2223
2288
  ] });
2224
2289
  }
2225
2290
  function Newsletter({ id, title: title2, text, button_label: button, consent_text: consentText, success_text: success, tone: tone2, onSubscribe }) {
2226
- const [email, setEmail] = (0, import_react10.useState)("");
2227
- const [consent, setConsent] = (0, import_react10.useState)(false);
2228
- const [state, setState] = (0, import_react10.useState)({ status: "idle", message: "" });
2291
+ const [email, setEmail] = (0, import_react11.useState)("");
2292
+ const [consent, setConsent] = (0, import_react11.useState)(false);
2293
+ const [state, setState] = (0, import_react11.useState)({ status: "idle", message: "" });
2229
2294
  const submit = async (e) => {
2230
2295
  e.preventDefault();
2231
2296
  if (!onSubscribe) return;
@@ -2237,36 +2302,36 @@ function Newsletter({ id, title: title2, text, button_label: button, consent_tex
2237
2302
  setState({ status: "error", message: err && err.message || "Could not subscribe. Please try again." });
2238
2303
  }
2239
2304
  };
2240
- return /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(Section, { id, labelledBy: hid(id), tone: tone2, narrow: true, children: [
2241
- /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(SectionIntro, { id: hid(id), title: title2, body: text, align: "center" }),
2242
- state.status === "done" ? /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("p", { className: "dt-lp-news-done", role: "status", children: state.message }) : /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)("form", { className: "dt-lp-news", onSubmit: submit, children: [
2243
- /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)("div", { className: "dt-lp-news-row", children: [
2244
- /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("label", { className: "dt-lp-sr", htmlFor: `${id}-email`, children: "Email" }),
2245
- /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("input", { id: `${id}-email`, type: "email", required: true, autoComplete: "email", placeholder: "you@example.com", value: email, onChange: (e) => setEmail(e.target.value), className: "dt-lp-input" }),
2246
- /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("button", { type: "submit", className: "dt-lp-btn dt-lp-btn--md dt-lp-btn--primary", disabled: !consent || state.status === "busy", "aria-busy": state.status === "busy" ? "true" : void 0, children: button })
2305
+ return /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(Section, { id, labelledBy: hid(id), tone: tone2, narrow: true, children: [
2306
+ /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(SectionIntro, { id: hid(id), title: title2, body: text, align: "center" }),
2307
+ state.status === "done" ? /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("p", { className: "dt-lp-news-done", role: "status", children: state.message }) : /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)("form", { className: "dt-lp-news", onSubmit: submit, children: [
2308
+ /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)("div", { className: "dt-lp-news-row", children: [
2309
+ /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("label", { className: "dt-lp-sr", htmlFor: `${id}-email`, children: "Email" }),
2310
+ /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("input", { id: `${id}-email`, type: "email", required: true, autoComplete: "email", placeholder: "you@example.com", value: email, onChange: (e) => setEmail(e.target.value), className: "dt-lp-input" }),
2311
+ /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("button", { type: "submit", className: "dt-lp-btn dt-lp-btn--md dt-lp-btn--primary", disabled: !consent || state.status === "busy", "aria-busy": state.status === "busy" ? "true" : void 0, children: button })
2247
2312
  ] }),
2248
- /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)("label", { className: "dt-lp-news-consent", children: [
2249
- /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("input", { type: "checkbox", checked: consent, onChange: (e) => setConsent(e.target.checked), required: true }),
2250
- /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("span", { children: consentText })
2313
+ /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)("label", { className: "dt-lp-news-consent", children: [
2314
+ /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("input", { type: "checkbox", checked: consent, onChange: (e) => setConsent(e.target.checked), required: true }),
2315
+ /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("span", { children: consentText })
2251
2316
  ] }),
2252
- state.status === "error" ? /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("p", { className: "dt-lp-news-error", role: "alert", children: state.message }) : null
2317
+ state.status === "error" ? /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("p", { className: "dt-lp-news-error", role: "alert", children: state.message }) : null
2253
2318
  ] })
2254
2319
  ] });
2255
2320
  }
2256
2321
  function Gallery({ id, title: title2, items = [], columns = "3", tone: tone2, media }) {
2257
2322
  const shown = items.map((it) => ({ ...it, src: media(it.image, "gallery") })).filter((it) => it.src);
2258
2323
  if (!shown.length) return null;
2259
- return /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(Section, { id, labelledBy: title2 ? hid(id) : void 0, tone: tone2, children: [
2260
- /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(Heading, { id, title: title2 }),
2261
- /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("ul", { className: `dt-lp-gallery dt-lp-gallery--${columns}`, children: shown.map((it, i) => /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("li", { children: /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)("figure", { children: [
2262
- /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("img", { src: it.src, alt: it.image.alt || it.caption || "", loading: "lazy", decoding: "async" }),
2263
- it.caption ? /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("figcaption", { children: it.caption }) : null
2324
+ return /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(Section, { id, labelledBy: title2 ? hid(id) : void 0, tone: tone2, children: [
2325
+ /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(Heading, { id, title: title2 }),
2326
+ /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("ul", { className: `dt-lp-gallery dt-lp-gallery--${columns}`, children: shown.map((it, i) => /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("li", { children: /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)("figure", { children: [
2327
+ /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("img", { src: it.src, alt: it.image.alt || it.caption || "", loading: "lazy", decoding: "async" }),
2328
+ it.caption ? /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("figcaption", { children: it.caption }) : null
2264
2329
  ] }) }, i)) })
2265
2330
  ] });
2266
2331
  }
2267
2332
 
2268
2333
  // src/tenant/TenantPage.jsx
2269
- var import_jsx_runtime25 = require("react/jsx-runtime");
2334
+ var import_jsx_runtime26 = require("react/jsx-runtime");
2270
2335
  var TENANT_BLOCKS = {
2271
2336
  hero_slider: HeroSlider,
2272
2337
  featured: SlotSection,
@@ -2282,7 +2347,7 @@ var TENANT_BLOCKS = {
2282
2347
  newsletter: Newsletter,
2283
2348
  gallery: Gallery
2284
2349
  };
2285
- var SectionBoundary = class extends import_react11.Component {
2350
+ var SectionBoundary = class extends import_react12.Component {
2286
2351
  constructor(props) {
2287
2352
  super(props);
2288
2353
  this.state = { failed: false };
@@ -2306,20 +2371,20 @@ function TenantPage({
2306
2371
  className = "",
2307
2372
  headingStart = 1
2308
2373
  }) {
2309
- const doc = (0, import_react11.useMemo)(() => validatePage(page).page, [page]);
2310
- const vars = (0, import_react11.useMemo)(() => themeVars(theme), [theme]);
2311
- const ctx = (0, import_react11.useMemo)(() => ({ brand: { id: "tenant", name: storeName, primary: vars.theme.primary }, linkComponent, onBookDemo: null, home: true }), [storeName, vars.theme.primary, linkComponent]);
2374
+ const doc = (0, import_react12.useMemo)(() => validatePage(page).page, [page]);
2375
+ const vars = (0, import_react12.useMemo)(() => themeVars(theme), [theme]);
2376
+ const ctx = (0, import_react12.useMemo)(() => ({ brand: { id: "tenant", name: storeName, primary: vars.theme.primary }, linkComponent, onBookDemo: null, home: true }), [storeName, vars.theme.primary, linkComponent]);
2312
2377
  const media = (ref, variant) => ref && ref.media_id != null ? resolveMedia(ref, variant) : null;
2313
2378
  const visible = doc.sections.filter((s) => s.enabled && TENANT_BLOCKS[s.type]);
2314
- return /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(LandingProvider, { value: ctx, children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("div", { className: `dt-landing dt-lp-tenant ${className}`.trim(), style: vars.style, "data-theme": vars.theme.mode === "auto" ? void 0 : vars.theme.mode, children: visible.map((s, i) => {
2379
+ return /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(LandingProvider, { value: ctx, children: /* @__PURE__ */ (0, import_jsx_runtime26.jsx)("div", { className: `dt-landing dt-lp-tenant ${className}`.trim(), style: vars.style, "data-theme": vars.theme.mode === "auto" ? void 0 : vars.theme.mode, children: visible.map((s, i) => {
2315
2380
  const Block = TENANT_BLOCKS[s.type];
2316
- return /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(SectionBoundary, { children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(Block, { ...s.props, id: `s-${s.id}`, first: i === 0 && headingStart === 1, media, slot: slots[s.type], onSubscribe }) }, s.id);
2381
+ return /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(SectionBoundary, { children: /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(Block, { ...s.props, id: `s-${s.id}`, first: i === 0 && headingStart === 1, media, slot: slots[s.type], onSubscribe }) }, s.id);
2317
2382
  }) }) });
2318
2383
  }
2319
2384
 
2320
2385
  // src/tenant/TemplateRegion.jsx
2321
- var import_react12 = require("react");
2322
- var import_jsx_runtime26 = require("react/jsx-runtime");
2386
+ var import_react13 = require("react");
2387
+ var import_jsx_runtime27 = require("react/jsx-runtime");
2323
2388
  var noMedia2 = () => null;
2324
2389
  function TemplateRegion({
2325
2390
  blocks = [],
@@ -2330,17 +2395,17 @@ function TemplateRegion({
2330
2395
  storeName = "",
2331
2396
  className = ""
2332
2397
  }) {
2333
- const vars = (0, import_react12.useMemo)(() => themeVars(theme), [theme]);
2334
- const ctx = (0, import_react12.useMemo)(() => ({ brand: { id: "tenant", name: storeName, primary: vars.theme.primary }, linkComponent, onBookDemo: null, home: false }), [storeName, vars.theme.primary, linkComponent]);
2398
+ const vars = (0, import_react13.useMemo)(() => themeVars(theme), [theme]);
2399
+ const ctx = (0, import_react13.useMemo)(() => ({ brand: { id: "tenant", name: storeName, primary: vars.theme.primary }, linkComponent, onBookDemo: null, home: false }), [storeName, vars.theme.primary, linkComponent]);
2335
2400
  const media = (ref, variant) => ref && ref.media_id != null ? resolveMedia(ref, variant) : null;
2336
- return /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_react12.Fragment, { children: blocks.filter((b) => b && b.enabled !== false).map((b) => {
2401
+ return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_react13.Fragment, { children: blocks.filter((b) => b && b.enabled !== false).map((b) => {
2337
2402
  const Slot = slots[b.type];
2338
2403
  if (Slot) {
2339
- return /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(SectionBoundary, { children: /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(Slot, { block: b, props: b.props || {} }) }, b.id);
2404
+ return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(SectionBoundary, { children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(Slot, { block: b, props: b.props || {} }) }, b.id);
2340
2405
  }
2341
2406
  const Block = TENANT_BLOCKS[b.type];
2342
2407
  if (!Block || Block === TENANT_BLOCKS.featured) return null;
2343
- return /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(SectionBoundary, { children: /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(LandingProvider, { value: ctx, children: /* @__PURE__ */ (0, import_jsx_runtime26.jsx)("div", { className: `dt-landing dt-lp-tenant dt-lp-region ${className}`.trim(), style: vars.style, "data-block": b.type, children: /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(Block, { ...b.props, id: `b-${b.id}`, first: false, media, slot: null, onSubscribe: null }) }) }) }, b.id);
2408
+ return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(SectionBoundary, { children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(LandingProvider, { value: ctx, children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)("div", { className: `dt-landing dt-lp-tenant dt-lp-region ${className}`.trim(), style: vars.style, "data-block": b.type, children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(Block, { ...b.props, id: `b-${b.id}`, first: false, media, slot: null, onSubscribe: null }) }) }) }, b.id);
2344
2409
  }) });
2345
2410
  }
2346
2411