@edwinvakayil/calligraphy 1.1.0 → 1.2.1

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/README.md CHANGED
@@ -1,4 +1,4 @@
1
- # react-type-scale
1
+ # @edwinvakayil/calligraphy
2
2
 
3
3
  A lightweight **React + TypeScript** typography component with automatic **Google Fonts** support, **hero entrance animations**, and an **italic accent toggle**.
4
4
 
@@ -2,12 +2,14 @@ import { HeroAnimation } from "./types";
2
2
  export declare function injectAnimationStyles(): void;
3
3
  export declare function getAnimationClass(animation: HeroAnimation): string;
4
4
  /**
5
- * For "stagger" — wraps each word in a span with a staggered delay.
6
- * Preserves <em> tags for italic accent.
5
+ * Wraps each word in an animated span.
6
+ * <em> tokens are preserved as-is in the HTML — Typography's useEffect
7
+ * will apply inline styles to them after mount.
7
8
  */
8
9
  export declare function buildStaggerHTML(html: string): string;
9
10
  /**
10
- * For "letters" — wraps each character in a span with staggered delay.
11
- * Preserves <em> wrapping for italic accent characters.
11
+ * Wraps each character in an animated span.
12
+ * <em> tags are preserved in the output — Typography's useEffect applies
13
+ * the actual italic/non-italic inline styles after the DOM is ready.
12
14
  */
13
- export declare function buildLettersHTML(html: string, italic: boolean): string;
15
+ export declare function buildLettersHTML(html: string): string;
package/dist/index.esm.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { jsx } from 'react/jsx-runtime';
2
- import React from 'react';
2
+ import { useRef, useEffect, Children, isValidElement } from 'react';
3
3
 
4
4
  /******************************************************************************
5
5
  Copyright (c) Microsoft Corporation.
@@ -139,16 +139,16 @@ const CSS = `
139
139
  @keyframes rts-word-rise{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}
140
140
  @keyframes rts-letter-in{from{opacity:0;transform:translateX(-16px) rotate(-4deg)}to{opacity:1;transform:none}}
141
141
 
142
- .rts-rise{animation:rts-rise 0.9s cubic-bezier(0.16,1,0.3,1) both}
143
- .rts-clip{animation:rts-clip 1.1s cubic-bezier(0.77,0,0.18,1) both}
144
- .rts-pop{animation:rts-pop 0.7s cubic-bezier(0.34,1.56,0.64,1) both}
145
- .rts-blur{animation:rts-blur 1s cubic-bezier(0.16,1,0.3,1) both}
146
- .rts-flip{animation:rts-flip 0.9s cubic-bezier(0.16,1,0.3,1) both;transform-origin:center bottom}
147
- .rts-swipe{animation:rts-swipe 0.8s cubic-bezier(0.16,1,0.3,1) both}
148
- .rts-bounce{animation:rts-bounce 0.9s cubic-bezier(0.36,0.07,0.19,0.97) both}
149
- .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}
150
- .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}
151
- .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}
142
+ .rts-rise { animation: rts-rise 0.9s cubic-bezier(0.16,1,0.3,1) both }
143
+ .rts-clip { animation: rts-clip 1.1s cubic-bezier(0.77,0,0.18,1) both }
144
+ .rts-pop { animation: rts-pop 0.7s cubic-bezier(0.34,1.56,0.64,1) both }
145
+ .rts-blur { animation: rts-blur 1s cubic-bezier(0.16,1,0.3,1) both }
146
+ .rts-flip { animation: rts-flip 0.9s cubic-bezier(0.16,1,0.3,1) both; transform-origin: center bottom }
147
+ .rts-swipe { animation: rts-swipe 0.8s cubic-bezier(0.16,1,0.3,1) both }
148
+ .rts-bounce { animation: rts-bounce 0.9s cubic-bezier(0.36,0.07,0.19,0.97) both }
149
+ .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 }
150
+ .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 }
151
+ .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 }
152
152
  `;
153
153
  function injectAnimationStyles() {
154
154
  if (typeof document === "undefined")
@@ -177,34 +177,35 @@ function getAnimationClass(animation) {
177
177
  return (_a = map[animation]) !== null && _a !== void 0 ? _a : "";
178
178
  }
179
179
  /**
180
- * For "stagger" — wraps each word in a span with a staggered delay.
181
- * Preserves <em> tags for italic accent.
180
+ * Wraps each word in an animated span.
181
+ * <em> tokens are preserved as-is in the HTML — Typography's useEffect
182
+ * will apply inline styles to them after mount.
182
183
  */
