@edwinvakayil/calligraphy 1.2.4 → 1.2.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.esm.js CHANGED
@@ -323,12 +323,12 @@ const variantStyleMap = {
323
323
  letterSpacing: "0.03em",
324
324
  },
325
325
  };
326
- // ─── Instrument Serif font URL ───────────────────────────────────────────────
326
+ // ─── Constants ───────────────────────────────────────────────────────────────
327
327
  const INSTRUMENT_SERIF_URL = "https://fonts.googleapis.com/css2?family=Instrument+Serif:ital@0;1&display=swap";
328
328
  // ─── Helpers ─────────────────────────────────────────────────────────────────
329
329
  /**
330
- * Serialise React children to a plain HTML string.
331
- * Handles: strings, <em>text</em> elements.
330
+ * Serialise React children raw HTML string.
331
+ * Preserves <em>text</em> nodes for animation builders.
332
332
  */
333
333
  function childrenToHTML(children) {
334
334
  var _a, _b;
@@ -344,13 +344,52 @@ function childrenToHTML(children) {
344
344
  })) === null || _a === void 0 ? void 0 : _a.join("")) !== null && _b !== void 0 ? _b : "");
345
345
  }
346
346
  /**
347
- * Walk the serialised HTML and inject inline styles on every <em> span
348
- * so italic rendering is driven 100% by inline styles no CSS specificity
349
- * battles, works regardless of injection order.
347
+ * Re-map React children so that <em> elements get explicit inline styles.
348
+ * This is used for the no-animation render path where we keep real React nodes.
349
+ * Inline styles on the <em> itself beat any inherited font-family from the parent.
350
350
  */
351
- function applyEmStyles(container, italic, accentColor, headingFont) {
352
- const ems = container.querySelectorAll("em, em span");
353
- ems.forEach((el) => {
351
+ function renderChildrenWithEmStyles(children, italic, accentColor, headingFont) {
352
+ const italicStyle = {
353
+ fontFamily: "'Instrument Serif', serif",
354
+ fontStyle: "italic",
355
+ fontWeight: 400,
356
+ color: accentColor,
357
+ };
358
+ const noItalicStyle = {
359
+ fontFamily: headingFont ? `'${headingFont}', sans-serif` : "inherit",
360
+ fontStyle: "normal",
361
+ fontWeight: "inherit",
362
+ color: "inherit",
363
+ };
364
+ return Children.map(children, (child, i) => {
365
+ if (isValidElement(child) && child.type === "em") {
366
+ return (jsx("em", { style: italic ? italicStyle : noItalicStyle, children: child.props.children }, i));
367
+ }
368
+ return child;
369
+ });
370
+ }
371
+ /**
372
+ * After dangerouslySetInnerHTML renders, walk the DOM and apply inline styles
373
+ * to every <em> and <em> > span so the font switch is guaranteed.
374
+ */
375
+ function applyEmStylesDOM(container, italic, accentColor, headingFont) {
376
+ // Select both <em> and any animated letter spans nested inside <em>
377
+ container.querySelectorAll("em").forEach((el) => {
378
+ if (italic) {
379
+ el.style.fontFamily = "'Instrument Serif', serif";
380
+ el.style.fontStyle = "italic";
381
+ el.style.fontWeight = "400";
382
+ el.style.color = accentColor;
383
+ }
384
+ else {
385
+ el.style.fontFamily = headingFont ? `'${headingFont}', sans-serif` : "inherit";
386
+ el.style.fontStyle = "normal";
387
+ el.style.fontWeight = "inherit";
388
+ el.style.color = "inherit";
389
+ }
390
+ });
391
+ // Also style the animated letter spans inside <em> (used by "letters" animation)
392
+ container.querySelectorAll("em > span").forEach((el) => {
354
393
  if (italic) {
355
394
  el.style.fontFamily = "'Instrument Serif', serif";
356
395
  el.style.fontStyle = "italic";
@@ -370,25 +409,26 @@ const Typography = (_a) => {
370
409
  var { variant = "Body", font, color, align, className, style, children, as, truncate, maxLines, animation, italic = false, accentColor = "#c8b89a" } = _a, rest = __rest(_a, ["variant", "font", "color", "align", "className", "style", "children", "as", "truncate", "maxLines", "animation", "italic", "accentColor"]);
371
410
  const isHero = variant === "Display" || variant === "H1";
372
411
  const ref = useRef(null);
373
- // Inject Google Font
412
+ // Always inject Instrument Serif for hero variants so it's pre-loaded
413
+ // and ready the moment italic is toggled on — no flash of wrong font.
414
+ if (isHero) {
415
+ injectFont(INSTRUMENT_SERIF_URL);
416
+ }
417
+ // Inject heading Google Font
374
418
  if (font && GOOGLE_FONTS.includes(font)) {
375
419
  injectFont(buildFontUrl(font));
376
420
  }
377
- // Inject Instrument Serif for italic accent
378
- if (isHero && italic) {
379
- injectFont(INSTRUMENT_SERIF_URL);
380
- }
381
- // Inject animation keyframe stylesheet once
421
+ // Inject animation keyframes (once, global)
382
422
  if (animation && isHero) {
383
423
  injectAnimationStyles();
384
424
  }
385
- // After every render, re-apply inline styles on <em> elements.
386
- // This is the fix for italic toggle: no CSS class needed, just DOM walk.
425
+ // For animation paths (dangerouslySetInnerHTML), walk the DOM after render
426
+ // and stamp inline styles onto every <em> guaranteed to beat inheritance.
387
427
  useEffect(() => {
388
- if (!isHero || !ref.current)
428
+ if (!isHero || !animation || !ref.current)
389
429
  return;
390
- applyEmStyles(ref.current, italic, accentColor, font);
391
- });
430
+ applyEmStylesDOM(ref.current, italic, accentColor, font);
431
+ }, [italic, accentColor, font, animation, isHero]);
392
432
  const Tag = (as !== null && as !== void 0 ? as : variantTagMap[variant]);
393
433
  // ── Compute animation class + inner HTML ──────────────────────────────────
394
434
  let animClass = "";
@@ -406,7 +446,7 @@ const Typography = (_a) => {
406
446
  animClass = getAnimationClass(animation);
407
447
  }
408
448
  }
409
- // ── Computed styles ───────────────────────────────────────────────────────
449
+ // ── Computed container styles ─────────────────────────────────────────────
410
450
  const computedStyle = Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, variantStyleMap[variant]), (font ? { fontFamily: `'${font}', sans-serif` } : {})), (color ? { color } : {})), (align ? { textAlign: align } : {})), (truncate
411
451
  ? { overflow: "hidden", textOverflow: "ellipsis", whiteSpace: "nowrap" }
412
452
  : {})), (maxLines && !truncate
@@ -417,14 +457,15 @@ const Typography = (_a) => {
417
457
  overflow: "hidden",
418
458
  }
419
459
  : {})), { margin: 0, padding: 0 }), style);
420
- // ── Render with dangerouslySetInnerHTML (animation variants) ──────────────
460
+ // ── Render: animation path (dangerouslySetInnerHTML) ──────────────────────
421
461
  if (heroHTML !== null) {
422
- return (jsx(Tag
423
- // key forces a fresh DOM node when animation changes → keyframe re-fires
424
- , Object.assign({ ref: ref, className: [animClass, className].filter(Boolean).join(" "), style: computedStyle, dangerouslySetInnerHTML: { __html: heroHTML } }, rest), animation));
462
+ return (jsx(Tag, Object.assign({ ref: ref, className: [animClass, className].filter(Boolean).join(" "), style: computedStyle, dangerouslySetInnerHTML: { __html: heroHTML } }, rest), animation));
425
463
  }
426
- // ── Render children normally ──────────────────────────────────────────────
427
- return (jsx(Tag, Object.assign({ ref: ref, className: className, style: computedStyle }, rest, { children: children })));
464
+ // ── Render: standard path (real React children with em styles) ────────────
465
+ const processedChildren = isHero
466
+ ? renderChildrenWithEmStyles(children, italic, accentColor, font)
467
+ : children;
468
+ return (jsx(Tag, Object.assign({ ref: ref, className: className, style: computedStyle }, rest, { children: processedChildren })));
428
469
  };
429
470
 
430
471
  export { GOOGLE_FONTS, Typography, buildFontUrl, Typography as default, injectFont, preloadFonts };
