@omniharmonic/openspace-cli 0.1.12 → 0.1.13

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.
@@ -12970,13 +12970,18 @@ export {
12970
12970
  RobotsDisallowed,
12971
12971
  SiteFetcher,
12972
12972
  isElement,
12973
+ parseDocument,
12973
12974
  parseHtmlFragment,
12974
12975
  attr,
12975
12976
  classes,
12977
+ findAll,
12978
+ find,
12979
+ text,
12976
12980
  videoUrl,
12977
12981
  stripTags,
12978
12982
  hiddenClassesFromCss,
12979
12983
  sitePath,
12984
+ formFromHtml,
12980
12985
  sectionsFrom,
12981
12986
  parseHtmlPage,
12982
12987
  stripSuffix,
@@ -12988,4 +12993,4 @@ export {
12988
12993
  crawlSquarespace,
12989
12994
  crawlGeneric
12990
12995
  };
12991
- //# sourceMappingURL=chunk-MN752KCH.js.map
12996
+ //# sourceMappingURL=chunk-EFSGZWAO.js.map
@@ -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;
@@ -24374,7 +24495,12 @@ var SiteDocumentSchema = named(
24374
24495
  * Custom components by name (`content/components/<name>.json`, ADR custom-components).
24375
24496
  * Optional: documents without components are unchanged.
24376
24497
  */
24377
- components: ComponentsSchema.optional()
24498
+ components: ComponentsSchema.optional(),
24499
+ /**
24500
+ * The design-system record (`content/design-system.json`): brief, brand material, tokens and
24501
+ * their Site Styles mapping, for Claude's design skills. Optional; never rendered.
24502
+ */
24503
+ designSystem: DesignSystemSchema.optional()
24378
24504
  }).superRefine((doc, ctx) => {
24379
24505
  const slugs = /* @__PURE__ */ new Map();
24380
24506
  const sectionIds = /* @__PURE__ */ new Map();
@@ -27588,7 +27714,9 @@ function StackBody({ section: section2 }) {
27588
27714
  "os-section__inner os-stack",
27589
27715
  `os-w-${layout.width ?? "content"}`,
27590
27716
  layout.align && `is-align-${layout.align}`,
27591
- cols.length > 1 && "is-multi"
27717
+ cols.length > 1 && "is-multi",
27718
+ // A full-width designer section draws its own edges (no side gutter).
27719
+ layout.width === "full" && section2.blocks.length === 1 && section2.blocks[0]?.type.startsWith("component/") && "is-bleed"
27592
27720
  ),
27593
27721
  style: stackVars(layout),
27594
27722
  children: cols.map((blocks2, i) => {
@@ -28670,6 +28798,7 @@ ${typeClasses}
28670
28798
  /* Stack mode: 1\u20134 columns, per-breakpoint ratios (--cols/--tcols/--mcols) and order (--to/--mo) */
28671
28799
  .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
28800
  .os-w-full.os-stack{max-inline-size:none}
28801
+ .os-stack.is-bleed{padding-inline:0}
28673
28802
  .os-stack.is-align-center{align-items:center}
28674
28803
  .os-stack.is-align-end{align-items:end}
28675
28804
  .os-stack.is-align-stretch{align-items:stretch}
@@ -52955,6 +53084,8 @@ export {
52955
53084
  componentInstances,
52956
53085
  expandComponent,
52957
53086
  SiteConfigSchema,
53087
+ DESIGN_SYSTEM_FILE,
53088
+ DesignSystemSchema,
52958
53089
  MediaMetaSchema,
52959
53090
  DENSITIES,
52960
53091
  SHAPES,
@@ -52970,7 +53101,9 @@ export {
52970
53101
  fallbackMobileRects,
52971
53102
  toJsonSchema,
52972
53103
  blockFieldsJsonSchema,
53104
+ oklchToHex,
52973
53105
  parseColor,
53106
+ isColor,
52974
53107
  toHex,
52975
53108
  deltaEOK,
52976
53109
  relativeLuminance,
@@ -53111,4 +53244,4 @@ lucide/dist/esm/lucide.mjs:
53111
53244
  * See the LICENSE file in the root directory of this source tree.
53112
53245
  *)
53113
53246
  */
53114
- //# sourceMappingURL=chunk-O55O7EA5.js.map
53247
+ //# sourceMappingURL=chunk-IXN2CNGL.js.map