183
184
  function buildStaggerHTML(html) {
184
185
  var _a;
185
- // Split on spaces but keep <em>...</em> intact as single tokens
186
- const tokens = (_a = html.match(/(<em>.*?<\/em>|[^\s]+)/g)) !== null && _a !== void 0 ? _a : [];
186
+ const tokens = (_a = html.match(/(<em>[\s\S]*?<\/em>|[^\s]+)/g)) !== null && _a !== void 0 ? _a : [];
187
187
  return tokens
188
188
  .map((tok, i) => {
189
189
  const delay = (i * 0.07).toFixed(2);
190
190
  if (tok.startsWith("<em>")) {
191
- return `<em><span class="rts-word" style="animation-delay:${delay}s">${tok.slice(4, -5)}</span></em>`;
191
+ // Wrap the inner text in the animated span, keep <em> outside
192
+ const inner = tok.slice(4, -5);
193
+ return `<em><span class="rts-word" style="animation-delay:${delay}s">${inner}</span></em>`;
192
194
  }
193
195
  return `<span class="rts-word" style="animation-delay:${delay}s">${tok}</span>`;
194
196
  })
195
197
  .join(" ");
196
198
  }
197
199
  /**
198
- * For "letters" — wraps each character in a span with staggered delay.
199
- * Preserves <em> wrapping for italic accent characters.
200
+ * Wraps each character in an animated span.
201
+ * <em> tags are preserved in the output — Typography's useEffect applies
202
+ * the actual italic/non-italic inline styles after the DOM is ready.
200
203
  */
