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
- * Render text with emojis hidden (opacity:0) for the stroke layer.
167
- * Emojis become invisible so feMorphology won't dilate their alpha.
168
- * Uses inline spans to preserve text flow.
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 renderStrokeText(text) {
170
+ function getStrokeText(text) {
171
171
  if (!(0, emoji_1.hasEmoji)(text))
172
172
  return text;
173
- const parts = (0, emoji_1.splitTextAndEmojis)(text);
174
- return parts.map((part, i) => part.type === 'emoji'
175
- ? (0, jsx_runtime_1.jsx)("span", { style: { opacity: 0 }, children: part.content }, i)
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: [renderStrokeText(line), index < calculatedLines.length - 1 && (0, jsx_runtime_1.jsx)("br", {})] }, index)));
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: renderStrokeText(segment.text) }), (0, jsx_runtime_1.jsx)("div", { style: textStyle, children: segment.text })] }) }));
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;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ugcinc",
3
- "version": "4.5.69",
3
+ "version": "4.5.70",
4
4
  "description": "TypeScript/JavaScript client for the UGC Inc API",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",