ugcinc 4.5.69 → 4.5.70
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.
|
@@ -163,17 +163,16 @@ function calculateAutoWidthAndLines({ text, maxWidth, paddingLeft, paddingRight,
|
|
|
163
163
|
return { width: calculatedWidth, lines };
|
|
164
164
|
}
|
|
165
165
|
/**
|
|
166
|
-
*
|
|
167
|
-
*
|
|
168
|
-
*
|
|
166
|
+
* Replace emoji characters with spaces for the stroke layer.
|
|
167
|
+
* Spaces have zero alpha for the emoji glyphs, so feMorphology won't dilate them.
|
|
168
|
+
* Returns a plain string — no DOM changes, preserving identical vertical metrics.
|
|
169
169
|
*/
|
|
170
|
-
function
|
|
170
|
+
function getStrokeText(text) {
|
|
171
171
|
if (!(0, emoji_1.hasEmoji)(text))
|
|
172
172
|
return text;
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
: part.content);
|
|
173
|
+
return (0, emoji_1.splitTextAndEmojis)(text)
|
|
174
|
+
.map(part => part.type === 'emoji' ? ' ' : part.content)
|
|
175
|
+
.join('');
|
|
177
176
|
}
|
|
178
177
|
/**
|
|
179
178
|
* TextElement renders text with full styling support including:
|
|
@@ -380,7 +379,7 @@ function TextElement({ segment, scale = 1 }) {
|
|
|
380
379
|
const strokeFilterSvg = hasStroke ? ((0, jsx_runtime_1.jsx)("svg", { style: { position: 'absolute', width: 0, height: 0, overflow: 'hidden' }, "aria-hidden": "true", children: (0, jsx_runtime_1.jsx)("defs", { children: (0, jsx_runtime_1.jsxs)("filter", { id: filterId, x: `-${strokePadPct}%`, y: `-${strokePadPct}%`, width: `${100 + 2 * strokePadPct}%`, height: `${100 + 2 * strokePadPct}%`, children: [(0, jsx_runtime_1.jsx)("feMorphology", { in: "SourceAlpha", operator: "dilate", radius: strokeWidth, result: "dilated" }), (0, jsx_runtime_1.jsx)("feFlood", { floodColor: strokeColor, result: "color" }), (0, jsx_runtime_1.jsx)("feComposite", { in: "color", in2: "dilated", operator: "in" })] }) }) })) : null;
|
|
381
380
|
if (autoWidth) {
|
|
382
381
|
const textContent = calculatedLines.map((line, index) => ((0, jsx_runtime_1.jsxs)(react_1.default.Fragment, { children: [line, index < calculatedLines.length - 1 && (0, jsx_runtime_1.jsx)("br", {})] }, index)));
|
|
383
|
-
const strokeContent = calculatedLines.map((line, index) => ((0, jsx_runtime_1.jsxs)(react_1.default.Fragment, { children: [
|
|
382
|
+
const strokeContent = calculatedLines.map((line, index) => ((0, jsx_runtime_1.jsxs)(react_1.default.Fragment, { children: [getStrokeText(line), index < calculatedLines.length - 1 && (0, jsx_runtime_1.jsx)("br", {})] }, index)));
|
|
384
383
|
if (backgroundColor) {
|
|
385
384
|
return ((0, jsx_runtime_1.jsx)("div", { style: positioningContainerStyle, children: (0, jsx_runtime_1.jsxs)("div", { style: {
|
|
386
385
|
width: calculatedWidth,
|
|
@@ -392,6 +391,6 @@ function TextElement({ segment, scale = 1 }) {
|
|
|
392
391
|
}
|
|
393
392
|
return ((0, jsx_runtime_1.jsx)("div", { style: positioningContainerStyle, children: (0, jsx_runtime_1.jsxs)("div", { style: { width: calculatedWidth, maxWidth: width, ...(hasStroke && { position: 'relative' }) }, children: [strokeFilterSvg, strokeTextStyle && (0, jsx_runtime_1.jsx)("div", { style: strokeTextStyle, "aria-hidden": "true", children: strokeContent }), (0, jsx_runtime_1.jsx)("div", { style: textStyle, children: textContent })] }) }));
|
|
394
393
|
}
|
|
395
|
-
return ((0, jsx_runtime_1.jsx)("div", { style: positioningContainerStyle, children: (0, jsx_runtime_1.jsxs)("div", { style: { ...backgroundBoxStyle, ...(hasStroke && { position: 'relative' }) }, children: [strokeFilterSvg, strokeTextStyle && (0, jsx_runtime_1.jsx)("div", { style: strokeTextStyle, "aria-hidden": "true", children:
|
|
394
|
+
return ((0, jsx_runtime_1.jsx)("div", { style: positioningContainerStyle, children: (0, jsx_runtime_1.jsxs)("div", { style: { ...backgroundBoxStyle, ...(hasStroke && { position: 'relative' }) }, children: [strokeFilterSvg, strokeTextStyle && (0, jsx_runtime_1.jsx)("div", { style: strokeTextStyle, "aria-hidden": "true", children: getStrokeText(segment.text) }), (0, jsx_runtime_1.jsx)("div", { style: textStyle, children: segment.text })] }) }));
|
|
396
395
|
}
|
|
397
396
|
exports.default = TextElement;
|