201
- function buildLettersHTML(html, italic) {
202
- // Parse the raw string into char tokens, tracking whether inside <em>
204
+ function buildLettersHTML(html) {
203
205
  const result = [];
204
206
  let inEm = false;
205
207
  let delay = 0;
206
208
  const step = 0.04;
207
- // Simple char-by-char parse
208
209
  let i = 0;
209
210
  while (i < html.length) {
210
211
  if (html.startsWith("<em>", i)) {
@@ -224,7 +225,8 @@ function buildLettersHTML(html, italic) {
224
225
  continue;
225
226
  }
226
227
  const span = `<span class="rts-letter" style="animation-delay:${delay.toFixed(2)}s">${ch}</span>`;
227
- result.push(inEm && italic ? `<em>${span}</em>` : span);
228
+ // Preserve <em> wrapper in DOM — styles applied by useEffect
229
+ result.push(inEm ? `<em>${span}</em>` : span);
228
230
  delay += step;
229
231
  i++;
230
232
  }
@@ -321,83 +323,91 @@ const variantStyleMap = {
321
323
  letterSpacing: "0.03em",
322
324
  },
323
325
  };
324
- // ─── Italic accent style injection ──────────────────────────────────────────
325
- const ITALIC_STYLE_ID = "rts-italic-accent";
326
- const ITALIC_FONT_URL = "https://fonts.googleapis.com/css2?family=Instrument+Serif:ital@0;1&display=swap";
327
- function injectItalicAccentStyle(accentColor) {
328
- if (typeof document === "undefined")
329
- return;
330
- if (document.getElementById(ITALIC_STYLE_ID))
331
- return;
332
- injectFont(ITALIC_FONT_URL);
333
- const style = document.createElement("style");
334
- style.id = ITALIC_STYLE_ID;
335
- style.textContent = `
336
- [data-rts] em {
337
- font-family: 'Instrument Serif', serif;
338
- font-style: italic;
339
- font-weight: 400;
340
- color: ${accentColor};
341
- }
342
- [data-rts-no-italic] em {
343
- font-family: inherit;
344
- font-style: normal;
345
- font-weight: inherit;
346
- color: inherit;
347
- }
348
- `;
349
- document.head.appendChild(style);
326
+ // ─── Instrument Serif font URL ───────────────────────────────────────────────
327
+ const INSTRUMENT_SERIF_URL = "https://fonts.googleapis.com/css2?family=Instrument+Serif:ital@0;1&display=swap";
328
+ // ─── Helpers ─────────────────────────────────────────────────────────────────
329
+ /**
330
+ * Serialise React children to a plain HTML string.
331
+ * Handles: strings, <em>text</em> elements.
332
+ */
333
+ function childrenToHTML(children) {
334
+ var _a, _b;
335
+ return ((_b = (_a = Children.map(children, (child) => {
336
+ if (typeof child === "string" || typeof child === "number") {
337
+ return String(child);
338
+ }
339
+ if (isValidElement(child) && child.type === "em") {
340
+ const inner = typeof child.props.children === "string" ? child.props.children : "";
341
+ return `<em>${inner}</em>`;
342
+ }
343
+ return "";
344
+ })) === null || _a === void 0 ? void 0 : _a.join("")) !== null && _b !== void 0 ? _b : "");
345
+ }
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.
350
+ */
351
+ function applyEmStyles(container, italic, accentColor, headingFont) {
352
+ const ems = container.querySelectorAll("em, em span");
353
+ ems.forEach((el) => {
354
+ if (italic) {
355
+ el.style.fontFamily = "'Instrument Serif', serif";
356
+ el.style.fontStyle = "italic";
357
+ el.style.fontWeight = "400";
358
+ el.style.color = accentColor;
359
+ }
360
+ else {
361
+ el.style.fontFamily = headingFont ? `'${headingFont}', sans-serif` : "inherit";
362
+ el.style.fontStyle = "normal";
363
+ el.style.fontWeight = "inherit";
364
+ el.style.color = "inherit";
365
+ }
366
+ });
350
367
  }
351
368
  // ─── Component ───────────────────────────────────────────────────────────────
352
369
  const Typography = (_a) => {
353
- var _b, _c;
354
370
  var { variant = "Body", font, color, align, className, style, children, as, truncate, maxLines, animation, italic = true, accentColor = "#c8b89a" } = _a, rest = __rest(_a, ["variant", "font", "color", "align", "className", "style", "children", "as", "truncate", "maxLines", "animation", "italic", "accentColor"]);
355
371
  const isHero = variant === "Display" || variant === "H1";
356
- // Inject Google Font if recognised
372
+ const ref = useRef(null);
373
+ // Inject Google Font
357
374
  if (font && GOOGLE_FONTS.includes(font)) {
358
375
  injectFont(buildFontUrl(font));
359
376
  }
360
- // Inject animation keyframes once
377
+ // Inject Instrument Serif for italic accent
378
+ if (isHero && italic) {
379
+ injectFont(INSTRUMENT_SERIF_URL);
380
+ }
381
+ // Inject animation keyframe stylesheet once
361
382
  if (animation && isHero) {
362
383
  injectAnimationStyles();
363
384
  }
364
- // Inject italic accent styles once (always, so toggling italic prop works)
365
- if (isHero) {
366
- injectItalicAccentStyle(accentColor);
367
- }
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.
387
+ useEffect(() => {
388
+ if (!isHero || !ref.current)
389
+ return;
390
+ applyEmStyles(ref.current, italic, accentColor, font);
391
+ });
368
392
  const Tag = (as !== null && as !== void 0 ? as : variantTagMap[variant]);
369
- const baseStyle = variantStyleMap[variant];
370
- // Build animation class + inner HTML for hero variants
393
+ // ── Compute animation class + inner HTML ──────────────────────────────────
371
394
  let animClass = "";
372
395
  let heroHTML = null;
373
396
  if (animation && isHero) {
374
- const rawHTML = typeof children === "string"
375
- ? children
376
- : (_c = (_b = React.Children.map(children, (child) => {
377
- if (typeof child === "string")
378
- return child;
379
- if (React.isValidElement(child) && child.type === "em") {
380
- const text = typeof child.props.children === "string"
381
- ? child.props.children
382
- : "";
383
- return `<em>${text}</em>`;
384
- }
385
- return "";
386
- })) === null || _b === void 0 ? void 0 : _b.join("")) !== null && _c !== void 0 ? _c : "";
397
+ const rawHTML = childrenToHTML(children);
387
398
  if (animation === "stagger") {
388
399
  heroHTML = buildStaggerHTML(rawHTML);
389
- animClass = "";
390
400
  }
391
401
  else if (animation === "letters") {
392
- heroHTML = buildLettersHTML(rawHTML, italic);
393
- animClass = "";
402
+ heroHTML = buildLettersHTML(rawHTML);
394
403
  }
395
404
  else {
396
405
  heroHTML = rawHTML;
397
406
  animClass = getAnimationClass(animation);
398
407
  }
399
408
  }
400
- const computedStyle = Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, baseStyle), (font ? { fontFamily: `'${font}', sans-serif` } : {})), (color ? { color } : {})), (align ? { textAlign: align } : {})), (truncate
409
+ // ── Computed styles ───────────────────────────────────────────────────────
410
+ 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
401
411
  ? { overflow: "hidden", textOverflow: "ellipsis", whiteSpace: "nowrap" }
402
412
  : {})), (maxLines && !truncate
403
413
  ? {
@@ -407,12 +417,14 @@ const Typography = (_a) => {
407
417
  overflow: "hidden",
408
418
  }
409
419
  : {})), { margin: 0, padding: 0 }), style);
410
- const dataAttrs = isHero
411
- ? Object.assign({ "data-rts": "" }, (italic ? {} : { "data-rts-no-italic": "" })) : {};
420
+ // ── Render with dangerouslySetInnerHTML (animation variants) ──────────────
412
421
  if (heroHTML !== null) {
413
- return (jsx(Tag, Object.assign({ className: [animClass, className].filter(Boolean).join(" "), style: computedStyle, dangerouslySetInnerHTML: { __html: heroHTML } }, dataAttrs, rest)));
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));
414
425
  }
415
- return (jsx(Tag, Object.assign({ className: className, style: computedStyle }, dataAttrs, rest, { children: children })));
426
+ // ── Render children normally ──────────────────────────────────────────────
427
+ return (jsx(Tag, Object.assign({ ref: ref, className: className, style: computedStyle }, rest, { children: children })));
416
428
  };