@@ -1 +1 @@
1
- {"version":3,"file":"index.esm.js","sources":["../node_modules/tslib/tslib.es6.js","../../fonts.ts","../../animation.ts","../../Typography.tsx"],"sourcesContent":["/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise, SuppressedError, Symbol, Iterator */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\r\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\r\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\r\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\r\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\r\n var _, done = false;\r\n for (var i = decorators.length - 1; i >= 0; i--) {\r\n var context = {};\r\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\r\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\r\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\r\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\r\n if (kind === \"accessor\") {\r\n if (result === void 0) continue;\r\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\r\n if (_ = accept(result.get)) descriptor.get = _;\r\n if (_ = accept(result.set)) descriptor.set = _;\r\n if (_ = accept(result.init)) initializers.unshift(_);\r\n }\r\n else if (_ = accept(result)) {\r\n if (kind === \"field\") initializers.unshift(_);\r\n else descriptor[key] = _;\r\n }\r\n }\r\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\r\n done = true;\r\n};\r\n\r\nexport function __runInitializers(thisArg, initializers, value) {\r\n var useValue = arguments.length > 2;\r\n for (var i = 0; i < initializers.length; i++) {\r\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\r\n }\r\n return useValue ? value : void 0;\r\n};\r\n\r\nexport function __propKey(x) {\r\n return typeof x === \"symbol\" ? x : \"\".concat(x);\r\n};\r\n\r\nexport function __setFunctionName(f, name, prefix) {\r\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\r\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\r\n};\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\r\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = Object.create((typeof AsyncIterator === \"function\" ? AsyncIterator : Object).prototype), verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\r\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nvar ownKeys = function(o) {\r\n ownKeys = Object.getOwnPropertyNames || function (o) {\r\n var ar = [];\r\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\r\n return ar;\r\n };\r\n return ownKeys(o);\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n\r\nexport function __addDisposableResource(env, value, async) {\r\n if (value !== null && value !== void 0) {\r\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\r\n var dispose, inner;\r\n if (async) {\r\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\r\n dispose = value[Symbol.asyncDispose];\r\n }\r\n if (dispose === void 0) {\r\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\r\n dispose = value[Symbol.dispose];\r\n if (async) inner = dispose;\r\n }\r\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\r\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\r\n env.stack.push({ value: value, dispose: dispose, async: async });\r\n }\r\n else if (async) {\r\n env.stack.push({ async: true });\r\n }\r\n return value;\r\n\r\n}\r\n\r\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\r\n var e = new Error(message);\r\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\r\n};\r\n\r\nexport function __disposeResources(env) {\r\n function fail(e) {\r\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\r\n env.hasError = true;\r\n }\r\n var r, s = 0;\r\n function next() {\r\n while (r = env.stack.pop()) {\r\n try {\r\n if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);\r\n if (r.dispose) {\r\n var result = r.dispose.call(r.value);\r\n if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\r\n }\r\n else s |= 1;\r\n }\r\n catch (e) {\r\n fail(e);\r\n }\r\n }\r\n if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();\r\n if (env.hasError) throw env.error;\r\n }\r\n return next();\r\n}\r\n\r\nexport function __rewriteRelativeImportExtension(path, preserveJsx) {\r\n if (typeof path === \"string\" && /^\\.\\.?\\//.test(path)) {\r\n return path.replace(/\\.(tsx)$|((?:\\.d)?)((?:\\.[^./]+?)?)\\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {\r\n return tsx ? preserveJsx ? \".jsx\" : \".js\" : d && (!ext || !cm) ? m : (d + ext + \".\" + cm.toLowerCase() + \"js\");\r\n });\r\n }\r\n return path;\r\n}\r\n\r\nexport default {\r\n __extends: __extends,\r\n __assign: __assign,\r\n __rest: __rest,\r\n __decorate: __decorate,\r\n __param: __param,\r\n __esDecorate: __esDecorate,\r\n __runInitializers: __runInitializers,\r\n __propKey: __propKey,\r\n __setFunctionName: __setFunctionName,\r\n __metadata: __metadata,\r\n __awaiter: __awaiter,\r\n __generator: __generator,\r\n __createBinding: __createBinding,\r\n __exportStar: __exportStar,\r\n __values: __values,\r\n __read: __read,\r\n __spread: __spread,\r\n __spreadArrays: __spreadArrays,\r\n __spreadArray: __spreadArray,\r\n __await: __await,\r\n __asyncGenerator: __asyncGenerator,\r\n __asyncDelegator: __asyncDelegator,\r\n __asyncValues: __asyncValues,\r\n __makeTemplateObject: __makeTemplateObject,\r\n __importStar: __importStar,\r\n __importDefault: __importDefault,\r\n __classPrivateFieldGet: __classPrivateFieldGet,\r\n __classPrivateFieldSet: __classPrivateFieldSet,\r\n __classPrivateFieldIn: __classPrivateFieldIn,\r\n __addDisposableResource: __addDisposableResource,\r\n __disposeResources: __disposeResources,\r\n __rewriteRelativeImportExtension: __rewriteRelativeImportExtension,\r\n};\r\n","/**\n * A curated list of popular Google Fonts.\n * Pass any valid Google Font name to the `font` prop — if it's in this list,\n * it will be auto-injected via a <link> tag. For unlisted fonts, add them here\n * or import them manually in your project.\n */\nexport const GOOGLE_FONTS: string[] = [\n // Serif\n \"Playfair Display\",\n \"Merriweather\",\n \"Lora\",\n \"EB Garamond\",\n \"Libre Baskerville\",\n \"Cormorant Garamond\",\n \"DM Serif Display\",\n \"Crimson Text\",\n \"Source Serif 4\",\n \"Fraunces\",\n\n // Sans-serif\n \"Inter\",\n \"Roboto\",\n \"Open Sans\",\n \"Nunito\",\n \"Poppins\",\n \"Raleway\",\n \"Outfit\",\n \"DM Sans\",\n \"Manrope\",\n \"Plus Jakarta Sans\",\n \"Figtree\",\n \"Syne\",\n \"Albert Sans\",\n\n // Display / Expressive\n \"Bebas Neue\",\n \"Oswald\",\n \"Anton\",\n \"Barlow Condensed\",\n \"Righteous\",\n \"Abril Fatface\",\n \"Dela Gothic One\",\n \"Space Grotesk\",\n \"Unbounded\",\n \"Big Shoulders Display\",\n\n // Mono\n \"JetBrains Mono\",\n \"Fira Code\",\n \"Source Code Pro\",\n \"Space Mono\",\n \"IBM Plex Mono\",\n];\n\nconst injectedFonts = new Set<string>();\n\n/**\n * Builds a Google Fonts URL for a given font family.\n * Requests weights 300, 400, 500, 600, 700, 800 — italic variants included.\n */\nexport function buildFontUrl(fontFamily: string): string {\n const encoded = fontFamily.replace(/ /g, \"+\");\n return `https://fonts.googleapis.com/css2?family=${encoded}:ital,wght@0,300;0,400;0,500;0,600;0,700;0,800;1,400;1,700&display=swap`;\n}\n\n/**\n * Injects a Google Fonts <link> into <head> once per unique URL.\n * Safe to call multiple times — deduped via a Set.\n */\nexport function injectFont(url: string): void {\n if (typeof document === \"undefined\") return; // SSR guard\n if (injectedFonts.has(url)) return;\n\n const link = document.createElement(\"link\");\n link.rel = \"stylesheet\";\n link.href = url;\n document.head.appendChild(link);\n injectedFonts.add(url);\n}\n\n/**\n * Pre-load a set of fonts eagerly (e.g. at app root).\n * Usage: preloadFonts([\"Playfair Display\", \"Inter\"])\n */\nexport function preloadFonts(families: string[]): void {\n families.forEach((f) => {\n if (GOOGLE_FONTS.includes(f)) {\n injectFont(buildFontUrl(f));\n } else {\n console.warn(\n `[@edwinvakayil/calligraphy] \"${f}\" is not in the bundled GOOGLE_FONTS list. ` +\n `Add it to the list or import it manually.`\n );\n }\n });\n}","import { HeroAnimation } from \"./types\";\n\nconst STYLE_ID = \"rts-hero-animations\";\n\nconst CSS = `\n@keyframes rts-rise{from{opacity:0;transform:translateY(32px)}to{opacity:1;transform:translateY(0)}}\n@keyframes rts-clip{from{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0 0% 0 0)}}\n@keyframes rts-pop{0%{opacity:0;transform:scale(0.75)}60%{opacity:1;transform:scale(1.04)}100%{transform:scale(1)}}\n@keyframes rts-blur{from{opacity:0;filter:blur(14px);transform:scale(1.04)}to{opacity:1;filter:blur(0);transform:scale(1)}}\n@keyframes rts-flip{from{opacity:0;transform:perspective(600px) rotateX(30deg) translateY(20px)}to{opacity:1;transform:perspective(600px) rotateX(0) translateY(0)}}\n@keyframes rts-swipe{from{opacity:0;transform:translateX(60px)}to{opacity:1;transform:translateX(0)}}\n@keyframes rts-bounce{0%{opacity:0;transform:translateY(-60px)}60%{opacity:1;transform:translateY(10px)}80%{transform:translateY(-5px)}100%{transform:translateY(0)}}\n@keyframes rts-type{from{width:0}to{width:100%}}\n@keyframes rts-blink{50%{border-color:transparent}}\n@keyframes rts-word-rise{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}\n@keyframes rts-letter-in{from{opacity:0;transform:translateX(-16px) rotate(-4deg)}to{opacity:1;transform:none}}\n\n.rts-rise { animation: rts-rise 0.9s cubic-bezier(0.16,1,0.3,1) both }\n.rts-clip { animation: rts-clip 1.1s cubic-bezier(0.77,0,0.18,1) both }\n.rts-pop { animation: rts-pop 0.7s cubic-bezier(0.34,1.56,0.64,1) both }\n.rts-blur { animation: rts-blur 1s cubic-bezier(0.16,1,0.3,1) both }\n.rts-flip { animation: rts-flip 0.9s cubic-bezier(0.16,1,0.3,1) both; transform-origin: center bottom }\n.rts-swipe { animation: rts-swipe 0.8s cubic-bezier(0.16,1,0.3,1) both }\n.rts-bounce { animation: rts-bounce 0.9s cubic-bezier(0.36,0.07,0.19,0.97) both }\n.rts-typewriter{ overflow: hidden; white-space: nowrap; border-right: 2px solid currentColor; width: 0; animation: rts-type 1.6s steps(22,end) both, rts-blink 0.7s step-end 1.6s 3 }\n.rts-word { display: inline-block; opacity: 0; transform: translateY(24px); animation: rts-word-rise 0.7s cubic-bezier(0.16,1,0.3,1) both }\n.rts-letter { display: inline-block; opacity: 0; transform: translateX(-16px) rotate(-4deg); animation: rts-letter-in 0.5s cubic-bezier(0.16,1,0.3,1) both }\n`;\n\nexport function injectAnimationStyles(): void {\n if (typeof document === \"undefined\") return;\n if (document.getElementById(STYLE_ID)) return;\n const style = document.createElement(\"style\");\n style.id = STYLE_ID;\n style.textContent = CSS;\n document.head.appendChild(style);\n}\n\nexport function getAnimationClass(animation: HeroAnimation): string {\n const map: Record<HeroAnimation, string> = {\n rise: \"rts-rise\",\n clip: \"rts-clip\",\n pop: \"rts-pop\",\n blur: \"rts-blur\",\n flip: \"rts-flip\",\n swipe: \"rts-swipe\",\n bounce: \"rts-bounce\",\n typewriter: \"rts-typewriter\",\n stagger: \"\",\n letters: \"\",\n };\n return map[animation] ?? \"\";\n}\n\n/**\n * Wraps each word in an animated span.\n * <em> tokens are preserved as-is in the HTML — Typography's useEffect\n * will apply inline styles to them after mount.\n */\nexport function buildStaggerHTML(html: string): string {\n const tokens = html.match(/(<em>[\\s\\S]*?<\\/em>|[^\\s]+)/g) ?? [];\n return tokens\n .map((tok, i) => {\n const delay = (i * 0.07).toFixed(2);\n if (tok.startsWith(\"<em>\")) {\n // Wrap the inner text in the animated span, keep <em> outside\n const inner = tok.slice(4, -5);\n return `<em><span class=\"rts-word\" style=\"animation-delay:${delay}s\">${inner}</span></em>`;\n }\n return `<span class=\"rts-word\" style=\"animation-delay:${delay}s\">${tok}</span>`;\n })\n .join(\" \");\n}\n\n/**\n * Wraps each character in an animated span.\n * <em> tags are preserved in the output — Typography's useEffect applies\n * the actual italic/non-italic inline styles after the DOM is ready.\n */\nexport function buildLettersHTML(html: string): string {\n const result: string[] = [];\n let inEm = false;\n let delay = 0;\n const step = 0.04;\n let i = 0;\n\n while (i < html.length) {\n if (html.startsWith(\"<em>\", i)) { inEm = true; i += 4; continue; }\n if (html.startsWith(\"</em>\", i)) { inEm = false; i += 5; continue; }\n\n const ch = html[i];\n if (ch === \" \") { result.push(\" \"); i++; continue; }\n\n const span = `<span class=\"rts-letter\" style=\"animation-delay:${delay.toFixed(2)}s\">${ch}</span>`;\n // Preserve <em> wrapper in DOM — styles applied by useEffect\n result.push(inEm ? `<em>${span}</em>` : span);\n delay += step;\n i++;\n }\n\n return result.join(\"\");\n}","import React, { CSSProperties, Children, isValidElement, useRef, useEffect } from \"react\";\nimport { TypographyProps, VariantTagMap, VariantStyleMap } from \"./types\";\nimport { GOOGLE_FONTS, buildFontUrl, injectFont } from \"./fonts\";\nimport {\n injectAnimationStyles,\n getAnimationClass,\n buildStaggerHTML,\n buildLettersHTML,\n} from \"./animation\";\n\n// ─── Static maps ─────────────────────────────────────────────────────────────\n\nconst variantTagMap: VariantTagMap = {\n Display: \"h1\",\n H1: \"h1\",\n H2: \"h2\",\n H3: \"h3\",\n H4: \"h4\",\n H5: \"h5\",\n H6: \"h6\",\n Subheading: \"h6\",\n Overline: \"span\",\n Body: \"p\",\n Label: \"label\",\n Caption: \"span\",\n};\n\nconst variantStyleMap: VariantStyleMap = {\n Display: {\n fontSize: \"clamp(2.5rem, 6vw, 5rem)\",\n fontWeight: 800,\n lineHeight: 1.05,\n letterSpacing: \"-0.03em\",\n },\n H1: {\n fontSize: \"clamp(2rem, 4vw, 3rem)\",\n fontWeight: 700,\n lineHeight: 1.1,\n letterSpacing: \"-0.02em\",\n },\n H2: {\n fontSize: \"clamp(1.5rem, 3vw, 2.25rem)\",\n fontWeight: 700,\n lineHeight: 1.2,\n letterSpacing: \"-0.015em\",\n },\n H3: {\n fontSize: \"clamp(1.25rem, 2.5vw, 1.75rem)\",\n fontWeight: 600,\n lineHeight: 1.25,\n letterSpacing: \"-0.01em\",\n },\n H4: {\n fontSize: \"clamp(1.1rem, 2vw, 1.375rem)\",\n fontWeight: 600,\n lineHeight: 1.3,\n letterSpacing: \"-0.005em\",\n },\n H5: {\n fontSize: \"clamp(1rem, 1.5vw, 1.125rem)\",\n fontWeight: 600,\n lineHeight: 1.35,\n letterSpacing: \"0em\",\n },\n H6: {\n fontSize: \"1rem\",\n fontWeight: 600,\n lineHeight: 1.4,\n letterSpacing: \"0em\",\n },\n Subheading: {\n fontSize: \"1.125rem\",\n fontWeight: 500,\n lineHeight: 1.5,\n letterSpacing: \"0.005em\",\n },\n Overline: {\n fontSize: \"0.6875rem\",\n fontWeight: 700,\n lineHeight: 1.6,\n letterSpacing: \"0.12em\",\n textTransform: \"uppercase\" as CSSProperties[\"textTransform\"],\n },\n Body: {\n fontSize: \"1rem\",\n fontWeight: 400,\n lineHeight: 1.7,\n letterSpacing: \"0.01em\",\n },\n Label: {\n fontSize: \"0.875rem\",\n fontWeight: 500,\n lineHeight: 1.5,\n letterSpacing: \"0.02em\",\n },\n Caption: {\n fontSize: \"0.75rem\",\n fontWeight: 400,\n lineHeight: 1.6,\n letterSpacing: \"0.03em\",\n },\n};\n\n// ─── Instrument Serif font URL ───────────────────────────────────────────────\n\nconst INSTRUMENT_SERIF_URL =\n \"https://fonts.googleapis.com/css2?family=Instrument+Serif:ital@0;1&display=swap\";\n\n// ─── Helpers ─────────────────────────────────────────────────────────────────\n\n/**\n * Serialise React children to a plain HTML string.\n * Handles: strings, <em>text</em> elements.\n */\nfunction childrenToHTML(children: React.ReactNode): string {\n return (\n Children.map(children, (child) => {\n if (typeof child === \"string\" || typeof child === \"number\") {\n return String(child);\n }\n if (isValidElement(child) && child.type === \"em\") {\n const inner =\n typeof child.props.children === \"string\" ? child.props.children : \"\";\n return `<em>${inner}</em>`;\n }\n return \"\";\n })?.join(\"\") ?? \"\"\n );\n}\n\n/**\n * Walk the serialised HTML and inject inline styles on every <em> span\n * so italic rendering is driven 100% by inline styles — no CSS specificity\n * battles, works regardless of injection order.\n */\nfunction applyEmStyles(\n container: HTMLElement,\n italic: boolean,\n accentColor: string,\n headingFont?: string\n): void {\n const ems = container.querySelectorAll<HTMLElement>(\"em, em span\");\n ems.forEach((el) => {\n if (italic) {\n el.style.fontFamily = \"'Instrument Serif', serif\";\n el.style.fontStyle = \"italic\";\n el.style.fontWeight = \"400\";\n el.style.color = accentColor;\n } else {\n el.style.fontFamily = headingFont ? `'${headingFont}', sans-serif` : \"inherit\";\n el.style.fontStyle = \"normal\";\n el.style.fontWeight = \"inherit\";\n el.style.color = \"inherit\";\n }\n });\n}\n\n// ─── Component ───────────────────────────────────────────────────────────────\n\nexport const Typography: React.FC<TypographyProps> = ({\n variant = \"Body\",\n font,\n color,\n align,\n className,\n style,\n children,\n as,\n truncate,\n maxLines,\n animation,\n italic = false,\n accentColor = \"#c8b89a\",\n ...rest\n}) => {\n const isHero = variant === \"Display\" || variant === \"H1\";\n const ref = useRef<HTMLElement>(null);\n\n // Inject Google Font\n if (font && GOOGLE_FONTS.includes(font)) {\n injectFont(buildFontUrl(font));\n }\n\n // Inject Instrument Serif for italic accent\n if (isHero && italic) {\n injectFont(INSTRUMENT_SERIF_URL);\n }\n\n // Inject animation keyframe stylesheet once\n if (animation && isHero) {\n injectAnimationStyles();\n }\n\n // After every render, re-apply inline styles on <em> elements.\n // This is the fix for italic toggle: no CSS class needed, just DOM walk.\n useEffect(() => {\n if (!isHero || !ref.current) return;\n applyEmStyles(ref.current, italic, accentColor, font);\n });\n\n const Tag = (as ?? variantTagMap[variant]) as React.ElementType;\n\n // ── Compute animation class + inner HTML ──────────────────────────────────\n\n let animClass = \"\";\n let heroHTML: string | null = null;\n\n if (animation && isHero) {\n const rawHTML = childrenToHTML(children);\n\n if (animation === \"stagger\") {\n heroHTML = buildStaggerHTML(rawHTML);\n } else if (animation === \"letters\") {\n heroHTML = buildLettersHTML(rawHTML);\n } else {\n heroHTML = rawHTML;\n animClass = getAnimationClass(animation);\n }\n }\n\n // ── Computed styles ───────────────────────────────────────────────────────\n\n const computedStyle: CSSProperties = {\n ...variantStyleMap[variant],\n ...(font ? { fontFamily: `'${font}', sans-serif` } : {}),\n ...(color ? { color } : {}),\n ...(align ? { textAlign: align } : {}),\n ...(truncate\n ? { overflow: \"hidden\", textOverflow: \"ellipsis\", whiteSpace: \"nowrap\" }\n : {}),\n ...(maxLines && !truncate\n ? {\n display: \"-webkit-box\",\n WebkitLineClamp: maxLines,\n WebkitBoxOrient: \"vertical\" as CSSProperties[\"WebkitBoxOrient\"],\n overflow: \"hidden\",\n }\n : {}),\n margin: 0,\n padding: 0,\n ...style,\n };\n\n // ── Render with dangerouslySetInnerHTML (animation variants) ──────────────\n\n if (heroHTML !== null) {\n return (\n <Tag\n // key forces a fresh DOM node when animation changes → keyframe re-fires\n key={animation}\n ref={ref}\n className={[animClass, className].filter(Boolean).join(\" \")}\n style={computedStyle}\n dangerouslySetInnerHTML={{ __html: heroHTML }}\n {...rest}\n />\n );\n }\n\n // ── Render children normally ──────────────────────────────────────────────\n\n return (\n <Tag\n ref={ref}\n className={className}\n style={computedStyle}\n {...rest}\n >\n {children}\n </Tag>\n );\n};\n\nexport default Typography;"],"names":["_jsx"],"mappings":"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","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"index.esm.js","sources":["../node_modules/tslib/tslib.es6.js","../../fonts.ts","../../animation.ts","../../Typography.tsx"],"sourcesContent":["/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise, SuppressedError, Symbol, Iterator */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\r\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\r\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\r\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\r\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\r\n var _, done = false;\r\n for (var i = decorators.length - 1; i >= 0; i--) {\r\n var context = {};\r\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\r\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\r\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\r\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\r\n if (kind === \"accessor\") {\r\n if (result === void 0) continue;\r\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\r\n if (_ = accept(result.get)) descriptor.get = _;\r\n if (_ = accept(result.set)) descriptor.set = _;\r\n if (_ = accept(result.init)) initializers.unshift(_);\r\n }\r\n else if (_ = accept(result)) {\r\n if (kind === \"field\") initializers.unshift(_);\r\n else descriptor[key] = _;\r\n }\r\n }\r\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\r\n done = true;\r\n};\r\n\r\nexport function __runInitializers(thisArg, initializers, value) {\r\n var useValue = arguments.length > 2;\r\n for (var i = 0; i < initializers.length; i++) {\r\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\r\n }\r\n return useValue ? value : void 0;\r\n};\r\n\r\nexport function __propKey(x) {\r\n return typeof x === \"symbol\" ? x : \"\".concat(x);\r\n};\r\n\r\nexport function __setFunctionName(f, name, prefix) {\r\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\r\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\r\n};\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\r\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = Object.create((typeof AsyncIterator === \"function\" ? AsyncIterator : Object).prototype), verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\r\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nvar ownKeys = function(o) {\r\n ownKeys = Object.getOwnPropertyNames || function (o) {\r\n var ar = [];\r\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\r\n return ar;\r\n };\r\n return ownKeys(o);\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n\r\nexport function __addDisposableResource(env, value, async) {\r\n if (value !== null && value !== void 0) {\r\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\r\n var dispose, inner;\r\n if (async) {\r\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\r\n dispose = value[Symbol.asyncDispose];\r\n }\r\n if (dispose === void 0) {\r\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\r\n dispose = value[Symbol.dispose];\r\n if (async) inner = dispose;\r\n }\r\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\r\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\r\n env.stack.push({ value: value, dispose: dispose, async: async });\r\n }\r\n else if (async) {\r\n env.stack.push({ async: true });\r\n }\r\n return value;\r\n\r\n}\r\n\r\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\r\n var e = new Error(message);\r\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\r\n};\r\n\r\nexport function __disposeResources(env) {\r\n function fail(e) {\r\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\r\n env.hasError = true;\r\n }\r\n var r, s = 0;\r\n function next() {\r\n while (r = env.stack.pop()) {\r\n try {\r\n if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);\r\n if (r.dispose) {\r\n var result = r.dispose.call(r.value);\r\n if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\r\n }\r\n else s |= 1;\r\n }\r\n catch (e) {\r\n fail(e);\r\n }\r\n }\r\n if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();\r\n if (env.hasError) throw env.error;\r\n }\r\n return next();\r\n}\r\n\r\nexport function __rewriteRelativeImportExtension(path, preserveJsx) {\r\n if (typeof path === \"string\" && /^\\.\\.?\\//.test(path)) {\r\n return path.replace(/\\.(tsx)$|((?:\\.d)?)((?:\\.[^./]+?)?)\\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {\r\n return tsx ? preserveJsx ? \".jsx\" : \".js\" : d && (!ext || !cm) ? m : (d + ext + \".\" + cm.toLowerCase() + \"js\");\r\n });\r\n }\r\n return path;\r\n}\r\n\r\nexport default {\r\n __extends: __extends,\r\n __assign: __assign,\r\n __rest: __rest,\r\n __decorate: __decorate,\r\n __param: __param,\r\n __esDecorate: __esDecorate,\r\n __runInitializers: __runInitializers,\r\n __propKey: __propKey,\r\n __setFunctionName: __setFunctionName,\r\n __metadata: __metadata,\r\n __awaiter: __awaiter,\r\n __generator: __generator,\r\n __createBinding: __createBinding,\r\n __exportStar: __exportStar,\r\n __values: __values,\r\n __read: __read,\r\n __spread: __spread,\r\n __spreadArrays: __spreadArrays,\r\n __spreadArray: __spreadArray,\r\n __await: __await,\r\n __asyncGenerator: __asyncGenerator,\r\n __asyncDelegator: __asyncDelegator,\r\n __asyncValues: __asyncValues,\r\n __makeTemplateObject: __makeTemplateObject,\r\n __importStar: __importStar,\r\n __importDefault: __importDefault,\r\n __classPrivateFieldGet: __classPrivateFieldGet,\r\n __classPrivateFieldSet: __classPrivateFieldSet,\r\n __classPrivateFieldIn: __classPrivateFieldIn,\r\n __addDisposableResource: __addDisposableResource,\r\n __disposeResources: __disposeResources,\r\n __rewriteRelativeImportExtension: __rewriteRelativeImportExtension,\r\n};\r\n","/**\n * A curated list of popular Google Fonts.\n * Pass any valid Google Font name to the `font` prop — if it's in this list,\n * it will be auto-injected via a <link> tag. For unlisted fonts, add them here\n * or import them manually in your project.\n */\nexport const GOOGLE_FONTS: string[] = [\n // Serif\n \"Playfair Display\",\n \"Merriweather\",\n \"Lora\",\n \"EB Garamond\",\n \"Libre Baskerville\",\n \"Cormorant Garamond\",\n \"DM Serif Display\",\n \"Crimson Text\",\n \"Source Serif 4\",\n \"Fraunces\",\n\n // Sans-serif\n \"Inter\",\n \"Roboto\",\n \"Open Sans\",\n \"Nunito\",\n \"Poppins\",\n \"Raleway\",\n \"Outfit\",\n \"DM Sans\",\n \"Manrope\",\n \"Plus Jakarta Sans\",\n \"Figtree\",\n \"Syne\",\n \"Albert Sans\",\n\n // Display / Expressive\n \"Bebas Neue\",\n \"Oswald\",\n \"Anton\",\n \"Barlow Condensed\",\n \"Righteous\",\n \"Abril Fatface\",\n \"Dela Gothic One\",\n \"Space Grotesk\",\n \"Unbounded\",\n \"Big Shoulders Display\",\n\n // Mono\n \"JetBrains Mono\",\n \"Fira Code\",\n \"Source Code Pro\",\n \"Space Mono\",\n \"IBM Plex Mono\",\n];\n\nconst injectedFonts = new Set<string>();\n\n/**\n * Builds a Google Fonts URL for a given font family.\n * Requests weights 300, 400, 500, 600, 700, 800 — italic variants included.\n */\nexport function buildFontUrl(fontFamily: string): string {\n const encoded = fontFamily.replace(/ /g, \"+\");\n return `https://fonts.googleapis.com/css2?family=${encoded}:ital,wght@0,300;0,400;0,500;0,600;0,700;0,800;1,400;1,700&display=swap`;\n}\n\n/**\n * Injects a Google Fonts <link> into <head> once per unique URL.\n * Safe to call multiple times — deduped via a Set.\n */\nexport function injectFont(url: string): void {\n if (typeof document === \"undefined\") return; // SSR guard\n if (injectedFonts.has(url)) return;\n\n const link = document.createElement(\"link\");\n link.rel = \"stylesheet\";\n link.href = url;\n document.head.appendChild(link);\n injectedFonts.add(url);\n}\n\n/**\n * Pre-load a set of fonts eagerly (e.g. at app root).\n * Usage: preloadFonts([\"Playfair Display\", \"Inter\"])\n */\nexport function preloadFonts(families: string[]): void {\n families.forEach((f) => {\n if (GOOGLE_FONTS.includes(f)) {\n injectFont(buildFontUrl(f));\n } else {\n console.warn(\n `[@edwinvakayil/calligraphy] \"${f}\" is not in the bundled GOOGLE_FONTS list. ` +\n `Add it to the list or import it manually.`\n );\n }\n });\n}","import { HeroAnimation } from \"./types\";\n\nconst STYLE_ID = \"rts-hero-animations\";\n\nconst CSS = `\n@keyframes rts-rise{from{opacity:0;transform:translateY(32px)}to{opacity:1;transform:translateY(0)}}\n@keyframes rts-clip{from{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0 0% 0 0)}}\n@keyframes rts-pop{0%{opacity:0;transform:scale(0.75)}60%{opacity:1;transform:scale(1.04)}100%{transform:scale(1)}}\n@keyframes rts-blur{from{opacity:0;filter:blur(14px);transform:scale(1.04)}to{opacity:1;filter:blur(0);transform:scale(1)}}\n@keyframes rts-flip{from{opacity:0;transform:perspective(600px) rotateX(30deg) translateY(20px)}to{opacity:1;transform:perspective(600px) rotateX(0) translateY(0)}}\n@keyframes rts-swipe{from{opacity:0;transform:translateX(60px)}to{opacity:1;transform:translateX(0)}}\n@keyframes rts-bounce{0%{opacity:0;transform:translateY(-60px)}60%{opacity:1;transform:translateY(10px)}80%{transform:translateY(-5px)}100%{transform:translateY(0)}}\n@keyframes rts-type{from{width:0}to{width:100%}}\n@keyframes rts-blink{50%{border-color:transparent}}\n@keyframes rts-word-rise{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}\n@keyframes rts-letter-in{from{opacity:0;transform:translateX(-16px) rotate(-4deg)}to{opacity:1;transform:none}}\n\n.rts-rise { animation: rts-rise 0.9s cubic-bezier(0.16,1,0.3,1) both }\n.rts-clip { animation: rts-clip 1.1s cubic-bezier(0.77,0,0.18,1) both }\n.rts-pop { animation: rts-pop 0.7s cubic-bezier(0.34,1.56,0.64,1) both }\n.rts-blur { animation: rts-blur 1s cubic-bezier(0.16,1,0.3,1) both }\n.rts-flip { animation: rts-flip 0.9s cubic-bezier(0.16,1,0.3,1) both; transform-origin: center bottom }\n.rts-swipe { animation: rts-swipe 0.8s cubic-bezier(0.16,1,0.3,1) both }\n.rts-bounce { animation: rts-bounce 0.9s cubic-bezier(0.36,0.07,0.19,0.97) both }\n.rts-typewriter{ overflow: hidden; white-space: nowrap; border-right: 2px solid currentColor; width: 0; animation: rts-type 1.6s steps(22,end) both, rts-blink 0.7s step-end 1.6s 3 }\n.rts-word { display: inline-block; opacity: 0; transform: translateY(24px); animation: rts-word-rise 0.7s cubic-bezier(0.16,1,0.3,1) both }\n.rts-letter { display: inline-block; opacity: 0; transform: translateX(-16px) rotate(-4deg); animation: rts-letter-in 0.5s cubic-bezier(0.16,1,0.3,1) both }\n`;\n\nexport function injectAnimationStyles(): void {\n if (typeof document === \"undefined\") return;\n if (document.getElementById(STYLE_ID)) return;\n const style = document.createElement(\"style\");\n style.id = STYLE_ID;\n style.textContent = CSS;\n document.head.appendChild(style);\n}\n\nexport function getAnimationClass(animation: HeroAnimation): string {\n const map: Record<HeroAnimation, string> = {\n rise: \"rts-rise\",\n clip: \"rts-clip\",\n pop: \"rts-pop\",\n blur: \"rts-blur\",\n flip: \"rts-flip\",\n swipe: \"rts-swipe\",\n bounce: \"rts-bounce\",\n typewriter: \"rts-typewriter\",\n stagger: \"\",\n letters: \"\",\n };\n return map[animation] ?? \"\";\n}\n\n/**\n * Wraps each word in an animated span.\n * <em> tokens are preserved as-is in the HTML — Typography's useEffect\n * will apply inline styles to them after mount.\n */\nexport function buildStaggerHTML(html: string): string {\n const tokens = html.match(/(<em>[\\s\\S]*?<\\/em>|[^\\s]+)/g) ?? [];\n return tokens\n .map((tok, i) => {\n const delay = (i * 0.07).toFixed(2);\n if (tok.startsWith(\"<em>\")) {\n // Wrap the inner text in the animated span, keep <em> outside\n const inner = tok.slice(4, -5);\n return `<em><span class=\"rts-word\" style=\"animation-delay:${delay}s\">${inner}</span></em>`;\n }\n return `<span class=\"rts-word\" style=\"animation-delay:${delay}s\">${tok}</span>`;\n })\n .join(\" \");\n}\n\n/**\n * Wraps each character in an animated span.\n * <em> tags are preserved in the output — Typography's useEffect applies\n * the actual italic/non-italic inline styles after the DOM is ready.\n */\nexport function buildLettersHTML(html: string): string {\n const result: string[] = [];\n let inEm = false;\n let delay = 0;\n const step = 0.04;\n let i = 0;\n\n while (i < html.length) {\n if (html.startsWith(\"<em>\", i)) { inEm = true; i += 4; continue; }\n if (html.startsWith(\"</em>\", i)) { inEm = false; i += 5; continue; }\n\n const ch = html[i];\n if (ch === \" \") { result.push(\" \"); i++; continue; }\n\n const span = `<span class=\"rts-letter\" style=\"animation-delay:${delay.toFixed(2)}s\">${ch}</span>`;\n // Preserve <em> wrapper in DOM — styles applied by useEffect\n result.push(inEm ? `<em>${span}</em>` : span);\n delay += step;\n i++;\n }\n\n return result.join(\"\");\n}","import React, { CSSProperties, Children, isValidElement, useRef, useEffect } from \"react\";\nimport { TypographyProps, VariantTagMap, VariantStyleMap } from \"./types\";\nimport { GOOGLE_FONTS, buildFontUrl, injectFont } from \"./fonts\";\nimport {\n injectAnimationStyles,\n getAnimationClass,\n buildStaggerHTML,\n buildLettersHTML,\n} from \"./animation\";\n\n// ─── Static maps ─────────────────────────────────────────────────────────────\n\nconst variantTagMap: VariantTagMap = {\n Display: \"h1\",\n H1: \"h1\",\n H2: \"h2\",\n H3: \"h3\",\n H4: \"h4\",\n H5: \"h5\",\n H6: \"h6\",\n Subheading: \"h6\",\n Overline: \"span\",\n Body: \"p\",\n Label: \"label\",\n Caption: \"span\",\n};\n\nconst variantStyleMap: VariantStyleMap = {\n Display: {\n fontSize: \"clamp(2.5rem, 6vw, 5rem)\",\n fontWeight: 800,\n lineHeight: 1.05,\n letterSpacing: \"-0.03em\",\n },\n H1: {\n fontSize: \"clamp(2rem, 4vw, 3rem)\",\n fontWeight: 700,\n lineHeight: 1.1,\n letterSpacing: \"-0.02em\",\n },\n H2: {\n fontSize: \"clamp(1.5rem, 3vw, 2.25rem)\",\n fontWeight: 700,\n lineHeight: 1.2,\n letterSpacing: \"-0.015em\",\n },\n H3: {\n fontSize: \"clamp(1.25rem, 2.5vw, 1.75rem)\",\n fontWeight: 600,\n lineHeight: 1.25,\n letterSpacing: \"-0.01em\",\n },\n H4: {\n fontSize: \"clamp(1.1rem, 2vw, 1.375rem)\",\n fontWeight: 600,\n lineHeight: 1.3,\n letterSpacing: \"-0.005em\",\n },\n H5: {\n fontSize: \"clamp(1rem, 1.5vw, 1.125rem)\",\n fontWeight: 600,\n lineHeight: 1.35,\n letterSpacing: \"0em\",\n },\n H6: {\n fontSize: \"1rem\",\n fontWeight: 600,\n lineHeight: 1.4,\n letterSpacing: \"0em\",\n },\n Subheading: {\n fontSize: \"1.125rem\",\n fontWeight: 500,\n lineHeight: 1.5,\n letterSpacing: \"0.005em\",\n },\n Overline: {\n fontSize: \"0.6875rem\",\n fontWeight: 700,\n lineHeight: 1.6,\n letterSpacing: \"0.12em\",\n textTransform: \"uppercase\" as CSSProperties[\"textTransform\"],\n },\n Body: {\n fontSize: \"1rem\",\n fontWeight: 400,\n lineHeight: 1.7,\n letterSpacing: \"0.01em\",\n },\n Label: {\n fontSize: \"0.875rem\",\n fontWeight: 500,\n lineHeight: 1.5,\n letterSpacing: \"0.02em\",\n },\n Caption: {\n fontSize: \"0.75rem\",\n fontWeight: 400,\n lineHeight: 1.6,\n letterSpacing: \"0.03em\",\n },\n};\n\n// ─── Constants ───────────────────────────────────────────────────────────────\n\nconst INSTRUMENT_SERIF_URL =\n \"https://fonts.googleapis.com/css2?family=Instrument+Serif:ital@0;1&display=swap\";\n\n// ─── Helpers ─────────────────────────────────────────────────────────────────\n\n/**\n * Serialise React children → raw HTML string.\n * Preserves <em>text</em> nodes for animation builders.\n */\nfunction childrenToHTML(children: React.ReactNode): string {\n return (\n Children.map(children, (child) => {\n if (typeof child === \"string\" || typeof child === \"number\") {\n return String(child);\n }\n if (isValidElement(child) && child.type === \"em\") {\n const inner =\n typeof child.props.children === \"string\" ? child.props.children : \"\";\n return `<em>${inner}</em>`;\n }\n return \"\";\n })?.join(\"\") ?? \"\"\n );\n}\n\n/**\n * Re-map React children so that <em> elements get explicit inline styles.\n * This is used for the no-animation render path where we keep real React nodes.\n * Inline styles on the <em> itself beat any inherited font-family from the parent.\n */\nfunction renderChildrenWithEmStyles(\n children: React.ReactNode,\n italic: boolean,\n accentColor: string,\n headingFont?: string\n): React.ReactNode {\n const italicStyle: CSSProperties = {\n fontFamily: \"'Instrument Serif', serif\",\n fontStyle: \"italic\",\n fontWeight: 400,\n color: accentColor,\n };\n\n const noItalicStyle: CSSProperties = {\n fontFamily: headingFont ? `'${headingFont}', sans-serif` : \"inherit\",\n fontStyle: \"normal\",\n fontWeight: \"inherit\" as any,\n color: \"inherit\",\n };\n\n return Children.map(children, (child, i) => {\n if (isValidElement(child) && child.type === \"em\") {\n return (\n <em key={i} style={italic ? italicStyle : noItalicStyle}>\n {child.props.children}\n </em>\n );\n }\n return child;\n });\n}\n\n/**\n * After dangerouslySetInnerHTML renders, walk the DOM and apply inline styles\n * to every <em> and <em> > span so the font switch is guaranteed.\n */\nfunction applyEmStylesDOM(\n container: HTMLElement,\n italic: boolean,\n accentColor: string,\n headingFont?: string\n): void {\n // Select both <em> and any animated letter spans nested inside <em>\n container.querySelectorAll<HTMLElement>(\"em\").forEach((el) => {\n if (italic) {\n el.style.fontFamily = \"'Instrument Serif', serif\";\n el.style.fontStyle = \"italic\";\n el.style.fontWeight = \"400\";\n el.style.color = accentColor;\n } else {\n el.style.fontFamily = headingFont ? `'${headingFont}', sans-serif` : \"inherit\";\n el.style.fontStyle = \"normal\";\n el.style.fontWeight = \"inherit\";\n el.style.color = \"inherit\";\n }\n });\n\n // Also style the animated letter spans inside <em> (used by \"letters\" animation)\n container.querySelectorAll<HTMLElement>(\"em > span\").forEach((el) => {\n if (italic) {\n el.style.fontFamily = \"'Instrument Serif', serif\";\n el.style.fontStyle = \"italic\";\n el.style.fontWeight = \"400\";\n el.style.color = accentColor;\n } else {\n el.style.fontFamily = headingFont ? `'${headingFont}', sans-serif` : \"inherit\";\n el.style.fontStyle = \"normal\";\n el.style.fontWeight = \"inherit\";\n el.style.color = \"inherit\";\n }\n });\n}\n\n// ─── Component ───────────────────────────────────────────────────────────────\n\nexport const Typography: React.FC<TypographyProps> = ({\n variant = \"Body\",\n font,\n color,\n align,\n className,\n style,\n children,\n as,\n truncate,\n maxLines,\n animation,\n italic = false,\n accentColor = \"#c8b89a\",\n ...rest\n}) => {\n const isHero = variant === \"Display\" || variant === \"H1\";\n const ref = useRef<HTMLElement>(null);\n\n // Always inject Instrument Serif for hero variants so it's pre-loaded\n // and ready the moment italic is toggled on — no flash of wrong font.\n if (isHero) {\n injectFont(INSTRUMENT_SERIF_URL);\n }\n\n // Inject heading Google Font\n if (font && GOOGLE_FONTS.includes(font)) {\n injectFont(buildFontUrl(font));\n }\n\n // Inject animation keyframes (once, global)\n if (animation && isHero) {\n injectAnimationStyles();\n }\n\n // For animation paths (dangerouslySetInnerHTML), walk the DOM after render\n // and stamp inline styles onto every <em> — guaranteed to beat inheritance.\n useEffect(() => {\n if (!isHero || !animation || !ref.current) return;\n applyEmStylesDOM(ref.current, italic, accentColor, font);\n }, [italic, accentColor, font, animation, isHero]);\n\n const Tag = (as ?? variantTagMap[variant]) as React.ElementType;\n\n // ── Compute animation class + inner HTML ──────────────────────────────────\n\n let animClass = \"\";\n let heroHTML: string | null = null;\n\n if (animation && isHero) {\n const rawHTML = childrenToHTML(children);\n\n if (animation === \"stagger\") {\n heroHTML = buildStaggerHTML(rawHTML);\n } else if (animation === \"letters\") {\n heroHTML = buildLettersHTML(rawHTML);\n } else {\n heroHTML = rawHTML;\n animClass = getAnimationClass(animation);\n }\n }\n\n // ── Computed container styles ─────────────────────────────────────────────\n\n const computedStyle: CSSProperties = {\n ...variantStyleMap[variant],\n ...(font ? { fontFamily: `'${font}', sans-serif` } : {}),\n ...(color ? { color } : {}),\n ...(align ? { textAlign: align } : {}),\n ...(truncate\n ? { overflow: \"hidden\", textOverflow: \"ellipsis\", whiteSpace: \"nowrap\" }\n : {}),\n ...(maxLines && !truncate\n ? {\n display: \"-webkit-box\",\n WebkitLineClamp: maxLines,\n WebkitBoxOrient: \"vertical\" as CSSProperties[\"WebkitBoxOrient\"],\n overflow: \"hidden\",\n }\n : {}),\n margin: 0,\n padding: 0,\n ...style,\n };\n\n // ── Render: animation path (dangerouslySetInnerHTML) ──────────────────────\n\n if (heroHTML !== null) {\n return (\n <Tag\n key={animation}\n ref={ref}\n className={[animClass, className].filter(Boolean).join(\" \")}\n style={computedStyle}\n dangerouslySetInnerHTML={{ __html: heroHTML }}\n {...rest}\n />\n );\n }\n\n // ── Render: standard path (real React children with em styles) ────────────\n\n const processedChildren = isHero\n ? renderChildrenWithEmStyles(children, italic, accentColor, font)\n : children;\n\n return (\n <Tag\n ref={ref}\n className={className}\n style={computedStyle}\n {...rest}\n >\n {processedChildren}\n </Tag>\n );\n};\n\nexport default Typography;"],"names":["_jsx"],"mappings":"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","x_google_ignoreList":[0]}
package/dist/index.js CHANGED
@@ -327,12 +327,12 @@ const variantStyleMap = {
327
327
  letterSpacing: "0.03em",
328
328
  },
329
329
  };
