@omniharmonic/openspace-cli 0.1.12 → 0.1.14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{agents-md-WR57UUCZ.js → agents-md-63S3T7CX.js} +2 -2
- package/dist/bin.js +3 -3
- package/dist/{chunk-MN752KCH.js → chunk-N7WFQYFE.js} +137 -16
- package/dist/chunk-N7WFQYFE.js.map +1 -0
- package/dist/{chunk-O55O7EA5.js → chunk-SY5NDWS2.js} +216 -18
- package/dist/chunk-SY5NDWS2.js.map +1 -0
- package/dist/{chunk-RDBZSWAR.js → chunk-TDLUJHWB.js} +9649 -1234
- package/dist/chunk-TDLUJHWB.js.map +1 -0
- package/dist/{crawl-FA76FYIE.js → crawl-YPDLNAN7.js} +2 -2
- package/dist/index.js +3 -3
- package/dist/starter/site/AGENTS.md +3 -3
- package/package.json +8 -8
- package/dist/chunk-MN752KCH.js.map +0 -1
- package/dist/chunk-O55O7EA5.js.map +0 -1
- package/dist/chunk-RDBZSWAR.js.map +0 -1
- /package/dist/{agents-md-WR57UUCZ.js.map → agents-md-63S3T7CX.js.map} +0 -0
- /package/dist/{crawl-FA76FYIE.js.map → crawl-YPDLNAN7.js.map} +0 -0
|
@@ -24107,6 +24107,127 @@ var SiteConfigSchema = named(
|
|
|
24107
24107
|
})
|
|
24108
24108
|
);
|
|
24109
24109
|
|
|
24110
|
+
// ../schema/src/design-system.ts
|
|
24111
|
+
var DESIGN_SYSTEM_FILE = "content/design-system.json";
|
|
24112
|
+
var Text = (max) => external_exports.string().max(max);
|
|
24113
|
+
var DesignColorSchema = external_exports.strictObject({
|
|
24114
|
+
/** `#rrggbb` (or any CSS colour the theme can read). */
|
|
24115
|
+
value: Text(80),
|
|
24116
|
+
role: external_exports.enum([...COLOR_ROLES, "brand", "secondary"]).optional(),
|
|
24117
|
+
/** Where it is used ("labels and rules only"). */
|
|
24118
|
+
usage: Text(200).optional()
|
|
24119
|
+
});
|
|
24120
|
+
var DesignFontSchema = external_exports.strictObject({
|
|
24121
|
+
family: Text(80),
|
|
24122
|
+
/** The full CSS stack as given (`'Lora', Georgia, serif`). */
|
|
24123
|
+
stack: Text(200).optional(),
|
|
24124
|
+
category: external_exports.enum(["serif", "sans-serif", "monospace", "display", "handwriting"]).optional(),
|
|
24125
|
+
weights: external_exports.array(external_exports.int().min(100).max(900)).max(9).optional(),
|
|
24126
|
+
/** Served by Google Fonts (so the site can self-host it). */
|
|
24127
|
+
google: external_exports.boolean().optional()
|
|
24128
|
+
});
|
|
24129
|
+
var DesignTypeStepSchema = external_exports.strictObject({
|
|
24130
|
+
size: external_exports.number().min(6).max(240).optional(),
|
|
24131
|
+
sizeMobile: external_exports.number().min(6).max(200).optional(),
|
|
24132
|
+
lineHeight: external_exports.number().min(0.6).max(4).optional(),
|
|
24133
|
+
letterSpacing: external_exports.number().min(-0.5).max(2).optional(),
|
|
24134
|
+
weight: external_exports.int().min(100).max(900).optional(),
|
|
24135
|
+
case: external_exports.enum(["none", "uppercase", "lowercase", "capitalize"]).optional(),
|
|
24136
|
+
font: external_exports.enum(["heading", "body", "label", "mono"]).optional()
|
|
24137
|
+
});
|
|
24138
|
+
var DesignTokensSchema = external_exports.strictObject({
|
|
24139
|
+
colors: external_exports.record(Text(60), DesignColorSchema).optional(),
|
|
24140
|
+
fonts: external_exports.strictObject({
|
|
24141
|
+
heading: DesignFontSchema.optional(),
|
|
24142
|
+
body: DesignFontSchema.optional(),
|
|
24143
|
+
label: DesignFontSchema.optional(),
|
|
24144
|
+
mono: DesignFontSchema.optional()
|
|
24145
|
+
}).optional(),
|
|
24146
|
+
/** Type scale by role (`display`, `h1`…`h4`, `lead`, `body`, `small`, `eyebrow`, `button`, `nav`). */
|
|
24147
|
+
type: external_exports.record(Text(40), DesignTypeStepSchema).optional(),
|
|
24148
|
+
/** Page rhythm and spacing steps in px. */
|
|
24149
|
+
space: external_exports.strictObject({
|
|
24150
|
+
contentWidth: external_exports.number().min(0).max(4e3).optional(),
|
|
24151
|
+
narrowWidth: external_exports.number().min(0).max(4e3).optional(),
|
|
24152
|
+
sectionPadding: external_exports.number().min(0).max(400).optional(),
|
|
24153
|
+
sectionPaddingMobile: external_exports.number().min(0).max(400).optional(),
|
|
24154
|
+
gutter: external_exports.number().min(0).max(400).optional(),
|
|
24155
|
+
gutterMobile: external_exports.number().min(0).max(400).optional(),
|
|
24156
|
+
scale: external_exports.record(Text(40), external_exports.number().min(0).max(2e3)).optional()
|
|
24157
|
+
}).optional(),
|
|
24158
|
+
/** Corner radii in px (`base`, `button`, `card`, `image`; 9999 = pill). */
|
|
24159
|
+
radius: external_exports.record(Text(40), external_exports.number().min(0).max(1e4)).optional(),
|
|
24160
|
+
shadow: external_exports.record(Text(40), Text(200)).optional()
|
|
24161
|
+
});
|
|
24162
|
+
var DESIGN_SOURCE_KINDS = [
|
|
24163
|
+
"tokens",
|
|
24164
|
+
"brand-kit",
|
|
24165
|
+
"html",
|
|
24166
|
+
"brand-doc",
|
|
24167
|
+
"logo",
|
|
24168
|
+
"photos",
|
|
24169
|
+
"manual",
|
|
24170
|
+
"template",
|
|
24171
|
+
"claude"
|
|
24172
|
+
];
|
|
24173
|
+
var DesignSystemSchema = named(
|
|
24174
|
+
"DesignSystem",
|
|
24175
|
+
"content/design-system.json: the brief, brand material, distilled design tokens and how they map onto Site Styles (read by Claude's design skills).",
|
|
24176
|
+
external_exports.strictObject({
|
|
24177
|
+
$schema: external_exports.string().optional(),
|
|
24178
|
+
version: external_exports.literal(1),
|
|
24179
|
+
/** The person's own words about the site (Start with Claude). */
|
|
24180
|
+
brief: external_exports.strictObject({
|
|
24181
|
+
about: Text(2e3).optional(),
|
|
24182
|
+
audience: Text(1e3).optional(),
|
|
24183
|
+
/** How it should feel ("warm", "calm", "bold"…). */
|
|
24184
|
+
feeling: external_exports.array(Text(40)).max(12).optional(),
|
|
24185
|
+
/** Anything else they said (must-haves, places they love). */
|
|
24186
|
+
notes: Text(2e3).optional()
|
|
24187
|
+
}).optional(),
|
|
24188
|
+
brand: external_exports.strictObject({
|
|
24189
|
+
name: Text(120).optional(),
|
|
24190
|
+
/** How the brand speaks (from a brand document, or Claude's notes). */
|
|
24191
|
+
voice: Text(2e3).optional(),
|
|
24192
|
+
/** Text of a brand document the owner brought (trimmed). */
|
|
24193
|
+
guidelines: Text(2e4).optional(),
|
|
24194
|
+
logo: MediaPathSchema.optional(),
|
|
24195
|
+
/** Brand photos the owner brought (media paths). */
|
|
24196
|
+
photos: external_exports.array(MediaPathSchema).max(24).optional(),
|
|
24197
|
+
/** Files kept in the repository for reference (PDF brand books…), not published. */
|
|
24198
|
+
documents: external_exports.array(external_exports.strictObject({ name: Text(120), path: Text(300) })).max(12).optional()
|
|
24199
|
+
}).optional(),
|
|
24200
|
+
tokens: DesignTokensSchema,
|
|
24201
|
+
/** Design principles to keep ("Rust is for labels and rules only; never body text"). */
|
|
24202
|
+
rules: external_exports.array(Text(300)).max(40).optional(),
|
|
24203
|
+
/** How the tokens became Site Styles: plain sentences, contrast changes included. */
|
|
24204
|
+
mapping: external_exports.strictObject({
|
|
24205
|
+
notes: external_exports.array(Text(400)).max(40),
|
|
24206
|
+
contrast: external_exports.array(
|
|
24207
|
+
external_exports.strictObject({
|
|
24208
|
+
theme: Text(40),
|
|
24209
|
+
role: Text(40),
|
|
24210
|
+
from: Text(40),
|
|
24211
|
+
to: Text(40),
|
|
24212
|
+
against: Text(40)
|
|
24213
|
+
})
|
|
24214
|
+
).max(80).optional()
|
|
24215
|
+
}).optional(),
|
|
24216
|
+
/** Bespoke components and what each is for (kept in step with content/components). */
|
|
24217
|
+
components: external_exports.record(Text(40), external_exports.strictObject({ purpose: Text(300), source: Text(200).optional() })).optional(),
|
|
24218
|
+
sources: external_exports.array(
|
|
24219
|
+
external_exports.strictObject({
|
|
24220
|
+
kind: external_exports.enum(DESIGN_SOURCE_KINDS),
|
|
24221
|
+
name: Text(200).optional(),
|
|
24222
|
+
/** Token format (`dtcg`, `style-dictionary`, `tokens-studio`, `canva`, `plain`). */
|
|
24223
|
+
format: Text(40).optional(),
|
|
24224
|
+
at: Text(40).optional()
|
|
24225
|
+
})
|
|
24226
|
+
).max(40).optional(),
|
|
24227
|
+
updatedAt: Text(40).optional()
|
|
24228
|
+
})
|
|
24229
|
+
);
|
|
24230
|
+
|
|
24110
24231
|
// ../schema/src/media.ts
|
|
24111
24232
|
var MEDIA_KINDS = ["image", "video", "audio", "file"];
|
|
24112
24233
|
var MAX_PLACEHOLDER_LENGTH = 1024;
|
|
@@ -24256,14 +24377,21 @@ var TypographyChoicesSchema = named(
|
|
|
24256
24377
|
);
|
|
24257
24378
|
var LayoutChoicesSchema = named(
|
|
24258
24379
|
"LayoutChoices",
|
|
24259
|
-
"Page rhythm: content width and narrow width (px), section padding (px at desktop and on phones), side gutter.",
|
|
24380
|
+
"Page rhythm: content width and narrow width (px), section padding (px at desktop and on phones), side gutter, and an optional raised content card over a page background.",
|
|
24260
24381
|
external_exports.strictObject({
|
|
24261
24382
|
contentWidth: external_exports.int().min(480).max(2400).optional(),
|
|
24262
24383
|
narrowWidth: external_exports.int().min(360).max(1600).optional(),
|
|
24263
24384
|
sectionPadding: external_exports.int().min(0).max(320).optional(),
|
|
24264
24385
|
sectionPaddingMobile: external_exports.int().min(0).max(240).optional(),
|
|
24265
24386
|
gutter: external_exports.int().min(0).max(160).optional(),
|
|
24266
|
-
gutterMobile: external_exports.int().min(0).max(80).optional()
|
|
24387
|
+
gutterMobile: external_exports.int().min(0).max(80).optional(),
|
|
24388
|
+
/**
|
|
24389
|
+
* `card`: the page's sections sit on a raised panel over the page background (a blog
|
|
24390
|
+
* theme's content card); absent or `none`: sections run edge to edge.
|
|
24391
|
+
*/
|
|
24392
|
+
surface: external_exports.enum(["none", "card"]).optional(),
|
|
24393
|
+
/** The page background around a `card` surface (absent: the light theme's muted surface). */
|
|
24394
|
+
pageBackground: CssColorSchema.optional()
|
|
24267
24395
|
})
|
|
24268
24396
|
);
|
|
24269
24397
|
var StyleChoicesSchema = named(
|
|
@@ -24374,7 +24502,12 @@ var SiteDocumentSchema = named(
|
|
|
24374
24502
|
* Custom components by name (`content/components/<name>.json`, ADR custom-components).
|
|
24375
24503
|
* Optional: documents without components are unchanged.
|
|
24376
24504
|
*/
|
|
24377
|
-
components: ComponentsSchema.optional()
|
|
24505
|
+
components: ComponentsSchema.optional(),
|
|
24506
|
+
/**
|
|
24507
|
+
* The design-system record (`content/design-system.json`): brief, brand material, tokens and
|
|
24508
|
+
* their Site Styles mapping, for Claude's design skills. Optional; never rendered.
|
|
24509
|
+
*/
|
|
24510
|
+
designSystem: DesignSystemSchema.optional()
|
|
24378
24511
|
}).superRefine((doc, ctx) => {
|
|
24379
24512
|
const slugs = /* @__PURE__ */ new Map();
|
|
24380
24513
|
const sectionIds = /* @__PURE__ */ new Map();
|
|
@@ -27588,7 +27721,9 @@ function StackBody({ section: section2 }) {
|
|
|
27588
27721
|
"os-section__inner os-stack",
|
|
27589
27722
|
`os-w-${layout.width ?? "content"}`,
|
|
27590
27723
|
layout.align && `is-align-${layout.align}`,
|
|
27591
|
-
cols.length > 1 && "is-multi"
|
|
27724
|
+
cols.length > 1 && "is-multi",
|
|
27725
|
+
// A full-width designer section draws its own edges (no side gutter).
|
|
27726
|
+
layout.width === "full" && section2.blocks.length === 1 && section2.blocks[0]?.type.startsWith("component/") && "is-bleed"
|
|
27592
27727
|
),
|
|
27593
27728
|
style: stackVars(layout),
|
|
27594
27729
|
children: cols.map((blocks2, i) => {
|
|
@@ -28554,12 +28689,18 @@ function PageView(props) {
|
|
|
28554
28689
|
const heroTheme = visible[0]?.style.colorTheme ?? "light";
|
|
28555
28690
|
const cart = doc.site.integrations?.stripeConnected ?? false;
|
|
28556
28691
|
const logoVars = header.logoHeight ? responsiveVars("logo-h", header.logoHeight, (px) => `${px}px`) : void 0;
|
|
28692
|
+
const pageBg = doc.styles.choices.layout?.pageBackground;
|
|
28693
|
+
const pageVars = pageBg && doc.styles.choices.layout?.surface === "card" ? { ...logoVars ?? {}, "--page-bg": pageBg } : logoVars;
|
|
28557
28694
|
const content = /* @__PURE__ */ jsx10(RenderContext.Provider, { value: { doc, page, mode, basePath, hubUrl }, children: /* @__PURE__ */ jsx10(ImageResolverContext.Provider, { value: imageMap, children: /* @__PURE__ */ jsxs7(
|
|
28558
28695
|
"div",
|
|
28559
28696
|
{
|
|
28560
|
-
className: cx(
|
|
28697
|
+
className: cx(
|
|
28698
|
+
"os-page",
|
|
28699
|
+
header.overlay && !header.hidden && "has-overlay-header",
|
|
28700
|
+
doc.styles.choices.layout?.surface === "card" && "has-surface-card"
|
|
28701
|
+
),
|
|
28561
28702
|
"data-os-page": page.id,
|
|
28562
|
-
style:
|
|
28703
|
+
style: pageVars,
|
|
28563
28704
|
children: [
|
|
28564
28705
|
/* @__PURE__ */ jsx10("a", { className: "os-skip-link", href: "#main", children: "Skip to content" }),
|
|
28565
28706
|
/* @__PURE__ */ jsx10(AnnouncementBar, { announcement: doc.site.announcement }),
|
|
@@ -28670,6 +28811,7 @@ ${typeClasses}
|
|
|
28670
28811
|
/* Stack mode: 1\u20134 columns, per-breakpoint ratios (--cols/--tcols/--mcols) and order (--to/--mo) */
|
|
28671
28812
|
.os-stack{display:grid;max-inline-size:calc(var(--content-max) + 2 * ${v(T.section.gutter)});padding-inline:${v(T.section.gutter)};grid-template-columns:var(--mcols,minmax(0,1fr));row-gap:var(--gap,${v(T.section.blockGap)});column-gap:var(--gap,${v(T.space.xl)});align-items:start}
|
|
28672
28813
|
.os-w-full.os-stack{max-inline-size:none}
|
|
28814
|
+
.os-stack.is-bleed{padding-inline:0}
|
|
28673
28815
|
.os-stack.is-align-center{align-items:center}
|
|
28674
28816
|
.os-stack.is-align-end{align-items:end}
|
|
28675
28817
|
.os-stack.is-align-stretch{align-items:stretch}
|
|
@@ -28822,6 +28964,8 @@ ${button("tertiary")}
|
|
|
28822
28964
|
.os-header__brand--split,.os-nav,.os-header__tagline{display:none}
|
|
28823
28965
|
.os-header__actions{display:none;align-items:center;gap:${v(T.space.xs)}}
|
|
28824
28966
|
.os-header__actions .os-button{min-height:2.5rem;padding-block:0.5rem}
|
|
28967
|
+
/* A short label stays on one line beside narrow columns (it wraps on phones if it must). */
|
|
28968
|
+
@media (min-width:768px){.os-button{white-space:nowrap;flex-shrink:0}}
|
|
28825
28969
|
.os-header__toggle,.os-header__cart,.os-menu__close{position:relative;display:inline-grid;place-items:center;width:2.75rem;height:2.75rem;padding:0;border:0;border-radius:${v(T.radius.full)};background:transparent;color:inherit}
|
|
28826
28970
|
.os-header__toggle:hover,.os-header__cart:hover,.os-menu__close:hover{background:${v(c2.surface)}}
|
|
28827
28971
|
html:not(.os-js) .os-header__toggle{display:none}
|
|
@@ -28891,7 +29035,7 @@ html:not(.os-js) .os-header__toggle{display:none}
|
|
|
28891
29035
|
.os-header.os-header--sidebar-left{position:fixed;inset-block:0;inset-inline-start:0;inline-size:var(--sidebar-w);overflow-y:auto;overscroll-behavior:contain}
|
|
28892
29036
|
.os-header--sidebar-left .os-header__bar{flex-direction:column;align-items:flex-start;gap:${v(T.space.sm)};min-height:0;max-inline-size:none;margin:0;padding:clamp(2rem,4vw,4rem) clamp(1.5rem,3.5vw,3.5rem)}
|
|
28893
29037
|
.os-header--sidebar-left .os-header__brand{flex-direction:column;align-items:flex-start;gap:0.75rem;margin:0}
|
|
28894
|
-
.os-header--sidebar-left .os-header__logo{height:auto;max-
|
|
29038
|
+
.os-header--sidebar-left .os-header__logo{height:var(--logo-h,auto);max-block-size:var(--logo-h,8rem);max-inline-size:100%;width:auto}
|
|
28895
29039
|
.os-header.os-header--sidebar-left .os-header__title{white-space:normal;max-inline-size:none}
|
|
28896
29040
|
.os-header--sidebar-left .os-header__tagline{display:block;margin:0;font-size:${v(T.type.small["font-size"])};line-height:${v(T.type.small["line-height"])};color:${v(c2["text-muted"])}}
|
|
28897
29041
|
.os-header--sidebar-left .os-nav{inline-size:100%;margin-block-start:${v(T.space.sm)}}
|
|
@@ -28924,6 +29068,13 @@ html:not(.os-js) .os-header__toggle{display:none}
|
|
|
28924
29068
|
@media (min-width:768px){.os-header__logo{height:var(--tlogo-h,2.5rem)}}
|
|
28925
29069
|
@media (min-width:1200px){.os-header__logo{height:var(--logo-h,2.5rem)}}
|
|
28926
29070
|
|
|
29071
|
+
/* A raised content card over the page background (Site Styles \u2192 layout.surface "card"). */
|
|
29072
|
+
.os-page.has-surface-card{background:var(--page-bg,${v(c2.surface)})}
|
|
29073
|
+
@media (min-width:768px){
|
|
29074
|
+
.has-surface-card>.os-main{flex:none;margin:8.3333% 8.3333% 0;padding-block:8.3333% 0;background:${v(c2.background)};box-shadow:0 0 1px rgb(0 0 0 / 0.15)}
|
|
29075
|
+
.has-surface-card>.os-footer{margin:8.3333% 8.3333% 8.3333%;box-shadow:0 0 1px rgb(0 0 0 / 0.15)}
|
|
29076
|
+
}
|
|
29077
|
+
|
|
28927
29078
|
/* Footer */
|
|
28928
29079
|
.os-footer{margin-top:auto}
|
|
28929
29080
|
.os-footer .os-footer__section:not(.has-pad){padding-block:${v(T.space["2xl"])}}
|
|
@@ -32862,7 +33013,19 @@ var productBlock = defineBlock({
|
|
|
32862
33013
|
}),
|
|
32863
33014
|
quantity: f.boolean({ default: true, label: "Quantity picker" }),
|
|
32864
33015
|
buttonLabel: f.text({ maxLength: 30, default: "Add to cart" }),
|
|
32865
|
-
detailsLabel: f.text({ maxLength: 30, default: "View details" })
|
|
33016
|
+
detailsLabel: f.text({ maxLength: 30, default: "View details" }),
|
|
33017
|
+
showPrice: f.boolean({ optional: true, label: "Show the price", help: "On unless turned off" }),
|
|
33018
|
+
showBuy: f.boolean({
|
|
33019
|
+
optional: true,
|
|
33020
|
+
label: "Show Add to cart",
|
|
33021
|
+
help: "Off: just the picture and name, linking to the product's page (a shop grid)"
|
|
33022
|
+
}),
|
|
33023
|
+
imageAspect: f.select({
|
|
33024
|
+
options: ASPECT_OPTIONS,
|
|
33025
|
+
optional: true,
|
|
33026
|
+
label: "Image shape",
|
|
33027
|
+
help: "Crop for the product photo (default portrait 4:5)"
|
|
33028
|
+
})
|
|
32866
33029
|
},
|
|
32867
33030
|
variants: ["card", "split", "minimal"],
|
|
32868
33031
|
styleSlots: [
|
|
@@ -32925,7 +33088,7 @@ var productBlock = defineBlock({
|
|
|
32925
33088
|
Img,
|
|
32926
33089
|
{
|
|
32927
33090
|
src: image3,
|
|
32928
|
-
aspect: "4:5",
|
|
33091
|
+
aspect: fields.imageAspect ?? "4:5",
|
|
32929
33092
|
sizes: variant === "split" ? "(min-width: 768px) 50vw, 100vw" : "(min-width: 768px) 40vw, 100vw",
|
|
32930
33093
|
className: cx("os-product__image", imageClass)
|
|
32931
33094
|
}
|
|
@@ -32941,9 +33104,9 @@ var productBlock = defineBlock({
|
|
|
32941
33104
|
children: /* @__PURE__ */ jsx22("a", { className: "os-product__link", href, children: fm.title })
|
|
32942
33105
|
}
|
|
32943
33106
|
) : null,
|
|
32944
|
-
price ? /* @__PURE__ */ jsx22("p", { className: "os-product__price", children: /* @__PURE__ */ jsx22(PriceText, { price }) }) : null,
|
|
33107
|
+
price && fields.showPrice !== false ? /* @__PURE__ */ jsx22("p", { className: "os-product__price", children: /* @__PURE__ */ jsx22(PriceText, { price }) }) : null,
|
|
32945
33108
|
fields.showDescription && fm.excerpt ? /* @__PURE__ */ jsx22("p", { className: "os-product__desc", children: fm.excerpt }) : null,
|
|
32946
|
-
firstAvailable && !canSell ? /* @__PURE__ */ jsx22(
|
|
33109
|
+
fields.showBuy === false ? null : firstAvailable && !canSell ? /* @__PURE__ */ jsx22(
|
|
32947
33110
|
OpeningSoon,
|
|
32948
33111
|
{
|
|
32949
33112
|
kind: "store",
|
|
@@ -33005,7 +33168,7 @@ var productBlock = defineBlock({
|
|
|
33005
33168
|
)
|
|
33006
33169
|
] })
|
|
33007
33170
|
] }) : options.length ? /* @__PURE__ */ jsx22("p", { className: "os-product__soldout", children: "Sold out" }) : /* @__PURE__ */ jsx22(EditorNotice, { children: "Give this product a SKU so it can be added to the cart." }),
|
|
33008
|
-
fields.detailsLabel ? /* @__PURE__ */ jsxs18("a", { className: "os-product__details", href, children: [
|
|
33171
|
+
fields.detailsLabel && fields.showBuy !== false ? /* @__PURE__ */ jsxs18("a", { className: "os-product__details", href, children: [
|
|
33009
33172
|
fields.detailsLabel,
|
|
33010
33173
|
/* @__PURE__ */ jsxs18("span", { className: "os-visually-hidden", children: [
|
|
33011
33174
|
": ",
|
|
@@ -34076,6 +34239,15 @@ var galleryBlock = defineBlock({
|
|
|
34076
34239
|
display: "segmented",
|
|
34077
34240
|
help: "Columns on wide screens (grid and masonry)"
|
|
34078
34241
|
}),
|
|
34242
|
+
fit: f.select({
|
|
34243
|
+
options: [
|
|
34244
|
+
{ value: "cover", label: "Fill the frame" },
|
|
34245
|
+
{ value: "contain", label: "Show whole photos" }
|
|
34246
|
+
],
|
|
34247
|
+
optional: true,
|
|
34248
|
+
label: "Fit",
|
|
34249
|
+
help: "Slideshows and carousels: crop each photo to the frame, or show it whole inside it"
|
|
34250
|
+
}),
|
|
34079
34251
|
lightbox: f.boolean({ default: true, help: "Open photos in a full-screen viewer" }),
|
|
34080
34252
|
showCaptions: f.boolean({ default: false, label: "Show captions" })
|
|
34081
34253
|
},
|
|
@@ -34112,7 +34284,15 @@ function Gallery({ id, fields, variant }) {
|
|
|
34112
34284
|
const lightbox = fields.lightbox && fields.images.some((i) => !i.link);
|
|
34113
34285
|
const carousel = variant === "carousel" || variant === "slideshow";
|
|
34114
34286
|
const media2 = (item3, i) => {
|
|
34115
|
-
const img = /* @__PURE__ */ jsx28(
|
|
34287
|
+
const img = /* @__PURE__ */ jsx28(
|
|
34288
|
+
Img,
|
|
34289
|
+
{
|
|
34290
|
+
src: item3.image,
|
|
34291
|
+
sizes,
|
|
34292
|
+
aspect: crop ?? "original",
|
|
34293
|
+
...fields.fit === "contain" && crop ? { fit: "contain" } : {}
|
|
34294
|
+
}
|
|
34295
|
+
);
|
|
34116
34296
|
if (item3.link)
|
|
34117
34297
|
return /* @__PURE__ */ jsx28(Link, { to: item3.link, className: "os-gallery__link", children: img });
|
|
34118
34298
|
if (fields.lightbox)
|
|
@@ -34186,7 +34366,7 @@ var galleryCss = `
|
|
|
34186
34366
|
.os-gallery--grid .os-gallery__items{display:grid;gap:var(--os-space-xs);grid-template-columns:repeat(2,minmax(0,1fr))}
|
|
34187
34367
|
@container block (min-width:44rem){.os-gallery--grid .os-gallery__items{grid-template-columns:repeat(var(--g-tcols,3),minmax(0,1fr));gap:var(--os-space-sm)}}
|
|
34188
34368
|
@container block (min-width:64rem){.os-gallery--grid .os-gallery__items{grid-template-columns:repeat(var(--g-cols,3),minmax(0,1fr))}}
|
|
34189
|
-
@container block (max-width:
|
|
34369
|
+
@container block (max-width:20rem){.os-gallery--grid .os-gallery__items{grid-template-columns:minmax(0,1fr)}}
|
|
34190
34370
|
|
|
34191
34371
|
.os-gallery--masonry .os-gallery__items{columns:2;column-gap:var(--os-space-xs)}
|
|
34192
34372
|
.os-gallery--masonry .os-gallery__item{break-inside:avoid;margin-bottom:var(--os-space-xs)}
|
|
@@ -34434,7 +34614,13 @@ var imageBlock = defineBlock({
|
|
|
34434
34614
|
aspect: aspectField("4:5"),
|
|
34435
34615
|
caption: f.text({ optional: true, maxLength: 200, ai: "Optional; one short sentence." }),
|
|
34436
34616
|
link: f.link({ optional: true, help: "Make the whole image a link" }),
|
|
34437
|
-
lightbox: f.boolean({ default: false, help: "Open a larger view when clicked" })
|
|
34617
|
+
lightbox: f.boolean({ default: false, help: "Open a larger view when clicked" }),
|
|
34618
|
+
size: f.select({
|
|
34619
|
+
options: ["fill", "original"],
|
|
34620
|
+
optional: true,
|
|
34621
|
+
label: "Size",
|
|
34622
|
+
help: "Fill the column, or show the picture no wider than its own size (a book cover, a small portrait)"
|
|
34623
|
+
})
|
|
34438
34624
|
},
|
|
34439
34625
|
variants: ["default", "caption-overlay", "inset"],
|
|
34440
34626
|
styleSlots: ["radius", "shadow", "imageTreatment", "align", "padding", "animation"],
|
|
@@ -34499,10 +34685,12 @@ function ImageView({ id, fields, variant }) {
|
|
|
34499
34685
|
}
|
|
34500
34686
|
);
|
|
34501
34687
|
}
|
|
34688
|
+
const natural = !grid2 && fields.size === "original" && fields.image.width ? fields.image.width : 0;
|
|
34502
34689
|
return /* @__PURE__ */ jsxs24(
|
|
34503
34690
|
"figure",
|
|
34504
34691
|
{
|
|
34505
|
-
className: cx("os-image", `os-image--${variant}`, grid2 && "is-fill"),
|
|
34692
|
+
className: cx("os-image", `os-image--${variant}`, grid2 && "is-fill", natural && "is-natural"),
|
|
34693
|
+
style: natural ? { "--image-max": `${natural}px` } : void 0,
|
|
34506
34694
|
"data-os-behavior": !fields.link && fields.lightbox ? "lightbox" : void 0,
|
|
34507
34695
|
children: [
|
|
34508
34696
|
media2,
|
|
@@ -34514,7 +34702,13 @@ function ImageView({ id, fields, variant }) {
|
|
|
34514
34702
|
var imageCss = `
|
|
34515
34703
|
.os-image{position:relative;display:grid;gap:var(--os-space-2xs)}
|
|
34516
34704
|
.os-image.is-fill{height:100%;grid-template-rows:minmax(0,1fr);grid-auto-rows:auto}
|
|
34517
|
-
.os-image.is-fill>.os-
|
|
34705
|
+
.os-image.is-fill>.os-image.is-natural{max-inline-size:min(100%,var(--image-max))}
|
|
34706
|
+
.os-align-center .os-image.is-natural,.os-align-center>.os-image.is-natural{margin-inline:auto}
|
|
34707
|
+
.os-align-end .os-image.is-natural{margin-inline-start:auto}
|
|
34708
|
+
.os-image__link{display:block;height:100%}
|
|
34709
|
+
.os-image.is-natural{max-inline-size:min(100%,var(--image-max))}
|
|
34710
|
+
.os-align-center .os-image.is-natural,.os-align-center>.os-image.is-natural{margin-inline:auto}
|
|
34711
|
+
.os-align-end .os-image.is-natural{margin-inline-start:auto}
|
|
34518
34712
|
.os-image__link{display:block;color:inherit;border-radius:var(--os-image-radius)}
|
|
34519
34713
|
.os-image__caption{font-size:var(--os-type-small-font-size);line-height:var(--os-type-small-line-height);color:var(--os-color-text-muted)}
|
|
34520
34714
|
.os-image--caption-overlay .os-image__caption{position:absolute;inset:auto 0 0 0;z-index:2;padding:var(--os-space-lg) var(--os-space-sm) var(--os-space-xs);color:var(--os-color-neutral-50);background:linear-gradient(to top,color-mix(in oklab,var(--os-color-neutral-950) 62%,transparent),color-mix(in oklab,var(--os-color-neutral-950) 0%,transparent));border-radius:0 0 var(--os-image-radius) var(--os-image-radius);pointer-events:none}
|
|
@@ -52955,6 +53149,8 @@ export {
|
|
|
52955
53149
|
componentInstances,
|
|
52956
53150
|
expandComponent,
|
|
52957
53151
|
SiteConfigSchema,
|
|
53152
|
+
DESIGN_SYSTEM_FILE,
|
|
53153
|
+
DesignSystemSchema,
|
|
52958
53154
|
MediaMetaSchema,
|
|
52959
53155
|
DENSITIES,
|
|
52960
53156
|
SHAPES,
|
|
@@ -52970,7 +53166,9 @@ export {
|
|
|
52970
53166
|
fallbackMobileRects,
|
|
52971
53167
|
toJsonSchema,
|
|
52972
53168
|
blockFieldsJsonSchema,
|
|
53169
|
+
oklchToHex,
|
|
52973
53170
|
parseColor,
|
|
53171
|
+
isColor,
|
|
52974
53172
|
toHex,
|
|
52975
53173
|
deltaEOK,
|
|
52976
53174
|
relativeLuminance,
|
|
@@ -53111,4 +53309,4 @@ lucide/dist/esm/lucide.mjs:
|
|
|
53111
53309
|
* See the LICENSE file in the root directory of this source tree.
|
|
53112
53310
|
*)
|
|
53113
53311
|
*/
|
|
53114
|
-
//# sourceMappingURL=chunk-
|
|
53312
|
+
//# sourceMappingURL=chunk-SY5NDWS2.js.map
|