417
429
 
418
430
  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 `[react-type-scale] \"${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 * For \"stagger\" — wraps each word in a span with a staggered delay.\n * Preserves <em> tags for italic accent.\n */\nexport function buildStaggerHTML(html: string): string {\n // Split on spaces but keep <em>...</em> intact as single tokens\n const tokens = html.match(/(<em>.*?<\\/em>|[^\\s]+)/g) ?? [];\n return tokens\n .map((tok, i) => {\n const delay = (i * 0.07).toFixed(2);\n if (tok.startsWith(\"<em>\")) {\n return `<em><span class=\"rts-word\" style=\"animation-delay:${delay}s\">${tok.slice(4, -5)}</span></em>`;\n }\n return `<span class=\"rts-word\" style=\"animation-delay:${delay}s\">${tok}</span>`;\n })\n .join(\" \");\n}\n\n/**\n * For \"letters\" — wraps each character in a span with staggered delay.\n * Preserves <em> wrapping for italic accent characters.\n */\nexport function buildLettersHTML(html: string, italic: boolean): string {\n // Parse the raw string into char tokens, tracking whether inside <em>\n const result: string[] = [];\n let inEm = false;\n let delay = 0;\n const step = 0.04;\n\n // Simple char-by-char parse\n let i = 0;\n while (i < html.length) {\n if (html.startsWith(\"<em>\", i)) {\n inEm = true;\n i += 4;\n continue;\n }\n if (html.startsWith(\"</em>\", i)) {\n inEm = false;\n i += 5;\n continue;\n }\n const ch = html[i];\n if (ch === \" \") {\n result.push(\" \");\n i++;\n continue;\n }\n const span = `<span class=\"rts-letter\" style=\"animation-delay:${delay.toFixed(2)}s\">${ch}</span>`;\n result.push(inEm && italic ? `<em>${span}</em>` : span);\n delay += step;\n i++;\n }\n return result.join(\"\");\n}\n","import React, { CSSProperties, useId } 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// ─── Italic accent style injection ──────────────────────────────────────────\n\nconst ITALIC_STYLE_ID = \"rts-italic-accent\";\nconst ITALIC_FONT_URL =\n \"https://fonts.googleapis.com/css2?family=Instrument+Serif:ital@0;1&display=swap\";\n\nfunction injectItalicAccentStyle(accentColor: string): void {\n if (typeof document === \"undefined\") return;\n if (document.getElementById(ITALIC_STYLE_ID)) return;\n injectFont(ITALIC_FONT_URL);\n const style = document.createElement(\"style\");\n style.id = ITALIC_STYLE_ID;\n style.textContent = `\n [data-rts] em {\n font-family: 'Instrument Serif', serif;\n font-style: italic;\n font-weight: 400;\n color: ${accentColor};\n }\n [data-rts-no-italic] em {\n font-family: inherit;\n font-style: normal;\n font-weight: inherit;\n color: inherit;\n }\n `;\n document.head.appendChild(style);\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 = true,\n accentColor = \"#c8b89a\",\n ...rest\n}) => {\n const isHero = variant === \"Display\" || variant === \"H1\";\n\n // Inject Google Font if recognised\n if (font && GOOGLE_FONTS.includes(font)) {\n injectFont(buildFontUrl(font));\n }\n\n // Inject animation keyframes once\n if (animation && isHero) {\n injectAnimationStyles();\n }\n\n // Inject italic accent styles once (always, so toggling italic prop works)\n if (isHero) {\n injectItalicAccentStyle(accentColor);\n }\n\n const Tag = (as ?? variantTagMap[variant]) as React.ElementType;\n const baseStyle = variantStyleMap[variant];\n\n // Build animation class + inner HTML for hero variants\n let animClass = \"\";\n let heroHTML: string | null = null;\n\n if (animation && isHero) {\n const rawHTML =\n typeof children === \"string\"\n ? children\n : React.Children.map(children, (child) => {\n if (typeof child === \"string\") return child;\n if (React.isValidElement(child) && child.type === \"em\") {\n const text =\n typeof child.props.children === \"string\"\n ? child.props.children\n : \"\";\n return `<em>${text}</em>`;\n }\n return \"\";\n })?.join(\"\") ?? \"\";\n\n if (animation === \"stagger\") {\n heroHTML = buildStaggerHTML(rawHTML);\n animClass = \"\";\n } else if (animation === \"letters\") {\n heroHTML = buildLettersHTML(rawHTML, italic);\n animClass = \"\";\n } else {\n heroHTML = rawHTML;\n animClass = getAnimationClass(animation);\n }\n }\n\n const computedStyle: CSSProperties = {\n ...baseStyle,\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 const dataAttrs = isHero\n ? { \"data-rts\": \"\", ...(italic ? {} : { \"data-rts-no-italic\": \"\" }) }\n : {};\n\n if (heroHTML !== null) {\n return (\n <Tag\n className={[animClass, className].filter(Boolean).join(\" \")}\n style={computedStyle}\n dangerouslySetInnerHTML={{ __html: heroHTML }}\n {...dataAttrs}\n {...rest}\n />\n );\n }\n\n return (\n <Tag\n className={className}\n style={computedStyle}\n {...dataAttrs}\n {...rest}\n >\n {children}\n </Tag>\n );\n};\n\nexport default Typography;\n"],"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 `[react-type-scale] \"${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 = true,\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;\n"],"names":["_jsx"],"mappings":"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","x_google_ignoreList":[0]}