330
- // ─── Instrument Serif font URL ───────────────────────────────────────────────
330
+ // ─── Constants ───────────────────────────────────────────────────────────────
331
331
  const INSTRUMENT_SERIF_URL = "https://fonts.googleapis.com/css2?family=Instrument+Serif:ital@0;1&display=swap";
332
332
  // ─── Helpers ─────────────────────────────────────────────────────────────────
333
333
  /**
334
- * Serialise React children to a plain HTML string.
335
- * Handles: strings, <em>text</em> elements.
334
+ * Serialise React children raw HTML string.
335
+ * Preserves <em>text</em> nodes for animation builders.
336
336
  */
337
337
  function childrenToHTML(children) {
338
338
  var _a, _b;
@@ -348,13 +348,52 @@ function childrenToHTML(children) {
348
348
  })) === null || _a === void 0 ? void 0 : _a.join("")) !== null && _b !== void 0 ? _b : "");
349
349
  }
350
350
  /**
351
- * Walk the serialised HTML and inject inline styles on every <em> span
352
- * so italic rendering is driven 100% by inline styles no CSS specificity
353
- * battles, works regardless of injection order.
351
+ * Re-map React children so that <em> elements get explicit inline styles.
352
+ * This is used for the no-animation render path where we keep real React nodes.
353
+ * Inline styles on the <em> itself beat any inherited font-family from the parent.
354
354
  */
