navne-default-ad 1.2.0 → 1.2.2

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 CHANGED
@@ -1,5 +1,19 @@
1
1
  # Changelog
2
2
 
3
+ ## 1.2.2
4
+
5
+ - Include active intro/title placeholders in the same header-margin calculation as real text.
6
+ - Allow `typography.fontFamily: null` so a consumer's `next/font` class can own the measured root directly, without a wrapper.
7
+ - Preserve builder-specific hiding of obituary memorial content while editing thank-you ads.
8
+ - Match thank-you ceremony/message typography and top margins in both classic builder and publication variants.
9
+
10
+ ## 1.2.1
11
+
12
+ - Include active empty name fields in header-margin calculation.
13
+ - Preserve the second date's vertical spacing in the 41 mm classic layout.
14
+ - Do not render the donation divider for an empty focused placeholder.
15
+ - Preserve classic thank-you sender order, weight, and margin.
16
+
3
17
  ## 1.2.0
4
18
 
5
19
  - Add `rootRef` to observe the exact `data-ad-content` element without wrapper geometry.
package/dist/index.cjs CHANGED
@@ -46,6 +46,7 @@ var classicDefaultAdStyle = {
46
46
  nameLeading: 16.8,
47
47
  dateSize: 10,
48
48
  longDateSize: 10,
49
+ longDateLetterSpacing: "-0.01em",
49
50
  dateLeading: 12,
50
51
  bodySize: 10,
51
52
  bodyLeading: 12,
@@ -90,6 +91,7 @@ var publicationDefaultAdStyle = {
90
91
  nameLeading: 15,
91
92
  dateSize: 11.5,
92
93
  longDateSize: 11,
94
+ longDateLetterSpacing: "-0.01em",
93
95
  bodySize: 12,
94
96
  bodyLeading: 13,
95
97
  memorialSize: 12,
@@ -130,7 +132,8 @@ function styleFromLegacyTemplate(template) {
130
132
  ...fontPair(template.senderText, "senderSize", "senderLeading"),
131
133
  ...fontPair(template.ceremonyText, "ceremonySize", "ceremonyLeading"),
132
134
  ...fontPair(template.thanksText, "thanksSize", "thanksLeading"),
133
- ...fontPair(template.donationText, "donationSize", "donationLeading")
135
+ ...fontPair(template.donationText, "donationSize", "donationLeading"),
136
+ ...tracking(template.longDatesText)
134
137
  },
135
138
  spacing: {
136
139
  ...publicationDefaultAdStyle.spacing,
@@ -161,6 +164,10 @@ function fontPair(value, sizeKey, leadingKey) {
161
164
  ...leading ? { [leadingKey]: Number(leading) } : {}
162
165
  };
163
166
  }
167
+ function tracking(value) {
168
+ const amount = value?.match(/tracking-\[([^\]]+)\]/)?.[1];
169
+ return amount ? { longDateLetterSpacing: amount } : {};
170
+ }
164
171
 
165
172
  // src/utils.ts
166
173
  var defaultFormatters = {
@@ -196,7 +203,10 @@ function Text({ children, className = "", style, field, interaction }) {
196
203
  const empty = children === null || children === void 0 || children === "";
197
204
  if (empty && !fieldState?.active) return null;
198
205
  const events = field ? fieldEvents(field, interaction) : {};
199
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { "data-default-ad-field": field, className: `gda-text ${className} ${empty ? `gda-field-empty ${fieldState?.className ?? ""}` : ""}`.trim(), style: { ...style, ...empty ? fieldState?.style : {} }, ...events, children: empty ? fieldState?.placeholder : children });
206
+ if (empty) {
207
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "gda-field-placeholder-container", children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { "data-default-ad-field": field, className: `gda-text gda-field-empty ${className} ${fieldState?.className ?? ""}`.trim(), style: { ...style, ...fieldState?.style }, ...events, children: fieldState?.placeholder }) });
208
+ }
209
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { "data-default-ad-field": field, className: `gda-text ${className}`.trim(), style, ...events, children });
200
210
  }
201
211
  function fieldEvents(field, interaction) {
202
212
  return {
@@ -233,11 +243,16 @@ function DefaultAd({
233
243
  const hasName = Boolean(contact.firstName || contact.lastName);
234
244
  const first = type === "thanks" ? text.thanksIntro : text.intro;
235
245
  const second = type === "thanks" ? text.briefIntroduction : text.title;
246
+ const firstField = type === "thanks" ? "thanksIntro" : "intro";
247
+ const secondField = type === "thanks" ? "briefIntroduction" : "title";
248
+ const hasVisualFirst = Boolean(first || interaction?.fields?.[firstField]?.active);
249
+ const hasVisualSecond = Boolean(second || interaction?.fields?.[secondField]?.active);
250
+ const hasVisualName = hasName || Boolean(interaction?.fields?.firstName?.active || interaction?.fields?.lastName?.active);
236
251
  const headerMargins = calculateHeaderMargins({
237
252
  variant,
238
- first: Boolean(first),
239
- second: Boolean(second),
240
- hasName,
253
+ first: hasVisualFirst,
254
+ second: hasVisualSecond,
255
+ hasName: hasVisualName,
241
256
  hasIcon: Boolean(icon),
242
257
  typography,
243
258
  spacing
@@ -263,11 +278,11 @@ function DefaultAd({
263
278
  padding: `${layout.paddingMm}mm ${layout.horizontalPaddingMm}mm`,
264
279
  border: layout.border ? `${layout.borderWidthPt}pt solid black` : 0,
265
280
  gap: `${spacing.sectionGapMm}mm`,
266
- fontFamily: typography.fontFamily,
281
+ ...typography.fontFamily != null ? { fontFamily: typography.fontFamily } : {},
267
282
  ...rootStyle
268
283
  },
269
284
  children: [
270
- icon ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "gda-icon", children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
285
+ icon ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "gda-icon", children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
271
286
  "svg",
272
287
  {
273
288
  className: icon.className,
@@ -276,11 +291,9 @@ function DefaultAd({
276
291
  height: Number(icon.height) + 16,
277
292
  viewBox: icon.viewBox,
278
293
  role: icon.title ? "img" : void 0,
294
+ "aria-label": icon.title,
279
295
  "aria-hidden": icon.title ? void 0 : true,
280
- children: [
281
- icon.title ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)("title", { children: icon.title }) : null,
282
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("g", { dangerouslySetInnerHTML: { __html: decodeSvgMarkup(icon.svg) } })
283
- ]
296
+ dangerouslySetInnerHTML: { __html: decodeSvgMarkup(icon.svg) }
284
297
  }
285
298
  ) }) : null,
286
299
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
@@ -288,28 +301,28 @@ function DefaultAd({
288
301
  {
289
302
  field: type === "thanks" ? "thanksIntro" : "intro",
290
303
  interaction,
291
- className: type === "thanks" ? "gda-bold" : "",
304
+ className: `${type === "thanks" ? "gda-bold" : ""} ${variant === "classic" ? "gda-break" : ""}`,
292
305
  style: textStyle(type === "thanks" ? 14 : typography.introSize, typography.introLeading, firstMargin),
293
306
  children: type === "thanks" && first ? first : type === "obituaries" ? first : null
294
307
  }
295
308
  ),
296
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Text, { field: type === "thanks" ? "briefIntroduction" : "title", interaction, style: textStyle(typography.titleSize, typography.titleLeading, secondMargin), children: type === "thanks" && second ? fmt.lowercaseFirst(second) : type === "obituaries" ? second : null }),
297
- hasName && !interaction ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Text, { className: "gda-bold gda-secondary-font", style: textStyle(typography.nameSize, typography.nameLeading, nameMargin), children: [contact.firstName, contact.lastName].filter(Boolean).join(" ") }) : hasName || interaction?.fields?.firstName?.active || interaction?.fields?.lastName?.active ? /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "gda-text gda-bold gda-secondary-font", style: textStyle(typography.nameSize, typography.nameLeading, nameMargin), children: [
309
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Text, { field: type === "thanks" ? "briefIntroduction" : "title", interaction, className: variant === "classic" ? "gda-break" : "", style: textStyle(typography.titleSize, typography.titleLeading, secondMargin), children: type === "thanks" && second ? fmt.lowercaseFirst(second) : type === "obituaries" ? second : null }),
310
+ hasName && !interaction?.fields?.firstName?.active && !interaction?.fields?.lastName?.active ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Text, { className: "gda-name gda-bold gda-secondary-font", style: textStyle(typography.nameSize, typography.nameLeading, nameMargin), children: [contact.firstName, contact.lastName].filter(Boolean).join(" ") }) : hasName || interaction?.fields?.firstName?.active || interaction?.fields?.lastName?.active ? /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "gda-name gda-bold gda-secondary-font", style: textStyle(typography.nameSize, typography.nameLeading, nameMargin), children: [
298
311
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)(NamePart, { field: "firstName", value: contact.firstName, interaction }),
299
312
  " ",
300
313
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)(NamePart, { field: "lastName", value: contact.lastName, interaction })
301
- ] }) : showEmptyNamePlaceholder ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "gda-placeholder", children: emptyNamePlaceholder }) : null,
314
+ ] }) : showEmptyNamePlaceholder ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: `gda-placeholder ${variant === "classic" ? "gda-name gda-bold gda-secondary-font" : ""}`, style: variant === "classic" ? textStyle(typography.nameSize, typography.nameLeading, nameMargin) : void 0, children: emptyNamePlaceholder }) : null,
302
315
  contact.showBirthDate && (contact.birthDate || interaction?.fields?.birthDate?.active) || contact.showDeathDate && (contact.deathDate || interaction?.fields?.deathDate?.active) ? /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
303
316
  "div",
304
317
  {
305
318
  className: `gda-dates ${isSingleColumn ? "gda-dates-single" : ""}`,
306
- style: { marginTop: `${spacing.dateTop}pt`, lineHeight: `${typography.dateLeading}pt` },
319
+ style: { marginTop: `${spacing.dateTop}pt`, lineHeight: `${typography.dateLeading}pt`, ...isSingleColumn && variant === "classic" ? { gap: `${spacing.dateTop}pt` } : {} },
307
320
  children: [
308
- contact.showBirthDate && (contact.birthDate || interaction?.fields?.birthDate?.active) ? /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { "data-default-ad-field": "birthDate", ...fieldEvents("birthDate", interaction), style: { fontSize: `${contact.birthDate && fmt.date(contact.birthDate).length > 10 ? typography.longDateSize : typography.dateSize}pt`, ...!contact.birthDate ? interaction?.fields?.birthDate?.style : {} }, children: [
321
+ contact.showBirthDate && (contact.birthDate || interaction?.fields?.birthDate?.active) ? /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { "data-default-ad-field": "birthDate", ...fieldEvents("birthDate", interaction), className: !contact.birthDate ? interaction?.fields?.birthDate?.className : void 0, style: { fontSize: `${contact.birthDate && fmt.date(contact.birthDate).length > 10 ? typography.longDateSize : typography.dateSize}pt`, ...contact.birthDate && fmt.date(contact.birthDate).length > 10 ? { letterSpacing: typography.longDateLetterSpacing } : {}, ...!contact.birthDate ? interaction?.fields?.birthDate?.style : {} }, children: [
309
322
  "\u273B ",
310
323
  contact.birthDate ? fmt.date(contact.birthDate) : interaction?.fields?.birthDate?.placeholder
311
324
  ] }) : null,
312
- contact.showDeathDate && (contact.deathDate || interaction?.fields?.deathDate?.active) ? /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { "data-default-ad-field": "deathDate", ...fieldEvents("deathDate", interaction), style: { fontSize: `${contact.deathDate && fmt.date(contact.deathDate).length > 10 ? typography.longDateSize : typography.dateSize}pt`, ...!contact.deathDate ? interaction?.fields?.deathDate?.style : {} }, children: [
325
+ contact.showDeathDate && (contact.deathDate || interaction?.fields?.deathDate?.active) ? /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { "data-default-ad-field": "deathDate", ...fieldEvents("deathDate", interaction), className: !contact.deathDate ? interaction?.fields?.deathDate?.className : void 0, style: { fontSize: `${contact.deathDate && fmt.date(contact.deathDate).length > 10 ? typography.longDateSize : typography.dateSize}pt`, ...contact.deathDate && fmt.date(contact.deathDate).length > 10 ? { letterSpacing: typography.longDateLetterSpacing } : {}, ...!contact.deathDate ? interaction?.fields?.deathDate?.style : {} }, children: [
313
326
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { className: "gda-death-cross", "aria-hidden": "true", children: "\u271D\uFE0E" }),
314
327
  " ",
315
328
  contact.deathDate ? fmt.date(contact.deathDate) : interaction?.fields?.deathDate?.placeholder
@@ -318,23 +331,19 @@ function DefaultAd({
318
331
  }
319
332
  ) : null,
320
333
  type === "obituaries" ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Text, { field: "deceased", interaction, className: "gda-balance", style: textStyle(typography.bodySize, typography.bodyLeading, spacing.deceasedTop), children: text.deceased }) : null,
321
- variant === "publication" && type === "thanks" ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(ThankYouFields, { text, fmt, typography, spacing, interaction, includeThanks: true }) : null,
322
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Text, { field: "memorial", interaction, className: "gda-italic", style: textStyle(typography.memorialSize, typography.memorialLeading, spacing.memorialTop), children: text.memorial }),
323
- text.sender || interaction?.fields?.sender?.active ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Text, { field: "sender", interaction, className: `${type === "obituaries" ? "gda-bold " : ""}gda-secondary-font`, style: textStyle(typography.senderSize, typography.senderLeading, spacing.senderTop), children: text.sender }) : null,
334
+ variant === "publication" && type === "thanks" ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(ThankYouFields, { text, fmt, typography, spacing, interaction, variant, includeThanks: true }) : null,
335
+ !(mode === "builder" && type === "thanks") ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Text, { field: "memorial", interaction, className: `gda-italic ${variant === "classic" ? "gda-break" : ""}`, style: textStyle(typography.memorialSize, typography.memorialLeading, spacing.memorialTop), children: text.memorial }) : null,
336
+ (type === "obituaries" || variant === "publication") && (text.sender || interaction?.fields?.sender?.active) ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Text, { field: "sender", interaction, className: `${type === "obituaries" ? "gda-bold " : ""}gda-secondary-font`, style: textStyle(typography.senderSize, typography.senderLeading, spacing.senderTop), children: text.sender }) : null,
324
337
  (type === "obituaries" || variant === "publication") && ceremonyCode !== "NoCeremony" && (contact.showChurch || contact.showFuneralDate) && (contact.church || contact.funeralDate || interaction?.fields?.church?.active || interaction?.fields?.funeralDate?.active) ? /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "gda-text", style: textStyle(typography.ceremonySize, typography.ceremonyLeading, spacing.ceremonyTop), children: [
325
- contact.showChurch && (contact.church || interaction?.fields?.church?.active) ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { "data-default-ad-field": "church", ...fieldEvents("church", interaction), style: !contact.church ? interaction?.fields?.church?.style : void 0, children: contact.church ? contact.church.length > 15 ? /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, { children: [
326
- ceremonyLabel,
327
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("br", {}),
328
- contact.church
329
- ] }) : `${ceremonyLabel ?? ""} ${contact.church}`.trim() : interaction?.fields?.church?.placeholder }) : null,
330
- contact.showFuneralDate && (contact.funeralDate || interaction?.fields?.funeralDate?.active) ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { "data-default-ad-field": "funeralDate", ...fieldEvents("funeralDate", interaction), style: !contact.funeralDate ? interaction?.fields?.funeralDate?.style : void 0, children: contact.funeralDate ? fmt.funeralDate(contact.funeralDate, Boolean(contact.hideFuneralYear)) : interaction?.fields?.funeralDate?.placeholder }) : null
338
+ contact.showChurch && (contact.church || interaction?.fields?.church?.active) ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { "data-default-ad-field": "church", ...fieldEvents("church", interaction), className: !contact.church ? interaction?.fields?.church?.className : void 0, style: !contact.church ? interaction?.fields?.church?.style : void 0, children: contact.church ? contact.church.length > 15 ? `${ceremonyLabel ?? ""}
339
+ ${contact.church}` : `${ceremonyLabel ?? ""} ${contact.church}`.trim() : interaction?.fields?.church?.placeholder }) : null,
340
+ contact.showFuneralDate && (contact.funeralDate || interaction?.fields?.funeralDate?.active) ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { "data-default-ad-field": "funeralDate", ...fieldEvents("funeralDate", interaction), className: !contact.funeralDate ? interaction?.fields?.funeralDate?.className : void 0, style: !contact.funeralDate ? interaction?.fields?.funeralDate?.style : void 0, children: contact.funeralDate ? fmt.funeralDate(contact.funeralDate, Boolean(contact.hideFuneralYear)) : interaction?.fields?.funeralDate?.placeholder }) : null
331
341
  ] }) : null,