package/dist/index.js CHANGED
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var jsxRuntime = require('react/jsx-runtime');
6
- var React = require('react');
6
+ var react = require('react');
7
7
 
8
8
  /******************************************************************************
9
9
  Copyright (c) Microsoft Corporation.
@@ -143,16 +143,16 @@ const CSS = `
143
143
  @keyframes rts-word-rise{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}
144
144
  @keyframes rts-letter-in{from{opacity:0;transform:translateX(-16px) rotate(-4deg)}to{opacity:1;transform:none}}
145
145
 
146
- .rts-rise{animation:rts-rise 0.9s cubic-bezier(0.16,1,0.3,1) both}
147
- .rts-clip{animation:rts-clip 1.1s cubic-bezier(0.77,0,0.18,1) both}
148
- .rts-pop{animation:rts-pop 0.7s cubic-bezier(0.34,1.56,0.64,1) both}
149
- .rts-blur{animation:rts-blur 1s cubic-bezier(0.16,1,0.3,1) both}
150
- .rts-flip{animation:rts-flip 0.9s cubic-bezier(0.16,1,0.3,1) both;transform-origin:center bottom}
151
- .rts-swipe{animation:rts-swipe 0.8s cubic-bezier(0.16,1,0.3,1) both}
152
- .rts-bounce{animation:rts-bounce 0.9s cubic-bezier(0.36,0.07,0.19,0.97) both}
153
- .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}
154
- .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}
155
- .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}
146
+ .rts-rise { animation: rts-rise 0.9s cubic-bezier(0.16,1,0.3,1) both }
147
+ .rts-clip { animation: rts-clip 1.1s cubic-bezier(0.77,0,0.18,1) both }
148
+ .rts-pop { animation: rts-pop 0.7s cubic-bezier(0.34,1.56,0.64,1) both }
149
+ .rts-blur { animation: rts-blur 1s cubic-bezier(0.16,1,0.3,1) both }
150
+ .rts-flip { animation: rts-flip 0.9s cubic-bezier(0.16,1,0.3,1) both; transform-origin: center bottom }
151
+ .rts-swipe { animation: rts-swipe 0.8s cubic-bezier(0.16,1,0.3,1) both }
152
+ .rts-bounce { animation: rts-bounce 0.9s cubic-bezier(0.36,0.07,0.19,0.97) both }
153
+ .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 }
154
+ .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 }
155
+ .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 }
156
156
  `;
157
157
  function injectAnimationStyles() {
158
158
  if (typeof document === "undefined")
@@ -181,34 +181,35 @@ function getAnimationClass(animation) {
181
181
  return (_a = map[animation]) !== null && _a !== void 0 ? _a : "";
182
182
  }
183
183
  /**
184
- * For "stagger" — wraps each word in a span with a staggered delay.
185
- * Preserves <em> tags for italic accent.
184
+ * Wraps each word in an animated span.
185
+ * <em> tokens are preserved as-is in the HTML — Typography's useEffect
186
+ * will apply inline styles to them after mount.
186
187
  */
187
188
  function buildStaggerHTML(html) {
188
189
  var _a;
189
- // Split on spaces but keep <em>...</em> intact as single tokens
190
- const tokens = (_a = html.match(/(<em>.*?<\/em>|[^\s]+)/g)) !== null && _a !== void 0 ? _a : [];
190
+ const tokens = (_a = html.match(/(<em>[\s\S]*?<\/em>|[^\s]+)/g)) !== null && _a !== void 0 ? _a : [];
191
191
  return tokens
192
192
  .map((tok, i) => {
193
193
  const delay = (i * 0.07).toFixed(2);
194
194
  if (tok.startsWith("<em>")) {
195
- return `<em><span class="rts-word" style="animation-delay:${delay}s">${tok.slice(4, -5)}</span></em>`;
195
+ // Wrap the inner text in the animated span, keep <em> outside
196
+ const inner = tok.slice(4, -5);
197
+ return `<em><span class="rts-word" style="animation-delay:${delay}s">${inner}</span></em>`;
196
198
  }
197
199
  return `<span class="rts-word" style="animation-delay:${delay}s">${tok}</span>`;
198
200
  })
199
201
  .join(" ");
200
202
  }