355
- function applyEmStyles(container, italic, accentColor, headingFont) {
356
- const ems = container.querySelectorAll("em, em span");
357
- ems.forEach((el) => {
355
+ function renderChildrenWithEmStyles(children, italic, accentColor, headingFont) {
356
+ const italicStyle = {
357
+ fontFamily: "'Instrument Serif', serif",
358
+ fontStyle: "italic",
359
+ fontWeight: 400,
360
+ color: accentColor,
361
+ };
362
+ const noItalicStyle = {
363
+ fontFamily: headingFont ? `'${headingFont}', sans-serif` : "inherit",
364
+ fontStyle: "normal",
365
+ fontWeight: "inherit",
366
+ color: "inherit",
367
+ };
368
+ return react.Children.map(children, (child, i) => {
369
+ if (react.isValidElement(child) && child.type === "em") {
370
+ return (jsxRuntime.jsx("em", { style: italic ? italicStyle : noItalicStyle, children: child.props.children }, i));
371
+ }
372
+ return child;
373
+ });
374
+ }
375
+ /**
376
+ * After dangerouslySetInnerHTML renders, walk the DOM and apply inline styles
377
+ * to every <em> and <em> > span so the font switch is guaranteed.
378
+ */
379
+ function applyEmStylesDOM(container, italic, accentColor, headingFont) {
380
+ // Select both <em> and any animated letter spans nested inside <em>
381
+ container.querySelectorAll("em").forEach((el) => {
382
+ if (italic) {
383
+ el.style.fontFamily = "'Instrument Serif', serif";
384
+ el.style.fontStyle = "italic";
385
+ el.style.fontWeight = "400";
386
+ el.style.color = accentColor;
387
+ }
388
+ else {
389
+ el.style.fontFamily = headingFont ? `'${headingFont}', sans-serif` : "inherit";
390
+ el.style.fontStyle = "normal";
391
+ el.style.fontWeight = "inherit";
392
+ el.style.color = "inherit";
393
+ }
394
+ });
395
+ // Also style the animated letter spans inside <em> (used by "letters" animation)
396
+ container.querySelectorAll("em > span").forEach((el) => {
358
397
  if (italic) {
359
398
  el.style.fontFamily = "'Instrument Serif', serif";
360
399
  el.style.fontStyle = "italic";
@@ -374,25 +413,26 @@ const Typography = (_a) => {
374
413
  var { variant = "Body", font, color, align, className, style, children, as, truncate, maxLines, animation, italic = false, accentColor = "#c8b89a" } = _a, rest = __rest(_a, ["variant", "font", "color", "align", "className", "style", "children", "as", "truncate", "maxLines", "animation", "italic", "accentColor"]);
375
414
  const isHero = variant === "Display" || variant === "H1";
376
415
  const ref = react.useRef(null);
377
- // Inject Google Font
416
+ // Always inject Instrument Serif for hero variants so it's pre-loaded
417
+ // and ready the moment italic is toggled on — no flash of wrong font.
418
+ if (isHero) {
419
+ injectFont(INSTRUMENT_SERIF_URL);
420
+ }
421
+ // Inject heading Google Font
378
422
  if (font && GOOGLE_FONTS.includes(font)) {
379
423
  injectFont(buildFontUrl(font));
380
424
  }
381
- // Inject Instrument Serif for italic accent
382
- if (isHero && italic) {
383
- injectFont(INSTRUMENT_SERIF_URL);
384
- }
385
- // Inject animation keyframe stylesheet once
425
+ // Inject animation keyframes (once, global)
386
426
  if (animation && isHero) {
387
427
  injectAnimationStyles();
388
428
  }
389
- // After every render, re-apply inline styles on <em> elements.
390
- // This is the fix for italic toggle: no CSS class needed, just DOM walk.
429
+ // For animation paths (dangerouslySetInnerHTML), walk the DOM after render
430
+ // and stamp inline styles onto every <em> guaranteed to beat inheritance.
391
431
  react.useEffect(() => {
392
- if (!isHero || !ref.current)
432
+ if (!isHero || !animation || !ref.current)
393
433
  return;
394
- applyEmStyles(ref.current, italic, accentColor, font);
395
- });
434
+ applyEmStylesDOM(ref.current, italic, accentColor, font);
435
+ }, [italic, accentColor, font, animation, isHero]);
396
436
  const Tag = (as !== null && as !== void 0 ? as : variantTagMap[variant]);
397
437
  // ── Compute animation class + inner HTML ──────────────────────────────────
398
438
  let animClass = "";
@@ -410,7 +450,7 @@ const Typography = (_a) => {
410
450
  animClass = getAnimationClass(animation);
411
451
  }
412
452
  }
413
- // ── Computed styles ───────────────────────────────────────────────────────
453
+ // ── Computed container styles ─────────────────────────────────────────────
414
454
  const computedStyle = Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, variantStyleMap[variant]), (font ? { fontFamily: `'${font}', sans-serif` } : {})), (color ? { color } : {})), (align ? { textAlign: align } : {})), (truncate
415
455
  ? { overflow: "hidden", textOverflow: "ellipsis", whiteSpace: "nowrap" }
416
456
  : {})), (maxLines && !truncate
@@ -421,14 +461,15 @@ const Typography = (_a) => {
421
461
  overflow: "hidden",
422
462
  }
423
463
  : {})), { margin: 0, padding: 0 }), style);