332
- variant === "classic" && type === "thanks" ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(ThankYouFields, { text, fmt, typography, spacing, interaction }) : null,
333
- !(variant === "publication" && type === "thanks") ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Text, { field: "thanks", interaction, style: textStyle(typography.thanksSize, typography.thanksLeading, spacing.thanksTop), children: text.thanks }) : null,
334
- text.donation || interaction?.fields?.donation?.active ? /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, { children: [
335
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "gda-divider", style: { marginTop: `${spacing.donationTop}pt` } }),
336
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Text, { field: "donation", interaction, className: "gda-donation", style: textStyle(typography.donationSize, typography.donationLeading, spacing.donationTop), children: text.donation })
337
- ] }) : null
342
+ variant === "classic" && type === "thanks" ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(ThankYouFields, { text, fmt, typography, spacing, interaction, variant }) : null,
343
+ !(variant === "publication" && type === "thanks") ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Text, { field: "thanks", interaction, className: variant === "classic" ? "gda-break" : "", style: textStyle(typography.thanksSize, typography.thanksLeading, spacing.thanksTop), children: text.thanks }) : null,
344
+ variant === "classic" && type === "thanks" ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Text, { field: "sender", interaction, style: textStyle(typography.senderSize, typography.senderLeading, spacing.thanksTop), children: text.sender }) : null,
345
+ text.donation ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "gda-divider", style: { marginTop: `${spacing.donationTop}pt` } }) : null,
346
+ text.donation || interaction?.fields?.donation?.active ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Text, { field: "donation", interaction, className: "gda-donation gda-break", style: textStyle(typography.donationSize, typography.donationLeading, spacing.donationTop), children: text.donation }) : null
338
347
  ]
339
348
  }
340
349
  );
@@ -361,11 +370,15 @@ function NamePart({ field, value, interaction }) {
361
370
  if (!value && !state?.active) return null;
362
371
  return /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { "data-default-ad-field": field, className: !value ? state?.className : void 0, style: !value ? state?.style : void 0, ...fieldEvents(field, interaction), children: value || state?.placeholder });
363
372
  }
364
- function ThankYouFields({ text, fmt, typography, spacing, interaction, includeThanks = false }) {
373
+ function ThankYouFields({ text, fmt, typography, spacing, interaction, variant, includeThanks = false }) {
374
+ const breakClass = variant === "classic" ? "gda-break" : "";
375
+ const ceremonySize = variant === "classic" ? typography.bodySize : typography.bodySize;
376
+ const ceremonyLeading = variant === "classic" ? typography.bodyLeading : typography.bodyLeading;
377
+ const ceremonyTop = variant === "classic" ? spacing.thanksTop : spacing.deceasedTop;
365
378
  return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, { children: [
366
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Text, { field: "ceremony", interaction, style: textStyle(typography.ceremonySize, typography.ceremonyLeading, spacing.ceremonyTop), children: text.ceremony ? fmt.lowercaseFirst(text.ceremony) : null }),
367
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Text, { field: "message", interaction, style: textStyle(typography.bodySize, typography.bodyLeading, spacing.thanksTop), children: text.message }),
368
- includeThanks ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Text, { field: "thanks", interaction, style: textStyle(typography.thanksSize, typography.thanksLeading, spacing.thanksTop), children: text.thanks }) : null
379
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Text, { field: "ceremony", interaction, className: breakClass, style: textStyle(ceremonySize, ceremonyLeading, ceremonyTop), children: text.ceremony ? fmt.lowercaseFirst(text.ceremony) : null }),
380
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Text, { field: "message", interaction, className: breakClass, style: textStyle(typography.bodySize, typography.bodyLeading, variant === "classic" ? spacing.thanksTop : spacing.deceasedTop), children: text.message }),
381
+ includeThanks ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Text, { field: "thanks", interaction, className: breakClass, style: textStyle(typography.thanksSize, typography.thanksLeading, spacing.thanksTop), children: text.thanks }) : null
369
382
  ] });
370
383
  }