201
203
  /**
202
- * For "letters" — wraps each character in a span with staggered delay.
203
- * Preserves <em> wrapping for italic accent characters.
204
+ * Wraps each character in an animated span.
205
+ * <em> tags are preserved in the output — Typography's useEffect applies
206
+ * the actual italic/non-italic inline styles after the DOM is ready.
204
207
  */
205
- function buildLettersHTML(html, italic) {
206
- // Parse the raw string into char tokens, tracking whether inside <em>
208
+ function buildLettersHTML(html) {
207
209
  const result = [];
208
210
  let inEm = false;
209
211
  let delay = 0;
210
212
  const step = 0.04;
211
- // Simple char-by-char parse
212
213
  let i = 0;
213
214
  while (i < html.length) {
214
215
  if (html.startsWith("<em>", i)) {
@@ -228,7 +229,8 @@ function buildLettersHTML(html, italic) {
228
229
  continue;
229
230
  }
230
231
  const span = `<span class="rts-letter" style="animation-delay:${delay.toFixed(2)}s">${ch}</span>`;
231
- result.push(inEm && italic ? `<em>${span}</em>` : span);
232
+ // Preserve <em> wrapper in DOM — styles applied by useEffect
233
+ result.push(inEm ? `<em>${span}</em>` : span);
232
234
  delay += step;
233
235
  i++;
234
236
  }
@@ -325,83 +327,91 @@ const variantStyleMap = {
325
327
  letterSpacing: "0.03em",
326
328
  },
327
329
  };
328
- // ─── Italic accent style injection ──────────────────────────────────────────
329
- const ITALIC_STYLE_ID = "rts-italic-accent";
330
- const ITALIC_FONT_URL = "https://fonts.googleapis.com/css2?family=Instrument+Serif:ital@0;1&display=swap";
331
- function injectItalicAccentStyle(accentColor) {
332
- if (typeof document === "undefined")
333
- return;
334
- if (document.getElementById(ITALIC_STYLE_ID))
335
- return;
336
- injectFont(ITALIC_FONT_URL);
337
- const style = document.createElement("style");
338
- style.id = ITALIC_STYLE_ID;
339
- style.textContent = `
340
- [data-rts] em {
341
- font-family: 'Instrument Serif', serif;
342
- font-style: italic;
343
- font-weight: 400;
344
- color: ${accentColor};
345
- }
346
- [data-rts-no-italic] em {
347
- font-family: inherit;
348
- font-style: normal;
349
- font-weight: inherit;
350
- color: inherit;
351
- }
352
- `;
353
- document.head.appendChild(style);
330
+ // ─── Instrument Serif font URL ───────────────────────────────────────────────
331
+ const INSTRUMENT_SERIF_URL = "https://fonts.googleapis.com/css2?family=Instrument+Serif:ital@0;1&display=swap";
332
+ // ─── Helpers ─────────────────────────────────────────────────────────────────
333
+ /**
334
+ * Serialise React children to a plain HTML string.
335
+ * Handles: strings, <em>text</em> elements.
336
+ */
337
+ function childrenToHTML(children) {
338
+ var _a, _b;
339
+ return ((_b = (_a = react.Children.map(children, (child) => {
340
+ if (typeof child === "string" || typeof child === "number") {
341
+ return String(child);
342
+ }
343
+ if (react.isValidElement(child) && child.type === "em") {
344
+ const inner = typeof child.props.children === "string" ? child.props.children : "";
345
+ return `<em>${inner}</em>`;
346
+ }
347
+ return "";
348
+ })) === null || _a === void 0 ? void 0 : _a.join("")) !== null && _b !== void 0 ? _b : "");
349
+ }
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.
354
+ */
355
+ function applyEmStyles(container, italic, accentColor, headingFont) {
356
+ const ems = container.querySelectorAll("em, em span");
357
+ ems.forEach((el) => {
358
+ if (italic) {
359
+ el.style.fontFamily = "'Instrument Serif', serif";
360
+ el.style.fontStyle = "italic";
361
+ el.style.fontWeight = "400";
362
+ el.style.color = accentColor;
363
+ }
364
+ else {
365
+ el.style.fontFamily = headingFont ? `'${headingFont}', sans-serif` : "inherit";
366
+ el.style.fontStyle = "normal";
367
+ el.style.fontWeight = "inherit";
368
+ el.style.color = "inherit";
369
+ }
370
+ });
354
371
  }
355
372
  // ─── Component ───────────────────────────────────────────────────────────────
356
373
  const Typography = (_a) => {
357
- var _b, _c;
358
374
  var { variant = "Body", font, color, align, className, style, children, as, truncate, maxLines, animation, italic = true, accentColor = "#c8b89a" } = _a, rest = __rest(_a, ["variant", "font", "color", "align", "className", "style", "children", "as", "truncate", "maxLines", "animation", "italic", "accentColor"]);
359
375
  const isHero = variant === "Display" || variant === "H1";
360
- // Inject Google Font if recognised
376
+ const ref = react.useRef(null);
377
+ // Inject Google Font
361
378
  if (font && GOOGLE_FONTS.includes(font)) {
362
379
  injectFont(buildFontUrl(font));
363
380
  }
364
- // Inject animation keyframes once
381
+ // Inject Instrument Serif for italic accent
382
+ if (isHero && italic) {
383
+ injectFont(INSTRUMENT_SERIF_URL);
384
+ }
385
+ // Inject animation keyframe stylesheet once
365
386
  if (animation && isHero) {
366
387
  injectAnimationStyles();
367
388
  }
368
- // Inject italic accent styles once (always, so toggling italic prop works)
369
- if (isHero) {
370
- injectItalicAccentStyle(accentColor);
371
- }
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.
391
+ react.useEffect(() => {
392
+ if (!isHero || !ref.current)
393
+ return;
394
+ applyEmStyles(ref.current, italic, accentColor, font);
395
+ });
372
396
  const Tag = (as !== null && as !== void 0 ? as : variantTagMap[variant]);
373
- const baseStyle = variantStyleMap[variant];
374
- // Build animation class + inner HTML for hero variants
397
+ // ── Compute animation class + inner HTML ──────────────────────────────────
375
398
  let animClass = "";
376
399
  let heroHTML = null;
377
400
  if (animation && isHero) {
378
- const rawHTML = typeof children === "string"
379
- ? children
380
- : (_c = (_b = React.Children.map(children, (child) => {
381
- if (typeof child === "string")
382
- return child;
383
- if (React.isValidElement(child) && child.type === "em") {
384
- const text = typeof child.props.children === "string"
385
- ? child.props.children
386
- : "";
387
- return `<em>${text}</em>`;
388
- }
389
- return "";
390
- })) === null || _b === void 0 ? void 0 : _b.join("")) !== null && _c !== void 0 ? _c : "";
401
+ const rawHTML = childrenToHTML(children);
391
402
  if (animation === "stagger") {
392
403
  heroHTML = buildStaggerHTML(rawHTML);
393
- animClass = "";
394
404
  }
395
405
  else if (animation === "letters") {
396
- heroHTML = buildLettersHTML(rawHTML, italic);
397
- animClass = "";
406
+ heroHTML = buildLettersHTML(rawHTML);
398
407
  }
399
408
  else {
400
409
  heroHTML = rawHTML;
401
410
  animClass = getAnimationClass(animation);
402
411
  }
403
412
  }
404
- const computedStyle = Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, baseStyle), (font ? { fontFamily: `'${font}', sans-serif` } : {})), (color ? { color } : {})), (align ? { textAlign: align } : {})), (truncate
413
+ // ── Computed styles ───────────────────────────────────────────────────────
414
+ 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
405
415
  ? { overflow: "hidden", textOverflow: "ellipsis", whiteSpace: "nowrap" }
406
416
  : {})), (maxLines && !truncate
407
417
  ? {
@@ -411,12 +421,14 @@ const Typography = (_a) => {
411
421
  overflow: "hidden",
412
422
  }
413
423
  : {})), { margin: 0, padding: 0 }), style);
