efficient-storefront-blocks 0.68.0 → 0.70.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +27 -0
- package/README.md +5 -5
- package/dist/chunks/{EditorPreviewCheckout-HFP2TRRR.js → EditorPreviewCheckout-XI4VULPL.js} +1 -1
- package/dist/chunks/{SiteEditorProvider-A7YYACG3.js → SiteEditorProvider-3GKJZDL5.js} +1 -1
- package/dist/chunks/{chunk-EPJ5SM3A.js → chunk-QWHNN7GF.js} +1 -1
- package/dist/chunks/chunk-RPLNV3WM.js +1 -0
- package/dist/chunks/{chunk-FL3KMJAT.js → chunk-TXTTPEQA.js} +1 -1
- package/dist/chunks/chunk-XF2ZAVNU.js +262 -0
- package/dist/chunks/{fitment-data-RXCNCZLU.js → fitment-data-6GK7QQQI.js} +1 -1
- package/dist/contract.js +10 -2
- package/dist/editor/components/HeaderSettingsPanel.d.ts +4 -7
- package/dist/editor/components/HeaderSettingsPanel.js +1 -1
- package/dist/editor/lib/document/blocks/commerce/AlloyWheelsListing/fields.js +1 -1
- package/dist/editor/lib/document/blocks/commerce/GalleryB/fields.js +1 -1
- package/dist/editor/lib/document/blocks/commerce/ProductGrid/fields.js +1 -1
- package/dist/editor/lib/document/blocks/service/FooterDivider/fields.js +1 -1
- package/dist/editor/lib/document/blocks/service/FooterMenu/fields.js +1 -1
- package/dist/editor/lib/document/blocks/service/OpeningHours/fields.d.ts +2 -0
- package/dist/editor/lib/document/blocks/service/OpeningHours/fields.js +1 -0
- package/dist/editor/lib/document/blocks/service/index.d.ts +1 -1
- package/dist/editor/lib/document/blocks/service/index.js +1 -1
- package/dist/editor/lib/document/config.js +1 -1
- package/dist/editor/lib/efficient-block-sources.js +1 -1
- package/dist/editor/lib/storefront-editor-words.d.ts +8 -5
- package/dist/editor/lib/storefront-editor-words.js +1 -1
- package/dist/editor.css +1 -1
- package/dist/index.d.ts +5 -3
- package/dist/index.js +147 -169
- package/dist/render/app/globals.css +41 -13
- package/dist/render/built-with.json +1 -1
- package/dist/render/components/OpeningHours.d.ts +12 -0
- package/dist/render/components/OpeningHours.js +1 -0
- package/dist/render/components/pdp-dynamic/DynamicGalleryGrid.d.ts +6 -0
- package/dist/render/components/pdp-dynamic/DynamicGalleryGrid.js +1 -1
- package/dist/render/components/pdp-dynamic/RecordPhotoGallery.d.ts +3 -2
- package/dist/render/components/pdp-dynamic/RecordPhotoGallery.js +1 -1
- package/dist/render/lib/document/blocks/commerce/GalleryB/render.js +1 -1
- package/dist/render/lib/document/blocks/service/OpeningHours/meta.d.ts +11 -0
- package/dist/render/lib/document/blocks/service/OpeningHours/meta.js +1 -0
- package/dist/render/lib/document/blocks/service/OpeningHours/render.d.ts +4 -0
- package/dist/render/lib/document/blocks/service/OpeningHours/render.js +1 -0
- package/dist/render/lib/document/blocks/service/metas.d.ts +1 -0
- package/dist/render/lib/document/blocks/service/metas.js +1 -1
- package/dist/render/lib/document/blocks/service/renders.d.ts +1 -0
- package/dist/render/lib/document/blocks/service/renders.js +1 -1
- package/dist/render/lib/document/blocks/text-part-shapes.json +10 -0
- package/dist/render/lib/document/lazy-draws.js +1 -1
- package/dist/render/lib/sections/opening-hours.d.ts +53 -0
- package/dist/render/lib/sections/opening-hours.js +1 -0
- package/dist/words.d.ts +11 -5
- package/dist/words.js +3 -3
- package/package.json +3 -3
- package/dist/chunks/chunk-CFYEYTU6.js +0 -254
- package/dist/chunks/chunk-YACB7UXA.js +0 -1
- /package/dist/chunks/{chunk-YTQS5GY6.js → chunk-SQH6XBRG.js} +0 -0
- /package/dist/chunks/{chunk-CFYEYTU6.js.LEGAL.txt → chunk-XF2ZAVNU.js.LEGAL.txt} +0 -0
|
@@ -1295,7 +1295,7 @@ body:has([data-page-width="full"]) footer {
|
|
|
1295
1295
|
phone / tablet / desktop split. A class names the tier, never a number:
|
|
1296
1296
|
`view-tablet:flex` is width ≥ 720, `max-view-tablet:flex` is width < 720, so
|
|
1297
1297
|
the two halves of a pair always meet. Hand-typed pairs did not: the header's
|
|
1298
|
-
`max-[800px]` / `min-[801px]` left exactly 800px —
|
|
1298
|
+
`max-[800px]` / `min-[801px]` left exactly 800px — The editor's Tablet view —
|
|
1299
1299
|
with no header at all (duplicate audit 2026-10-23, D01). CSS cannot import
|
|
1300
1300
|
the constants, so scripts/test-view-tier-breakpoints.ts fails if these two
|
|
1301
1301
|
lines and easel ever disagree. */
|
|
@@ -1521,7 +1521,7 @@ body:has([data-page-width="full"]) footer {
|
|
|
1521
1521
|
}
|
|
1522
1522
|
}
|
|
1523
1523
|
|
|
1524
|
-
/* Section height — the "Height" field on any
|
|
1524
|
+
/* Section height — the "Height" field on any the editor section (card 66215). The
|
|
1525
1525
|
injected pass wraps a section that sets one in this class and publishes the
|
|
1526
1526
|
length as a custom property; the property is what varies per section, so the
|
|
1527
1527
|
rule itself lives here once.
|
|
@@ -1550,7 +1550,7 @@ body:has([data-page-width="full"]) footer {
|
|
|
1550
1550
|
}
|
|
1551
1551
|
}
|
|
1552
1552
|
|
|
1553
|
-
/* Section anchors — the "Anchor" field on any
|
|
1553
|
+
/* Section anchors — the "Anchor" field on any the editor section. When set,
|
|
1554
1554
|
the section renders an invisible, zero-height <span id> as its first child
|
|
1555
1555
|
(see SectionAnchor in lib/document/config.tsx). `display:block; height:0` makes it
|
|
1556
1556
|
a real scroll target that adds no layout box; `scroll-margin-top` clears the
|
|
@@ -1564,7 +1564,7 @@ body:has([data-page-width="full"]) footer {
|
|
|
1564
1564
|
}
|
|
1565
1565
|
|
|
1566
1566
|
/* Hero slider — never show the horizontal scroll-snap scrollbar. Covers the
|
|
1567
|
-
track itself AND any descendant, because in the page-builder
|
|
1567
|
+
track itself AND any descendant, because in the page-builder the editor wraps the
|
|
1568
1568
|
slot children, so the actual scroll container can be a nested element the
|
|
1569
1569
|
utility classes on `.hero-track` don't reach. */
|
|
1570
1570
|
.hero-track,
|
|
@@ -2016,7 +2016,7 @@ em.text-accent {
|
|
|
2016
2016
|
the design: the hero's height is the merchant's, a phone breaks every stored
|
|
2017
2017
|
coordinate, and "bottom left" means the same thing at any size.
|
|
2018
2018
|
|
|
2019
|
-
⚠️ WHY THIS IS A GRID AND NOT NINE ABSOLUTE CORNERS.
|
|
2019
|
+
⚠️ WHY THIS IS A GRID AND NOT NINE ABSOLUTE CORNERS. The editor engine 0.20 hands a slot's
|
|
2020
2020
|
children to ONE container as a flat list — there is no per-child wrapper — so
|
|
2021
2021
|
`HeroSlide` cannot sort its groups into nine corner boxes, and nine absolute
|
|
2022
2022
|
siblings cannot stack by content height without measuring in JS (which means
|
|
@@ -2074,13 +2074,13 @@ em.text-accent {
|
|
|
2074
2074
|
surface on top of the merchant's own heading. */
|
|
2075
2075
|
.sf-hero-group-layer-edit .sf-hero-group-zone { pointer-events: auto; }
|
|
2076
2076
|
|
|
2077
|
-
/*
|
|
2077
|
+
/* The editor's own drop zone, laid over the SAME rows as the copy beside it (card
|
|
2078
2078
|
66213). This is the one layer, and this element is what makes it one:
|
|
2079
2079
|
`subgrid` means a group's `--sf-hg-row` counts the layer's tracks, not a
|
|
2080
2080
|
private set of its own, so a group and the copy on one square STACK instead of
|
|
2081
2081
|
overlapping — which two stacked layers can never do.
|
|
2082
2082
|
|
|
2083
|
-
⚠️ A REAL BOX, DELIBERATELY, AND NOT `display: contents`.
|
|
2083
|
+
⚠️ A REAL BOX, DELIBERATELY, AND NOT `display: contents`. The editor measures this
|
|
2084
2084
|
element to decide where a drag lands; `display: contents` removes the box and
|
|
2085
2085
|
takes the measurement with it. Spanning every row costs nothing because the
|
|
2086
2086
|
zone is not a hit target (above) and its rows are the layer's own.
|
|
@@ -2230,7 +2230,7 @@ em.text-accent {
|
|
|
2230
2230
|
answer is asked where it is free. `lib/document/config.tsx`'s cell-width pass is
|
|
2231
2231
|
the same shape for the EDITOR half of a position question.
|
|
2232
2232
|
|
|
2233
|
-
⚠️ TWO SELECTORS, BECAUSE THE EDITOR ADDS A LAYER.
|
|
2233
|
+
⚠️ TWO SELECTORS, BECAUSE THE EDITOR ADDS A LAYER. The editor engine 0.20 wraps every slot
|
|
2234
2234
|
child in a drag element unless the component declares `inline`; the published
|
|
2235
2235
|
page has no wrapper (HeroGroup's own docblock carries that measurement, card
|
|
2236
2236
|
66290). So the first line is the page and the second is the canvas.
|
|
@@ -2621,13 +2621,13 @@ em.text-accent {
|
|
|
2621
2621
|
How many of a Grid row's positions ONE block takes.
|
|
2622
2622
|
|
|
2623
2623
|
⚠️ THE RULE IS WRITTEN TWICE ON PURPOSE, AND DELETING EITHER HALF BREAKS
|
|
2624
|
-
EXACTLY ONE OF THE TWO PLACES THIS RUNS.
|
|
2624
|
+
EXACTLY ONE OF THE TWO PLACES THIS RUNS. The editor engine 0.20 wraps every slot child in
|
|
2625
2625
|
a drag element of its own unless the component declares `inline`
|
|
2626
2626
|
(components/HeroGroup.tsx carries the measurement, card 66290). So:
|
|
2627
2627
|
|
|
2628
2628
|
published page .sf-grid-zone > [data-sf-span] the block itself is
|
|
2629
2629
|
the grid item
|
|
2630
|
-
editor canvas .sf-grid-zone > *:has(> [data-sf-span])
|
|
2630
|
+
editor canvas .sf-grid-zone > *:has(> [data-sf-span]) the editor's wrapper is
|
|
2631
2631
|
the grid item, and
|
|
2632
2632
|
the attribute is one
|
|
2633
2633
|
level inside it
|
|
@@ -2640,7 +2640,7 @@ em.text-accent {
|
|
|
2640
2640
|
the overlay rules in storefront-editor.css).
|
|
2641
2641
|
|
|
2642
2642
|
NOT `display: contents` on the wrapper, which is the other way to make the
|
|
2643
|
-
block the grid item:
|
|
2643
|
+
block the grid item: The editor MEASURES that element to place a drop and to draw
|
|
2644
2644
|
its selection overlay, and `display: contents` removes the box and takes the
|
|
2645
2645
|
measurement with it. The same warning is written out at .sf-hero-group-zone.
|
|
2646
2646
|
|
|
@@ -2720,7 +2720,7 @@ em.text-accent {
|
|
|
2720
2720
|
droppable into a Grid, and scripts/test-cell-stretch.ts holds that.
|
|
2721
2721
|
|
|
2722
2722
|
Still NOT `display: contents` on the wrapper — see the warning on the span
|
|
2723
|
-
rules above:
|
|
2723
|
+
rules above: The editor measures that element for drops and the outline. */
|
|
2724
2724
|
.sf-grid-zone > [data-easel-block] {
|
|
2725
2725
|
display: grid;
|
|
2726
2726
|
grid-template-columns: minmax(0, 1fr);
|
|
@@ -3011,6 +3011,34 @@ em.text-accent {
|
|
|
3011
3011
|
.sf-section-corners > .sf-ticker-join { border-radius: 0; overflow: visible; }
|
|
3012
3012
|
.sf-section-corners > .sf-ticker-join > * { border-radius: var(--sf-section-radius, 0); overflow: clip; }
|
|
3013
3013
|
|
|
3014
|
+
/* ── A padding's TABLET value (three-views plan 2026-10-23, PR 3a) ───────────
|
|
3015
|
+
The same split as the phone block below: the desktop padding is INLINE, and
|
|
3016
|
+
efficient-web-builder (lib/content/section-padding, `sectionPadAttrs`) adds
|
|
3017
|
+
`.sf-pad-<side>-tablet` and its variable only for a side whose tablet value
|
|
3018
|
+
is drawn (stored, or worked out by the page's rule version). A node with no
|
|
3019
|
+
tablet value carries no class, matches nothing here, and draws the bytes it
|
|
3020
|
+
drew before this block existed.
|
|
3021
|
+
|
|
3022
|
+
The widths are the Tablet view's: efficient-easel's VIEW_TABLET_MIN (720) up
|
|
3023
|
+
to, not including, VIEW_DESKTOP_MIN (1100) — the builder's
|
|
3024
|
+
lib/content/view-values `TABLET_MEDIA`, the same string. `!important` and no
|
|
3025
|
+
`var()` fallback, for the reasons the phone block gives.
|
|
3026
|
+
scripts/test-tablet-padding-css.ts holds all of it. */
|
|
3027
|
+
@media (min-width: 720px) and (max-width: 1099.98px) {
|
|
3028
|
+
.sf-pad-top-tablet {
|
|
3029
|
+
padding-top: var(--sf-pad-t-tablet) !important;
|
|
3030
|
+
}
|
|
3031
|
+
.sf-pad-bottom-tablet {
|
|
3032
|
+
padding-bottom: var(--sf-pad-b-tablet) !important;
|
|
3033
|
+
}
|
|
3034
|
+
.sf-pad-left-tablet {
|
|
3035
|
+
padding-left: var(--sf-pad-l-tablet) !important;
|
|
3036
|
+
}
|
|
3037
|
+
.sf-pad-right-tablet {
|
|
3038
|
+
padding-right: var(--sf-pad-r-tablet) !important;
|
|
3039
|
+
}
|
|
3040
|
+
}
|
|
3041
|
+
|
|
3014
3042
|
/* ── A section's phone padding ────────────────────────────────────────────────
|
|
3015
3043
|
The phone half of the override ruled by the owner on 2026-09-07: ONE value
|
|
3016
3044
|
used on both screens, and a setting MAY also carry a phone value. Set, the
|
|
@@ -3141,7 +3169,7 @@ em.text-accent {
|
|
|
3141
3169
|
|
|
3142
3170
|
ONE RULE FOR THE PAGE AND THE EDITOR'S CANVAS (GG 2026-10-23, the hartesmetal
|
|
3143
3171
|
Home name Box: apart on the canvas, on top of each other live). On the canvas
|
|
3144
|
-
two elements stand between the Box and each block:
|
|
3172
|
+
two elements stand between the Box and each block: The editor's item
|
|
3145
3173
|
(`[data-easel-block]`) and the builder's part host (`[data-sf-part-host]`,
|
|
3146
3174
|
`display: contents`). Each rule names both shapes of "the Box's blocks", so
|
|
3147
3175
|
the canvas reads THIS rule from this sheet and no copy of it can lag behind
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { type OpeningMoment, type OpeningRow } from "../lib/sections/opening-hours.js";
|
|
2
|
+
export type OpeningHoursShow = "badge" | "week";
|
|
3
|
+
export declare const OPENING_TICK_MS = 30000;
|
|
4
|
+
interface OpeningHoursProps {
|
|
5
|
+
show: OpeningHoursShow;
|
|
6
|
+
title?: string;
|
|
7
|
+
row: OpeningRow | null;
|
|
8
|
+
contained: boolean;
|
|
9
|
+
now?: OpeningMoment;
|
|
10
|
+
}
|
|
11
|
+
export default function OpeningHours({ show, title, row, contained, now }: OpeningHoursProps): import("react").JSX.Element | null;
|
|
12
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use client";import{jsx as n,jsxs as s}from"react/jsx-runtime";import{useEffect as x,useState as h}from"react";import f from"efficient-web-builder/render/components/BlockFrame";import{renderHeadline as g}from"efficient-web-builder/render/components/goldPhrases";import{OPENING_WORDS as c,badgeLabel as b,momentIn as k,openingStatus as N,weekLines as y}from"../lib/sections/opening-hours.js";const v=3e4;function I({show:t,title:r,row:a,contained:o,now:i}){const[d,u]=h(i??null),m=a?.zone??"",p=!!a?.week;if(x(()=>{if(i){u(i);return}if(!p)return;const e=()=>u(k(m,Date.now()));e();const l=setInterval(e,v);return()=>clearInterval(l)},[i,m,p]),!a)return null;if(t==="badge"){if(!a.week)return null;const e=d?N(a.week,d):null;return n(f,{contained:o,className:"py-6",children:n(_,{label:e?b(e):null,open:e?.open??!1})})}return!a.week&&!a.hours.length?null:n(f,{contained:o,className:"py-6",children:s("div",{className:"flex max-w-[560px] flex-col gap-4",children:[r&&n("h2",{className:"font-heading3 text-[length:min(var(--size-headingSmall,28px),var(--sf-heading-max,9999px))] font-medium leading-[1.1] tracking-[-0.02em]",children:g(r,!1)}),a.week?n("ul",{className:"flex flex-col text-[15px]",children:y(a.week).map(e=>{const l=d!==null&&d.day===e.day;return s("li",{"aria-current":l?"date":void 0,className:"flex flex-wrap items-baseline justify-between gap-x-4 gap-y-1 rounded-sm border-b border-line px-3 py-2.5 last:border-b-0",style:l?{background:"color-mix(in oklab, var(--accent) 12%, transparent)"}:void 0,children:[s("span",{className:l?"font-medium":void 0,children:[e.name,l&&n("span",{className:"opacity-70",children:` · ${c.today}`})]}),n("span",{className:e.closed?"tabular-nums opacity-60":"tabular-nums",children:e.closed?c.closed:e.periods})]},e.day)})}):n("div",{className:"flex flex-col gap-1 text-[15px] leading-[1.6]",children:a.hours.map((e,l)=>n("p",{children:e},l))})]})})}function _({label:t,open:r}){return t===null?s("span",{"aria-hidden":!0,className:"invisible inline-flex items-center gap-2 rounded-md px-3 py-1.5 text-[14px]",children:[n("span",{className:"h-2 w-2 rounded-full"}),c.openNow]}):s("span",{className:"inline-flex items-center gap-2 rounded-md px-3 py-1.5 text-[14px] tabular-nums",style:{background:r?"color-mix(in oklab, var(--green) 16%, transparent)":"color-mix(in oklab, var(--fg) 8%, transparent)"},children:[n("span",{"aria-hidden":!0,className:r?"h-2 w-2 shrink-0 rounded-full bg-green":"h-2 w-2 shrink-0 rounded-full bg-current opacity-50"}),t]})}export{v as OPENING_TICK_MS,I as default};
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { SourceRow } from "efficient-web-builder/format/lib/content/block-sources";
|
|
1
2
|
export declare const supportedKinds: readonly ("alloy-wheel" | "tyre")[];
|
|
2
3
|
export interface DynamicGalleryGridProps {
|
|
3
4
|
num?: string;
|
|
@@ -18,3 +19,8 @@ export interface DynamicGalleryGridProps {
|
|
|
18
19
|
padBottom?: number;
|
|
19
20
|
}
|
|
20
21
|
export default function DynamicGalleryGrid(props: DynamicGalleryGridProps): import("react").JSX.Element;
|
|
22
|
+
export declare function SourcedGalleryGrid(props: DynamicGalleryGridProps & {
|
|
23
|
+
rows: readonly SourceRow[];
|
|
24
|
+
limit?: number;
|
|
25
|
+
layout?: string;
|
|
26
|
+
}): import("react").JSX.Element;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";import{jsx as t,jsxs as
|
|
1
|
+
"use client";import{jsx as t,jsxs as E}from"react/jsx-runtime";import I from"efficient-web-builder/render/components/Btn";import B,{GALLERY_GRID_ATTR as C,GalleryLinksContext as j}from"../GalleryItem.js";import{SharedPartKinds as D}from"efficient-web-builder/render/components/PublishedPartStylesContext";import{renderHeadline as F}from"efficient-web-builder/render/components/goldPhrases";import K from"efficient-web-builder/render/components/SectionHeader";import U from"./KindGate.js";import Z from"./RecordPhotoGallery.js";import{headIsEmpty as $,ownPadding as z}from"../../lib/sections/own-padding.js";import{PLP_KINDS as V}from"../../lib/catalog/plp-item.js";import{useCurrentProduct as W}from"../../lib/document/current-product.js";import{SAMPLE_PICTURE_COUNT as S,SAMPLE_RECORD as X,recordPictures as Y,useCurrentRecord as q,useDrawsOtherRecord as J}from"../../lib/document/current-record.js";import{mediaGroupVehicle as Q}from"../../lib/content/source-values.js";import{useSampleProduct as ee}from"./useSampleProduct.js";import{say as _}from"efficient-web-builder/format/lib/editor-words";import{resolveGalleryLayout as re}from"efficient-web-builder/format/lib/content/gallery-layout";const te=V,O=["photos","lifestyle","accessories","others"];function ie(e,o){if(!e)return[];if(o==="all")return O.flatMap(s=>e[s]??[]);const r=O.includes(o)?o:null;return r?e[r]??[]:[]}const T="relative z-[2] bg-bg py-[120px] max-[800px]:py-[70px]",L="relative z-[2] bg-bg pt-0 pb-[120px] max-[800px]:pt-0 max-[800px]:pb-[70px]",M="mx-auto max-w-[var(--sf-site-width,1600px)] px-[var(--sf-site-gutter,40px)] max-[800px]:px-[min(20px,var(--sf-site-gutter,40px))]";function oe(e){return J(!!e.editing)?t(ae,{...e}):t(U,{kinds:te,type:"GalleryB",editing:e.editing,children:t(se,{...e})})}function ae(e){const{editing:o=!1}=e,r=q(),s=r?Y(r,{firstField:!0}).map(a=>({images:[a.url],eyebrow:a.alt&&a.alt!==r.title?a.alt:void 0,...a.video?{video:a.video}:{}})):o?Array.from({length:S},()=>({images:[""]})):[];return t(R,{...e,tiles:s,owner:{name:(r??X).title},photosOnly:!0,emptyHint:_("This record’s pictures appear here on its page. A record with no pictures draws nothing.")})}function Ne(e){const{rows:o,limit:r,layout:s,editing:a=!1,title:u}=e,c=typeof r=="number"&&r>0?Math.floor(r):void 0,h=o.filter(n=>typeof n.cover=="string"&&n.cover).map(n=>({images:[n.cover],...n.video?{video:n.video}:{}})),d=a&&h.length===0?Array.from({length:c??S},()=>({images:[""]})):h;return t(R,{...e,tiles:c?d.slice(0,c):d,owner:{name:(u??"").replace(/==/g,"").trim()},photosOnly:!0,tilesAcross:re(s)?.across===3?3:4,emptyHint:_("The website’s pictures appear here, in the order they are put in. A website with no pictures draws nothing.")})}function se({omitHead:e=!1,num:o,title:r,linkText:s,linkHref:a,galleryHref:u="/gallery",submitHref:c="/contact",zone:h="all",photoDisplay:d="covers",previewHover:n,display:w,displayPhone:g,styleOwner:x,editing:p=!1,padTop:G,padBottom:v}){const b=W(),N=ee(p&&!b),f=b?.product??N,y=ie(f?.mediaGroups,h).map(i=>({images:(i.items??[]).filter(m=>m.kind==="image").map(m=>m.url),vehicle:Q(i),finish:i.finish})).filter(i=>i.images.length>0),P=(d==="auto"?y.length>=4?"covers":"all":d)==="all"?y.flatMap(i=>i.images.map(m=>({images:[m],vehicle:i.vehicle,finish:i.finish}))):y;return t(R,{omitHead:e,num:o,title:r,linkText:s,linkHref:a,galleryHref:u,submitHref:c,previewHover:n,display:w,displayPhone:g,styleOwner:x,editing:p,padTop:G,padBottom:v,tiles:f?P.map(i=>({images:i.images,eyebrow:i.vehicle||void 0,meta:i.finish})):[],owner:{name:f?.name??"",href:f?.href,process:f?.eyebrow},emptyHint:_("This product’s photos appear here on a product page. Add media groups in the product’s Media tab.")})}function R({omitHead:e=!1,num:o,title:r,linkText:s,linkHref:a,galleryHref:u="/gallery",submitHref:c="/contact",previewHover:h,display:d,displayPhone:n,styleOwner:w,editing:g=!1,tiles:x,owner:p,emptyHint:G,photosOnly:v=!1,tilesAcross:b,padTop:N,padBottom:f}){const y=s?{text:s,href:a||"#"}:void 0,A=r?F(r,!1):void 0,P=e?null:t(K,{num:o,title:A,link:y}),i=!g&&$(o,r,y?.text)?null:P,m=z(N,f);return x.length===0?g?t("section",{className:e?L:T,style:m,children:E("div",{className:M,children:[i,t("p",{className:"mt-8 border-t border-line py-6 font-mono text-[length:var(--size-label,13px)] uppercase tracking-[0.18em] text-fg-dim",children:G})]})}):null:t("section",{className:e?L:T,style:m,children:E("div",{className:M,children:[i,v?t(Z,{pictures:x.map(l=>({url:l.images[0]??"",alt:l.eyebrow,video:l.video})),name:p.name,editing:g,...b?{fit:"tiles",across:b}:{}}):t(j.Provider,{value:{galleryHref:u,submitHref:c,previewHover:h,display:d,displayPhone:n,styleOwner:w,photosOnly:v},children:t(D,{children:t("div",{[C]:"",className:"grid grid-cols-4 gap-2 max-[1500px]:grid-cols-3 max-[800px]:grid-cols-1 max-[800px]:gap-1",children:x.map((l,k)=>t(B,{image:l.images[0],photos:l.images.slice(1).map(H=>({src:H})),href:p.href,process:p.process,eyebrow:l.eyebrow,name:p.name,meta:l.meta,editing:g},`${l.eyebrow}-${k}`))})})}),!v&&t("div",{className:"mt-12 flex flex-col items-center gap-3",children:t(I,{href:u,variant:"ghost",children:"See Gallery"})})]})})}export{Ne as SourcedGalleryGrid,oe as default,te as supportedKinds};
|
|
@@ -4,9 +4,10 @@ export interface GalleryPicture {
|
|
|
4
4
|
video?: string;
|
|
5
5
|
}
|
|
6
6
|
export declare function pictureLabel(picture: GalleryPicture, name: string): string;
|
|
7
|
-
export default function RecordPhotoGallery({ pictures, name, editing, fit, }: {
|
|
7
|
+
export default function RecordPhotoGallery({ pictures, name, editing, fit, across, }: {
|
|
8
8
|
pictures: readonly GalleryPicture[];
|
|
9
|
-
fit?: "section" | "column";
|
|
9
|
+
fit?: "section" | "column" | "tiles";
|
|
10
|
+
across?: 3 | 4;
|
|
10
11
|
name: string;
|
|
11
12
|
editing?: boolean;
|
|
12
13
|
}): import("react").JSX.Element | null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";import{jsx as t,Fragment as
|
|
1
|
+
"use client";import{jsx as t,Fragment as p,jsxs as c}from"react/jsx-runtime";import{useCallback as M,useRef as O,useState as E}from"react";import{sizedImage as P}from"efficient-web-builder/format/lib/sized-image";import A from"efficient-web-builder/render/components/Placeholder";import T,{LightboxClose as U}from"../Lightbox.js";import{GALLERY_GRID_ATTR as $}from"../GalleryItem.js";const z="(max-width: 1600px) 100vw, 1600px",R="(max-width: 1100px) 100vw, 50vw",D="(max-width: 800px) 30vw, 200px",G="100vw";function m(r,l){return r.video?l?`Play video of ${l}`:"Play video":l?`Open photo of ${l}`:"Open photo"}function H({small:r=!1}){return t("span",{"aria-hidden":!0,"data-play-badge":"",className:"pointer-events-none absolute inset-0 flex items-center justify-center",children:t("span",{className:`flex items-center justify-center rounded-full bg-bg/75 text-fg ${r?"h-8 w-8 text-[length:12px]":"h-16 w-16 text-[length:22px]"}`,children:"▶"})})}const Z="relative block w-full overflow-hidden bg-surface-2",F="block h-[min(78vh,820px)] w-full object-cover max-[800px]:h-[min(70vh,560px)]",W="block aspect-[4/5] max-h-[80vh] w-full object-cover",X="grid grid-cols-4 gap-2",q="relative block aspect-square w-full overflow-hidden bg-surface-2",L="block h-full w-full object-cover",Y="grid grid-cols-6 gap-2 max-[800px]:grid-cols-4",J={3:"grid grid-cols-3 gap-2 max-[800px]:grid-cols-2",4:"grid grid-cols-4 gap-2 max-[800px]:grid-cols-2"},K="relative block aspect-[4/5] w-full overflow-hidden bg-surface-2",Q="(max-width: 800px) 50vw, 25vw",V="cursor-pointer text-left focus:outline-none focus-visible:outline focus-visible:outline-2 focus-visible:outline-accent focus-visible:outline-offset-2",I="absolute top-1/2 z-[2] flex h-14 w-14 -translate-y-1/2 cursor-pointer items-center justify-center border border-fg-dim/40 bg-overlay-scrim/40 font-mono text-[length:var(--size-label,22px)] text-fg-dim transition-colors hover:border-accent hover:text-accent max-[700px]:h-11 max-[700px]:w-11";function ee({pictures:r,name:l,editing:g=!1,fit:v="section",across:j=4}){const[S,w]=E(!1),[i,f]=E(0),x=O(null),B=M(e=>{e?x.current=e:(x.current?.pause(),x.current=null)},[]),o=r.length,y=v==="column";if(o===0)return null;const k=()=>f(e=>(e-1+o)%o),N=()=>f(e=>(e+1)%o),C=e=>{f(e),w(!0)},n=r[Math.min(i,o-1)],d=(e,a,s,h)=>e.url?t("span",{className:`${s} relative`,children:t(A,{label:e.alt||l||"photo",src:e.url,alt:e.alt||l,sizes:a,objectFit:"cover",showBackground:!1})}):t("span",{"aria-hidden":!0,className:`${s} bg-surface-2`}),u=v==="tiles",b=(e,a,s)=>{const h=c(p,{children:[u?d(e,Q,L,800):s?y?d(e,R,W,1200):d(e,z,F,1600):d(e,D,L,400),e.video&&t(H,{small:!s&&!u})]}),_=u?K:s?Z:q;return g?t("div",{className:_,children:h}):t("button",{type:"button","aria-label":m(e,l),onClick:()=>C(a),className:`${_} ${V}`,children:h})};return c(p,{children:[u?t("ul",{[$]:"","data-record-gallery":"tiles",className:J[j===3?3:4],children:r.map((e,a)=>t("li",{children:b(e,a,!1)},`${e.url}-${a}`))}):c("div",{[$]:"","data-record-gallery":"",className:"flex flex-col gap-2",children:[b(r[0],0,!0),o>1&&t("ul",{className:y?X:Y,children:r.slice(1).map((e,a)=>t("li",{children:b(e,a+1,!1)},`${e.url}-${a+1}`))})]}),!g&&t(T,{open:S,onClose:()=>w(!1),label:m(n,l),onPrev:o>1?k:void 0,onNext:o>1?N:void 0,className:"flex items-center justify-center p-6 backdrop-blur-[8px] max-[700px]:p-3",style:{background:"color-mix(in oklab, var(--bg) 86%, transparent)"},children:c("div",{onClick:e=>e.stopPropagation(),className:"relative flex h-full w-full items-center justify-center",children:[t(U,{className:"absolute right-0 top-0 z-[3] flex h-12 w-12 cursor-pointer items-center justify-center border border-line font-mono text-[length:var(--size-label,18px)] text-fg-dim transition-colors hover:border-accent hover:text-fg",style:{background:"color-mix(in oklab, var(--bg) 70%, transparent)"},children:"✕"}),n.video?t("video",{ref:B,controls:!0,playsInline:!0,preload:"metadata",poster:n.url,src:n.video,"aria-label":m(n,l),className:"block max-h-[calc(100vh-120px)] max-w-full bg-bg"},`video-${i}`):t("img",{...P(n.url,{fallbackWidth:1600}),sizes:G,alt:`${n.alt||l||"Photo"} — ${i+1} of ${o}`,className:"block max-h-[calc(100vh-120px)] max-w-full object-contain"},`photo-${i}`),o>1&&c(p,{children:[t("button",{type:"button","aria-label":"Previous photo",onClick:k,className:`${I} left-0`,children:"◁"}),t("button",{type:"button","aria-label":"Next photo",onClick:N,className:`${I} right-0`,children:"▷"}),c("span",{"data-gallery-counter":"",className:"absolute bottom-0 left-1/2 -translate-x-1/2 border border-fg-dim/30 bg-overlay-scrim/50 px-4 py-1.5 font-mono text-[length:var(--size-label,14px)] uppercase tracking-[0.22em] text-fg-dim backdrop-blur-[4px]",children:[i+1," / ",o]})]})]})})]})}export{ee as default,m as pictureLabel};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsx as
|
|
1
|
+
import{jsx as m}from"react/jsx-runtime";import y,{SourcedGalleryGrid as f}from"../../../../../components/pdp-dynamic/DynamicGalleryGrid.js";import{declaredBlockSource as r,sourcedRows as c}from"efficient-web-builder/format/lib/content/block-sources";import H from"../../../../../components/GalleryGrid.js";import{hidableText as d}from"efficient-easel/screen/lib/document/hidable";import{parseSectionHeadPlacement as k}from"efficient-web-builder/format/lib/sections/section-head-placement";import{phHide as i}from"efficient-web-builder/render/lib/document/blocks/scaffold";import{GalleryBMeta as T,GALLERY_B_PH as n}from"./meta.js";const P={...T,render:e=>{const l=k(e.headPlacement)==="own-box",t=a=>l?void 0:a;if(r(e)!==""){const a=!!e.editor?.isEditing,{rows:o,sample:u}=c(e,a);return m(f,{num:t(i(e.num,n.num,e.editor)),title:t(i(e.title,n.title,e.editor)),linkText:t(i(e.linkText,n.link,e.editor)),linkHref:t(d(e.linkHref)||"/contact"),omitHead:l,rows:u?[]:o,limit:e.limit,layout:e.layout,editing:a,padTop:typeof e.padTop=="number"?e.padTop:void 0,padBottom:typeof e.padBottom=="number"?e.padBottom:void 0})}return e.dynamic?m(y,{num:t(i(e.num,n.num,e.editor)),title:t(i(e.title,n.title,e.editor)),linkText:t(i(e.linkText,n.link,e.editor)),linkHref:t(d(e.linkHref)||"/contact"),omitHead:l,galleryHref:d(e.galleryHref)||"/gallery",zone:e.mediaZone||"all",photoDisplay:e.photoDisplay||"covers",previewHover:e.previewHover,display:e.display,displayPhone:e.displayPhone,styleOwner:e.id,editing:e.editor?.isEditing,padTop:typeof e.padTop=="number"?e.padTop:void 0,padBottom:typeof e.padBottom=="number"?e.padBottom:void 0}):m(H,{num:t(i(e.num,n.num,e.editor)),title:t(i(e.title,n.title,e.editor)),omitHead:l,linkText:t(i(e.linkText,n.link,e.editor)),linkHref:t(d(e.linkHref)||"/contact"),galleryHref:d(e.galleryHref)||"/gallery",previewHover:e.previewHover,display:e.display,displayPhone:e.displayPhone,styleOwner:e.id,layout:e.layout,columns:e.columns,columnsMobile:e.columnsMobile,gap:e.gap,items:e.items,padTop:typeof e.padTop=="number"?e.padTop:void 0,padBottom:typeof e.padBottom=="number"?e.padBottom:void 0,editing:e.editor?.isEditing})}};export{P as GalleryBRender};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { BlockRender } from "efficient-web-builder/format/lib/document/blocks/block-types";
|
|
2
|
+
export declare const OPENING_HOURS_SOURCE = "location-opening";
|
|
3
|
+
export declare const OPENING_HOURS_SHOWS: readonly [{
|
|
4
|
+
readonly label: "Open now badge";
|
|
5
|
+
readonly value: "badge";
|
|
6
|
+
}, {
|
|
7
|
+
readonly label: "The week";
|
|
8
|
+
readonly value: "week";
|
|
9
|
+
}];
|
|
10
|
+
export declare const OPENING_HOURS_SHOW_FALLBACK = "week";
|
|
11
|
+
export declare const OpeningHoursMeta: Omit<BlockRender, "render">;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
const e="location-opening",t=[{label:"Open now badge",value:"badge"},{label:"The week",value:"week"}],o="week",n={label:"Opening hours",widthRows:"two",defaultProps:{show:o,title:"Opening hours",contained:!0,dataSource:e}};export{t as OPENING_HOURS_SHOWS,o as OPENING_HOURS_SHOW_FALLBACK,e as OPENING_HOURS_SOURCE,n as OpeningHoursMeta};
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { type SourceRow } from "efficient-web-builder/format/lib/content/block-sources";
|
|
2
|
+
import type { BlockRender } from "efficient-web-builder/format/lib/document/blocks/block-types";
|
|
3
|
+
export declare const openingHoursSample: () => SourceRow[];
|
|
4
|
+
export declare const OpeningHoursRender: BlockRender;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{jsx as r}from"react/jsx-runtime";import t from"../../../../../components/OpeningHours.js";import{OPENING_SAMPLE_MOMENT as i,OPENING_SAMPLE_WEEK as d,readOpeningRow as s}from"../../../../sections/opening-hours.js";import{sourcedRows as a}from"efficient-web-builder/format/lib/content/block-sources";import{readHidable as m}from"efficient-easel/screen/lib/document/hidable";import{OpeningHoursMeta as u}from"./meta.js";const w=()=>[{week:d,zone:"Australia/Sydney",hours:""}],f=e=>{const{text:o,hidden:n}=m(e);return n||!o?void 0:o},h={...u,render:e=>{const{rows:o,sample:n}=a(e,!!e.editor?.isEditing,w());return r(t,{show:e.show==="badge"?"badge":"week",title:f(e.title),row:s(o),contained:e.contained!==!1,now:n?i:void 0})}};export{h as OpeningHoursRender,w as openingHoursSample};
|
|
@@ -14,6 +14,7 @@ export declare const SERVICE_METAS: {
|
|
|
14
14
|
FooterText: Omit<BlockRender, "render">;
|
|
15
15
|
Form: Omit<BlockRender, "render">;
|
|
16
16
|
LegalLineBlock: Omit<BlockRender, "render">;
|
|
17
|
+
OpeningHours: Omit<BlockRender, "render">;
|
|
17
18
|
RateTable: Omit<BlockRender, "render">;
|
|
18
19
|
RatingBlock: Omit<BlockRender, "render">;
|
|
19
20
|
ReviewForm: Omit<BlockRender, "render">;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{SITE_FOOTER_TYPE as o,SITE_HEADER_TYPE as t}from"efficient-web-builder/format/lib/document/section-groups";import{AppointmentBookingMeta as r}from"./AppointmentBooking/meta.js";import{BookingBoxMeta as e}from"./BookingBox/meta.js";import{ContactRoutingMeta as i}from"./ContactRouting/meta.js";import{EventsMeta as m}from"./Events/meta.js";import{FooterDividerMeta as a}from"./FooterDivider/meta.js";import{FooterEmailSignupMeta as p}from"./FooterEmailSignup/meta.js";import{FooterGroupMeta as M}from"./FooterGroup/meta.js";import{FooterLogoMeta as
|
|
1
|
+
import{SITE_FOOTER_TYPE as o,SITE_HEADER_TYPE as t}from"efficient-web-builder/format/lib/document/section-groups";import{AppointmentBookingMeta as r}from"./AppointmentBooking/meta.js";import{BookingBoxMeta as e}from"./BookingBox/meta.js";import{ContactRoutingMeta as i}from"./ContactRouting/meta.js";import{EventsMeta as m}from"./Events/meta.js";import{FooterDividerMeta as a}from"./FooterDivider/meta.js";import{FooterEmailSignupMeta as p}from"./FooterEmailSignup/meta.js";import{FooterGroupMeta as M}from"./FooterGroup/meta.js";import{FooterLogoMeta as n}from"./FooterLogo/meta.js";import{FooterMenuMeta as f}from"./FooterMenu/meta.js";import{FooterMeta as F}from"./Footer/meta.js";import{FooterSocialMeta as u}from"./FooterSocial/meta.js";import{FooterTextMeta as g}from"./FooterText/meta.js";import{FormMeta as S}from"./Form/meta.js";import{LegalLineBlockMeta as l}from"./LegalLineBlock/meta.js";import{OpeningHoursMeta as B}from"./OpeningHours/meta.js";import{RateTableMeta as b}from"./RateTable/meta.js";import{RatingBlockMeta as E}from"./RatingBlock/meta.js";import{ReviewFormMeta as c}from"./ReviewForm/meta.js";import{ReviewsMeta as s}from"./Reviews/meta.js";import{SiteFooterMeta as R}from"./SiteFooter/meta.js";import{SiteHeaderMeta as T}from"./SiteHeader/meta.js";import{SubmitBoxMeta as k}from"./SubmitBox/meta.js";import{SubmitBuildMeta as v}from"./SubmitBuild/meta.js";import{SubscribeBlogsMeta as x}from"./SubscribeBlogs/meta.js";import{SubscribeMeta as L}from"./Subscribe/meta.js";const $={AppointmentBooking:r,BookingBox:e,ContactRouting:i,Events:m,Footer:F,FooterDivider:a,FooterEmailSignup:p,FooterGroup:M,FooterLogo:n,FooterMenu:f,FooterSocial:u,FooterText:g,Form:S,LegalLineBlock:l,OpeningHours:B,RateTable:b,RatingBlock:E,ReviewForm:c,Reviews:s,[o]:R,[t]:T,SubmitBox:k,SubmitBuild:v,Subscribe:L,SubscribeBlogs:x};export{$ as SERVICE_METAS};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{SITE_FOOTER_TYPE as o,SITE_HEADER_TYPE as r}from"efficient-web-builder/format/lib/document/section-groups";import{AppointmentBookingRender as e}from"./AppointmentBooking/render.js";import{BookingBoxRender as t}from"./BookingBox/render.js";import{ContactRoutingRender as i}from"./ContactRouting/render.js";import{EventsRender as m}from"./Events/render.js";import{FooterRender as n}from"./Footer/render.js";import{FooterDividerRender as R}from"./FooterDivider/render.js";import{FooterEmailSignupRender as p}from"./FooterEmailSignup/render.js";import{FooterGroupRender as d}from"./FooterGroup/render.js";import{FooterLogoRender as f}from"./FooterLogo/render.js";import{FooterMenuRender as F}from"./FooterMenu/render.js";import{FooterSocialRender as u}from"./FooterSocial/render.js";import{FooterTextRender as
|
|
1
|
+
import{SITE_FOOTER_TYPE as o,SITE_HEADER_TYPE as r}from"efficient-web-builder/format/lib/document/section-groups";import{AppointmentBookingRender as e}from"./AppointmentBooking/render.js";import{BookingBoxRender as t}from"./BookingBox/render.js";import{ContactRoutingRender as i}from"./ContactRouting/render.js";import{EventsRender as m}from"./Events/render.js";import{FooterRender as n}from"./Footer/render.js";import{FooterDividerRender as R}from"./FooterDivider/render.js";import{FooterEmailSignupRender as p}from"./FooterEmailSignup/render.js";import{FooterGroupRender as d}from"./FooterGroup/render.js";import{FooterLogoRender as f}from"./FooterLogo/render.js";import{FooterMenuRender as F}from"./FooterMenu/render.js";import{FooterSocialRender as u}from"./FooterSocial/render.js";import{FooterTextRender as g}from"./FooterText/render.js";import{FormRender as S}from"./Form/render.js";import{LegalLineBlockRender as l}from"./LegalLineBlock/render.js";import{OpeningHoursRender as B}from"./OpeningHours/render.js";import{RateTableRender as a}from"./RateTable/render.js";import{RatingBlockRender as E}from"./RatingBlock/render.js";import{ReviewFormRender as b}from"./ReviewForm/render.js";import{ReviewsRender as c}from"./Reviews/render.js";import{SiteFooterRender as s}from"./SiteFooter/render.js";import{SiteHeaderRender as T}from"./SiteHeader/render.js";import{SubmitBoxRender as k}from"./SubmitBox/render.js";import{SubmitBuildRender as v}from"./SubmitBuild/render.js";import{SubscribeRender as x}from"./Subscribe/render.js";import{SubscribeBlogsRender as L}from"./SubscribeBlogs/render.js";const $={AppointmentBooking:e,BookingBox:t,ContactRouting:i,Events:m,Footer:n,FooterDivider:R,FooterEmailSignup:p,FooterGroup:d,FooterLogo:f,FooterMenu:F,FooterSocial:u,FooterText:g,Form:S,LegalLineBlock:l,OpeningHours:B,RateTable:a,RatingBlock:E,ReviewForm:b,Reviews:c,[o]:s,[r]:T,SubmitBox:k,SubmitBuild:v,Subscribe:x,SubscribeBlogs:L};export{$ as SERVICE_RENDERS};
|
|
@@ -1283,6 +1283,16 @@
|
|
|
1283
1283
|
}
|
|
1284
1284
|
}
|
|
1285
1285
|
},
|
|
1286
|
+
"OpeningHours": {
|
|
1287
|
+
"title": {
|
|
1288
|
+
"type": "custom",
|
|
1289
|
+
"__text": {
|
|
1290
|
+
"control": "textarea",
|
|
1291
|
+
"label": "Heading",
|
|
1292
|
+
"placeholder": "Opening hours"
|
|
1293
|
+
}
|
|
1294
|
+
}
|
|
1295
|
+
},
|
|
1286
1296
|
"RateTable": {
|
|
1287
1297
|
"title": {
|
|
1288
1298
|
"type": "custom",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsx as i}from"react/jsx-runtime";import t from"next/dynamic";import{SITE_FOOTER_TYPE as d,SITE_HEADER_TYPE as m}from"efficient-web-builder/format/lib/document/section-groups";function r(e){return function(o){return e.render(o)}}const p={Banner:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/Banner/render").then(e=>r(e.BannerRender))),Breadcrumb:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/Breadcrumb/render").then(e=>r(e.BreadcrumbRender))),ButtonBlock:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/ButtonBlock/render").then(e=>r(e.ButtonBlockRender))),Cards:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/Cards/render").then(e=>r(e.CardsRender))),CategoryBar:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/CategoryBar/render").then(e=>r(e.CategoryBarRender))),Chart:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/Chart/render").then(e=>r(e.ChartRender))),ContactLocations:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/ContactLocations/render").then(e=>r(e.ContactLocationsRender))),CustomHTML:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/CustomHTML/render").then(e=>r(e.CustomHTMLRender))),Divider:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/Divider/render").then(e=>r(e.DividerRender))),DocBody:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/DocBody/render").then(e=>r(e.DocBodyRender))),DocMasthead:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/DocMasthead/render").then(e=>r(e.DocMastheadRender))),DocMetaCards:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/DocMetaCards/render").then(e=>r(e.DocMetaCardsRender))),DocTabs:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/DocTabs/render").then(e=>r(e.DocTabsRender))),Eyebrow:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/Eyebrow/render").then(e=>r(e.EyebrowRender))),FAQ:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/FAQ/render").then(e=>r(e.FAQRender))),FeaturedCover:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/FeaturedCover/render").then(e=>r(e.FeaturedCoverRender))),Flex:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/Flex/render").then(e=>r(e.FlexRender))),Footprint:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/Footprint/render").then(e=>r(e.FootprintRender))),Grid:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/Grid/render").then(e=>r(e.GridRender))),Heading:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/Heading/render").then(e=>r(e.HeadingRender))),Hero:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/Hero/render").then(e=>r(e.HeroRender))),HeroGroup:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/HeroGroup/render").then(e=>r(e.HeroGroupRender))),HeroSingle:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/HeroSingle/render").then(e=>r(e.HeroSingleRender))),HeroSlide:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/HeroSlide/render").then(e=>r(e.HeroSlideRender))),ImageBlock:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/ImageBlock/render").then(e=>r(e.ImageBlockRender))),Integrations:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/Integrations/render").then(e=>r(e.IntegrationsRender))),IntroBleed:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/IntroBleed/render").then(e=>r(e.IntroBleedRender))),Countdown:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/Countdown/render").then(e=>r(e.CountdownRender))),KeyFeatures:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/KeyFeatures/render").then(e=>r(e.KeyFeaturesRender))),LogoBlock:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/LogoBlock/render").then(e=>r(e.LogoBlockRender))),Logos:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/Logos/render").then(e=>r(e.LogosRender))),LongRead:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/LongRead/render").then(e=>r(e.LongReadRender))),Manifesto:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/Manifesto/render").then(e=>r(e.ManifestoRender))),Masthead:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/Masthead/render").then(e=>r(e.MastheadRender))),Mockup:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/Mockup/render").then(e=>r(e.MockupRender))),OrderSummary:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/OrderSummary/render").then(e=>r(e.OrderSummaryRender))),ParagraphsA:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/ParagraphsA/render").then(e=>r(e.ParagraphsARender))),PaymentBadges:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/PaymentBadges/render").then(e=>r(e.PaymentBadgesRender))),PostCard:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/PostCard/render").then(e=>r(e.PostCardRender))),ProcessSteps:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/ProcessSteps/render").then(e=>r(e.ProcessStepsRender))),Prose:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/Prose/render").then(e=>r(e.ProseRender))),SectionHeader:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/SectionHeader/render").then(e=>r(e.SectionHeaderRender))),Series:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/Series/render").then(e=>r(e.SeriesRender))),Spacer:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/Spacer/render").then(e=>r(e.SpacerRender))),SpecStrip:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/SpecStrip/render").then(e=>r(e.SpecStripRender))),Split:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/Split/render").then(e=>r(e.SplitRender))),Stats:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/Stats/render").then(e=>r(e.StatsRender))),StatsParagraph:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/StatsParagraph/render").then(e=>r(e.StatsParagraphRender))),Testimonials:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/Testimonials/render").then(e=>r(e.TestimonialsRender))),Text:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/Text/render").then(e=>r(e.TextRender))),Ticker:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/Ticker/render").then(e=>r(e.TickerRender))),Timeline:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/Timeline/render").then(e=>r(e.TimelineRender))),TimelineTrack:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/TimelineTrack/render").then(e=>r(e.TimelineTrackRender))),TitleWithButtons:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/TitleWithButtons/render").then(e=>r(e.TitleWithButtonsRender))),AccountBlock:t(()=>import("./blocks/commerce/AccountBlock/render.js").then(e=>r(e.AccountBlockRender))),AlloyWheelsListing:t(()=>import("./blocks/commerce/AlloyWheelsListing/render.js").then(e=>r(e.AlloyWheelsListingRender))),BundleOffer:t(()=>import("./blocks/commerce/BundleOffer/render.js").then(e=>r(e.BundleOfferRender))),CartBlock:t(()=>import("./blocks/commerce/CartBlock/render.js").then(e=>r(e.CartBlockRender))),CatalogFilterBar:t(()=>import("./blocks/commerce/CatalogFilterBar/render.js").then(e=>r(e.CatalogFilterBarRender))),CheckoutCTA:t(()=>import("./blocks/commerce/CheckoutCTA/render.js").then(e=>r(e.CheckoutCTARender))),CollectionCard:t(()=>import("./blocks/commerce/CollectionCard/render.js").then(e=>r(e.CollectionCardRender))),Collections:t(()=>import("./blocks/commerce/Collections/render.js").then(e=>r(e.CollectionsRender))),CompatibleTyres:t(()=>import("./blocks/commerce/CompatibleTyres/render.js").then(e=>r(e.CompatibleTyresRender))),CountrySwitchBlock:t(()=>import("./blocks/commerce/CountrySwitchBlock/render.js").then(e=>r(e.CountrySwitchBlockRender))),DeliveryOptions:t(()=>import("./blocks/commerce/DeliveryOptions/render.js").then(e=>r(e.DeliveryOptionsRender))),DetailRows:t(()=>import("./blocks/commerce/DetailRows/render.js").then(e=>r(e.DetailRowsRender))),EuTyreLabel:t(()=>import("./blocks/commerce/EuTyreLabel/render.js").then(e=>r(e.EuTyreLabelRender))),EuTyreLabelBlock:t(()=>import("./blocks/commerce/EuTyreLabelBlock/render.js").then(e=>r(e.EuTyreLabelBlockRender))),FitmentFinder:t(()=>import("./blocks/commerce/FitmentFinder/render.js").then(e=>r(e.FitmentFinderRender))),FitmentTable:t(()=>import("./blocks/commerce/FitmentTable/render.js").then(e=>r(e.FitmentTableRender))),Gallery:t(()=>import("./blocks/commerce/Gallery/render.js").then(e=>r(e.GalleryRender))),GalleryB:t(()=>import("./blocks/commerce/GalleryB/render.js").then(e=>r(e.GalleryBRender))),GalleryItem:t(()=>import("./blocks/commerce/GalleryItem/render.js").then(e=>r(e.GalleryItemRender))),Header:t(()=>import("./blocks/commerce/Header/render.js").then(e=>r(e.HeaderRender))),ProductGrid:t(()=>import("./blocks/commerce/ProductGrid/render.js").then(e=>r(e.ProductGridRender))),ProductGallery:t(()=>import("./blocks/commerce/ProductGallery/render.js").then(e=>r(e.ProductGalleryRender))),ProductHero:t(()=>import("./blocks/commerce/ProductHero/render.js").then(e=>r(e.ProductHeroRender))),ProductRef:t(()=>import("./blocks/commerce/ProductRef/render.js").then(e=>r(e.ProductRefRender))),RelatedProducts:t(()=>import("./blocks/commerce/RelatedProducts/render.js").then(e=>r(e.RelatedProductsRender))),SearchBlock:t(()=>import("./blocks/commerce/SearchBlock/render.js").then(e=>r(e.SearchBlockRender))),SpecTable:t(()=>import("./blocks/commerce/SpecTable/render.js").then(e=>r(e.SpecTableRender))),ThemeSwitchBlock:t(()=>import("./blocks/commerce/ThemeSwitchBlock/render.js").then(e=>r(e.ThemeSwitchBlockRender))),TyreFitment:t(()=>import("./blocks/commerce/TyreFitment/render.js").then(e=>r(e.TyreFitmentRender))),TyreSizes:t(()=>import("./blocks/commerce/TyreSizes/render.js").then(e=>r(e.TyreSizesRender))),AppointmentBooking:t(()=>import("./blocks/service/AppointmentBooking/render.js").then(e=>r(e.AppointmentBookingRender))),BookingBox:t(()=>import("./blocks/service/BookingBox/render.js").then(e=>r(e.BookingBoxRender))),ContactRouting:t(()=>import("./blocks/service/ContactRouting/render.js").then(e=>r(e.ContactRoutingRender))),Events:t(()=>import("./blocks/service/Events/render.js").then(e=>r(e.EventsRender))),Footer:t(()=>import("./blocks/service/Footer/render.js").then(e=>r(e.FooterRender))),FooterDivider:t(()=>import("./blocks/service/FooterDivider/render.js").then(e=>r(e.FooterDividerRender))),FooterEmailSignup:t(()=>import("./blocks/service/FooterEmailSignup/render.js").then(e=>r(e.FooterEmailSignupRender))),FooterGroup:t(()=>import("./blocks/service/FooterGroup/render.js").then(e=>r(e.FooterGroupRender))),FooterLogo:t(()=>import("./blocks/service/FooterLogo/render.js").then(e=>r(e.FooterLogoRender))),FooterMenu:t(()=>import("./blocks/service/FooterMenu/render.js").then(e=>r(e.FooterMenuRender))),FooterSocial:t(()=>import("./blocks/service/FooterSocial/render.js").then(e=>r(e.FooterSocialRender))),FooterText:t(()=>import("./blocks/service/FooterText/render.js").then(e=>r(e.FooterTextRender))),Form:t(()=>import("./blocks/service/Form/render.js").then(e=>r(e.FormRender))),LegalLineBlock:t(()=>import("./blocks/service/LegalLineBlock/render.js").then(e=>r(e.LegalLineBlockRender))),RateTable:t(()=>import("./blocks/service/RateTable/render.js").then(e=>r(e.RateTableRender))),RatingBlock:t(()=>import("./blocks/service/RatingBlock/render.js").then(e=>r(e.RatingBlockRender))),ReviewForm:t(()=>import("./blocks/service/ReviewForm/render.js").then(e=>r(e.ReviewFormRender))),Reviews:t(()=>import("./blocks/service/Reviews/render.js").then(e=>r(e.ReviewsRender))),[d]:t(()=>import("./blocks/service/SiteFooter/render.js").then(e=>r(e.SiteFooterRender))),[m]:t(()=>import("./blocks/service/SiteHeader/render.js").then(e=>r(e.SiteHeaderRender))),SubmitBox:t(()=>import("./blocks/service/SubmitBox/render.js").then(e=>r(e.SubmitBoxRender))),SubmitBuild:t(()=>import("./blocks/service/SubmitBuild/render.js").then(e=>r(e.SubmitBuildRender))),Subscribe:t(()=>import("./blocks/service/Subscribe/render.js").then(e=>r(e.SubscribeRender))),SubscribeBlogs:t(()=>import("./blocks/service/SubscribeBlogs/render.js").then(e=>r(e.SubscribeBlogsRender)))},l=Object.fromEntries(Object.entries(p).map(([e,n])=>[e,o=>i(n,{...o})]));export{l as LAZY_DRAWS};
|
|
1
|
+
import{jsx as i}from"react/jsx-runtime";import t from"next/dynamic";import{SITE_FOOTER_TYPE as d,SITE_HEADER_TYPE as m}from"efficient-web-builder/format/lib/document/section-groups";function r(e){return function(o){return e.render(o)}}const p={Banner:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/Banner/render").then(e=>r(e.BannerRender))),Breadcrumb:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/Breadcrumb/render").then(e=>r(e.BreadcrumbRender))),ButtonBlock:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/ButtonBlock/render").then(e=>r(e.ButtonBlockRender))),Cards:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/Cards/render").then(e=>r(e.CardsRender))),CategoryBar:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/CategoryBar/render").then(e=>r(e.CategoryBarRender))),Chart:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/Chart/render").then(e=>r(e.ChartRender))),ContactLocations:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/ContactLocations/render").then(e=>r(e.ContactLocationsRender))),CustomHTML:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/CustomHTML/render").then(e=>r(e.CustomHTMLRender))),Divider:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/Divider/render").then(e=>r(e.DividerRender))),DocBody:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/DocBody/render").then(e=>r(e.DocBodyRender))),DocMasthead:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/DocMasthead/render").then(e=>r(e.DocMastheadRender))),DocMetaCards:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/DocMetaCards/render").then(e=>r(e.DocMetaCardsRender))),DocTabs:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/DocTabs/render").then(e=>r(e.DocTabsRender))),Eyebrow:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/Eyebrow/render").then(e=>r(e.EyebrowRender))),FAQ:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/FAQ/render").then(e=>r(e.FAQRender))),FeaturedCover:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/FeaturedCover/render").then(e=>r(e.FeaturedCoverRender))),Flex:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/Flex/render").then(e=>r(e.FlexRender))),Footprint:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/Footprint/render").then(e=>r(e.FootprintRender))),Grid:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/Grid/render").then(e=>r(e.GridRender))),Heading:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/Heading/render").then(e=>r(e.HeadingRender))),Hero:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/Hero/render").then(e=>r(e.HeroRender))),HeroGroup:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/HeroGroup/render").then(e=>r(e.HeroGroupRender))),HeroSingle:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/HeroSingle/render").then(e=>r(e.HeroSingleRender))),HeroSlide:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/HeroSlide/render").then(e=>r(e.HeroSlideRender))),ImageBlock:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/ImageBlock/render").then(e=>r(e.ImageBlockRender))),Integrations:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/Integrations/render").then(e=>r(e.IntegrationsRender))),IntroBleed:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/IntroBleed/render").then(e=>r(e.IntroBleedRender))),Countdown:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/Countdown/render").then(e=>r(e.CountdownRender))),KeyFeatures:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/KeyFeatures/render").then(e=>r(e.KeyFeaturesRender))),LogoBlock:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/LogoBlock/render").then(e=>r(e.LogoBlockRender))),Logos:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/Logos/render").then(e=>r(e.LogosRender))),LongRead:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/LongRead/render").then(e=>r(e.LongReadRender))),Manifesto:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/Manifesto/render").then(e=>r(e.ManifestoRender))),Masthead:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/Masthead/render").then(e=>r(e.MastheadRender))),Mockup:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/Mockup/render").then(e=>r(e.MockupRender))),OrderSummary:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/OrderSummary/render").then(e=>r(e.OrderSummaryRender))),ParagraphsA:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/ParagraphsA/render").then(e=>r(e.ParagraphsARender))),PaymentBadges:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/PaymentBadges/render").then(e=>r(e.PaymentBadgesRender))),PostCard:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/PostCard/render").then(e=>r(e.PostCardRender))),ProcessSteps:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/ProcessSteps/render").then(e=>r(e.ProcessStepsRender))),Prose:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/Prose/render").then(e=>r(e.ProseRender))),SectionHeader:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/SectionHeader/render").then(e=>r(e.SectionHeaderRender))),Series:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/Series/render").then(e=>r(e.SeriesRender))),Spacer:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/Spacer/render").then(e=>r(e.SpacerRender))),SpecStrip:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/SpecStrip/render").then(e=>r(e.SpecStripRender))),Split:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/Split/render").then(e=>r(e.SplitRender))),Stats:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/Stats/render").then(e=>r(e.StatsRender))),StatsParagraph:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/StatsParagraph/render").then(e=>r(e.StatsParagraphRender))),Testimonials:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/Testimonials/render").then(e=>r(e.TestimonialsRender))),Text:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/Text/render").then(e=>r(e.TextRender))),Ticker:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/Ticker/render").then(e=>r(e.TickerRender))),Timeline:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/Timeline/render").then(e=>r(e.TimelineRender))),TimelineTrack:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/TimelineTrack/render").then(e=>r(e.TimelineTrackRender))),TitleWithButtons:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/TitleWithButtons/render").then(e=>r(e.TitleWithButtonsRender))),AccountBlock:t(()=>import("./blocks/commerce/AccountBlock/render.js").then(e=>r(e.AccountBlockRender))),AlloyWheelsListing:t(()=>import("./blocks/commerce/AlloyWheelsListing/render.js").then(e=>r(e.AlloyWheelsListingRender))),BundleOffer:t(()=>import("./blocks/commerce/BundleOffer/render.js").then(e=>r(e.BundleOfferRender))),CartBlock:t(()=>import("./blocks/commerce/CartBlock/render.js").then(e=>r(e.CartBlockRender))),CatalogFilterBar:t(()=>import("./blocks/commerce/CatalogFilterBar/render.js").then(e=>r(e.CatalogFilterBarRender))),CheckoutCTA:t(()=>import("./blocks/commerce/CheckoutCTA/render.js").then(e=>r(e.CheckoutCTARender))),CollectionCard:t(()=>import("./blocks/commerce/CollectionCard/render.js").then(e=>r(e.CollectionCardRender))),Collections:t(()=>import("./blocks/commerce/Collections/render.js").then(e=>r(e.CollectionsRender))),CompatibleTyres:t(()=>import("./blocks/commerce/CompatibleTyres/render.js").then(e=>r(e.CompatibleTyresRender))),CountrySwitchBlock:t(()=>import("./blocks/commerce/CountrySwitchBlock/render.js").then(e=>r(e.CountrySwitchBlockRender))),DeliveryOptions:t(()=>import("./blocks/commerce/DeliveryOptions/render.js").then(e=>r(e.DeliveryOptionsRender))),DetailRows:t(()=>import("./blocks/commerce/DetailRows/render.js").then(e=>r(e.DetailRowsRender))),EuTyreLabel:t(()=>import("./blocks/commerce/EuTyreLabel/render.js").then(e=>r(e.EuTyreLabelRender))),EuTyreLabelBlock:t(()=>import("./blocks/commerce/EuTyreLabelBlock/render.js").then(e=>r(e.EuTyreLabelBlockRender))),FitmentFinder:t(()=>import("./blocks/commerce/FitmentFinder/render.js").then(e=>r(e.FitmentFinderRender))),FitmentTable:t(()=>import("./blocks/commerce/FitmentTable/render.js").then(e=>r(e.FitmentTableRender))),Gallery:t(()=>import("./blocks/commerce/Gallery/render.js").then(e=>r(e.GalleryRender))),GalleryB:t(()=>import("./blocks/commerce/GalleryB/render.js").then(e=>r(e.GalleryBRender))),GalleryItem:t(()=>import("./blocks/commerce/GalleryItem/render.js").then(e=>r(e.GalleryItemRender))),Header:t(()=>import("./blocks/commerce/Header/render.js").then(e=>r(e.HeaderRender))),ProductGrid:t(()=>import("./blocks/commerce/ProductGrid/render.js").then(e=>r(e.ProductGridRender))),ProductGallery:t(()=>import("./blocks/commerce/ProductGallery/render.js").then(e=>r(e.ProductGalleryRender))),ProductHero:t(()=>import("./blocks/commerce/ProductHero/render.js").then(e=>r(e.ProductHeroRender))),ProductRef:t(()=>import("./blocks/commerce/ProductRef/render.js").then(e=>r(e.ProductRefRender))),RelatedProducts:t(()=>import("./blocks/commerce/RelatedProducts/render.js").then(e=>r(e.RelatedProductsRender))),SearchBlock:t(()=>import("./blocks/commerce/SearchBlock/render.js").then(e=>r(e.SearchBlockRender))),SpecTable:t(()=>import("./blocks/commerce/SpecTable/render.js").then(e=>r(e.SpecTableRender))),ThemeSwitchBlock:t(()=>import("./blocks/commerce/ThemeSwitchBlock/render.js").then(e=>r(e.ThemeSwitchBlockRender))),TyreFitment:t(()=>import("./blocks/commerce/TyreFitment/render.js").then(e=>r(e.TyreFitmentRender))),TyreSizes:t(()=>import("./blocks/commerce/TyreSizes/render.js").then(e=>r(e.TyreSizesRender))),AppointmentBooking:t(()=>import("./blocks/service/AppointmentBooking/render.js").then(e=>r(e.AppointmentBookingRender))),BookingBox:t(()=>import("./blocks/service/BookingBox/render.js").then(e=>r(e.BookingBoxRender))),ContactRouting:t(()=>import("./blocks/service/ContactRouting/render.js").then(e=>r(e.ContactRoutingRender))),Events:t(()=>import("./blocks/service/Events/render.js").then(e=>r(e.EventsRender))),Footer:t(()=>import("./blocks/service/Footer/render.js").then(e=>r(e.FooterRender))),FooterDivider:t(()=>import("./blocks/service/FooterDivider/render.js").then(e=>r(e.FooterDividerRender))),FooterEmailSignup:t(()=>import("./blocks/service/FooterEmailSignup/render.js").then(e=>r(e.FooterEmailSignupRender))),FooterGroup:t(()=>import("./blocks/service/FooterGroup/render.js").then(e=>r(e.FooterGroupRender))),FooterLogo:t(()=>import("./blocks/service/FooterLogo/render.js").then(e=>r(e.FooterLogoRender))),FooterMenu:t(()=>import("./blocks/service/FooterMenu/render.js").then(e=>r(e.FooterMenuRender))),FooterSocial:t(()=>import("./blocks/service/FooterSocial/render.js").then(e=>r(e.FooterSocialRender))),FooterText:t(()=>import("./blocks/service/FooterText/render.js").then(e=>r(e.FooterTextRender))),Form:t(()=>import("./blocks/service/Form/render.js").then(e=>r(e.FormRender))),LegalLineBlock:t(()=>import("./blocks/service/LegalLineBlock/render.js").then(e=>r(e.LegalLineBlockRender))),OpeningHours:t(()=>import("./blocks/service/OpeningHours/render.js").then(e=>r(e.OpeningHoursRender))),RateTable:t(()=>import("./blocks/service/RateTable/render.js").then(e=>r(e.RateTableRender))),RatingBlock:t(()=>import("./blocks/service/RatingBlock/render.js").then(e=>r(e.RatingBlockRender))),ReviewForm:t(()=>import("./blocks/service/ReviewForm/render.js").then(e=>r(e.ReviewFormRender))),Reviews:t(()=>import("./blocks/service/Reviews/render.js").then(e=>r(e.ReviewsRender))),[d]:t(()=>import("./blocks/service/SiteFooter/render.js").then(e=>r(e.SiteFooterRender))),[m]:t(()=>import("./blocks/service/SiteHeader/render.js").then(e=>r(e.SiteHeaderRender))),SubmitBox:t(()=>import("./blocks/service/SubmitBox/render.js").then(e=>r(e.SubmitBoxRender))),SubmitBuild:t(()=>import("./blocks/service/SubmitBuild/render.js").then(e=>r(e.SubmitBuildRender))),Subscribe:t(()=>import("./blocks/service/Subscribe/render.js").then(e=>r(e.SubscribeRender))),SubscribeBlogs:t(()=>import("./blocks/service/SubscribeBlogs/render.js").then(e=>r(e.SubscribeBlogsRender)))},l=Object.fromEntries(Object.entries(p).map(([e,n])=>[e,o=>i(n,{...o})]));export{l as LAZY_DRAWS};
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import type { SourceRow } from "efficient-web-builder/format/lib/content/block-sources";
|
|
2
|
+
export declare const OPENING_WORDS: {
|
|
3
|
+
readonly days: readonly ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"];
|
|
4
|
+
readonly shortDays: readonly ["Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"];
|
|
5
|
+
readonly closed: "Closed";
|
|
6
|
+
readonly openNow: "Open now";
|
|
7
|
+
readonly until: "until";
|
|
8
|
+
readonly opens: "opens";
|
|
9
|
+
readonly today: "today";
|
|
10
|
+
readonly am: "am";
|
|
11
|
+
readonly pm: "pm";
|
|
12
|
+
};
|
|
13
|
+
export interface OpeningPeriod {
|
|
14
|
+
opens: number;
|
|
15
|
+
closes: number;
|
|
16
|
+
}
|
|
17
|
+
export type OpeningWeek = OpeningPeriod[][];
|
|
18
|
+
export interface OpeningRow {
|
|
19
|
+
week: OpeningWeek | null;
|
|
20
|
+
zone: string;
|
|
21
|
+
hours: string[];
|
|
22
|
+
}
|
|
23
|
+
export interface OpeningMoment {
|
|
24
|
+
day: number;
|
|
25
|
+
minute: number;
|
|
26
|
+
}
|
|
27
|
+
export type OpeningStatus = {
|
|
28
|
+
open: true;
|
|
29
|
+
until: number;
|
|
30
|
+
} | {
|
|
31
|
+
open: false;
|
|
32
|
+
next: {
|
|
33
|
+
inDays: number;
|
|
34
|
+
day: number;
|
|
35
|
+
opens: number;
|
|
36
|
+
} | null;
|
|
37
|
+
};
|
|
38
|
+
export declare function parseOpeningWeek(text: string | undefined): OpeningWeek | null;
|
|
39
|
+
export declare function readOpeningRow(rows: readonly SourceRow[]): OpeningRow | null;
|
|
40
|
+
export declare function clockLabel(minute: number): string;
|
|
41
|
+
export declare const periodLabel: (period: OpeningPeriod) => string;
|
|
42
|
+
export declare function momentIn(zone: string, instant: number | Date): OpeningMoment;
|
|
43
|
+
export declare function openingStatus(week: OpeningWeek, now: OpeningMoment): OpeningStatus;
|
|
44
|
+
export declare function badgeLabel(status: OpeningStatus): string;
|
|
45
|
+
export interface WeekLine {
|
|
46
|
+
day: number;
|
|
47
|
+
name: string;
|
|
48
|
+
periods: string;
|
|
49
|
+
closed: boolean;
|
|
50
|
+
}
|
|
51
|
+
export declare function weekLines(week: OpeningWeek): WeekLine[];
|
|
52
|
+
export declare const OPENING_SAMPLE_WEEK = "0:600-1560;1:600-1560;2:600-1560;3:600-1560;4:600-1620;5:600-1620;6:600-1500";
|
|
53
|
+
export declare const OPENING_SAMPLE_MOMENT: OpeningMoment;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
const p={days:["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"],shortDays:["Mon","Tue","Wed","Thu","Fri","Sat","Sun"],closed:"Closed",openNow:"Open now",until:"until",opens:"opens",today:"today",am:"am",pm:"pm"},a=1440,m=/^\s*(\d)\s*:\s*(\d{1,4})\s*-\s*(\d{1,4})\s*$/;function h(e){const n=Array.from({length:7},()=>[]);let o=!1;for(const t of(e??"").split(";")){const r=m.exec(t);if(!r)continue;const s=Number(r[1]),u=Number(r[2]),c=Number(r[3]);s>6||u>a-1||c<=u||c>2*a-1||c-u>a||(n[s].push({opens:u,closes:c}),o=!0)}if(!o)return null;for(const t of n)t.sort((r,s)=>r.opens-s.opens);return n}function $(e){const n=e[0];if(!n)return null;const o=h(n.week??"");return{week:o,zone:o?(n.zone??"").trim():"",hours:(n.hours??"").split(/\r?\n/).map(t=>t.trim()).filter(Boolean)}}function l(e){const n=(e%a+a)%a,o=Math.floor(n/60),t=n%60,r=o%12||12,s=o<12?p.am:p.pm;return t?`${r}:${String(t).padStart(2,"0")} ${s}`:`${r} ${s}`}const x=e=>`${l(e.opens)} – ${l(e.closes)}`,N={Mon:0,Tue:1,Wed:2,Thu:3,Fri:4,Sat:5,Sun:6};function S(e){const n={weekday:"short",hour:"2-digit",minute:"2-digit",hourCycle:"h23"};if(e)try{return new Intl.DateTimeFormat("en-US",{...n,timeZone:e})}catch{}return new Intl.DateTimeFormat("en-US",n)}function w(e,n){const o=S(e).formatToParts(n),t=s=>o.find(u=>u.type===s)?.value??"",r=Number(t("hour"))%24;return{day:N[t("weekday")]??0,minute:r*60+Number(t("minute"))}}function D(e,n){const{day:o,minute:t}=n,r=e[o]??[],s=r.find(i=>i.opens<=t&&t<i.closes);if(s)return{open:!0,until:s.closes};const c=(e[(o+6)%7]??[]).find(i=>i.closes>a&&t+a<i.closes);if(c)return{open:!0,until:c.closes};const d=r.find(i=>i.opens>t);if(d)return{open:!1,next:{inDays:0,day:o,opens:d.opens}};for(let i=1;i<=7;i+=1){const f=(o+i)%7,y=e[f]?.[0];if(y)return{open:!1,next:{inDays:i,day:f,opens:y.opens}}}return{open:!1,next:null}}function E(e){const n=p;if(e.open)return`${n.openNow} · ${n.until} ${l(e.until)}`;if(!e.next)return n.closed;const o=e.next.inDays===0?n.today:n.shortDays[e.next.day];return`${n.closed} · ${n.opens} ${o} ${l(e.next.opens)}`}function g(e){return e.map((n,o)=>({day:o,name:p.days[o],periods:n.map(x).join(", "),closed:n.length===0}))}const T="0:600-1560;1:600-1560;2:600-1560;3:600-1560;4:600-1620;5:600-1620;6:600-1500",b={day:0,minute:1200};export{b as OPENING_SAMPLE_MOMENT,T as OPENING_SAMPLE_WEEK,p as OPENING_WORDS,E as badgeLabel,l as clockLabel,w as momentIn,D as openingStatus,h as parseOpeningWeek,x as periodLabel,$ as readOpeningRow,g as weekLines};
|