371
384
  // Annotate the CommonJS export names for ESM import in node:
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts","../src/presets.ts","../src/utils.ts","../src/DefaultAd.tsx"],"sourcesContent":["export { DefaultAd } from \"./DefaultAd\";\nexport { classicDefaultAdStyle, publicationDefaultAdStyle, styleFromLegacyTemplate } from \"./presets\";\nexport type {\n DefaultAdContact,\n DefaultAdData,\n DefaultAdFormatters,\n DefaultAdField,\n DefaultAdFieldState,\n DefaultAdInteraction,\n DefaultAdIcon,\n DefaultAdMode,\n DefaultAdProps,\n DefaultAdSpacing,\n DefaultAdStyle,\n DefaultAdTextFields,\n DefaultAdType,\n DefaultAdVariant,\n DefaultAdTypography,\n LegacyAdTemplate,\n} from \"./types\";\n","import type { DefaultAdStyle, LegacyAdTemplate } from \"./types\";\n\nexport const classicDefaultAdStyle: Readonly<DefaultAdStyle> = {\n columnsMm: 86,\n heightMm: null,\n paddingMm: 4,\n horizontalPaddingMm: 2,\n border: false,\n borderWidthPt: 1.4,\n typography: {\n fontFamily: \"var(--default-ad-font-primary, Schoolbook, Georgia, serif)\",\n secondaryFontFamily: \"var(--default-ad-font-secondary, Schoolbook, Georgia, serif)\",\n introSize: 10,\n introLeading: 12,\n titleSize: 10,\n titleLeading: 12,\n nameSize: 14,\n nameLeading: 16.8,\n dateSize: 10,\n longDateSize: 10,\n dateLeading: 12,\n bodySize: 10,\n bodyLeading: 12,\n memorialSize: 10,\n memorialLeading: 12,\n senderSize: 10,\n senderLeading: 12,\n ceremonySize: 10,\n ceremonyLeading: 12,\n thanksSize: 10,\n thanksLeading: 12,\n donationSize: 10,\n donationLeading: 12,\n },\n spacing: {\n iconToText: 11,\n introToTitle: 8,\n // The legacy component passed these two values as unitless React styles (CSS px).\n textToName: 4.2,\n iconToName: 4.95,\n dateTop: 5.6,\n deceasedTop: 6,\n memorialTop: 6,\n senderTop: 8,\n ceremonyTop: 8,\n thanksTop: 7,\n donationTop: 7,\n sectionGapMm: 0,\n },\n};\n\nexport const publicationDefaultAdStyle: Readonly<DefaultAdStyle> = {\n ...classicDefaultAdStyle,\n typography: {\n ...classicDefaultAdStyle.typography,\n fontFamily: \"var(--default-ad-font-primary, Raleway, Arial, sans-serif)\",\n secondaryFontFamily: \"var(--default-ad-font-secondary, Athelas, Georgia, serif)\",\n introSize: 11,\n introLeading: 13,\n titleSize: 11,\n titleLeading: 13,\n nameSize: 17,\n nameLeading: 15,\n dateSize: 11.5,\n longDateSize: 11,\n bodySize: 12,\n bodyLeading: 13,\n memorialSize: 12,\n memorialLeading: 13,\n senderSize: 13,\n senderLeading: 13,\n ceremonySize: 11,\n ceremonyLeading: 13,\n thanksSize: 11,\n thanksLeading: 13,\n donationSize: 11,\n donationLeading: 13,\n },\n spacing: {\n ...classicDefaultAdStyle.spacing,\n iconToText: 0,\n introToTitle: 0,\n textToName: 0,\n sectionGapMm: 2,\n },\n};\n\nexport function styleFromLegacyTemplate(template?: LegacyAdTemplate | null): DefaultAdStyle {\n if (!template) return publicationDefaultAdStyle;\n return {\n ...publicationDefaultAdStyle,\n typography: {\n ...publicationDefaultAdStyle.typography,\n fontFamily: template.font1 || publicationDefaultAdStyle.typography?.fontFamily,\n secondaryFontFamily: template.font2 || publicationDefaultAdStyle.typography?.secondaryFontFamily,\n introSize: template.introSize,\n introLeading: template.introLeading,\n titleSize: template.titleSize,\n titleLeading: template.titleLeading,\n nameSize: template.fullnameSize,\n nameLeading: template.fullnameLeading,\n ...fontPair(template.deceasedText, \"bodySize\", \"bodyLeading\"),\n ...fontPair(template.memorialText, \"memorialSize\", \"memorialLeading\"),\n ...fontPair(template.senderText, \"senderSize\", \"senderLeading\"),\n ...fontPair(template.ceremonyText, \"ceremonySize\", \"ceremonyLeading\"),\n ...fontPair(template.thanksText, \"thanksSize\", \"thanksLeading\"),\n ...fontPair(template.donationText, \"donationSize\", \"donationLeading\"),\n },\n spacing: {\n ...publicationDefaultAdStyle.spacing,\n ...gapMm(template.gap),\n iconToText: template.textToIcon,\n introToTitle: template.titleToText,\n textToName: template.fullnameToText,\n dateTop: template.datesTextMT,\n deceasedTop: template.deceasedTextMT,\n memorialTop: template.memorialTextMT,\n senderTop: template.senderTextMT,\n ceremonyTop: template.ceremonyTextMT,\n thanksTop: template.thanksTextMT,\n donationTop: template.donationTextMT,\n },\n };\n}\n\nfunction gapMm(value: string | undefined): { sectionGapMm?: number } {\n const gap = value?.match(/gap-\\[(-?[\\d.]+)mm\\]/)?.[1];\n return gap ? { sectionGapMm: Number(gap) } : {};\n}\n\nfunction fontPair(value: string | undefined, sizeKey: string, leadingKey: string): Record<string, number> {\n if (!value) return {};\n const size = value.match(/text-\\[(-?[\\d.]+)pt\\]/)?.[1];\n const leading = value.match(/leading-\\[(-?[\\d.]+)pt\\]/)?.[1];\n return {\n ...(size ? { [sizeKey]: Number(size) } : {}),\n ...(leading ? { [leadingKey]: Number(leading) } : {}),\n };\n}\n","import type { DefaultAdFormatters } from \"./types\";\n\nexport const defaultFormatters: Required<DefaultAdFormatters> = {\n date(value) {\n const match = value.match(/^(\\d{4})-(\\d{2})-(\\d{2})/);\n return match ? `${match[3]}.${match[2]}.${match[1]}` : value;\n },\n funeralDate(value, hideYear) {\n if (!hideYear) return value;\n return value.replace(/([.\\/-])\\d{4}(?=\\D|$)/, \"\");\n },\n lowercaseFirst(value) {\n return value ? value.charAt(0).toLocaleLowerCase() + value.slice(1) : value;\n },\n};\n\nexport function mergeDefined<T extends object>(base: T, overrides?: Partial<T>): T {\n if (!overrides) return { ...base };\n return Object.fromEntries(\n Object.entries({ ...base, ...overrides }).filter(([, value]) => value !== undefined),\n ) as T;\n}\n\nexport function decodeSvgMarkup(value: string): string {\n return value\n .replace(/&lt;/g, \"<\")\n .replace(/&gt;/g, \">\")\n .replace(/&quot;/g, '\"')\n .replace(/&#(?:0*39|x0*27);/gi, \"'\")\n .replace(/&amp;/g, \"&\");\n}\n","import type { CSSProperties, ReactNode } from \"react\";\nimport { classicDefaultAdStyle } from \"./presets\";\nimport type { DefaultAdField, DefaultAdInteraction, DefaultAdProps, DefaultAdSpacing, DefaultAdTypography } from \"./types\";\nimport { decodeSvgMarkup, defaultFormatters, mergeDefined } from \"./utils\";\nimport \"./styles.css\";\n\nfunction textStyle(size: number, leading: number, marginTop: number): CSSProperties {\n return { fontSize: `${size}pt`, lineHeight: `${leading}pt`, marginTop: `${marginTop}pt` };\n}\n\nfunction Text({ children, className = \"\", style, field, interaction }: { children?: ReactNode; className?: string; style: CSSProperties; field?: DefaultAdField; interaction?: DefaultAdInteraction }) {\n const fieldState = field ? interaction?.fields?.[field] : undefined;\n const empty = children === null || children === undefined || children === \"\";\n if (empty && !fieldState?.active) return null;\n const events = field ? fieldEvents(field, interaction) : {};\n return <div data-default-ad-field={field} className={`gda-text ${className} ${empty ? `gda-field-empty ${fieldState?.className ?? \"\"}` : \"\"}`.trim()} style={{ ...style, ...(empty ? fieldState?.style : {}) }} {...events}>\n {empty ? fieldState?.placeholder : children}\n </div>;\n}\n\nfunction fieldEvents(field: DefaultAdField, interaction?: DefaultAdInteraction) {\n return {\n onFocus: interaction?.onFieldFocus ? () => interaction.onFieldFocus?.(field) : undefined,\n onBlur: interaction?.onFieldBlur ? () => interaction.onFieldBlur?.(field) : undefined,\n onClick: interaction?.onFieldClick ? () => interaction.onFieldClick?.(field) : undefined,\n };\n}\n\nexport function DefaultAd({\n data,\n style,\n mode = \"published\",\n variant = \"classic\",\n rootRef,\n interaction,\n formatters,\n showEmptyNamePlaceholder = mode === \"builder\",\n emptyNamePlaceholder = \"Fornavn Efternavn\",\n className = \"\",\n rootStyle,\n ...htmlProps\n}: DefaultAdProps) {\n const typography = mergeDefined(\n classicDefaultAdStyle.typography as Required<DefaultAdTypography>,\n style?.typography,\n );\n const spacing = mergeDefined(\n classicDefaultAdStyle.spacing as Required<DefaultAdSpacing>,\n style?.spacing,\n );\n const layout = mergeDefined(classicDefaultAdStyle, style);\n const fmt = { ...defaultFormatters, ...formatters };\n const { contact, text, icon, type } = data;\n const hasName = Boolean(contact.firstName || contact.lastName);\n const first = type === \"thanks\" ? text.thanksIntro : text.intro;\n const second = type === \"thanks\" ? text.briefIntroduction : text.title;\n const headerMargins = calculateHeaderMargins({\n variant, first: Boolean(first), second: Boolean(second), hasName, hasIcon: Boolean(icon), typography, spacing,\n });\n const { firstMargin, secondMargin, nameMargin } = headerMargins;\n const isSingleColumn = Number(layout.columnsMm) === 41;\n const ceremonyCode = contact.ceremony?.code;\n const ceremonyLabel = contact.ceremony?.label ?? ceremonyCode;\n\n return (\n <div\n {...htmlProps}\n ref={rootRef}\n data-default-ad=\"\"\n data-ad-content=\"\"\n data-ad-ready=\"true\"\n data-mode={mode}\n className={`gda-root ${className}`.trim()}\n style={{\n width: `${layout.columnsMm}mm`,\n minWidth: `${layout.columnsMm}mm`,\n ...(layout.heightMm != null ? { height: `${layout.heightMm}mm` } : {}),\n padding: `${layout.paddingMm}mm ${layout.horizontalPaddingMm}mm`,\n border: layout.border ? `${layout.borderWidthPt}pt solid black` : 0,\n gap: `${spacing.sectionGapMm}mm`,\n fontFamily: typography.fontFamily,\n ...rootStyle,\n }}\n >\n {icon ? (\n <div className=\"gda-icon\">\n <svg className={icon.className} xmlns=\"http://www.w3.org/2000/svg\"\n width={Number(icon.width) + 16} height={Number(icon.height) + 16}\n viewBox={icon.viewBox} role={icon.title ? \"img\" : undefined} aria-hidden={icon.title ? undefined : true}>\n {icon.title ? <title>{icon.title}</title> : null}\n <g dangerouslySetInnerHTML={{ __html: decodeSvgMarkup(icon.svg) }} />\n </svg>\n </div>\n ) : null}\n\n <Text field={type === \"thanks\" ? \"thanksIntro\" : \"intro\"} interaction={interaction} className={type === \"thanks\" ? \"gda-bold\" : \"\"}\n style={textStyle(type === \"thanks\" ? 14 : typography.introSize, typography.introLeading, firstMargin)}>\n {type === \"thanks\" && first ? first : type === \"obituaries\" ? first : null}\n </Text>\n <Text field={type === \"thanks\" ? \"briefIntroduction\" : \"title\"} interaction={interaction} style={textStyle(typography.titleSize, typography.titleLeading, secondMargin)}>\n {type === \"thanks\" && second ? fmt.lowercaseFirst(second) : type === \"obituaries\" ? second : null}\n </Text>\n\n {hasName && !interaction ? (\n <Text className=\"gda-bold gda-secondary-font\" style={textStyle(typography.nameSize, typography.nameLeading, nameMargin)}>\n {[contact.firstName, contact.lastName].filter(Boolean).join(\" \")}\n </Text>\n ) : hasName || interaction?.fields?.firstName?.active || interaction?.fields?.lastName?.active ? (\n <div className=\"gda-text gda-bold gda-secondary-font\" style={textStyle(typography.nameSize, typography.nameLeading, nameMargin)}>\n <NamePart field=\"firstName\" value={contact.firstName} interaction={interaction} />{\" \"}\n <NamePart field=\"lastName\" value={contact.lastName} interaction={interaction} />\n </div>\n ) : showEmptyNamePlaceholder ? <div className=\"gda-placeholder\">{emptyNamePlaceholder}</div> : null}\n\n {(contact.showBirthDate && (contact.birthDate || interaction?.fields?.birthDate?.active)) || (contact.showDeathDate && (contact.deathDate || interaction?.fields?.deathDate?.active)) ? (\n <div className={`gda-dates ${isSingleColumn ? \"gda-dates-single\" : \"\"}`}\n style={{ marginTop: `${spacing.dateTop}pt`, lineHeight: `${typography.dateLeading}pt` }}>\n {contact.showBirthDate && (contact.birthDate || interaction?.fields?.birthDate?.active) ? (\n <span data-default-ad-field=\"birthDate\" {...fieldEvents(\"birthDate\", interaction)} style={{ fontSize: `${contact.birthDate && fmt.date(contact.birthDate).length > 10 ? typography.longDateSize : typography.dateSize}pt`, ...(!contact.birthDate ? interaction?.fields?.birthDate?.style : {}) }}>\n &#10043; {contact.birthDate ? fmt.date(contact.birthDate) : interaction?.fields?.birthDate?.placeholder}\n </span>\n ) : null}\n {contact.showDeathDate && (contact.deathDate || interaction?.fields?.deathDate?.active) ? (\n <span data-default-ad-field=\"deathDate\" {...fieldEvents(\"deathDate\", interaction)} style={{ fontSize: `${contact.deathDate && fmt.date(contact.deathDate).length > 10 ? typography.longDateSize : typography.dateSize}pt`, ...(!contact.deathDate ? interaction?.fields?.deathDate?.style : {}) }}>\n <span className=\"gda-death-cross\" aria-hidden=\"true\">✝︎</span> {contact.deathDate ? fmt.date(contact.deathDate) : interaction?.fields?.deathDate?.placeholder}\n </span>\n ) : null}\n </div>\n ) : null}\n\n {type === \"obituaries\" ? <Text field=\"deceased\" interaction={interaction} className=\"gda-balance\" style={textStyle(typography.bodySize, typography.bodyLeading, spacing.deceasedTop)}>{text.deceased}</Text> : null}\n {variant === \"publication\" && type === \"thanks\" ? <ThankYouFields text={text} fmt={fmt} typography={typography} spacing={spacing} interaction={interaction} includeThanks /> : null}\n <Text field=\"memorial\" interaction={interaction} className=\"gda-italic\" style={textStyle(typography.memorialSize, typography.memorialLeading, spacing.memorialTop)}>{text.memorial}</Text>\n {text.sender || interaction?.fields?.sender?.active ? <Text field=\"sender\" interaction={interaction} className={`${type === \"obituaries\" ? \"gda-bold \" : \"\"}gda-secondary-font`} style={textStyle(typography.senderSize, typography.senderLeading, spacing.senderTop)}>{text.sender}</Text> : null}\n\n {(type === \"obituaries\" || variant === \"publication\") && ceremonyCode !== \"NoCeremony\" && (contact.showChurch || contact.showFuneralDate) && (contact.church || contact.funeralDate || interaction?.fields?.church?.active || interaction?.fields?.funeralDate?.active) ? (\n <div className=\"gda-text\" style={textStyle(typography.ceremonySize, typography.ceremonyLeading, spacing.ceremonyTop)}>\n {contact.showChurch && (contact.church || interaction?.fields?.church?.active) ? <div data-default-ad-field=\"church\" {...fieldEvents(\"church\", interaction)} style={!contact.church ? interaction?.fields?.church?.style : undefined}>{contact.church ? (contact.church.length > 15 ? <>{ceremonyLabel}<br />{contact.church}</> : `${ceremonyLabel ?? \"\"} ${contact.church}`.trim()) : interaction?.fields?.church?.placeholder}</div> : null}\n {contact.showFuneralDate && (contact.funeralDate || interaction?.fields?.funeralDate?.active) ? <div data-default-ad-field=\"funeralDate\" {...fieldEvents(\"funeralDate\", interaction)} style={!contact.funeralDate ? interaction?.fields?.funeralDate?.style : undefined}>{contact.funeralDate ? fmt.funeralDate(contact.funeralDate, Boolean(contact.hideFuneralYear)) : interaction?.fields?.funeralDate?.placeholder}</div> : null}\n </div>\n ) : null}\n\n {variant === \"classic\" && type === \"thanks\" ? <ThankYouFields text={text} fmt={fmt} typography={typography} spacing={spacing} interaction={interaction} /> : null}\n {!(variant === \"publication\" && type === \"thanks\") ? <Text field=\"thanks\" interaction={interaction} style={textStyle(typography.thanksSize, typography.thanksLeading, spacing.thanksTop)}>{text.thanks}</Text> : null}\n {text.donation || interaction?.fields?.donation?.active ? <><div className=\"gda-divider\" style={{ marginTop: `${spacing.donationTop}pt` }} /><Text field=\"donation\" interaction={interaction} className=\"gda-donation\" style={textStyle(typography.donationSize, typography.donationLeading, spacing.donationTop)}>{text.donation}</Text></> : null}\n </div>\n );\n}\n\nfunction calculateHeaderMargins({ variant, first, second, hasName, hasIcon, typography, spacing }: any) {\n if (variant === \"classic\") {\n return {\n firstMargin: first && hasIcon ? spacing.iconToText : 0,\n secondMargin: second ? (first ? spacing.introToTitle : hasIcon ? spacing.iconToText : 0) : 0,\n nameMargin: hasName ? (first || second ? spacing.textToName : hasIcon ? spacing.iconToName : 0) : 0,\n };\n }\n\n const introExtra = (typography.introLeading - typography.introSize) / 2;\n const titleExtra = (typography.titleLeading - typography.titleSize) / 2;\n const nameExtra = (typography.nameLeading - typography.nameSize) / 2;\n return {\n firstMargin: first && hasIcon ? spacing.iconToText - typography.introSize - introExtra : 0,\n secondMargin: second ? first\n ? spacing.introToTitle - typography.titleSize - titleExtra - introExtra\n : hasIcon ? spacing.iconToText - typography.titleSize - titleExtra : 0 : 0,\n nameMargin: hasName ? first || second\n ? spacing.textToName - typography.nameSize - nameExtra - titleExtra\n : hasIcon ? spacing.iconToText - typography.nameSize - nameExtra : 0 : 0,\n };\n}\n\nfunction NamePart({ field, value, interaction }: { field: \"firstName\" | \"lastName\"; value?: string | null; interaction?: DefaultAdInteraction }) {\n const state = interaction?.fields?.[field];\n if (!value && !state?.active) return null;\n return <span data-default-ad-field={field} className={!value ? state?.className : undefined} style={!value ? state?.style : undefined} {...fieldEvents(field, interaction)}>{value || state?.placeholder}</span>;\n}\n\nfunction ThankYouFields({ text, fmt, typography, spacing, interaction, includeThanks = false }: any) {\n return <>\n <Text field=\"ceremony\" interaction={interaction} style={textStyle(typography.ceremonySize, typography.ceremonyLeading, spacing.ceremonyTop)}>{text.ceremony ? fmt.lowercaseFirst(text.ceremony) : null}</Text>\n <Text field=\"message\" interaction={interaction} style={textStyle(typography.bodySize, typography.bodyLeading, spacing.thanksTop)}>{text.message}</Text>\n {includeThanks ? <Text field=\"thanks\" interaction={interaction} style={textStyle(typography.thanksSize, typography.thanksLeading, spacing.thanksTop)}>{text.thanks}</Text> : null}\n </>;\n}\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../src/index.ts","../src/presets.ts","../src/utils.ts","../src/DefaultAd.tsx"],"sourcesContent":["export { DefaultAd } from \"./DefaultAd\";\nexport { classicDefaultAdStyle, publicationDefaultAdStyle, styleFromLegacyTemplate } from \"./presets\";\nexport type {\n DefaultAdContact,\n DefaultAdData,\n DefaultAdFormatters,\n DefaultAdField,\n DefaultAdFieldState,\n DefaultAdInteraction,\n DefaultAdIcon,\n DefaultAdMode,\n DefaultAdProps,\n DefaultAdSpacing,\n DefaultAdStyle,\n DefaultAdTextFields,\n DefaultAdType,\n DefaultAdVariant,\n DefaultAdTypography,\n LegacyAdTemplate,\n} from \"./types\";\n","import type { DefaultAdStyle, LegacyAdTemplate } from \"./types\";\n\nexport const classicDefaultAdStyle: Readonly<DefaultAdStyle> = {\n columnsMm: 86,\n heightMm: null,\n paddingMm: 4,\n horizontalPaddingMm: 2,\n border: false,\n borderWidthPt: 1.4,\n typography: {\n fontFamily: \"var(--default-ad-font-primary, Schoolbook, Georgia, serif)\",\n secondaryFontFamily: \"var(--default-ad-font-secondary, Schoolbook, Georgia, serif)\",\n introSize: 10,\n introLeading: 12,\n titleSize: 10,\n titleLeading: 12,\n nameSize: 14,\n nameLeading: 16.8,\n dateSize: 10,\n longDateSize: 10,\n longDateLetterSpacing: \"-0.01em\",\n dateLeading: 12,\n bodySize: 10,\n bodyLeading: 12,\n memorialSize: 10,\n memorialLeading: 12,\n senderSize: 10,\n senderLeading: 12,\n ceremonySize: 10,\n ceremonyLeading: 12,\n thanksSize: 10,\n thanksLeading: 12,\n donationSize: 10,\n donationLeading: 12,\n },\n spacing: {\n iconToText: 11,\n introToTitle: 8,\n // The legacy component passed these two values as unitless React styles (CSS px).\n textToName: 4.2,\n iconToName: 4.95,\n dateTop: 5.6,\n deceasedTop: 6,\n memorialTop: 6,\n senderTop: 8,\n ceremonyTop: 8,\n thanksTop: 7,\n donationTop: 7,\n sectionGapMm: 0,\n },\n};\n\nexport const publicationDefaultAdStyle: Readonly<DefaultAdStyle> = {\n ...classicDefaultAdStyle,\n typography: {\n ...classicDefaultAdStyle.typography,\n fontFamily: \"var(--default-ad-font-primary, Raleway, Arial, sans-serif)\",\n secondaryFontFamily: \"var(--default-ad-font-secondary, Athelas, Georgia, serif)\",\n introSize: 11,\n introLeading: 13,\n titleSize: 11,\n titleLeading: 13,\n nameSize: 17,\n nameLeading: 15,\n dateSize: 11.5,\n longDateSize: 11,\n longDateLetterSpacing: \"-0.01em\",\n bodySize: 12,\n bodyLeading: 13,\n memorialSize: 12,\n memorialLeading: 13,\n senderSize: 13,\n senderLeading: 13,\n ceremonySize: 11,\n ceremonyLeading: 13,\n thanksSize: 11,\n thanksLeading: 13,\n donationSize: 11,\n donationLeading: 13,\n },\n spacing: {\n ...classicDefaultAdStyle.spacing,\n iconToText: 0,\n introToTitle: 0,\n textToName: 0,\n sectionGapMm: 2,\n },\n};\n\nexport function styleFromLegacyTemplate(template?: LegacyAdTemplate | null): DefaultAdStyle {\n if (!template) return publicationDefaultAdStyle;\n return {\n ...publicationDefaultAdStyle,\n typography: {\n ...publicationDefaultAdStyle.typography,\n fontFamily: template.font1 || publicationDefaultAdStyle.typography?.fontFamily,\n secondaryFontFamily: template.font2 || publicationDefaultAdStyle.typography?.secondaryFontFamily,\n introSize: template.introSize,\n introLeading: template.introLeading,\n titleSize: template.titleSize,\n titleLeading: template.titleLeading,\n nameSize: template.fullnameSize,\n nameLeading: template.fullnameLeading,\n ...fontPair(template.deceasedText, \"bodySize\", \"bodyLeading\"),\n ...fontPair(template.memorialText, \"memorialSize\", \"memorialLeading\"),\n ...fontPair(template.senderText, \"senderSize\", \"senderLeading\"),\n ...fontPair(template.ceremonyText, \"ceremonySize\", \"ceremonyLeading\"),\n ...fontPair(template.thanksText, \"thanksSize\", \"thanksLeading\"),\n ...fontPair(template.donationText, \"donationSize\", \"donationLeading\"),\n ...tracking(template.longDatesText),\n },\n spacing: {\n ...publicationDefaultAdStyle.spacing,\n ...gapMm(template.gap),\n iconToText: template.textToIcon,\n introToTitle: template.titleToText,\n textToName: template.fullnameToText,\n dateTop: template.datesTextMT,\n deceasedTop: template.deceasedTextMT,\n memorialTop: template.memorialTextMT,\n senderTop: template.senderTextMT,\n ceremonyTop: template.ceremonyTextMT,\n thanksTop: template.thanksTextMT,\n donationTop: template.donationTextMT,\n },\n };\n}\n\nfunction gapMm(value: string | undefined): { sectionGapMm?: number } {\n const gap = value?.match(/gap-\\[(-?[\\d.]+)mm\\]/)?.[1];\n return gap ? { sectionGapMm: Number(gap) } : {};\n}\n\nfunction fontPair(value: string | undefined, sizeKey: string, leadingKey: string): Record<string, number> {\n if (!value) return {};\n const size = value.match(/text-\\[(-?[\\d.]+)pt\\]/)?.[1];\n const leading = value.match(/leading-\\[(-?[\\d.]+)pt\\]/)?.[1];\n return {\n ...(size ? { [sizeKey]: Number(size) } : {}),\n ...(leading ? { [leadingKey]: Number(leading) } : {}),\n };\n}\n\nfunction tracking(value: string | undefined): { longDateLetterSpacing?: string } {\n const amount = value?.match(/tracking-\\[([^\\]]+)\\]/)?.[1];\n return amount ? { longDateLetterSpacing: amount } : {};\n}\n","import type { DefaultAdFormatters } from \"./types\";\n\nexport const defaultFormatters: Required<DefaultAdFormatters> = {\n date(value) {\n const match = value.match(/^(\\d{4})-(\\d{2})-(\\d{2})/);\n return match ? `${match[3]}.${match[2]}.${match[1]}` : value;\n },\n funeralDate(value, hideYear) {\n if (!hideYear) return value;\n return value.replace(/([.\\/-])\\d{4}(?=\\D|$)/, \"\");\n },\n lowercaseFirst(value) {\n return value ? value.charAt(0).toLocaleLowerCase() + value.slice(1) : value;\n },\n};\n\nexport function mergeDefined<T extends object>(base: T, overrides?: Partial<T>): T {\n if (!overrides) return { ...base };\n return Object.fromEntries(\n Object.entries({ ...base, ...overrides }).filter(([, value]) => value !== undefined),\n ) as T;\n}\n\nexport function decodeSvgMarkup(value: string): string {\n return value\n .replace(/&lt;/g, \"<\")\n .replace(/&gt;/g, \">\")\n .replace(/&quot;/g, '\"')\n .replace(/&#(?:0*39|x0*27);/gi, \"'\")\n .replace(/&amp;/g, \"&\");\n}\n","import type { CSSProperties, ReactNode } from \"react\";\nimport { classicDefaultAdStyle } from \"./presets\";\nimport type { DefaultAdField, DefaultAdInteraction, DefaultAdProps, DefaultAdSpacing, DefaultAdTypography } from \"./types\";\nimport { decodeSvgMarkup, defaultFormatters, mergeDefined } from \"./utils\";\nimport \"./styles.css\";\n\nfunction textStyle(size: number, leading: number, marginTop: number): CSSProperties {\n return { fontSize: `${size}pt`, lineHeight: `${leading}pt`, marginTop: `${marginTop}pt` };\n}\n\nfunction Text({ children, className = \"\", style, field, interaction }: { children?: ReactNode; className?: string; style: CSSProperties; field?: DefaultAdField; interaction?: DefaultAdInteraction }) {\n const fieldState = field ? interaction?.fields?.[field] : undefined;\n const empty = children === null || children === undefined || children === \"\";\n if (empty && !fieldState?.active) return null;\n const events = field ? fieldEvents(field, interaction) : {};\n if (empty) {\n return <div className=\"gda-field-placeholder-container\"><div data-default-ad-field={field} className={`gda-text gda-field-empty ${className} ${fieldState?.className ?? \"\"}`.trim()} style={{ ...style, ...fieldState?.style }} {...events}>{fieldState?.placeholder}</div></div>;\n }\n return <div data-default-ad-field={field} className={`gda-text ${className}`.trim()} style={style} {...events}>{children}</div>;\n}\n\nfunction fieldEvents(field: DefaultAdField, interaction?: DefaultAdInteraction) {\n return {\n onFocus: interaction?.onFieldFocus ? () => interaction.onFieldFocus?.(field) : undefined,\n onBlur: interaction?.onFieldBlur ? () => interaction.onFieldBlur?.(field) : undefined,\n onClick: interaction?.onFieldClick ? () => interaction.onFieldClick?.(field) : undefined,\n };\n}\n\nexport function DefaultAd({\n data,\n style,\n mode = \"published\",\n variant = \"classic\",\n rootRef,\n interaction,\n formatters,\n showEmptyNamePlaceholder = mode === \"builder\",\n emptyNamePlaceholder = \"Fornavn Efternavn\",\n className = \"\",\n rootStyle,\n ...htmlProps\n}: DefaultAdProps) {\n const typography = mergeDefined(\n classicDefaultAdStyle.typography as Required<DefaultAdTypography>,\n style?.typography,\n );\n const spacing = mergeDefined(\n classicDefaultAdStyle.spacing as Required<DefaultAdSpacing>,\n style?.spacing,\n );\n const layout = mergeDefined(classicDefaultAdStyle, style);\n const fmt = { ...defaultFormatters, ...formatters };\n const { contact, text, icon, type } = data;\n const hasName = Boolean(contact.firstName || contact.lastName);\n const first = type === \"thanks\" ? text.thanksIntro : text.intro;\n const second = type === \"thanks\" ? text.briefIntroduction : text.title;\n const firstField = type === \"thanks\" ? \"thanksIntro\" : \"intro\";\n const secondField = type === \"thanks\" ? \"briefIntroduction\" : \"title\";\n const hasVisualFirst = Boolean(first || interaction?.fields?.[firstField]?.active);\n const hasVisualSecond = Boolean(second || interaction?.fields?.[secondField]?.active);\n const hasVisualName = hasName || Boolean(interaction?.fields?.firstName?.active || interaction?.fields?.lastName?.active);\n const headerMargins = calculateHeaderMargins({\n variant, first: hasVisualFirst, second: hasVisualSecond, hasName: hasVisualName, hasIcon: Boolean(icon), typography, spacing,\n });\n const { firstMargin, secondMargin, nameMargin } = headerMargins;\n const isSingleColumn = Number(layout.columnsMm) === 41;\n const ceremonyCode = contact.ceremony?.code;\n const ceremonyLabel = contact.ceremony?.label ?? ceremonyCode;\n\n return (\n <div\n {...htmlProps}\n ref={rootRef}\n data-default-ad=\"\"\n data-ad-content=\"\"\n data-ad-ready=\"true\"\n data-mode={mode}\n className={`gda-root ${className}`.trim()}\n style={{\n width: `${layout.columnsMm}mm`,\n minWidth: `${layout.columnsMm}mm`,\n ...(layout.heightMm != null ? { height: `${layout.heightMm}mm` } : {}),\n padding: `${layout.paddingMm}mm ${layout.horizontalPaddingMm}mm`,\n border: layout.border ? `${layout.borderWidthPt}pt solid black` : 0,\n gap: `${spacing.sectionGapMm}mm`,\n ...(typography.fontFamily != null ? { fontFamily: typography.fontFamily } : {}),\n ...rootStyle,\n }}\n >\n {icon ? (\n <div className=\"gda-icon\">\n <svg className={icon.className} xmlns=\"http://www.w3.org/2000/svg\"\n width={Number(icon.width) + 16} height={Number(icon.height) + 16}\n viewBox={icon.viewBox} role={icon.title ? \"img\" : undefined} aria-label={icon.title} aria-hidden={icon.title ? undefined : true}\n dangerouslySetInnerHTML={{ __html: decodeSvgMarkup(icon.svg) }} />\n </div>\n ) : null}\n\n <Text field={type === \"thanks\" ? \"thanksIntro\" : \"intro\"} interaction={interaction} className={`${type === \"thanks\" ? \"gda-bold\" : \"\"} ${variant === \"classic\" ? \"gda-break\" : \"\"}`}\n style={textStyle(type === \"thanks\" ? 14 : typography.introSize, typography.introLeading, firstMargin)}>\n {type === \"thanks\" && first ? first : type === \"obituaries\" ? first : null}\n </Text>\n <Text field={type === \"thanks\" ? \"briefIntroduction\" : \"title\"} interaction={interaction} className={variant === \"classic\" ? \"gda-break\" : \"\"} style={textStyle(typography.titleSize, typography.titleLeading, secondMargin)}>\n {type === \"thanks\" && second ? fmt.lowercaseFirst(second) : type === \"obituaries\" ? second : null}\n </Text>\n\n {hasName && !interaction?.fields?.firstName?.active && !interaction?.fields?.lastName?.active ? (\n <Text className=\"gda-name gda-bold gda-secondary-font\" style={textStyle(typography.nameSize, typography.nameLeading, nameMargin)}>\n {[contact.firstName, contact.lastName].filter(Boolean).join(\" \")}\n </Text>\n ) : hasName || interaction?.fields?.firstName?.active || interaction?.fields?.lastName?.active ? (\n <div className=\"gda-name gda-bold gda-secondary-font\" style={textStyle(typography.nameSize, typography.nameLeading, nameMargin)}>\n <NamePart field=\"firstName\" value={contact.firstName} interaction={interaction} />{\" \"}\n <NamePart field=\"lastName\" value={contact.lastName} interaction={interaction} />\n </div>\n ) : showEmptyNamePlaceholder ? <div className={`gda-placeholder ${variant === \"classic\" ? \"gda-name gda-bold gda-secondary-font\" : \"\"}`} style={variant === \"classic\" ? textStyle(typography.nameSize, typography.nameLeading, nameMargin) : undefined}>{emptyNamePlaceholder}</div> : null}\n\n {(contact.showBirthDate && (contact.birthDate || interaction?.fields?.birthDate?.active)) || (contact.showDeathDate && (contact.deathDate || interaction?.fields?.deathDate?.active)) ? (\n <div className={`gda-dates ${isSingleColumn ? \"gda-dates-single\" : \"\"}`}\n style={{ marginTop: `${spacing.dateTop}pt`, lineHeight: `${typography.dateLeading}pt`, ...(isSingleColumn && variant === \"classic\" ? { gap: `${spacing.dateTop}pt` } : {}) }}>\n {contact.showBirthDate && (contact.birthDate || interaction?.fields?.birthDate?.active) ? (\n <span data-default-ad-field=\"birthDate\" {...fieldEvents(\"birthDate\", interaction)} className={!contact.birthDate ? interaction?.fields?.birthDate?.className : undefined} style={{ fontSize: `${contact.birthDate && fmt.date(contact.birthDate).length > 10 ? typography.longDateSize : typography.dateSize}pt`, ...(contact.birthDate && fmt.date(contact.birthDate).length > 10 ? { letterSpacing: typography.longDateLetterSpacing } : {}), ...(!contact.birthDate ? interaction?.fields?.birthDate?.style : {}) }}>\n &#10043; {contact.birthDate ? fmt.date(contact.birthDate) : interaction?.fields?.birthDate?.placeholder}\n </span>\n ) : null}\n {contact.showDeathDate && (contact.deathDate || interaction?.fields?.deathDate?.active) ? (\n <span data-default-ad-field=\"deathDate\" {...fieldEvents(\"deathDate\", interaction)} className={!contact.deathDate ? interaction?.fields?.deathDate?.className : undefined} style={{ fontSize: `${contact.deathDate && fmt.date(contact.deathDate).length > 10 ? typography.longDateSize : typography.dateSize}pt`, ...(contact.deathDate && fmt.date(contact.deathDate).length > 10 ? { letterSpacing: typography.longDateLetterSpacing } : {}), ...(!contact.deathDate ? interaction?.fields?.deathDate?.style : {}) }}>\n <span className=\"gda-death-cross\" aria-hidden=\"true\">✝︎</span> {contact.deathDate ? fmt.date(contact.deathDate) : interaction?.fields?.deathDate?.placeholder}\n </span>\n ) : null}\n </div>\n ) : null}\n\n {type === \"obituaries\" ? <Text field=\"deceased\" interaction={interaction} className=\"gda-balance\" style={textStyle(typography.bodySize, typography.bodyLeading, spacing.deceasedTop)}>{text.deceased}</Text> : null}\n {variant === \"publication\" && type === \"thanks\" ? <ThankYouFields text={text} fmt={fmt} typography={typography} spacing={spacing} interaction={interaction} variant={variant} includeThanks /> : null}\n {!(mode === \"builder\" && type === \"thanks\") ? <Text field=\"memorial\" interaction={interaction} className={`gda-italic ${variant === \"classic\" ? \"gda-break\" : \"\"}`} style={textStyle(typography.memorialSize, typography.memorialLeading, spacing.memorialTop)}>{text.memorial}</Text> : null}\n {(type === \"obituaries\" || variant === \"publication\") && (text.sender || interaction?.fields?.sender?.active) ? <Text field=\"sender\" interaction={interaction} className={`${type === \"obituaries\" ? \"gda-bold \" : \"\"}gda-secondary-font`} style={textStyle(typography.senderSize, typography.senderLeading, spacing.senderTop)}>{text.sender}</Text> : null}\n\n {(type === \"obituaries\" || variant === \"publication\") && ceremonyCode !== \"NoCeremony\" && (contact.showChurch || contact.showFuneralDate) && (contact.church || contact.funeralDate || interaction?.fields?.church?.active || interaction?.fields?.funeralDate?.active) ? (\n <div className=\"gda-text\" style={textStyle(typography.ceremonySize, typography.ceremonyLeading, spacing.ceremonyTop)}>\n {contact.showChurch && (contact.church || interaction?.fields?.church?.active) ? <div data-default-ad-field=\"church\" {...fieldEvents(\"church\", interaction)} className={!contact.church ? interaction?.fields?.church?.className : undefined} style={!contact.church ? interaction?.fields?.church?.style : undefined}>{contact.church ? (contact.church.length > 15 ? `${ceremonyLabel ?? \"\"} \\n ${contact.church}` : `${ceremonyLabel ?? \"\"} ${contact.church}`.trim()) : interaction?.fields?.church?.placeholder}</div> : null}\n {contact.showFuneralDate && (contact.funeralDate || interaction?.fields?.funeralDate?.active) ? <div data-default-ad-field=\"funeralDate\" {...fieldEvents(\"funeralDate\", interaction)} className={!contact.funeralDate ? interaction?.fields?.funeralDate?.className : undefined} style={!contact.funeralDate ? interaction?.fields?.funeralDate?.style : undefined}>{contact.funeralDate ? fmt.funeralDate(contact.funeralDate, Boolean(contact.hideFuneralYear)) : interaction?.fields?.funeralDate?.placeholder}</div> : null}\n </div>\n ) : null}\n\n {variant === \"classic\" && type === \"thanks\" ? <ThankYouFields text={text} fmt={fmt} typography={typography} spacing={spacing} interaction={interaction} variant={variant} /> : null}\n {!(variant === \"publication\" && type === \"thanks\") ? <Text field=\"thanks\" interaction={interaction} className={variant === \"classic\" ? \"gda-break\" : \"\"} style={textStyle(typography.thanksSize, typography.thanksLeading, spacing.thanksTop)}>{text.thanks}</Text> : null}\n {variant === \"classic\" && type === \"thanks\" ? <Text field=\"sender\" interaction={interaction} style={textStyle(typography.senderSize, typography.senderLeading, spacing.thanksTop)}>{text.sender}</Text> : null}\n {text.donation ? <div className=\"gda-divider\" style={{ marginTop: `${spacing.donationTop}pt` }} /> : null}\n {text.donation || interaction?.fields?.donation?.active ? <Text field=\"donation\" interaction={interaction} className=\"gda-donation gda-break\" style={textStyle(typography.donationSize, typography.donationLeading, spacing.donationTop)}>{text.donation}</Text> : null}\n </div>\n );\n}\n\nfunction calculateHeaderMargins({ variant, first, second, hasName, hasIcon, typography, spacing }: any) {\n if (variant === \"classic\") {\n return {\n firstMargin: first && hasIcon ? spacing.iconToText : 0,\n secondMargin: second ? (first ? spacing.introToTitle : hasIcon ? spacing.iconToText : 0) : 0,\n nameMargin: hasName ? (first || second ? spacing.textToName : hasIcon ? spacing.iconToName : 0) : 0,\n };\n }\n\n const introExtra = (typography.introLeading - typography.introSize) / 2;\n const titleExtra = (typography.titleLeading - typography.titleSize) / 2;\n const nameExtra = (typography.nameLeading - typography.nameSize) / 2;\n return {\n firstMargin: first && hasIcon ? spacing.iconToText - typography.introSize - introExtra : 0,\n secondMargin: second ? first\n ? spacing.introToTitle - typography.titleSize - titleExtra - introExtra\n : hasIcon ? spacing.iconToText - typography.titleSize - titleExtra : 0 : 0,\n nameMargin: hasName ? first || second\n ? spacing.textToName - typography.nameSize - nameExtra - titleExtra\n : hasIcon ? spacing.iconToText - typography.nameSize - nameExtra : 0 : 0,\n };\n}\n\nfunction NamePart({ field, value, interaction }: { field: \"firstName\" | \"lastName\"; value?: string | null; interaction?: DefaultAdInteraction }) {\n const state = interaction?.fields?.[field];\n if (!value && !state?.active) return null;\n return <span data-default-ad-field={field} className={!value ? state?.className : undefined} style={!value ? state?.style : undefined} {...fieldEvents(field, interaction)}>{value || state?.placeholder}</span>;\n}\n\nfunction ThankYouFields({ text, fmt, typography, spacing, interaction, variant, includeThanks = false }: any) {\n const breakClass = variant === \"classic\" ? \"gda-break\" : \"\";\n const ceremonySize = variant === \"classic\" ? typography.bodySize : typography.bodySize;\n const ceremonyLeading = variant === \"classic\" ? typography.bodyLeading : typography.bodyLeading;\n const ceremonyTop = variant === \"classic\" ? spacing.thanksTop : spacing.deceasedTop;\n return <>\n <Text field=\"ceremony\" interaction={interaction} className={breakClass} style={textStyle(ceremonySize, ceremonyLeading, ceremonyTop)}>{text.ceremony ? fmt.lowercaseFirst(text.ceremony) : null}</Text>\n <Text field=\"message\" interaction={interaction} className={breakClass} style={textStyle(typography.bodySize, typography.bodyLeading, variant === \"classic\" ? spacing.thanksTop : spacing.deceasedTop)}>{text.message}</Text>\n {includeThanks ? <Text field=\"thanks\" interaction={interaction} className={breakClass} style={textStyle(typography.thanksSize, typography.thanksLeading, spacing.thanksTop)}>{text.thanks}</Text> : null}\n </>;\n}\n"],"mappings":"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","names":[]}
package/dist/index.css CHANGED
@@ -20,8 +20,13 @@
20
20
  .gda-text {
21
21
  font-weight: 400;
22
22
  white-space: pre-line;
23
+ }
24
+ .gda-break {
23
25
  overflow-wrap: break-word;
24
26
  }