424
- // ── Render with dangerouslySetInnerHTML (animation variants) ──────────────
464
+ // ── Render: animation path (dangerouslySetInnerHTML) ──────────────────────
425
465
  if (heroHTML !== null) {
426
- return (jsxRuntime.jsx(Tag
427
- // key forces a fresh DOM node when animation changes → keyframe re-fires
428
- , Object.assign({ ref: ref, className: [animClass, className].filter(Boolean).join(" "), style: computedStyle, dangerouslySetInnerHTML: { __html: heroHTML } }, rest), animation));
466
+ return (jsxRuntime.jsx(Tag, Object.assign({ ref: ref, className: [animClass, className].filter(Boolean).join(" "), style: computedStyle, dangerouslySetInnerHTML: { __html: heroHTML } }, rest), animation));
429
467
  }
430
- // ── Render children normally ──────────────────────────────────────────────
431
- return (jsxRuntime.jsx(Tag, Object.assign({ ref: ref, className: className, style: computedStyle }, rest, { children: children })));
468
+ // ── Render: standard path (real React children with em styles) ────────────
469
+ const processedChildren = isHero
470
+ ? renderChildrenWithEmStyles(children, italic, accentColor, font)
471
+ : children;
472
+ return (jsxRuntime.jsx(Tag, Object.assign({ ref: ref, className: className, style: computedStyle }, rest, { children: processedChildren })));
432
473
  };
433
474
 
