@lukeashford/aurelius 4.9.0 → 4.10.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/dist/index.mjs CHANGED
@@ -5958,7 +5958,7 @@ import React81, { useState as useState19 } from "react";
5958
5958
  // src/components/deliverable/CoverSection.tsx
5959
5959
  import React75 from "react";
5960
5960
  function CoverSection({ data, clientName }) {
5961
- return /* @__PURE__ */ React75.createElement("section", { className: "deliverable-cover deliverable-page" }, /* @__PURE__ */ React75.createElement("div", { className: "deliverable-cover-inner" }, data.eyebrow && /* @__PURE__ */ React75.createElement("p", { className: "deliverable-cover-eyebrow" }, data.eyebrow), /* @__PURE__ */ React75.createElement("h1", { className: "deliverable-cover-title" }, data.title), data.subtitle && /* @__PURE__ */ React75.createElement("p", { className: "deliverable-cover-subtitle" }, data.subtitle), clientName && /* @__PURE__ */ React75.createElement("p", { className: "deliverable-cover-client" }, "Prepared for", " ", /* @__PURE__ */ React75.createElement("span", { className: "deliverable-cover-client-name" }, clientName))));
5961
+ return /* @__PURE__ */ React75.createElement("section", { className: "deliverable-cover deliverable-page" }, /* @__PURE__ */ React75.createElement("div", { className: "deliverable-cover-inner" }, data.eyebrow && /* @__PURE__ */ React75.createElement(React75.Fragment, null, /* @__PURE__ */ React75.createElement("p", { className: "deliverable-cover-eyebrow" }, data.eyebrow), /* @__PURE__ */ React75.createElement("div", { className: "deliverable-cover-rule", "aria-hidden": "true" })), /* @__PURE__ */ React75.createElement("h1", { className: "deliverable-cover-title" }, data.title), data.subtitle && /* @__PURE__ */ React75.createElement("p", { className: "deliverable-cover-subtitle" }, data.subtitle), clientName && /* @__PURE__ */ React75.createElement("p", { className: "deliverable-cover-client" }, "Prepared for", " ", /* @__PURE__ */ React75.createElement("span", { className: "deliverable-cover-client-name" }, clientName))));
5962
5962
  }
5963
5963
 
5964
5964
  // src/components/deliverable/ArtifactImageGridSection.tsx
@@ -5968,16 +5968,33 @@ var COLUMN_CLASSES = {
5968
5968
  2: "deliverable-image-grid-cols-2",
5969
5969
  3: "deliverable-image-grid-cols-3"
5970
5970
  };
5971
+ var ASPECT_CLASSES = {
5972
+ landscape: "deliverable-image-grid-aspect-landscape",
5973
+ portrait: "deliverable-image-grid-aspect-portrait",
5974
+ square: "deliverable-image-grid-aspect-square",
5975
+ wide: "deliverable-image-grid-aspect-wide"
5976
+ };
5971
5977
  function ArtifactImageGridSection({ data }) {
5972
5978
  const columns = clampColumns(data.columns);
5973
- return /* @__PURE__ */ React76.createElement("section", { className: "deliverable-page" }, data.heading && /* @__PURE__ */ React76.createElement("h2", { className: "deliverable-heading" }, data.heading), /* @__PURE__ */ React76.createElement("div", { className: cx("deliverable-image-grid", COLUMN_CLASSES[columns]) }, data.items.map((item, idx) => /* @__PURE__ */ React76.createElement("figure", { key: idx, className: "deliverable-image-item" }, item.artifact.url ? /* @__PURE__ */ React76.createElement(
5974
- "img",
5979
+ const aspect = data.aspectRatio ?? "landscape";
5980
+ return /* @__PURE__ */ React76.createElement("section", { className: "deliverable-page" }, data.heading && /* @__PURE__ */ React76.createElement("h2", { className: "deliverable-heading" }, data.heading), /* @__PURE__ */ React76.createElement(
5981
+ "div",
5975
5982
  {
5976
- src: item.artifact.url,
5977
- alt: item.artifact.title ?? "",
5978
- className: "deliverable-image-img"
5979
- }
5980
- ) : /* @__PURE__ */ React76.createElement("div", { className: "deliverable-image-missing" }, "Missing image"), item.caption && /* @__PURE__ */ React76.createElement("figcaption", { className: "deliverable-image-caption" }, item.caption)))));
5983
+ className: cx(
5984
+ "deliverable-image-grid",
5985
+ COLUMN_CLASSES[columns],
5986
+ ASPECT_CLASSES[aspect]
5987
+ )
5988
+ },
5989
+ data.items.map((item, idx) => /* @__PURE__ */ React76.createElement("figure", { key: idx, className: "deliverable-image-item" }, item.artifact.url ? /* @__PURE__ */ React76.createElement(
5990
+ "img",
5991
+ {
5992
+ src: item.artifact.url,
5993
+ alt: item.artifact.title ?? "",
5994
+ className: "deliverable-image-img"
5995
+ }
5996
+ ) : /* @__PURE__ */ React76.createElement("div", { className: "deliverable-image-missing" }, "Missing image"), item.caption && /* @__PURE__ */ React76.createElement("figcaption", { className: "deliverable-image-caption" }, item.caption)))
5997
+ ));
5981
5998
  }