27
+ .gda-name {
28
+ white-space: normal;
29
+ }
25
30
  .gda-balance {
26
31
  text-wrap: balance;
27
32
  }
@@ -71,4 +76,15 @@
71
76
  .gda-placeholder {
72
77
  opacity: .25;
73
78
  }
79
+ .gda-field-placeholder-container {
80
+ display: flex;
81
+ justify-content: center;
82
+ }
83
+ .gda-field-empty.gda-donation {
84
+ margin-right: 0;
85
+ margin-left: 0;
86
+ }
87
+ .gda-field-empty.gda-balance {
88
+ text-wrap: initial;
89
+ }
74
90
  /*# sourceMappingURL=index.css.map */
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/styles.css"],"sourcesContent":[".gda-root {\n box-sizing: border-box;\n display: flex;\n flex-direction: column;\n flex-shrink: 0;\n overflow: hidden;\n color: #000;\n background: #fff;\n stroke: #000;\n text-align: center;\n box-shadow: 0 0 30px -10px rgb(0 0 0 / 30%);\n transition: all 700ms;\n}\n.gda-root *, .gda-root *::before, .gda-root *::after { box-sizing: border-box; }\n.gda-text { font-weight: 400; white-space: pre-line; overflow-wrap: break-word; }\n.gda-balance { text-wrap: balance; }\n.gda-bold { font-weight: 700; }\n.gda-italic { font-style: italic; }\n.gda-secondary-font { font-family: var(--default-ad-font-secondary, inherit); }\n.gda-icon { display: flex; justify-content: center; line-height: 0; }\n.gda-dates { display: flex; width: 100%; flex-flow: row nowrap; justify-content: center; gap: 4mm; font-weight: 400; white-space: nowrap; }\n.gda-dates-single { flex-direction: column; gap: 0; }\n.gda-death-cross { font-family: \"Times New Roman\", Times, serif; }\n.gda-divider { width: 3rem; margin-right: auto; margin-left: auto; border-top: 1.4pt solid #000; }\n.gda-donation { margin-right: 19pt; margin-left: 19pt; }\n.gda-placeholder { opacity: .25; }\n"],"mappings":";AAAA,CAAC;AACC,cAAY;AACZ,WAAS;AACT,kBAAgB;AAChB,eAAa;AACb,YAAU;AACV,SAAO;AACP,cAAY;AACZ,UAAQ;AACR,cAAY;AACZ,cAAY,EAAE,EAAE,KAAK,MAAM,IAAI,EAAE,EAAE,EAAE,EAAE;AACvC,cAAY,IAAI;AAClB;AACA,CAbC,SAaS;AAAG,CAbZ,SAasB,CAAC;AAAU,CAbjC,SAa2C,CAAC;AAAU,cAAY;AAAY;AAC/E,CAAC;AAAW,eAAa;AAAK,eAAa;AAAU,iBAAe;AAAY;AAChF,CAAC;AAAc,aAAW;AAAS;AACnC,CAAC;AAAW,eAAa;AAAK;AAC9B,CAAC;AAAa,cAAY;AAAQ;AAClC,CAAC;AAAqB,eAAa,IAAI,2BAA2B,EAAE;AAAU;AAC9E,CAAC;AAAW,WAAS;AAAM,mBAAiB;AAAQ,eAAa;AAAG;AACpE,CAAC;AAAY,WAAS;AAAM,SAAO;AAAM,aAAW,IAAI;AAAQ,mBAAiB;AAAQ,OAAK;AAAK,eAAa;AAAK,eAAa;AAAQ;AAC1I,CAAC;AAAmB,kBAAgB;AAAQ,OAAK;AAAG;AACpD,CAAC;AAAkB;AAAA,IAAa,iBAAiB;AAAA,IAAE,KAAK;AAAA,IAAE;AAAO;AACjE,CAAC;AAAc,SAAO;AAAM,gBAAc;AAAM,eAAa;AAAM,cAAY,MAAM,MAAM;AAAM;AACjG,CAAC;AAAe,gBAAc;AAAM,eAAa;AAAM;AACvD,CAAC;AAAkB,WAAS;AAAK;","names":[]}
1
+ {"version":3,"sources":["../src/styles.css"],"sourcesContent":[".gda-root {\n box-sizing: border-box;\n display: flex;\n flex-direction: column;\n flex-shrink: 0;\n overflow: hidden;\n color: #000;\n background: #fff;\n stroke: #000;\n text-align: center;\n box-shadow: 0 0 30px -10px rgb(0 0 0 / 30%);\n transition: all 700ms;\n}\n.gda-root *, .gda-root *::before, .gda-root *::after { box-sizing: border-box; }\n.gda-text { font-weight: 400; white-space: pre-line; }\n.gda-break { overflow-wrap: break-word; }\n.gda-name { white-space: normal; }\n.gda-balance { text-wrap: balance; }\n.gda-bold { font-weight: 700; }\n.gda-italic { font-style: italic; }\n.gda-secondary-font { font-family: var(--default-ad-font-secondary, inherit); }\n.gda-icon { display: flex; justify-content: center; line-height: 0; }\n.gda-dates { display: flex; width: 100%; flex-flow: row nowrap; justify-content: center; gap: 4mm; font-weight: 400; white-space: nowrap; }\n.gda-dates-single { flex-direction: column; gap: 0; }\n.gda-death-cross { font-family: \"Times New Roman\", Times, serif; }\n.gda-divider { width: 3rem; margin-right: auto; margin-left: auto; border-top: 1.4pt solid #000; }\n.gda-donation { margin-right: 19pt; margin-left: 19pt; }\n.gda-placeholder { opacity: .25; }\n.gda-field-placeholder-container { display: flex; justify-content: center; }\n.gda-field-empty.gda-donation { margin-right: 0; margin-left: 0; }\n.gda-field-empty.gda-balance { text-wrap: initial; }\n"],"mappings":";AAAA,CAAC;AACC,cAAY;AACZ,WAAS;AACT,kBAAgB;AAChB,eAAa;AACb,YAAU;AACV,SAAO;AACP,cAAY;AACZ,UAAQ;AACR,cAAY;AACZ,cAAY,EAAE,EAAE,KAAK,MAAM,IAAI,EAAE,EAAE,EAAE,EAAE;AACvC,cAAY,IAAI;AAClB;AACA,CAbC,SAaS;AAAG,CAbZ,SAasB,CAAC;AAAU,CAbjC,SAa2C,CAAC;AAAU,cAAY;AAAY;AAC/E,CAAC;AAAW,eAAa;AAAK,eAAa;AAAU;AACrD,CAAC;AAAY,iBAAe;AAAY;AACxC,CAAC;AAAW,eAAa;AAAQ;AACjC,CAAC;AAAc,aAAW;AAAS;AACnC,CAAC;AAAW,eAAa;AAAK;AAC9B,CAAC;AAAa,cAAY;AAAQ;AAClC,CAAC;AAAqB,eAAa,IAAI,2BAA2B,EAAE;AAAU;AAC9E,CAAC;AAAW,WAAS;AAAM,mBAAiB;AAAQ,eAAa;AAAG;AACpE,CAAC;AAAY,WAAS;AAAM,SAAO;AAAM,aAAW,IAAI;AAAQ,mBAAiB;AAAQ,OAAK;AAAK,eAAa;AAAK,eAAa;AAAQ;AAC1I,CAAC;AAAmB,kBAAgB;AAAQ,OAAK;AAAG;AACpD,CAAC;AAAkB;AAAA,IAAa,iBAAiB;AAAA,IAAE,KAAK;AAAA,IAAE;AAAO;AACjE,CAAC;AAAc,SAAO;AAAM,gBAAc;AAAM,eAAa;AAAM,cAAY,MAAM,MAAM;AAAM;AACjG,CAAC;AAAe,gBAAc;AAAM,eAAa;AAAM;AACvD,CAAC;AAAkB,WAAS;AAAK;AACjC,CAAC;AAAkC,WAAS;AAAM,mBAAiB;AAAQ;AAC3E,CAAC,eAAe,CAHf;AAG+B,gBAAc;AAAG,eAAa;AAAG;AACjE,CADC,eACe,CAbf;AAa8B,aAAW;AAAS;","names":[]}
package/dist/index.d.mts CHANGED
@@ -66,8 +66,9 @@ interface DefaultAdData {
66
66
  icon?: DefaultAdIcon | null;
67
67
  }
68
68
  interface DefaultAdTypography {
69
- fontFamily?: string;
70
- secondaryFontFamily?: string;
69
+ /** Set to null to let `className`/consumer CSS own the root font. */
70
+ fontFamily?: string | null;
71
+ secondaryFontFamily?: string | null;
71
72
  introSize?: number;
72
73
  introLeading?: number;
73
74
  titleSize?: number;
@@ -76,6 +77,7 @@ interface DefaultAdTypography {
76
77
  nameLeading?: number;
77
78
  dateSize?: number;
78
79
  longDateSize?: number;
80
+ longDateLetterSpacing?: string;
79
81
  dateLeading?: number;
80
82
  bodySize?: number;
81
83
  bodyLeading?: number;
package/dist/index.d.ts CHANGED
@@ -66,8 +66,9 @@ interface DefaultAdData {
66
66
  icon?: DefaultAdIcon | null;
67
67
  }
68
68
  interface DefaultAdTypography {
69
- fontFamily?: string;
70
- secondaryFontFamily?: string;
69
+ /** Set to null to let `className`/consumer CSS own the root font. */
70
+ fontFamily?: string | null;
71
+ secondaryFontFamily?: string | null;
71
72
  introSize?: number;
72
73
  introLeading?: number;
73
74
  titleSize?: number;
@@ -76,6 +77,7 @@ interface DefaultAdTypography {
76
77
  nameLeading?: number;
77
78
  dateSize?: number;
78
79
  longDateSize?: number;
80
+ longDateLetterSpacing?: string;
79
81
  dateLeading?: number;
80
82
  bodySize?: number;
81
83
  bodyLeading?: number;
package/dist/index.js CHANGED
@@ -17,6 +17,7 @@ var classicDefaultAdStyle = {
17
17
  nameLeading: 16.8,
18
18
  dateSize: 10,
19
19
  longDateSize: 10,
20
+ longDateLetterSpacing: "-0.01em",
20
21
  dateLeading: 12,
21
22
  bodySize: 10,
22
23
  bodyLeading: 12,
@@ -61,6 +62,7 @@ var publicationDefaultAdStyle = {
61
62
  nameLeading: 15,
62
63
  dateSize: 11.5,
63
64
  longDateSize: 11,
65
+ longDateLetterSpacing: "-0.01em",
64
66
  bodySize: 12,
65
67
  bodyLeading: 13,
66
68
  memorialSize: 12,
@@ -101,7 +103,8 @@ function styleFromLegacyTemplate(template) {
101
103
  ...fontPair(template.senderText, "senderSize", "senderLeading"),
102
104
  ...fontPair(template.ceremonyText, "ceremonySize", "ceremonyLeading"),
103
105
  ...fontPair(template.thanksText, "thanksSize", "thanksLeading"),
104
- ...fontPair(template.donationText, "donationSize", "donationLeading")
106
+ ...fontPair(template.donationText, "donationSize", "donationLeading"),
107
+ ...tracking(template.longDatesText)
105
108
  },
106
109
  spacing: {
107
110
  ...publicationDefaultAdStyle.spacing,
@@ -132,6 +135,10 @@ function fontPair(value, sizeKey, leadingKey) {
132
135
  ...leading ? { [leadingKey]: Number(leading) } : {}
133
136
  };
134
137
  }
138
+ function tracking(value) {
139
+ const amount = value?.match(/tracking-\[([^\]]+)\]/)?.[1];
140
+ return amount ? { longDateLetterSpacing: amount } : {};
141
+ }
135
142
 
136
143
  // src/utils.ts
137
144
  var defaultFormatters = {
@@ -167,7 +174,10 @@ function Text({ children, className = "", style, field, interaction }) {
167
174
  const empty = children === null || children === void 0 || children === "";
168
175
  if (empty && !fieldState?.active) return null;
169
176
  const events = field ? fieldEvents(field, interaction) : {};
170
- return /* @__PURE__ */ jsx("div", { "data-default-ad-field": field, className: `gda-text ${className} ${empty ? `gda-field-empty ${fieldState?.className ?? ""}` : ""}`.trim(), style: { ...style, ...empty ? fieldState?.style : {} }, ...events, children: empty ? fieldState?.placeholder : children });
177
+ if (empty) {
178
+ return /* @__PURE__ */ jsx("div", { className: "gda-field-placeholder-container", children: /* @__PURE__ */ jsx("div", { "data-default-ad-field": field, className: `gda-text gda-field-empty ${className} ${fieldState?.className ?? ""}`.trim(), style: { ...style, ...fieldState?.style }, ...events, children: fieldState?.placeholder }) });
179
+ }
180
+ return /* @__PURE__ */ jsx("div", { "data-default-ad-field": field, className: `gda-text ${className}`.trim(), style, ...events, children });
171
181
  }
172
182
  function fieldEvents(field, interaction) {
173
183
  return {
@@ -204,11 +214,16 @@ function DefaultAd({
204
214
  const hasName = Boolean(contact.firstName || contact.lastName);
205
215
  const first = type === "thanks" ? text.thanksIntro : text.intro;
206
216
  const second = type === "thanks" ? text.briefIntroduction : text.title;
217
+ const firstField = type === "thanks" ? "thanksIntro" : "intro";
218
+ const secondField = type === "thanks" ? "briefIntroduction" : "title";
219
+ const hasVisualFirst = Boolean(first || interaction?.fields?.[firstField]?.active);
220
+ const hasVisualSecond = Boolean(second || interaction?.fields?.[secondField]?.active);
221
+ const hasVisualName = hasName || Boolean(interaction?.fields?.firstName?.active || interaction?.fields?.lastName?.active);
207
222
  const headerMargins = calculateHeaderMargins({
208
223
  variant,
209
- first: Boolean(first),
210
- second: Boolean(second),
211
- hasName,
224
+ first: hasVisualFirst,
225
+ second: hasVisualSecond,
226
+ hasName: hasVisualName,
212
227
  hasIcon: Boolean(icon),
213
228
  typography,
214
229
  spacing
@@ -234,11 +249,11 @@ function DefaultAd({
234
249
  padding: `${layout.paddingMm}mm ${layout.horizontalPaddingMm}mm`,
235
250
  border: layout.border ? `${layout.borderWidthPt}pt solid black` : 0,
236
251
  gap: `${spacing.sectionGapMm}mm`,
237
- fontFamily: typography.fontFamily,
252
+ ...typography.fontFamily != null ? { fontFamily: typography.fontFamily } : {},
238
253
  ...rootStyle
239
254
  },
240
255
  children: [
241
- icon ? /* @__PURE__ */ jsx("div", { className: "gda-icon", children: /* @__PURE__ */ jsxs(
256
+ icon ? /* @__PURE__ */ jsx("div", { className: "gda-icon", children: /* @__PURE__ */ jsx(
242
257
  "svg",
243
258
  {
244
259
  className: icon.className,
@@ -247,11 +262,9 @@ function DefaultAd({
247
262
  height: Number(icon.height) + 16,
248
263
  viewBox: icon.viewBox,
249
264
  role: icon.title ? "img" : void 0,
265
+ "aria-label": icon.title,
250
266
  "aria-hidden": icon.title ? void 0 : true,
251
- children: [
252
- icon.title ? /* @__PURE__ */ jsx("title", { children: icon.title }) : null,
253
- /* @__PURE__ */ jsx("g", { dangerouslySetInnerHTML: { __html: decodeSvgMarkup(icon.svg) } })
254
- ]
267
+ dangerouslySetInnerHTML: { __html: decodeSvgMarkup(icon.svg) }
255
268
  }
256
269
  ) }) : null,
257
270
  /* @__PURE__ */ jsx(
@@ -259,28 +272,28 @@ function DefaultAd({
259
272
  {
260
273
  field: type === "thanks" ? "thanksIntro" : "intro",
261
274
  interaction,
262
- className: type === "thanks" ? "gda-bold" : "",
275
+ className: `${type === "thanks" ? "gda-bold" : ""} ${variant === "classic" ? "gda-break" : ""}`,
263
276
  style: textStyle(type === "thanks" ? 14 : typography.introSize, typography.introLeading, firstMargin),
264
277
  children: type === "thanks" && first ? first : type === "obituaries" ? first : null
265
278
  }
266
279
  ),
267
- /* @__PURE__ */ jsx(Text, { field: type === "thanks" ? "briefIntroduction" : "title", interaction, style: textStyle(typography.titleSize, typography.titleLeading, secondMargin), children: type === "thanks" && second ? fmt.lowercaseFirst(second) : type === "obituaries" ? second : null }),
268
- hasName && !interaction ? /* @__PURE__ */ jsx(Text, { className: "gda-bold gda-secondary-font", style: textStyle(typography.nameSize, typography.nameLeading, nameMargin), children: [contact.firstName, contact.lastName].filter(Boolean).join(" ") }) : hasName || interaction?.fields?.firstName?.active || interaction?.fields?.lastName?.active ? /* @__PURE__ */ jsxs("div", { className: "gda-text gda-bold gda-secondary-font", style: textStyle(typography.nameSize, typography.nameLeading, nameMargin), children: [
280
+ /* @__PURE__ */ jsx(Text, { field: type === "thanks" ? "briefIntroduction" : "title", interaction, className: variant === "classic" ? "gda-break" : "", style: textStyle(typography.titleSize, typography.titleLeading, secondMargin), children: type === "thanks" && second ? fmt.lowercaseFirst(second) : type === "obituaries" ? second : null }),
281
+ hasName && !interaction?.fields?.firstName?.active && !interaction?.fields?.lastName?.active ? /* @__PURE__ */ jsx(Text, { className: "gda-name gda-bold gda-secondary-font", style: textStyle(typography.nameSize, typography.nameLeading, nameMargin), children: [contact.firstName, contact.lastName].filter(Boolean).join(" ") }) : hasName || interaction?.fields?.firstName?.active || interaction?.fields?.lastName?.active ? /* @__PURE__ */ jsxs("div", { className: "gda-name gda-bold gda-secondary-font", style: textStyle(typography.nameSize, typography.nameLeading, nameMargin), children: [
269
282
  /* @__PURE__ */ jsx(NamePart, { field: "firstName", value: contact.firstName, interaction }),
270
283
  " ",
271
284
  /* @__PURE__ */ jsx(NamePart, { field: "lastName", value: contact.lastName, interaction })
272
- ] }) : showEmptyNamePlaceholder ? /* @__PURE__ */ jsx("div", { className: "gda-placeholder", children: emptyNamePlaceholder }) : null,
285
+ ] }) : showEmptyNamePlaceholder ? /* @__PURE__ */ jsx("div", { className: `gda-placeholder ${variant === "classic" ? "gda-name gda-bold gda-secondary-font" : ""}`, style: variant === "classic" ? textStyle(typography.nameSize, typography.nameLeading, nameMargin) : void 0, children: emptyNamePlaceholder }) : null,
273
286
  contact.showBirthDate && (contact.birthDate || interaction?.fields?.birthDate?.active) || contact.showDeathDate && (contact.deathDate || interaction?.fields?.deathDate?.active) ? /* @__PURE__ */ jsxs(
274
287
  "div",
275
288
  {
276
289
  className: `gda-dates ${isSingleColumn ? "gda-dates-single" : ""}`,
277
- style: { marginTop: `${spacing.dateTop}pt`, lineHeight: `${typography.dateLeading}pt` },
290
+ style: { marginTop: `${spacing.dateTop}pt`, lineHeight: `${typography.dateLeading}pt`, ...isSingleColumn && variant === "classic" ? { gap: `${spacing.dateTop}pt` } : {} },
278
291
  children: [
279
- contact.showBirthDate && (contact.birthDate || interaction?.fields?.birthDate?.active) ? /* @__PURE__ */ jsxs("span", { "data-default-ad-field": "birthDate", ...fieldEvents("birthDate", interaction), style: { fontSize: `${contact.birthDate && fmt.date(contact.birthDate).length > 10 ? typography.longDateSize : typography.dateSize}pt`, ...!contact.birthDate ? interaction?.fields?.birthDate?.style : {} }, children: [
292
+ contact.showBirthDate && (contact.birthDate || interaction?.fields?.birthDate?.active) ? /* @__PURE__ */ jsxs("span", { "data-default-ad-field": "birthDate", ...fieldEvents("birthDate", interaction), className: !contact.birthDate ? interaction?.fields?.birthDate?.className : void 0, style: { fontSize: `${contact.birthDate && fmt.date(contact.birthDate).length > 10 ? typography.longDateSize : typography.dateSize}pt`, ...contact.birthDate && fmt.date(contact.birthDate).length > 10 ? { letterSpacing: typography.longDateLetterSpacing } : {}, ...!contact.birthDate ? interaction?.fields?.birthDate?.style : {} }, children: [
280
293
  "\u273B ",
281
294
  contact.birthDate ? fmt.date(contact.birthDate) : interaction?.fields?.birthDate?.placeholder
282
295
  ] }) : null,
283
- contact.showDeathDate && (contact.deathDate || interaction?.fields?.deathDate?.active) ? /* @__PURE__ */ jsxs("span", { "data-default-ad-field": "deathDate", ...fieldEvents("deathDate", interaction), style: { fontSize: `${contact.deathDate && fmt.date(contact.deathDate).length > 10 ? typography.longDateSize : typography.dateSize}pt`, ...!contact.deathDate ? interaction?.fields?.deathDate?.style : {} }, children: [
296
+ contact.showDeathDate && (contact.deathDate || interaction?.fields?.deathDate?.active) ? /* @__PURE__ */ jsxs("span", { "data-default-ad-field": "deathDate", ...fieldEvents("deathDate", interaction), className: !contact.deathDate ? interaction?.fields?.deathDate?.className : void 0, style: { fontSize: `${contact.deathDate && fmt.date(contact.deathDate).length > 10 ? typography.longDateSize : typography.dateSize}pt`, ...contact.deathDate && fmt.date(contact.deathDate).length > 10 ? { letterSpacing: typography.longDateLetterSpacing } : {}, ...!contact.deathDate ? interaction?.fields?.deathDate?.style : {} }, children: [
284
297
  /* @__PURE__ */ jsx("span", { className: "gda-death-cross", "aria-hidden": "true", children: "\u271D\uFE0E" }),
285
298
  " ",
286
299
  contact.deathDate ? fmt.date(contact.deathDate) : interaction?.fields?.deathDate?.placeholder
@@ -289,23 +302,19 @@ function DefaultAd({
289
302
  }
290
303
  ) : null,
291
304
  type === "obituaries" ? /* @__PURE__ */ jsx(Text, { field: "deceased", interaction, className: "gda-balance", style: textStyle(typography.bodySize, typography.bodyLeading, spacing.deceasedTop), children: text.deceased }) : null,
292
- variant === "publication" && type === "thanks" ? /* @__PURE__ */ jsx(ThankYouFields, { text, fmt, typography, spacing, interaction, includeThanks: true }) : null,
293
- /* @__PURE__ */ jsx(Text, { field: "memorial", interaction, className: "gda-italic", style: textStyle(typography.memorialSize, typography.memorialLeading, spacing.memorialTop), children: text.memorial }),
294
- text.sender || interaction?.fields?.sender?.active ? /* @__PURE__ */ jsx(Text, { field: "sender", interaction, className: `${type === "obituaries" ? "gda-bold " : ""}gda-secondary-font`, style: textStyle(typography.senderSize, typography.senderLeading, spacing.senderTop), children: text.sender }) : null,
305
+ variant === "publication" && type === "thanks" ? /* @__PURE__ */ jsx(ThankYouFields, { text, fmt, typography, spacing, interaction, variant, includeThanks: true }) : null,
306
+ !(mode === "builder" && type === "thanks") ? /* @__PURE__ */ jsx(Text, { field: "memorial", interaction, className: `gda-italic ${variant === "classic" ? "gda-break" : ""}`, style: textStyle(typography.memorialSize, typography.memorialLeading, spacing.memorialTop), children: text.memorial }) : null,
307
+ (type === "obituaries" || variant === "publication") && (text.sender || interaction?.fields?.sender?.active) ? /* @__PURE__ */ jsx(Text, { field: "sender", interaction, className: `${type === "obituaries" ? "gda-bold " : ""}gda-secondary-font`, style: textStyle(typography.senderSize, typography.senderLeading, spacing.senderTop), children: text.sender }) : null,
295
308
  (type === "obituaries" || variant === "publication") && ceremonyCode !== "NoCeremony" && (contact.showChurch || contact.showFuneralDate) && (contact.church || contact.funeralDate || interaction?.fields?.church?.active || interaction?.fields?.funeralDate?.active) ? /* @__PURE__ */ jsxs("div", { className: "gda-text", style: textStyle(typography.ceremonySize, typography.ceremonyLeading, spacing.ceremonyTop), children: [
296
- contact.showChurch && (contact.church || interaction?.fields?.church?.active) ? /* @__PURE__ */ jsx("div", { "data-default-ad-field": "church", ...fieldEvents("church", interaction), style: !contact.church ? interaction?.fields?.church?.style : void 0, children: contact.church ? contact.church.length > 15 ? /* @__PURE__ */ jsxs(Fragment, { children: [
297
- ceremonyLabel,
298
- /* @__PURE__ */ jsx("br", {}),
299
- contact.church
300
- ] }) : `${ceremonyLabel ?? ""} ${contact.church}`.trim() : interaction?.fields?.church?.placeholder }) : null,
301
- contact.showFuneralDate && (contact.funeralDate || interaction?.fields?.funeralDate?.active) ? /* @__PURE__ */ jsx("div", { "data-default-ad-field": "funeralDate", ...fieldEvents("funeralDate", interaction), style: !contact.funeralDate ? interaction?.fields?.funeralDate?.style : void 0, children: contact.funeralDate ? fmt.funeralDate(contact.funeralDate, Boolean(contact.hideFuneralYear)) : interaction?.fields?.funeralDate?.placeholder }) : null
309
+ contact.showChurch && (contact.church || interaction?.fields?.church?.active) ? /* @__PURE__ */ jsx("div", { "data-default-ad-field": "church", ...fieldEvents("church", interaction), className: !contact.church ? interaction?.fields?.church?.className : void 0, style: !contact.church ? interaction?.fields?.church?.style : void 0, children: contact.church ? contact.church.length > 15 ? `${ceremonyLabel ?? ""}
310
+ ${contact.church}` : `${ceremonyLabel ?? ""} ${contact.church}`.trim() : interaction?.fields?.church?.placeholder }) : null,
311
+ contact.showFuneralDate && (contact.funeralDate || interaction?.fields?.funeralDate?.active) ? /* @__PURE__ */ jsx("div", { "data-default-ad-field": "funeralDate", ...fieldEvents("funeralDate", interaction), className: !contact.funeralDate ? interaction?.fields?.funeralDate?.className : void 0, style: !contact.funeralDate ? interaction?.fields?.funeralDate?.style : void 0, children: contact.funeralDate ? fmt.funeralDate(contact.funeralDate, Boolean(contact.hideFuneralYear)) : interaction?.fields?.funeralDate?.placeholder }) : null
302
312
  ] }) : null,
303
- variant === "classic" && type === "thanks" ? /* @__PURE__ */ jsx(ThankYouFields, { text, fmt, typography, spacing, interaction }) : null,
304
- !(variant === "publication" && type === "thanks") ? /* @__PURE__ */ jsx(Text, { field: "thanks", interaction, style: textStyle(typography.thanksSize, typography.thanksLeading, spacing.thanksTop), children: text.thanks }) : null,
305
- text.donation || interaction?.fields?.donation?.active ? /* @__PURE__ */ jsxs(Fragment, { children: [
306
- /* @__PURE__ */ jsx("div", { className: "gda-divider", style: { marginTop: `${spacing.donationTop}pt` } }),
307
- /* @__PURE__ */ jsx(Text, { field: "donation", interaction, className: "gda-donation", style: textStyle(typography.donationSize, typography.donationLeading, spacing.donationTop), children: text.donation })
308
- ] }) : null
313
+ variant === "classic" && type === "thanks" ? /* @__PURE__ */ jsx(ThankYouFields, { text, fmt, typography, spacing, interaction, variant }) : null,
314
+ !(variant === "publication" && type === "thanks") ? /* @__PURE__ */ jsx(Text, { field: "thanks", interaction, className: variant === "classic" ? "gda-break" : "", style: textStyle(typography.thanksSize, typography.thanksLeading, spacing.thanksTop), children: text.thanks }) : null,
315
+ variant === "classic" && type === "thanks" ? /* @__PURE__ */ jsx(Text, { field: "sender", interaction, style: textStyle(typography.senderSize, typography.senderLeading, spacing.thanksTop), children: text.sender }) : null,
316
+ text.donation ? /* @__PURE__ */ jsx("div", { className: "gda-divider", style: { marginTop: `${spacing.donationTop}pt` } }) : null,
317
+ text.donation || interaction?.fields?.donation?.active ? /* @__PURE__ */ jsx(Text, { field: "donation", interaction, className: "gda-donation gda-break", style: textStyle(typography.donationSize, typography.donationLeading, spacing.donationTop), children: text.donation }) : null
309
318
  ]
310
319
  }
311
320
  );
@@ -332,11 +341,15 @@ function NamePart({ field, value, interaction }) {
332
341
  if (!value && !state?.active) return null;
333
342
  return /* @__PURE__ */ jsx("span", { "data-default-ad-field": field, className: !value ? state?.className : void 0, style: !value ? state?.style : void 0, ...fieldEvents(field, interaction), children: value || state?.placeholder });
334
343
  }
335
- function ThankYouFields({ text, fmt, typography, spacing, interaction, includeThanks = false }) {
344
+ function ThankYouFields({ text, fmt, typography, spacing, interaction, variant, includeThanks = false }) {
345
+ const breakClass = variant === "classic" ? "gda-break" : "";
346
+ const ceremonySize = variant === "classic" ? typography.bodySize : typography.bodySize;
347
+ const ceremonyLeading = variant === "classic" ? typography.bodyLeading : typography.bodyLeading;
348
+ const ceremonyTop = variant === "classic" ? spacing.thanksTop : spacing.deceasedTop;
336
349
  return /* @__PURE__ */ jsxs(Fragment, { children: [
337
- /* @__PURE__ */ jsx(Text, { field: "ceremony", interaction, style: textStyle(typography.ceremonySize, typography.ceremonyLeading, spacing.ceremonyTop), children: text.ceremony ? fmt.lowercaseFirst(text.ceremony) : null }),
338
- /* @__PURE__ */ jsx(Text, { field: "message", interaction, style: textStyle(typography.bodySize, typography.bodyLeading, spacing.thanksTop), children: text.message }),
339
- includeThanks ? /* @__PURE__ */ jsx(Text, { field: "thanks", interaction, style: textStyle(typography.thanksSize, typography.thanksLeading, spacing.thanksTop), children: text.thanks }) : null
350
+ /* @__PURE__ */ jsx(Text, { field: "ceremony", interaction, className: breakClass, style: textStyle(ceremonySize, ceremonyLeading, ceremonyTop), children: text.ceremony ? fmt.lowercaseFirst(text.ceremony) : null }),
351
+ /* @__PURE__ */ jsx(Text, { field: "message", interaction, className: breakClass, style: textStyle(typography.bodySize, typography.bodyLeading, variant === "classic" ? spacing.thanksTop : spacing.deceasedTop), children: text.message }),
352
+ includeThanks ? /* @__PURE__ */ jsx(Text, { field: "thanks", interaction, className: breakClass, style: textStyle(typography.thanksSize, typography.thanksLeading, spacing.thanksTop), children: text.thanks }) : null
340
353
  ] });
341
354
  }
342
355
  export {
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/presets.ts","../src/utils.ts","../src/DefaultAd.tsx"],"sourcesContent":["import type { DefaultAdStyle, LegacyAdTemplate } from \"./types\";\n\nexport const classicDefaultAdStyle: Readonly<DefaultAdStyle> = {\n columnsMm: 86,\n heightMm: null,\n paddingMm: 4,\n horizontalPaddingMm: 2,\n border: false,\n borderWidthPt: 1.4,\n typography: {\n fontFamily: \"var(--default-ad-font-primary, Schoolbook, Georgia, serif)\",\n secondaryFontFamily: \"var(--default-ad-font-secondary, Schoolbook, Georgia, serif)\",\n introSize: 10,\n introLeading: 12,\n titleSize: 10,\n titleLeading: 12,\n nameSize: 14,\n nameLeading: 16.8,\n dateSize: 10,\n longDateSize: 10,\n dateLeading: 12,\n bodySize: 10,\n bodyLeading: 12,\n memorialSize: 10,\n memorialLeading: 12,\n senderSize: 10,\n senderLeading: 12,\n ceremonySize: 10,\n ceremonyLeading: 12,\n thanksSize: 10,\n thanksLeading: 12,\n donationSize: 10,\n donationLeading: 12,\n },\n spacing: {\n iconToText: 11,\n introToTitle: 8,\n // The legacy component passed these two values as unitless React styles (CSS px).\n textToName: 4.2,\n iconToName: 4.95,\n dateTop: 5.6,\n deceasedTop: 6,\n memorialTop: 6,\n senderTop: 8,\n ceremonyTop: 8,\n thanksTop: 7,\n donationTop: 7,\n sectionGapMm: 0,\n },\n};\n\nexport const publicationDefaultAdStyle: Readonly<DefaultAdStyle> = {\n ...classicDefaultAdStyle,\n typography: {\n ...classicDefaultAdStyle.typography,\n fontFamily: \"var(--default-ad-font-primary, Raleway, Arial, sans-serif)\",\n secondaryFontFamily: \"var(--default-ad-font-secondary, Athelas, Georgia, serif)\",\n introSize: 11,\n introLeading: 13,\n titleSize: 11,\n titleLeading: 13,\n nameSize: 17,\n nameLeading: 15,\n dateSize: 11.5,\n longDateSize: 11,\n bodySize: 12,\n bodyLeading: 13,\n memorialSize: 12,\n memorialLeading: 13,\n senderSize: 13,\n senderLeading: 13,\n ceremonySize: 11,\n ceremonyLeading: 13,\n thanksSize: 11,\n thanksLeading: 13,\n donationSize: 11,\n donationLeading: 13,\n },\n spacing: {\n ...classicDefaultAdStyle.spacing,\n iconToText: 0,\n introToTitle: 0,\n textToName: 0,\n sectionGapMm: 2,\n },\n};\n\nexport function styleFromLegacyTemplate(template?: LegacyAdTemplate | null): DefaultAdStyle {\n if (!template) return publicationDefaultAdStyle;\n return {\n ...publicationDefaultAdStyle,\n typography: {\n ...publicationDefaultAdStyle.typography,\n fontFamily: template.font1 || publicationDefaultAdStyle.typography?.fontFamily,\n secondaryFontFamily: template.font2 || publicationDefaultAdStyle.typography?.secondaryFontFamily,\n introSize: template.introSize,\n introLeading: template.introLeading,\n titleSize: template.titleSize,\n titleLeading: template.titleLeading,\n nameSize: template.fullnameSize,\n nameLeading: template.fullnameLeading,\n ...fontPair(template.deceasedText, \"bodySize\", \"bodyLeading\"),\n ...fontPair(template.memorialText, \"memorialSize\", \"memorialLeading\"),\n ...fontPair(template.senderText, \"senderSize\", \"senderLeading\"),\n ...fontPair(template.ceremonyText, \"ceremonySize\", \"ceremonyLeading\"),\n ...fontPair(template.thanksText, \"thanksSize\", \"thanksLeading\"),\n ...fontPair(template.donationText, \"donationSize\", \"donationLeading\"),\n },\n spacing: {\n ...publicationDefaultAdStyle.spacing,\n ...gapMm(template.gap),\n iconToText: template.textToIcon,\n introToTitle: template.titleToText,\n textToName: template.fullnameToText,\n dateTop: template.datesTextMT,\n deceasedTop: template.deceasedTextMT,\n memorialTop: template.memorialTextMT,\n senderTop: template.senderTextMT,\n ceremonyTop: template.ceremonyTextMT,\n thanksTop: template.thanksTextMT,\n donationTop: template.donationTextMT,\n },\n };\n}\n\nfunction gapMm(value: string | undefined): { sectionGapMm?: number } {\n const gap = value?.match(/gap-\\[(-?[\\d.]+)mm\\]/)?.[1];\n return gap ? { sectionGapMm: Number(gap) } : {};\n}\n\nfunction fontPair(value: string | undefined, sizeKey: string, leadingKey: string): Record<string, number> {\n if (!value) return {};\n const size = value.match(/text-\\[(-?[\\d.]+)pt\\]/)?.[1];\n const leading = value.match(/leading-\\[(-?[\\d.]+)pt\\]/)?.[1];\n return {\n ...(size ? { [sizeKey]: Number(size) } : {}),\n ...(leading ? { [leadingKey]: Number(leading) } : {}),\n };\n}\n","import type { DefaultAdFormatters } from \"./types\";\n\nexport const defaultFormatters: Required<DefaultAdFormatters> = {\n date(value) {\n const match = value.match(/^(\\d{4})-(\\d{2})-(\\d{2})/);\n return match ? `${match[3]}.${match[2]}.${match[1]}` : value;\n },\n funeralDate(value, hideYear) {\n if (!hideYear) return value;\n return value.replace(/([.\\/-])\\d{4}(?=\\D|$)/, \"\");\n },\n lowercaseFirst(value) {\n return value ? value.charAt(0).toLocaleLowerCase() + value.slice(1) : value;\n },\n};\n\nexport function mergeDefined<T extends object>(base: T, overrides?: Partial<T>): T {\n if (!overrides) return { ...base };\n return Object.fromEntries(\n Object.entries({ ...base, ...overrides }).filter(([, value]) => value !== undefined),\n ) as T;\n}\n\nexport function decodeSvgMarkup(value: string): string {\n return value\n .replace(/&lt;/g, \"<\")\n .replace(/&gt;/g, \">\")\n .replace(/&quot;/g, '\"')\n .replace(/&#(?:0*39|x0*27);/gi, \"'\")\n .replace(/&amp;/g, \"&\");\n}\n","import type { CSSProperties, ReactNode } from \"react\";\nimport { classicDefaultAdStyle } from \"./presets\";\nimport type { DefaultAdField, DefaultAdInteraction, DefaultAdProps, DefaultAdSpacing, DefaultAdTypography } from \"./types\";\nimport { decodeSvgMarkup, defaultFormatters, mergeDefined } from \"./utils\";\nimport \"./styles.css\";\n\nfunction textStyle(size: number, leading: number, marginTop: number): CSSProperties {\n return { fontSize: `${size}pt`, lineHeight: `${leading}pt`, marginTop: `${marginTop}pt` };\n}\n\nfunction Text({ children, className = \"\", style, field, interaction }: { children?: ReactNode; className?: string; style: CSSProperties; field?: DefaultAdField; interaction?: DefaultAdInteraction }) {\n const fieldState = field ? interaction?.fields?.[field] : undefined;\n const empty = children === null || children === undefined || children === \"\";\n if (empty && !fieldState?.active) return null;\n const events = field ? fieldEvents(field, interaction) : {};\n return <div data-default-ad-field={field} className={`gda-text ${className} ${empty ? `gda-field-empty ${fieldState?.className ?? \"\"}` : \"\"}`.trim()} style={{ ...style, ...(empty ? fieldState?.style : {}) }} {...events}>\n {empty ? fieldState?.placeholder : children}\n </div>;\n}\n\nfunction fieldEvents(field: DefaultAdField, interaction?: DefaultAdInteraction) {\n return {\n onFocus: interaction?.onFieldFocus ? () => interaction.onFieldFocus?.(field) : undefined,\n onBlur: interaction?.onFieldBlur ? () => interaction.onFieldBlur?.(field) : undefined,\n onClick: interaction?.onFieldClick ? () => interaction.onFieldClick?.(field) : undefined,\n };\n}\n\nexport function DefaultAd({\n data,\n style,\n mode = \"published\",\n variant = \"classic\",\n rootRef,\n interaction,\n formatters,\n showEmptyNamePlaceholder = mode === \"builder\",\n emptyNamePlaceholder = \"Fornavn Efternavn\",\n className = \"\",\n rootStyle,\n ...htmlProps\n}: DefaultAdProps) {\n const typography = mergeDefined(\n classicDefaultAdStyle.typography as Required<DefaultAdTypography>,\n style?.typography,\n );\n const spacing = mergeDefined(\n classicDefaultAdStyle.spacing as Required<DefaultAdSpacing>,\n style?.spacing,\n );\n const layout = mergeDefined(classicDefaultAdStyle, style);\n const fmt = { ...defaultFormatters, ...formatters };\n const { contact, text, icon, type } = data;\n const hasName = Boolean(contact.firstName || contact.lastName);\n const first = type === \"thanks\" ? text.thanksIntro : text.intro;\n const second = type === \"thanks\" ? text.briefIntroduction : text.title;\n const headerMargins = calculateHeaderMargins({\n variant, first: Boolean(first), second: Boolean(second), hasName, hasIcon: Boolean(icon), typography, spacing,\n });\n const { firstMargin, secondMargin, nameMargin } = headerMargins;\n const isSingleColumn = Number(layout.columnsMm) === 41;\n const ceremonyCode = contact.ceremony?.code;\n const ceremonyLabel = contact.ceremony?.label ?? ceremonyCode;\n\n return (\n <div\n {...htmlProps}\n ref={rootRef}\n data-default-ad=\"\"\n data-ad-content=\"\"\n data-ad-ready=\"true\"\n data-mode={mode}\n className={`gda-root ${className}`.trim()}\n style={{\n width: `${layout.columnsMm}mm`,\n minWidth: `${layout.columnsMm}mm`,\n ...(layout.heightMm != null ? { height: `${layout.heightMm}mm` } : {}),\n padding: `${layout.paddingMm}mm ${layout.horizontalPaddingMm}mm`,\n border: layout.border ? `${layout.borderWidthPt}pt solid black` : 0,\n gap: `${spacing.sectionGapMm}mm`,\n fontFamily: typography.fontFamily,\n ...rootStyle,\n }}\n >\n {icon ? (\n <div className=\"gda-icon\">\n <svg className={icon.className} xmlns=\"http://www.w3.org/2000/svg\"\n width={Number(icon.width) + 16} height={Number(icon.height) + 16}\n viewBox={icon.viewBox} role={icon.title ? \"img\" : undefined} aria-hidden={icon.title ? undefined : true}>\n {icon.title ? <title>{icon.title}</title> : null}\n <g dangerouslySetInnerHTML={{ __html: decodeSvgMarkup(icon.svg) }} />\n </svg>\n </div>\n ) : null}\n\n <Text field={type === \"thanks\" ? \"thanksIntro\" : \"intro\"} interaction={interaction} className={type === \"thanks\" ? \"gda-bold\" : \"\"}\n style={textStyle(type === \"thanks\" ? 14 : typography.introSize, typography.introLeading, firstMargin)}>\n {type === \"thanks\" && first ? first : type === \"obituaries\" ? first : null}\n </Text>\n <Text field={type === \"thanks\" ? \"briefIntroduction\" : \"title\"} interaction={interaction} style={textStyle(typography.titleSize, typography.titleLeading, secondMargin)}>\n {type === \"thanks\" && second ? fmt.lowercaseFirst(second) : type === \"obituaries\" ? second : null}\n </Text>\n\n {hasName && !interaction ? (\n <Text className=\"gda-bold gda-secondary-font\" style={textStyle(typography.nameSize, typography.nameLeading, nameMargin)}>\n {[contact.firstName, contact.lastName].filter(Boolean).join(\" \")}\n </Text>\n ) : hasName || interaction?.fields?.firstName?.active || interaction?.fields?.lastName?.active ? (\n <div className=\"gda-text gda-bold gda-secondary-font\" style={textStyle(typography.nameSize, typography.nameLeading, nameMargin)}>\n <NamePart field=\"firstName\" value={contact.firstName} interaction={interaction} />{\" \"}\n <NamePart field=\"lastName\" value={contact.lastName} interaction={interaction} />\n </div>\n ) : showEmptyNamePlaceholder ? <div className=\"gda-placeholder\">{emptyNamePlaceholder}</div> : null}\n\n {(contact.showBirthDate && (contact.birthDate || interaction?.fields?.birthDate?.active)) || (contact.showDeathDate && (contact.deathDate || interaction?.fields?.deathDate?.active)) ? (\n <div className={`gda-dates ${isSingleColumn ? \"gda-dates-single\" : \"\"}`}\n style={{ marginTop: `${spacing.dateTop}pt`, lineHeight: `${typography.dateLeading}pt` }}>\n {contact.showBirthDate && (contact.birthDate || interaction?.fields?.birthDate?.active) ? (\n <span data-default-ad-field=\"birthDate\" {...fieldEvents(\"birthDate\", interaction)} style={{ fontSize: `${contact.birthDate && fmt.date(contact.birthDate).length > 10 ? typography.longDateSize : typography.dateSize}pt`, ...(!contact.birthDate ? interaction?.fields?.birthDate?.style : {}) }}>\n &#10043; {contact.birthDate ? fmt.date(contact.birthDate) : interaction?.fields?.birthDate?.placeholder}\n </span>\n ) : null}\n {contact.showDeathDate && (contact.deathDate || interaction?.fields?.deathDate?.active) ? (\n <span data-default-ad-field=\"deathDate\" {...fieldEvents(\"deathDate\", interaction)} style={{ fontSize: `${contact.deathDate && fmt.date(contact.deathDate).length > 10 ? typography.longDateSize : typography.dateSize}pt`, ...(!contact.deathDate ? interaction?.fields?.deathDate?.style : {}) }}>\n <span className=\"gda-death-cross\" aria-hidden=\"true\">✝︎</span> {contact.deathDate ? fmt.date(contact.deathDate) : interaction?.fields?.deathDate?.placeholder}\n </span>\n ) : null}\n </div>\n ) : null}\n\n {type === \"obituaries\" ? <Text field=\"deceased\" interaction={interaction} className=\"gda-balance\" style={textStyle(typography.bodySize, typography.bodyLeading, spacing.deceasedTop)}>{text.deceased}</Text> : null}\n {variant === \"publication\" && type === \"thanks\" ? <ThankYouFields text={text} fmt={fmt} typography={typography} spacing={spacing} interaction={interaction} includeThanks /> : null}\n <Text field=\"memorial\" interaction={interaction} className=\"gda-italic\" style={textStyle(typography.memorialSize, typography.memorialLeading, spacing.memorialTop)}>{text.memorial}</Text>\n {text.sender || interaction?.fields?.sender?.active ? <Text field=\"sender\" interaction={interaction} className={`${type === \"obituaries\" ? \"gda-bold \" : \"\"}gda-secondary-font`} style={textStyle(typography.senderSize, typography.senderLeading, spacing.senderTop)}>{text.sender}</Text> : null}\n\n {(type === \"obituaries\" || variant === \"publication\") && ceremonyCode !== \"NoCeremony\" && (contact.showChurch || contact.showFuneralDate) && (contact.church || contact.funeralDate || interaction?.fields?.church?.active || interaction?.fields?.funeralDate?.active) ? (\n <div className=\"gda-text\" style={textStyle(typography.ceremonySize, typography.ceremonyLeading, spacing.ceremonyTop)}>\n {contact.showChurch && (contact.church || interaction?.fields?.church?.active) ? <div data-default-ad-field=\"church\" {...fieldEvents(\"church\", interaction)} style={!contact.church ? interaction?.fields?.church?.style : undefined}>{contact.church ? (contact.church.length > 15 ? <>{ceremonyLabel}<br />{contact.church}</> : `${ceremonyLabel ?? \"\"} ${contact.church}`.trim()) : interaction?.fields?.church?.placeholder}</div> : null}\n {contact.showFuneralDate && (contact.funeralDate || interaction?.fields?.funeralDate?.active) ? <div data-default-ad-field=\"funeralDate\" {...fieldEvents(\"funeralDate\", interaction)} style={!contact.funeralDate ? interaction?.fields?.funeralDate?.style : undefined}>{contact.funeralDate ? fmt.funeralDate(contact.funeralDate, Boolean(contact.hideFuneralYear)) : interaction?.fields?.funeralDate?.placeholder}</div> : null}\n </div>\n ) : null}\n\n {variant === \"classic\" && type === \"thanks\" ? <ThankYouFields text={text} fmt={fmt} typography={typography} spacing={spacing} interaction={interaction} /> : null}\n {!(variant === \"publication\" && type === \"thanks\") ? <Text field=\"thanks\" interaction={interaction} style={textStyle(typography.thanksSize, typography.thanksLeading, spacing.thanksTop)}>{text.thanks}</Text> : null}\n {text.donation || interaction?.fields?.donation?.active ? <><div className=\"gda-divider\" style={{ marginTop: `${spacing.donationTop}pt` }} /><Text field=\"donation\" interaction={interaction} className=\"gda-donation\" style={textStyle(typography.donationSize, typography.donationLeading, spacing.donationTop)}>{text.donation}</Text></> : null}\n </div>\n );\n}\n\nfunction calculateHeaderMargins({ variant, first, second, hasName, hasIcon, typography, spacing }: any) {\n if (variant === \"classic\") {\n return {\n firstMargin: first && hasIcon ? spacing.iconToText : 0,\n secondMargin: second ? (first ? spacing.introToTitle : hasIcon ? spacing.iconToText : 0) : 0,\n nameMargin: hasName ? (first || second ? spacing.textToName : hasIcon ? spacing.iconToName : 0) : 0,\n };\n }\n\n const introExtra = (typography.introLeading - typography.introSize) / 2;\n const titleExtra = (typography.titleLeading - typography.titleSize) / 2;\n const nameExtra = (typography.nameLeading - typography.nameSize) / 2;\n return {\n firstMargin: first && hasIcon ? spacing.iconToText - typography.introSize - introExtra : 0,\n secondMargin: second ? first\n ? spacing.introToTitle - typography.titleSize - titleExtra - introExtra\n : hasIcon ? spacing.iconToText - typography.titleSize - titleExtra : 0 : 0,\n nameMargin: hasName ? first || second\n ? spacing.textToName - typography.nameSize - nameExtra - titleExtra\n : hasIcon ? spacing.iconToText - typography.nameSize - nameExtra : 0 : 0,\n };\n}\n\nfunction NamePart({ field, value, interaction }: { field: \"firstName\" | \"lastName\"; value?: string | null; interaction?: DefaultAdInteraction }) {\n const state = interaction?.fields?.[field];\n if (!value && !state?.active) return null;\n return <span data-default-ad-field={field} className={!value ? state?.className : undefined} style={!value ? state?.style : undefined} {...fieldEvents(field, interaction)}>{value || state?.placeholder}</span>;\n}\n\nfunction ThankYouFields({ text, fmt, typography, spacing, interaction, includeThanks = false }: any) {\n return <>\n <Text field=\"ceremony\" interaction={interaction} style={textStyle(typography.ceremonySize, typography.ceremonyLeading, spacing.ceremonyTop)}>{text.ceremony ? fmt.lowercaseFirst(text.ceremony) : null}</Text>\n <Text field=\"message\" interaction={interaction} style={textStyle(typography.bodySize, typography.bodyLeading, spacing.thanksTop)}>{text.message}</Text>\n {includeThanks ? <Text field=\"thanks\" interaction={interaction} style={textStyle(typography.thanksSize, typography.thanksLeading, spacing.thanksTop)}>{text.thanks}</Text> : null}\n </>;\n}\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../src/presets.ts","../src/utils.ts","../src/DefaultAd.tsx"],"sourcesContent":["import type { DefaultAdStyle, LegacyAdTemplate } from \"./types\";\n\nexport const classicDefaultAdStyle: Readonly<DefaultAdStyle> = {\n columnsMm: 86,\n heightMm: null,\n paddingMm: 4,\n horizontalPaddingMm: 2,\n border: false,\n borderWidthPt: 1.4,\n typography: {\n fontFamily: \"var(--default-ad-font-primary, Schoolbook, Georgia, serif)\",\n secondaryFontFamily: \"var(--default-ad-font-secondary, Schoolbook, Georgia, serif)\",\n introSize: 10,\n introLeading: 12,\n titleSize: 10,\n titleLeading: 12,\n nameSize: 14,\n nameLeading: 16.8,\n dateSize: 10,\n longDateSize: 10,\n longDateLetterSpacing: \"-0.01em\",\n dateLeading: 12,\n bodySize: 10,\n bodyLeading: 12,\n memorialSize: 10,\n memorialLeading: 12,\n senderSize: 10,\n senderLeading: 12,\n ceremonySize: 10,\n ceremonyLeading: 12,\n thanksSize: 10,\n thanksLeading: 12,\n donationSize: 10,\n donationLeading: 12,\n },\n spacing: {\n iconToText: 11,\n introToTitle: 8,\n // The legacy component passed these two values as unitless React styles (CSS px).\n textToName: 4.2,\n iconToName: 4.95,\n dateTop: 5.6,\n deceasedTop: 6,\n memorialTop: 6,\n senderTop: 8,\n ceremonyTop: 8,\n thanksTop: 7,\n donationTop: 7,\n sectionGapMm: 0,\n },\n};\n\nexport const publicationDefaultAdStyle: Readonly<DefaultAdStyle> = {\n ...classicDefaultAdStyle,\n typography: {\n ...classicDefaultAdStyle.typography,\n fontFamily: \"var(--default-ad-font-primary, Raleway, Arial, sans-serif)\",\n secondaryFontFamily: \"var(--default-ad-font-secondary, Athelas, Georgia, serif)\",\n introSize: 11,\n introLeading: 13,\n titleSize: 11,\n titleLeading: 13,\n nameSize: 17,\n nameLeading: 15,\n dateSize: 11.5,\n longDateSize: 11,\n longDateLetterSpacing: \"-0.01em\",\n bodySize: 12,\n bodyLeading: 13,\n memorialSize: 12,\n memorialLeading: 13,\n senderSize: 13,\n senderLeading: 13,\n ceremonySize: 11,\n ceremonyLeading: 13,\n thanksSize: 11,\n thanksLeading: 13,\n donationSize: 11,\n donationLeading: 13,\n },\n spacing: {\n ...classicDefaultAdStyle.spacing,\n iconToText: 0,\n introToTitle: 0,\n textToName: 0,\n sectionGapMm: 2,\n },\n};\n\nexport function styleFromLegacyTemplate(template?: LegacyAdTemplate | null): DefaultAdStyle {\n if (!template) return publicationDefaultAdStyle;\n return {\n ...publicationDefaultAdStyle,\n typography: {\n ...publicationDefaultAdStyle.typography,\n fontFamily: template.font1 || publicationDefaultAdStyle.typography?.fontFamily,\n secondaryFontFamily: template.font2 || publicationDefaultAdStyle.typography?.secondaryFontFamily,\n introSize: template.introSize,\n introLeading: template.introLeading,\n titleSize: template.titleSize,\n titleLeading: template.titleLeading,\n nameSize: template.fullnameSize,\n nameLeading: template.fullnameLeading,\n ...fontPair(template.deceasedText, \"bodySize\", \"bodyLeading\"),\n ...fontPair(template.memorialText, \"memorialSize\", \"memorialLeading\"),\n ...fontPair(template.senderText, \"senderSize\", \"senderLeading\"),\n ...fontPair(template.ceremonyText, \"ceremonySize\", \"ceremonyLeading\"),\n ...fontPair(template.thanksText, \"thanksSize\", \"thanksLeading\"),\n ...fontPair(template.donationText, \"donationSize\", \"donationLeading\"),\n ...tracking(template.longDatesText),\n },\n spacing: {\n ...publicationDefaultAdStyle.spacing,\n ...gapMm(template.gap),\n iconToText: template.textToIcon,\n introToTitle: template.titleToText,\n textToName: template.fullnameToText,\n dateTop: template.datesTextMT,\n deceasedTop: template.deceasedTextMT,\n memorialTop: template.memorialTextMT,\n senderTop: template.senderTextMT,\n ceremonyTop: template.ceremonyTextMT,\n thanksTop: template.thanksTextMT,\n donationTop: template.donationTextMT,\n },\n };\n}\n\nfunction gapMm(value: string | undefined): { sectionGapMm?: number } {\n const gap = value?.match(/gap-\\[(-?[\\d.]+)mm\\]/)?.[1];\n return gap ? { sectionGapMm: Number(gap) } : {};\n}\n\nfunction fontPair(value: string | undefined, sizeKey: string, leadingKey: string): Record<string, number> {\n if (!value) return {};\n const size = value.match(/text-\\[(-?[\\d.]+)pt\\]/)?.[1];\n const leading = value.match(/leading-\\[(-?[\\d.]+)pt\\]/)?.[1];\n return {\n ...(size ? { [sizeKey]: Number(size) } : {}),\n ...(leading ? { [leadingKey]: Number(leading) } : {}),\n };\n}\n\nfunction tracking(value: string | undefined): { longDateLetterSpacing?: string } {\n const amount = value?.match(/tracking-\\[([^\\]]+)\\]/)?.[1];\n return amount ? { longDateLetterSpacing: amount } : {};\n}\n","import type { DefaultAdFormatters } from \"./types\";\n\nexport const defaultFormatters: Required<DefaultAdFormatters> = {\n date(value) {\n const match = value.match(/^(\\d{4})-(\\d{2})-(\\d{2})/);\n return match ? `${match[3]}.${match[2]}.${match[1]}` : value;\n },\n funeralDate(value, hideYear) {\n if (!hideYear) return value;\n return value.replace(/([.\\/-])\\d{4}(?=\\D|$)/, \"\");\n },\n lowercaseFirst(value) {\n return value ? value.charAt(0).toLocaleLowerCase() + value.slice(1) : value;\n },\n};\n\nexport function mergeDefined<T extends object>(base: T, overrides?: Partial<T>): T {\n if (!overrides) return { ...base };\n return Object.fromEntries(\n Object.entries({ ...base, ...overrides }).filter(([, value]) => value !== undefined),\n ) as T;\n}\n\nexport function decodeSvgMarkup(value: string): string {\n return value\n .replace(/&lt;/g, \"<\")\n .replace(/&gt;/g, \">\")\n .replace(/&quot;/g, '\"')\n .replace(/&#(?:0*39|x0*27);/gi, \"'\")\n .replace(/&amp;/g, \"&\");\n}\n","import type { CSSProperties, ReactNode } from \"react\";\nimport { classicDefaultAdStyle } from \"./presets\";\nimport type { DefaultAdField, DefaultAdInteraction, DefaultAdProps, DefaultAdSpacing, DefaultAdTypography } from \"./types\";\nimport { decodeSvgMarkup, defaultFormatters, mergeDefined } from \"./utils\";\nimport \"./styles.css\";\n\nfunction textStyle(size: number, leading: number, marginTop: number): CSSProperties {\n return { fontSize: `${size}pt`, lineHeight: `${leading}pt`, marginTop: `${marginTop}pt` };\n}\n\nfunction Text({ children, className = \"\", style, field, interaction }: { children?: ReactNode; className?: string; style: CSSProperties; field?: DefaultAdField; interaction?: DefaultAdInteraction }) {\n const fieldState = field ? interaction?.fields?.[field] : undefined;\n const empty = children === null || children === undefined || children === \"\";\n if (empty && !fieldState?.active) return null;\n const events = field ? fieldEvents(field, interaction) : {};\n if (empty) {\n return <div className=\"gda-field-placeholder-container\"><div data-default-ad-field={field} className={`gda-text gda-field-empty ${className} ${fieldState?.className ?? \"\"}`.trim()} style={{ ...style, ...fieldState?.style }} {...events}>{fieldState?.placeholder}</div></div>;\n }\n return <div data-default-ad-field={field} className={`gda-text ${className}`.trim()} style={style} {...events}>{children}</div>;\n}\n\nfunction fieldEvents(field: DefaultAdField, interaction?: DefaultAdInteraction) {\n return {\n onFocus: interaction?.onFieldFocus ? () => interaction.onFieldFocus?.(field) : undefined,\n onBlur: interaction?.onFieldBlur ? () => interaction.onFieldBlur?.(field) : undefined,\n onClick: interaction?.onFieldClick ? () => interaction.onFieldClick?.(field) : undefined,\n };\n}\n\nexport function DefaultAd({\n data,\n style,\n mode = \"published\",\n variant = \"classic\",\n rootRef,\n interaction,\n formatters,\n showEmptyNamePlaceholder = mode === \"builder\",\n emptyNamePlaceholder = \"Fornavn Efternavn\",\n className = \"\",\n rootStyle,\n ...htmlProps\n}: DefaultAdProps) {\n const typography = mergeDefined(\n classicDefaultAdStyle.typography as Required<DefaultAdTypography>,\n style?.typography,\n );\n const spacing = mergeDefined(\n classicDefaultAdStyle.spacing as Required<DefaultAdSpacing>,\n style?.spacing,\n );\n const layout = mergeDefined(classicDefaultAdStyle, style);\n const fmt = { ...defaultFormatters, ...formatters };\n const { contact, text, icon, type } = data;\n const hasName = Boolean(contact.firstName || contact.lastName);\n const first = type === \"thanks\" ? text.thanksIntro : text.intro;\n const second = type === \"thanks\" ? text.briefIntroduction : text.title;\n const firstField = type === \"thanks\" ? \"thanksIntro\" : \"intro\";\n const secondField = type === \"thanks\" ? \"briefIntroduction\" : \"title\";\n const hasVisualFirst = Boolean(first || interaction?.fields?.[firstField]?.active);\n const hasVisualSecond = Boolean(second || interaction?.fields?.[secondField]?.active);\n const hasVisualName = hasName || Boolean(interaction?.fields?.firstName?.active || interaction?.fields?.lastName?.active);\n const headerMargins = calculateHeaderMargins({\n variant, first: hasVisualFirst, second: hasVisualSecond, hasName: hasVisualName, hasIcon: Boolean(icon), typography, spacing,\n });\n const { firstMargin, secondMargin, nameMargin } = headerMargins;\n const isSingleColumn = Number(layout.columnsMm) === 41;\n const ceremonyCode = contact.ceremony?.code;\n const ceremonyLabel = contact.ceremony?.label ?? ceremonyCode;\n\n return (\n <div\n {...htmlProps}\n ref={rootRef}\n data-default-ad=\"\"\n data-ad-content=\"\"\n data-ad-ready=\"true\"\n data-mode={mode}\n className={`gda-root ${className}`.trim()}\n style={{\n width: `${layout.columnsMm}mm`,\n minWidth: `${layout.columnsMm}mm`,\n ...(layout.heightMm != null ? { height: `${layout.heightMm}mm` } : {}),\n padding: `${layout.paddingMm}mm ${layout.horizontalPaddingMm}mm`,\n border: layout.border ? `${layout.borderWidthPt}pt solid black` : 0,\n gap: `${spacing.sectionGapMm}mm`,\n ...(typography.fontFamily != null ? { fontFamily: typography.fontFamily } : {}),\n ...rootStyle,\n }}\n >\n {icon ? (\n <div className=\"gda-icon\">\n <svg className={icon.className} xmlns=\"http://www.w3.org/2000/svg\"\n width={Number(icon.width) + 16} height={Number(icon.height) + 16}\n viewBox={icon.viewBox} role={icon.title ? \"img\" : undefined} aria-label={icon.title} aria-hidden={icon.title ? undefined : true}\n dangerouslySetInnerHTML={{ __html: decodeSvgMarkup(icon.svg) }} />\n </div>\n ) : null}\n\n <Text field={type === \"thanks\" ? \"thanksIntro\" : \"intro\"} interaction={interaction} className={`${type === \"thanks\" ? \"gda-bold\" : \"\"} ${variant === \"classic\" ? \"gda-break\" : \"\"}`}\n style={textStyle(type === \"thanks\" ? 14 : typography.introSize, typography.introLeading, firstMargin)}>\n {type === \"thanks\" && first ? first : type === \"obituaries\" ? first : null}\n </Text>\n <Text field={type === \"thanks\" ? \"briefIntroduction\" : \"title\"} interaction={interaction} className={variant === \"classic\" ? \"gda-break\" : \"\"} style={textStyle(typography.titleSize, typography.titleLeading, secondMargin)}>\n {type === \"thanks\" && second ? fmt.lowercaseFirst(second) : type === \"obituaries\" ? second : null}\n </Text>\n\n {hasName && !interaction?.fields?.firstName?.active && !interaction?.fields?.lastName?.active ? (\n <Text className=\"gda-name gda-bold gda-secondary-font\" style={textStyle(typography.nameSize, typography.nameLeading, nameMargin)}>\n {[contact.firstName, contact.lastName].filter(Boolean).join(\" \")}\n </Text>\n ) : hasName || interaction?.fields?.firstName?.active || interaction?.fields?.lastName?.active ? (\n <div className=\"gda-name gda-bold gda-secondary-font\" style={textStyle(typography.nameSize, typography.nameLeading, nameMargin)}>\n <NamePart field=\"firstName\" value={contact.firstName} interaction={interaction} />{\" \"}\n <NamePart field=\"lastName\" value={contact.lastName} interaction={interaction} />\n </div>\n ) : showEmptyNamePlaceholder ? <div className={`gda-placeholder ${variant === \"classic\" ? \"gda-name gda-bold gda-secondary-font\" : \"\"}`} style={variant === \"classic\" ? textStyle(typography.nameSize, typography.nameLeading, nameMargin) : undefined}>{emptyNamePlaceholder}</div> : null}\n\n {(contact.showBirthDate && (contact.birthDate || interaction?.fields?.birthDate?.active)) || (contact.showDeathDate && (contact.deathDate || interaction?.fields?.deathDate?.active)) ? (\n <div className={`gda-dates ${isSingleColumn ? \"gda-dates-single\" : \"\"}`}\n style={{ marginTop: `${spacing.dateTop}pt`, lineHeight: `${typography.dateLeading}pt`, ...(isSingleColumn && variant === \"classic\" ? { gap: `${spacing.dateTop}pt` } : {}) }}>\n {contact.showBirthDate && (contact.birthDate || interaction?.fields?.birthDate?.active) ? (\n <span data-default-ad-field=\"birthDate\" {...fieldEvents(\"birthDate\", interaction)} className={!contact.birthDate ? interaction?.fields?.birthDate?.className : undefined} style={{ fontSize: `${contact.birthDate && fmt.date(contact.birthDate).length > 10 ? typography.longDateSize : typography.dateSize}pt`, ...(contact.birthDate && fmt.date(contact.birthDate).length > 10 ? { letterSpacing: typography.longDateLetterSpacing } : {}), ...(!contact.birthDate ? interaction?.fields?.birthDate?.style : {}) }}>\n &#10043; {contact.birthDate ? fmt.date(contact.birthDate) : interaction?.fields?.birthDate?.placeholder}\n </span>\n ) : null}\n {contact.showDeathDate && (contact.deathDate || interaction?.fields?.deathDate?.active) ? (\n <span data-default-ad-field=\"deathDate\" {...fieldEvents(\"deathDate\", interaction)} className={!contact.deathDate ? interaction?.fields?.deathDate?.className : undefined} style={{ fontSize: `${contact.deathDate && fmt.date(contact.deathDate).length > 10 ? typography.longDateSize : typography.dateSize}pt`, ...(contact.deathDate && fmt.date(contact.deathDate).length > 10 ? { letterSpacing: typography.longDateLetterSpacing } : {}), ...(!contact.deathDate ? interaction?.fields?.deathDate?.style : {}) }}>\n <span className=\"gda-death-cross\" aria-hidden=\"true\">✝︎</span> {contact.deathDate ? fmt.date(contact.deathDate) : interaction?.fields?.deathDate?.placeholder}\n </span>\n ) : null}\n </div>\n ) : null}\n\n {type === \"obituaries\" ? <Text field=\"deceased\" interaction={interaction} className=\"gda-balance\" style={textStyle(typography.bodySize, typography.bodyLeading, spacing.deceasedTop)}>{text.deceased}</Text> : null}\n {variant === \"publication\" && type === \"thanks\" ? <ThankYouFields text={text} fmt={fmt} typography={typography} spacing={spacing} interaction={interaction} variant={variant} includeThanks /> : null}\n {!(mode === \"builder\" && type === \"thanks\") ? <Text field=\"memorial\" interaction={interaction} className={`gda-italic ${variant === \"classic\" ? \"gda-break\" : \"\"}`} style={textStyle(typography.memorialSize, typography.memorialLeading, spacing.memorialTop)}>{text.memorial}</Text> : null}\n {(type === \"obituaries\" || variant === \"publication\") && (text.sender || interaction?.fields?.sender?.active) ? <Text field=\"sender\" interaction={interaction} className={`${type === \"obituaries\" ? \"gda-bold \" : \"\"}gda-secondary-font`} style={textStyle(typography.senderSize, typography.senderLeading, spacing.senderTop)}>{text.sender}</Text> : null}\n\n {(type === \"obituaries\" || variant === \"publication\") && ceremonyCode !== \"NoCeremony\" && (contact.showChurch || contact.showFuneralDate) && (contact.church || contact.funeralDate || interaction?.fields?.church?.active || interaction?.fields?.funeralDate?.active) ? (\n <div className=\"gda-text\" style={textStyle(typography.ceremonySize, typography.ceremonyLeading, spacing.ceremonyTop)}>\n {contact.showChurch && (contact.church || interaction?.fields?.church?.active) ? <div data-default-ad-field=\"church\" {...fieldEvents(\"church\", interaction)} className={!contact.church ? interaction?.fields?.church?.className : undefined} style={!contact.church ? interaction?.fields?.church?.style : undefined}>{contact.church ? (contact.church.length > 15 ? `${ceremonyLabel ?? \"\"} \\n ${contact.church}` : `${ceremonyLabel ?? \"\"} ${contact.church}`.trim()) : interaction?.fields?.church?.placeholder}</div> : null}\n {contact.showFuneralDate && (contact.funeralDate || interaction?.fields?.funeralDate?.active) ? <div data-default-ad-field=\"funeralDate\" {...fieldEvents(\"funeralDate\", interaction)} className={!contact.funeralDate ? interaction?.fields?.funeralDate?.className : undefined} style={!contact.funeralDate ? interaction?.fields?.funeralDate?.style : undefined}>{contact.funeralDate ? fmt.funeralDate(contact.funeralDate, Boolean(contact.hideFuneralYear)) : interaction?.fields?.funeralDate?.placeholder}</div> : null}\n </div>\n ) : null}\n\n {variant === \"classic\" && type === \"thanks\" ? <ThankYouFields text={text} fmt={fmt} typography={typography} spacing={spacing} interaction={interaction} variant={variant} /> : null}\n {!(variant === \"publication\" && type === \"thanks\") ? <Text field=\"thanks\" interaction={interaction} className={variant === \"classic\" ? \"gda-break\" : \"\"} style={textStyle(typography.thanksSize, typography.thanksLeading, spacing.thanksTop)}>{text.thanks}</Text> : null}\n {variant === \"classic\" && type === \"thanks\" ? <Text field=\"sender\" interaction={interaction} style={textStyle(typography.senderSize, typography.senderLeading, spacing.thanksTop)}>{text.sender}</Text> : null}\n {text.donation ? <div className=\"gda-divider\" style={{ marginTop: `${spacing.donationTop}pt` }} /> : null}\n {text.donation || interaction?.fields?.donation?.active ? <Text field=\"donation\" interaction={interaction} className=\"gda-donation gda-break\" style={textStyle(typography.donationSize, typography.donationLeading, spacing.donationTop)}>{text.donation}</Text> : null}\n </div>\n );\n}\n\nfunction calculateHeaderMargins({ variant, first, second, hasName, hasIcon, typography, spacing }: any) {\n if (variant === \"classic\") {\n return {\n firstMargin: first && hasIcon ? spacing.iconToText : 0,\n secondMargin: second ? (first ? spacing.introToTitle : hasIcon ? spacing.iconToText : 0) : 0,\n nameMargin: hasName ? (first || second ? spacing.textToName : hasIcon ? spacing.iconToName : 0) : 0,\n };\n }\n\n const introExtra = (typography.introLeading - typography.introSize) / 2;\n const titleExtra = (typography.titleLeading - typography.titleSize) / 2;\n const nameExtra = (typography.nameLeading - typography.nameSize) / 2;\n return {\n firstMargin: first && hasIcon ? spacing.iconToText - typography.introSize - introExtra : 0,\n secondMargin: second ? first\n ? spacing.introToTitle - typography.titleSize - titleExtra - introExtra\n : hasIcon ? spacing.iconToText - typography.titleSize - titleExtra : 0 : 0,\n nameMargin: hasName ? first || second\n ? spacing.textToName - typography.nameSize - nameExtra - titleExtra\n : hasIcon ? spacing.iconToText - typography.nameSize - nameExtra : 0 : 0,\n };\n}\n\nfunction NamePart({ field, value, interaction }: { field: \"firstName\" | \"lastName\"; value?: string | null; interaction?: DefaultAdInteraction }) {\n const state = interaction?.fields?.[field];\n if (!value && !state?.active) return null;\n return <span data-default-ad-field={field} className={!value ? state?.className : undefined} style={!value ? state?.style : undefined} {...fieldEvents(field, interaction)}>{value || state?.placeholder}</span>;\n}\n\nfunction ThankYouFields({ text, fmt, typography, spacing, interaction, variant, includeThanks = false }: any) {\n const breakClass = variant === \"classic\" ? \"gda-break\" : \"\";\n const ceremonySize = variant === \"classic\" ? typography.bodySize : typography.bodySize;\n const ceremonyLeading = variant === \"classic\" ? typography.bodyLeading : typography.bodyLeading;\n const ceremonyTop = variant === \"classic\" ? spacing.thanksTop : spacing.deceasedTop;\n return <>\n <Text field=\"ceremony\" interaction={interaction} className={breakClass} style={textStyle(ceremonySize, ceremonyLeading, ceremonyTop)}>{text.ceremony ? fmt.lowercaseFirst(text.ceremony) : null}</Text>\n <Text field=\"message\" interaction={interaction} className={breakClass} style={textStyle(typography.bodySize, typography.bodyLeading, variant === \"classic\" ? spacing.thanksTop : spacing.deceasedTop)}>{text.message}</Text>\n {includeThanks ? <Text field=\"thanks\" interaction={interaction} className={breakClass} style={textStyle(typography.thanksSize, typography.thanksLeading, spacing.thanksTop)}>{text.thanks}</Text> : null}\n </>;\n}\n"],"mappings":"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","names":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "navne-default-ad",
3
- "version": "1.2.0",
3
+ "version": "1.2.2",
4
4
  "description": "Reusable obituary and thank-you advertisement renderer",
5
5
  "license": "UNLICENSED",
6
6
  "sideEffects": ["**/*.css"],