@edwinvakayil/calligraphy 1.2.3 → 1.2.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +3 -3
- package/dist/index.esm.js +69 -28
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +69 -28
- package/dist/index.js.map +1 -1
- package/dist/types.d.ts +3 -3
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -40,9 +40,9 @@ interface TypographyProps extends HTMLAttributes<HTMLElement> {
|
|
|
40
40
|
animation?: HeroAnimation;
|
|
41
41
|
/**
|
|
42
42
|
* Italic accent for Display / H1 heroes.
|
|
43
|
-
* When true
|
|
44
|
-
* with an accent color.
|
|
45
|
-
* font/weight
|
|
43
|
+
* When true, any <em> child renders in Instrument Serif italic
|
|
44
|
+
* with an accent color. Defaults to false — everything renders
|
|
45
|
+
* in the heading font/weight with no serif or italics.
|
|
46
46
|
*/
|
|
47
47
|
italic?: boolean;
|
|
48
48
|
/**
|
package/dist/index.esm.js
CHANGED
|
@@ -323,12 +323,12 @@ const variantStyleMap = {
|
|
|
323
323
|
letterSpacing: "0.03em",
|
|
324
324
|
},
|
|
325
325
|
};
|
|
326
|
-
// ───
|
|
326
|
+
// ─── Constants ───────────────────────────────────────────────────────────────
|
|
327
327
|
const INSTRUMENT_SERIF_URL = "https://fonts.googleapis.com/css2?family=Instrument+Serif:ital@0;1&display=swap";
|
|
328
328
|
// ─── Helpers ─────────────────────────────────────────────────────────────────
|
|
329
329
|
/**
|
|
330
|
-
* Serialise React children
|
|
331
|
-
*
|
|
330
|
+
* Serialise React children → raw HTML string.
|
|
331
|
+
* Preserves <em>text</em> nodes for animation builders.
|
|
332
332
|
*/
|
|
333
333
|
function childrenToHTML(children) {
|
|
334
334
|
var _a, _b;
|
|
@@ -344,13 +344,52 @@ function childrenToHTML(children) {
|
|
|
344
344
|
})) === null || _a === void 0 ? void 0 : _a.join("")) !== null && _b !== void 0 ? _b : "");
|
|
345
345
|
}
|
|
346
346
|
/**
|
|
347
|
-
*
|
|
348
|
-
*
|
|
349
|
-
*
|
|
347
|
+
* Re-map React children so that <em> elements get explicit inline styles.
|
|
348
|
+
* This is used for the no-animation render path where we keep real React nodes.
|
|
349
|
+
* Inline styles on the <em> itself beat any inherited font-family from the parent.
|
|
350
350
|
*/
|
|
351
|
-
function
|
|
352
|
-
const
|
|
353
|
-
|
|
351
|
+
function renderChildrenWithEmStyles(children, italic, accentColor, headingFont) {
|
|
352
|
+
const italicStyle = {
|
|
353
|
+
fontFamily: "'Instrument Serif', serif",
|
|
354
|
+
fontStyle: "italic",
|
|
355
|
+
fontWeight: 400,
|
|
356
|
+
color: accentColor,
|
|
357
|
+
};
|
|
358
|
+
const noItalicStyle = {
|
|
359
|
+
fontFamily: headingFont ? `'${headingFont}', sans-serif` : "inherit",
|
|
360
|
+
fontStyle: "normal",
|
|
361
|
+
fontWeight: "inherit",
|
|
362
|
+
color: "inherit",
|
|
363
|
+
};
|
|
364
|
+
return Children.map(children, (child, i) => {
|
|
365
|
+
if (isValidElement(child) && child.type === "em") {
|
|
366
|
+
return (jsx("em", { style: italic ? italicStyle : noItalicStyle, children: child.props.children }, i));
|
|
367
|
+
}
|
|
368
|
+
return child;
|
|
369
|
+
});
|
|
370
|
+
}
|
|
371
|
+
/**
|
|
372
|
+
* After dangerouslySetInnerHTML renders, walk the DOM and apply inline styles
|
|
373
|
+
* to every <em> and <em> > span so the font switch is guaranteed.
|
|
374
|
+
*/
|
|
375
|
+
function applyEmStylesDOM(container, italic, accentColor, headingFont) {
|
|
376
|
+
// Select both <em> and any animated letter spans nested inside <em>
|
|
377
|
+
container.querySelectorAll("em").forEach((el) => {
|
|
378
|
+
if (italic) {
|
|
379
|
+
el.style.fontFamily = "'Instrument Serif', serif";
|
|
380
|
+
el.style.fontStyle = "italic";
|
|
381
|
+
el.style.fontWeight = "400";
|
|
382
|
+
el.style.color = accentColor;
|
|
383
|
+
}
|
|
384
|
+
else {
|
|
385
|
+
el.style.fontFamily = headingFont ? `'${headingFont}', sans-serif` : "inherit";
|
|
386
|
+
el.style.fontStyle = "normal";
|
|
387
|
+
el.style.fontWeight = "inherit";
|
|
388
|
+
el.style.color = "inherit";
|
|
389
|
+
}
|
|
390
|
+
});
|
|
391
|
+
// Also style the animated letter spans inside <em> (used by "letters" animation)
|
|
392
|
+
container.querySelectorAll("em > span").forEach((el) => {
|
|
354
393
|
if (italic) {
|
|
355
394
|
el.style.fontFamily = "'Instrument Serif', serif";
|
|
356
395
|
el.style.fontStyle = "italic";
|
|
@@ -367,28 +406,29 @@ function applyEmStyles(container, italic, accentColor, headingFont) {
|
|
|
367
406
|
}
|
|
368
407
|
// ─── Component ───────────────────────────────────────────────────────────────
|
|
369
408
|
const Typography = (_a) => {
|
|
370
|
-
var { variant = "Body", font, color, align, className, style, children, as, truncate, maxLines, animation, italic =
|
|
409
|
+
var { variant = "Body", font, color, align, className, style, children, as, truncate, maxLines, animation, italic = false, accentColor = "#c8b89a" } = _a, rest = __rest(_a, ["variant", "font", "color", "align", "className", "style", "children", "as", "truncate", "maxLines", "animation", "italic", "accentColor"]);
|
|
371
410
|
const isHero = variant === "Display" || variant === "H1";
|
|
372
411
|
const ref = useRef(null);
|
|
373
|
-
//
|
|
412
|
+
// Always inject Instrument Serif for hero variants so it's pre-loaded
|
|
413
|
+
// and ready the moment italic is toggled on — no flash of wrong font.
|
|
414
|
+
if (isHero) {
|
|
415
|
+
injectFont(INSTRUMENT_SERIF_URL);
|
|
416
|
+
}
|
|
417
|
+
// Inject heading Google Font
|
|
374
418
|
if (font && GOOGLE_FONTS.includes(font)) {
|
|
375
419
|
injectFont(buildFontUrl(font));
|
|
376
420
|
}
|
|
377
|
-
// Inject
|
|
378
|
-
if (isHero && italic) {
|
|
379
|
-
injectFont(INSTRUMENT_SERIF_URL);
|
|
380
|
-
}
|
|
381
|
-
// Inject animation keyframe stylesheet once
|
|
421
|
+
// Inject animation keyframes (once, global)
|
|
382
422
|
if (animation && isHero) {
|
|
383
423
|
injectAnimationStyles();
|
|
384
424
|
}
|
|
385
|
-
//
|
|
386
|
-
//
|
|
425
|
+
// For animation paths (dangerouslySetInnerHTML), walk the DOM after render
|
|
426
|
+
// and stamp inline styles onto every <em> — guaranteed to beat inheritance.
|
|
387
427
|
useEffect(() => {
|
|
388
|
-
if (!isHero || !ref.current)
|
|
428
|
+
if (!isHero || !animation || !ref.current)
|
|
389
429
|
return;
|
|
390
|
-
|
|
391
|
-
});
|
|
430
|
+
applyEmStylesDOM(ref.current, italic, accentColor, font);
|
|
431
|
+
}, [italic, accentColor, font, animation, isHero]);
|
|
392
432
|
const Tag = (as !== null && as !== void 0 ? as : variantTagMap[variant]);
|
|
393
433
|
// ── Compute animation class + inner HTML ──────────────────────────────────
|
|
394
434
|
let animClass = "";
|
|
@@ -406,7 +446,7 @@ const Typography = (_a) => {
|
|
|
406
446
|
animClass = getAnimationClass(animation);
|
|
407
447
|
}
|
|
408
448
|
}
|
|
409
|
-
// ── Computed styles
|
|
449
|
+
// ── Computed container styles ─────────────────────────────────────────────
|
|
410
450
|
const computedStyle = Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, variantStyleMap[variant]), (font ? { fontFamily: `'${font}', sans-serif` } : {})), (color ? { color } : {})), (align ? { textAlign: align } : {})), (truncate
|
|
411
451
|
? { overflow: "hidden", textOverflow: "ellipsis", whiteSpace: "nowrap" }
|
|
412
452
|
: {})), (maxLines && !truncate
|
|
@@ -417,14 +457,15 @@ const Typography = (_a) => {
|
|
|
417
457
|
overflow: "hidden",
|
|
418
458
|
}
|
|
419
459
|
: {})), { margin: 0, padding: 0 }), style);
|
|
420
|
-
// ── Render
|
|
460
|
+
// ── Render: animation path (dangerouslySetInnerHTML) ──────────────────────
|
|
421
461
|
if (heroHTML !== null) {
|
|
422
|
-
return (jsx(Tag
|
|
423
|
-
// key forces a fresh DOM node when animation changes → keyframe re-fires
|
|
424
|
-
, Object.assign({ ref: ref, className: [animClass, className].filter(Boolean).join(" "), style: computedStyle, dangerouslySetInnerHTML: { __html: heroHTML } }, rest), animation));
|
|
462
|
+
return (jsx(Tag, Object.assign({ ref: ref, className: [animClass, className].filter(Boolean).join(" "), style: computedStyle, dangerouslySetInnerHTML: { __html: heroHTML } }, rest), animation));
|
|
425
463
|
}
|
|
426
|
-
// ── Render children
|
|
427
|
-
|
|
464
|
+
// ── Render: standard path (real React children with em styles) ────────────
|
|
465
|
+
const processedChildren = isHero
|
|
466
|
+
? renderChildrenWithEmStyles(children, italic, accentColor, font)
|
|
467
|
+
: children;
|
|
468
|
+
return (jsx(Tag, Object.assign({ ref: ref, className: className, style: computedStyle }, rest, { children: processedChildren })));
|
|
428
469
|
};
|
|
429
470
|
|
|
430
471
|
export { GOOGLE_FONTS, Typography, buildFontUrl, Typography as default, injectFont, preloadFonts };
|
package/dist/index.esm.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.esm.js","sources":["../node_modules/tslib/tslib.es6.js","../../fonts.ts","../../animation.ts","../../Typography.tsx"],"sourcesContent":["/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise, SuppressedError, Symbol, Iterator */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\r\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\r\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\r\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\r\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\r\n var _, done = false;\r\n for (var i = decorators.length - 1; i >= 0; i--) {\r\n var context = {};\r\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\r\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\r\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\r\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\r\n if (kind === \"accessor\") {\r\n if (result === void 0) continue;\r\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\r\n if (_ = accept(result.get)) descriptor.get = _;\r\n if (_ = accept(result.set)) descriptor.set = _;\r\n if (_ = accept(result.init)) initializers.unshift(_);\r\n }\r\n else if (_ = accept(result)) {\r\n if (kind === \"field\") initializers.unshift(_);\r\n else descriptor[key] = _;\r\n }\r\n }\r\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\r\n done = true;\r\n};\r\n\r\nexport function __runInitializers(thisArg, initializers, value) {\r\n var useValue = arguments.length > 2;\r\n for (var i = 0; i < initializers.length; i++) {\r\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\r\n }\r\n return useValue ? value : void 0;\r\n};\r\n\r\nexport function __propKey(x) {\r\n return typeof x === \"symbol\" ? x : \"\".concat(x);\r\n};\r\n\r\nexport function __setFunctionName(f, name, prefix) {\r\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\r\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\r\n};\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\r\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = Object.create((typeof AsyncIterator === \"function\" ? AsyncIterator : Object).prototype), verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\r\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nvar ownKeys = function(o) {\r\n ownKeys = Object.getOwnPropertyNames || function (o) {\r\n var ar = [];\r\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\r\n return ar;\r\n };\r\n return ownKeys(o);\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n\r\nexport function __addDisposableResource(env, value, async) {\r\n if (value !== null && value !== void 0) {\r\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\r\n var dispose, inner;\r\n if (async) {\r\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\r\n dispose = value[Symbol.asyncDispose];\r\n }\r\n if (dispose === void 0) {\r\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\r\n dispose = value[Symbol.dispose];\r\n if (async) inner = dispose;\r\n }\r\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\r\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\r\n env.stack.push({ value: value, dispose: dispose, async: async });\r\n }\r\n else if (async) {\r\n env.stack.push({ async: true });\r\n }\r\n return value;\r\n\r\n}\r\n\r\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\r\n var e = new Error(message);\r\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\r\n};\r\n\r\nexport function __disposeResources(env) {\r\n function fail(e) {\r\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\r\n env.hasError = true;\r\n }\r\n var r, s = 0;\r\n function next() {\r\n while (r = env.stack.pop()) {\r\n try {\r\n if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);\r\n if (r.dispose) {\r\n var result = r.dispose.call(r.value);\r\n if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\r\n }\r\n else s |= 1;\r\n }\r\n catch (e) {\r\n fail(e);\r\n }\r\n }\r\n if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();\r\n if (env.hasError) throw env.error;\r\n }\r\n return next();\r\n}\r\n\r\nexport function __rewriteRelativeImportExtension(path, preserveJsx) {\r\n if (typeof path === \"string\" && /^\\.\\.?\\//.test(path)) {\r\n return path.replace(/\\.(tsx)$|((?:\\.d)?)((?:\\.[^./]+?)?)\\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {\r\n return tsx ? preserveJsx ? \".jsx\" : \".js\" : d && (!ext || !cm) ? m : (d + ext + \".\" + cm.toLowerCase() + \"js\");\r\n });\r\n }\r\n return path;\r\n}\r\n\r\nexport default {\r\n __extends: __extends,\r\n __assign: __assign,\r\n __rest: __rest,\r\n __decorate: __decorate,\r\n __param: __param,\r\n __esDecorate: __esDecorate,\r\n __runInitializers: __runInitializers,\r\n __propKey: __propKey,\r\n __setFunctionName: __setFunctionName,\r\n __metadata: __metadata,\r\n __awaiter: __awaiter,\r\n __generator: __generator,\r\n __createBinding: __createBinding,\r\n __exportStar: __exportStar,\r\n __values: __values,\r\n __read: __read,\r\n __spread: __spread,\r\n __spreadArrays: __spreadArrays,\r\n __spreadArray: __spreadArray,\r\n __await: __await,\r\n __asyncGenerator: __asyncGenerator,\r\n __asyncDelegator: __asyncDelegator,\r\n __asyncValues: __asyncValues,\r\n __makeTemplateObject: __makeTemplateObject,\r\n __importStar: __importStar,\r\n __importDefault: __importDefault,\r\n __classPrivateFieldGet: __classPrivateFieldGet,\r\n __classPrivateFieldSet: __classPrivateFieldSet,\r\n __classPrivateFieldIn: __classPrivateFieldIn,\r\n __addDisposableResource: __addDisposableResource,\r\n __disposeResources: __disposeResources,\r\n __rewriteRelativeImportExtension: __rewriteRelativeImportExtension,\r\n};\r\n","/**\n * A curated list of popular Google Fonts.\n * Pass any valid Google Font name to the `font` prop — if it's in this list,\n * it will be auto-injected via a <link> tag. For unlisted fonts, add them here\n * or import them manually in your project.\n */\nexport const GOOGLE_FONTS: string[] = [\n // Serif\n \"Playfair Display\",\n \"Merriweather\",\n \"Lora\",\n \"EB Garamond\",\n \"Libre Baskerville\",\n \"Cormorant Garamond\",\n \"DM Serif Display\",\n \"Crimson Text\",\n \"Source Serif 4\",\n \"Fraunces\",\n\n // Sans-serif\n \"Inter\",\n \"Roboto\",\n \"Open Sans\",\n \"Nunito\",\n \"Poppins\",\n \"Raleway\",\n \"Outfit\",\n \"DM Sans\",\n \"Manrope\",\n \"Plus Jakarta Sans\",\n \"Figtree\",\n \"Syne\",\n \"Albert Sans\",\n\n // Display / Expressive\n \"Bebas Neue\",\n \"Oswald\",\n \"Anton\",\n \"Barlow Condensed\",\n \"Righteous\",\n \"Abril Fatface\",\n \"Dela Gothic One\",\n \"Space Grotesk\",\n \"Unbounded\",\n \"Big Shoulders Display\",\n\n // Mono\n \"JetBrains Mono\",\n \"Fira Code\",\n \"Source Code Pro\",\n \"Space Mono\",\n \"IBM Plex Mono\",\n];\n\nconst injectedFonts = new Set<string>();\n\n/**\n * Builds a Google Fonts URL for a given font family.\n * Requests weights 300, 400, 500, 600, 700, 800 — italic variants included.\n */\nexport function buildFontUrl(fontFamily: string): string {\n const encoded = fontFamily.replace(/ /g, \"+\");\n return `https://fonts.googleapis.com/css2?family=${encoded}:ital,wght@0,300;0,400;0,500;0,600;0,700;0,800;1,400;1,700&display=swap`;\n}\n\n/**\n * Injects a Google Fonts <link> into <head> once per unique URL.\n * Safe to call multiple times — deduped via a Set.\n */\nexport function injectFont(url: string): void {\n if (typeof document === \"undefined\") return; // SSR guard\n if (injectedFonts.has(url)) return;\n\n const link = document.createElement(\"link\");\n link.rel = \"stylesheet\";\n link.href = url;\n document.head.appendChild(link);\n injectedFonts.add(url);\n}\n\n/**\n * Pre-load a set of fonts eagerly (e.g. at app root).\n * Usage: preloadFonts([\"Playfair Display\", \"Inter\"])\n */\nexport function preloadFonts(families: string[]): void {\n families.forEach((f) => {\n if (GOOGLE_FONTS.includes(f)) {\n injectFont(buildFontUrl(f));\n } else {\n console.warn(\n `[@edwinvakayil/calligraphy] \"${f}\" is not in the bundled GOOGLE_FONTS list. ` +\n `Add it to the list or import it manually.`\n );\n }\n });\n}","import { HeroAnimation } from \"./types\";\n\nconst STYLE_ID = \"rts-hero-animations\";\n\nconst CSS = `\n@keyframes rts-rise{from{opacity:0;transform:translateY(32px)}to{opacity:1;transform:translateY(0)}}\n@keyframes rts-clip{from{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0 0% 0 0)}}\n@keyframes rts-pop{0%{opacity:0;transform:scale(0.75)}60%{opacity:1;transform:scale(1.04)}100%{transform:scale(1)}}\n@keyframes rts-blur{from{opacity:0;filter:blur(14px);transform:scale(1.04)}to{opacity:1;filter:blur(0);transform:scale(1)}}\n@keyframes rts-flip{from{opacity:0;transform:perspective(600px) rotateX(30deg) translateY(20px)}to{opacity:1;transform:perspective(600px) rotateX(0) translateY(0)}}\n@keyframes rts-swipe{from{opacity:0;transform:translateX(60px)}to{opacity:1;transform:translateX(0)}}\n@keyframes rts-bounce{0%{opacity:0;transform:translateY(-60px)}60%{opacity:1;transform:translateY(10px)}80%{transform:translateY(-5px)}100%{transform:translateY(0)}}\n@keyframes rts-type{from{width:0}to{width:100%}}\n@keyframes rts-blink{50%{border-color:transparent}}\n@keyframes rts-word-rise{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}\n@keyframes rts-letter-in{from{opacity:0;transform:translateX(-16px) rotate(-4deg)}to{opacity:1;transform:none}}\n\n.rts-rise { animation: rts-rise 0.9s cubic-bezier(0.16,1,0.3,1) both }\n.rts-clip { animation: rts-clip 1.1s cubic-bezier(0.77,0,0.18,1) both }\n.rts-pop { animation: rts-pop 0.7s cubic-bezier(0.34,1.56,0.64,1) both }\n.rts-blur { animation: rts-blur 1s cubic-bezier(0.16,1,0.3,1) both }\n.rts-flip { animation: rts-flip 0.9s cubic-bezier(0.16,1,0.3,1) both; transform-origin: center bottom }\n.rts-swipe { animation: rts-swipe 0.8s cubic-bezier(0.16,1,0.3,1) both }\n.rts-bounce { animation: rts-bounce 0.9s cubic-bezier(0.36,0.07,0.19,0.97) both }\n.rts-typewriter{ overflow: hidden; white-space: nowrap; border-right: 2px solid currentColor; width: 0; animation: rts-type 1.6s steps(22,end) both, rts-blink 0.7s step-end 1.6s 3 }\n.rts-word { display: inline-block; opacity: 0; transform: translateY(24px); animation: rts-word-rise 0.7s cubic-bezier(0.16,1,0.3,1) both }\n.rts-letter { display: inline-block; opacity: 0; transform: translateX(-16px) rotate(-4deg); animation: rts-letter-in 0.5s cubic-bezier(0.16,1,0.3,1) both }\n`;\n\nexport function injectAnimationStyles(): void {\n if (typeof document === \"undefined\") return;\n if (document.getElementById(STYLE_ID)) return;\n const style = document.createElement(\"style\");\n style.id = STYLE_ID;\n style.textContent = CSS;\n document.head.appendChild(style);\n}\n\nexport function getAnimationClass(animation: HeroAnimation): string {\n const map: Record<HeroAnimation, string> = {\n rise: \"rts-rise\",\n clip: \"rts-clip\",\n pop: \"rts-pop\",\n blur: \"rts-blur\",\n flip: \"rts-flip\",\n swipe: \"rts-swipe\",\n bounce: \"rts-bounce\",\n typewriter: \"rts-typewriter\",\n stagger: \"\",\n letters: \"\",\n };\n return map[animation] ?? \"\";\n}\n\n/**\n * Wraps each word in an animated span.\n * <em> tokens are preserved as-is in the HTML — Typography's useEffect\n * will apply inline styles to them after mount.\n */\nexport function buildStaggerHTML(html: string): string {\n const tokens = html.match(/(<em>[\\s\\S]*?<\\/em>|[^\\s]+)/g) ?? [];\n return tokens\n .map((tok, i) => {\n const delay = (i * 0.07).toFixed(2);\n if (tok.startsWith(\"<em>\")) {\n // Wrap the inner text in the animated span, keep <em> outside\n const inner = tok.slice(4, -5);\n return `<em><span class=\"rts-word\" style=\"animation-delay:${delay}s\">${inner}</span></em>`;\n }\n return `<span class=\"rts-word\" style=\"animation-delay:${delay}s\">${tok}</span>`;\n })\n .join(\" \");\n}\n\n/**\n * Wraps each character in an animated span.\n * <em> tags are preserved in the output — Typography's useEffect applies\n * the actual italic/non-italic inline styles after the DOM is ready.\n */\nexport function buildLettersHTML(html: string): string {\n const result: string[] = [];\n let inEm = false;\n let delay = 0;\n const step = 0.04;\n let i = 0;\n\n while (i < html.length) {\n if (html.startsWith(\"<em>\", i)) { inEm = true; i += 4; continue; }\n if (html.startsWith(\"</em>\", i)) { inEm = false; i += 5; continue; }\n\n const ch = html[i];\n if (ch === \" \") { result.push(\" \"); i++; continue; }\n\n const span = `<span class=\"rts-letter\" style=\"animation-delay:${delay.toFixed(2)}s\">${ch}</span>`;\n // Preserve <em> wrapper in DOM — styles applied by useEffect\n result.push(inEm ? `<em>${span}</em>` : span);\n delay += step;\n i++;\n }\n\n return result.join(\"\");\n}","import React, { CSSProperties, Children, isValidElement, useRef, useEffect } from \"react\";\nimport { TypographyProps, VariantTagMap, VariantStyleMap } from \"./types\";\nimport { GOOGLE_FONTS, buildFontUrl, injectFont } from \"./fonts\";\nimport {\n injectAnimationStyles,\n getAnimationClass,\n buildStaggerHTML,\n buildLettersHTML,\n} from \"./animation\";\n\n// ─── Static maps ─────────────────────────────────────────────────────────────\n\nconst variantTagMap: VariantTagMap = {\n Display: \"h1\",\n H1: \"h1\",\n H2: \"h2\",\n H3: \"h3\",\n H4: \"h4\",\n H5: \"h5\",\n H6: \"h6\",\n Subheading: \"h6\",\n Overline: \"span\",\n Body: \"p\",\n Label: \"label\",\n Caption: \"span\",\n};\n\nconst variantStyleMap: VariantStyleMap = {\n Display: {\n fontSize: \"clamp(2.5rem, 6vw, 5rem)\",\n fontWeight: 800,\n lineHeight: 1.05,\n letterSpacing: \"-0.03em\",\n },\n H1: {\n fontSize: \"clamp(2rem, 4vw, 3rem)\",\n fontWeight: 700,\n lineHeight: 1.1,\n letterSpacing: \"-0.02em\",\n },\n H2: {\n fontSize: \"clamp(1.5rem, 3vw, 2.25rem)\",\n fontWeight: 700,\n lineHeight: 1.2,\n letterSpacing: \"-0.015em\",\n },\n H3: {\n fontSize: \"clamp(1.25rem, 2.5vw, 1.75rem)\",\n fontWeight: 600,\n lineHeight: 1.25,\n letterSpacing: \"-0.01em\",\n },\n H4: {\n fontSize: \"clamp(1.1rem, 2vw, 1.375rem)\",\n fontWeight: 600,\n lineHeight: 1.3,\n letterSpacing: \"-0.005em\",\n },\n H5: {\n fontSize: \"clamp(1rem, 1.5vw, 1.125rem)\",\n fontWeight: 600,\n lineHeight: 1.35,\n letterSpacing: \"0em\",\n },\n H6: {\n fontSize: \"1rem\",\n fontWeight: 600,\n lineHeight: 1.4,\n letterSpacing: \"0em\",\n },\n Subheading: {\n fontSize: \"1.125rem\",\n fontWeight: 500,\n lineHeight: 1.5,\n letterSpacing: \"0.005em\",\n },\n Overline: {\n fontSize: \"0.6875rem\",\n fontWeight: 700,\n lineHeight: 1.6,\n letterSpacing: \"0.12em\",\n textTransform: \"uppercase\" as CSSProperties[\"textTransform\"],\n },\n Body: {\n fontSize: \"1rem\",\n fontWeight: 400,\n lineHeight: 1.7,\n letterSpacing: \"0.01em\",\n },\n Label: {\n fontSize: \"0.875rem\",\n fontWeight: 500,\n lineHeight: 1.5,\n letterSpacing: \"0.02em\",\n },\n Caption: {\n fontSize: \"0.75rem\",\n fontWeight: 400,\n lineHeight: 1.6,\n letterSpacing: \"0.03em\",\n },\n};\n\n// ─── Instrument Serif font URL ───────────────────────────────────────────────\n\nconst INSTRUMENT_SERIF_URL =\n \"https://fonts.googleapis.com/css2?family=Instrument+Serif:ital@0;1&display=swap\";\n\n// ─── Helpers ─────────────────────────────────────────────────────────────────\n\n/**\n * Serialise React children to a plain HTML string.\n * Handles: strings, <em>text</em> elements.\n */\nfunction childrenToHTML(children: React.ReactNode): string {\n return (\n Children.map(children, (child) => {\n if (typeof child === \"string\" || typeof child === \"number\") {\n return String(child);\n }\n if (isValidElement(child) && child.type === \"em\") {\n const inner =\n typeof child.props.children === \"string\" ? child.props.children : \"\";\n return `<em>${inner}</em>`;\n }\n return \"\";\n })?.join(\"\") ?? \"\"\n );\n}\n\n/**\n * Walk the serialised HTML and inject inline styles on every <em> span\n * so italic rendering is driven 100% by inline styles — no CSS specificity\n * battles, works regardless of injection order.\n */\nfunction applyEmStyles(\n container: HTMLElement,\n italic: boolean,\n accentColor: string,\n headingFont?: string\n): void {\n const ems = container.querySelectorAll<HTMLElement>(\"em, em span\");\n ems.forEach((el) => {\n if (italic) {\n el.style.fontFamily = \"'Instrument Serif', serif\";\n el.style.fontStyle = \"italic\";\n el.style.fontWeight = \"400\";\n el.style.color = accentColor;\n } else {\n el.style.fontFamily = headingFont ? `'${headingFont}', sans-serif` : \"inherit\";\n el.style.fontStyle = \"normal\";\n el.style.fontWeight = \"inherit\";\n el.style.color = \"inherit\";\n }\n });\n}\n\n// ─── Component ───────────────────────────────────────────────────────────────\n\nexport const Typography: React.FC<TypographyProps> = ({\n variant = \"Body\",\n font,\n color,\n align,\n className,\n style,\n children,\n as,\n truncate,\n maxLines,\n animation,\n italic = 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":";;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA0BA;AACO,SAAS,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE;AAC7B,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;AACf,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;AACvF,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACpB,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,OAAO,MAAM,CAAC,qBAAqB,KAAK,UAAU;AACvE,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,qBAAqB,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAChF,YAAY,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,SAAS,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1F,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAClC,SAAS;AACT,IAAI,OAAO,CAAC,CAAC;AACb,CAAC;AAmRD;AACuB,OAAO,eAAe,KAAK,UAAU,GAAG,eAAe,GAAG,UAAU,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE;AACvH,IAAI,IAAI,CAAC,GAAG,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;AAC/B,IAAI,OAAO,CAAC,CAAC,IAAI,GAAG,iBAAiB,EAAE,CAAC,CAAC,KAAK,GAAG,KAAK,EAAE,CAAC,CAAC,UAAU,GAAG,UAAU,EAAE,CAAC,CAAC;AACrF;;AC3UA;;;;;AAKG;AACU,MAAA,YAAY,GAAa;;IAEpC,kBAAkB;IAClB,cAAc;IACd,MAAM;IACN,aAAa;IACb,mBAAmB;IACnB,oBAAoB;IACpB,kBAAkB;IAClB,cAAc;IACd,gBAAgB;IAChB,UAAU;;IAGV,OAAO;IACP,QAAQ;IACR,WAAW;IACX,QAAQ;IACR,SAAS;IACT,SAAS;IACT,QAAQ;IACR,SAAS;IACT,SAAS;IACT,mBAAmB;IACnB,SAAS;IACT,MAAM;IACN,aAAa;;IAGb,YAAY;IACZ,QAAQ;IACR,OAAO;IACP,kBAAkB;IAClB,WAAW;IACX,eAAe;IACf,iBAAiB;IACjB,eAAe;IACf,WAAW;IACX,uBAAuB;;IAGvB,gBAAgB;IAChB,WAAW;IACX,iBAAiB;IACjB,YAAY;IACZ,eAAe;EACf;AAEF,MAAM,aAAa,GAAG,IAAI,GAAG,EAAU,CAAC;AAExC;;;AAGG;AACG,SAAU,YAAY,CAAC,UAAkB,EAAA;IAC7C,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAC9C,OAAO,CAAA,yCAAA,EAA4C,OAAO,CAAA,uEAAA,CAAyE,CAAC;AACtI,CAAC;AAED;;;AAGG;AACG,SAAU,UAAU,CAAC,GAAW,EAAA;IACpC,IAAI,OAAO,QAAQ,KAAK,WAAW;AAAE,QAAA,OAAO;AAC5C,IAAA,IAAI,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC;QAAE,OAAO;IAEnC,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;AAC5C,IAAA,IAAI,CAAC,GAAG,GAAG,YAAY,CAAC;AACxB,IAAA,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC;AAChB,IAAA,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;AAChC,IAAA,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACzB,CAAC;AAED;;;AAGG;AACG,SAAU,YAAY,CAAC,QAAkB,EAAA;AAC7C,IAAA,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,KAAI;AACrB,QAAA,IAAI,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE;AAC5B,YAAA,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;SAC7B;aAAM;AACL,YAAA,OAAO,CAAC,IAAI,CACV,CAAA,6BAAA,EAAgC,CAAC,CAA6C,2CAAA,CAAA;AAC5E,gBAAA,CAAA,yCAAA,CAA2C,CAC9C,CAAC;SACH;AACH,KAAC,CAAC,CAAC;AACL;;AC7FA,MAAM,QAAQ,GAAG,qBAAqB,CAAC;AAEvC,MAAM,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;CAuBX,CAAC;SAEc,qBAAqB,GAAA;IACnC,IAAI,OAAO,QAAQ,KAAK,WAAW;QAAE,OAAO;AAC5C,IAAA,IAAI,QAAQ,CAAC,cAAc,CAAC,QAAQ,CAAC;QAAE,OAAO;IAC9C,MAAM,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;AAC9C,IAAA,KAAK,CAAC,EAAE,GAAM,QAAQ,CAAC;AACvB,IAAA,KAAK,CAAC,WAAW,GAAG,GAAG,CAAC;AACxB,IAAA,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;AACnC,CAAC;AAEK,SAAU,iBAAiB,CAAC,SAAwB,EAAA;;AACxD,IAAA,MAAM,GAAG,GAAkC;AACzC,QAAA,IAAI,EAAQ,UAAU;AACtB,QAAA,IAAI,EAAQ,UAAU;AACtB,QAAA,GAAG,EAAS,SAAS;AACrB,QAAA,IAAI,EAAQ,UAAU;AACtB,QAAA,IAAI,EAAQ,UAAU;AACtB,QAAA,KAAK,EAAO,WAAW;AACvB,QAAA,MAAM,EAAM,YAAY;AACxB,QAAA,UAAU,EAAE,gBAAgB;AAC5B,QAAA,OAAO,EAAK,EAAE;AACd,QAAA,OAAO,EAAK,EAAE;KACf,CAAC;AACF,IAAA,OAAO,MAAA,GAAG,CAAC,SAAS,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAI,EAAE,CAAC;AAC9B,CAAC;AAED;;;;AAIG;AACG,SAAU,gBAAgB,CAAC,IAAY,EAAA;;IAC3C,MAAM,MAAM,GAAG,CAAA,EAAA,GAAA,IAAI,CAAC,KAAK,CAAC,8BAA8B,CAAC,MAAI,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAA,EAAE,CAAC;AAChE,IAAA,OAAO,MAAM;AACV,SAAA,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,KAAI;AACd,QAAA,MAAM,KAAK,GAAG,CAAC,CAAC,GAAG,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;AACpC,QAAA,IAAI,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE;;YAE1B,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAC/B,YAAA,OAAO,CAAqD,kDAAA,EAAA,KAAK,CAAM,GAAA,EAAA,KAAK,cAAc,CAAC;SAC5F;AACD,QAAA,OAAO,CAAiD,8CAAA,EAAA,KAAK,CAAM,GAAA,EAAA,GAAG,SAAS,CAAC;AAClF,KAAC,CAAC;SACD,IAAI,CAAC,GAAG,CAAC,CAAC;AACf,CAAC;AAED;;;;AAIG;AACG,SAAU,gBAAgB,CAAC,IAAY,EAAA;IAC3C,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,IAAI,IAAI,GAAI,KAAK,CAAC;IAClB,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,MAAM,IAAI,GAAG,IAAI,CAAC;IAClB,IAAI,CAAC,GAAG,CAAC,CAAC;AAEV,IAAA,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE;QACtB,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC,EAAG;YAAE,IAAI,GAAG,IAAI,CAAC;YAAE,CAAC,IAAI,CAAC,CAAC;YAAC,SAAS;SAAE;QACpE,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE;YAAE,IAAI,GAAG,KAAK,CAAC;YAAC,CAAC,IAAI,CAAC,CAAC;YAAC,SAAS;SAAE;AAEpE,QAAA,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;AACnB,QAAA,IAAI,EAAE,KAAK,GAAG,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAAC,YAAA,CAAC,EAAE,CAAC;YAAC,SAAS;SAAE;AAEpD,QAAA,MAAM,IAAI,GAAG,CAAmD,gDAAA,EAAA,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA,GAAA,EAAM,EAAE,CAAA,OAAA,CAAS,CAAC;;AAElG,QAAA,MAAM,CAAC,IAAI,CAAC,IAAI,GAAG,CAAO,IAAA,EAAA,IAAI,OAAO,GAAG,IAAI,CAAC,CAAC;QAC9C,KAAK,IAAI,IAAI,CAAC;AACd,QAAA,CAAC,EAAE,CAAC;KACL;AAED,IAAA,OAAO,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACzB;;AC3FA;AAEA,MAAM,aAAa,GAAkB;AACnC,IAAA,OAAO,EAAK,IAAI;AAChB,IAAA,EAAE,EAAU,IAAI;AAChB,IAAA,EAAE,EAAU,IAAI;AAChB,IAAA,EAAE,EAAU,IAAI;AAChB,IAAA,EAAE,EAAU,IAAI;AAChB,IAAA,EAAE,EAAU,IAAI;AAChB,IAAA,EAAE,EAAU,IAAI;AAChB,IAAA,UAAU,EAAE,IAAI;AAChB,IAAA,QAAQ,EAAI,MAAM;AAClB,IAAA,IAAI,EAAQ,GAAG;AACf,IAAA,KAAK,EAAO,OAAO;AACnB,IAAA,OAAO,EAAK,MAAM;CACnB,CAAC;AAEF,MAAM,eAAe,GAAoB;AACvC,IAAA,OAAO,EAAE;AACP,QAAA,QAAQ,EAAO,0BAA0B;AACzC,QAAA,UAAU,EAAK,GAAG;AAClB,QAAA,UAAU,EAAK,IAAI;AACnB,QAAA,aAAa,EAAE,SAAS;AACzB,KAAA;AACD,IAAA,EAAE,EAAE;AACF,QAAA,QAAQ,EAAO,wBAAwB;AACvC,QAAA,UAAU,EAAK,GAAG;AAClB,QAAA,UAAU,EAAK,GAAG;AAClB,QAAA,aAAa,EAAE,SAAS;AACzB,KAAA;AACD,IAAA,EAAE,EAAE;AACF,QAAA,QAAQ,EAAO,6BAA6B;AAC5C,QAAA,UAAU,EAAK,GAAG;AAClB,QAAA,UAAU,EAAK,GAAG;AAClB,QAAA,aAAa,EAAE,UAAU;AAC1B,KAAA;AACD,IAAA,EAAE,EAAE;AACF,QAAA,QAAQ,EAAO,gCAAgC;AAC/C,QAAA,UAAU,EAAK,GAAG;AAClB,QAAA,UAAU,EAAK,IAAI;AACnB,QAAA,aAAa,EAAE,SAAS;AACzB,KAAA;AACD,IAAA,EAAE,EAAE;AACF,QAAA,QAAQ,EAAO,8BAA8B;AAC7C,QAAA,UAAU,EAAK,GAAG;AAClB,QAAA,UAAU,EAAK,GAAG;AAClB,QAAA,aAAa,EAAE,UAAU;AAC1B,KAAA;AACD,IAAA,EAAE,EAAE;AACF,QAAA,QAAQ,EAAO,8BAA8B;AAC7C,QAAA,UAAU,EAAK,GAAG;AAClB,QAAA,UAAU,EAAK,IAAI;AACnB,QAAA,aAAa,EAAE,KAAK;AACrB,KAAA;AACD,IAAA,EAAE,EAAE;AACF,QAAA,QAAQ,EAAO,MAAM;AACrB,QAAA,UAAU,EAAK,GAAG;AAClB,QAAA,UAAU,EAAK,GAAG;AAClB,QAAA,aAAa,EAAE,KAAK;AACrB,KAAA;AACD,IAAA,UAAU,EAAE;AACV,QAAA,QAAQ,EAAO,UAAU;AACzB,QAAA,UAAU,EAAK,GAAG;AAClB,QAAA,UAAU,EAAK,GAAG;AAClB,QAAA,aAAa,EAAE,SAAS;AACzB,KAAA;AACD,IAAA,QAAQ,EAAE;AACR,QAAA,QAAQ,EAAO,WAAW;AAC1B,QAAA,UAAU,EAAK,GAAG;AAClB,QAAA,UAAU,EAAK,GAAG;AAClB,QAAA,aAAa,EAAE,QAAQ;AACvB,QAAA,aAAa,EAAE,WAA6C;AAC7D,KAAA;AACD,IAAA,IAAI,EAAE;AACJ,QAAA,QAAQ,EAAO,MAAM;AACrB,QAAA,UAAU,EAAK,GAAG;AAClB,QAAA,UAAU,EAAK,GAAG;AAClB,QAAA,aAAa,EAAE,QAAQ;AACxB,KAAA;AACD,IAAA,KAAK,EAAE;AACL,QAAA,QAAQ,EAAO,UAAU;AACzB,QAAA,UAAU,EAAK,GAAG;AAClB,QAAA,UAAU,EAAK,GAAG;AAClB,QAAA,aAAa,EAAE,QAAQ;AACxB,KAAA;AACD,IAAA,OAAO,EAAE;AACP,QAAA,QAAQ,EAAO,SAAS;AACxB,QAAA,UAAU,EAAK,GAAG;AAClB,QAAA,UAAU,EAAK,GAAG;AAClB,QAAA,aAAa,EAAE,QAAQ;AACxB,KAAA;CACF,CAAC;AAEF;AAEA,MAAM,oBAAoB,GACxB,iFAAiF,CAAC;AAEpF;AAEA;;;AAGG;AACH,SAAS,cAAc,CAAC,QAAyB,EAAA;;AAC/C,IAAA,QACE,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,KAAK,KAAI;QAC/B,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AAC1D,YAAA,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;SACtB;QACD,IAAI,cAAc,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,IAAI,EAAE;YAChD,MAAM,KAAK,GACT,OAAO,KAAK,CAAC,KAAK,CAAC,QAAQ,KAAK,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,QAAQ,GAAG,EAAE,CAAC;YACvE,OAAO,CAAA,IAAA,EAAO,KAAK,CAAA,KAAA,CAAO,CAAC;SAC5B;AACD,QAAA,OAAO,EAAE,CAAC;KACX,CAAC,0CAAE,IAAI,CAAC,EAAE,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAI,EAAE,EAClB;AACJ,CAAC;AAED;;;;AAIG;AACH,SAAS,aAAa,CACpB,SAAsB,EACtB,MAAe,EACf,WAAmB,EACnB,WAAoB,EAAA;IAEpB,MAAM,GAAG,GAAG,SAAS,CAAC,gBAAgB,CAAc,aAAa,CAAC,CAAC;AACnE,IAAA,GAAG,CAAC,OAAO,CAAC,CAAC,EAAE,KAAI;QACjB,IAAI,MAAM,EAAE;AACV,YAAA,EAAE,CAAC,KAAK,CAAC,UAAU,GAAI,2BAA2B,CAAC;AACnD,YAAA,EAAE,CAAC,KAAK,CAAC,SAAS,GAAK,QAAQ,CAAC;AAChC,YAAA,EAAE,CAAC,KAAK,CAAC,UAAU,GAAI,KAAK,CAAC;AAC7B,YAAA,EAAE,CAAC,KAAK,CAAC,KAAK,GAAS,WAAW,CAAC;SACpC;aAAM;AACL,YAAA,EAAE,CAAC,KAAK,CAAC,UAAU,GAAI,WAAW,GAAG,CAAA,CAAA,EAAI,WAAW,CAAe,aAAA,CAAA,GAAG,SAAS,CAAC;AAChF,YAAA,EAAE,CAAC,KAAK,CAAC,SAAS,GAAK,QAAQ,CAAC;AAChC,YAAA,EAAE,CAAC,KAAK,CAAC,UAAU,GAAI,SAAS,CAAC;AACjC,YAAA,EAAE,CAAC,KAAK,CAAC,KAAK,GAAS,SAAS,CAAC;SAClC;AACH,KAAC,CAAC,CAAC;AACL,CAAC;AAED;AAEa,MAAA,UAAU,GAA8B,CAAC,EAerD,KAAI;AAfiD,IAAA,IAAA,EACpD,OAAO,GAAO,MAAM,EACpB,IAAI,EACJ,KAAK,EACL,KAAK,EACL,SAAS,EACT,KAAK,EACL,QAAQ,EACR,EAAE,EACF,QAAQ,EACR,QAAQ,EACR,SAAS,EACT,MAAM,GAAQ,IAAI,EAClB,WAAW,GAAG,SAAS,EAExB,GAAA,EAAA,EADI,IAAI,GAAA,MAAA,CAAA,EAAA,EAd6C,2IAerD,CADQ,CAAA;IAEP,MAAM,MAAM,GAAG,OAAO,KAAK,SAAS,IAAI,OAAO,KAAK,IAAI,CAAC;AACzD,IAAA,MAAM,GAAG,GAAM,MAAM,CAAc,IAAI,CAAC,CAAC;;IAGzC,IAAI,IAAI,IAAI,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;AACvC,QAAA,UAAU,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;KAChC;;AAGD,IAAA,IAAI,MAAM,IAAI,MAAM,EAAE;QACpB,UAAU,CAAC,oBAAoB,CAAC,CAAC;KAClC;;AAGD,IAAA,IAAI,SAAS,IAAI,MAAM,EAAE;AACvB,QAAA,qBAAqB,EAAE,CAAC;KACzB;;;IAID,SAAS,CAAC,MAAK;AACb,QAAA,IAAI,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,OAAO;YAAE,OAAO;QACpC,aAAa,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC;AACxD,KAAC,CAAC,CAAC;AAEH,IAAA,MAAM,GAAG,IAAI,EAAE,aAAF,EAAE,KAAA,KAAA,CAAA,GAAF,EAAE,GAAI,aAAa,CAAC,OAAO,CAAC,CAAsB,CAAC;;IAIhE,IAAI,SAAS,GAAG,EAAE,CAAC;IACnB,IAAI,QAAQ,GAAkB,IAAI,CAAC;AAEnC,IAAA,IAAI,SAAS,IAAI,MAAM,EAAE;AACvB,QAAA,MAAM,OAAO,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAC;AAEzC,QAAA,IAAI,SAAS,KAAK,SAAS,EAAE;AAC3B,YAAA,QAAQ,GAAI,gBAAgB,CAAC,OAAO,CAAC,CAAC;SACvC;AAAM,aAAA,IAAI,SAAS,KAAK,SAAS,EAAE;AAClC,YAAA,QAAQ,GAAI,gBAAgB,CAAC,OAAO,CAAC,CAAC;SACvC;aAAM;YACL,QAAQ,GAAI,OAAO,CAAC;AACpB,YAAA,SAAS,GAAG,iBAAiB,CAAC,SAAS,CAAC,CAAC;SAC1C;KACF;;IAID,MAAM,aAAa,GACd,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,eAAe,CAAC,OAAO,CAAC,CAAA,GACvB,IAAI,GAAI,EAAE,UAAU,EAAE,CAAA,CAAA,EAAI,IAAI,CAAA,aAAA,CAAe,EAAE,GAAG,EAAE,EACrD,GAAC,KAAK,GAAG,EAAE,KAAK,EAAE,GAAiC,EAAE,EAAC,GACrD,KAAK,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,GAAqB,EAAE,EACpD,GAAC,QAAQ;AACV,UAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE;UACtE,EAAE,EAAC,GACH,QAAQ,IAAI,CAAC,QAAQ;AACvB,UAAE;AACE,YAAA,OAAO,EAAU,aAAa;AAC9B,YAAA,eAAe,EAAE,QAAQ;AACzB,YAAA,eAAe,EAAE,UAA8C;AAC/D,YAAA,QAAQ,EAAS,QAAQ;AAC1B,SAAA;AACH,UAAE,EAAE,EAAC,EAAA,EACP,MAAM,EAAG,CAAC,EACV,OAAO,EAAE,CAAC,EACP,CAAA,EAAA,KAAK,CACT,CAAC;;AAIF,IAAA,IAAI,QAAQ,KAAK,IAAI,EAAE;QACrB,QACEA,IAAC,GAAG;;AAGF,UAAA,MAAA,CAAA,MAAA,CAAA,EAAA,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAC3D,KAAK,EAAE,aAAa,EACpB,uBAAuB,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,EACzC,EAAA,IAAI,GALH,SAAS,CAMd,EACF;KACH;;IAID,QACEA,IAAC,GAAG,EAAA,MAAA,CAAA,MAAA,CAAA,EACF,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,SAAS,EACpB,KAAK,EAAE,aAAa,EAAA,EAChB,IAAI,EAEP,EAAA,QAAA,EAAA,QAAQ,EACL,CAAA,CAAA,EACN;AACJ;;;;","x_google_ignoreList":[0]}
|
|
1
|
+
{"version":3,"file":"index.esm.js","sources":["../node_modules/tslib/tslib.es6.js","../../fonts.ts","../../animation.ts","../../Typography.tsx"],"sourcesContent":["/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise, SuppressedError, Symbol, Iterator */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\r\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\r\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\r\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\r\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\r\n var _, done = false;\r\n for (var i = decorators.length - 1; i >= 0; i--) {\r\n var context = {};\r\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\r\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\r\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\r\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\r\n if (kind === \"accessor\") {\r\n if (result === void 0) continue;\r\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\r\n if (_ = accept(result.get)) descriptor.get = _;\r\n if (_ = accept(result.set)) descriptor.set = _;\r\n if (_ = accept(result.init)) initializers.unshift(_);\r\n }\r\n else if (_ = accept(result)) {\r\n if (kind === \"field\") initializers.unshift(_);\r\n else descriptor[key] = _;\r\n }\r\n }\r\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\r\n done = true;\r\n};\r\n\r\nexport function __runInitializers(thisArg, initializers, value) {\r\n var useValue = arguments.length > 2;\r\n for (var i = 0; i < initializers.length; i++) {\r\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\r\n }\r\n return useValue ? value : void 0;\r\n};\r\n\r\nexport function __propKey(x) {\r\n return typeof x === \"symbol\" ? x : \"\".concat(x);\r\n};\r\n\r\nexport function __setFunctionName(f, name, prefix) {\r\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\r\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\r\n};\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\r\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = Object.create((typeof AsyncIterator === \"function\" ? AsyncIterator : Object).prototype), verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\r\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nvar ownKeys = function(o) {\r\n ownKeys = Object.getOwnPropertyNames || function (o) {\r\n var ar = [];\r\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\r\n return ar;\r\n };\r\n return ownKeys(o);\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n\r\nexport function __addDisposableResource(env, value, async) {\r\n if (value !== null && value !== void 0) {\r\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\r\n var dispose, inner;\r\n if (async) {\r\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\r\n dispose = value[Symbol.asyncDispose];\r\n }\r\n if (dispose === void 0) {\r\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\r\n dispose = value[Symbol.dispose];\r\n if (async) inner = dispose;\r\n }\r\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\r\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\r\n env.stack.push({ value: value, dispose: dispose, async: async });\r\n }\r\n else if (async) {\r\n env.stack.push({ async: true });\r\n }\r\n return value;\r\n\r\n}\r\n\r\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\r\n var e = new Error(message);\r\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\r\n};\r\n\r\nexport function __disposeResources(env) {\r\n function fail(e) {\r\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\r\n env.hasError = true;\r\n }\r\n var r, s = 0;\r\n function next() {\r\n while (r = env.stack.pop()) {\r\n try {\r\n if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);\r\n if (r.dispose) {\r\n var result = r.dispose.call(r.value);\r\n if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\r\n }\r\n else s |= 1;\r\n }\r\n catch (e) {\r\n fail(e);\r\n }\r\n }\r\n if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();\r\n if (env.hasError) throw env.error;\r\n }\r\n return next();\r\n}\r\n\r\nexport function __rewriteRelativeImportExtension(path, preserveJsx) {\r\n if (typeof path === \"string\" && /^\\.\\.?\\//.test(path)) {\r\n return path.replace(/\\.(tsx)$|((?:\\.d)?)((?:\\.[^./]+?)?)\\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {\r\n return tsx ? preserveJsx ? \".jsx\" : \".js\" : d && (!ext || !cm) ? m : (d + ext + \".\" + cm.toLowerCase() + \"js\");\r\n });\r\n }\r\n return path;\r\n}\r\n\r\nexport default {\r\n __extends: __extends,\r\n __assign: __assign,\r\n __rest: __rest,\r\n __decorate: __decorate,\r\n __param: __param,\r\n __esDecorate: __esDecorate,\r\n __runInitializers: __runInitializers,\r\n __propKey: __propKey,\r\n __setFunctionName: __setFunctionName,\r\n __metadata: __metadata,\r\n __awaiter: __awaiter,\r\n __generator: __generator,\r\n __createBinding: __createBinding,\r\n __exportStar: __exportStar,\r\n __values: __values,\r\n __read: __read,\r\n __spread: __spread,\r\n __spreadArrays: __spreadArrays,\r\n __spreadArray: __spreadArray,\r\n __await: __await,\r\n __asyncGenerator: __asyncGenerator,\r\n __asyncDelegator: __asyncDelegator,\r\n __asyncValues: __asyncValues,\r\n __makeTemplateObject: __makeTemplateObject,\r\n __importStar: __importStar,\r\n __importDefault: __importDefault,\r\n __classPrivateFieldGet: __classPrivateFieldGet,\r\n __classPrivateFieldSet: __classPrivateFieldSet,\r\n __classPrivateFieldIn: __classPrivateFieldIn,\r\n __addDisposableResource: __addDisposableResource,\r\n __disposeResources: __disposeResources,\r\n __rewriteRelativeImportExtension: __rewriteRelativeImportExtension,\r\n};\r\n","/**\n * A curated list of popular Google Fonts.\n * Pass any valid Google Font name to the `font` prop — if it's in this list,\n * it will be auto-injected via a <link> tag. For unlisted fonts, add them here\n * or import them manually in your project.\n */\nexport const GOOGLE_FONTS: string[] = [\n // Serif\n \"Playfair Display\",\n \"Merriweather\",\n \"Lora\",\n \"EB Garamond\",\n \"Libre Baskerville\",\n \"Cormorant Garamond\",\n \"DM Serif Display\",\n \"Crimson Text\",\n \"Source Serif 4\",\n \"Fraunces\",\n\n // Sans-serif\n \"Inter\",\n \"Roboto\",\n \"Open Sans\",\n \"Nunito\",\n \"Poppins\",\n \"Raleway\",\n \"Outfit\",\n \"DM Sans\",\n \"Manrope\",\n \"Plus Jakarta Sans\",\n \"Figtree\",\n \"Syne\",\n \"Albert Sans\",\n\n // Display / Expressive\n \"Bebas Neue\",\n \"Oswald\",\n \"Anton\",\n \"Barlow Condensed\",\n \"Righteous\",\n \"Abril Fatface\",\n \"Dela Gothic One\",\n \"Space Grotesk\",\n \"Unbounded\",\n \"Big Shoulders Display\",\n\n // Mono\n \"JetBrains Mono\",\n \"Fira Code\",\n \"Source Code Pro\",\n \"Space Mono\",\n \"IBM Plex Mono\",\n];\n\nconst injectedFonts = new Set<string>();\n\n/**\n * Builds a Google Fonts URL for a given font family.\n * Requests weights 300, 400, 500, 600, 700, 800 — italic variants included.\n */\nexport function buildFontUrl(fontFamily: string): string {\n const encoded = fontFamily.replace(/ /g, \"+\");\n return `https://fonts.googleapis.com/css2?family=${encoded}:ital,wght@0,300;0,400;0,500;0,600;0,700;0,800;1,400;1,700&display=swap`;\n}\n\n/**\n * Injects a Google Fonts <link> into <head> once per unique URL.\n * Safe to call multiple times — deduped via a Set.\n */\nexport function injectFont(url: string): void {\n if (typeof document === \"undefined\") return; // SSR guard\n if (injectedFonts.has(url)) return;\n\n const link = document.createElement(\"link\");\n link.rel = \"stylesheet\";\n link.href = url;\n document.head.appendChild(link);\n injectedFonts.add(url);\n}\n\n/**\n * Pre-load a set of fonts eagerly (e.g. at app root).\n * Usage: preloadFonts([\"Playfair Display\", \"Inter\"])\n */\nexport function preloadFonts(families: string[]): void {\n families.forEach((f) => {\n if (GOOGLE_FONTS.includes(f)) {\n injectFont(buildFontUrl(f));\n } else {\n console.warn(\n `[@edwinvakayil/calligraphy] \"${f}\" is not in the bundled GOOGLE_FONTS list. ` +\n `Add it to the list or import it manually.`\n );\n }\n });\n}","import { HeroAnimation } from \"./types\";\n\nconst STYLE_ID = \"rts-hero-animations\";\n\nconst CSS = `\n@keyframes rts-rise{from{opacity:0;transform:translateY(32px)}to{opacity:1;transform:translateY(0)}}\n@keyframes rts-clip{from{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0 0% 0 0)}}\n@keyframes rts-pop{0%{opacity:0;transform:scale(0.75)}60%{opacity:1;transform:scale(1.04)}100%{transform:scale(1)}}\n@keyframes rts-blur{from{opacity:0;filter:blur(14px);transform:scale(1.04)}to{opacity:1;filter:blur(0);transform:scale(1)}}\n@keyframes rts-flip{from{opacity:0;transform:perspective(600px) rotateX(30deg) translateY(20px)}to{opacity:1;transform:perspective(600px) rotateX(0) translateY(0)}}\n@keyframes rts-swipe{from{opacity:0;transform:translateX(60px)}to{opacity:1;transform:translateX(0)}}\n@keyframes rts-bounce{0%{opacity:0;transform:translateY(-60px)}60%{opacity:1;transform:translateY(10px)}80%{transform:translateY(-5px)}100%{transform:translateY(0)}}\n@keyframes rts-type{from{width:0}to{width:100%}}\n@keyframes rts-blink{50%{border-color:transparent}}\n@keyframes rts-word-rise{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}\n@keyframes rts-letter-in{from{opacity:0;transform:translateX(-16px) rotate(-4deg)}to{opacity:1;transform:none}}\n\n.rts-rise { animation: rts-rise 0.9s cubic-bezier(0.16,1,0.3,1) both }\n.rts-clip { animation: rts-clip 1.1s cubic-bezier(0.77,0,0.18,1) both }\n.rts-pop { animation: rts-pop 0.7s cubic-bezier(0.34,1.56,0.64,1) both }\n.rts-blur { animation: rts-blur 1s cubic-bezier(0.16,1,0.3,1) both }\n.rts-flip { animation: rts-flip 0.9s cubic-bezier(0.16,1,0.3,1) both; transform-origin: center bottom }\n.rts-swipe { animation: rts-swipe 0.8s cubic-bezier(0.16,1,0.3,1) both }\n.rts-bounce { animation: rts-bounce 0.9s cubic-bezier(0.36,0.07,0.19,0.97) both }\n.rts-typewriter{ overflow: hidden; white-space: nowrap; border-right: 2px solid currentColor; width: 0; animation: rts-type 1.6s steps(22,end) both, rts-blink 0.7s step-end 1.6s 3 }\n.rts-word { display: inline-block; opacity: 0; transform: translateY(24px); animation: rts-word-rise 0.7s cubic-bezier(0.16,1,0.3,1) both }\n.rts-letter { display: inline-block; opacity: 0; transform: translateX(-16px) rotate(-4deg); animation: rts-letter-in 0.5s cubic-bezier(0.16,1,0.3,1) both }\n`;\n\nexport function injectAnimationStyles(): void {\n if (typeof document === \"undefined\") return;\n if (document.getElementById(STYLE_ID)) return;\n const style = document.createElement(\"style\");\n style.id = STYLE_ID;\n style.textContent = CSS;\n document.head.appendChild(style);\n}\n\nexport function getAnimationClass(animation: HeroAnimation): string {\n const map: Record<HeroAnimation, string> = {\n rise: \"rts-rise\",\n clip: \"rts-clip\",\n pop: \"rts-pop\",\n blur: \"rts-blur\",\n flip: \"rts-flip\",\n swipe: \"rts-swipe\",\n bounce: \"rts-bounce\",\n typewriter: \"rts-typewriter\",\n stagger: \"\",\n letters: \"\",\n };\n return map[animation] ?? \"\";\n}\n\n/**\n * Wraps each word in an animated span.\n * <em> tokens are preserved as-is in the HTML — Typography's useEffect\n * will apply inline styles to them after mount.\n */\nexport function buildStaggerHTML(html: string): string {\n const tokens = html.match(/(<em>[\\s\\S]*?<\\/em>|[^\\s]+)/g) ?? [];\n return tokens\n .map((tok, i) => {\n const delay = (i * 0.07).toFixed(2);\n if (tok.startsWith(\"<em>\")) {\n // Wrap the inner text in the animated span, keep <em> outside\n const inner = tok.slice(4, -5);\n return `<em><span class=\"rts-word\" style=\"animation-delay:${delay}s\">${inner}</span></em>`;\n }\n return `<span class=\"rts-word\" style=\"animation-delay:${delay}s\">${tok}</span>`;\n })\n .join(\" \");\n}\n\n/**\n * Wraps each character in an animated span.\n * <em> tags are preserved in the output — Typography's useEffect applies\n * the actual italic/non-italic inline styles after the DOM is ready.\n */\nexport function buildLettersHTML(html: string): string {\n const result: string[] = [];\n let inEm = false;\n let delay = 0;\n const step = 0.04;\n let i = 0;\n\n while (i < html.length) {\n if (html.startsWith(\"<em>\", i)) { inEm = true; i += 4; continue; }\n if (html.startsWith(\"</em>\", i)) { inEm = false; i += 5; continue; }\n\n const ch = html[i];\n if (ch === \" \") { result.push(\" \"); i++; continue; }\n\n const span = `<span class=\"rts-letter\" style=\"animation-delay:${delay.toFixed(2)}s\">${ch}</span>`;\n // Preserve <em> wrapper in DOM — styles applied by useEffect\n result.push(inEm ? `<em>${span}</em>` : span);\n delay += step;\n i++;\n }\n\n return result.join(\"\");\n}","import React, { CSSProperties, Children, isValidElement, useRef, useEffect } from \"react\";\nimport { TypographyProps, VariantTagMap, VariantStyleMap } from \"./types\";\nimport { GOOGLE_FONTS, buildFontUrl, injectFont } from \"./fonts\";\nimport {\n injectAnimationStyles,\n getAnimationClass,\n buildStaggerHTML,\n buildLettersHTML,\n} from \"./animation\";\n\n// ─── Static maps ─────────────────────────────────────────────────────────────\n\nconst variantTagMap: VariantTagMap = {\n Display: \"h1\",\n H1: \"h1\",\n H2: \"h2\",\n H3: \"h3\",\n H4: \"h4\",\n H5: \"h5\",\n H6: \"h6\",\n Subheading: \"h6\",\n Overline: \"span\",\n Body: \"p\",\n Label: \"label\",\n Caption: \"span\",\n};\n\nconst variantStyleMap: VariantStyleMap = {\n Display: {\n fontSize: \"clamp(2.5rem, 6vw, 5rem)\",\n fontWeight: 800,\n lineHeight: 1.05,\n letterSpacing: \"-0.03em\",\n },\n H1: {\n fontSize: \"clamp(2rem, 4vw, 3rem)\",\n fontWeight: 700,\n lineHeight: 1.1,\n letterSpacing: \"-0.02em\",\n },\n H2: {\n fontSize: \"clamp(1.5rem, 3vw, 2.25rem)\",\n fontWeight: 700,\n lineHeight: 1.2,\n letterSpacing: \"-0.015em\",\n },\n H3: {\n fontSize: \"clamp(1.25rem, 2.5vw, 1.75rem)\",\n fontWeight: 600,\n lineHeight: 1.25,\n letterSpacing: \"-0.01em\",\n },\n H4: {\n fontSize: \"clamp(1.1rem, 2vw, 1.375rem)\",\n fontWeight: 600,\n lineHeight: 1.3,\n letterSpacing: \"-0.005em\",\n },\n H5: {\n fontSize: \"clamp(1rem, 1.5vw, 1.125rem)\",\n fontWeight: 600,\n lineHeight: 1.35,\n letterSpacing: \"0em\",\n },\n H6: {\n fontSize: \"1rem\",\n fontWeight: 600,\n lineHeight: 1.4,\n letterSpacing: \"0em\",\n },\n Subheading: {\n fontSize: \"1.125rem\",\n fontWeight: 500,\n lineHeight: 1.5,\n letterSpacing: \"0.005em\",\n },\n Overline: {\n fontSize: \"0.6875rem\",\n fontWeight: 700,\n lineHeight: 1.6,\n letterSpacing: \"0.12em\",\n textTransform: \"uppercase\" as CSSProperties[\"textTransform\"],\n },\n Body: {\n fontSize: \"1rem\",\n fontWeight: 400,\n lineHeight: 1.7,\n letterSpacing: \"0.01em\",\n },\n Label: {\n fontSize: \"0.875rem\",\n fontWeight: 500,\n lineHeight: 1.5,\n letterSpacing: \"0.02em\",\n },\n Caption: {\n fontSize: \"0.75rem\",\n fontWeight: 400,\n lineHeight: 1.6,\n letterSpacing: \"0.03em\",\n },\n};\n\n// ─── Constants ───────────────────────────────────────────────────────────────\n\nconst INSTRUMENT_SERIF_URL =\n \"https://fonts.googleapis.com/css2?family=Instrument+Serif:ital@0;1&display=swap\";\n\n// ─── Helpers ─────────────────────────────────────────────────────────────────\n\n/**\n * Serialise React children → raw HTML string.\n * Preserves <em>text</em> nodes for animation builders.\n */\nfunction childrenToHTML(children: React.ReactNode): string {\n return (\n Children.map(children, (child) => {\n if (typeof child === \"string\" || typeof child === \"number\") {\n return String(child);\n }\n if (isValidElement(child) && child.type === \"em\") {\n const inner =\n typeof child.props.children === \"string\" ? child.props.children : \"\";\n return `<em>${inner}</em>`;\n }\n return \"\";\n })?.join(\"\") ?? \"\"\n );\n}\n\n/**\n * Re-map React children so that <em> elements get explicit inline styles.\n * This is used for the no-animation render path where we keep real React nodes.\n * Inline styles on the <em> itself beat any inherited font-family from the parent.\n */\nfunction renderChildrenWithEmStyles(\n children: React.ReactNode,\n italic: boolean,\n accentColor: string,\n headingFont?: string\n): React.ReactNode {\n const italicStyle: CSSProperties = {\n fontFamily: \"'Instrument Serif', serif\",\n fontStyle: \"italic\",\n fontWeight: 400,\n color: accentColor,\n };\n\n const noItalicStyle: CSSProperties = {\n fontFamily: headingFont ? `'${headingFont}', sans-serif` : \"inherit\",\n fontStyle: \"normal\",\n fontWeight: \"inherit\" as any,\n color: \"inherit\",\n };\n\n return Children.map(children, (child, i) => {\n if (isValidElement(child) && child.type === \"em\") {\n return (\n <em key={i} style={italic ? italicStyle : noItalicStyle}>\n {child.props.children}\n </em>\n );\n }\n return child;\n });\n}\n\n/**\n * After dangerouslySetInnerHTML renders, walk the DOM and apply inline styles\n * to every <em> and <em> > span so the font switch is guaranteed.\n */\nfunction applyEmStylesDOM(\n container: HTMLElement,\n italic: boolean,\n accentColor: string,\n headingFont?: string\n): void {\n // Select both <em> and any animated letter spans nested inside <em>\n container.querySelectorAll<HTMLElement>(\"em\").forEach((el) => {\n if (italic) {\n el.style.fontFamily = \"'Instrument Serif', serif\";\n el.style.fontStyle = \"italic\";\n el.style.fontWeight = \"400\";\n el.style.color = accentColor;\n } else {\n el.style.fontFamily = headingFont ? `'${headingFont}', sans-serif` : \"inherit\";\n el.style.fontStyle = \"normal\";\n el.style.fontWeight = \"inherit\";\n el.style.color = \"inherit\";\n }\n });\n\n // Also style the animated letter spans inside <em> (used by \"letters\" animation)\n container.querySelectorAll<HTMLElement>(\"em > span\").forEach((el) => {\n if (italic) {\n el.style.fontFamily = \"'Instrument Serif', serif\";\n el.style.fontStyle = \"italic\";\n el.style.fontWeight = \"400\";\n el.style.color = accentColor;\n } else {\n el.style.fontFamily = headingFont ? `'${headingFont}', sans-serif` : \"inherit\";\n el.style.fontStyle = \"normal\";\n el.style.fontWeight = \"inherit\";\n el.style.color = \"inherit\";\n }\n });\n}\n\n// ─── Component ───────────────────────────────────────────────────────────────\n\nexport const Typography: React.FC<TypographyProps> = ({\n variant = \"Body\",\n font,\n color,\n align,\n className,\n style,\n children,\n as,\n truncate,\n maxLines,\n animation,\n italic = false,\n accentColor = \"#c8b89a\",\n ...rest\n}) => {\n const isHero = variant === \"Display\" || variant === \"H1\";\n const ref = useRef<HTMLElement>(null);\n\n // Always inject Instrument Serif for hero variants so it's pre-loaded\n // and ready the moment italic is toggled on — no flash of wrong font.\n if (isHero) {\n injectFont(INSTRUMENT_SERIF_URL);\n }\n\n // Inject heading Google Font\n if (font && GOOGLE_FONTS.includes(font)) {\n injectFont(buildFontUrl(font));\n }\n\n // Inject animation keyframes (once, global)\n if (animation && isHero) {\n injectAnimationStyles();\n }\n\n // For animation paths (dangerouslySetInnerHTML), walk the DOM after render\n // and stamp inline styles onto every <em> — guaranteed to beat inheritance.\n useEffect(() => {\n if (!isHero || !animation || !ref.current) return;\n applyEmStylesDOM(ref.current, italic, accentColor, font);\n }, [italic, accentColor, font, animation, isHero]);\n\n const Tag = (as ?? variantTagMap[variant]) as React.ElementType;\n\n // ── Compute animation class + inner HTML ──────────────────────────────────\n\n let animClass = \"\";\n let heroHTML: string | null = null;\n\n if (animation && isHero) {\n const rawHTML = childrenToHTML(children);\n\n if (animation === \"stagger\") {\n heroHTML = buildStaggerHTML(rawHTML);\n } else if (animation === \"letters\") {\n heroHTML = buildLettersHTML(rawHTML);\n } else {\n heroHTML = rawHTML;\n animClass = getAnimationClass(animation);\n }\n }\n\n // ── Computed container styles ─────────────────────────────────────────────\n\n const computedStyle: CSSProperties = {\n ...variantStyleMap[variant],\n ...(font ? { fontFamily: `'${font}', sans-serif` } : {}),\n ...(color ? { color } : {}),\n ...(align ? { textAlign: align } : {}),\n ...(truncate\n ? { overflow: \"hidden\", textOverflow: \"ellipsis\", whiteSpace: \"nowrap\" }\n : {}),\n ...(maxLines && !truncate\n ? {\n display: \"-webkit-box\",\n WebkitLineClamp: maxLines,\n WebkitBoxOrient: \"vertical\" as CSSProperties[\"WebkitBoxOrient\"],\n overflow: \"hidden\",\n }\n : {}),\n margin: 0,\n padding: 0,\n ...style,\n };\n\n // ── Render: animation path (dangerouslySetInnerHTML) ──────────────────────\n\n if (heroHTML !== null) {\n return (\n <Tag\n key={animation}\n ref={ref}\n className={[animClass, className].filter(Boolean).join(\" \")}\n style={computedStyle}\n dangerouslySetInnerHTML={{ __html: heroHTML }}\n {...rest}\n />\n );\n }\n\n // ── Render: standard path (real React children with em styles) ────────────\n\n const processedChildren = isHero\n ? renderChildrenWithEmStyles(children, italic, accentColor, font)\n : children;\n\n return (\n <Tag\n ref={ref}\n className={className}\n style={computedStyle}\n {...rest}\n >\n {processedChildren}\n </Tag>\n );\n};\n\nexport default Typography;"],"names":["_jsx"],"mappings":"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","x_google_ignoreList":[0]}
|
package/dist/index.js
CHANGED
|
@@ -327,12 +327,12 @@ const variantStyleMap = {
|
|
|
327
327
|
letterSpacing: "0.03em",
|
|
328
328
|
},
|
|
329
329
|
};
|
|
330
|
-
// ───
|
|
330
|
+
// ─── Constants ───────────────────────────────────────────────────────────────
|
|
331
331
|
const INSTRUMENT_SERIF_URL = "https://fonts.googleapis.com/css2?family=Instrument+Serif:ital@0;1&display=swap";
|
|
332
332
|
// ─── Helpers ─────────────────────────────────────────────────────────────────
|
|
333
333
|
/**
|
|
334
|
-
* Serialise React children
|
|
335
|
-
*
|
|
334
|
+
* Serialise React children → raw HTML string.
|
|
335
|
+
* Preserves <em>text</em> nodes for animation builders.
|
|
336
336
|
*/
|
|
337
337
|
function childrenToHTML(children) {
|
|
338
338
|
var _a, _b;
|
|
@@ -348,13 +348,52 @@ function childrenToHTML(children) {
|
|
|
348
348
|
})) === null || _a === void 0 ? void 0 : _a.join("")) !== null && _b !== void 0 ? _b : "");
|
|
349
349
|
}
|
|
350
350
|
/**
|
|
351
|
-
*
|
|
352
|
-
*
|
|
353
|
-
*
|
|
351
|
+
* Re-map React children so that <em> elements get explicit inline styles.
|
|
352
|
+
* This is used for the no-animation render path where we keep real React nodes.
|
|
353
|
+
* Inline styles on the <em> itself beat any inherited font-family from the parent.
|
|
354
354
|
*/
|
|
355
|
-
function
|
|
356
|
-
const
|
|
357
|
-
|
|
355
|
+
function renderChildrenWithEmStyles(children, italic, accentColor, headingFont) {
|
|
356
|
+
const italicStyle = {
|
|
357
|
+
fontFamily: "'Instrument Serif', serif",
|
|
358
|
+
fontStyle: "italic",
|
|
359
|
+
fontWeight: 400,
|
|
360
|
+
color: accentColor,
|
|
361
|
+
};
|
|
362
|
+
const noItalicStyle = {
|
|
363
|
+
fontFamily: headingFont ? `'${headingFont}', sans-serif` : "inherit",
|
|
364
|
+
fontStyle: "normal",
|
|
365
|
+
fontWeight: "inherit",
|
|
366
|
+
color: "inherit",
|
|
367
|
+
};
|
|
368
|
+
return react.Children.map(children, (child, i) => {
|
|
369
|
+
if (react.isValidElement(child) && child.type === "em") {
|
|
370
|
+
return (jsxRuntime.jsx("em", { style: italic ? italicStyle : noItalicStyle, children: child.props.children }, i));
|
|
371
|
+
}
|
|
372
|
+
return child;
|
|
373
|
+
});
|
|
374
|
+
}
|
|
375
|
+
/**
|
|
376
|
+
* After dangerouslySetInnerHTML renders, walk the DOM and apply inline styles
|
|
377
|
+
* to every <em> and <em> > span so the font switch is guaranteed.
|
|
378
|
+
*/
|
|
379
|
+
function applyEmStylesDOM(container, italic, accentColor, headingFont) {
|
|
380
|
+
// Select both <em> and any animated letter spans nested inside <em>
|
|
381
|
+
container.querySelectorAll("em").forEach((el) => {
|
|
382
|
+
if (italic) {
|
|
383
|
+
el.style.fontFamily = "'Instrument Serif', serif";
|
|
384
|
+
el.style.fontStyle = "italic";
|
|
385
|
+
el.style.fontWeight = "400";
|
|
386
|
+
el.style.color = accentColor;
|
|
387
|
+
}
|
|
388
|
+
else {
|
|
389
|
+
el.style.fontFamily = headingFont ? `'${headingFont}', sans-serif` : "inherit";
|
|
390
|
+
el.style.fontStyle = "normal";
|
|
391
|
+
el.style.fontWeight = "inherit";
|
|
392
|
+
el.style.color = "inherit";
|
|
393
|
+
}
|
|
394
|
+
});
|
|
395
|
+
// Also style the animated letter spans inside <em> (used by "letters" animation)
|
|
396
|
+
container.querySelectorAll("em > span").forEach((el) => {
|
|
358
397
|
if (italic) {
|
|
359
398
|
el.style.fontFamily = "'Instrument Serif', serif";
|
|
360
399
|
el.style.fontStyle = "italic";
|
|
@@ -371,28 +410,29 @@ function applyEmStyles(container, italic, accentColor, headingFont) {
|
|
|
371
410
|
}
|
|
372
411
|
// ─── Component ───────────────────────────────────────────────────────────────
|
|
373
412
|
const Typography = (_a) => {
|
|
374
|
-
var { variant = "Body", font, color, align, className, style, children, as, truncate, maxLines, animation, italic =
|
|
413
|
+
var { variant = "Body", font, color, align, className, style, children, as, truncate, maxLines, animation, italic = false, accentColor = "#c8b89a" } = _a, rest = __rest(_a, ["variant", "font", "color", "align", "className", "style", "children", "as", "truncate", "maxLines", "animation", "italic", "accentColor"]);
|
|
375
414
|
const isHero = variant === "Display" || variant === "H1";
|
|
376
415
|
const ref = react.useRef(null);
|
|
377
|
-
//
|
|
416
|
+
// Always inject Instrument Serif for hero variants so it's pre-loaded
|
|
417
|
+
// and ready the moment italic is toggled on — no flash of wrong font.
|
|
418
|
+
if (isHero) {
|
|
419
|
+
injectFont(INSTRUMENT_SERIF_URL);
|
|
420
|
+
}
|
|
421
|
+
// Inject heading Google Font
|
|
378
422
|
if (font && GOOGLE_FONTS.includes(font)) {
|
|
379
423
|
injectFont(buildFontUrl(font));
|
|
380
424
|
}
|
|
381
|
-
// Inject
|
|
382
|
-
if (isHero && italic) {
|
|
383
|
-
injectFont(INSTRUMENT_SERIF_URL);
|
|
384
|
-
}
|
|
385
|
-
// Inject animation keyframe stylesheet once
|
|
425
|
+
// Inject animation keyframes (once, global)
|
|
386
426
|
if (animation && isHero) {
|
|
387
427
|
injectAnimationStyles();
|
|
388
428
|
}
|
|
389
|
-
//
|
|
390
|
-
//
|
|
429
|
+
// For animation paths (dangerouslySetInnerHTML), walk the DOM after render
|
|
430
|
+
// and stamp inline styles onto every <em> — guaranteed to beat inheritance.
|
|
391
431
|
react.useEffect(() => {
|
|
392
|
-
if (!isHero || !ref.current)
|
|
432
|
+
if (!isHero || !animation || !ref.current)
|
|
393
433
|
return;
|
|
394
|
-
|
|
395
|
-
});
|
|
434
|
+
applyEmStylesDOM(ref.current, italic, accentColor, font);
|
|
435
|
+
}, [italic, accentColor, font, animation, isHero]);
|
|
396
436
|
const Tag = (as !== null && as !== void 0 ? as : variantTagMap[variant]);
|
|
397
437
|
// ── Compute animation class + inner HTML ──────────────────────────────────
|
|
398
438
|
let animClass = "";
|
|
@@ -410,7 +450,7 @@ const Typography = (_a) => {
|
|
|
410
450
|
animClass = getAnimationClass(animation);
|
|
411
451
|
}
|
|
412
452
|
}
|
|
413
|
-
// ── Computed styles
|
|
453
|
+
// ── Computed container styles ─────────────────────────────────────────────
|
|
414
454
|
const computedStyle = Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, variantStyleMap[variant]), (font ? { fontFamily: `'${font}', sans-serif` } : {})), (color ? { color } : {})), (align ? { textAlign: align } : {})), (truncate
|
|
415
455
|
? { overflow: "hidden", textOverflow: "ellipsis", whiteSpace: "nowrap" }
|
|
416
456
|
: {})), (maxLines && !truncate
|
|
@@ -421,14 +461,15 @@ const Typography = (_a) => {
|
|
|
421
461
|
overflow: "hidden",
|
|
422
462
|
}
|
|
423
463
|
: {})), { margin: 0, padding: 0 }), style);
|
|
424
|
-
// ── Render
|
|
464
|
+
// ── Render: animation path (dangerouslySetInnerHTML) ──────────────────────
|
|
425
465
|
if (heroHTML !== null) {
|
|
426
|
-
return (jsxRuntime.jsx(Tag
|
|
427
|
-
// key forces a fresh DOM node when animation changes → keyframe re-fires
|
|
428
|
-
, Object.assign({ ref: ref, className: [animClass, className].filter(Boolean).join(" "), style: computedStyle, dangerouslySetInnerHTML: { __html: heroHTML } }, rest), animation));
|
|
466
|
+
return (jsxRuntime.jsx(Tag, Object.assign({ ref: ref, className: [animClass, className].filter(Boolean).join(" "), style: computedStyle, dangerouslySetInnerHTML: { __html: heroHTML } }, rest), animation));
|
|
429
467
|
}
|
|
430
|
-
// ── Render children
|
|
431
|
-
|
|
468
|
+
// ── Render: standard path (real React children with em styles) ────────────
|
|
469
|
+
const processedChildren = isHero
|
|
470
|
+
? renderChildrenWithEmStyles(children, italic, accentColor, font)
|
|
471
|
+
: children;
|
|
472
|
+
return (jsxRuntime.jsx(Tag, Object.assign({ ref: ref, className: className, style: computedStyle }, rest, { children: processedChildren })));
|
|
432
473
|
};
|
|
433
474
|
|
|
434
475
|
exports.GOOGLE_FONTS = GOOGLE_FONTS;
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../node_modules/tslib/tslib.es6.js","../../fonts.ts","../../animation.ts","../../Typography.tsx"],"sourcesContent":["/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise, SuppressedError, Symbol, Iterator */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\r\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\r\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\r\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\r\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\r\n var _, done = false;\r\n for (var i = decorators.length - 1; i >= 0; i--) {\r\n var context = {};\r\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\r\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\r\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\r\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\r\n if (kind === \"accessor\") {\r\n if (result === void 0) continue;\r\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\r\n if (_ = accept(result.get)) descriptor.get = _;\r\n if (_ = accept(result.set)) descriptor.set = _;\r\n if (_ = accept(result.init)) initializers.unshift(_);\r\n }\r\n else if (_ = accept(result)) {\r\n if (kind === \"field\") initializers.unshift(_);\r\n else descriptor[key] = _;\r\n }\r\n }\r\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\r\n done = true;\r\n};\r\n\r\nexport function __runInitializers(thisArg, initializers, value) {\r\n var useValue = arguments.length > 2;\r\n for (var i = 0; i < initializers.length; i++) {\r\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\r\n }\r\n return useValue ? value : void 0;\r\n};\r\n\r\nexport function __propKey(x) {\r\n return typeof x === \"symbol\" ? x : \"\".concat(x);\r\n};\r\n\r\nexport function __setFunctionName(f, name, prefix) {\r\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\r\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\r\n};\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\r\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = Object.create((typeof AsyncIterator === \"function\" ? AsyncIterator : Object).prototype), verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\r\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nvar ownKeys = function(o) {\r\n ownKeys = Object.getOwnPropertyNames || function (o) {\r\n var ar = [];\r\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\r\n return ar;\r\n };\r\n return ownKeys(o);\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n\r\nexport function __addDisposableResource(env, value, async) {\r\n if (value !== null && value !== void 0) {\r\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\r\n var dispose, inner;\r\n if (async) {\r\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\r\n dispose = value[Symbol.asyncDispose];\r\n }\r\n if (dispose === void 0) {\r\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\r\n dispose = value[Symbol.dispose];\r\n if (async) inner = dispose;\r\n }\r\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\r\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\r\n env.stack.push({ value: value, dispose: dispose, async: async });\r\n }\r\n else if (async) {\r\n env.stack.push({ async: true });\r\n }\r\n return value;\r\n\r\n}\r\n\r\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\r\n var e = new Error(message);\r\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\r\n};\r\n\r\nexport function __disposeResources(env) {\r\n function fail(e) {\r\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\r\n env.hasError = true;\r\n }\r\n var r, s = 0;\r\n function next() {\r\n while (r = env.stack.pop()) {\r\n try {\r\n if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);\r\n if (r.dispose) {\r\n var result = r.dispose.call(r.value);\r\n if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\r\n }\r\n else s |= 1;\r\n }\r\n catch (e) {\r\n fail(e);\r\n }\r\n }\r\n if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();\r\n if (env.hasError) throw env.error;\r\n }\r\n return next();\r\n}\r\n\r\nexport function __rewriteRelativeImportExtension(path, preserveJsx) {\r\n if (typeof path === \"string\" && /^\\.\\.?\\//.test(path)) {\r\n return path.replace(/\\.(tsx)$|((?:\\.d)?)((?:\\.[^./]+?)?)\\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {\r\n return tsx ? preserveJsx ? \".jsx\" : \".js\" : d && (!ext || !cm) ? m : (d + ext + \".\" + cm.toLowerCase() + \"js\");\r\n });\r\n }\r\n return path;\r\n}\r\n\r\nexport default {\r\n __extends: __extends,\r\n __assign: __assign,\r\n __rest: __rest,\r\n __decorate: __decorate,\r\n __param: __param,\r\n __esDecorate: __esDecorate,\r\n __runInitializers: __runInitializers,\r\n __propKey: __propKey,\r\n __setFunctionName: __setFunctionName,\r\n __metadata: __metadata,\r\n __awaiter: __awaiter,\r\n __generator: __generator,\r\n __createBinding: __createBinding,\r\n __exportStar: __exportStar,\r\n __values: __values,\r\n __read: __read,\r\n __spread: __spread,\r\n __spreadArrays: __spreadArrays,\r\n __spreadArray: __spreadArray,\r\n __await: __await,\r\n __asyncGenerator: __asyncGenerator,\r\n __asyncDelegator: __asyncDelegator,\r\n __asyncValues: __asyncValues,\r\n __makeTemplateObject: __makeTemplateObject,\r\n __importStar: __importStar,\r\n __importDefault: __importDefault,\r\n __classPrivateFieldGet: __classPrivateFieldGet,\r\n __classPrivateFieldSet: __classPrivateFieldSet,\r\n __classPrivateFieldIn: __classPrivateFieldIn,\r\n __addDisposableResource: __addDisposableResource,\r\n __disposeResources: __disposeResources,\r\n __rewriteRelativeImportExtension: __rewriteRelativeImportExtension,\r\n};\r\n","/**\n * A curated list of popular Google Fonts.\n * Pass any valid Google Font name to the `font` prop — if it's in this list,\n * it will be auto-injected via a <link> tag. For unlisted fonts, add them here\n * or import them manually in your project.\n */\nexport const GOOGLE_FONTS: string[] = [\n // Serif\n \"Playfair Display\",\n \"Merriweather\",\n \"Lora\",\n \"EB Garamond\",\n \"Libre Baskerville\",\n \"Cormorant Garamond\",\n \"DM Serif Display\",\n \"Crimson Text\",\n \"Source Serif 4\",\n \"Fraunces\",\n\n // Sans-serif\n \"Inter\",\n \"Roboto\",\n \"Open Sans\",\n \"Nunito\",\n \"Poppins\",\n \"Raleway\",\n \"Outfit\",\n \"DM Sans\",\n \"Manrope\",\n \"Plus Jakarta Sans\",\n \"Figtree\",\n \"Syne\",\n \"Albert Sans\",\n\n // Display / Expressive\n \"Bebas Neue\",\n \"Oswald\",\n \"Anton\",\n \"Barlow Condensed\",\n \"Righteous\",\n \"Abril Fatface\",\n \"Dela Gothic One\",\n \"Space Grotesk\",\n \"Unbounded\",\n \"Big Shoulders Display\",\n\n // Mono\n \"JetBrains Mono\",\n \"Fira Code\",\n \"Source Code Pro\",\n \"Space Mono\",\n \"IBM Plex Mono\",\n];\n\nconst injectedFonts = new Set<string>();\n\n/**\n * Builds a Google Fonts URL for a given font family.\n * Requests weights 300, 400, 500, 600, 700, 800 — italic variants included.\n */\nexport function buildFontUrl(fontFamily: string): string {\n const encoded = fontFamily.replace(/ /g, \"+\");\n return `https://fonts.googleapis.com/css2?family=${encoded}:ital,wght@0,300;0,400;0,500;0,600;0,700;0,800;1,400;1,700&display=swap`;\n}\n\n/**\n * Injects a Google Fonts <link> into <head> once per unique URL.\n * Safe to call multiple times — deduped via a Set.\n */\nexport function injectFont(url: string): void {\n if (typeof document === \"undefined\") return; // SSR guard\n if (injectedFonts.has(url)) return;\n\n const link = document.createElement(\"link\");\n link.rel = \"stylesheet\";\n link.href = url;\n document.head.appendChild(link);\n injectedFonts.add(url);\n}\n\n/**\n * Pre-load a set of fonts eagerly (e.g. at app root).\n * Usage: preloadFonts([\"Playfair Display\", \"Inter\"])\n */\nexport function preloadFonts(families: string[]): void {\n families.forEach((f) => {\n if (GOOGLE_FONTS.includes(f)) {\n injectFont(buildFontUrl(f));\n } else {\n console.warn(\n `[@edwinvakayil/calligraphy] \"${f}\" is not in the bundled GOOGLE_FONTS list. ` +\n `Add it to the list or import it manually.`\n );\n }\n });\n}","import { HeroAnimation } from \"./types\";\n\nconst STYLE_ID = \"rts-hero-animations\";\n\nconst CSS = `\n@keyframes rts-rise{from{opacity:0;transform:translateY(32px)}to{opacity:1;transform:translateY(0)}}\n@keyframes rts-clip{from{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0 0% 0 0)}}\n@keyframes rts-pop{0%{opacity:0;transform:scale(0.75)}60%{opacity:1;transform:scale(1.04)}100%{transform:scale(1)}}\n@keyframes rts-blur{from{opacity:0;filter:blur(14px);transform:scale(1.04)}to{opacity:1;filter:blur(0);transform:scale(1)}}\n@keyframes rts-flip{from{opacity:0;transform:perspective(600px) rotateX(30deg) translateY(20px)}to{opacity:1;transform:perspective(600px) rotateX(0) translateY(0)}}\n@keyframes rts-swipe{from{opacity:0;transform:translateX(60px)}to{opacity:1;transform:translateX(0)}}\n@keyframes rts-bounce{0%{opacity:0;transform:translateY(-60px)}60%{opacity:1;transform:translateY(10px)}80%{transform:translateY(-5px)}100%{transform:translateY(0)}}\n@keyframes rts-type{from{width:0}to{width:100%}}\n@keyframes rts-blink{50%{border-color:transparent}}\n@keyframes rts-word-rise{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}\n@keyframes rts-letter-in{from{opacity:0;transform:translateX(-16px) rotate(-4deg)}to{opacity:1;transform:none}}\n\n.rts-rise { animation: rts-rise 0.9s cubic-bezier(0.16,1,0.3,1) both }\n.rts-clip { animation: rts-clip 1.1s cubic-bezier(0.77,0,0.18,1) both }\n.rts-pop { animation: rts-pop 0.7s cubic-bezier(0.34,1.56,0.64,1) both }\n.rts-blur { animation: rts-blur 1s cubic-bezier(0.16,1,0.3,1) both }\n.rts-flip { animation: rts-flip 0.9s cubic-bezier(0.16,1,0.3,1) both; transform-origin: center bottom }\n.rts-swipe { animation: rts-swipe 0.8s cubic-bezier(0.16,1,0.3,1) both }\n.rts-bounce { animation: rts-bounce 0.9s cubic-bezier(0.36,0.07,0.19,0.97) both }\n.rts-typewriter{ overflow: hidden; white-space: nowrap; border-right: 2px solid currentColor; width: 0; animation: rts-type 1.6s steps(22,end) both, rts-blink 0.7s step-end 1.6s 3 }\n.rts-word { display: inline-block; opacity: 0; transform: translateY(24px); animation: rts-word-rise 0.7s cubic-bezier(0.16,1,0.3,1) both }\n.rts-letter { display: inline-block; opacity: 0; transform: translateX(-16px) rotate(-4deg); animation: rts-letter-in 0.5s cubic-bezier(0.16,1,0.3,1) both }\n`;\n\nexport function injectAnimationStyles(): void {\n if (typeof document === \"undefined\") return;\n if (document.getElementById(STYLE_ID)) return;\n const style = document.createElement(\"style\");\n style.id = STYLE_ID;\n style.textContent = CSS;\n document.head.appendChild(style);\n}\n\nexport function getAnimationClass(animation: HeroAnimation): string {\n const map: Record<HeroAnimation, string> = {\n rise: \"rts-rise\",\n clip: \"rts-clip\",\n pop: \"rts-pop\",\n blur: \"rts-blur\",\n flip: \"rts-flip\",\n swipe: \"rts-swipe\",\n bounce: \"rts-bounce\",\n typewriter: \"rts-typewriter\",\n stagger: \"\",\n letters: \"\",\n };\n return map[animation] ?? \"\";\n}\n\n/**\n * Wraps each word in an animated span.\n * <em> tokens are preserved as-is in the HTML — Typography's useEffect\n * will apply inline styles to them after mount.\n */\nexport function buildStaggerHTML(html: string): string {\n const tokens = html.match(/(<em>[\\s\\S]*?<\\/em>|[^\\s]+)/g) ?? [];\n return tokens\n .map((tok, i) => {\n const delay = (i * 0.07).toFixed(2);\n if (tok.startsWith(\"<em>\")) {\n // Wrap the inner text in the animated span, keep <em> outside\n const inner = tok.slice(4, -5);\n return `<em><span class=\"rts-word\" style=\"animation-delay:${delay}s\">${inner}</span></em>`;\n }\n return `<span class=\"rts-word\" style=\"animation-delay:${delay}s\">${tok}</span>`;\n })\n .join(\" \");\n}\n\n/**\n * Wraps each character in an animated span.\n * <em> tags are preserved in the output — Typography's useEffect applies\n * the actual italic/non-italic inline styles after the DOM is ready.\n */\nexport function buildLettersHTML(html: string): string {\n const result: string[] = [];\n let inEm = false;\n let delay = 0;\n const step = 0.04;\n let i = 0;\n\n while (i < html.length) {\n if (html.startsWith(\"<em>\", i)) { inEm = true; i += 4; continue; }\n if (html.startsWith(\"</em>\", i)) { inEm = false; i += 5; continue; }\n\n const ch = html[i];\n if (ch === \" \") { result.push(\" \"); i++; continue; }\n\n const span = `<span class=\"rts-letter\" style=\"animation-delay:${delay.toFixed(2)}s\">${ch}</span>`;\n // Preserve <em> wrapper in DOM — styles applied by useEffect\n result.push(inEm ? `<em>${span}</em>` : span);\n delay += step;\n i++;\n }\n\n return result.join(\"\");\n}","import React, { CSSProperties, Children, isValidElement, useRef, useEffect } from \"react\";\nimport { TypographyProps, VariantTagMap, VariantStyleMap } from \"./types\";\nimport { GOOGLE_FONTS, buildFontUrl, injectFont } from \"./fonts\";\nimport {\n injectAnimationStyles,\n getAnimationClass,\n buildStaggerHTML,\n buildLettersHTML,\n} from \"./animation\";\n\n// ─── Static maps ─────────────────────────────────────────────────────────────\n\nconst variantTagMap: VariantTagMap = {\n Display: \"h1\",\n H1: \"h1\",\n H2: \"h2\",\n H3: \"h3\",\n H4: \"h4\",\n H5: \"h5\",\n H6: \"h6\",\n Subheading: \"h6\",\n Overline: \"span\",\n Body: \"p\",\n Label: \"label\",\n Caption: \"span\",\n};\n\nconst variantStyleMap: VariantStyleMap = {\n Display: {\n fontSize: \"clamp(2.5rem, 6vw, 5rem)\",\n fontWeight: 800,\n lineHeight: 1.05,\n letterSpacing: \"-0.03em\",\n },\n H1: {\n fontSize: \"clamp(2rem, 4vw, 3rem)\",\n fontWeight: 700,\n lineHeight: 1.1,\n letterSpacing: \"-0.02em\",\n },\n H2: {\n fontSize: \"clamp(1.5rem, 3vw, 2.25rem)\",\n fontWeight: 700,\n lineHeight: 1.2,\n letterSpacing: \"-0.015em\",\n },\n H3: {\n fontSize: \"clamp(1.25rem, 2.5vw, 1.75rem)\",\n fontWeight: 600,\n lineHeight: 1.25,\n letterSpacing: \"-0.01em\",\n },\n H4: {\n fontSize: \"clamp(1.1rem, 2vw, 1.375rem)\",\n fontWeight: 600,\n lineHeight: 1.3,\n letterSpacing: \"-0.005em\",\n },\n H5: {\n fontSize: \"clamp(1rem, 1.5vw, 1.125rem)\",\n fontWeight: 600,\n lineHeight: 1.35,\n letterSpacing: \"0em\",\n },\n H6: {\n fontSize: \"1rem\",\n fontWeight: 600,\n lineHeight: 1.4,\n letterSpacing: \"0em\",\n },\n Subheading: {\n fontSize: \"1.125rem\",\n fontWeight: 500,\n lineHeight: 1.5,\n letterSpacing: \"0.005em\",\n },\n Overline: {\n fontSize: \"0.6875rem\",\n fontWeight: 700,\n lineHeight: 1.6,\n letterSpacing: \"0.12em\",\n textTransform: \"uppercase\" as CSSProperties[\"textTransform\"],\n },\n Body: {\n fontSize: \"1rem\",\n fontWeight: 400,\n lineHeight: 1.7,\n letterSpacing: \"0.01em\",\n },\n Label: {\n fontSize: \"0.875rem\",\n fontWeight: 500,\n lineHeight: 1.5,\n letterSpacing: \"0.02em\",\n },\n Caption: {\n fontSize: \"0.75rem\",\n fontWeight: 400,\n lineHeight: 1.6,\n letterSpacing: \"0.03em\",\n },\n};\n\n// ─── Instrument Serif font URL ───────────────────────────────────────────────\n\nconst INSTRUMENT_SERIF_URL =\n \"https://fonts.googleapis.com/css2?family=Instrument+Serif:ital@0;1&display=swap\";\n\n// ─── Helpers ─────────────────────────────────────────────────────────────────\n\n/**\n * Serialise React children to a plain HTML string.\n * Handles: strings, <em>text</em> elements.\n */\nfunction childrenToHTML(children: React.ReactNode): string {\n return (\n Children.map(children, (child) => {\n if (typeof child === \"string\" || typeof child === \"number\") {\n return String(child);\n }\n if (isValidElement(child) && child.type === \"em\") {\n const inner =\n typeof child.props.children === \"string\" ? child.props.children : \"\";\n return `<em>${inner}</em>`;\n }\n return \"\";\n })?.join(\"\") ?? \"\"\n );\n}\n\n/**\n * Walk the serialised HTML and inject inline styles on every <em> span\n * so italic rendering is driven 100% by inline styles — no CSS specificity\n * battles, works regardless of injection order.\n */\nfunction applyEmStyles(\n container: HTMLElement,\n italic: boolean,\n accentColor: string,\n headingFont?: string\n): void {\n const ems = container.querySelectorAll<HTMLElement>(\"em, em span\");\n ems.forEach((el) => {\n if (italic) {\n el.style.fontFamily = \"'Instrument Serif', serif\";\n el.style.fontStyle = \"italic\";\n el.style.fontWeight = \"400\";\n el.style.color = accentColor;\n } else {\n el.style.fontFamily = headingFont ? `'${headingFont}', sans-serif` : \"inherit\";\n el.style.fontStyle = \"normal\";\n el.style.fontWeight = \"inherit\";\n el.style.color = \"inherit\";\n }\n });\n}\n\n// ─── Component ───────────────────────────────────────────────────────────────\n\nexport const Typography: React.FC<TypographyProps> = ({\n variant = \"Body\",\n font,\n color,\n align,\n className,\n style,\n children,\n as,\n truncate,\n maxLines,\n animation,\n italic = 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]}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../node_modules/tslib/tslib.es6.js","../../fonts.ts","../../animation.ts","../../Typography.tsx"],"sourcesContent":["/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise, SuppressedError, Symbol, Iterator */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\r\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\r\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\r\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\r\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\r\n var _, done = false;\r\n for (var i = decorators.length - 1; i >= 0; i--) {\r\n var context = {};\r\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\r\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\r\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\r\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\r\n if (kind === \"accessor\") {\r\n if (result === void 0) continue;\r\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\r\n if (_ = accept(result.get)) descriptor.get = _;\r\n if (_ = accept(result.set)) descriptor.set = _;\r\n if (_ = accept(result.init)) initializers.unshift(_);\r\n }\r\n else if (_ = accept(result)) {\r\n if (kind === \"field\") initializers.unshift(_);\r\n else descriptor[key] = _;\r\n }\r\n }\r\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\r\n done = true;\r\n};\r\n\r\nexport function __runInitializers(thisArg, initializers, value) {\r\n var useValue = arguments.length > 2;\r\n for (var i = 0; i < initializers.length; i++) {\r\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\r\n }\r\n return useValue ? value : void 0;\r\n};\r\n\r\nexport function __propKey(x) {\r\n return typeof x === \"symbol\" ? x : \"\".concat(x);\r\n};\r\n\r\nexport function __setFunctionName(f, name, prefix) {\r\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\r\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\r\n};\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\r\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = Object.create((typeof AsyncIterator === \"function\" ? AsyncIterator : Object).prototype), verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\r\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nvar ownKeys = function(o) {\r\n ownKeys = Object.getOwnPropertyNames || function (o) {\r\n var ar = [];\r\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\r\n return ar;\r\n };\r\n return ownKeys(o);\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n\r\nexport function __addDisposableResource(env, value, async) {\r\n if (value !== null && value !== void 0) {\r\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\r\n var dispose, inner;\r\n if (async) {\r\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\r\n dispose = value[Symbol.asyncDispose];\r\n }\r\n if (dispose === void 0) {\r\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\r\n dispose = value[Symbol.dispose];\r\n if (async) inner = dispose;\r\n }\r\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\r\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\r\n env.stack.push({ value: value, dispose: dispose, async: async });\r\n }\r\n else if (async) {\r\n env.stack.push({ async: true });\r\n }\r\n return value;\r\n\r\n}\r\n\r\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\r\n var e = new Error(message);\r\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\r\n};\r\n\r\nexport function __disposeResources(env) {\r\n function fail(e) {\r\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\r\n env.hasError = true;\r\n }\r\n var r, s = 0;\r\n function next() {\r\n while (r = env.stack.pop()) {\r\n try {\r\n if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);\r\n if (r.dispose) {\r\n var result = r.dispose.call(r.value);\r\n if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\r\n }\r\n else s |= 1;\r\n }\r\n catch (e) {\r\n fail(e);\r\n }\r\n }\r\n if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();\r\n if (env.hasError) throw env.error;\r\n }\r\n return next();\r\n}\r\n\r\nexport function __rewriteRelativeImportExtension(path, preserveJsx) {\r\n if (typeof path === \"string\" && /^\\.\\.?\\//.test(path)) {\r\n return path.replace(/\\.(tsx)$|((?:\\.d)?)((?:\\.[^./]+?)?)\\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {\r\n return tsx ? preserveJsx ? \".jsx\" : \".js\" : d && (!ext || !cm) ? m : (d + ext + \".\" + cm.toLowerCase() + \"js\");\r\n });\r\n }\r\n return path;\r\n}\r\n\r\nexport default {\r\n __extends: __extends,\r\n __assign: __assign,\r\n __rest: __rest,\r\n __decorate: __decorate,\r\n __param: __param,\r\n __esDecorate: __esDecorate,\r\n __runInitializers: __runInitializers,\r\n __propKey: __propKey,\r\n __setFunctionName: __setFunctionName,\r\n __metadata: __metadata,\r\n __awaiter: __awaiter,\r\n __generator: __generator,\r\n __createBinding: __createBinding,\r\n __exportStar: __exportStar,\r\n __values: __values,\r\n __read: __read,\r\n __spread: __spread,\r\n __spreadArrays: __spreadArrays,\r\n __spreadArray: __spreadArray,\r\n __await: __await,\r\n __asyncGenerator: __asyncGenerator,\r\n __asyncDelegator: __asyncDelegator,\r\n __asyncValues: __asyncValues,\r\n __makeTemplateObject: __makeTemplateObject,\r\n __importStar: __importStar,\r\n __importDefault: __importDefault,\r\n __classPrivateFieldGet: __classPrivateFieldGet,\r\n __classPrivateFieldSet: __classPrivateFieldSet,\r\n __classPrivateFieldIn: __classPrivateFieldIn,\r\n __addDisposableResource: __addDisposableResource,\r\n __disposeResources: __disposeResources,\r\n __rewriteRelativeImportExtension: __rewriteRelativeImportExtension,\r\n};\r\n","/**\n * A curated list of popular Google Fonts.\n * Pass any valid Google Font name to the `font` prop — if it's in this list,\n * it will be auto-injected via a <link> tag. For unlisted fonts, add them here\n * or import them manually in your project.\n */\nexport const GOOGLE_FONTS: string[] = [\n // Serif\n \"Playfair Display\",\n \"Merriweather\",\n \"Lora\",\n \"EB Garamond\",\n \"Libre Baskerville\",\n \"Cormorant Garamond\",\n \"DM Serif Display\",\n \"Crimson Text\",\n \"Source Serif 4\",\n \"Fraunces\",\n\n // Sans-serif\n \"Inter\",\n \"Roboto\",\n \"Open Sans\",\n \"Nunito\",\n \"Poppins\",\n \"Raleway\",\n \"Outfit\",\n \"DM Sans\",\n \"Manrope\",\n \"Plus Jakarta Sans\",\n \"Figtree\",\n \"Syne\",\n \"Albert Sans\",\n\n // Display / Expressive\n \"Bebas Neue\",\n \"Oswald\",\n \"Anton\",\n \"Barlow Condensed\",\n \"Righteous\",\n \"Abril Fatface\",\n \"Dela Gothic One\",\n \"Space Grotesk\",\n \"Unbounded\",\n \"Big Shoulders Display\",\n\n // Mono\n \"JetBrains Mono\",\n \"Fira Code\",\n \"Source Code Pro\",\n \"Space Mono\",\n \"IBM Plex Mono\",\n];\n\nconst injectedFonts = new Set<string>();\n\n/**\n * Builds a Google Fonts URL for a given font family.\n * Requests weights 300, 400, 500, 600, 700, 800 — italic variants included.\n */\nexport function buildFontUrl(fontFamily: string): string {\n const encoded = fontFamily.replace(/ /g, \"+\");\n return `https://fonts.googleapis.com/css2?family=${encoded}:ital,wght@0,300;0,400;0,500;0,600;0,700;0,800;1,400;1,700&display=swap`;\n}\n\n/**\n * Injects a Google Fonts <link> into <head> once per unique URL.\n * Safe to call multiple times — deduped via a Set.\n */\nexport function injectFont(url: string): void {\n if (typeof document === \"undefined\") return; // SSR guard\n if (injectedFonts.has(url)) return;\n\n const link = document.createElement(\"link\");\n link.rel = \"stylesheet\";\n link.href = url;\n document.head.appendChild(link);\n injectedFonts.add(url);\n}\n\n/**\n * Pre-load a set of fonts eagerly (e.g. at app root).\n * Usage: preloadFonts([\"Playfair Display\", \"Inter\"])\n */\nexport function preloadFonts(families: string[]): void {\n families.forEach((f) => {\n if (GOOGLE_FONTS.includes(f)) {\n injectFont(buildFontUrl(f));\n } else {\n console.warn(\n `[@edwinvakayil/calligraphy] \"${f}\" is not in the bundled GOOGLE_FONTS list. ` +\n `Add it to the list or import it manually.`\n );\n }\n });\n}","import { HeroAnimation } from \"./types\";\n\nconst STYLE_ID = \"rts-hero-animations\";\n\nconst CSS = `\n@keyframes rts-rise{from{opacity:0;transform:translateY(32px)}to{opacity:1;transform:translateY(0)}}\n@keyframes rts-clip{from{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0 0% 0 0)}}\n@keyframes rts-pop{0%{opacity:0;transform:scale(0.75)}60%{opacity:1;transform:scale(1.04)}100%{transform:scale(1)}}\n@keyframes rts-blur{from{opacity:0;filter:blur(14px);transform:scale(1.04)}to{opacity:1;filter:blur(0);transform:scale(1)}}\n@keyframes rts-flip{from{opacity:0;transform:perspective(600px) rotateX(30deg) translateY(20px)}to{opacity:1;transform:perspective(600px) rotateX(0) translateY(0)}}\n@keyframes rts-swipe{from{opacity:0;transform:translateX(60px)}to{opacity:1;transform:translateX(0)}}\n@keyframes rts-bounce{0%{opacity:0;transform:translateY(-60px)}60%{opacity:1;transform:translateY(10px)}80%{transform:translateY(-5px)}100%{transform:translateY(0)}}\n@keyframes rts-type{from{width:0}to{width:100%}}\n@keyframes rts-blink{50%{border-color:transparent}}\n@keyframes rts-word-rise{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}\n@keyframes rts-letter-in{from{opacity:0;transform:translateX(-16px) rotate(-4deg)}to{opacity:1;transform:none}}\n\n.rts-rise { animation: rts-rise 0.9s cubic-bezier(0.16,1,0.3,1) both }\n.rts-clip { animation: rts-clip 1.1s cubic-bezier(0.77,0,0.18,1) both }\n.rts-pop { animation: rts-pop 0.7s cubic-bezier(0.34,1.56,0.64,1) both }\n.rts-blur { animation: rts-blur 1s cubic-bezier(0.16,1,0.3,1) both }\n.rts-flip { animation: rts-flip 0.9s cubic-bezier(0.16,1,0.3,1) both; transform-origin: center bottom }\n.rts-swipe { animation: rts-swipe 0.8s cubic-bezier(0.16,1,0.3,1) both }\n.rts-bounce { animation: rts-bounce 0.9s cubic-bezier(0.36,0.07,0.19,0.97) both }\n.rts-typewriter{ overflow: hidden; white-space: nowrap; border-right: 2px solid currentColor; width: 0; animation: rts-type 1.6s steps(22,end) both, rts-blink 0.7s step-end 1.6s 3 }\n.rts-word { display: inline-block; opacity: 0; transform: translateY(24px); animation: rts-word-rise 0.7s cubic-bezier(0.16,1,0.3,1) both }\n.rts-letter { display: inline-block; opacity: 0; transform: translateX(-16px) rotate(-4deg); animation: rts-letter-in 0.5s cubic-bezier(0.16,1,0.3,1) both }\n`;\n\nexport function injectAnimationStyles(): void {\n if (typeof document === \"undefined\") return;\n if (document.getElementById(STYLE_ID)) return;\n const style = document.createElement(\"style\");\n style.id = STYLE_ID;\n style.textContent = CSS;\n document.head.appendChild(style);\n}\n\nexport function getAnimationClass(animation: HeroAnimation): string {\n const map: Record<HeroAnimation, string> = {\n rise: \"rts-rise\",\n clip: \"rts-clip\",\n pop: \"rts-pop\",\n blur: \"rts-blur\",\n flip: \"rts-flip\",\n swipe: \"rts-swipe\",\n bounce: \"rts-bounce\",\n typewriter: \"rts-typewriter\",\n stagger: \"\",\n letters: \"\",\n };\n return map[animation] ?? \"\";\n}\n\n/**\n * Wraps each word in an animated span.\n * <em> tokens are preserved as-is in the HTML — Typography's useEffect\n * will apply inline styles to them after mount.\n */\nexport function buildStaggerHTML(html: string): string {\n const tokens = html.match(/(<em>[\\s\\S]*?<\\/em>|[^\\s]+)/g) ?? [];\n return tokens\n .map((tok, i) => {\n const delay = (i * 0.07).toFixed(2);\n if (tok.startsWith(\"<em>\")) {\n // Wrap the inner text in the animated span, keep <em> outside\n const inner = tok.slice(4, -5);\n return `<em><span class=\"rts-word\" style=\"animation-delay:${delay}s\">${inner}</span></em>`;\n }\n return `<span class=\"rts-word\" style=\"animation-delay:${delay}s\">${tok}</span>`;\n })\n .join(\" \");\n}\n\n/**\n * Wraps each character in an animated span.\n * <em> tags are preserved in the output — Typography's useEffect applies\n * the actual italic/non-italic inline styles after the DOM is ready.\n */\nexport function buildLettersHTML(html: string): string {\n const result: string[] = [];\n let inEm = false;\n let delay = 0;\n const step = 0.04;\n let i = 0;\n\n while (i < html.length) {\n if (html.startsWith(\"<em>\", i)) { inEm = true; i += 4; continue; }\n if (html.startsWith(\"</em>\", i)) { inEm = false; i += 5; continue; }\n\n const ch = html[i];\n if (ch === \" \") { result.push(\" \"); i++; continue; }\n\n const span = `<span class=\"rts-letter\" style=\"animation-delay:${delay.toFixed(2)}s\">${ch}</span>`;\n // Preserve <em> wrapper in DOM — styles applied by useEffect\n result.push(inEm ? `<em>${span}</em>` : span);\n delay += step;\n i++;\n }\n\n return result.join(\"\");\n}","import React, { CSSProperties, Children, isValidElement, useRef, useEffect } from \"react\";\nimport { TypographyProps, VariantTagMap, VariantStyleMap } from \"./types\";\nimport { GOOGLE_FONTS, buildFontUrl, injectFont } from \"./fonts\";\nimport {\n injectAnimationStyles,\n getAnimationClass,\n buildStaggerHTML,\n buildLettersHTML,\n} from \"./animation\";\n\n// ─── Static maps ─────────────────────────────────────────────────────────────\n\nconst variantTagMap: VariantTagMap = {\n Display: \"h1\",\n H1: \"h1\",\n H2: \"h2\",\n H3: \"h3\",\n H4: \"h4\",\n H5: \"h5\",\n H6: \"h6\",\n Subheading: \"h6\",\n Overline: \"span\",\n Body: \"p\",\n Label: \"label\",\n Caption: \"span\",\n};\n\nconst variantStyleMap: VariantStyleMap = {\n Display: {\n fontSize: \"clamp(2.5rem, 6vw, 5rem)\",\n fontWeight: 800,\n lineHeight: 1.05,\n letterSpacing: \"-0.03em\",\n },\n H1: {\n fontSize: \"clamp(2rem, 4vw, 3rem)\",\n fontWeight: 700,\n lineHeight: 1.1,\n letterSpacing: \"-0.02em\",\n },\n H2: {\n fontSize: \"clamp(1.5rem, 3vw, 2.25rem)\",\n fontWeight: 700,\n lineHeight: 1.2,\n letterSpacing: \"-0.015em\",\n },\n H3: {\n fontSize: \"clamp(1.25rem, 2.5vw, 1.75rem)\",\n fontWeight: 600,\n lineHeight: 1.25,\n letterSpacing: \"-0.01em\",\n },\n H4: {\n fontSize: \"clamp(1.1rem, 2vw, 1.375rem)\",\n fontWeight: 600,\n lineHeight: 1.3,\n letterSpacing: \"-0.005em\",\n },\n H5: {\n fontSize: \"clamp(1rem, 1.5vw, 1.125rem)\",\n fontWeight: 600,\n lineHeight: 1.35,\n letterSpacing: \"0em\",\n },\n H6: {\n fontSize: \"1rem\",\n fontWeight: 600,\n lineHeight: 1.4,\n letterSpacing: \"0em\",\n },\n Subheading: {\n fontSize: \"1.125rem\",\n fontWeight: 500,\n lineHeight: 1.5,\n letterSpacing: \"0.005em\",\n },\n Overline: {\n fontSize: \"0.6875rem\",\n fontWeight: 700,\n lineHeight: 1.6,\n letterSpacing: \"0.12em\",\n textTransform: \"uppercase\" as CSSProperties[\"textTransform\"],\n },\n Body: {\n fontSize: \"1rem\",\n fontWeight: 400,\n lineHeight: 1.7,\n letterSpacing: \"0.01em\",\n },\n Label: {\n fontSize: \"0.875rem\",\n fontWeight: 500,\n lineHeight: 1.5,\n letterSpacing: \"0.02em\",\n },\n Caption: {\n fontSize: \"0.75rem\",\n fontWeight: 400,\n lineHeight: 1.6,\n letterSpacing: \"0.03em\",\n },\n};\n\n// ─── Constants ───────────────────────────────────────────────────────────────\n\nconst INSTRUMENT_SERIF_URL =\n \"https://fonts.googleapis.com/css2?family=Instrument+Serif:ital@0;1&display=swap\";\n\n// ─── Helpers ─────────────────────────────────────────────────────────────────\n\n/**\n * Serialise React children → raw HTML string.\n * Preserves <em>text</em> nodes for animation builders.\n */\nfunction childrenToHTML(children: React.ReactNode): string {\n return (\n Children.map(children, (child) => {\n if (typeof child === \"string\" || typeof child === \"number\") {\n return String(child);\n }\n if (isValidElement(child) && child.type === \"em\") {\n const inner =\n typeof child.props.children === \"string\" ? child.props.children : \"\";\n return `<em>${inner}</em>`;\n }\n return \"\";\n })?.join(\"\") ?? \"\"\n );\n}\n\n/**\n * Re-map React children so that <em> elements get explicit inline styles.\n * This is used for the no-animation render path where we keep real React nodes.\n * Inline styles on the <em> itself beat any inherited font-family from the parent.\n */\nfunction renderChildrenWithEmStyles(\n children: React.ReactNode,\n italic: boolean,\n accentColor: string,\n headingFont?: string\n): React.ReactNode {\n const italicStyle: CSSProperties = {\n fontFamily: \"'Instrument Serif', serif\",\n fontStyle: \"italic\",\n fontWeight: 400,\n color: accentColor,\n };\n\n const noItalicStyle: CSSProperties = {\n fontFamily: headingFont ? `'${headingFont}', sans-serif` : \"inherit\",\n fontStyle: \"normal\",\n fontWeight: \"inherit\" as any,\n color: \"inherit\",\n };\n\n return Children.map(children, (child, i) => {\n if (isValidElement(child) && child.type === \"em\") {\n return (\n <em key={i} style={italic ? italicStyle : noItalicStyle}>\n {child.props.children}\n </em>\n );\n }\n return child;\n });\n}\n\n/**\n * After dangerouslySetInnerHTML renders, walk the DOM and apply inline styles\n * to every <em> and <em> > span so the font switch is guaranteed.\n */\nfunction applyEmStylesDOM(\n container: HTMLElement,\n italic: boolean,\n accentColor: string,\n headingFont?: string\n): void {\n // Select both <em> and any animated letter spans nested inside <em>\n container.querySelectorAll<HTMLElement>(\"em\").forEach((el) => {\n if (italic) {\n el.style.fontFamily = \"'Instrument Serif', serif\";\n el.style.fontStyle = \"italic\";\n el.style.fontWeight = \"400\";\n el.style.color = accentColor;\n } else {\n el.style.fontFamily = headingFont ? `'${headingFont}', sans-serif` : \"inherit\";\n el.style.fontStyle = \"normal\";\n el.style.fontWeight = \"inherit\";\n el.style.color = \"inherit\";\n }\n });\n\n // Also style the animated letter spans inside <em> (used by \"letters\" animation)\n container.querySelectorAll<HTMLElement>(\"em > span\").forEach((el) => {\n if (italic) {\n el.style.fontFamily = \"'Instrument Serif', serif\";\n el.style.fontStyle = \"italic\";\n el.style.fontWeight = \"400\";\n el.style.color = accentColor;\n } else {\n el.style.fontFamily = headingFont ? `'${headingFont}', sans-serif` : \"inherit\";\n el.style.fontStyle = \"normal\";\n el.style.fontWeight = \"inherit\";\n el.style.color = \"inherit\";\n }\n });\n}\n\n// ─── Component ───────────────────────────────────────────────────────────────\n\nexport const Typography: React.FC<TypographyProps> = ({\n variant = \"Body\",\n font,\n color,\n align,\n className,\n style,\n children,\n as,\n truncate,\n maxLines,\n animation,\n italic = false,\n accentColor = \"#c8b89a\",\n ...rest\n}) => {\n const isHero = variant === \"Display\" || variant === \"H1\";\n const ref = useRef<HTMLElement>(null);\n\n // Always inject Instrument Serif for hero variants so it's pre-loaded\n // and ready the moment italic is toggled on — no flash of wrong font.\n if (isHero) {\n injectFont(INSTRUMENT_SERIF_URL);\n }\n\n // Inject heading Google Font\n if (font && GOOGLE_FONTS.includes(font)) {\n injectFont(buildFontUrl(font));\n }\n\n // Inject animation keyframes (once, global)\n if (animation && isHero) {\n injectAnimationStyles();\n }\n\n // For animation paths (dangerouslySetInnerHTML), walk the DOM after render\n // and stamp inline styles onto every <em> — guaranteed to beat inheritance.\n useEffect(() => {\n if (!isHero || !animation || !ref.current) return;\n applyEmStylesDOM(ref.current, italic, accentColor, font);\n }, [italic, accentColor, font, animation, isHero]);\n\n const Tag = (as ?? variantTagMap[variant]) as React.ElementType;\n\n // ── Compute animation class + inner HTML ──────────────────────────────────\n\n let animClass = \"\";\n let heroHTML: string | null = null;\n\n if (animation && isHero) {\n const rawHTML = childrenToHTML(children);\n\n if (animation === \"stagger\") {\n heroHTML = buildStaggerHTML(rawHTML);\n } else if (animation === \"letters\") {\n heroHTML = buildLettersHTML(rawHTML);\n } else {\n heroHTML = rawHTML;\n animClass = getAnimationClass(animation);\n }\n }\n\n // ── Computed container styles ─────────────────────────────────────────────\n\n const computedStyle: CSSProperties = {\n ...variantStyleMap[variant],\n ...(font ? { fontFamily: `'${font}', sans-serif` } : {}),\n ...(color ? { color } : {}),\n ...(align ? { textAlign: align } : {}),\n ...(truncate\n ? { overflow: \"hidden\", textOverflow: \"ellipsis\", whiteSpace: \"nowrap\" }\n : {}),\n ...(maxLines && !truncate\n ? {\n display: \"-webkit-box\",\n WebkitLineClamp: maxLines,\n WebkitBoxOrient: \"vertical\" as CSSProperties[\"WebkitBoxOrient\"],\n overflow: \"hidden\",\n }\n : {}),\n margin: 0,\n padding: 0,\n ...style,\n };\n\n // ── Render: animation path (dangerouslySetInnerHTML) ──────────────────────\n\n if (heroHTML !== null) {\n return (\n <Tag\n key={animation}\n ref={ref}\n className={[animClass, className].filter(Boolean).join(\" \")}\n style={computedStyle}\n dangerouslySetInnerHTML={{ __html: heroHTML }}\n {...rest}\n />\n );\n }\n\n // ── Render: standard path (real React children with em styles) ────────────\n\n const processedChildren = isHero\n ? renderChildrenWithEmStyles(children, italic, accentColor, font)\n : children;\n\n return (\n <Tag\n ref={ref}\n className={className}\n style={computedStyle}\n {...rest}\n >\n {processedChildren}\n </Tag>\n );\n};\n\nexport default Typography;"],"names":["Children","isValidElement","_jsx","useRef","useEffect"],"mappings":"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","x_google_ignoreList":[0]}
|
package/dist/types.d.ts
CHANGED
|
@@ -39,9 +39,9 @@ export interface TypographyProps extends HTMLAttributes<HTMLElement> {
|
|
|
39
39
|
animation?: HeroAnimation;
|
|
40
40
|
/**
|
|
41
41
|
* Italic accent for Display / H1 heroes.
|
|
42
|
-
* When true
|
|
43
|
-
* with an accent color.
|
|
44
|
-
* font/weight
|
|
42
|
+
* When true, any <em> child renders in Instrument Serif italic
|
|
43
|
+
* with an accent color. Defaults to false — everything renders
|
|
44
|
+
* in the heading font/weight with no serif or italics.
|
|
45
45
|
*/
|
|
46
46
|
italic?: boolean;
|
|
47
47
|
/**
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@edwinvakayil/calligraphy",
|
|
3
|
-
"version": "1.2.
|
|
3
|
+
"version": "1.2.5",
|
|
4
4
|
"description": "A lightweight React + TypeScript typography component with Google Fonts support. Scale from Display to Caption with a single prop.",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"module": "dist/index.esm.js",
|