5982
5999
  function clampColumns(n) {
5983
6000
  if (n <= 1) return 1;
@@ -5987,8 +6004,14 @@ function clampColumns(n) {
5987
6004
 
5988
6005
  // src/components/deliverable/ArtifactSpotlightSection.tsx
5989
6006
  import React77 from "react";
6007
+ var VARIANT_CLASSES = {
6008
+ framed: null,
6009
+ "full-bleed": "deliverable-spotlight-variant-full-bleed",
6010
+ "side-by-side": "deliverable-spotlight-variant-side-by-side"
6011
+ };
5990
6012
  function ArtifactSpotlightSection({ data }) {
5991
- return /* @__PURE__ */ React77.createElement("section", { className: "deliverable-page" }, data.heading && /* @__PURE__ */ React77.createElement("h2", { className: "deliverable-heading" }, data.heading), /* @__PURE__ */ React77.createElement("div", { className: "deliverable-spotlight-media" }, data.artifact.url ? /* @__PURE__ */ React77.createElement(
6013
+ const variant = data.variant ?? "framed";
6014
+ return /* @__PURE__ */ React77.createElement("section", { className: cx("deliverable-page", VARIANT_CLASSES[variant]) }, data.heading && /* @__PURE__ */ React77.createElement("h2", { className: "deliverable-heading" }, data.heading), /* @__PURE__ */ React77.createElement("div", { className: "deliverable-spotlight-media" }, data.artifact.url ? /* @__PURE__ */ React77.createElement(
5992
6015
  "img",
5993
6016
  {
5994
6017
  src: data.artifact.url,
@@ -6036,6 +6059,12 @@ function QuoteBlockSection({ data }) {
6036
6059
  }
6037
6060
 
6038
6061
  // src/components/deliverable/DeliverableRenderer.tsx
6062
+ var THEME_CLASSES = {
6063
+ cinematic: null,
6064
+ editorial: "deliverable-theme-editorial",
6065
+ minimal: "deliverable-theme-minimal",
6066
+ playful: "deliverable-theme-playful"
6067
+ };
6039
6068
  function DeliverableRenderer({
6040
6069
  deliverable,
6041
6070
  onDownloadPdf,
@@ -6045,6 +6074,8 @@ function DeliverableRenderer({
6045
6074
  const [isDownloading, setIsDownloading] = useState19(false);
6046
6075
  const accent = deliverable.accentColor?.trim();
6047
6076
  const style = accent ? { "--deliverable-accent": accent } : void 0;
6077
+ const theme = deliverable.theme ?? "cinematic";
6078
+ const themeClass = THEME_CLASSES[theme];
6048
6079
  const handleDownload = async () => {
6049
6080
  if (!onDownloadPdf || isDownloading) return;
6050
6081
  setIsDownloading(true);
@@ -6057,7 +6088,7 @@ function DeliverableRenderer({
6057
6088
  return /* @__PURE__ */ React81.createElement(
6058
6089
  "div",
6059
6090
  {
6060
- className: cx("deliverable", className),
6091
+ className: cx("deliverable", themeClass, className),
6061
6092
  style
6062
6093
  },
6063
6094
  deliverable.sections.map((section, idx) => renderSection(section, idx, deliverable)),