434
475
  exports.GOOGLE_FONTS = GOOGLE_FONTS;
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../node_modules/tslib/tslib.es6.js","../../fonts.ts","../../animation.ts","../../Typography.tsx"],"sourcesContent":["/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise, SuppressedError, Symbol, Iterator */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\r\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\r\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\r\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\r\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\r\n var _, done = false;\r\n for (var i = decorators.length - 1; i >= 0; i--) {\r\n var context = {};\r\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\r\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\r\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\r\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\r\n if (kind === \"accessor\") {\r\n if (result === void 0) continue;\r\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\r\n if (_ = accept(result.get)) descriptor.get = _;\r\n if (_ = accept(result.set)) descriptor.set = _;\r\n if (_ = accept(result.init)) initializers.unshift(_);\r\n }\r\n else if (_ = accept(result)) {\r\n if (kind === \"field\") initializers.unshift(_);\r\n else descriptor[key] = _;\r\n }\r\n }\r\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\r\n done = true;\r\n};\r\n\r\nexport function __runInitializers(thisArg, initializers, value) {\r\n var useValue = arguments.length > 2;\r\n for (var i = 0; i < initializers.length; i++) {\r\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\r\n }\r\n return useValue ? value : void 0;\r\n};\r\n\r\nexport function __propKey(x) {\r\n return typeof x === \"symbol\" ? x : \"\".concat(x);\r\n};\r\n\r\nexport function __setFunctionName(f, name, prefix) {\r\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\r\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\r\n};\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\r\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = Object.create((typeof AsyncIterator === \"function\" ? AsyncIterator : Object).prototype), verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\r\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nvar ownKeys = function(o) {\r\n ownKeys = Object.getOwnPropertyNames || function (o) {\r\n var ar = [];\r\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\r\n return ar;\r\n };\r\n return ownKeys(o);\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n\r\nexport function __addDisposableResource(env, value, async) {\r\n if (value !== null && value !== void 0) {\r\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\r\n var dispose, inner;\r\n if (async) {\r\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\r\n dispose = value[Symbol.asyncDispose];\r\n }\r\n if (dispose === void 0) {\r\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\r\n dispose = value[Symbol.dispose];\r\n if (async) inner = dispose;\r\n }\r\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\r\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\r\n env.stack.push({ value: value, dispose: dispose, async: async });\r\n }\r\n else if (async) {\r\n env.stack.push({ async: true });\r\n }\r\n return value;\r\n\r\n}\r\n\r\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\r\n var e = new Error(message);\r\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\r\n};\r\n\r\nexport function __disposeResources(env) {\r\n function fail(e) {\r\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\r\n env.hasError = true;\r\n }\r\n var r, s = 0;\r\n function next() {\r\n while (r = env.stack.pop()) {\r\n try {\r\n if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);\r\n if (r.dispose) {\r\n var result = r.dispose.call(r.value);\r\n if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\r\n }\r\n else s |= 1;\r\n }\r\n catch (e) {\r\n fail(e);\r\n }\r\n }\r\n if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();\r\n if (env.hasError) throw env.error;\r\n }\r\n return next();\r\n}\r\n\r\nexport function __rewriteRelativeImportExtension(path, preserveJsx) {\r\n if (typeof path === \"string\" && /^\\.\\.?\\//.test(path)) {\r\n return path.replace(/\\.(tsx)$|((?:\\.d)?)((?:\\.[^./]+?)?)\\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {\r\n return tsx ? preserveJsx ? \".jsx\" : \".js\" : d && (!ext || !cm) ? m : (d + ext + \".\" + cm.toLowerCase() + \"js\");\r\n });\r\n }\r\n return path;\r\n}\r\n\r\nexport default {\r\n __extends: __extends,\r\n __assign: __assign,\r\n __rest: __rest,\r\n __decorate: __decorate,\r\n __param: __param,\r\n __esDecorate: __esDecorate,\r\n __runInitializers: __runInitializers,\r\n __propKey: __propKey,\r\n __setFunctionName: __setFunctionName,\r\n __metadata: __metadata,\r\n __awaiter: __awaiter,\r\n __generator: __generator,\r\n __createBinding: __createBinding,\r\n __exportStar: __exportStar,\r\n __values: __values,\r\n __read: __read,\r\n __spread: __spread,\r\n __spreadArrays: __spreadArrays,\r\n __spreadArray: __spreadArray,\r\n __await: __await,\r\n __asyncGenerator: __asyncGenerator,\r\n __asyncDelegator: __asyncDelegator,\r\n __asyncValues: __asyncValues,\r\n __makeTemplateObject: __makeTemplateObject,\r\n __importStar: __importStar,\r\n __importDefault: __importDefault,\r\n __classPrivateFieldGet: __classPrivateFieldGet,\r\n __classPrivateFieldSet: __classPrivateFieldSet,\r\n __classPrivateFieldIn: __classPrivateFieldIn,\r\n __addDisposableResource: __addDisposableResource,\r\n __disposeResources: __disposeResources,\r\n __rewriteRelativeImportExtension: __rewriteRelativeImportExtension,\r\n};\r\n","/**\n * A curated list of popular Google Fonts.\n * Pass any valid Google Font name to the `font` prop — if it's in this list,\n * it will be auto-injected via a <link> tag. For unlisted fonts, add them here\n * or import them manually in your project.\n */\nexport const GOOGLE_FONTS: string[] = [\n // Serif\n \"Playfair Display\",\n \"Merriweather\",\n \"Lora\",\n \"EB Garamond\",\n \"Libre Baskerville\",\n \"Cormorant Garamond\",\n \"DM Serif Display\",\n \"Crimson Text\",\n \"Source Serif 4\",\n \"Fraunces\",\n\n // Sans-serif\n \"Inter\",\n \"Roboto\",\n \"Open Sans\",\n \"Nunito\",\n \"Poppins\",\n \"Raleway\",\n \"Outfit\",\n \"DM Sans\",\n \"Manrope\",\n \"Plus Jakarta Sans\",\n \"Figtree\",\n \"Syne\",\n \"Albert Sans\",\n\n // Display / Expressive\n \"Bebas Neue\",\n \"Oswald\",\n \"Anton\",\n \"Barlow Condensed\",\n \"Righteous\",\n \"Abril Fatface\",\n \"Dela Gothic One\",\n \"Space Grotesk\",\n \"Unbounded\",\n \"Big Shoulders Display\",\n\n // Mono\n \"JetBrains Mono\",\n \"Fira Code\",\n \"Source Code Pro\",\n \"Space Mono\",\n \"IBM Plex Mono\",\n];\n\nconst injectedFonts = new Set<string>();\n\n/**\n * Builds a Google Fonts URL for a given font family.\n * Requests weights 300, 400, 500, 600, 700, 800 — italic variants included.\n */\nexport function buildFontUrl(fontFamily: string): string {\n const encoded = fontFamily.replace(/ /g, \"+\");\n return `https://fonts.googleapis.com/css2?family=${encoded}:ital,wght@0,300;0,400;0,500;0,600;0,700;0,800;1,400;1,700&display=swap`;\n}\n\n/**\n * Injects a Google Fonts <link> into <head> once per unique URL.\n * Safe to call multiple times — deduped via a Set.\n */\nexport function injectFont(url: string): void {\n if (typeof document === \"undefined\") return; // SSR guard\n if (injectedFonts.has(url)) return;\n\n const link = document.createElement(\"link\");\n link.rel = \"stylesheet\";\n link.href = url;\n document.head.appendChild(link);\n injectedFonts.add(url);\n}\n\n/**\n * Pre-load a set of fonts eagerly (e.g. at app root).\n * Usage: preloadFonts([\"Playfair Display\", \"Inter\"])\n */\nexport function preloadFonts(families: string[]): void {\n families.forEach((f) => {\n if (GOOGLE_FONTS.includes(f)) {\n injectFont(buildFontUrl(f));\n } else {\n console.warn(\n `[@edwinvakayil/calligraphy] \"${f}\" is not in the bundled GOOGLE_FONTS list. ` +\n `Add it to the list or import it manually.`\n );\n }\n });\n}","import { HeroAnimation } from \"./types\";\n\nconst STYLE_ID = \"rts-hero-animations\";\n\nconst CSS = `\n@keyframes rts-rise{from{opacity:0;transform:translateY(32px)}to{opacity:1;transform:translateY(0)}}\n@keyframes rts-clip{from{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0 0% 0 0)}}\n@keyframes rts-pop{0%{opacity:0;transform:scale(0.75)}60%{opacity:1;transform:scale(1.04)}100%{transform:scale(1)}}\n@keyframes rts-blur{from{opacity:0;filter:blur(14px);transform:scale(1.04)}to{opacity:1;filter:blur(0);transform:scale(1)}}\n@keyframes rts-flip{from{opacity:0;transform:perspective(600px) rotateX(30deg) translateY(20px)}to{opacity:1;transform:perspective(600px) rotateX(0) translateY(0)}}\n@keyframes rts-swipe{from{opacity:0;transform:translateX(60px)}to{opacity:1;transform:translateX(0)}}\n@keyframes rts-bounce{0%{opacity:0;transform:translateY(-60px)}60%{opacity:1;transform:translateY(10px)}80%{transform:translateY(-5px)}100%{transform:translateY(0)}}\n@keyframes rts-type{from{width:0}to{width:100%}}\n@keyframes rts-blink{50%{border-color:transparent}}\n@keyframes rts-word-rise{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}\n@keyframes rts-letter-in{from{opacity:0;transform:translateX(-16px) rotate(-4deg)}to{opacity:1;transform:none}}\n\n.rts-rise { animation: rts-rise 0.9s cubic-bezier(0.16,1,0.3,1) both }\n.rts-clip { animation: rts-clip 1.1s cubic-bezier(0.77,0,0.18,1) both }\n.rts-pop { animation: rts-pop 0.7s cubic-bezier(0.34,1.56,0.64,1) both }\n.rts-blur { animation: rts-blur 1s cubic-bezier(0.16,1,0.3,1) both }\n.rts-flip { animation: rts-flip 0.9s cubic-bezier(0.16,1,0.3,1) both; transform-origin: center bottom }\n.rts-swipe { animation: rts-swipe 0.8s cubic-bezier(0.16,1,0.3,1) both }\n.rts-bounce { animation: rts-bounce 0.9s cubic-bezier(0.36,0.07,0.19,0.97) both }\n.rts-typewriter{ overflow: hidden; white-space: nowrap; border-right: 2px solid currentColor; width: 0; animation: rts-type 1.6s steps(22,end) both, rts-blink 0.7s step-end 1.6s 3 }\n.rts-word { display: inline-block; opacity: 0; transform: translateY(24px); animation: rts-word-rise 0.7s cubic-bezier(0.16,1,0.3,1) both }\n.rts-letter { display: inline-block; opacity: 0; transform: translateX(-16px) rotate(-4deg); animation: rts-letter-in 0.5s cubic-bezier(0.16,1,0.3,1) both }\n`;\n\nexport function injectAnimationStyles(): void {\n if (typeof document === \"undefined\") return;\n if (document.getElementById(STYLE_ID)) return;\n const style = document.createElement(\"style\");\n style.id = STYLE_ID;\n style.textContent = CSS;\n document.head.appendChild(style);\n}\n\nexport function getAnimationClass(animation: HeroAnimation): string {\n const map: Record<HeroAnimation, string> = {\n rise: \"rts-rise\",\n clip: \"rts-clip\",\n pop: \"rts-pop\",\n blur: \"rts-blur\",\n flip: \"rts-flip\",\n swipe: \"rts-swipe\",\n bounce: \"rts-bounce\",\n typewriter: \"rts-typewriter\",\n stagger: \"\",\n letters: \"\",\n };\n return map[animation] ?? \"\";\n}\n\n/**\n * Wraps each word in an animated span.\n * <em> tokens are preserved as-is in the HTML — Typography's useEffect\n * will apply inline styles to them after mount.\n */\nexport function buildStaggerHTML(html: string): string {\n const tokens = html.match(/(<em>[\\s\\S]*?<\\/em>|[^\\s]+)/g) ?? [];\n return tokens\n .map((tok, i) => {\n const delay = (i * 0.07).toFixed(2);\n if (tok.startsWith(\"<em>\")) {\n // Wrap the inner text in the animated span, keep <em> outside\n const inner = tok.slice(4, -5);\n return `<em><span class=\"rts-word\" style=\"animation-delay:${delay}s\">${inner}</span></em>`;\n }\n return `<span class=\"rts-word\" style=\"animation-delay:${delay}s\">${tok}</span>`;\n })\n .join(\" \");\n}\n\n/**\n * Wraps each character in an animated span.\n * <em> tags are preserved in the output — Typography's useEffect applies\n * the actual italic/non-italic inline styles after the DOM is ready.\n */\nexport function buildLettersHTML(html: string): string {\n const result: string[] = [];\n let inEm = false;\n let delay = 0;\n const step = 0.04;\n let i = 0;\n\n while (i < html.length) {\n if (html.startsWith(\"<em>\", i)) { inEm = true; i += 4; continue; }\n if (html.startsWith(\"</em>\", i)) { inEm = false; i += 5; continue; }\n\n const ch = html[i];\n if (ch === \" \") { result.push(\" \"); i++; continue; }\n\n const span = `<span class=\"rts-letter\" style=\"animation-delay:${delay.toFixed(2)}s\">${ch}</span>`;\n // Preserve <em> wrapper in DOM — styles applied by useEffect\n result.push(inEm ? `<em>${span}</em>` : span);\n delay += step;\n i++;\n }\n\n return result.join(\"\");\n}","import React, { CSSProperties, Children, isValidElement, useRef, useEffect } from \"react\";\nimport { TypographyProps, VariantTagMap, VariantStyleMap } from \"./types\";\nimport { GOOGLE_FONTS, buildFontUrl, injectFont } from \"./fonts\";\nimport {\n injectAnimationStyles,\n getAnimationClass,\n buildStaggerHTML,\n buildLettersHTML,\n} from \"./animation\";\n\n// ─── Static maps ─────────────────────────────────────────────────────────────\n\nconst variantTagMap: VariantTagMap = {\n Display: \"h1\",\n H1: \"h1\",\n H2: \"h2\",\n H3: \"h3\",\n H4: \"h4\",\n H5: \"h5\",\n H6: \"h6\",\n Subheading: \"h6\",\n Overline: \"span\",\n Body: \"p\",\n Label: \"label\",\n Caption: \"span\",\n};\n\nconst variantStyleMap: VariantStyleMap = {\n Display: {\n fontSize: \"clamp(2.5rem, 6vw, 5rem)\",\n fontWeight: 800,\n lineHeight: 1.05,\n letterSpacing: \"-0.03em\",\n },\n H1: {\n fontSize: \"clamp(2rem, 4vw, 3rem)\",\n fontWeight: 700,\n lineHeight: 1.1,\n letterSpacing: \"-0.02em\",\n },\n H2: {\n fontSize: \"clamp(1.5rem, 3vw, 2.25rem)\",\n fontWeight: 700,\n lineHeight: 1.2,\n letterSpacing: \"-0.015em\",\n },\n H3: {\n fontSize: \"clamp(1.25rem, 2.5vw, 1.75rem)\",\n fontWeight: 600,\n lineHeight: 1.25,\n letterSpacing: \"-0.01em\",\n },\n H4: {\n fontSize: \"clamp(1.1rem, 2vw, 1.375rem)\",\n fontWeight: 600,\n lineHeight: 1.3,\n letterSpacing: \"-0.005em\",\n },\n H5: {\n fontSize: \"clamp(1rem, 1.5vw, 1.125rem)\",\n fontWeight: 600,\n lineHeight: 1.35,\n letterSpacing: \"0em\",\n },\n H6: {\n fontSize: \"1rem\",\n fontWeight: 600,\n lineHeight: 1.4,\n letterSpacing: \"0em\",\n },\n Subheading: {\n fontSize: \"1.125rem\",\n fontWeight: 500,\n lineHeight: 1.5,\n letterSpacing: \"0.005em\",\n },\n Overline: {\n fontSize: \"0.6875rem\",\n fontWeight: 700,\n lineHeight: 1.6,\n letterSpacing: \"0.12em\",\n textTransform: \"uppercase\" as CSSProperties[\"textTransform\"],\n },\n Body: {\n fontSize: \"1rem\",\n fontWeight: 400,\n lineHeight: 1.7,\n letterSpacing: \"0.01em\",\n },\n Label: {\n fontSize: \"0.875rem\",\n fontWeight: 500,\n lineHeight: 1.5,\n letterSpacing: \"0.02em\",\n },\n Caption: {\n fontSize: \"0.75rem\",\n fontWeight: 400,\n lineHeight: 1.6,\n letterSpacing: \"0.03em\",\n },\n};\n\n// ─── Instrument Serif font URL ───────────────────────────────────────────────\n\nconst INSTRUMENT_SERIF_URL =\n \"https://fonts.googleapis.com/css2?family=Instrument+Serif:ital@0;1&display=swap\";\n\n// ─── Helpers ─────────────────────────────────────────────────────────────────\n\n/**\n * Serialise React children to a plain HTML string.\n * Handles: strings, <em>text</em> elements.\n */\nfunction childrenToHTML(children: React.ReactNode): string {\n return (\n Children.map(children, (child) => {\n if (typeof child === \"string\" || typeof child === \"number\") {\n return String(child);\n }\n if (isValidElement(child) && child.type === \"em\") {\n const inner =\n typeof child.props.children === \"string\" ? child.props.children : \"\";\n return `<em>${inner}</em>`;\n }\n return \"\";\n })?.join(\"\") ?? \"\"\n );\n}\n\n/**\n * Walk the serialised HTML and inject inline styles on every <em> span\n * so italic rendering is driven 100% by inline styles — no CSS specificity\n * battles, works regardless of injection order.\n */\nfunction applyEmStyles(\n container: HTMLElement,\n italic: boolean,\n accentColor: string,\n headingFont?: string\n): void {\n const ems = container.querySelectorAll<HTMLElement>(\"em, em span\");\n ems.forEach((el) => {\n if (italic) {\n el.style.fontFamily = \"'Instrument Serif', serif\";\n el.style.fontStyle = \"italic\";\n el.style.fontWeight = \"400\";\n el.style.color = accentColor;\n } else {\n el.style.fontFamily = headingFont ? `'${headingFont}', sans-serif` : \"inherit\";\n el.style.fontStyle = \"normal\";\n el.style.fontWeight = \"inherit\";\n el.style.color = \"inherit\";\n }\n });\n}\n\n// ─── Component ───────────────────────────────────────────────────────────────\n\nexport const Typography: React.FC<TypographyProps> = ({\n variant = \"Body\",\n font,\n color,\n align,\n className,\n style,\n children,\n as,\n truncate,\n maxLines,\n animation,\n italic = false,\n accentColor = \"#c8b89a\",\n ...rest\n}) => {\n const isHero = variant === \"Display\" || variant === \"H1\";\n const ref = useRef<HTMLElement>(null);\n\n // Inject Google Font\n if (font && GOOGLE_FONTS.includes(font)) {\n injectFont(buildFontUrl(font));\n }\n\n // Inject Instrument Serif for italic accent\n if (isHero && italic) {\n injectFont(INSTRUMENT_SERIF_URL);\n }\n\n // Inject animation keyframe stylesheet once\n if (animation && isHero) {\n injectAnimationStyles();\n }\n\n // After every render, re-apply inline styles on <em> elements.\n // This is the fix for italic toggle: no CSS class needed, just DOM walk.\n useEffect(() => {\n if (!isHero || !ref.current) return;\n applyEmStyles(ref.current, italic, accentColor, font);\n });\n\n const Tag = (as ?? variantTagMap[variant]) as React.ElementType;\n\n // ── Compute animation class + inner HTML ──────────────────────────────────\n\n let animClass = \"\";\n let heroHTML: string | null = null;\n\n if (animation && isHero) {\n const rawHTML = childrenToHTML(children);\n\n if (animation === \"stagger\") {\n heroHTML = buildStaggerHTML(rawHTML);\n } else if (animation === \"letters\") {\n heroHTML = buildLettersHTML(rawHTML);\n } else {\n heroHTML = rawHTML;\n animClass = getAnimationClass(animation);\n }\n }\n\n // ── Computed styles ───────────────────────────────────────────────────────\n\n const computedStyle: CSSProperties = {\n ...variantStyleMap[variant],\n ...(font ? { fontFamily: `'${font}', sans-serif` } : {}),\n ...(color ? { color } : {}),\n ...(align ? { textAlign: align } : {}),\n ...(truncate\n ? { overflow: \"hidden\", textOverflow: \"ellipsis\", whiteSpace: \"nowrap\" }\n : {}),\n ...(maxLines && !truncate\n ? {\n display: \"-webkit-box\",\n WebkitLineClamp: maxLines,\n WebkitBoxOrient: \"vertical\" as CSSProperties[\"WebkitBoxOrient\"],\n overflow: \"hidden\",\n }\n : {}),\n margin: 0,\n padding: 0,\n ...style,\n };\n\n // ── Render with dangerouslySetInnerHTML (animation variants) ──────────────\n\n if (heroHTML !== null) {\n return (\n <Tag\n // key forces a fresh DOM node when animation changes → keyframe re-fires\n key={animation}\n ref={ref}\n className={[animClass, className].filter(Boolean).join(\" \")}\n style={computedStyle}\n dangerouslySetInnerHTML={{ __html: heroHTML }}\n {...rest}\n />\n );\n }\n\n // ── Render children normally ──────────────────────────────────────────────\n\n return (\n <Tag\n ref={ref}\n className={className}\n style={computedStyle}\n {...rest}\n >\n {children}\n </Tag>\n );\n};\n\nexport default Typography;"],"names":["Children","isValidElement","useRef","useEffect","_jsx"],"mappings":"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","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"index.js","sources":["../node_modules/tslib/tslib.es6.js","../../fonts.ts","../../animation.ts","../../Typography.tsx"],"sourcesContent":["/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise, SuppressedError, Symbol, Iterator */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\r\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\r\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\r\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\r\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\r\n var _, done = false;\r\n for (var i = decorators.length - 1; i >= 0; i--) {\r\n var context = {};\r\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\r\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\r\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\r\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\r\n if (kind === \"accessor\") {\r\n if (result === void 0) continue;\r\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\r\n if (_ = accept(result.get)) descriptor.get = _;\r\n if (_ = accept(result.set)) descriptor.set = _;\r\n if (_ = accept(result.init)) initializers.unshift(_);\r\n }\r\n else if (_ = accept(result)) {\r\n if (kind === \"field\") initializers.unshift(_);\r\n else descriptor[key] = _;\r\n }\r\n }\r\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\r\n done = true;\r\n};\r\n\r\nexport function __runInitializers(thisArg, initializers, value) {\r\n var useValue = arguments.length > 2;\r\n for (var i = 0; i < initializers.length; i++) {\r\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\r\n }\r\n return useValue ? value : void 0;\r\n};\r\n\r\nexport function __propKey(x) {\r\n return typeof x === \"symbol\" ? x : \"\".concat(x);\r\n};\r\n\r\nexport function __setFunctionName(f, name, prefix) {\r\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\r\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\r\n};\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\r\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = Object.create((typeof AsyncIterator === \"function\" ? AsyncIterator : Object).prototype), verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\r\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nvar ownKeys = function(o) {\r\n ownKeys = Object.getOwnPropertyNames || function (o) {\r\n var ar = [];\r\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\r\n return ar;\r\n };\r\n return ownKeys(o);\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n\r\nexport function __addDisposableResource(env, value, async) {\r\n if (value !== null && value !== void 0) {\r\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\r\n var dispose, inner;\r\n if (async) {\r\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\r\n dispose = value[Symbol.asyncDispose];\r\n }\r\n if (dispose === void 0) {\r\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\r\n dispose = value[Symbol.dispose];\r\n if (async) inner = dispose;\r\n }\r\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\r\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\r\n env.stack.push({ value: value, dispose: dispose, async: async });\r\n }\r\n else if (async) {\r\n env.stack.push({ async: true });\r\n }\r\n return value;\r\n\r\n}\r\n\r\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\r\n var e = new Error(message);\r\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\r\n};\r\n\r\nexport function __disposeResources(env) {\r\n function fail(e) {\r\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\r\n env.hasError = true;\r\n }\r\n var r, s = 0;\r\n function next() {\r\n while (r = env.stack.pop()) {\r\n try {\r\n if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);\r\n if (r.dispose) {\r\n var result = r.dispose.call(r.value);\r\n if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\r\n }\r\n else s |= 1;\r\n }\r\n catch (e) {\r\n fail(e);\r\n }\r\n }\r\n if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();\r\n if (env.hasError) throw env.error;\r\n }\r\n return next();\r\n}\r\n\r\nexport function __rewriteRelativeImportExtension(path, preserveJsx) {\r\n if (typeof path === \"string\" && /^\\.\\.?\\//.test(path)) {\r\n return path.replace(/\\.(tsx)$|((?:\\.d)?)((?:\\.[^./]+?)?)\\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {\r\n return tsx ? preserveJsx ? \".jsx\" : \".js\" : d && (!ext || !cm) ? m : (d + ext + \".\" + cm.toLowerCase() + \"js\");\r\n });\r\n }\r\n return path;\r\n}\r\n\r\nexport default {\r\n __extends: __extends,\r\n __assign: __assign,\r\n __rest: __rest,\r\n __decorate: __decorate,\r\n __param: __param,\r\n __esDecorate: __esDecorate,\r\n __runInitializers: __runInitializers,\r\n __propKey: __propKey,\r\n __setFunctionName: __setFunctionName,\r\n __metadata: __metadata,\r\n __awaiter: __awaiter,\r\n __generator: __generator,\r\n __createBinding: __createBinding,\r\n __exportStar: __exportStar,\r\n __values: __values,\r\n __read: __read,\r\n __spread: __spread,\r\n __spreadArrays: __spreadArrays,\r\n __spreadArray: __spreadArray,\r\n __await: __await,\r\n __asyncGenerator: __asyncGenerator,\r\n __asyncDelegator: __asyncDelegator,\r\n __asyncValues: __asyncValues,\r\n __makeTemplateObject: __makeTemplateObject,\r\n __importStar: __importStar,\r\n __importDefault: __importDefault,\r\n __classPrivateFieldGet: __classPrivateFieldGet,\r\n __classPrivateFieldSet: __classPrivateFieldSet,\r\n __classPrivateFieldIn: __classPrivateFieldIn,\r\n __addDisposableResource: __addDisposableResource,\r\n __disposeResources: __disposeResources,\r\n __rewriteRelativeImportExtension: __rewriteRelativeImportExtension,\r\n};\r\n","/**\n * A curated list of popular Google Fonts.\n * Pass any valid Google Font name to the `font` prop — if it's in this list,\n * it will be auto-injected via a <link> tag. For unlisted fonts, add them here\n * or import them manually in your project.\n */\nexport const GOOGLE_FONTS: string[] = [\n // Serif\n \"Playfair Display\",\n \"Merriweather\",\n \"Lora\",\n \"EB Garamond\",\n \"Libre Baskerville\",\n \"Cormorant Garamond\",\n \"DM Serif Display\",\n \"Crimson Text\",\n \"Source Serif 4\",\n \"Fraunces\",\n\n // Sans-serif\n \"Inter\",\n \"Roboto\",\n \"Open Sans\",\n \"Nunito\",\n \"Poppins\",\n \"Raleway\",\n \"Outfit\",\n \"DM Sans\",\n \"Manrope\",\n \"Plus Jakarta Sans\",\n \"Figtree\",\n \"Syne\",\n \"Albert Sans\",\n\n // Display / Expressive\n \"Bebas Neue\",\n \"Oswald\",\n \"Anton\",\n \"Barlow Condensed\",\n \"Righteous\",\n \"Abril Fatface\",\n \"Dela Gothic One\",\n \"Space Grotesk\",\n \"Unbounded\",\n \"Big Shoulders Display\",\n\n // Mono\n \"JetBrains Mono\",\n \"Fira Code\",\n \"Source Code Pro\",\n \"Space Mono\",\n \"IBM Plex Mono\",\n];\n\nconst injectedFonts = new Set<string>();\n\n/**\n * Builds a Google Fonts URL for a given font family.\n * Requests weights 300, 400, 500, 600, 700, 800 — italic variants included.\n */\nexport function buildFontUrl(fontFamily: string): string {\n const encoded = fontFamily.replace(/ /g, \"+\");\n return `https://fonts.googleapis.com/css2?family=${encoded}:ital,wght@0,300;0,400;0,500;0,600;0,700;0,800;1,400;1,700&display=swap`;\n}\n\n/**\n * Injects a Google Fonts <link> into <head> once per unique URL.\n * Safe to call multiple times — deduped via a Set.\n */\nexport function injectFont(url: string): void {\n if (typeof document === \"undefined\") return; // SSR guard\n if (injectedFonts.has(url)) return;\n\n const link = document.createElement(\"link\");\n link.rel = \"stylesheet\";\n link.href = url;\n document.head.appendChild(link);\n injectedFonts.add(url);\n}\n\n/**\n * Pre-load a set of fonts eagerly (e.g. at app root).\n * Usage: preloadFonts([\"Playfair Display\", \"Inter\"])\n */\nexport function preloadFonts(families: string[]): void {\n families.forEach((f) => {\n if (GOOGLE_FONTS.includes(f)) {\n injectFont(buildFontUrl(f));\n } else {\n console.warn(\n `[@edwinvakayil/calligraphy] \"${f}\" is not in the bundled GOOGLE_FONTS list. ` +\n `Add it to the list or import it manually.`\n );\n }\n });\n}","import { HeroAnimation } from \"./types\";\n\nconst STYLE_ID = \"rts-hero-animations\";\n\nconst CSS = `\n@keyframes rts-rise{from{opacity:0;transform:translateY(32px)}to{opacity:1;transform:translateY(0)}}\n@keyframes rts-clip{from{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0 0% 0 0)}}\n@keyframes rts-pop{0%{opacity:0;transform:scale(0.75)}60%{opacity:1;transform:scale(1.04)}100%{transform:scale(1)}}\n@keyframes rts-blur{from{opacity:0;filter:blur(14px);transform:scale(1.04)}to{opacity:1;filter:blur(0);transform:scale(1)}}\n@keyframes rts-flip{from{opacity:0;transform:perspective(600px) rotateX(30deg) translateY(20px)}to{opacity:1;transform:perspective(600px) rotateX(0) translateY(0)}}\n@keyframes rts-swipe{from{opacity:0;transform:translateX(60px)}to{opacity:1;transform:translateX(0)}}\n@keyframes rts-bounce{0%{opacity:0;transform:translateY(-60px)}60%{opacity:1;transform:translateY(10px)}80%{transform:translateY(-5px)}100%{transform:translateY(0)}}\n@keyframes rts-type{from{width:0}to{width:100%}}\n@keyframes rts-blink{50%{border-color:transparent}}\n@keyframes rts-word-rise{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}\n@keyframes rts-letter-in{from{opacity:0;transform:translateX(-16px) rotate(-4deg)}to{opacity:1;transform:none}}\n\n.rts-rise { animation: rts-rise 0.9s cubic-bezier(0.16,1,0.3,1) both }\n.rts-clip { animation: rts-clip 1.1s cubic-bezier(0.77,0,0.18,1) both }\n.rts-pop { animation: rts-pop 0.7s cubic-bezier(0.34,1.56,0.64,1) both }\n.rts-blur { animation: rts-blur 1s cubic-bezier(0.16,1,0.3,1) both }\n.rts-flip { animation: rts-flip 0.9s cubic-bezier(0.16,1,0.3,1) both; transform-origin: center bottom }\n.rts-swipe { animation: rts-swipe 0.8s cubic-bezier(0.16,1,0.3,1) both }\n.rts-bounce { animation: rts-bounce 0.9s cubic-bezier(0.36,0.07,0.19,0.97) both }\n.rts-typewriter{ overflow: hidden; white-space: nowrap; border-right: 2px solid currentColor; width: 0; animation: rts-type 1.6s steps(22,end) both, rts-blink 0.7s step-end 1.6s 3 }\n.rts-word { display: inline-block; opacity: 0; transform: translateY(24px); animation: rts-word-rise 0.7s cubic-bezier(0.16,1,0.3,1) both }\n.rts-letter { display: inline-block; opacity: 0; transform: translateX(-16px) rotate(-4deg); animation: rts-letter-in 0.5s cubic-bezier(0.16,1,0.3,1) both }\n`;\n\nexport function injectAnimationStyles(): void {\n if (typeof document === \"undefined\") return;\n if (document.getElementById(STYLE_ID)) return;\n const style = document.createElement(\"style\");\n style.id = STYLE_ID;\n style.textContent = CSS;\n document.head.appendChild(style);\n}\n\nexport function getAnimationClass(animation: HeroAnimation): string {\n const map: Record<HeroAnimation, string> = {\n rise: \"rts-rise\",\n clip: \"rts-clip\",\n pop: \"rts-pop\",\n blur: \"rts-blur\",\n flip: \"rts-flip\",\n swipe: \"rts-swipe\",\n bounce: \"rts-bounce\",\n typewriter: \"rts-typewriter\",\n stagger: \"\",\n letters: \"\",\n };\n return map[animation] ?? \"\";\n}\n\n/**\n * Wraps each word in an animated span.\n * <em> tokens are preserved as-is in the HTML — Typography's useEffect\n * will apply inline styles to them after mount.\n */\nexport function buildStaggerHTML(html: string): string {\n const tokens = html.match(/(<em>[\\s\\S]*?<\\/em>|[^\\s]+)/g) ?? [];\n return tokens\n .map((tok, i) => {\n const delay = (i * 0.07).toFixed(2);\n if (tok.startsWith(\"<em>\")) {\n // Wrap the inner text in the animated span, keep <em> outside\n const inner = tok.slice(4, -5);\n return `<em><span class=\"rts-word\" style=\"animation-delay:${delay}s\">${inner}</span></em>`;\n }\n return `<span class=\"rts-word\" style=\"animation-delay:${delay}s\">${tok}</span>`;\n })\n .join(\" \");\n}\n\n/**\n * Wraps each character in an animated span.\n * <em> tags are preserved in the output — Typography's useEffect applies\n * the actual italic/non-italic inline styles after the DOM is ready.\n */\nexport function buildLettersHTML(html: string): string {\n const result: string[] = [];\n let inEm = false;\n let delay = 0;\n const step = 0.04;\n let i = 0;\n\n while (i < html.length) {\n if (html.startsWith(\"<em>\", i)) { inEm = true; i += 4; continue; }\n if (html.startsWith(\"</em>\", i)) { inEm = false; i += 5; continue; }\n\n const ch = html[i];\n if (ch === \" \") { result.push(\" \"); i++; continue; }\n\n const span = `<span class=\"rts-letter\" style=\"animation-delay:${delay.toFixed(2)}s\">${ch}</span>`;\n // Preserve <em> wrapper in DOM — styles applied by useEffect\n result.push(inEm ? `<em>${span}</em>` : span);\n delay += step;\n i++;\n }\n\n return result.join(\"\");\n}","import React, { CSSProperties, Children, isValidElement, useRef, useEffect } from \"react\";\nimport { TypographyProps, VariantTagMap, VariantStyleMap } from \"./types\";\nimport { GOOGLE_FONTS, buildFontUrl, injectFont } from \"./fonts\";\nimport {\n injectAnimationStyles,\n getAnimationClass,\n buildStaggerHTML,\n buildLettersHTML,\n} from \"./animation\";\n\n// ─── Static maps ─────────────────────────────────────────────────────────────\n\nconst variantTagMap: VariantTagMap = {\n Display: \"h1\",\n H1: \"h1\",\n H2: \"h2\",\n H3: \"h3\",\n H4: \"h4\",\n H5: \"h5\",\n H6: \"h6\",\n Subheading: \"h6\",\n Overline: \"span\",\n Body: \"p\",\n Label: \"label\",\n Caption: \"span\",\n};\n\nconst variantStyleMap: VariantStyleMap = {\n Display: {\n fontSize: \"clamp(2.5rem, 6vw, 5rem)\",\n fontWeight: 800,\n lineHeight: 1.05,\n letterSpacing: \"-0.03em\",\n },\n H1: {\n fontSize: \"clamp(2rem, 4vw, 3rem)\",\n fontWeight: 700,\n lineHeight: 1.1,\n letterSpacing: \"-0.02em\",\n },\n H2: {\n fontSize: \"clamp(1.5rem, 3vw, 2.25rem)\",\n fontWeight: 700,\n lineHeight: 1.2,\n letterSpacing: \"-0.015em\",\n },\n H3: {\n fontSize: \"clamp(1.25rem, 2.5vw, 1.75rem)\",\n fontWeight: 600,\n lineHeight: 1.25,\n letterSpacing: \"-0.01em\",\n },\n H4: {\n fontSize: \"clamp(1.1rem, 2vw, 1.375rem)\",\n fontWeight: 600,\n lineHeight: 1.3,\n letterSpacing: \"-0.005em\",\n },\n H5: {\n fontSize: \"clamp(1rem, 1.5vw, 1.125rem)\",\n fontWeight: 600,\n lineHeight: 1.35,\n letterSpacing: \"0em\",\n },\n H6: {\n fontSize: \"1rem\",\n fontWeight: 600,\n lineHeight: 1.4,\n letterSpacing: \"0em\",\n },\n Subheading: {\n fontSize: \"1.125rem\",\n fontWeight: 500,\n lineHeight: 1.5,\n letterSpacing: \"0.005em\",\n },\n Overline: {\n fontSize: \"0.6875rem\",\n fontWeight: 700,\n lineHeight: 1.6,\n letterSpacing: \"0.12em\",\n textTransform: \"uppercase\" as CSSProperties[\"textTransform\"],\n },\n Body: {\n fontSize: \"1rem\",\n fontWeight: 400,\n lineHeight: 1.7,\n letterSpacing: \"0.01em\",\n },\n Label: {\n fontSize: \"0.875rem\",\n fontWeight: 500,\n lineHeight: 1.5,\n letterSpacing: \"0.02em\",\n },\n Caption: {\n fontSize: \"0.75rem\",\n fontWeight: 400,\n lineHeight: 1.6,\n letterSpacing: \"0.03em\",\n },\n};\n\n// ─── Constants ───────────────────────────────────────────────────────────────\n\nconst INSTRUMENT_SERIF_URL =\n \"https://fonts.googleapis.com/css2?family=Instrument+Serif:ital@0;1&display=swap\";\n\n// ─── Helpers ─────────────────────────────────────────────────────────────────\n\n/**\n * Serialise React children → raw HTML string.\n * Preserves <em>text</em> nodes for animation builders.\n */\nfunction childrenToHTML(children: React.ReactNode): string {\n return (\n Children.map(children, (child) => {\n if (typeof child === \"string\" || typeof child === \"number\") {\n return String(child);\n }\n if (isValidElement(child) && child.type === \"em\") {\n const inner =\n typeof child.props.children === \"string\" ? child.props.children : \"\";\n return `<em>${inner}</em>`;\n }\n return \"\";\n })?.join(\"\") ?? \"\"\n );\n}\n\n/**\n * Re-map React children so that <em> elements get explicit inline styles.\n * This is used for the no-animation render path where we keep real React nodes.\n * Inline styles on the <em> itself beat any inherited font-family from the parent.\n */\nfunction renderChildrenWithEmStyles(\n children: React.ReactNode,\n italic: boolean,\n accentColor: string,\n headingFont?: string\n): React.ReactNode {\n const italicStyle: CSSProperties = {\n fontFamily: \"'Instrument Serif', serif\",\n fontStyle: \"italic\",\n fontWeight: 400,\n color: accentColor,\n };\n\n const noItalicStyle: CSSProperties = {\n fontFamily: headingFont ? `'${headingFont}', sans-serif` : \"inherit\",\n fontStyle: \"normal\",\n fontWeight: \"inherit\" as any,\n color: \"inherit\",\n };\n\n return Children.map(children, (child, i) => {\n if (isValidElement(child) && child.type === \"em\") {\n return (\n <em key={i} style={italic ? italicStyle : noItalicStyle}>\n {child.props.children}\n </em>\n );\n }\n return child;\n });\n}\n\n/**\n * After dangerouslySetInnerHTML renders, walk the DOM and apply inline styles\n * to every <em> and <em> > span so the font switch is guaranteed.\n */\nfunction applyEmStylesDOM(\n container: HTMLElement,\n italic: boolean,\n accentColor: string,\n headingFont?: string\n): void {\n // Select both <em> and any animated letter spans nested inside <em>\n container.querySelectorAll<HTMLElement>(\"em\").forEach((el) => {\n if (italic) {\n el.style.fontFamily = \"'Instrument Serif', serif\";\n el.style.fontStyle = \"italic\";\n el.style.fontWeight = \"400\";\n el.style.color = accentColor;\n } else {\n el.style.fontFamily = headingFont ? `'${headingFont}', sans-serif` : \"inherit\";\n el.style.fontStyle = \"normal\";\n el.style.fontWeight = \"inherit\";\n el.style.color = \"inherit\";\n }\n });\n\n // Also style the animated letter spans inside <em> (used by \"letters\" animation)\n container.querySelectorAll<HTMLElement>(\"em > span\").forEach((el) => {\n if (italic) {\n el.style.fontFamily = \"'Instrument Serif', serif\";\n el.style.fontStyle = \"italic\";\n el.style.fontWeight = \"400\";\n el.style.color = accentColor;\n } else {\n el.style.fontFamily = headingFont ? `'${headingFont}', sans-serif` : \"inherit\";\n el.style.fontStyle = \"normal\";\n el.style.fontWeight = \"inherit\";\n el.style.color = \"inherit\";\n }\n });\n}\n\n// ─── Component ───────────────────────────────────────────────────────────────\n\nexport const Typography: React.FC<TypographyProps> = ({\n variant = \"Body\",\n font,\n color,\n align,\n className,\n style,\n children,\n as,\n truncate,\n maxLines,\n animation,\n italic = false,\n accentColor = \"#c8b89a\",\n ...rest\n}) => {\n const isHero = variant === \"Display\" || variant === \"H1\";\n const ref = useRef<HTMLElement>(null);\n\n // Always inject Instrument Serif for hero variants so it's pre-loaded\n // and ready the moment italic is toggled on — no flash of wrong font.\n if (isHero) {\n injectFont(INSTRUMENT_SERIF_URL);\n }\n\n // Inject heading Google Font\n if (font && GOOGLE_FONTS.includes(font)) {\n injectFont(buildFontUrl(font));\n }\n\n // Inject animation keyframes (once, global)\n if (animation && isHero) {\n injectAnimationStyles();\n }\n\n // For animation paths (dangerouslySetInnerHTML), walk the DOM after render\n // and stamp inline styles onto every <em> — guaranteed to beat inheritance.\n useEffect(() => {\n if (!isHero || !animation || !ref.current) return;\n applyEmStylesDOM(ref.current, italic, accentColor, font);\n }, [italic, accentColor, font, animation, isHero]);\n\n const Tag = (as ?? variantTagMap[variant]) as React.ElementType;\n\n // ── Compute animation class + inner HTML ──────────────────────────────────\n\n let animClass = \"\";\n let heroHTML: string | null = null;\n\n if (animation && isHero) {\n const rawHTML = childrenToHTML(children);\n\n if (animation === \"stagger\") {\n heroHTML = buildStaggerHTML(rawHTML);\n } else if (animation === \"letters\") {\n heroHTML = buildLettersHTML(rawHTML);\n } else {\n heroHTML = rawHTML;\n animClass = getAnimationClass(animation);\n }\n }\n\n // ── Computed container styles ─────────────────────────────────────────────\n\n const computedStyle: CSSProperties = {\n ...variantStyleMap[variant],\n ...(font ? { fontFamily: `'${font}', sans-serif` } : {}),\n ...(color ? { color } : {}),\n ...(align ? { textAlign: align } : {}),\n ...(truncate\n ? { overflow: \"hidden\", textOverflow: \"ellipsis\", whiteSpace: \"nowrap\" }\n : {}),\n ...(maxLines && !truncate\n ? {\n display: \"-webkit-box\",\n WebkitLineClamp: maxLines,\n WebkitBoxOrient: \"vertical\" as CSSProperties[\"WebkitBoxOrient\"],\n overflow: \"hidden\",\n }\n : {}),\n margin: 0,\n padding: 0,\n ...style,\n };\n\n // ── Render: animation path (dangerouslySetInnerHTML) ──────────────────────\n\n if (heroHTML !== null) {\n return (\n <Tag\n key={animation}\n ref={ref}\n className={[animClass, className].filter(Boolean).join(\" \")}\n style={computedStyle}\n dangerouslySetInnerHTML={{ __html: heroHTML }}\n {...rest}\n />\n );\n }\n\n // ── Render: standard path (real React children with em styles) ────────────\n\n const processedChildren = isHero\n ? renderChildrenWithEmStyles(children, italic, accentColor, font)\n : children;\n\n return (\n <Tag\n ref={ref}\n className={className}\n style={computedStyle}\n {...rest}\n >\n {processedChildren}\n </Tag>\n );\n};\n\nexport default Typography;"],"names":["Children","isValidElement","_jsx","useRef","useEffect"],"mappings":"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","x_google_ignoreList":[0]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@edwinvakayil/calligraphy",
3
- "version": "1.2.4",
3
+ "version": "1.2.5",
4
4
  "description": "A lightweight React + TypeScript typography component with Google Fonts support. Scale from Display to Caption with a single prop.",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.esm.js",
@@ -47,8 +47,5 @@
47
47
  "repository": {
48
48
  "type": "git",
49
49
  "url": ""
50
- },
51
- "publishConfig": {
52
- "access": "public"
53
50
  }
54
51
  }