414
- const dataAttrs = isHero
415
- ? Object.assign({ "data-rts": "" }, (italic ? {} : { "data-rts-no-italic": "" })) : {};
424
+ // ── Render with dangerouslySetInnerHTML (animation variants) ──────────────
416
425
  if (heroHTML !== null) {
417
- return (jsxRuntime.jsx(Tag, Object.assign({ className: [animClass, className].filter(Boolean).join(" "), style: computedStyle, dangerouslySetInnerHTML: { __html: heroHTML } }, dataAttrs, rest)));
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));
418
429
  }
419
- return (jsxRuntime.jsx(Tag, Object.assign({ className: className, style: computedStyle }, dataAttrs, rest, { children: children })));
430
+ // ── Render children normally ──────────────────────────────────────────────
431
+ return (jsxRuntime.jsx(Tag, Object.assign({ ref: ref, className: className, style: computedStyle }, rest, { children: children })));
420
432
  };
421
433
 
422
434
  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 `[react-type-scale] \"${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 * For \"stagger\" — wraps each word in a span with a staggered delay.\n * Preserves <em> tags for italic accent.\n */\nexport function buildStaggerHTML(html: string): string {\n // Split on spaces but keep <em>...</em> intact as single tokens\n const tokens = html.match(/(<em>.*?<\\/em>|[^\\s]+)/g) ?? [];\n return tokens\n .map((tok, i) => {\n const delay = (i * 0.07).toFixed(2);\n if (tok.startsWith(\"<em>\")) {\n return `<em><span class=\"rts-word\" style=\"animation-delay:${delay}s\">${tok.slice(4, -5)}</span></em>`;\n }\n return `<span class=\"rts-word\" style=\"animation-delay:${delay}s\">${tok}</span>`;\n })\n .join(\" \");\n}\n\n/**\n * For \"letters\" — wraps each character in a span with staggered delay.\n * Preserves <em> wrapping for italic accent characters.\n */\nexport function buildLettersHTML(html: string, italic: boolean): string {\n // Parse the raw string into char tokens, tracking whether inside <em>\n const result: string[] = [];\n let inEm = false;\n let delay = 0;\n const step = 0.04;\n\n // Simple char-by-char parse\n let i = 0;\n while (i < html.length) {\n if (html.startsWith(\"<em>\", i)) {\n inEm = true;\n i += 4;\n continue;\n }\n if (html.startsWith(\"</em>\", i)) {\n inEm = false;\n i += 5;\n continue;\n }\n const ch = html[i];\n if (ch === \" \") {\n result.push(\" \");\n i++;\n continue;\n }\n const span = `<span class=\"rts-letter\" style=\"animation-delay:${delay.toFixed(2)}s\">${ch}</span>`;\n result.push(inEm && italic ? `<em>${span}</em>` : span);\n delay += step;\n i++;\n }\n return result.join(\"\");\n}\n","import React, { CSSProperties, useId } 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// ─── Italic accent style injection ──────────────────────────────────────────\n\nconst ITALIC_STYLE_ID = \"rts-italic-accent\";\nconst ITALIC_FONT_URL =\n \"https://fonts.googleapis.com/css2?family=Instrument+Serif:ital@0;1&display=swap\";\n\nfunction injectItalicAccentStyle(accentColor: string): void {\n if (typeof document === \"undefined\") return;\n if (document.getElementById(ITALIC_STYLE_ID)) return;\n injectFont(ITALIC_FONT_URL);\n const style = document.createElement(\"style\");\n style.id = ITALIC_STYLE_ID;\n style.textContent = `\n [data-rts] em {\n font-family: 'Instrument Serif', serif;\n font-style: italic;\n font-weight: 400;\n color: ${accentColor};\n }\n [data-rts-no-italic] em {\n font-family: inherit;\n font-style: normal;\n font-weight: inherit;\n color: inherit;\n }\n `;\n document.head.appendChild(style);\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 = true,\n accentColor = \"#c8b89a\",\n ...rest\n}) => {\n const isHero = variant === \"Display\" || variant === \"H1\";\n\n // Inject Google Font if recognised\n if (font && GOOGLE_FONTS.includes(font)) {\n injectFont(buildFontUrl(font));\n }\n\n // Inject animation keyframes once\n if (animation && isHero) {\n injectAnimationStyles();\n }\n\n // Inject italic accent styles once (always, so toggling italic prop works)\n if (isHero) {\n injectItalicAccentStyle(accentColor);\n }\n\n const Tag = (as ?? variantTagMap[variant]) as React.ElementType;\n const baseStyle = variantStyleMap[variant];\n\n // Build animation class + inner HTML for hero variants\n let animClass = \"\";\n let heroHTML: string | null = null;\n\n if (animation && isHero) {\n const rawHTML =\n typeof children === \"string\"\n ? children\n : React.Children.map(children, (child) => {\n if (typeof child === \"string\") return child;\n if (React.isValidElement(child) && child.type === \"em\") {\n const text =\n typeof child.props.children === \"string\"\n ? child.props.children\n : \"\";\n return `<em>${text}</em>`;\n }\n return \"\";\n })?.join(\"\") ?? \"\";\n\n if (animation === \"stagger\") {\n heroHTML = buildStaggerHTML(rawHTML);\n animClass = \"\";\n } else if (animation === \"letters\") {\n heroHTML = buildLettersHTML(rawHTML, italic);\n animClass = \"\";\n } else {\n heroHTML = rawHTML;\n animClass = getAnimationClass(animation);\n }\n }\n\n const computedStyle: CSSProperties = {\n ...baseStyle,\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 const dataAttrs = isHero\n ? { \"data-rts\": \"\", ...(italic ? {} : { \"data-rts-no-italic\": \"\" }) }\n : {};\n\n if (heroHTML !== null) {\n return (\n <Tag\n className={[animClass, className].filter(Boolean).join(\" \")}\n style={computedStyle}\n dangerouslySetInnerHTML={{ __html: heroHTML }}\n {...dataAttrs}\n {...rest}\n />\n );\n }\n\n return (\n <Tag\n className={className}\n style={computedStyle}\n {...dataAttrs}\n {...rest}\n >\n {children}\n </Tag>\n );\n};\n\nexport default Typography;\n"],"names":["_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 `[react-type-scale] \"${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 = true,\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;\n"],"names":["Children","isValidElement","useRef","useEffect","_jsx"],"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.1.0",
3
+ "version": "1.2.1",
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",