efficient-web-builder 2.0.0 → 3.0.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 +47 -0
- package/README.md +7 -0
- package/dist/components/BlogPostSource.js +1 -1
- package/dist/components/Breadcrumb.js +1 -1
- package/dist/components/Btn.js +1 -1
- package/dist/components/CardShadowField.js +1 -1
- package/dist/components/CategoryBar.js +1 -1
- package/dist/components/ChartSection.js +1 -1
- package/dist/components/ChatSettingsPanel.js +1 -1
- package/dist/components/ClearColoursDialog.js +1 -1
- package/dist/components/ContactLocations.js +5 -5
- package/dist/components/CornersField.js +1 -1
- package/dist/components/DocBody.js +1 -1
- package/dist/components/DuplicateToPageMenu.js +1 -1
- package/dist/components/FeaturedCover.js +1 -1
- package/dist/components/FieldGlyph.js +1 -1
- package/dist/components/Footprint.js +1 -1
- package/dist/components/HeadingAudit.js +1 -1
- package/dist/components/HeroSection.js +1 -1
- package/dist/components/HoverEffectField.js +1 -1
- package/dist/components/ImageBlock.js +1 -1
- package/dist/components/ImageFocusRow.js +1 -1
- package/dist/components/LocationsGroupedField.js +1 -1
- package/dist/components/LongRead.js +1 -1
- package/dist/components/MediaUploadField.js +1 -1
- package/dist/components/MockupSection.js +1 -1
- package/dist/components/PagesPanel.js +1 -1
- package/dist/components/PartInkControl.js +1 -1
- package/dist/components/PartResetDot.js +1 -1
- package/dist/components/PartSettingsPanel.js +1 -1
- package/dist/components/PostCard.js +1 -1
- package/dist/components/ProcessSteps.js +1 -1
- package/dist/components/RMark.js +1 -1
- package/dist/components/Reel.js +1 -1
- package/dist/components/SectionEditor.js +1 -1
- package/dist/components/SectionHeader.js +1 -1
- package/dist/components/SectionThumbnail.js +1 -1
- package/dist/components/SlotChildRows.js +1 -1
- package/dist/components/SourceStatus.js +1 -1
- package/dist/components/Split.js +1 -1
- package/dist/components/StandaloneSectionEditor.js +1 -1
- package/dist/components/StylesPanel.js +1 -1
- package/dist/components/SwitchToBoxFooter.js +1 -1
- package/dist/components/Testimonials.js +1 -1
- package/dist/components/TextStyleRow.js +1 -1
- package/dist/components/TextStylesField.js +1 -1
- package/dist/components/ThemeCard.js +1 -1
- package/dist/components/ThemeColourField.js +1 -1
- package/dist/components/ThemeField.js +1 -1
- package/dist/components/TickerSettingsPanel.js +1 -1
- package/dist/components/Timeline.js +1 -1
- package/dist/components/TimelineTrack.js +1 -1
- package/dist/components/TitleWithButtons.js +1 -1
- package/dist/components/WebsiteScreenParts.js +1 -1
- package/dist/components/WebsiteSettingsPanel.d.ts +5 -9
- package/dist/components/WebsiteSettingsPanel.js +1 -1
- package/dist/components/goldPhrases.js +1 -1
- package/dist/components/storefront-editor.css +262 -542
- package/dist/lib/content/contact.js +3 -3
- package/dist/lib/content/subscribe.js +1 -1
- package/dist/lib/puck/ColourControl.d.ts +5 -0
- package/dist/lib/puck/ColourControl.js +1 -1
- package/dist/lib/puck/MarkupToolbar.js +1 -1
- package/dist/lib/puck/blocks/general/CategoryBar/fields.js +1 -1
- package/dist/lib/puck/blocks/general/Chart/fields.js +1 -1
- package/dist/lib/puck/blocks/general/FAQ/render.js +1 -1
- package/dist/lib/puck/blocks/general/FeaturedCover/render.js +1 -1
- package/dist/lib/puck/blocks/general/Footprint/fields.js +1 -1
- package/dist/lib/puck/blocks/general/IntroBleed/render.js +1 -1
- package/dist/lib/puck/blocks/general/LogoBlock/fields.js +1 -1
- package/dist/lib/puck/blocks/general/LongRead/render.js +1 -1
- package/dist/lib/puck/blocks/general/Masthead/render.js +1 -1
- package/dist/lib/puck/blocks/general/Mockup/fields.js +1 -1
- package/dist/lib/puck/blocks/general/OrderSummary/render.js +1 -1
- package/dist/lib/puck/blocks/general/ParagraphsA/render.js +1 -1
- package/dist/lib/puck/blocks/general/PostCard/render.js +1 -1
- package/dist/lib/puck/blocks/general/ProcessSteps/render.js +1 -1
- package/dist/lib/puck/blocks/general/Series/render.js +1 -1
- package/dist/lib/puck/blocks/general/Split/render.js +1 -1
- package/dist/lib/puck/blocks/general/Testimonials/fields.js +1 -1
- package/dist/lib/puck/blocks/general/Testimonials/render.js +1 -1
- package/dist/lib/puck/blocks/general/TimelineTrack/render.js +1 -1
- package/dist/lib/puck/blocks/placeholders.js +1 -1
- package/dist/lib/puck/controls.d.ts +0 -10
- package/dist/lib/puck/controls.js +1 -1
- package/dist/lib/puck/field-groups.js +1 -1
- package/dist/lib/puck/footer-block-row-name.js +1 -1
- package/dist/lib/puck/geocode-resolve.js +1 -1
- package/dist/lib/puck/locations-tree.js +2 -2
- package/dist/lib/puck/neutralization-contracts.js +1 -1
- package/dist/lib/puck/part-rows.js +1 -1
- package/dist/lib/puck/section-catalog.js +1 -1
- package/dist/lib/puck/section-descriptions.js +1 -1
- package/dist/lib/sections/divider-style.js +1 -1
- package/dist/lib/sections/product-card-style.js +1 -1
- package/dist/lib/sections/ticker-style.js +1 -1
- package/dist/lib/source-rules/accent-token-name.js +2 -2
- package/dist/lib/source-rules/button-corners.js +1 -1
- package/dist/lib/source-rules/editor-chrome-note.js +2 -2
- package/dist/lib/source-rules/editor-context-menu.js +2 -2
- package/dist/lib/source-rules/editor-puck-drag-off.js +2 -2
- package/dist/lib/source-rules/efficient-easel-version.js +1 -1
- package/dist/lib/source-rules/every-button-follows-the-button-colour.js +4 -4
- package/dist/lib/source-rules/flat-theme-palette.js +2 -2
- package/dist/lib/source-rules/full-width-means-full.js +1 -1
- package/dist/lib/source-rules/heading-ceiling-sweep.js +3 -3
- package/dist/lib/source-rules/label-hints.js +4 -4
- package/dist/lib/source-rules/label-vocabulary.js +5 -5
- package/dist/lib/source-rules/mirrored-rows-agree.js +4 -4
- package/dist/lib/source-rules/no-comment-in-jsx.js +2 -2
- package/dist/lib/source-rules/no-glyph-rows.js +2 -2
- package/dist/lib/source-rules/one-colour-control.js +2 -2
- package/dist/lib/source-rules/one-dropdown.js +2 -2
- package/dist/lib/source-rules/one-editable-list.js +3 -3
- package/dist/lib/source-rules/one-editor-list.js +1 -1
- package/dist/lib/source-rules/one-right-click.js +2 -2
- package/dist/lib/source-rules/one-switch.js +1 -1
- package/dist/lib/source-rules/one-up-level-link.js +7 -7
- package/dist/lib/source-rules/panel-colour-tokens.js +7 -7
- package/dist/lib/source-rules/panel-no-divider-lines.js +5 -5
- package/dist/lib/source-rules/panel-one-arrow.js +1 -1
- package/dist/lib/source-rules/panel-one-hover.js +2 -2
- package/dist/lib/source-rules/panel-rows-use-the-shared-row.js +5 -5
- package/dist/lib/source-rules/part-slider-fills-row.js +8 -8
- package/dist/lib/source-rules/part-style-naming.js +1 -1
- package/dist/lib/source-rules/puck-document-surfaces.js +6 -6
- package/dist/lib/source-rules/reduced-motion.js +2 -2
- package/dist/lib/source-rules/route-content-width.js +2 -2
- package/dist/lib/source-rules/rule.js +1 -1
- package/dist/lib/source-rules/section-theme-preview.js +2 -2
- package/dist/lib/source-rules/site-square-by-default.js +1 -1
- package/dist/lib/source-rules/site-width.js +2 -2
- package/dist/lib/source-rules/size-token-paints.js +2 -2
- package/dist/lib/source-rules/social-icons-import.js +1 -1
- package/dist/lib/source-rules/source-status-is-shared.js +1 -1
- package/dist/lib/source-rules/style-face-matches-size.js +3 -3
- package/dist/lib/source-rules/support/label-extraction.js +5 -5
- package/dist/lib/source-rules/support/part-slider-call-sites.js +4 -4
- package/dist/lib/source-rules/support/registry-source.js +1 -1
- package/dist/lib/source-rules/theme-mode-controls-gone.js +3 -3
- package/dist/lib/source-rules/upload-intake-guard.js +2 -2
- package/dist/lib/source-rules/word-styles.js +2 -2
- package/package.json +7 -7
- package/dist/lib/puck/slider-typing.d.ts +0 -9
- package/dist/lib/puck/slider-typing.js +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,52 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 3.0.0 - 2026-10-10
|
|
4
|
+
|
|
5
|
+
- **efficient-easel 1.0.0 and efficient-shell ^4.165.0** (peers; were
|
|
6
|
+
^0.106.0 and ^4.163.0; Efficient-Pty-Ltd/efficient-easel#199, harness
|
|
7
|
+
UI-24). The editor's controls are efficient-shell's: buttons, tabs,
|
|
8
|
+
segmented strips, switches, dropdowns, number boxes, sliders, menus, the
|
|
9
|
+
Layers tree, the rail and the resize grips. A host loads
|
|
10
|
+
`efficient-shell/ui.css`, compiled by its own Tailwind, before easel's
|
|
11
|
+
sheets and `components/storefront-editor.css`, which follows them.
|
|
12
|
+
- **Breaking:** `WebsiteSettingsPanel` no longer exports `TABPANEL_ID`. The
|
|
13
|
+
Site styles tabs are wired by `SettingsTabs` `idPrefix`
|
|
14
|
+
(`SITE_STYLES_ID_PREFIX`, `tabButtonId` / `tabPanelId`), the panel's look
|
|
15
|
+
hangs on `TABPANEL_CLASS`, and `SITE_STYLES_TABS` items lose `htmlId` /
|
|
16
|
+
`panelId`.
|
|
17
|
+
- **The website's own buttons are the shell's:** Switch to Box footer and
|
|
18
|
+
Save as Template are `Button`; the Preview link wears `buttonClasses`.
|
|
19
|
+
- **storefront-editor.css** drops the rules drawn by no file
|
|
20
|
+
(`.sf-colstep-btn`, `.sf-blogsource-btn`, `.sf-actions-slot`) and its own
|
|
21
|
+
look for the copy box's mark buttons (the shell's `IconButton` with
|
|
22
|
+
`aria-pressed`).
|
|
23
|
+
- **Fix:** the inspector's Duplicate section and Remove section refuse a page
|
|
24
|
+
somebody else holds, as every other edit already did.
|
|
25
|
+
- **Also ships #46**, which 2.1.0 lacks: every slider is the shell's `Slider`
|
|
26
|
+
(`SliderValue` and `lib/puck/slider-typing` are gone), the colour control is
|
|
27
|
+
the shell's `ColorPicker` + `HexInput`, the last chrome `title=` are the
|
|
28
|
+
shell's `Tooltip`, and the chrome's sheet reads only shell tokens.
|
|
29
|
+
- **Lost until efficient-shell adds it:** a dropdown's closed value is no
|
|
30
|
+
longer drawn in its own face (the Text style and part font rows); the shell
|
|
31
|
+
`Select` takes no `renderValue`.
|
|
32
|
+
|
|
33
|
+
## 2.1.0 - 2026-10-10
|
|
34
|
+
|
|
35
|
+
- **The editor's chrome takes its UI from `efficient-shell`** (#44, harness
|
|
36
|
+
UI-24): the Clear colours and add-page dialogs are the shell's Dialog, the
|
|
37
|
+
duplicate-to-page menu its PopupMenu, the toolbar and theme-card buttons its
|
|
38
|
+
Button and IconButton, the controls' checkbox its Checkbox, the font picker
|
|
39
|
+
easel's FieldSelect, and eleven native tooltips the shell's Tooltip. Their
|
|
40
|
+
own `.sf-cleardlg` and `.sf-dupmenu` sheets are gone.
|
|
41
|
+
- **`dist/` is written in UTF-8.** A character outside ASCII is itself in the
|
|
42
|
+
compiled files, not an escape (`·`, not `\xB7`). A host that builds a
|
|
43
|
+
stylesheet by scanning `dist/` for class names now reads
|
|
44
|
+
`before:content-['·']` as the code writes it, and its sheet has the rule
|
|
45
|
+
(efficient-storefront-blocks builds its editor canvas this way).
|
|
46
|
+
`scripts/verify-dist.mjs` §6 holds it.
|
|
47
|
+
- **Peer dependencies.** `efficient-shell` ^4.145.0 (was ^4.131.0; its Dialog
|
|
48
|
+
role); `react-dom` is no longer one, since nothing here imports it.
|
|
49
|
+
|
|
3
50
|
## 2.0.0 - 2026-10-10
|
|
4
51
|
|
|
5
52
|
- **The editor's screen comes from `efficient-easel`.** The screen's 67
|
package/README.md
CHANGED
|
@@ -89,6 +89,13 @@ import "efficient-web-builder/components/storefront-editor.css";
|
|
|
89
89
|
Inside the package `@/…` is already a relative path, so a host needs no
|
|
90
90
|
mapping of its own. It installs the peer dependencies the manifest lists.
|
|
91
91
|
|
|
92
|
+
The sheets load in one order. Since `efficient-easel` 1.0 the editor's
|
|
93
|
+
controls are `efficient-shell/ui`'s, and easel's tokens resolve to the
|
|
94
|
+
shell's with no fallback, so `efficient-shell/ui.css` comes first, compiled
|
|
95
|
+
by the host's own Tailwind (its `@source` scans the shell's `dist/`). Then
|
|
96
|
+
easel's sheets (`efficient-easel/screen.css`), then
|
|
97
|
+
`components/storefront-editor.css`.
|
|
98
|
+
|
|
92
99
|
### Releasing
|
|
93
100
|
|
|
94
101
|
A merge is not a release. The pull request that wants hosts to see a change
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";import{jsx as t,Fragment as l,jsxs as B}from"react/jsx-runtime";import{useContext as y}from"react";import{SettingsField as c}from"efficient-easel/panel";import{FieldSelect as d}from"efficient-easel/fields";import{BlogPostIcon as g}from"efficient-easel/icons";import{StorefrontDocumentContext as x}from"./StorefrontDocumentContext.js";import{loadStorefrontBlogPosts as L}from"./useStorefrontBlogPosts.js";import{useSnapshotSource as N}from"./useSnapshotSource.js";import P from"./SourceStatus.js";function C(o){if(!o)return"";const e=new Date(o);return Number.isNaN(e.getTime())?"":e.toLocaleDateString("en-US",{year:"numeric",month:"short",day:"2-digit"})}function f(o){return{slug:o.slug,image:o.coverImage,title:o.title,dek:o.excerpt,date:C(o.publishedAt),href:o.href}}function D({value:o,onChange:e}){const r=y(x);return r&&!r.capabilities.hasBlog?o?.slug?t(F,{value:o,onChange:e}):t(l,{}):t(T,{value:o,onChange:e})}function F({value:o,onChange:e}){return t("div",{children:t(c,{label:"Blog post source",icon:t(g,{}),hint:t(l,{children:"Linked to a blog post. This editor has no blog to pick another from; choose
|
|
1
|
+
"use client";import{jsx as t,Fragment as l,jsxs as B}from"react/jsx-runtime";import{useContext as y}from"react";import{SettingsField as c}from"efficient-easel/panel";import{FieldSelect as d}from"efficient-easel/fields";import{BlogPostIcon as g}from"efficient-easel/icons";import{StorefrontDocumentContext as x}from"./StorefrontDocumentContext.js";import{loadStorefrontBlogPosts as L}from"./useStorefrontBlogPosts.js";import{useSnapshotSource as N}from"./useSnapshotSource.js";import P from"./SourceStatus.js";function C(o){if(!o)return"";const e=new Date(o);return Number.isNaN(e.getTime())?"":e.toLocaleDateString("en-US",{year:"numeric",month:"short",day:"2-digit"})}function f(o){return{slug:o.slug,image:o.coverImage,title:o.title,dek:o.excerpt,date:C(o.publishedAt),href:o.href}}function D({value:o,onChange:e}){const r=y(x);return r&&!r.capabilities.hasBlog?o?.slug?t(F,{value:o,onChange:e}):t(l,{}):t(T,{value:o,onChange:e})}function F({value:o,onChange:e}){return t("div",{children:t(c,{label:"Blog post source",icon:t(g,{}),hint:t(l,{children:"Linked to a blog post. This editor has no blog to pick another from; choose “None (manual)” to author the section yourself."}),children:t(d,{value:o.slug,ariaLabel:"Blog post source",onChange:r=>r?void 0:e(null),options:[{label:"None (manual)",value:""},{label:o.title||o.slug,value:o.slug}]})})})}function T({value:o,onChange:e}){const{rows:r,loading:h,refreshing:i,errored:u,refresh:m}=N({load:L,resolve:(n,s)=>n.find(a=>a.slug===s.slug),snapshot:f,value:o,onChange:e}),p=n=>{if(!n){e(null);return}const s=(r??[]).find(a=>a.slug===n);s&&e(f(s))},b=o?.slug&&!(r??[]).some(n=>n.slug===o.slug),S=u?"error":i?"loading":"idle",k=u?"Couldn’t reach Storefront → Blog.":i?"Syncing from Storefront → Blog…":`Linked to “${o?.title||o?.slug||""}”`;return B("div",{children:[t(c,{label:"Blog post source",icon:t(g,{}),hint:o?.slug?void 0:t(l,{children:"Pick a post from Storefront → Blog to auto-fill this section, or keep “None (manual)” to author it yourself below."}),children:t(d,{value:o?.slug??"",ariaLabel:"Blog post source",onChange:p,readOnly:h,options:[{label:"None (manual)",value:""},...b?[{label:`${o.title||o.slug} (unavailable)`,value:o.slug}]:[],...(r??[]).map(n=>({label:n.title,value:n.slug}))]})}),o?.slug?t(P,{status:S,statusText:k,onRefresh:m,busy:i,hint:t(l,{children:"Auto-fills the cover image, headline, dek, date and link from this post each time you open the editor. Those fields are hidden while a post is linked; the remaining fields stay yours to set."})}):null]})}export{D as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsx as r,jsxs as s,Fragment as c}from"react/jsx-runtime";import{Fragment as f}from"react";import{SiteLink as x}from"../lib/site-runtime.js";import{renderChrome as m,renderGold as d}from"./goldPhrases.js";function h({items:p,meta:n,editing:o=!1}){const l=(p??[]).filter(e=>e?.label?.trim()),t=l.length>0?l:o?[{label:"Breadcrumb"}]:[];return t.length===0&&!n?null:s("nav",{className:"flex items-center gap-4 border-b border-line px-[var(--sf-site-gutter,40px)] py-6 font-mono text-[length:var(--size-label,13px)] uppercase tracking-[0.2em] text-fg-dim max-[720px]:px-[min(20px,var(--sf-site-gutter,40px))] max-[720px]:py-4",children:[t.map((e,a)=>{const i=a===t.length-1;return s(f,{children:[a>0&&r("span",{className:"opacity-40",children:"/"}),e.href&&!i?r(x,{href:e.href,className:"hover:text-fg",children:m(e.label)}):r("span",{className:i?"text-fg":void 0,children:m(e.label)})]},a)}),n&&s(c,{children:[r("span",{className:"opacity-40",children:"
|
|
1
|
+
import{jsx as r,jsxs as s,Fragment as c}from"react/jsx-runtime";import{Fragment as f}from"react";import{SiteLink as x}from"../lib/site-runtime.js";import{renderChrome as m,renderGold as d}from"./goldPhrases.js";function h({items:p,meta:n,editing:o=!1}){const l=(p??[]).filter(e=>e?.label?.trim()),t=l.length>0?l:o?[{label:"Breadcrumb"}]:[];return t.length===0&&!n?null:s("nav",{className:"flex items-center gap-4 border-b border-line px-[var(--sf-site-gutter,40px)] py-6 font-mono text-[length:var(--size-label,13px)] uppercase tracking-[0.2em] text-fg-dim max-[720px]:px-[min(20px,var(--sf-site-gutter,40px))] max-[720px]:py-4",children:[t.map((e,a)=>{const i=a===t.length-1;return s(f,{children:[a>0&&r("span",{className:"opacity-40",children:"/"}),e.href&&!i?r(x,{href:e.href,className:"hover:text-fg",children:m(e.label)}):r("span",{className:i?"text-fg":void 0,children:m(e.label)})]},a)}),n&&s(c,{children:[r("span",{className:"opacity-40",children:"·"}),r("span",{children:d(n)})]})]})}export{h as default};
|
package/dist/components/Btn.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsx as r,Fragment as h,jsxs as u}from"react/jsx-runtime";import{SiteLink as f}from"../lib/site-runtime.js";const g="sf-button group inline-flex items-center justify-center gap-2.5 border px-[22px] py-4 font-mono text-[length:var(--size-label,14px)] uppercase tracking-[0.2em] transition-colors",o={primary:"border-btn bg-btn text-btn-ink hover:border-btn-2 hover:bg-btn-2",ghost:"border-current bg-transparent hover:bg-white/10"};function x(i){const{variant:l="primary",arrow:e,className:c,style:t,children:p,href:n,newTab:b,...m}=i,s=`${g} ${o[l]??o.primary} ${c??""}`,a=u(h,{children:[p,e!==null&&r("span",{"aria-hidden":!0,className:"transition-transform group-hover:translate-x-[3px]",children:e??"
|
|
1
|
+
import{jsx as r,Fragment as h,jsxs as u}from"react/jsx-runtime";import{SiteLink as f}from"../lib/site-runtime.js";const g="sf-button group inline-flex items-center justify-center gap-2.5 border px-[22px] py-4 font-mono text-[length:var(--size-label,14px)] uppercase tracking-[0.2em] transition-colors",o={primary:"border-btn bg-btn text-btn-ink hover:border-btn-2 hover:bg-btn-2",ghost:"border-current bg-transparent hover:bg-white/10"};function x(i){const{variant:l="primary",arrow:e,className:c,style:t,children:p,href:n,newTab:b,...m}=i,s=`${g} ${o[l]??o.primary} ${c??""}`,a=u(h,{children:[p,e!==null&&r("span",{"aria-hidden":!0,className:"transition-transform group-hover:translate-x-[3px]",children:e??"→"})]});return n?r(f,{href:n,className:s,style:t,...b?{target:"_blank",rel:"noopener noreferrer"}:{},children:a}):r("button",{type:"button",className:s,style:t,...m,children:a})}export{x as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";import{jsx as e}from"react/jsx-runtime";import{SettingsDefaultReset as r,SettingsField as c,SettingsSegmented as p}from"efficient-easel/panel";import{ShadowIcon as f}from"efficient-easel/icons";import{CARD_SHADOWS as x,DEFAULT_CARD_SHADOW as i}from"../lib/theme.js";const n={none:"None",soft:"Soft",lifted:"Lifted"},h="Applies to cards
|
|
1
|
+
"use client";import{jsx as e}from"react/jsx-runtime";import{SettingsDefaultReset as r,SettingsField as c,SettingsSegmented as p}from"efficient-easel/panel";import{ShadowIcon as f}from"efficient-easel/icons";import{CARD_SHADOWS as x,DEFAULT_CARD_SHADOW as i}from"../lib/theme.js";const n={none:"None",soft:"Soft",lifted:"Lifted"},h="Applies to cards — products, brands, journal entries and filter cells. Round things like swatches and status dots are never shadowed.",u={none:"none",soft:"0 1px 1px rgba(20, 20, 22, 0.10), 0 2px 4px -1px rgba(20, 20, 22, 0.14)",lifted:"0 1px 2px rgba(20, 20, 22, 0.10), 0 4px 7px -2px rgba(20, 20, 22, 0.30)"},S={labelsPx:90.25,widestLabelPx:34.6};function b({value:a,onChange:o,showHint:l=!0}){const s=a===null,d=a??i;return e(c,{label:"Card shadow",icon:e(f,{}),value:n[d],changed:!s,action:e(r,{label:"Card shadow",changed:!s,detail:n[i],onReset:()=>o(null)}),hint:l?h:void 0,children:e(p,{options:x.map(t=>({id:t,label:n[t],icon:e("span",{className:"sf-shadow-chip",style:{boxShadow:u[t]}})})),value:d,ariaLabel:"Card shadow",fit:S,onChange:o})})}export{b as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsx as r,jsxs as n}from"react/jsx-runtime";import{SiteLink as g}from"../lib/site-runtime.js";import{renderChrome as l}from"./goldPhrases.js";import{STICKY_UNDERHEADER_CLASS as u}from"../lib/puck/header-clearance.js";function v({tabs:m,activeTab:o,links:d,sticky:b=!0,editing:h=!1}){const i=(m??[]).filter(e=>e?.label?.trim()),a=i.length>0?i:h?[{label:"Tab"}]:[],s=(d??[]).filter(e=>e?.label?.trim());if(a.length===0&&s.length===0)return null;const c=o?a.findIndex(e=>e.label.toLowerCase()===o.toLowerCase()):-1,f=c===-1?0:c;return r("nav",{className:`${b?`${u} sticky top-[var(--sf-header-h,88px)] z-40 `:""}border-b border-line px-[var(--sf-site-gutter,40px)] backdrop-blur-md max-[1100px]:px-[min(16px,var(--sf-site-gutter,40px))]`,style:{background:"color-mix(in oklab, var(--bg) 92%, transparent)"},children:n("div",{className:"mx-auto flex max-w-[calc(var(--sf-site-width,1600px)_-_var(--sf-site-gutter,40px)*2)] items-stretch gap-0 overflow-auto [scrollbar-width:none] [&::-webkit-scrollbar]:hidden",children:[a.map((e,t)=>{const p=t===f,x=e.count?.trim()?e.count:"";return n("span",{className:["relative whitespace-nowrap border-r border-line px-[22px] py-[18px] font-mono text-[length:var(--size-label,13px)] uppercase tracking-[0.22em] transition-colors",t===0?"border-l border-line":"",p?"text-fg":"text-fg-dim hover:text-fg"].join(" "),children:[l(e.label),x&&r("span",{className:"ml-2 text-[length:var(--size-body,12px)] text-accent opacity-70",children:l(x)}),p&&r("span",{className:"absolute inset-x-0 -bottom-px h-[2px] bg-accent"})]},t)}),s.length>0&&r("div",{className:"ml-auto flex border-l border-line",children:s.map((e,t)=>n(g,{href:e.href||"#",className:"flex items-center gap-2.5 px-[22px] py-[18px] font-mono text-[length:var(--size-label,13px)] uppercase tracking-[0.22em] text-fg-dim hover:text-fg",children:[l(e.label)," ",r("span",{className:"text-accent",children:"
|
|
1
|
+
import{jsx as r,jsxs as n}from"react/jsx-runtime";import{SiteLink as g}from"../lib/site-runtime.js";import{renderChrome as l}from"./goldPhrases.js";import{STICKY_UNDERHEADER_CLASS as u}from"../lib/puck/header-clearance.js";function v({tabs:m,activeTab:o,links:d,sticky:b=!0,editing:h=!1}){const i=(m??[]).filter(e=>e?.label?.trim()),a=i.length>0?i:h?[{label:"Tab"}]:[],s=(d??[]).filter(e=>e?.label?.trim());if(a.length===0&&s.length===0)return null;const c=o?a.findIndex(e=>e.label.toLowerCase()===o.toLowerCase()):-1,f=c===-1?0:c;return r("nav",{className:`${b?`${u} sticky top-[var(--sf-header-h,88px)] z-40 `:""}border-b border-line px-[var(--sf-site-gutter,40px)] backdrop-blur-md max-[1100px]:px-[min(16px,var(--sf-site-gutter,40px))]`,style:{background:"color-mix(in oklab, var(--bg) 92%, transparent)"},children:n("div",{className:"mx-auto flex max-w-[calc(var(--sf-site-width,1600px)_-_var(--sf-site-gutter,40px)*2)] items-stretch gap-0 overflow-auto [scrollbar-width:none] [&::-webkit-scrollbar]:hidden",children:[a.map((e,t)=>{const p=t===f,x=e.count?.trim()?e.count:"";return n("span",{className:["relative whitespace-nowrap border-r border-line px-[22px] py-[18px] font-mono text-[length:var(--size-label,13px)] uppercase tracking-[0.22em] transition-colors",t===0?"border-l border-line":"",p?"text-fg":"text-fg-dim hover:text-fg"].join(" "),children:[l(e.label),x&&r("span",{className:"ml-2 text-[length:var(--size-body,12px)] text-accent opacity-70",children:l(x)}),p&&r("span",{className:"absolute inset-x-0 -bottom-px h-[2px] bg-accent"})]},t)}),s.length>0&&r("div",{className:"ml-auto flex border-l border-line",children:s.map((e,t)=>n(g,{href:e.href||"#",className:"flex items-center gap-2.5 px-[22px] py-[18px] font-mono text-[length:var(--size-label,13px)] uppercase tracking-[0.22em] text-fg-dim hover:text-fg",children:[l(e.label)," ",r("span",{className:"text-accent",children:"↗"})]},t))})]})})}export{v as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsx as a,jsxs as o}from"react/jsx-runtime";import{renderGold as u,renderHeadline as y}from"./goldPhrases.js";function g(e){return Number.isInteger(e)?String(e):String(Math.round(e*10)/10)}const v=[100,70,46,30,19,12];function b(e){return`color-mix(in srgb, var(--accent) ${v[e%v.length]}%, var(--bg))`}function N({data:e,suffix:x}){const h=Math.max(...e.map(m=>m.value),0)||1;return a("div",{className:"flex w-full flex-col gap-6",children:e.map((m,t)=>o("div",{children:[o("div",{className:"mb-2 flex items-baseline justify-between gap-4",children:[a("span",{className:"font-mono text-[length:var(--size-label,11px)] uppercase tracking-[0.14em] text-fg/60",children:u(m.label)}),o("span",{className:"font-display text-[length:var(--size-body,16px)] font-medium text-fg",children:[g(m.value),x]})]}),a("div",{className:"h-[10px] border border-line bg-bg",children:a("div",{className:"h-full bg-accent",style:{width:`${Math.max(m.value/h*100,m.value===0?0:2)}%`}})})]},t))})}function k({data:e,suffix:x}){const t={l:42,r:42,t:36,b:38},f=640-t.l-t.r,c=300-t.t-t.b,n=Math.max(...e.map(l=>l.value),0)||1,s=e.length>1?f/(e.length-1):0,i=e.map((l,r)=>({x:t.l+(e.length>1?r*s:f/2),y:t.t+c-l.value/n*c})),d=i.map((l,r)=>`${r===0?"M":"L"}${l.x},${l.y}`).join(" "),p=`${d} L${i[i.length-1].x},${t.t+c} L${i[0].x},${t.t+c} Z`;return o("svg",{viewBox:"0 0 640 300",className:"w-full",role:"img","aria-hidden":!0,children:[[.25,.5,.75,1].map(l=>a("line",{x1:t.l,x2:640-t.r,y1:t.t+c*(1-l),y2:t.t+c*(1-l),stroke:"var(--line)",strokeWidth:"1"},l)),a("line",{x1:t.l,x2:640-t.r,y1:t.t+c,y2:t.t+c,stroke:"var(--line)",strokeWidth:"1.5"}),a("path",{d:p,fill:"var(--accent)",opacity:"0.13"}),a("path",{d,fill:"none",stroke:"var(--accent)",strokeWidth:"2.5"}),i.map((l,r)=>o("g",{children:[a("circle",{cx:l.x,cy:l.y,r:"4",fill:"var(--accent)"}),o("text",{x:l.x,y:l.y-12,textAnchor:"middle",className:"font-display",fontSize:"14",fill:"var(--fg)",children:[g(e[r].value),x]}),a("text",{x:l.x,y:288,textAnchor:"middle",className:"font-mono",fontSize:"10",letterSpacing:"0.1em",fill:"var(--fg)",opacity:"0.55",children:e[r].label.toUpperCase()})]},r))]})}function $({data:e,suffix:x}){const h=e.reduce((n,s)=>n+s.value,0)||1,m=80,t=2*Math.PI*m;let f=0;const c=e.map((n,s)=>{const i=n.value/h,d={frac:i,dash:Math.max(i*t-3,0),off:f,ink:b(s)};return f+=i*t,d});return o("div",{className:"flex w-full flex-wrap items-center justify-center gap-10",children:[a("svg",{viewBox:"0 0 200 200",className:"w-[220px] max-w-full -rotate-90",role:"img","aria-hidden":!0,children:c.map((n,s)=>a("circle",{cx:"100",cy:"100",r:m,fill:"none",stroke:n.ink,strokeWidth:"34",strokeDasharray:`${n.dash} ${t-n.dash}`,strokeDashoffset:-n.off},s))}),a("ul",{className:"flex min-w-[200px] flex-1 flex-col gap-3",children:e.map((n,s)=>o("li",{className:"flex items-baseline gap-3",children:[a("span",{"aria-hidden":!0,className:"h-[10px] w-[10px] flex-shrink-0 rotate-45",style:{background:b(s)}}),a("span",{className:"flex-1 font-mono text-[length:var(--size-label,11px)] uppercase tracking-[0.12em] text-fg/60",children:u(n.label)}),a("span",{className:"font-display text-[length:var(--size-body,15px)] font-medium text-fg",children:x?`${g(n.value)}${x}`:`${Math.round(n.value/h*100)}%`})]},s))})]})}function w({eyebrow:e,title:x,body:h,chartStyle:m,items:t,valueSuffix:f,caption:c,editing:n=!1}={}){const s=(f??"").trim()===""?"":f??"",i=(t??[]).map(r=>({label:(r.label??"").trim(),value:parseFloat(r.value??"")})).filter(r=>n?!0:r.label&&Number.isFinite(r.value)).map(r=>({label:r.label||"
|
|
1
|
+
import{jsx as a,jsxs as o}from"react/jsx-runtime";import{renderGold as u,renderHeadline as y}from"./goldPhrases.js";function g(e){return Number.isInteger(e)?String(e):String(Math.round(e*10)/10)}const v=[100,70,46,30,19,12];function b(e){return`color-mix(in srgb, var(--accent) ${v[e%v.length]}%, var(--bg))`}function N({data:e,suffix:x}){const h=Math.max(...e.map(m=>m.value),0)||1;return a("div",{className:"flex w-full flex-col gap-6",children:e.map((m,t)=>o("div",{children:[o("div",{className:"mb-2 flex items-baseline justify-between gap-4",children:[a("span",{className:"font-mono text-[length:var(--size-label,11px)] uppercase tracking-[0.14em] text-fg/60",children:u(m.label)}),o("span",{className:"font-display text-[length:var(--size-body,16px)] font-medium text-fg",children:[g(m.value),x]})]}),a("div",{className:"h-[10px] border border-line bg-bg",children:a("div",{className:"h-full bg-accent",style:{width:`${Math.max(m.value/h*100,m.value===0?0:2)}%`}})})]},t))})}function k({data:e,suffix:x}){const t={l:42,r:42,t:36,b:38},f=640-t.l-t.r,c=300-t.t-t.b,n=Math.max(...e.map(l=>l.value),0)||1,s=e.length>1?f/(e.length-1):0,i=e.map((l,r)=>({x:t.l+(e.length>1?r*s:f/2),y:t.t+c-l.value/n*c})),d=i.map((l,r)=>`${r===0?"M":"L"}${l.x},${l.y}`).join(" "),p=`${d} L${i[i.length-1].x},${t.t+c} L${i[0].x},${t.t+c} Z`;return o("svg",{viewBox:"0 0 640 300",className:"w-full",role:"img","aria-hidden":!0,children:[[.25,.5,.75,1].map(l=>a("line",{x1:t.l,x2:640-t.r,y1:t.t+c*(1-l),y2:t.t+c*(1-l),stroke:"var(--line)",strokeWidth:"1"},l)),a("line",{x1:t.l,x2:640-t.r,y1:t.t+c,y2:t.t+c,stroke:"var(--line)",strokeWidth:"1.5"}),a("path",{d:p,fill:"var(--accent)",opacity:"0.13"}),a("path",{d,fill:"none",stroke:"var(--accent)",strokeWidth:"2.5"}),i.map((l,r)=>o("g",{children:[a("circle",{cx:l.x,cy:l.y,r:"4",fill:"var(--accent)"}),o("text",{x:l.x,y:l.y-12,textAnchor:"middle",className:"font-display",fontSize:"14",fill:"var(--fg)",children:[g(e[r].value),x]}),a("text",{x:l.x,y:288,textAnchor:"middle",className:"font-mono",fontSize:"10",letterSpacing:"0.1em",fill:"var(--fg)",opacity:"0.55",children:e[r].label.toUpperCase()})]},r))]})}function $({data:e,suffix:x}){const h=e.reduce((n,s)=>n+s.value,0)||1,m=80,t=2*Math.PI*m;let f=0;const c=e.map((n,s)=>{const i=n.value/h,d={frac:i,dash:Math.max(i*t-3,0),off:f,ink:b(s)};return f+=i*t,d});return o("div",{className:"flex w-full flex-wrap items-center justify-center gap-10",children:[a("svg",{viewBox:"0 0 200 200",className:"w-[220px] max-w-full -rotate-90",role:"img","aria-hidden":!0,children:c.map((n,s)=>a("circle",{cx:"100",cy:"100",r:m,fill:"none",stroke:n.ink,strokeWidth:"34",strokeDasharray:`${n.dash} ${t-n.dash}`,strokeDashoffset:-n.off},s))}),a("ul",{className:"flex min-w-[200px] flex-1 flex-col gap-3",children:e.map((n,s)=>o("li",{className:"flex items-baseline gap-3",children:[a("span",{"aria-hidden":!0,className:"h-[10px] w-[10px] flex-shrink-0 rotate-45",style:{background:b(s)}}),a("span",{className:"flex-1 font-mono text-[length:var(--size-label,11px)] uppercase tracking-[0.12em] text-fg/60",children:u(n.label)}),a("span",{className:"font-display text-[length:var(--size-body,15px)] font-medium text-fg",children:x?`${g(n.value)}${x}`:`${Math.round(n.value/h*100)}%`})]},s))})]})}function w({eyebrow:e,title:x,body:h,chartStyle:m,items:t,valueSuffix:f,caption:c,editing:n=!1}={}){const s=(f??"").trim()===""?"":f??"",i=(t??[]).map(r=>({label:(r.label??"").trim(),value:parseFloat(r.value??"")})).filter(r=>n?!0:r.label&&Number.isFinite(r.value)).map(r=>({label:r.label||"—",value:Number.isFinite(r.value)?r.value:0})),d=!!(e??"").trim()||!!(x??"").trim();if(!n&&!d&&i.length===0)return null;const p=m??"bars",l=i.length===0?null:p==="line"&&i.length>1?a(k,{data:i,suffix:s}):p==="donut"?a($,{data:i,suffix:s}):a(N,{data:i,suffix:s});return a("section",{className:"relative z-[2] border-y border-line bg-surface",children:o("div",{className:"mx-auto grid max-w-[var(--sf-site-width,1600px)] items-center gap-14 px-[var(--sf-site-gutter,40px)] py-[76px] min-[960px]:[grid-template-columns:minmax(0,5fr)_minmax(0,7fr)] max-[960px]:px-[min(24px,var(--sf-site-gutter,40px))]",children:[o("div",{children:[(e??"").trim()&&a("span",{className:"inline-block bg-accent px-3.5 py-1.5 font-mono text-[length:var(--size-label,12px)] font-semibold uppercase tracking-[0.16em] text-bg",children:u(e??"")}),(x??"").trim()&&a("h2",{className:"mt-5 font-heading2 text-[length:min(var(--size-headingMedium,44px),var(--sf-heading-max,9999px))] font-medium uppercase leading-[1.04] tracking-[-0.02em] text-fg max-[800px]:text-[length:min(var(--size-headingMedium,32px),var(--sf-heading-max,9999px))]",children:y(x??"",!1)}),(h??"").trim()&&a("p",{className:"mt-5 max-w-[46ch] text-[length:var(--size-body,15px)] leading-relaxed text-fg/65",children:h})]}),o("div",{children:[l,(c??"").trim()&&a("p",{className:"mt-4 font-mono text-[length:var(--size-label,10px)] uppercase tracking-[0.14em] text-fg/40",children:c})]})]})})}export{w as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";import{jsx as e,Fragment as b,jsxs as d}from"react/jsx-runtime";import{useEffect as m,useId as f,useState as g}from"react";import{usePreviewChat as p}from"./PreviewChatContext.js";import{SettingsField as u,SettingsSwitch as w}from"efficient-easel/panel";import{EyeIcon as C,TypeIcon as E}from"efficient-easel/icons";import{GroupLabel as L}from"../lib/puck/controls.js";const y="Chat with us",T="We usually reply within a few minutes",v="Hi! Ask us anything
|
|
1
|
+
"use client";import{jsx as e,Fragment as b,jsxs as d}from"react/jsx-runtime";import{useEffect as m,useId as f,useState as g}from"react";import{usePreviewChat as p}from"./PreviewChatContext.js";import{SettingsField as u,SettingsSwitch as w}from"efficient-easel/panel";import{EyeIcon as C,TypeIcon as E}from"efficient-easel/icons";import{GroupLabel as L}from"../lib/puck/controls.js";const y="Chat with us",T="We usually reply within a few minutes",v="Hi! Ask us anything — about a wheel, an order, or fitment. Leave your details and we’ll reply.";function s({label:t,value:a,placeholder:i,onCommit:l,multiline:c=!1}){const[o,r]=g(a);m(()=>r(a),[a]);const h=()=>{o!==a&&l(o)};return e(u,{label:t,icon:e(E,{}),children:c?e("textarea",{value:o,placeholder:i,rows:3,onChange:n=>r(n.target.value),onBlur:h,"aria-label":t}):e("input",{type:"text",value:o,placeholder:i,onChange:n=>r(n.target.value),onBlur:h,onKeyDown:n=>{n.key==="Enter"&&n.currentTarget.blur()},"aria-label":t,autoComplete:"off"})})}function x(){const{chat:t,setChat:a}=p(),i=f();return d(b,{children:[e(u,{label:"Show the chat bubble",labelId:i,icon:e(C,{}),action:e(w,{checked:t.enabled,onChange:l=>a({enabled:l}),ariaLabelledBy:i}),hint:t.enabled?"The floating chat bubble shows in the corner of every page.":"The chat bubble is hidden across the whole site."}),e(L,{label:"Wording"}),e(s,{label:"Title",value:t.title,placeholder:y,onCommit:l=>a({title:l})}),e(s,{label:"Subtitle",value:t.subtitle,placeholder:T,onCommit:l=>a({subtitle:l})}),e(s,{label:"Greeting message",value:t.greeting,placeholder:v,onCommit:l=>a({greeting:l}),multiline:!0}),e("p",{className:"es-field-hint sf-hint-keep",children:"Leave a field blank to use the built-in wording."})]})}export{x as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";import{jsx as
|
|
1
|
+
"use client";import{jsxs as r,jsx as o,Fragment as a}from"react/jsx-runtime";import{Button as t,Dialog as i}from"efficient-shell/ui";function l(e){return e===1?"1 color theme":`${e} color themes`}function m({count:e,onCancel:s,onConfirm:n}){return r(i,{open:!0,onClose:s,role:"alertdialog",size:"sm",title:"Clear this site’s colors?",footer:r(a,{children:[o(t,{variant:"secondary",onClick:s,children:"Cancel"}),o(t,{variant:"danger",onClick:n,children:"Clear colors"})]}),children:[r("p",{children:["This site has ",l(e)," of its own. Clearing takes them away and puts back the four the shop supplies."]}),o("p",{className:"mt-2 font-medium",children:"This cannot be undone."})]})}export{m as ClearColoursDialog};
|
|
@@ -32,12 +32,12 @@
|
|
|
32
32
|
.contact-loc[data-active="true"] > div:first-child * { color: var(--bg) !important; }
|
|
33
33
|
`,Ne=`
|
|
34
34
|
.loc-part-pick { cursor: pointer; position: relative; }
|
|
35
|
-
/*
|
|
35
|
+
/* ⚠️ AN OVERLAY, NOT AN outline, AND THAT IS THE WHOLE FIX.
|
|
36
36
|
An inset outline is painted in the element's own box decoration and a
|
|
37
37
|
full-bleed child sitting above it hides it completely. A city TILE stacks
|
|
38
38
|
three: the picture (or its placeholder) at absolute inset-0, the gradient
|
|
39
39
|
scrim at absolute inset-0, and the caption at z-[1]. A MAP stacks its
|
|
40
|
-
canvas at absolute inset-0 and its address card at z-10
|
|
40
|
+
canvas at absolute inset-0 and its address card at z-10 — but its
|
|
41
41
|
background is painted on the element itself, so its outline survived. That is
|
|
42
42
|
why the merchant saw the ring on the map and not on the picture: not a dead
|
|
43
43
|
control, a control that could not say it was live. Owner, 2026-09-09, having
|
|
@@ -55,10 +55,10 @@
|
|
|
55
55
|
transition: box-shadow 120ms ease-out;
|
|
56
56
|
}
|
|
57
57
|
.loc-part-pick:hover::after {
|
|
58
|
-
/*
|
|
58
|
+
/* ⚠️ 8-DIGIT HEX, NOT color-mix(). Measured in a real editor: the same accent
|
|
59
59
|
written as color-mix(in srgb, X 45%, transparent) resolved to FULLY
|
|
60
60
|
TRANSPARENT inside a box-shadow, so the hover ring computed correctly and
|
|
61
|
-
painted nothing
|
|
61
|
+
painted nothing — the exact failure this whole change is fixing, reproduced
|
|
62
62
|
one layer down. The [data-selected] rule below, which names a plain colour,
|
|
63
63
|
painted blue in the same breath. 73 is 45% of 255. */
|
|
64
64
|
box-shadow: inset 0 0 0 2px ${J.accent}73;
|
|
@@ -70,4 +70,4 @@
|
|
|
70
70
|
.loc-part-pick::after { transition: none; }
|
|
71
71
|
}
|
|
72
72
|
`;function Z({value:p}){if(typeof p=="string"){const a=p.split(`
|
|
73
|
-
`);return t(G,{children:a.map((b,l)=>i("span",{children:[b,l<a.length-1?t("br",{}):null]},l))})}return t(G,{children:p})}function Se(){return t("div",{className:"absolute inset-0 flex items-center justify-center",style:{background:"repeating-linear-gradient(45deg, rgba(201,164,97,.05) 0 1px, transparent 1px 14px), linear-gradient(135deg, var(--surface-2), var(--surface))"},children:i("svg",{width:"34",height:"34",viewBox:"0 0 24 24",fill:"none",stroke:"var(--fg-dim)",strokeWidth:1.4,"aria-hidden":"true",style:{opacity:.4},children:[t("rect",{x:"3",y:"4",width:"18",height:"16",rx:"1.5"}),t("circle",{cx:"8.5",cy:"9.5",r:"1.6"}),t("path",{d:"M21 16l-5-5-4 4-2-2-7 7"})]})})}function Ae({sectionNumber:p=z.sectionNumber,heading:a=z.heading,tagline:b=z.tagline,galleryKicker:l=z.galleryKicker,galleryHint:f=z.galleryHint,locations:k=ie,apiKey:C="",mapId:I="",mapTheme:n="auto",imageShape:x,editing:m,nodeId:s,...v}){const[R,L]=T(!1);j(()=>{const e=()=>L(document.documentElement.getAttribute("data-theme")==="light");e();const r=new MutationObserver(e);return r.observe(document.documentElement,{attributes:!0,attributeFilter:["data-theme"]}),()=>r.disconnect()},[]);const[$,M]=T(null),N=e=>`loc-${e}`,B=e=>{M(e),typeof document<"u"&&document.getElementById(e)?.scrollIntoView({behavior:K(),block:"start"}),!m&&typeof window<"u"&&window.history?.replaceState&&window.history.replaceState(null,"",`#${e}`)};j(()=>{if(typeof window>"u")return;const e=window.location.hash.replace(/^#/,"");!e||!document.getElementById(e)||(M(e),requestAnimationFrame(()=>{document.getElementById(e)?.scrollIntoView({behavior:K(),block:"start"})}))},[]);const D=le(se(x)),{select:d,selectedLocationPartId:u}=ye(),F=(e,r)=>s?Y(s,e,r):"",O=(e,r)=>!!(m&&s&&u===F(e,r)),A=(e,r)=>m&&s?`${e}:${r}`:void 0,E=U(null);j(()=>{if(!m||!s)return;const e=E.current;if(!e)return;const g=Array.from(e.querySelectorAll("[data-loc-pick]")).map(o=>{const h=te(o),w=y=>{const c=o.getAttribute("data-loc-pick")??"",[_,H]=c.split(":");H!=="image"&&H!=="map"||(y.stopPropagation(),y.preventDefault(),d(Y(s,Number(_),H)))};return o.addEventListener("click",w,{capture:!0}),()=>{h?.(),o.removeEventListener("click",w,{capture:!0})}});return()=>g.forEach(o=>o())},[m,s,d,k.length]);const S=ve(k,e=>String(e.group??""),e=>String(e.groupName??""));return i("section",{id:"studios",ref:E,className:Q(v)?"scroll-mt-24 border-b border-line px-[var(--sf-site-gutter,40px)] py-[100px] max-[1100px]:px-[min(24px,var(--sf-site-gutter,40px))] max-[1100px]:py-[60px]":"mx-auto max-w-[var(--sf-site-width,1600px)] scroll-mt-24 border-b border-line px-[var(--sf-site-gutter,40px)] py-[100px] max-[1100px]:px-[min(24px,var(--sf-site-gutter,40px))] max-[1100px]:py-[60px]",style:R?void 0:{background:"var(--section-bg)"},children:[t("style",{dangerouslySetInnerHTML:{__html:we}}),m&&s&&t("style",{dangerouslySetInnerHTML:{__html:Ne}}),(p||a||b)&&t(ne,{num:p,title:a?re(a,!0):void 0,desc:b?q(b):void 0,spaceBelow:"mb-10"}),k.length>0&&i("div",{className:"mb-12",children:[(l||f)&&i("div",{className:"mb-5 flex items-baseline justify-between gap-6 border-b border-line pb-4",children:[l&&t(oe,{text:l,size:12}),f&&t("span",{className:"font-mono text-[length:var(--size-label,11px)] uppercase tracking-[0.22em] text-fg-dim",children:q(f)})]}),t("div",{className:"flex flex-col gap-6",children:S.map((e,r)=>{const g=e.items.length===1;return i("div",{children:[e.key&&t("div",{className:"mb-2.5 font-mono text-[length:var(--size-label,11px)] uppercase tracking-[0.3em] text-accent",children:e.key}),t("div",{className:["grid gap-[2px] border border-line bg-line",X(e.items.length),e.items.length>1?"max-[700px]:grid-cols-2":""].join(" "),children:e.items.map(({item:o,index:h})=>{const w=String(o?.name??""),y=String(o?.photo??""),c=N(h);return i("a",{href:`#${c}`,"aria-label":`Jump to ${w||"location"} map`,onClick:_=>{_.preventDefault(),B(c)},"data-loc-pick":A(h,"image"),className:["group relative block",D,"overflow-hidden bg-bg outline-none focus-visible:ring-2 focus-visible:ring-accent",g?"max-h-[440px]":"",...A(h,"image")?["loc-part-pick"]:[]].join(" "),"data-selected":O(h,"image")?"":void 0,children:[y?t(ee,{src:y,alt:ae(w||"Location"),fill:!0,sizes:g?"100vw":"(max-width: 700px) 50vw, 33vw",className:"object-cover grayscale transition-[filter] duration-500 group-hover:grayscale-0"}):t(Se,{}),t("div",{className:"pointer-events-none absolute inset-0",style:{background:"linear-gradient(180deg, transparent 50%, rgba(10,10,10,0.85) 100%)"}}),t("figcaption",{className:"absolute inset-x-0 bottom-0 z-[1] flex items-center justify-start gap-2 px-3 py-3 font-mono text-[length:var(--size-label,11px)] uppercase tracking-[0.22em] text-overlay-fg/85",children:t("span",{children:w})})]},h)})})]},e.key?`g:${e.key}`:`ungrouped:${r}`)})})]}),S.map((e,r)=>i("div",{className:r===0?"":"mt-10",children:[e.key&&t(ke,{groupKey:e.key,name:e.name,count:e.items.length}),t("div",{className:["grid gap-[2px] border border-line bg-line",X(e.items.length),e.items.length>1?"max-[1100px]:grid-cols-1":""].join(" "),children:e.items.map(({item:g,index:o})=>t(Ce,{id:N(o),card:g,active:$===N(o),apiKey:C,mapId:I,mapTheme:n,mapPick:A(o,"map"),mapSelected:O(o,"map")},o))})]},e.key?`g:${e.key}`:`ungrouped:${r}`)),k.length>0&&i("p",{className:"mt-8 text-right font-mono text-[10px] uppercase tracking-[0.25em] text-fg-dim/50",children:["Location coordinates \xA9"," ",t("a",{href:"https://www.openstreetmap.org/copyright",target:"_blank",rel:"noopener noreferrer",className:"hover:text-accent",children:"OpenStreetMap contributors"})]})]})}function Ce({id:p,card:a,active:b,apiKey:l,mapId:f,mapTheme:k,mapPick:C,mapSelected:I}){const n=a.phone?`tel:${String(a.phone).replace(/[^+\d]/g,"")}`:void 0,x=ce(a.region),m=String(a.state??"").trim()||x.state,s=String(a.country??"").trim()||x.country,v=[m,s].filter(Boolean).join(" \xB7 ");return i("article",{id:p,"data-active":b?"true":void 0,className:"contact-loc grid min-h-[840px] scroll-mt-[120px] grid-rows-[auto_1fr] bg-bg max-[1100px]:min-h-0",children:[i("div",{className:"flex min-h-[280px] flex-col gap-3 border-b border-line px-7 py-7",children:[i("div",{className:"flex items-start justify-between gap-3.5",children:[i("div",{children:[a.name&&t("div",{className:"font-heading3 text-[length:var(--size-headingSmall,30px)] font-medium uppercase leading-none tracking-[-0.02em]",children:a.name}),v&&t("div",{className:"mt-1.5 font-mono text-[length:var(--size-label,12px)] uppercase tracking-[0.24em] text-accent",children:v})]}),a.timezone&&t("span",{className:"whitespace-nowrap border border-line px-2.5 py-1.5 font-mono text-[length:var(--size-label,12px)] uppercase tracking-[0.22em] text-fg-dim",children:a.timezone})]}),a.address!=null&&a.address!==""&&t("div",{className:"mt-1.5 font-display text-[length:var(--size-body,14px)] leading-[1.5] text-fg-dim",children:t(Z,{value:a.address})}),a.phone&&t("div",{children:t("a",{href:n,className:"font-mono text-[length:var(--size-label,13px)] uppercase tracking-[0.18em] text-fg hover:text-accent",children:a.phone})}),a.hours!=null&&a.hours!==""&&t("div",{className:"font-mono text-[length:var(--size-label,12px)] uppercase leading-[1.7] tracking-[0.18em] text-fg-dim",children:t(Z,{value:a.hours})})]}),t(Le,{name:String(a.name??""),state:m,country:s,lat:Number(a.lat),lng:Number(a.lng),mapsUrl:String(a.mapsUrl??""),apiKey:l,mapId:f,mapTheme:k,pick:C,selected:I})]})}const Ie=13;function Le({name:p,state:a,country:b,lat:l,lng:f,mapsUrl:k,apiKey:C,mapId:I,mapTheme:n="auto",pick:x,selected:m}){const s=he(C,xe()),v=fe(I,be()),R=ue(l,f),L=!!s&&R,$=a,M=U(null),N=U(null),[B,D]=T(!1),d=n!=="auto",u=pe(n),[F,O]=T(n==="auto"?de.dark.background:P(n));j(()=>{O(P(n))},[n]),j(()=>{if(!L)return;const S=M.current;if(!S)return;let e=null,r=null,g=!1,o=null;const h=c=>({path:c.SymbolPath.CIRCLE,scale:7,fillColor:W(n),fillOpacity:1,strokeColor:W(n),strokeOpacity:.25,strokeWeight:10}),w=async()=>{try{const c=await ge(s);if(g||!N.current)return;e=new c.Map(N.current,{center:{lat:l,lng:f},zoom:Ie,disableDefaultUI:!0,gestureHandling:"cooperative",keyboardShortcuts:!1,clickableIcons:!1,backgroundColor:P(n),...v?{mapId:v}:{styles:V(n)}}),r=new c.Marker({map:e,position:{lat:l,lng:f},icon:h(c)}),e.addListener("tilesloaded",()=>{g||D(!0)}),n==="auto"&&!v&&(o=me(()=>{g||!e||(e.setOptions({styles:V(n),backgroundColor:P(n)}),r?.setIcon(h(c)),O(P(n)))}))}catch(c){console.error("[StudioMap] Maps SDK failed:",c)}},y=new IntersectionObserver(c=>{for(const _ of c)if(_.isIntersecting){y.disconnect(),w();break}},{rootMargin:"200px"});return y.observe(S),()=>{g=!0,y.disconnect(),o?.()}},[L,s,l,f,v,n]);const A=k||(p?`https://www.google.com/maps/search/?api=1&query=${encodeURIComponent([p,a,b].filter(Boolean).join(" "))}`:""),E=i("div",{className:["absolute left-5 top-5 z-10 flex max-w-[64%] flex-col gap-1.5 border p-3.5",d?"":"border-line bg-bg shadow-[0_8px_24px_rgba(0,0,0,.4)]"].join(" "),style:d?{backgroundColor:u.info.bg,borderColor:`color-mix(in oklab, ${u.info.fgDim} 35%, transparent)`,boxShadow:u.info.shadow}:void 0,children:[i("span",{className:"font-display text-[length:var(--size-body,14px)] font-medium tracking-[-0.01em]",style:d?{color:u.info.fg}:void 0,children:[p||"Location",$?`, ${$}`:""]}),A&&t("a",{href:A,target:"_blank",rel:"noopener noreferrer",className:["font-mono text-[length:var(--size-label,12px)] uppercase tracking-[0.24em] transition-colors",d?"":"text-accent hover:text-fg"].join(" "),style:d?{color:u.info.accent}:void 0,children:"Get Directions \u2197"})]});if(!L){const S=d?`linear-gradient(135deg, ${u.background}, ${u.info.bg})`:"linear-gradient(135deg, var(--surface-2), var(--surface))";return i("div",{"data-loc-pick":x,className:["relative overflow-hidden max-[1100px]:aspect-square",d?"":"bg-bg",...x?["loc-part-pick"]:[]].join(" "),"data-selected":m?"":void 0,style:{...d?{backgroundColor:u.background}:null,backgroundImage:`repeating-linear-gradient(45deg, rgba(201,164,97,.04) 0 1px, transparent 1px 14px), repeating-linear-gradient(-45deg, rgba(201,164,97,.04) 0 1px, transparent 1px 14px), ${S}`},children:[E,t("div",{className:["absolute inset-0 flex items-center justify-center px-6 text-center font-mono text-[length:var(--size-label,12px)] uppercase tracking-[0.3em]",d?"":"text-fg-dim/40"].join(" "),style:d?{color:u.info.fgDim,opacity:.4}:void 0,children:s?"Add latitude & longitude":"Add a Google Maps API key"})]})}return i("div",{ref:M,"data-loc-pick":x,className:["studio-map relative overflow-hidden max-[1100px]:aspect-square",...x?["loc-part-pick"]:[]].join(" "),"data-selected":m?"":void 0,style:{backgroundColor:F},children:[t("div",{ref:N,className:"gmap-canvas absolute inset-0"}),t("div",{className:["pointer-events-none absolute inset-0 flex items-center justify-center font-mono text-[length:var(--size-label,12px)] uppercase tracking-[0.3em] text-fg-dim transition-opacity duration-500",B?"opacity-0":"opacity-100"].join(" "),children:"Loading map\u2026"}),E]})}export{Ae as default};
|
|
73
|
+
`);return t(G,{children:a.map((b,l)=>i("span",{children:[b,l<a.length-1?t("br",{}):null]},l))})}return t(G,{children:p})}function Se(){return t("div",{className:"absolute inset-0 flex items-center justify-center",style:{background:"repeating-linear-gradient(45deg, rgba(201,164,97,.05) 0 1px, transparent 1px 14px), linear-gradient(135deg, var(--surface-2), var(--surface))"},children:i("svg",{width:"34",height:"34",viewBox:"0 0 24 24",fill:"none",stroke:"var(--fg-dim)",strokeWidth:1.4,"aria-hidden":"true",style:{opacity:.4},children:[t("rect",{x:"3",y:"4",width:"18",height:"16",rx:"1.5"}),t("circle",{cx:"8.5",cy:"9.5",r:"1.6"}),t("path",{d:"M21 16l-5-5-4 4-2-2-7 7"})]})})}function Ae({sectionNumber:p=z.sectionNumber,heading:a=z.heading,tagline:b=z.tagline,galleryKicker:l=z.galleryKicker,galleryHint:f=z.galleryHint,locations:k=ie,apiKey:C="",mapId:I="",mapTheme:n="auto",imageShape:x,editing:m,nodeId:s,...v}){const[R,L]=T(!1);j(()=>{const e=()=>L(document.documentElement.getAttribute("data-theme")==="light");e();const r=new MutationObserver(e);return r.observe(document.documentElement,{attributes:!0,attributeFilter:["data-theme"]}),()=>r.disconnect()},[]);const[$,M]=T(null),N=e=>`loc-${e}`,B=e=>{M(e),typeof document<"u"&&document.getElementById(e)?.scrollIntoView({behavior:K(),block:"start"}),!m&&typeof window<"u"&&window.history?.replaceState&&window.history.replaceState(null,"",`#${e}`)};j(()=>{if(typeof window>"u")return;const e=window.location.hash.replace(/^#/,"");!e||!document.getElementById(e)||(M(e),requestAnimationFrame(()=>{document.getElementById(e)?.scrollIntoView({behavior:K(),block:"start"})}))},[]);const D=le(se(x)),{select:d,selectedLocationPartId:u}=ye(),F=(e,r)=>s?Y(s,e,r):"",O=(e,r)=>!!(m&&s&&u===F(e,r)),A=(e,r)=>m&&s?`${e}:${r}`:void 0,E=U(null);j(()=>{if(!m||!s)return;const e=E.current;if(!e)return;const g=Array.from(e.querySelectorAll("[data-loc-pick]")).map(o=>{const h=te(o),w=y=>{const c=o.getAttribute("data-loc-pick")??"",[_,H]=c.split(":");H!=="image"&&H!=="map"||(y.stopPropagation(),y.preventDefault(),d(Y(s,Number(_),H)))};return o.addEventListener("click",w,{capture:!0}),()=>{h?.(),o.removeEventListener("click",w,{capture:!0})}});return()=>g.forEach(o=>o())},[m,s,d,k.length]);const S=ve(k,e=>String(e.group??""),e=>String(e.groupName??""));return i("section",{id:"studios",ref:E,className:Q(v)?"scroll-mt-24 border-b border-line px-[var(--sf-site-gutter,40px)] py-[100px] max-[1100px]:px-[min(24px,var(--sf-site-gutter,40px))] max-[1100px]:py-[60px]":"mx-auto max-w-[var(--sf-site-width,1600px)] scroll-mt-24 border-b border-line px-[var(--sf-site-gutter,40px)] py-[100px] max-[1100px]:px-[min(24px,var(--sf-site-gutter,40px))] max-[1100px]:py-[60px]",style:R?void 0:{background:"var(--section-bg)"},children:[t("style",{dangerouslySetInnerHTML:{__html:we}}),m&&s&&t("style",{dangerouslySetInnerHTML:{__html:Ne}}),(p||a||b)&&t(ne,{num:p,title:a?re(a,!0):void 0,desc:b?q(b):void 0,spaceBelow:"mb-10"}),k.length>0&&i("div",{className:"mb-12",children:[(l||f)&&i("div",{className:"mb-5 flex items-baseline justify-between gap-6 border-b border-line pb-4",children:[l&&t(oe,{text:l,size:12}),f&&t("span",{className:"font-mono text-[length:var(--size-label,11px)] uppercase tracking-[0.22em] text-fg-dim",children:q(f)})]}),t("div",{className:"flex flex-col gap-6",children:S.map((e,r)=>{const g=e.items.length===1;return i("div",{children:[e.key&&t("div",{className:"mb-2.5 font-mono text-[length:var(--size-label,11px)] uppercase tracking-[0.3em] text-accent",children:e.key}),t("div",{className:["grid gap-[2px] border border-line bg-line",X(e.items.length),e.items.length>1?"max-[700px]:grid-cols-2":""].join(" "),children:e.items.map(({item:o,index:h})=>{const w=String(o?.name??""),y=String(o?.photo??""),c=N(h);return i("a",{href:`#${c}`,"aria-label":`Jump to ${w||"location"} map`,onClick:_=>{_.preventDefault(),B(c)},"data-loc-pick":A(h,"image"),className:["group relative block",D,"overflow-hidden bg-bg outline-none focus-visible:ring-2 focus-visible:ring-accent",g?"max-h-[440px]":"",...A(h,"image")?["loc-part-pick"]:[]].join(" "),"data-selected":O(h,"image")?"":void 0,children:[y?t(ee,{src:y,alt:ae(w||"Location"),fill:!0,sizes:g?"100vw":"(max-width: 700px) 50vw, 33vw",className:"object-cover grayscale transition-[filter] duration-500 group-hover:grayscale-0"}):t(Se,{}),t("div",{className:"pointer-events-none absolute inset-0",style:{background:"linear-gradient(180deg, transparent 50%, rgba(10,10,10,0.85) 100%)"}}),t("figcaption",{className:"absolute inset-x-0 bottom-0 z-[1] flex items-center justify-start gap-2 px-3 py-3 font-mono text-[length:var(--size-label,11px)] uppercase tracking-[0.22em] text-overlay-fg/85",children:t("span",{children:w})})]},h)})})]},e.key?`g:${e.key}`:`ungrouped:${r}`)})})]}),S.map((e,r)=>i("div",{className:r===0?"":"mt-10",children:[e.key&&t(ke,{groupKey:e.key,name:e.name,count:e.items.length}),t("div",{className:["grid gap-[2px] border border-line bg-line",X(e.items.length),e.items.length>1?"max-[1100px]:grid-cols-1":""].join(" "),children:e.items.map(({item:g,index:o})=>t(Ce,{id:N(o),card:g,active:$===N(o),apiKey:C,mapId:I,mapTheme:n,mapPick:A(o,"map"),mapSelected:O(o,"map")},o))})]},e.key?`g:${e.key}`:`ungrouped:${r}`)),k.length>0&&i("p",{className:"mt-8 text-right font-mono text-[10px] uppercase tracking-[0.25em] text-fg-dim/50",children:["Location coordinates ©"," ",t("a",{href:"https://www.openstreetmap.org/copyright",target:"_blank",rel:"noopener noreferrer",className:"hover:text-accent",children:"OpenStreetMap contributors"})]})]})}function Ce({id:p,card:a,active:b,apiKey:l,mapId:f,mapTheme:k,mapPick:C,mapSelected:I}){const n=a.phone?`tel:${String(a.phone).replace(/[^+\d]/g,"")}`:void 0,x=ce(a.region),m=String(a.state??"").trim()||x.state,s=String(a.country??"").trim()||x.country,v=[m,s].filter(Boolean).join(" · ");return i("article",{id:p,"data-active":b?"true":void 0,className:"contact-loc grid min-h-[840px] scroll-mt-[120px] grid-rows-[auto_1fr] bg-bg max-[1100px]:min-h-0",children:[i("div",{className:"flex min-h-[280px] flex-col gap-3 border-b border-line px-7 py-7",children:[i("div",{className:"flex items-start justify-between gap-3.5",children:[i("div",{children:[a.name&&t("div",{className:"font-heading3 text-[length:var(--size-headingSmall,30px)] font-medium uppercase leading-none tracking-[-0.02em]",children:a.name}),v&&t("div",{className:"mt-1.5 font-mono text-[length:var(--size-label,12px)] uppercase tracking-[0.24em] text-accent",children:v})]}),a.timezone&&t("span",{className:"whitespace-nowrap border border-line px-2.5 py-1.5 font-mono text-[length:var(--size-label,12px)] uppercase tracking-[0.22em] text-fg-dim",children:a.timezone})]}),a.address!=null&&a.address!==""&&t("div",{className:"mt-1.5 font-display text-[length:var(--size-body,14px)] leading-[1.5] text-fg-dim",children:t(Z,{value:a.address})}),a.phone&&t("div",{children:t("a",{href:n,className:"font-mono text-[length:var(--size-label,13px)] uppercase tracking-[0.18em] text-fg hover:text-accent",children:a.phone})}),a.hours!=null&&a.hours!==""&&t("div",{className:"font-mono text-[length:var(--size-label,12px)] uppercase leading-[1.7] tracking-[0.18em] text-fg-dim",children:t(Z,{value:a.hours})})]}),t(Le,{name:String(a.name??""),state:m,country:s,lat:Number(a.lat),lng:Number(a.lng),mapsUrl:String(a.mapsUrl??""),apiKey:l,mapId:f,mapTheme:k,pick:C,selected:I})]})}const Ie=13;function Le({name:p,state:a,country:b,lat:l,lng:f,mapsUrl:k,apiKey:C,mapId:I,mapTheme:n="auto",pick:x,selected:m}){const s=he(C,xe()),v=fe(I,be()),R=ue(l,f),L=!!s&&R,$=a,M=U(null),N=U(null),[B,D]=T(!1),d=n!=="auto",u=pe(n),[F,O]=T(n==="auto"?de.dark.background:P(n));j(()=>{O(P(n))},[n]),j(()=>{if(!L)return;const S=M.current;if(!S)return;let e=null,r=null,g=!1,o=null;const h=c=>({path:c.SymbolPath.CIRCLE,scale:7,fillColor:W(n),fillOpacity:1,strokeColor:W(n),strokeOpacity:.25,strokeWeight:10}),w=async()=>{try{const c=await ge(s);if(g||!N.current)return;e=new c.Map(N.current,{center:{lat:l,lng:f},zoom:Ie,disableDefaultUI:!0,gestureHandling:"cooperative",keyboardShortcuts:!1,clickableIcons:!1,backgroundColor:P(n),...v?{mapId:v}:{styles:V(n)}}),r=new c.Marker({map:e,position:{lat:l,lng:f},icon:h(c)}),e.addListener("tilesloaded",()=>{g||D(!0)}),n==="auto"&&!v&&(o=me(()=>{g||!e||(e.setOptions({styles:V(n),backgroundColor:P(n)}),r?.setIcon(h(c)),O(P(n)))}))}catch(c){console.error("[StudioMap] Maps SDK failed:",c)}},y=new IntersectionObserver(c=>{for(const _ of c)if(_.isIntersecting){y.disconnect(),w();break}},{rootMargin:"200px"});return y.observe(S),()=>{g=!0,y.disconnect(),o?.()}},[L,s,l,f,v,n]);const A=k||(p?`https://www.google.com/maps/search/?api=1&query=${encodeURIComponent([p,a,b].filter(Boolean).join(" "))}`:""),E=i("div",{className:["absolute left-5 top-5 z-10 flex max-w-[64%] flex-col gap-1.5 border p-3.5",d?"":"border-line bg-bg shadow-[0_8px_24px_rgba(0,0,0,.4)]"].join(" "),style:d?{backgroundColor:u.info.bg,borderColor:`color-mix(in oklab, ${u.info.fgDim} 35%, transparent)`,boxShadow:u.info.shadow}:void 0,children:[i("span",{className:"font-display text-[length:var(--size-body,14px)] font-medium tracking-[-0.01em]",style:d?{color:u.info.fg}:void 0,children:[p||"Location",$?`, ${$}`:""]}),A&&t("a",{href:A,target:"_blank",rel:"noopener noreferrer",className:["font-mono text-[length:var(--size-label,12px)] uppercase tracking-[0.24em] transition-colors",d?"":"text-accent hover:text-fg"].join(" "),style:d?{color:u.info.accent}:void 0,children:"Get Directions ↗"})]});if(!L){const S=d?`linear-gradient(135deg, ${u.background}, ${u.info.bg})`:"linear-gradient(135deg, var(--surface-2), var(--surface))";return i("div",{"data-loc-pick":x,className:["relative overflow-hidden max-[1100px]:aspect-square",d?"":"bg-bg",...x?["loc-part-pick"]:[]].join(" "),"data-selected":m?"":void 0,style:{...d?{backgroundColor:u.background}:null,backgroundImage:`repeating-linear-gradient(45deg, rgba(201,164,97,.04) 0 1px, transparent 1px 14px), repeating-linear-gradient(-45deg, rgba(201,164,97,.04) 0 1px, transparent 1px 14px), ${S}`},children:[E,t("div",{className:["absolute inset-0 flex items-center justify-center px-6 text-center font-mono text-[length:var(--size-label,12px)] uppercase tracking-[0.3em]",d?"":"text-fg-dim/40"].join(" "),style:d?{color:u.info.fgDim,opacity:.4}:void 0,children:s?"Add latitude & longitude":"Add a Google Maps API key"})]})}return i("div",{ref:M,"data-loc-pick":x,className:["studio-map relative overflow-hidden max-[1100px]:aspect-square",...x?["loc-part-pick"]:[]].join(" "),"data-selected":m?"":void 0,style:{backgroundColor:F},children:[t("div",{ref:N,className:"gmap-canvas absolute inset-0"}),t("div",{className:["pointer-events-none absolute inset-0 flex items-center justify-center font-mono text-[length:var(--size-label,12px)] uppercase tracking-[0.3em] text-fg-dim transition-opacity duration-500",B?"opacity-0":"opacity-100"].join(" "),children:"Loading map…"}),E]})}export{Ae as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";import{jsx as e}from"react/jsx-runtime";import{SettingsDefaultReset as a,SettingsField as l}from"efficient-easel/panel";import{SquareIcon as u}from"efficient-easel/icons";import{CORNER_RADIUS_MAX as d,CORNER_RADIUS_MIN as r}from"../lib/theme.js";import{Slider as c}from"../lib/puck/controls.js";const p="Applies to panels, cards, inputs and buttons. Round things
|
|
1
|
+
"use client";import{jsx as e}from"react/jsx-runtime";import{SettingsDefaultReset as a,SettingsField as l}from"efficient-easel/panel";import{SquareIcon as u}from"efficient-easel/icons";import{CORNER_RADIUS_MAX as d,CORNER_RADIUS_MIN as r}from"../lib/theme.js";import{Slider as c}from"../lib/puck/controls.js";const p="Applies to panels, cards, inputs and buttons. Round things — color swatches, switches, status dots — stay round.",o="Corners";function R({value:t,onChange:s,showHint:i=!0}){const n=t===null;return e(l,{label:o,icon:e(u,{}),value:n?void 0:`${t}px`,changed:!n,action:e(a,{label:o,changed:!n,detail:"the built-in corners",onReset:()=>s(null)}),hint:i?p:void 0,children:e(c,{min:r,max:d,step:1,value:t??r,readout:!1,ariaLabel:o,onChange:s})})}export{o as CORNERS_LABEL,R as default};
|
|
@@ -4,4 +4,4 @@ import{jsx as r,jsxs as m}from"react/jsx-runtime";import{renderGold as c}from"./
|
|
|
4
4
|
${a}`:l.push({type:"p",text:a})});return l}const v=[{label:"First section",heading:"Your *first* section.",body:`Write the opening paragraph here.
|
|
5
5
|
|
|
6
6
|
- Start a line with a dash for a bullet.
|
|
7
|
-
- Add as many as you like.`},{label:"Second section",heading:"Your *second* section.",body:"Leave a blank line between paragraphs to start a new one."}],w=120;function N({tocTitle:i,sections:l,editing:p=!1,stickyTop:f=w}){const a=(l??[]).filter(e=>(e.heading??"").trim()!==""||(e.label??"").trim()!==""||(e.body??"").trim()!=="");if(a.length===0&&!p)return null;const d=a.length===0&&p?v:a,x=new Set,n=d.map((e,t)=>{const o=u(e.label||e.heading||"",t);let s=o,g=2;for(;x.has(s);)s=`${o}-${g++}`;return x.add(s),s});return r("section",{className:"relative z-[2] bg-bg",children:m("div",{className:"mx-auto grid max-w-[var(--sf-site-width,1600px)] grid-cols-[240px_1fr] items-start gap-20 border-b border-line px-[var(--sf-site-gutter,40px)] py-20 max-[900px]:grid-cols-1 max-[900px]:gap-10 max-[900px]:px-[min(24px,var(--sf-site-gutter,40px))] max-[900px]:py-[60px]",children:[m("aside",{className:"sticky flex flex-col self-start max-[900px]:static",style:{top:f},children:[i&&r("h4",{className:"mb-[18px] font-mono text-[length:var(--size-label,12px)] uppercase tracking-[0.3em] text-accent",children:c(i)}),d.map((e,t)=>m("a",{href:`#${n[t]}`,className:`flex items-center justify-between gap-3 border-b border-line py-2.5 font-mono text-[length:var(--size-label,13px)] uppercase tracking-[0.18em] text-fg-dim transition-colors hover:text-fg${t===0?" border-t":""}`,children:[r("span",{children:c(e.label||"Section")}),r("span",{className:"text-accent",children:String(t+1).padStart(2,"0")})]},n[t]))]}),r("div",{className:"flex flex-col gap-16",children:d.map((e,t)=>m("article",{id:n[t],className:"flex flex-col gap-[18px]",style:{scrollMarginTop:f},children:[m("span",{className:"font-mono text-[length:var(--size-label,12px)] uppercase tracking-[0.3em] text-accent",children:[String(t+1).padStart(2,"0"),"
|
|
7
|
+
- Add as many as you like.`},{label:"Second section",heading:"Your *second* section.",body:"Leave a blank line between paragraphs to start a new one."}],w=120;function N({tocTitle:i,sections:l,editing:p=!1,stickyTop:f=w}){const a=(l??[]).filter(e=>(e.heading??"").trim()!==""||(e.label??"").trim()!==""||(e.body??"").trim()!=="");if(a.length===0&&!p)return null;const d=a.length===0&&p?v:a,x=new Set,n=d.map((e,t)=>{const o=u(e.label||e.heading||"",t);let s=o,g=2;for(;x.has(s);)s=`${o}-${g++}`;return x.add(s),s});return r("section",{className:"relative z-[2] bg-bg",children:m("div",{className:"mx-auto grid max-w-[var(--sf-site-width,1600px)] grid-cols-[240px_1fr] items-start gap-20 border-b border-line px-[var(--sf-site-gutter,40px)] py-20 max-[900px]:grid-cols-1 max-[900px]:gap-10 max-[900px]:px-[min(24px,var(--sf-site-gutter,40px))] max-[900px]:py-[60px]",children:[m("aside",{className:"sticky flex flex-col self-start max-[900px]:static",style:{top:f},children:[i&&r("h4",{className:"mb-[18px] font-mono text-[length:var(--size-label,12px)] uppercase tracking-[0.3em] text-accent",children:c(i)}),d.map((e,t)=>m("a",{href:`#${n[t]}`,className:`flex items-center justify-between gap-3 border-b border-line py-2.5 font-mono text-[length:var(--size-label,13px)] uppercase tracking-[0.18em] text-fg-dim transition-colors hover:text-fg${t===0?" border-t":""}`,children:[r("span",{children:c(e.label||"Section")}),r("span",{className:"text-accent",children:String(t+1).padStart(2,"0")})]},n[t]))]}),r("div",{className:"flex flex-col gap-16",children:d.map((e,t)=>m("article",{id:n[t],className:"flex flex-col gap-[18px]",style:{scrollMarginTop:f},children:[m("span",{className:"font-mono text-[length:var(--size-label,12px)] uppercase tracking-[0.3em] text-accent",children:[String(t+1).padStart(2,"0")," · ",c(e.label||"Section")]}),e.heading&&r("h2",{className:"mb-2 border-b border-line pb-[18px] font-heading2 text-[length:min(var(--size-headingMedium,clamp(28px,3.5vw,44px)),var(--sf-heading-max,9999px))] font-medium uppercase leading-[1.04] tracking-[-0.025em]",children:c(e.heading)}),y(e.body??"").map((o,s)=>o.type==="ul"?r("ul",{className:"flex max-w-[680px] list-none flex-col gap-2.5 pl-0",children:o.items.map((g,h)=>r("li",{className:"relative pl-6 font-serif text-[length:var(--size-body,17px)] leading-[1.65] text-fg-dim before:absolute before:-top-0.5 before:left-1.5 before:text-[length:var(--size-body,24px)] before:leading-none before:text-accent before:content-['·']",children:c(g)},h))},s):r("p",{className:"max-w-[680px] font-serif text-[length:var(--size-body,17px)] leading-[1.7] text-fg-dim",children:c(o.text)},s))]},n[t]))})]})})}export{N as default,u as sectionAnchorId};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";import{jsx as t,jsxs as
|
|
1
|
+
"use client";import{jsx as t,jsxs as f,Fragment as _}from"react/jsx-runtime";import{useCallback as A,useRef as L,useState as o}from"react";import{InspectorIconButton as z}from"efficient-easel/chrome";import{PopupMenu as W,PopupMenuItem as $,PopupMenuLabel as l}from"efficient-shell/ui";import{CopyToPageIcon as H}from"efficient-easel/icons";import{backendOf as E}from"../lib/website-session.js";import{useEditorSession as Y}from"../lib/editor-session-context.js";import{cloneNodeWithFreshIds as q}from"../lib/puck/section-doc.js";import{FOOTER_TYPE as G}from"../lib/puck/content-tree.js";function J({node:M,currentSlug:N,siteId:a,tokenRef:g,runAuthed:T,onNotify:D}){const[i,s]=o(!1),[h,y]=o(null),n=Y(),[I,c]=o(!1),[u,x]=o(null),b=L(null),[d,j]=o(null),B=A(async()=>{if(n.usesBridgedToken&&!g.current){c(!0);return}try{y(await E(n).pages.list(a?{siteId:a}:void 0))}catch{c(!0)}},[g,a,n]),F=()=>{if(i){s(!1);return}const e=b.current?.getBoundingClientRect();e&&j({top:e.bottom+6,right:Math.max(8,window.innerWidth-e.right)}),y(null),c(!1),B(),s(!0)},P=(h??[]).filter(e=>e.slug!==N),O=async e=>{if(u)return;x(e.slug);const k=q(M),R=n.documentHooks?.storedNode?.(k)??k,w=E(n).pages,C=await T(async()=>{const p=await w.load({id:e.id});if(!p)throw new Error(`Page "${e.slug}" no longer exists.`);const m=p.layout??{},r=Array.isArray(m.content)?[...m.content]:[],v=r.findIndex(S=>S?.type===G);r.splice(v===-1?r.length:v,0,R),await w.save(e.id,{layout:{root:{},zones:{},...m,content:r}},{version:p.version,clientId:""})});x(null),s(!1),D?.(C?`Duplicated to “${e.label}”`:"Couldn’t duplicate the section — please retry",C?"success":"error")};return f(_,{children:[t("span",{"data-menu-toggle":!0,style:{display:"contents"},children:t(z,{buttonRef:b,label:"Duplicate to another page",hasPopup:"menu",expanded:i,onClick:F,children:t(H,{size:15})})}),i&&d&&t(W,{portal:!0,style:{top:d.top,right:d.right},onClose:()=>s(!1),children:f("div",{role:"menu","aria-label":"Duplicate to page",children:[t(l,{children:"Duplicate to page…"}),I?t(l,{children:"Couldn’t load pages"}):h===null?t(l,{children:"Loading…"}):P.length===0?t(l,{children:"No other pages"}):P.map(e=>f($,{role:"menuitem",disabled:u!==null,onClick:()=>{O(e)},children:[t("span",{className:"min-w-0 flex-1 truncate",children:e.label}),u===e.slug?t("span",{className:"shrink-0 text-xs",children:"Copying…"}):e.draft&&t("span",{className:"shrink-0 text-xs",children:"draft"})]},e.id))]})})]})}export{J as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsx as e,jsxs as a}from"react/jsx-runtime";import{sectionRunsFullWidth as u}from"../lib/content/section-width.js";import{Fragment as b}from"react";import{SiteLink as v}from"../lib/site-runtime.js";import{stripMarkup as N}from"../lib/markup.js";import y from"./Placeholder.js";import{renderGold as r,renderHeadline as z,splitParagraphs as w}from"./goldPhrases.js";function k({image:f,badge:i,imageDate:l,category:p,readLabel:o,date:x,title:n,dek:m,ctaText:c,ctaHref:g,...h}){const d=[p?e("span",{className:"text-accent",children:r(p)}):null,o?e("span",{children:r(o)}):null,x?e("span",{children:r(x)}):null].filter(Boolean);return e("section",{className:u(h)?"border-b border-line px-[var(--sf-site-gutter,40px)] py-20 max-[1100px]:px-[min(24px,var(--sf-site-gutter,40px))] max-[1100px]:py-[60px]":"mx-auto max-w-[var(--sf-site-width,1600px)] border-b border-line px-[var(--sf-site-gutter,40px)] py-20 max-[1100px]:px-[min(24px,var(--sf-site-gutter,40px))] max-[1100px]:py-[60px]",children:a("article",{className:"sf-card relative grid grid-cols-[1.3fr_1fr] border border-line bg-[var(--card-bg)] max-[1100px]:grid-cols-1",children:[a("div",{className:"relative aspect-[5/4] overflow-hidden border-r border-line bg-surface-2 max-[1100px]:border-r-0 max-[1100px]:border-b",children:[e(y,{label:"featured-cover",src:f||void 0,alt:N(n||"Cover"),sizes:"(max-width: 1100px) 100vw, 56vw"}),e("div",{className:"pointer-events-none absolute inset-0 z-[1]",style:{background:"linear-gradient(180deg, rgba(10,10,10,0.45) 0%, transparent 30%, transparent 70%, rgba(10,10,10,0.55) 100%)"}}),i&&e("span",{className:"absolute left-6 top-6 z-[2] bg-accent px-3 py-2 font-mono text-[length:var(--size-label,12px)] uppercase tracking-[0.3em] text-bg",children:r(i)}),l&&e("span",{className:"absolute right-6 bottom-6 z-[2] font-mono text-[length:var(--size-label,12px)] uppercase tracking-[0.24em] text-overlay-fg",children:r(l)})]}),a("div",{className:"flex flex-col justify-between gap-6 px-12 py-14 max-[1100px]:px-7 max-[1100px]:py-9",children:[d.length>0&&e("div",{className:"flex items-center gap-4 font-mono text-[length:var(--size-label,12px)] uppercase tracking-[0.28em] text-fg-dim",children:d.map((s,t)=>a(b,{children:[t>0&&e("span",{className:"opacity-40",children:"
|
|
1
|
+
import{jsx as e,jsxs as a}from"react/jsx-runtime";import{sectionRunsFullWidth as u}from"../lib/content/section-width.js";import{Fragment as b}from"react";import{SiteLink as v}from"../lib/site-runtime.js";import{stripMarkup as N}from"../lib/markup.js";import y from"./Placeholder.js";import{renderGold as r,renderHeadline as z,splitParagraphs as w}from"./goldPhrases.js";function k({image:f,badge:i,imageDate:l,category:p,readLabel:o,date:x,title:n,dek:m,ctaText:c,ctaHref:g,...h}){const d=[p?e("span",{className:"text-accent",children:r(p)}):null,o?e("span",{children:r(o)}):null,x?e("span",{children:r(x)}):null].filter(Boolean);return e("section",{className:u(h)?"border-b border-line px-[var(--sf-site-gutter,40px)] py-20 max-[1100px]:px-[min(24px,var(--sf-site-gutter,40px))] max-[1100px]:py-[60px]":"mx-auto max-w-[var(--sf-site-width,1600px)] border-b border-line px-[var(--sf-site-gutter,40px)] py-20 max-[1100px]:px-[min(24px,var(--sf-site-gutter,40px))] max-[1100px]:py-[60px]",children:a("article",{className:"sf-card relative grid grid-cols-[1.3fr_1fr] border border-line bg-[var(--card-bg)] max-[1100px]:grid-cols-1",children:[a("div",{className:"relative aspect-[5/4] overflow-hidden border-r border-line bg-surface-2 max-[1100px]:border-r-0 max-[1100px]:border-b",children:[e(y,{label:"featured-cover",src:f||void 0,alt:N(n||"Cover"),sizes:"(max-width: 1100px) 100vw, 56vw"}),e("div",{className:"pointer-events-none absolute inset-0 z-[1]",style:{background:"linear-gradient(180deg, rgba(10,10,10,0.45) 0%, transparent 30%, transparent 70%, rgba(10,10,10,0.55) 100%)"}}),i&&e("span",{className:"absolute left-6 top-6 z-[2] bg-accent px-3 py-2 font-mono text-[length:var(--size-label,12px)] uppercase tracking-[0.3em] text-bg",children:r(i)}),l&&e("span",{className:"absolute right-6 bottom-6 z-[2] font-mono text-[length:var(--size-label,12px)] uppercase tracking-[0.24em] text-overlay-fg",children:r(l)})]}),a("div",{className:"flex flex-col justify-between gap-6 px-12 py-14 max-[1100px]:px-7 max-[1100px]:py-9",children:[d.length>0&&e("div",{className:"flex items-center gap-4 font-mono text-[length:var(--size-label,12px)] uppercase tracking-[0.28em] text-fg-dim",children:d.map((s,t)=>a(b,{children:[t>0&&e("span",{className:"opacity-40",children:"·"}),s]},t))}),n&&e("h2",{className:"font-heading2 text-[length:min(var(--size-headingMedium,clamp(34px,3.5vw,58px)),var(--sf-heading-max,9999px))] font-medium uppercase leading-none tracking-[-0.03em]",children:z(n,!0)}),m&&w(m).map((s,t)=>e("p",{className:"max-w-[520px] font-serif text-[length:var(--size-body,20px)] italic leading-[1.5] text-fg-dim",children:r(s,!0)},t)),c&&e("div",{children:a(v,{href:g||"#",className:"group inline-flex items-center gap-3.5 py-3.5 font-mono text-[length:var(--size-label,13px)] uppercase tracking-[0.3em] text-accent",children:[r(c)," ",e("span",{className:"transition-transform group-hover:translate-x-[6px]",children:"→"})]})})]})]})})}export{k as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsx as t,Fragment as e,jsxs as a}from"react/jsx-runtime";import{TitleIcon as c,ButtonIcon as p,DollarIcon as M,HashIcon as g,LinkIcon as m,NoteIcon as u,TagIcon as x,TextLinesIcon as b}from"efficient-easel/icons";const o={body:b,button:p,link:m,label:x,number:g,price:M,note:u,title:c},l={eyebrow:a(e,{children:[t("path",{d:"M5 6.5h5"}),t("path",{d:"M5 12.5h14"}),t("path",{d:"M5 18h11"})]}),heading:a(e,{children:[t("path",{d:"M6.5 5v14"}),t("path",{d:"M17.5 5v14"}),t("path",{d:"M6.5 12h11"})]}),intro:a(e,{children:[t("path",{d:"M4 5.5v13"}),t("path",{d:"M8 7.5h12"}),t("path",{d:"M8 12h12"}),t("path",{d:"M8 16.5h8"})]}),value:a(e,{children:[t("rect",{x:"2.5",y:"7",width:"19",height:"10",rx:"2"}),t("path",{d:"M6.5 12h7"})]}),name:a(e,{children:[t("path",{d:"M6 3.5v17"}),t("path",{d:"M6 5h11.5l-2.6 3.6L17.5 12H6z"})]}),date:a(e,{children:[t("rect",{x:"4",y:"5.5",width:"16",height:"15",rx:"2"}),t("path",{d:"M4 10.5h16"}),t("path",{d:"M9 3.2v4.4"}),t("path",{d:"M15 3.2v4.4"})]}),caption:a(e,{children:[t("rect",{x:"3.5",y:"4.5",width:"17",height:"11",rx:"2"}),t("path",{d:"M3.5 12.8l4.2-3.2 3.6 2.8 3.4-2.4 5.8 4"}),t("path",{d:"M6.5 19.5h11"})]}),quote:a(e,{children:[t("path",{d:"M9.5 5.5C7 7.2 5.5 9.7 5.5 12.8h4v5.7h-5v-5.7"}),t("path",{d:"M19.5 5.5c-2.5 1.7-4 4.2-4 7.3h4v5.7h-5v-5.7"})]}),tag:a(e,{children:[t("rect",{x:"3",y:"5.5",width:"18",height:"13",rx:"2.5"}),t("path",{d:"M8 9.5h8"}),t("path",{d:"M12 9.5v5"})]}),meta:a(e,{children:[t("path",{d:"M4 7h16"}),t("path",{d:"M4 14h3.5"}),t("path",{d:"M10.5 14h3"}),t("path",{d:"M17 14h3"})]})};function T({noun:i,size:h=14,strokeWidth:s=1.8,className:n,style:r}){const d=o[i];return d?t("span",{className:n,style:{display:"inline-flex",...r},"aria-hidden":"true",children:t(d,{size:h})}):t("svg",{className:n,style:r,width:h,height:h,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:s,strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:l[i]})}const f=Object.keys(o),w={eyebrow:"TextSmall
|
|
1
|
+
import{jsx as t,Fragment as e,jsxs as a}from"react/jsx-runtime";import{TitleIcon as c,ButtonIcon as p,DollarIcon as M,HashIcon as g,LinkIcon as m,NoteIcon as u,TagIcon as x,TextLinesIcon as b}from"efficient-easel/icons";const o={body:b,button:p,link:m,label:x,number:g,price:M,note:u,title:c},l={eyebrow:a(e,{children:[t("path",{d:"M5 6.5h5"}),t("path",{d:"M5 12.5h14"}),t("path",{d:"M5 18h11"})]}),heading:a(e,{children:[t("path",{d:"M6.5 5v14"}),t("path",{d:"M17.5 5v14"}),t("path",{d:"M6.5 12h11"})]}),intro:a(e,{children:[t("path",{d:"M4 5.5v13"}),t("path",{d:"M8 7.5h12"}),t("path",{d:"M8 12h12"}),t("path",{d:"M8 16.5h8"})]}),value:a(e,{children:[t("rect",{x:"2.5",y:"7",width:"19",height:"10",rx:"2"}),t("path",{d:"M6.5 12h7"})]}),name:a(e,{children:[t("path",{d:"M6 3.5v17"}),t("path",{d:"M6 5h11.5l-2.6 3.6L17.5 12H6z"})]}),date:a(e,{children:[t("rect",{x:"4",y:"5.5",width:"16",height:"15",rx:"2"}),t("path",{d:"M4 10.5h16"}),t("path",{d:"M9 3.2v4.4"}),t("path",{d:"M15 3.2v4.4"})]}),caption:a(e,{children:[t("rect",{x:"3.5",y:"4.5",width:"17",height:"11",rx:"2"}),t("path",{d:"M3.5 12.8l4.2-3.2 3.6 2.8 3.4-2.4 5.8 4"}),t("path",{d:"M6.5 19.5h11"})]}),quote:a(e,{children:[t("path",{d:"M9.5 5.5C7 7.2 5.5 9.7 5.5 12.8h4v5.7h-5v-5.7"}),t("path",{d:"M19.5 5.5c-2.5 1.7-4 4.2-4 7.3h4v5.7h-5v-5.7"})]}),tag:a(e,{children:[t("rect",{x:"3",y:"5.5",width:"18",height:"13",rx:"2.5"}),t("path",{d:"M8 9.5h8"}),t("path",{d:"M12 9.5v5"})]}),meta:a(e,{children:[t("path",{d:"M4 7h16"}),t("path",{d:"M4 14h3.5"}),t("path",{d:"M10.5 14h3"}),t("path",{d:"M17 14h3"})]})};function T({noun:i,size:h=14,strokeWidth:s=1.8,className:n,style:r}){const d=o[i];return d?t("span",{className:n,style:{display:"inline-flex",...r},"aria-hidden":"true",children:t(d,{size:h})}):t("svg",{className:n,style:r,width:h,height:h,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:s,strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:l[i]})}const f=Object.keys(o),w={eyebrow:"TextSmall — a small letterform, not a short rule over a long one",heading:"TextSize — the big/small pair, and it means a SIZE",intro:"TextLines — deliberately its sibling: the same run of lines WITH an indent rule",value:"Square — an empty rect; Background — a filled band. Neither carries a written line",name:"Template — a bookmark, and this WAS a bookmark until that was noticed. A flag is not in the set",date:"Clock — a TIME. The shell has no calendar",caption:"Image — the picture itself. A caption is the line OUTSIDE the frame",quote:"nothing in the set is a pair of quote marks",tag:"Tag — a luggage tag, which draws our Label instead (owner, 2026-09-05). Type — a bare T, which is the fallback",meta:"TextLines — this is that with the gaps that make it read as several facts"},y=Object.keys(l);export{T as FieldGlyph,y as OWN_DRAWN,f as SHELL_BACKED,w as SHELL_VERDICT};
|
|
@@ -24,4 +24,4 @@
|
|
|
24
24
|
<div style="font-family:var(--font-display),Georgia,serif;font-size:20px;font-weight:500;line-height:1.2;margin-top:6px;color:${s.fg};">${G(p.city)}</div>
|
|
25
25
|
<div style="font-family:var(--font-role-label),var(--font-mono-fallback);font-size:11px;letter-spacing:0.2em;text-transform:uppercase;color:${s.fgDim};margin-top:4px;">${G(p.country)}</div>
|
|
26
26
|
</div>
|
|
27
|
-
`),d.open({map:c,anchor:I}),C.current=l},[l,_,j,t]),x?w("div",{ref:L,className:"sf-card footprint-map relative aspect-[16/9] w-full overflow-hidden border border-line max-[720px]:aspect-[4/5]",style:{backgroundColor:tt},children:[r("style",{dangerouslySetInnerHTML:{__html:yt(j.info)}}),r(T,{pal:m?$:void 0}),r("div",{ref:z,className:"gmap-canvas absolute inset-0 transition-opacity duration-500",style:{opacity:_?1:0}}),r("div",{className:["pointer-events-none absolute inset-0 flex items-center justify-center font-mono text-[length:var(--size-label,12px)] uppercase tracking-[0.24em] text-fg-dim transition-opacity duration-500",_?"opacity-0":"opacity-100"].join(" "),children:"Loading map
|
|
27
|
+
`),d.open({map:c,anchor:I}),C.current=l},[l,_,j,t]),x?w("div",{ref:L,className:"sf-card footprint-map relative aspect-[16/9] w-full overflow-hidden border border-line max-[720px]:aspect-[4/5]",style:{backgroundColor:tt},children:[r("style",{dangerouslySetInnerHTML:{__html:yt(j.info)}}),r(T,{pal:m?$:void 0}),r("div",{ref:z,className:"gmap-canvas absolute inset-0 transition-opacity duration-500",style:{opacity:_?1:0}}),r("div",{className:["pointer-events-none absolute inset-0 flex items-center justify-center font-mono text-[length:var(--size-label,12px)] uppercase tracking-[0.24em] text-fg-dim transition-opacity duration-500",_?"opacity-0":"opacity-100"].join(" "),children:"Loading map…"})]}):w("div",{className:["relative aspect-[16/9] w-full overflow-hidden border border-line max-[720px]:aspect-[4/5]",m?"":"bg-bg"].join(" "),style:m?{backgroundColor:$.background}:void 0,children:[r(T,{pal:m?$:void 0}),r("div",{className:["absolute inset-0 flex items-center justify-center px-6 text-center font-mono text-[length:var(--size-label,12px)] uppercase tracking-[0.24em]",m?"":"text-fg-dim"].join(" "),style:m?{color:$.info.fgDim}:void 0,children:g?"Add office coordinates to plot the map":"Add a Google Maps API key to show the map"})]})}export{vt as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";import{jsx as t,jsxs as a}from"react/jsx-runtime";import{useEasel as r}from"efficient-easel/easel";import{headingOutline as o}from"../lib/puck/heading-outline.js";function p(){const{appState:i,config:l}=r(e=>e),c=i?.data,n=o(c?.content??[],l),s=n.filter(e=>e.level===1).length;return a("div",{className:"px-4 py-3 text-[13px] text-zinc-600",children:[a("div",{className:"mb-2 flex items-center justify-between text-[11px] font-semibold uppercase tracking-wide text-zinc-500",children:[t("span",{children:"Heading outline"}),t("span",{children:n.length})]}),s!==1&&t("div",{className:"mb-2 rounded bg-amber-50 px-2 py-1 text-[12px] text-amber-700",children:s===0?"No H1
|
|
1
|
+
"use client";import{jsx as t,jsxs as a}from"react/jsx-runtime";import{useEasel as r}from"efficient-easel/easel";import{headingOutline as o}from"../lib/puck/heading-outline.js";function p(){const{appState:i,config:l}=r(e=>e),c=i?.data,n=o(c?.content??[],l),s=n.filter(e=>e.level===1).length;return a("div",{className:"px-4 py-3 text-[13px] text-zinc-600",children:[a("div",{className:"mb-2 flex items-center justify-between text-[11px] font-semibold uppercase tracking-wide text-zinc-500",children:[t("span",{children:"Heading outline"}),t("span",{children:n.length})]}),s!==1&&t("div",{className:"mb-2 rounded bg-amber-50 px-2 py-1 text-[12px] text-amber-700",children:s===0?"No H1 — add one for SEO.":`${s} H1s — a page should have exactly one.`}),n.length===0?t("p",{className:"text-zinc-400",children:"No headings yet."}):t("ul",{className:"space-y-1",children:n.map((e,d)=>a("li",{className:"flex items-baseline gap-2",style:{paddingLeft:`${(e.level-1)*12}px`},children:[a("span",{className:"shrink-0 font-mono text-[11px] text-zinc-400",children:["H",e.level]}),t("span",{className:"truncate text-zinc-700",children:e.text})]},d))})]})}export{p as default};
|
|
@@ -8,4 +8,4 @@
|
|
|
8
8
|
outline: 2px solid ${Z.accent};
|
|
9
9
|
outline-offset: -2px;
|
|
10
10
|
}
|
|
11
|
-
`,Be="Play video",Ke="Hold video",Ye="flex h-7 cursor-pointer items-center gap-1.5 rounded-full border border-overlay-chrome/25 bg-overlay-scrim/80 px-[11px] font-mono text-[11px] leading-none tracking-[0.05em] text-overlay-fg",Fe="item",Ue=["","","","","",""],te=new Map;function Je(L,w){const h=L?.ownerDocument?.defaultView;if(h)return h.addEventListener(N,w),()=>h.removeEventListener(N,w)}function Qe({slides:L,alignment:w,textureOpacity:h,showTexture:re,textureColor:oe,phoneUpDown:ne,phoneSideways:se,autoplay:M,autoplayInterval:O,showTicker:ce,tickerItems:ae,heightDesktop:P,heightMobile:D,showPicker:ie,pickerShape:le,pickerPlacement:ue,showArrows:de,arrowsShape:me,arrowsPlacement:pe,editing:n}){const $=Ie(P,D),fe=$?"h-[var(--sf-hero-h-m)] min-[720px]:h-[var(--sf-hero-h-d)]":"h-screen min-h-[680px]",he=$?{"--sf-hero-h-d":ee(P),"--sf-hero-h-m":ee(D)}:void 0,T=(ae??Ue.map(e=>({text:e}))).map(e=>e?.text?.trim()?e.text:n?Fe:"").filter(Boolean),V=ce!==!1,u=i(null),z=i(null),X=i(null),q=i(null),G=i(null),j=Re(),E=i(j),[y,ve]=b([]),[xe,B]=b(0),v=i(0),[K,Y]=b(!1),[g,ke]=b(!1),[F,be]=b(null),H=Ce(),{selectedHeroId:we,select:U}=Ae(),S=p(()=>u.current?.querySelector(".hero-track")??null,[]),l=p((e,t=!1)=>{B(e),v.current=e,te.set(E.current,e);const r=u.current?.querySelector(".hero-track");if(r)if(t){const o=r.style.transition;r.style.transition="none",r.style.transform=`translateX(-${Math.max(0,e)*100}%)`,r.offsetHeight,r.style.transition=o}else r.style.transform=`translateX(-${Math.max(0,e)*100}%)`},[]);f(()=>{const e=u.current,t=e?.getAttribute("data-puck-component")||e?.closest("[data-puck-component]")?.getAttribute("data-puck-component")||j;E.current=t,be(t);const r=te.get(t);typeof r=="number"&&(B(r),v.current=r)},[]),f(()=>{const e=S();if(!e)return;const t=()=>{ve(o=>Me(o,e.querySelectorAll("[data-slide-name]")))};t();const r=new MutationObserver(t);return r.observe(e,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["data-slide-name","data-slide-process","data-slide-media"]}),()=>{r.disconnect()}},[S]),f(()=>{if(!n)return;const e=t=>{const r=t.detail;if(!r||typeof r.index!="number")return;const o=u.current,a=o?.getAttribute("data-puck-component")||o?.closest("[data-puck-component]")?.getAttribute("data-puck-component")||E.current;r.id&&r.id!==a||l(r.index,!0)};return Je(u.current,e)},[n,l]);const s=y.length,d=Math.min(Math.max(xe,0),Math.max(0,s-1)),A=De({shown:ie,count:s}),J=$e({shown:de,count:s}),Q=qe({editing:n,shown:d,slides:y}),Ee=Ge({editing:n,playing:g,controlShown:Q}),_=ze({count:s,editing:n}),m=i(null),x=i(null),ye=p(e=>{if(m.current=null,x.current=null,!_||e.touches.length!==1)return;const t=e.touches[0];m.current={x:t.clientX,y:t.clientY},x.current={x:t.clientX,y:t.clientY}},[_]),ge=p(e=>{if(!m.current)return;if(e.touches.length!==1){m.current=null;return}const t=e.touches[0];x.current={x:t.clientX,y:t.clientY}},[]),Se=p(()=>{const e=m.current,t=x.current;if(m.current=null,x.current=null,!_||!e||!t)return;const r=Xe(t.x-e.x,t.y-e.y,v.current,s);r!==v.current&&l(r)},[_,s,l]);f(()=>{if(n||!M||K||H||s<=1)return;const t=Math.max(1,typeof O=="number"?O:6)*1e3,r=window.setTimeout(()=>l((d+1)%s),t);return()=>window.clearTimeout(r)},[n,M,O,K,H,s,d,l]),f(()=>{const e=[z.current,X.current,q.current].filter(Boolean),t=e.map(o=>I(o)),r=o=>{const a=o.target,k=a.closest("[data-hero-nav]"),W=k??a.closest("[data-idx]");if(!W)return;o.stopPropagation(),o.preventDefault();const C=k?Ve(k.dataset.heroNav,v.current,s):Number(W.dataset.idx);Number.isNaN(C)||(l(C,n),S()?.querySelectorAll("[data-slide-name]")[C]?.click())};return e.forEach(o=>o.addEventListener("click",r,{capture:!0})),()=>{t.forEach(o=>o?.()),e.forEach(o=>o.removeEventListener("click",r,{capture:!0}))}},[s,l,S,n]),f(()=>{if(!n)return;const e=G.current;if(!e)return;const t=I(e),r=o=>{o.stopPropagation(),o.preventDefault();const a=u.current,k=a?.getAttribute("data-puck-component")||a?.closest("[data-puck-component]")?.getAttribute("data-puck-component")||E.current;U(k)};return e.addEventListener("click",r,{capture:!0}),()=>{t?.(),e.removeEventListener("click",r,{capture:!0})}},[n,U,V,T.length]);const _e=p(e=>{if(!e)return;const t=I(e),r=o=>{o.stopPropagation(),o.preventDefault(),ke(a=>!a)};return e.addEventListener("click",r,{capture:!0}),()=>{t?.(),e.removeEventListener("click",r,{capture:!0})}},[]);return c(Oe.Provider,{value:{alignment:w,textureOpacity:h,textureOn:re,textureColor:oe,quietVideo:Ee,phoneUpDown:ne,phoneSideways:se},children:R("div",{ref:u,className:`relative mx-[var(--sf-hero-bleed-m,calc(50%_-_50vw))] w-[var(--sf-hero-bleed-w,100vw)] ${fe} max-w-[var(--sf-hero-cap,none)] overflow-hidden`,style:he,onMouseEnter:()=>Y(!0),onMouseLeave:()=>Y(!1),onTouchStart:ye,onTouchMove:ge,onTouchEnd:Se,children:[c(L,{className:"hero-track flex h-full [&>*]:h-full [&>*]:min-w-full [&>*]:shrink-0 [&>*]:basis-full",style:{transform:`translateX(-${d*100}%)`,transition:H?"none":"transform 600ms cubic-bezier(.22,.61,.36,1)"},minEmptyHeight:400}),Q&&c("div",{ref:_e,"data-hero-video-control":g?"playing":"held",className:"sf-hero-video-control absolute left-6 z-[7]",style:{top:`calc(${Ne} + 16px)`},children:R("button",{type:"button",className:Ye,children:[c("span",{"aria-hidden":"true",children:g?"
|
|
11
|
+
`,Be="Play video",Ke="Hold video",Ye="flex h-7 cursor-pointer items-center gap-1.5 rounded-full border border-overlay-chrome/25 bg-overlay-scrim/80 px-[11px] font-mono text-[11px] leading-none tracking-[0.05em] text-overlay-fg",Fe="item",Ue=["","","","","",""],te=new Map;function Je(L,w){const h=L?.ownerDocument?.defaultView;if(h)return h.addEventListener(N,w),()=>h.removeEventListener(N,w)}function Qe({slides:L,alignment:w,textureOpacity:h,showTexture:re,textureColor:oe,phoneUpDown:ne,phoneSideways:se,autoplay:M,autoplayInterval:O,showTicker:ce,tickerItems:ae,heightDesktop:P,heightMobile:D,showPicker:ie,pickerShape:le,pickerPlacement:ue,showArrows:de,arrowsShape:me,arrowsPlacement:pe,editing:n}){const $=Ie(P,D),fe=$?"h-[var(--sf-hero-h-m)] min-[720px]:h-[var(--sf-hero-h-d)]":"h-screen min-h-[680px]",he=$?{"--sf-hero-h-d":ee(P),"--sf-hero-h-m":ee(D)}:void 0,T=(ae??Ue.map(e=>({text:e}))).map(e=>e?.text?.trim()?e.text:n?Fe:"").filter(Boolean),V=ce!==!1,u=i(null),z=i(null),X=i(null),q=i(null),G=i(null),j=Re(),E=i(j),[y,ve]=b([]),[xe,B]=b(0),v=i(0),[K,Y]=b(!1),[g,ke]=b(!1),[F,be]=b(null),H=Ce(),{selectedHeroId:we,select:U}=Ae(),S=p(()=>u.current?.querySelector(".hero-track")??null,[]),l=p((e,t=!1)=>{B(e),v.current=e,te.set(E.current,e);const r=u.current?.querySelector(".hero-track");if(r)if(t){const o=r.style.transition;r.style.transition="none",r.style.transform=`translateX(-${Math.max(0,e)*100}%)`,r.offsetHeight,r.style.transition=o}else r.style.transform=`translateX(-${Math.max(0,e)*100}%)`},[]);f(()=>{const e=u.current,t=e?.getAttribute("data-puck-component")||e?.closest("[data-puck-component]")?.getAttribute("data-puck-component")||j;E.current=t,be(t);const r=te.get(t);typeof r=="number"&&(B(r),v.current=r)},[]),f(()=>{const e=S();if(!e)return;const t=()=>{ve(o=>Me(o,e.querySelectorAll("[data-slide-name]")))};t();const r=new MutationObserver(t);return r.observe(e,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["data-slide-name","data-slide-process","data-slide-media"]}),()=>{r.disconnect()}},[S]),f(()=>{if(!n)return;const e=t=>{const r=t.detail;if(!r||typeof r.index!="number")return;const o=u.current,a=o?.getAttribute("data-puck-component")||o?.closest("[data-puck-component]")?.getAttribute("data-puck-component")||E.current;r.id&&r.id!==a||l(r.index,!0)};return Je(u.current,e)},[n,l]);const s=y.length,d=Math.min(Math.max(xe,0),Math.max(0,s-1)),A=De({shown:ie,count:s}),J=$e({shown:de,count:s}),Q=qe({editing:n,shown:d,slides:y}),Ee=Ge({editing:n,playing:g,controlShown:Q}),_=ze({count:s,editing:n}),m=i(null),x=i(null),ye=p(e=>{if(m.current=null,x.current=null,!_||e.touches.length!==1)return;const t=e.touches[0];m.current={x:t.clientX,y:t.clientY},x.current={x:t.clientX,y:t.clientY}},[_]),ge=p(e=>{if(!m.current)return;if(e.touches.length!==1){m.current=null;return}const t=e.touches[0];x.current={x:t.clientX,y:t.clientY}},[]),Se=p(()=>{const e=m.current,t=x.current;if(m.current=null,x.current=null,!_||!e||!t)return;const r=Xe(t.x-e.x,t.y-e.y,v.current,s);r!==v.current&&l(r)},[_,s,l]);f(()=>{if(n||!M||K||H||s<=1)return;const t=Math.max(1,typeof O=="number"?O:6)*1e3,r=window.setTimeout(()=>l((d+1)%s),t);return()=>window.clearTimeout(r)},[n,M,O,K,H,s,d,l]),f(()=>{const e=[z.current,X.current,q.current].filter(Boolean),t=e.map(o=>I(o)),r=o=>{const a=o.target,k=a.closest("[data-hero-nav]"),W=k??a.closest("[data-idx]");if(!W)return;o.stopPropagation(),o.preventDefault();const C=k?Ve(k.dataset.heroNav,v.current,s):Number(W.dataset.idx);Number.isNaN(C)||(l(C,n),S()?.querySelectorAll("[data-slide-name]")[C]?.click())};return e.forEach(o=>o.addEventListener("click",r,{capture:!0})),()=>{t.forEach(o=>o?.()),e.forEach(o=>o.removeEventListener("click",r,{capture:!0}))}},[s,l,S,n]),f(()=>{if(!n)return;const e=G.current;if(!e)return;const t=I(e),r=o=>{o.stopPropagation(),o.preventDefault();const a=u.current,k=a?.getAttribute("data-puck-component")||a?.closest("[data-puck-component]")?.getAttribute("data-puck-component")||E.current;U(k)};return e.addEventListener("click",r,{capture:!0}),()=>{t?.(),e.removeEventListener("click",r,{capture:!0})}},[n,U,V,T.length]);const _e=p(e=>{if(!e)return;const t=I(e),r=o=>{o.stopPropagation(),o.preventDefault(),ke(a=>!a)};return e.addEventListener("click",r,{capture:!0}),()=>{t?.(),e.removeEventListener("click",r,{capture:!0})}},[]);return c(Oe.Provider,{value:{alignment:w,textureOpacity:h,textureOn:re,textureColor:oe,quietVideo:Ee,phoneUpDown:ne,phoneSideways:se},children:R("div",{ref:u,className:`relative mx-[var(--sf-hero-bleed-m,calc(50%_-_50vw))] w-[var(--sf-hero-bleed-w,100vw)] ${fe} max-w-[var(--sf-hero-cap,none)] overflow-hidden`,style:he,onMouseEnter:()=>Y(!0),onMouseLeave:()=>Y(!1),onTouchStart:ye,onTouchMove:ge,onTouchEnd:Se,children:[c(L,{className:"hero-track flex h-full [&>*]:h-full [&>*]:min-w-full [&>*]:shrink-0 [&>*]:basis-full",style:{transform:`translateX(-${d*100}%)`,transition:H?"none":"transform 600ms cubic-bezier(.22,.61,.36,1)"},minEmptyHeight:400}),Q&&c("div",{ref:_e,"data-hero-video-control":g?"playing":"held",className:"sf-hero-video-control absolute left-6 z-[7]",style:{top:`calc(${Ne} + 16px)`},children:R("button",{type:"button",className:Ye,children:[c("span",{"aria-hidden":"true",children:g?"❚❚":"▶"}),g?Ke:Be]})}),(A||J)&&R("div",{className:"pointer-events-none absolute inset-y-0 left-[var(--sf-hero-chrome-x,var(--sf-site-gutter,40px))] right-[var(--sf-hero-chrome-x,var(--sf-site-gutter,40px))] z-[6] mx-auto max-w-[var(--sf-hero-chrome-cap,calc(min(var(--sf-page-cap,var(--sf-site-width,1600px)),var(--sf-site-width,1600px))_-_var(--sf-site-gutter,40px)*2))]",children:[A&&c(He,{ref:z,slides:y,active:d,shape:Pe(le),placement:ue}),J&&c(Te,{ref:q,shape:me,placement:pe})]}),A&&c("div",{ref:X,className:"sf-hero-phone-dots absolute bottom-[80px] left-1/2 z-[6] hidden -translate-x-1/2 items-center gap-2",children:y.map((e,t)=>c("button",{type:"button","data-idx":t,"aria-label":`Go to slide ${t+1}`,className:`h-2 rounded-full transition-all motion-reduce:transition-none ${t===d?"w-5 bg-accent":"w-2 bg-white/45 hover:bg-white/70"}`},t))}),V&&T.length>0&&R("div",{ref:G,className:`sf-hero-ticker absolute inset-x-0 bottom-0 z-[5] border-t border-overlay-chrome/10 py-3.5${n?" hero-ticker-pick":""}`,"data-selected":n&&F!=null&&we===F?"":void 0,style:{background:"rgba(10,10,10,.55)"},children:[n&&c("style",{children:je}),c(Le,{items:T,backdrop:"dark-media"})]})]})})}export{Ue as DEFAULT_TICKER_ITEMS,N as HERO_SLIDER_GOTO_EVENT,Ke as HERO_VIDEO_HOLD_LABEL,Be as HERO_VIDEO_PLAY_LABEL,Qe as default,Je as subscribeSliderGoto};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";import{jsx as e}from"react/jsx-runtime";import{SettingsDefaultReset as s,SettingsField as c,SettingsSegmented as d}from"efficient-easel/panel";import{HoverIcon as h}from"efficient-easel/icons";import{HOVER_EFFECTS as u,DEFAULT_HOVER_EFFECT as l}from"../lib/theme.js";const t={none:"None",lift:"Lift",highlight:"Highlight"},g="What a card does when a shopper points at it
|
|
1
|
+
"use client";import{jsx as e}from"react/jsx-runtime";import{SettingsDefaultReset as s,SettingsField as c,SettingsSegmented as d}from"efficient-easel/panel";import{HoverIcon as h}from"efficient-easel/icons";import{HOVER_EFFECTS as u,DEFAULT_HOVER_EFFECT as l}from"../lib/theme.js";const t={none:"None",lift:"Lift",highlight:"Highlight"},g="What a card does when a shopper points at it — or taps it, on a phone. Highlight is the effect your cards already use.";function p({value:o,onChange:i,showHint:f=!0}){const n=o===null,a=o??l;return e(c,{label:"Hover effect",icon:e(h,{}),value:t[a],changed:!n,action:e(s,{label:"Hover effect",changed:!n,detail:t[l],onReset:()=>i(null)}),hint:f?g:void 0,children:e(d,{options:u.map(r=>({id:r,label:t[r]})),value:a,ariaLabel:"Hover effect",onChange:i})})}export{p as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsx as e}from"react/jsx-runtime";import{SiteLink as v}from"../lib/site-runtime.js";import N from"./BlockFrame.js";import{useSitePhotography as S}from"./SitePhotographyContext.js";import{media as x}from"../lib/media.js";import{imageCornerStyle as w}from"../lib/content/image-corners.js";import{imageFitClass as j,imageIsCropped as I,parseImageFit as C}from"../lib/content/image-fit.js";import{resolveImageTreatment as F}from"../lib/content/image-treatment.js";import{imageWidthStyle as $}from"../lib/content/image-width.js";const P={auto:"","21/9":"aspect-[21/9]","16/9":"aspect-[16/9]","4/3":"aspect-[4/3]","1/1":"aspect-square"};function B({src:r,alt:f,aspect:l,contained:d,grayscale:p,href:h,width:u,fit:g,focal:a,corners:y,cornerSides:b}){const o=F(p,S()),i=$(u),m=C(g,"cover"),c=w(y,b),n={...o.style??{},...a&&I(l,m)?{objectPosition:a}:{}},s=r?e("img",{src:x(r),alt:f,className:`h-full w-full ${l==="auto"?"":j(m)}${o.className?` ${o.className}`:""}`,...Object.keys(n).length?{style:n}:{}}):e("div",{className:"flex aspect-[16/9] items-center justify-center border border-dashed border-line font-mono text-[length:var(--size-label,13px)] uppercase tracking-[0.2em] text-fg-dim",children:"Image
|
|
1
|
+
import{jsx as e}from"react/jsx-runtime";import{SiteLink as v}from"../lib/site-runtime.js";import N from"./BlockFrame.js";import{useSitePhotography as S}from"./SitePhotographyContext.js";import{media as x}from"../lib/media.js";import{imageCornerStyle as w}from"../lib/content/image-corners.js";import{imageFitClass as j,imageIsCropped as I,parseImageFit as C}from"../lib/content/image-fit.js";import{resolveImageTreatment as F}from"../lib/content/image-treatment.js";import{imageWidthStyle as $}from"../lib/content/image-width.js";const P={auto:"","21/9":"aspect-[21/9]","16/9":"aspect-[16/9]","4/3":"aspect-[4/3]","1/1":"aspect-square"};function B({src:r,alt:f,aspect:l,contained:d,grayscale:p,href:h,width:u,fit:g,focal:a,corners:y,cornerSides:b}){const o=F(p,S()),i=$(u),m=C(g,"cover"),c=w(y,b),n={...o.style??{},...a&&I(l,m)?{objectPosition:a}:{}},s=r?e("img",{src:x(r),alt:f,className:`h-full w-full ${l==="auto"?"":j(m)}${o.className?` ${o.className}`:""}`,...Object.keys(n).length?{style:n}:{}}):e("div",{className:"flex aspect-[16/9] items-center justify-center border border-dashed border-line font-mono text-[length:var(--size-label,13px)] uppercase tracking-[0.2em] text-fg-dim",children:"Image — set a path"}),t=(h??"").trim(),k=t&&r?t.startsWith("/")?e(v,{href:t,className:"block h-full w-full",children:s}):e("a",{href:t,className:"block h-full w-full",children:s}):s;return e(N,{contained:d,className:"py-6",children:e("figure",{...i?{style:i}:{},children:e("div",{className:`relative w-full overflow-hidden bg-surface ${P[l]}`,...c?{style:c}:{},children:k})})})}export{B as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";import{jsx as s,jsxs as a,Fragment as P}from"react/jsx-runtime";import{useRef as N,useState as F}from"react";import k from"./TextStyleRow.js";import{focalFromRect as D,formatFocal as $,nudgeFocal as C,parseFocal as R}from"../lib/image-focus.js";function j({label:c,value:t,onChange:l,image:i}){const[f,u]=F(!1),m=N(null),n=N(!1),{x:p,y:d}=R(t),g=(e,o)=>{const h=m.current?.getBoundingClientRect();if(!h)return;const y=D(h,e,o);l($(y.x,y.y))},b=e=>{const o=C(t,e.key,e.shiftKey);o!==null&&(e.preventDefault(),l(o))},x=e=>{e.currentTarget.setPointerCapture?.(e.pointerId),n.current=!0,g(e.clientX,e.clientY)},w=e=>{n.current&&g(e.clientX,e.clientY)},r=()=>{n.current=!1};return s(k,{styleKey:"imageFocal",label:c,value:t,sampleStyle:{fontSize:11,fontVariantNumeric:"tabular-nums"},open:f,onToggle:()=>u(e=>!e),children:f?s("div",{className:"sf-focus","data-sf-focusing":"",children:i?a(P,{children:[s("button",{type:"button",className:"sf-focus-canvas","aria-label":`${c}: ${t}. Use the arrow keys to move the point.`,onKeyDown:b,onPointerDown:x,onPointerMove:w,onPointerUp:r,onPointerCancel:r,onLostPointerCapture:r,children:a("span",{className:"sf-focus-pane",ref:m,children:[s("img",{className:"sf-focus-img",src:i,alt:"",draggable:!1}),s("span",{className:"sf-focus-cross sf-focus-cross--h",style:{top:`${d}%`}}),s("span",{className:"sf-focus-cross sf-focus-cross--v",style:{left:`${p}%`}}),s("span",{className:"sf-focus-marker",style:{left:`${p}%`,top:`${d}%`}})]})}),a("div",{className:"sf-focus-bar",children:[s("span",{className:"sf-focus-hint",children:"Press the picture, or nudge the point with the arrow keys."}),s("button",{type:"button",className:"sf-image-btn",onClick:()=>u(!1),children:"Done"})]})]}):s("p",{className:"es-field-hint sf-hint-keep",children:"Choose a background image first
|
|
1
|
+
"use client";import{jsx as s,jsxs as a,Fragment as P}from"react/jsx-runtime";import{useRef as N,useState as F}from"react";import k from"./TextStyleRow.js";import{focalFromRect as D,formatFocal as $,nudgeFocal as C,parseFocal as R}from"../lib/image-focus.js";function j({label:c,value:t,onChange:l,image:i}){const[f,u]=F(!1),m=N(null),n=N(!1),{x:p,y:d}=R(t),g=(e,o)=>{const h=m.current?.getBoundingClientRect();if(!h)return;const y=D(h,e,o);l($(y.x,y.y))},b=e=>{const o=C(t,e.key,e.shiftKey);o!==null&&(e.preventDefault(),l(o))},x=e=>{e.currentTarget.setPointerCapture?.(e.pointerId),n.current=!0,g(e.clientX,e.clientY)},w=e=>{n.current&&g(e.clientX,e.clientY)},r=()=>{n.current=!1};return s(k,{styleKey:"imageFocal",label:c,value:t,sampleStyle:{fontSize:11,fontVariantNumeric:"tabular-nums"},open:f,onToggle:()=>u(e=>!e),children:f?s("div",{className:"sf-focus","data-sf-focusing":"",children:i?a(P,{children:[s("button",{type:"button",className:"sf-focus-canvas","aria-label":`${c}: ${t}. Use the arrow keys to move the point.`,onKeyDown:b,onPointerDown:x,onPointerMove:w,onPointerUp:r,onPointerCancel:r,onLostPointerCapture:r,children:a("span",{className:"sf-focus-pane",ref:m,children:[s("img",{className:"sf-focus-img",src:i,alt:"",draggable:!1}),s("span",{className:"sf-focus-cross sf-focus-cross--h",style:{top:`${d}%`}}),s("span",{className:"sf-focus-cross sf-focus-cross--v",style:{left:`${p}%`}}),s("span",{className:"sf-focus-marker",style:{left:`${p}%`,top:`${d}%`}})]})}),a("div",{className:"sf-focus-bar",children:[s("span",{className:"sf-focus-hint",children:"Press the picture, or nudge the point with the arrow keys."}),s("button",{type:"button",className:"sf-image-btn",onClick:()=>u(!1),children:"Done"})]})]}):s("p",{className:"es-field-hint sf-hint-keep",children:"Choose a background image first — there’s nothing to focus yet."})}):null})}export{j as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";import{jsx as e,Fragment as L,jsxs as m}from"react/jsx-runtime";import{useId as U,useState as q}from"react";import{InspectorUpLevel as N}from"efficient-easel/chrome";import{useEasel as $}from"efficient-easel/easel";import{ListField as D}from"efficient-easel/fields";import{SettingsField as E}from"efficient-easel/panel";import{ClockIcon as F,ContrastIcon as V,GlobeIcon as Y,LinkIcon as Z,LocationIcon as J,PhoneIcon as Q,SquareIcon as X,TypeIcon as O}from"efficient-easel/icons";import K from"./MediaUploadField.js";import{useLocationsHasTree as ee}from"./LocationsTreeContext.js";import{CoordsField as ne}from"../lib/puck/controls.js";import{useLocationsFocus as te,setLocationsFocus as f}from"../lib/puck/locations-focus.js";import{groupKeyOf as S,groupLabelOf as A,NEW_CITY as G,writeGroupCities as ie,writeGroupOrder as oe}from"../lib/puck/locations-tree.js";import{useSectionOps as re}from"../lib/puck/use-section-ops.js";import{ROOT_ZONE as le}from"../lib/puck/content-tree.js";import{CONTACT_LOCATIONS_DEFAULTS as H,parseLocationTileShape as ae}from"../lib/content/contact.js";function se(a){const t=[];return a.forEach((s,o)=>{const u=S(s);let l=t.find(i=>i.key===u);l||(l={key:u,name:String(s?.groupName??""),indices:[]},t.push(l)),l.indices.push(o)}),t}function z({children:a}){return e("div",{style:{fontSize:11,fontWeight:600,letterSpacing:"0.06em",textTransform:"uppercase",color:"var(--fg-dim, #999)",margin:"14px 0 6px"},children:a})}const W={width:"100%",height:32,textAlign:"left",display:"flex",alignItems:"center",justifyContent:"space-between",gap:8,padding:"0 12px",fontSize:12,border:"1px solid var(--border-strong, #d0d0d0)",borderRadius:6,background:"transparent",color:"inherit",cursor:"inherit"},ce={padding:0,border:"none",background:"none",font:"inherit",fontSize:12,color:"var(--sf-accent, #2563eb)",cursor:"pointer"},_={...ce,color:"#d85a30"};function y({label:a,value:t,placeholder:s,textarea:o,icon:u,onChange:l,onBlur:i,onKeyDown:h}){const b=U();return e(E,{label:a,icon:u??e(O,{}),htmlFor:b,children:o?e("textarea",{id:b,value:t,placeholder:s,onChange:g=>l(g.target.value)}):e("input",{id:b,type:"text",value:t,placeholder:s,onChange:g=>l(g.target.value),onBlur:i,onKeyDown:h})})}const de=[{label:"Auto",value:"auto"},{label:"Dark",value:"dark"},{label:"Light",value:"light"}],pe=[{label:"Tall (3:4)",value:"tall"},{label:"Square",value:"square"},{label:"Wide (2:1)",value:"wide"}];function R({label:a,icon:t,options:s,value:o,onChange:u}){return e(E,{label:a,icon:t,children:e("div",{role:"group","aria-label":a,style:{display:"flex",gap:4,flex:1},children:s.map(l=>{const i=o===l.value;return e("button",{type:"button","aria-pressed":i,onClick:()=>u(l.value),style:{flex:1,padding:"6px 8px",fontSize:12,borderRadius:6,cursor:"pointer",border:`1px solid ${i?"var(--sf-accent, #2563eb)":"var(--border-strong, #d0d0d0)"}`,background:i?"var(--sf-accent, #2563eb)":"transparent",color:i?"#fff":"inherit",fontWeight:i?500:400},children:l.label},l.value)})})})}function B({props:a,setSection:t,headOnly:s}){const o=i=>String(a[i]??""),u=a.mapTheme||H.mapTheme,l=H;return m(L,{children:[!s&&e(z,{children:"Section"}),e(y,{label:"Section number",value:o("sectionNumber"),placeholder:l.sectionNumber,onChange:i=>t({sectionNumber:i})}),e(y,{label:"Heading",textarea:!0,value:o("heading"),placeholder:l.heading,onChange:i=>t({heading:i})}),e(y,{label:"Body",textarea:!0,value:o("tagline"),placeholder:l.tagline,onChange:i=>t({tagline:i})}),s?null:m(L,{children:[e(z,{children:"City strip"}),e(y,{label:"Eyebrow",value:o("galleryKicker"),placeholder:l.galleryKicker,onChange:i=>t({galleryKicker:i})}),e(y,{label:"Hint",value:o("galleryHint"),placeholder:l.galleryHint,onChange:i=>t({galleryHint:i})}),e(R,{label:"Shape",icon:e(X,{}),options:pe,value:ae(a.imageShape),onChange:i=>t({imageShape:i})}),e(z,{children:"Map & Theme"}),e(R,{label:"Map theme",icon:e(V,{}),options:de,value:u,onChange:i=>t({mapTheme:i})})]})]})}function ue({cards:a,groupKey:t,onChange:s,onBack:o,onOpenCity:u,onNavigate:l}){const i=a.map((r,p)=>S(r)===t?p:-1).filter(r=>r>=0),h=String(a[i[0]]?.groupName??""),b=new Set(a.map(S).filter(r=>r!==t)),[g,C]=q(t),k=r=>s(a.map(p=>S(p)===t?{...p,...r}:p)),I=()=>{const r=g;if(r!==t){if(b.has(r)){C(t);return}s(a.map(p=>S(p)===t?{...p,group:r}:p)),l(r)}};return m("div",{className:"sf-locations-view",children:[e(N,{inline:!0,name:"Section",onSelect:o}),e("div",{style:{fontSize:14,fontWeight:500,margin:"6px 0 10px"},children:A(t,h)}),e(y,{label:"Group heading",value:g,placeholder:"e.g. Americas",onChange:C,onBlur:I,onKeyDown:r=>{r.key==="Enter"&&r.currentTarget.blur()}}),b.has(g)&&g!==t&&e("p",{className:"sf-note sf-note--error",role:"alert",children:"Another group already uses this heading
|
|
1
|
+
"use client";import{jsx as e,Fragment as L,jsxs as m}from"react/jsx-runtime";import{useId as U,useState as q}from"react";import{InspectorUpLevel as N}from"efficient-easel/chrome";import{useEasel as $}from"efficient-easel/easel";import{ListField as D}from"efficient-easel/fields";import{SettingsField as E}from"efficient-easel/panel";import{ClockIcon as F,ContrastIcon as V,GlobeIcon as Y,LinkIcon as Z,LocationIcon as J,PhoneIcon as Q,SquareIcon as X,TypeIcon as O}from"efficient-easel/icons";import K from"./MediaUploadField.js";import{useLocationsHasTree as ee}from"./LocationsTreeContext.js";import{CoordsField as ne}from"../lib/puck/controls.js";import{useLocationsFocus as te,setLocationsFocus as f}from"../lib/puck/locations-focus.js";import{groupKeyOf as S,groupLabelOf as A,NEW_CITY as G,writeGroupCities as ie,writeGroupOrder as oe}from"../lib/puck/locations-tree.js";import{useSectionOps as re}from"../lib/puck/use-section-ops.js";import{ROOT_ZONE as le}from"../lib/puck/content-tree.js";import{CONTACT_LOCATIONS_DEFAULTS as H,parseLocationTileShape as ae}from"../lib/content/contact.js";function se(a){const t=[];return a.forEach((s,o)=>{const u=S(s);let l=t.find(i=>i.key===u);l||(l={key:u,name:String(s?.groupName??""),indices:[]},t.push(l)),l.indices.push(o)}),t}function z({children:a}){return e("div",{style:{fontSize:11,fontWeight:600,letterSpacing:"0.06em",textTransform:"uppercase",color:"var(--fg-dim, #999)",margin:"14px 0 6px"},children:a})}const W={width:"100%",height:32,textAlign:"left",display:"flex",alignItems:"center",justifyContent:"space-between",gap:8,padding:"0 12px",fontSize:12,border:"1px solid var(--border-strong, #d0d0d0)",borderRadius:6,background:"transparent",color:"inherit",cursor:"inherit"},ce={padding:0,border:"none",background:"none",font:"inherit",fontSize:12,color:"var(--sf-accent, #2563eb)",cursor:"pointer"},_={...ce,color:"#d85a30"};function y({label:a,value:t,placeholder:s,textarea:o,icon:u,onChange:l,onBlur:i,onKeyDown:h}){const b=U();return e(E,{label:a,icon:u??e(O,{}),htmlFor:b,children:o?e("textarea",{id:b,value:t,placeholder:s,onChange:g=>l(g.target.value)}):e("input",{id:b,type:"text",value:t,placeholder:s,onChange:g=>l(g.target.value),onBlur:i,onKeyDown:h})})}const de=[{label:"Auto",value:"auto"},{label:"Dark",value:"dark"},{label:"Light",value:"light"}],pe=[{label:"Tall (3:4)",value:"tall"},{label:"Square",value:"square"},{label:"Wide (2:1)",value:"wide"}];function R({label:a,icon:t,options:s,value:o,onChange:u}){return e(E,{label:a,icon:t,children:e("div",{role:"group","aria-label":a,style:{display:"flex",gap:4,flex:1},children:s.map(l=>{const i=o===l.value;return e("button",{type:"button","aria-pressed":i,onClick:()=>u(l.value),style:{flex:1,padding:"6px 8px",fontSize:12,borderRadius:6,cursor:"pointer",border:`1px solid ${i?"var(--sf-accent, #2563eb)":"var(--border-strong, #d0d0d0)"}`,background:i?"var(--sf-accent, #2563eb)":"transparent",color:i?"#fff":"inherit",fontWeight:i?500:400},children:l.label},l.value)})})})}function B({props:a,setSection:t,headOnly:s}){const o=i=>String(a[i]??""),u=a.mapTheme||H.mapTheme,l=H;return m(L,{children:[!s&&e(z,{children:"Section"}),e(y,{label:"Section number",value:o("sectionNumber"),placeholder:l.sectionNumber,onChange:i=>t({sectionNumber:i})}),e(y,{label:"Heading",textarea:!0,value:o("heading"),placeholder:l.heading,onChange:i=>t({heading:i})}),e(y,{label:"Body",textarea:!0,value:o("tagline"),placeholder:l.tagline,onChange:i=>t({tagline:i})}),s?null:m(L,{children:[e(z,{children:"City strip"}),e(y,{label:"Eyebrow",value:o("galleryKicker"),placeholder:l.galleryKicker,onChange:i=>t({galleryKicker:i})}),e(y,{label:"Hint",value:o("galleryHint"),placeholder:l.galleryHint,onChange:i=>t({galleryHint:i})}),e(R,{label:"Shape",icon:e(X,{}),options:pe,value:ae(a.imageShape),onChange:i=>t({imageShape:i})}),e(z,{children:"Map & Theme"}),e(R,{label:"Map theme",icon:e(V,{}),options:de,value:u,onChange:i=>t({mapTheme:i})})]})]})}function ue({cards:a,groupKey:t,onChange:s,onBack:o,onOpenCity:u,onNavigate:l}){const i=a.map((r,p)=>S(r)===t?p:-1).filter(r=>r>=0),h=String(a[i[0]]?.groupName??""),b=new Set(a.map(S).filter(r=>r!==t)),[g,C]=q(t),k=r=>s(a.map(p=>S(p)===t?{...p,...r}:p)),I=()=>{const r=g;if(r!==t){if(b.has(r)){C(t);return}s(a.map(p=>S(p)===t?{...p,group:r}:p)),l(r)}};return m("div",{className:"sf-locations-view",children:[e(N,{inline:!0,name:"Section",onSelect:o}),e("div",{style:{fontSize:14,fontWeight:500,margin:"6px 0 10px"},children:A(t,h)}),e(y,{label:"Group heading",value:g,placeholder:"e.g. Americas",onChange:C,onBlur:I,onKeyDown:r=>{r.key==="Enter"&&r.currentTarget.blur()}}),b.has(g)&&g!==t&&e("p",{className:"sf-note sf-note--error",role:"alert",children:"Another group already uses this heading — pick a different one."}),e(y,{label:"Group name",value:h,placeholder:"Shown beside the heading",onChange:r=>k({groupName:r})}),e(D,{label:"Cities in this group",noun:"city",items:i.map(r=>a[r]),onChange:r=>s(ie(a,t,r)),newItem:()=>({...G,group:t,groupName:h}),open:null,onOpen:()=>{},renderItem:()=>null,removeOnRow:!1,canDuplicate:()=>!1,renderRow:(r,p)=>m("button",{type:"button",style:W,onClick:()=>u(i[p]),children:[e("span",{children:r?.name||"City"}),e("span",{"aria-hidden":"true",children:"›"})]})}),e("div",{style:{marginTop:12},children:m("button",{type:"button",style:_,onClick:()=>{s(a.filter(r=>S(r)!==t)),o()},children:["Delete group (",i.length," ",i.length===1?"city":"cities",")"]})})]})}function me({value:a,onChange:t}){const s=Array.isArray(a)?a:[],o=te(),u=ee(),l=se(s),{appState:i,selectedItem:h}=$(n=>n),b=re(),g=h?.props??{},C=n=>{if(!h)return;const d=(i.data.content??[]).findIndex(v=>v.props.id===h.props.id);d<0||b.replaceComponent(le,d,{type:h.type,props:{...h.props,...n}})},k=(n,c)=>t(s.map((d,v)=>v===n?{...d,...c}:d)),I=()=>{const n=new Set(l.map(v=>v.key));let c=l.length+1,d=`Group ${c}`;for(;n.has(d);)d=`Group ${++c}`;return d};if(o.level==="texts")return m("div",{className:"sf-locations-view",children:[e(N,{inline:!0,name:"Locations",onSelect:()=>f({level:"groups"})}),e("div",{style:{fontSize:14,fontWeight:500,margin:"6px 0 10px"},children:"Texts"}),e(B,{props:g,setSection:C,headOnly:!0})]});if(o.level==="image"){const n=s[o.index];return n?m("div",{className:"sf-locations-view",children:[e(N,{inline:!0,name:String(n.name??"")||"City",onSelect:()=>f({level:"city",index:o.index})}),e("div",{style:{fontSize:14,fontWeight:500,margin:"6px 0 10px"},children:"Image"}),e(K,{value:n.photo||"",onChange:c=>k(o.index,{photo:c}),label:"Image",accept:"image/*"})]}):r()}if(o.level==="map"){const n=s[o.index];return n?m("div",{className:"sf-locations-view",children:[e(N,{inline:!0,name:String(n.name??"")||"City",onSelect:()=>f({level:"city",index:o.index})}),e("div",{style:{fontSize:14,fontWeight:500,margin:"6px 0 10px"},children:"Map"}),e(ne,{value:n.geocode,onChange:c=>k(o.index,{geocode:c}),label:"Coordinates"}),e(y,{label:"Directions link",icon:e(Z,{}),value:String(n.mapsUrl??""),onChange:c=>k(o.index,{mapsUrl:c})})]}):r()}if(o.level==="city"){const n=o.index,c=s[n];if(!c)return r();const d=S(c),v=(w,T)=>k(n,{[w]:T}),x=(w,T,M,P=!1)=>e(y,{label:T,icon:M,textarea:P,value:String(c[w]??""),onChange:j=>v(w,j)});return m("div",{className:"sf-locations-view",children:[e(N,{inline:!0,name:A(d,String(c.groupName??"")),onSelect:()=>f({level:"group",key:d})}),e("div",{style:{fontSize:14,fontWeight:500,margin:"6px 0 10px"},children:c.name||"City"}),x("name","Location name",e(O,{})),x("state","State / Province",e(O,{})),x("country","Country",e(Y,{})),x("address","Address",e(J,{}),!0),x("phone","Phone",e(Q,{})),x("hours","Opening hours",e(F,{})),x("timezone","Timezone chip",e(F,{})),e("div",{style:{marginTop:12},children:e("button",{type:"button",style:_,onClick:()=>{t(s.filter((w,T)=>T!==n)),f({level:"group",key:d})},children:"Delete city"})})]})}if(o.level==="group")return l.some(n=>n.key===o.key)?e(ue,{cards:s,groupKey:o.key,onChange:t,onBack:()=>f({level:"groups"}),onOpenCity:n=>f({level:"city",index:n}),onNavigate:n=>f({level:"group",key:n})},o.key):r();function r(){return m("div",{className:"sf-locations-view",children:[e(B,{props:g,setSection:C}),!u&&e(L,{children:p()})]})}function p(){return e(D,{label:"Locations",noun:"group",items:l,onChange:n=>{const c=n.find(d=>!l.some(v=>v.key===d.key));t(oe(s,n.map(d=>d.key),d=>[{...G,group:d,groupName:""}])),c&&f({level:"group",key:c.key})},newItem:()=>({key:I(),name:"",indices:[]}),open:null,onOpen:()=>{},renderItem:()=>null,removeOnRow:!1,canDuplicate:()=>!1,above:l.length===0?e("div",{style:{fontSize:12,color:"var(--fg-dim, #999)",padding:"4px 0"},children:"No locations yet."}):void 0,renderRow:n=>m("button",{type:"button",style:W,onClick:()=>f({level:"group",key:n.key}),children:[e("span",{style:{fontWeight:500},children:A(n.key,n.name)}),m("span",{style:{color:"var(--fg-dim, #999)"},children:[n.indices.length," ",n.indices.length===1?"city":"cities"," ›"]})]})})}return r()}export{me as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsx as e,jsxs as r,Fragment as c}from"react/jsx-runtime";import{sectionRunsFullWidth as B}from"../lib/content/section-width.js";import{Fragment as N}from"react";import{SiteLink as S}from"../lib/site-runtime.js";import{stripMarkup as E}from"../lib/markup.js";import L from"./EditorialSectionHead.js";import C from"./Placeholder.js";import G from"./SectionEyebrow.js";import{renderGold as t,renderHeadline as z}from"./goldPhrases.js";function M({headNum:k,headTitle:m,headDesc:d,category:f,metaMiddle:g,readLabel:b,title:n,dek:h,quote:i,quoteAttribution:l,ctaText:u,ctaHref:w,image:j,imageLabel:v,metaPublished:s,metaReads:p,omitHead:x=!1,...F}){const y=[f?e("span",{className:"text-accent",children:t(f)}):null,g?e("span",{children:t(g)}):null,b?e("span",{children:t(b)}):null].filter(Boolean),_=!!s||!!p;return r("section",{className:B(F)?x?"border-b border-line px-[var(--sf-site-gutter,40px)] pt-0 pb-[120px] max-[1100px]:px-[min(24px,var(--sf-site-gutter,40px))] max-[1100px]:pt-0 max-[1100px]:pb-20":"border-b border-line px-[var(--sf-site-gutter,40px)] py-[120px] max-[1100px]:px-[min(24px,var(--sf-site-gutter,40px))] max-[1100px]:py-20":x?"mx-auto max-w-[var(--sf-site-width,1600px)] border-b border-line px-[var(--sf-site-gutter,40px)] pt-0 pb-[120px] max-[1100px]:px-[min(24px,var(--sf-site-gutter,40px))] max-[1100px]:pt-0 max-[1100px]:pb-20":"mx-auto max-w-[var(--sf-site-width,1600px)] border-b border-line px-[var(--sf-site-gutter,40px)] py-[120px] max-[1100px]:px-[min(24px,var(--sf-site-gutter,40px))] max-[1100px]:py-20",children:[x?null:e(L,{num:k,title:m?z(m,!0):void 0,desc:d?t(d):void 0}),r("article",{className:"sf-card grid min-h-[640px] grid-cols-[1fr_1.2fr] border border-line max-[1100px]:grid-cols-1",children:[r("div",{className:"flex flex-col justify-center gap-7 border-r border-line bg-surface px-14 py-16 max-[1100px]:border-r-0 max-[1100px]:border-b max-[1100px]:px-7 max-[1100px]:py-12",children:[y.length>0&&e("div",{className:"flex items-center gap-3.5 font-mono text-[length:var(--size-label,12px)] uppercase tracking-[0.3em] text-fg-dim",children:y.map((o,a)=>r(N,{children:[a>0&&e("span",{className:"opacity-40",children:"
|
|
1
|
+
import{jsx as e,jsxs as r,Fragment as c}from"react/jsx-runtime";import{sectionRunsFullWidth as B}from"../lib/content/section-width.js";import{Fragment as N}from"react";import{SiteLink as S}from"../lib/site-runtime.js";import{stripMarkup as E}from"../lib/markup.js";import L from"./EditorialSectionHead.js";import C from"./Placeholder.js";import G from"./SectionEyebrow.js";import{renderGold as t,renderHeadline as z}from"./goldPhrases.js";function M({headNum:k,headTitle:m,headDesc:d,category:f,metaMiddle:g,readLabel:b,title:n,dek:h,quote:i,quoteAttribution:l,ctaText:u,ctaHref:w,image:j,imageLabel:v,metaPublished:s,metaReads:p,omitHead:x=!1,...F}){const y=[f?e("span",{className:"text-accent",children:t(f)}):null,g?e("span",{children:t(g)}):null,b?e("span",{children:t(b)}):null].filter(Boolean),_=!!s||!!p;return r("section",{className:B(F)?x?"border-b border-line px-[var(--sf-site-gutter,40px)] pt-0 pb-[120px] max-[1100px]:px-[min(24px,var(--sf-site-gutter,40px))] max-[1100px]:pt-0 max-[1100px]:pb-20":"border-b border-line px-[var(--sf-site-gutter,40px)] py-[120px] max-[1100px]:px-[min(24px,var(--sf-site-gutter,40px))] max-[1100px]:py-20":x?"mx-auto max-w-[var(--sf-site-width,1600px)] border-b border-line px-[var(--sf-site-gutter,40px)] pt-0 pb-[120px] max-[1100px]:px-[min(24px,var(--sf-site-gutter,40px))] max-[1100px]:pt-0 max-[1100px]:pb-20":"mx-auto max-w-[var(--sf-site-width,1600px)] border-b border-line px-[var(--sf-site-gutter,40px)] py-[120px] max-[1100px]:px-[min(24px,var(--sf-site-gutter,40px))] max-[1100px]:py-20",children:[x?null:e(L,{num:k,title:m?z(m,!0):void 0,desc:d?t(d):void 0}),r("article",{className:"sf-card grid min-h-[640px] grid-cols-[1fr_1.2fr] border border-line max-[1100px]:grid-cols-1",children:[r("div",{className:"flex flex-col justify-center gap-7 border-r border-line bg-surface px-14 py-16 max-[1100px]:border-r-0 max-[1100px]:border-b max-[1100px]:px-7 max-[1100px]:py-12",children:[y.length>0&&e("div",{className:"flex items-center gap-3.5 font-mono text-[length:var(--size-label,12px)] uppercase tracking-[0.3em] text-fg-dim",children:y.map((o,a)=>r(N,{children:[a>0&&e("span",{className:"opacity-40",children:"·"}),o]},a))}),n&&e("h2",{className:"font-heading2 text-[length:min(var(--size-headingMedium,clamp(36px,4.2vw,68px)),var(--sf-heading-max,9999px))] font-medium uppercase leading-[0.95] tracking-[-0.035em]",children:z(n,!0)}),h&&e("p",{className:"font-serif text-[length:var(--size-body,22px)] italic leading-[1.45] text-fg",children:t(h)}),(i||l)&&r("blockquote",{className:"max-w-[520px] border-l-2 border-accent py-1.5 pl-[22px] font-serif text-[length:var(--size-body,17px)] italic leading-[1.6] text-fg-dim",children:[i&&r(c,{children:["“",t(i),"”"]}),l&&e("strong",{className:"mt-2.5 block font-display text-[length:var(--size-body,14px)] font-normal not-italic uppercase tracking-[0.22em] text-fg",children:t(l)})]}),u&&r(S,{href:w||"#",className:"inline-flex items-center gap-3.5 self-start border border-btn px-7 py-4 font-mono text-[length:var(--size-label,13px)] uppercase tracking-[0.3em] text-btn transition-colors hover:bg-btn hover:text-btn-ink",children:[t(u)," ",e("span",{children:"→"})]})]}),r("div",{className:"relative overflow-hidden bg-surface-2 max-[1100px]:aspect-[4/3]",children:[e(C,{label:"long-read",src:j||void 0,alt:E(n||"Long read"),sizes:"(max-width: 1100px) 100vw, 56vw"}),e("div",{className:"pointer-events-none absolute inset-0 z-[1]",style:{background:"linear-gradient(180deg, rgba(10,10,10,0.55) 0%, transparent 25%, transparent 60%, rgba(10,10,10,0.7) 100%)"}}),v&&e(G,{text:v,size:12,className:"absolute right-6 top-6 z-[2]"}),_&&e("div",{className:"absolute bottom-6 left-6 z-[2] font-mono text-[length:var(--size-label,12px)] uppercase leading-[1.8] tracking-[0.22em] text-overlay-fg",children:[s?r(c,{children:[e("strong",{className:"font-normal text-accent",children:"Published"})," ",t(s)]}):null,p?r(c,{children:[e("strong",{className:"font-normal text-accent",children:"Reads in"})," ",t(p)]}):null].filter(Boolean).map((o,a)=>r(N,{children:[a>0&&e("br",{}),o]},a))})]})]})]})}export{M as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";import{jsxs as p,jsx as e}from"react/jsx-runtime";import{SettingsField as g}from"efficient-easel/panel";import{ImageIcon as h,PlayIcon as v}from"efficient-easel/icons";import{ImageBox as E}from"efficient-easel/pick";import{useContext as N,useState as y}from"react";import{FileIntakeAlert as S,useFileIntake as B}from"efficient-shell/file-intake";import{StorefrontDocumentContext as F}from"./StorefrontDocumentContext.js";import{requestMediaPick as x}from"../lib/editor-media-picker.js";import{useEditorHost as C}from"../lib/editor-host.js";import{backendOf as O}from"../lib/website-session.js";import{useEditorSession as P}from"../lib/editor-session-context.js";function w({value:k,onChange:l,label:t,accept:i,placeholder:j}){const m=C(),b=P(),[r,d]=y(!1),[c,a]=y(null),s=i.startsWith("video"),u=N(F),o=B({accept:i,maxSizeBytes:O(b).media.maxUploadBytes,acceptHint:s?"videos only":"images only",multiple:!1,disabled:r,onAccept:([n])=>{a(null),d(!0),x(m,{accept:i,title:t,file:n}).then(f=>{f&&l(f.url)}).catch(()=>a("Couldn
|
|
1
|
+
"use client";import{jsxs as p,jsx as e}from"react/jsx-runtime";import{SettingsField as g}from"efficient-easel/panel";import{ImageIcon as h,PlayIcon as v}from"efficient-easel/icons";import{ImageBox as E}from"efficient-easel/pick";import{useContext as N,useState as y}from"react";import{FileIntakeAlert as S,useFileIntake as B}from"efficient-shell/file-intake";import{StorefrontDocumentContext as F}from"./StorefrontDocumentContext.js";import{requestMediaPick as x}from"../lib/editor-media-picker.js";import{useEditorHost as C}from"../lib/editor-host.js";import{backendOf as O}from"../lib/website-session.js";import{useEditorSession as P}from"../lib/editor-session-context.js";function w({value:k,onChange:l,label:t,accept:i,placeholder:j}){const m=C(),b=P(),[r,d]=y(!1),[c,a]=y(null),s=i.startsWith("video"),u=N(F),o=B({accept:i,maxSizeBytes:O(b).media.maxUploadBytes,acceptHint:s?"videos only":"images only",multiple:!1,disabled:r,onAccept:([n])=>{a(null),d(!0),x(m,{accept:i,title:t,file:n}).then(f=>{f&&l(f.url)}).catch(()=>a("Couldn’t open the media picker — please try again.")).finally(()=>d(!1))}}),I=()=>(o.clearRejections(),a(null),x(m,{accept:i,title:t}).then(n=>n?.url??null));return u&&!u.capabilities.mediaEditing?e(g,{label:t,icon:s?e(v,{}):e(h,{}),children:p("div",{className:"sf-image-slot-inert",children:["Templates don’t store ",s?"videos":"images"," — this slot stays a placeholder. Each website picks its own after it’s created."]})}):p("div",{children:[e(g,{label:t,icon:s?e(v,{}):e(h,{}),children:e("div",{className:`sf-image-drop${o.dragOver?" is-dragover":""}`,...o.zoneProps,children:e(E,{value:k,onChange:l,label:t,kind:s?"video":"image",placeholder:j,openLibrary:r?void 0:I})})}),r&&e("div",{className:"sf-image-status",role:"status",children:"Opening the picker…"}),c&&e("div",{className:"sf-image-status sf-image-status--error",role:"alert",children:c}),e(S,{rejections:o.rejections,className:"sf-image-status sf-image-status--error"})]})}export{w as default};
|