ugcinc-render 1.8.172 → 1.8.173
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.mts +6 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.js +72 -10
- package/dist/index.mjs +72 -10
- package/package.json +1 -1
package/dist/index.d.mts
CHANGED
|
@@ -1117,6 +1117,12 @@ interface IMessageDmCompositionProps {
|
|
|
1117
1117
|
messageHeaderLetterSpacing?: number;
|
|
1118
1118
|
messageHeaderLeft?: number;
|
|
1119
1119
|
messageHeaderRight?: number;
|
|
1120
|
+
showReadReceipt?: boolean;
|
|
1121
|
+
readReceiptText?: string;
|
|
1122
|
+
readReceiptGap?: number;
|
|
1123
|
+
readReceiptFontSize?: number;
|
|
1124
|
+
readReceiptLetterSpacing?: number;
|
|
1125
|
+
readReceiptColor?: string;
|
|
1120
1126
|
messages?: ImMessage[];
|
|
1121
1127
|
}
|
|
1122
1128
|
|
package/dist/index.d.ts
CHANGED
|
@@ -1117,6 +1117,12 @@ interface IMessageDmCompositionProps {
|
|
|
1117
1117
|
messageHeaderLetterSpacing?: number;
|
|
1118
1118
|
messageHeaderLeft?: number;
|
|
1119
1119
|
messageHeaderRight?: number;
|
|
1120
|
+
showReadReceipt?: boolean;
|
|
1121
|
+
readReceiptText?: string;
|
|
1122
|
+
readReceiptGap?: number;
|
|
1123
|
+
readReceiptFontSize?: number;
|
|
1124
|
+
readReceiptLetterSpacing?: number;
|
|
1125
|
+
readReceiptColor?: string;
|
|
1120
1126
|
messages?: ImMessage[];
|
|
1121
1127
|
}
|
|
1122
1128
|
|
package/dist/index.js
CHANGED
|
@@ -5297,13 +5297,20 @@ var MESSAGE_DEFAULTS2 = {
|
|
|
5297
5297
|
// Message area header text (above first message)
|
|
5298
5298
|
messageHeaderImessageText: "iMessage",
|
|
5299
5299
|
messageHeaderTimestampText: "Today 12:16 PM",
|
|
5300
|
-
messageHeaderTimestampGap:
|
|
5301
|
-
messageHeaderImessageGap:
|
|
5300
|
+
messageHeaderTimestampGap: 30,
|
|
5301
|
+
messageHeaderImessageGap: 5,
|
|
5302
5302
|
messageHeaderTextColor: "#626167",
|
|
5303
|
-
messageHeaderFontSize:
|
|
5304
|
-
messageHeaderLetterSpacing:
|
|
5303
|
+
messageHeaderFontSize: 34,
|
|
5304
|
+
messageHeaderLetterSpacing: 1.25,
|
|
5305
5305
|
messageHeaderLeft: 0,
|
|
5306
|
-
messageHeaderRight: 1206
|
|
5306
|
+
messageHeaderRight: 1206,
|
|
5307
|
+
// Read receipt (under last sender message)
|
|
5308
|
+
showReadReceipt: true,
|
|
5309
|
+
readReceiptText: "Read 12:16 PM",
|
|
5310
|
+
readReceiptGap: 47,
|
|
5311
|
+
readReceiptFontSize: 34,
|
|
5312
|
+
readReceiptLetterSpacing: 1.25,
|
|
5313
|
+
readReceiptColor: "#626167"
|
|
5307
5314
|
};
|
|
5308
5315
|
var FONT_FAMILY2 = getFontFamily("apple");
|
|
5309
5316
|
function calculateAutoWidthAndLines3({
|
|
@@ -5662,6 +5669,46 @@ function generateHeaderTextElements(props, calculatedMessages) {
|
|
|
5662
5669
|
});
|
|
5663
5670
|
return elements;
|
|
5664
5671
|
}
|
|
5672
|
+
function generateReadReceiptElement(props, calculatedMessages) {
|
|
5673
|
+
const showReadReceipt = props.showReadReceipt ?? MESSAGE_DEFAULTS2.showReadReceipt;
|
|
5674
|
+
if (!showReadReceipt) {
|
|
5675
|
+
return [];
|
|
5676
|
+
}
|
|
5677
|
+
let lastSenderMessage = null;
|
|
5678
|
+
for (let i = calculatedMessages.length - 1; i >= 0; i--) {
|
|
5679
|
+
if (calculatedMessages[i].message.sender === "user") {
|
|
5680
|
+
lastSenderMessage = calculatedMessages[i];
|
|
5681
|
+
break;
|
|
5682
|
+
}
|
|
5683
|
+
}
|
|
5684
|
+
if (!lastSenderMessage) {
|
|
5685
|
+
return [];
|
|
5686
|
+
}
|
|
5687
|
+
const readReceiptText = props.readReceiptText ?? MESSAGE_DEFAULTS2.readReceiptText;
|
|
5688
|
+
const readReceiptGap = props.readReceiptGap ?? MESSAGE_DEFAULTS2.readReceiptGap;
|
|
5689
|
+
const readReceiptFontSize = props.readReceiptFontSize ?? MESSAGE_DEFAULTS2.readReceiptFontSize;
|
|
5690
|
+
const readReceiptLetterSpacing = props.readReceiptLetterSpacing ?? MESSAGE_DEFAULTS2.readReceiptLetterSpacing;
|
|
5691
|
+
const readReceiptColor = props.readReceiptColor ?? MESSAGE_DEFAULTS2.readReceiptColor;
|
|
5692
|
+
const senderBubbleRight = props.senderBubbleRight ?? MESSAGE_DEFAULTS2.senderBubbleRight;
|
|
5693
|
+
const readReceiptTop = lastSenderMessage.bottom + readReceiptGap - readReceiptFontSize;
|
|
5694
|
+
return [{
|
|
5695
|
+
id: "read-receipt",
|
|
5696
|
+
type: "text",
|
|
5697
|
+
x: 0,
|
|
5698
|
+
y: readReceiptTop,
|
|
5699
|
+
width: senderBubbleRight,
|
|
5700
|
+
height: readReceiptFontSize,
|
|
5701
|
+
zIndex: 4,
|
|
5702
|
+
text: readReceiptText,
|
|
5703
|
+
font: "apple",
|
|
5704
|
+
fontWeight: 600,
|
|
5705
|
+
fontSize: readReceiptFontSize,
|
|
5706
|
+
letterSpacing: readReceiptLetterSpacing,
|
|
5707
|
+
color: readReceiptColor,
|
|
5708
|
+
textAlign: "right",
|
|
5709
|
+
verticalAlign: "middle"
|
|
5710
|
+
}];
|
|
5711
|
+
}
|
|
5665
5712
|
function buildImageUrls2(props) {
|
|
5666
5713
|
const imageUrls = {};
|
|
5667
5714
|
const messages = props.messages ?? [];
|
|
@@ -5678,7 +5725,8 @@ function convertPropsToElements2(props) {
|
|
|
5678
5725
|
const calculatedMessages = calculateMessagePositions2(props);
|
|
5679
5726
|
const messageElements = generateMessageElements2(props, calculatedMessages);
|
|
5680
5727
|
const headerTextElements = generateHeaderTextElements(props, calculatedMessages);
|
|
5681
|
-
const
|
|
5728
|
+
const readReceiptElements = generateReadReceiptElement(props, calculatedMessages);
|
|
5729
|
+
const allElements = [...messageElements, ...headerTextElements, ...readReceiptElements];
|
|
5682
5730
|
allElements.sort((a, b) => (a.zIndex ?? 0) - (b.zIndex ?? 0));
|
|
5683
5731
|
const imageUrls = buildImageUrls2(props);
|
|
5684
5732
|
return {
|
|
@@ -5830,13 +5878,20 @@ var defaultIMessageDmProps = {
|
|
|
5830
5878
|
// Message area header text (above first message)
|
|
5831
5879
|
messageHeaderImessageText: "iMessage",
|
|
5832
5880
|
messageHeaderTimestampText: "Today 12:16 PM",
|
|
5833
|
-
messageHeaderTimestampGap:
|
|
5834
|
-
messageHeaderImessageGap:
|
|
5881
|
+
messageHeaderTimestampGap: 30,
|
|
5882
|
+
messageHeaderImessageGap: 5,
|
|
5835
5883
|
messageHeaderTextColor: "#626167",
|
|
5836
|
-
messageHeaderFontSize:
|
|
5837
|
-
messageHeaderLetterSpacing:
|
|
5884
|
+
messageHeaderFontSize: 34,
|
|
5885
|
+
messageHeaderLetterSpacing: 1.25,
|
|
5838
5886
|
messageHeaderLeft: 0,
|
|
5839
5887
|
messageHeaderRight: 1206,
|
|
5888
|
+
// Read receipt (under last sender message)
|
|
5889
|
+
showReadReceipt: true,
|
|
5890
|
+
readReceiptText: "Read 12:16 PM",
|
|
5891
|
+
readReceiptGap: 47,
|
|
5892
|
+
readReceiptFontSize: 34,
|
|
5893
|
+
readReceiptLetterSpacing: 1.25,
|
|
5894
|
+
readReceiptColor: "#626167",
|
|
5840
5895
|
// Example messages
|
|
5841
5896
|
messages: [
|
|
5842
5897
|
{ id: "msg-1", sender: "user", text: "heyyy fae, help me slide on this baddie pls \u{1F64F}", imageUrl: "https://n14dcpakf8w1fekl.public.blob.vercel-storage.com/media/06c3ed1c-eefb-4a60-b0c4-5fb872811ba0/pinterest-1766175214139-0-JpXmGIxVWdjEJ3qxGyoC4DAi2KAZrg.jpg" },
|
|
@@ -7078,6 +7133,13 @@ var iMessageDmPropsSchema = import_zod.z.object({
|
|
|
7078
7133
|
messageHeaderLetterSpacing: import_zod.z.number().optional(),
|
|
7079
7134
|
messageHeaderLeft: import_zod.z.number().optional(),
|
|
7080
7135
|
messageHeaderRight: import_zod.z.number().optional(),
|
|
7136
|
+
// Read receipt
|
|
7137
|
+
showReadReceipt: import_zod.z.boolean().optional(),
|
|
7138
|
+
readReceiptText: import_zod.z.string().optional(),
|
|
7139
|
+
readReceiptGap: import_zod.z.number().optional(),
|
|
7140
|
+
readReceiptFontSize: import_zod.z.number().optional(),
|
|
7141
|
+
readReceiptLetterSpacing: import_zod.z.number().optional(),
|
|
7142
|
+
readReceiptColor: import_zod.z.string().optional(),
|
|
7081
7143
|
// Messages
|
|
7082
7144
|
messages: import_zod.z.array(import_zod.z.object({
|
|
7083
7145
|
id: import_zod.z.string(),
|
package/dist/index.mjs
CHANGED
|
@@ -4343,13 +4343,20 @@ var MESSAGE_DEFAULTS2 = {
|
|
|
4343
4343
|
// Message area header text (above first message)
|
|
4344
4344
|
messageHeaderImessageText: "iMessage",
|
|
4345
4345
|
messageHeaderTimestampText: "Today 12:16 PM",
|
|
4346
|
-
messageHeaderTimestampGap:
|
|
4347
|
-
messageHeaderImessageGap:
|
|
4346
|
+
messageHeaderTimestampGap: 30,
|
|
4347
|
+
messageHeaderImessageGap: 5,
|
|
4348
4348
|
messageHeaderTextColor: "#626167",
|
|
4349
|
-
messageHeaderFontSize:
|
|
4350
|
-
messageHeaderLetterSpacing:
|
|
4349
|
+
messageHeaderFontSize: 34,
|
|
4350
|
+
messageHeaderLetterSpacing: 1.25,
|
|
4351
4351
|
messageHeaderLeft: 0,
|
|
4352
|
-
messageHeaderRight: 1206
|
|
4352
|
+
messageHeaderRight: 1206,
|
|
4353
|
+
// Read receipt (under last sender message)
|
|
4354
|
+
showReadReceipt: true,
|
|
4355
|
+
readReceiptText: "Read 12:16 PM",
|
|
4356
|
+
readReceiptGap: 47,
|
|
4357
|
+
readReceiptFontSize: 34,
|
|
4358
|
+
readReceiptLetterSpacing: 1.25,
|
|
4359
|
+
readReceiptColor: "#626167"
|
|
4353
4360
|
};
|
|
4354
4361
|
var FONT_FAMILY2 = getFontFamily("apple");
|
|
4355
4362
|
function calculateAutoWidthAndLines3({
|
|
@@ -4708,6 +4715,46 @@ function generateHeaderTextElements(props, calculatedMessages) {
|
|
|
4708
4715
|
});
|
|
4709
4716
|
return elements;
|
|
4710
4717
|
}
|
|
4718
|
+
function generateReadReceiptElement(props, calculatedMessages) {
|
|
4719
|
+
const showReadReceipt = props.showReadReceipt ?? MESSAGE_DEFAULTS2.showReadReceipt;
|
|
4720
|
+
if (!showReadReceipt) {
|
|
4721
|
+
return [];
|
|
4722
|
+
}
|
|
4723
|
+
let lastSenderMessage = null;
|
|
4724
|
+
for (let i = calculatedMessages.length - 1; i >= 0; i--) {
|
|
4725
|
+
if (calculatedMessages[i].message.sender === "user") {
|
|
4726
|
+
lastSenderMessage = calculatedMessages[i];
|
|
4727
|
+
break;
|
|
4728
|
+
}
|
|
4729
|
+
}
|
|
4730
|
+
if (!lastSenderMessage) {
|
|
4731
|
+
return [];
|
|
4732
|
+
}
|
|
4733
|
+
const readReceiptText = props.readReceiptText ?? MESSAGE_DEFAULTS2.readReceiptText;
|
|
4734
|
+
const readReceiptGap = props.readReceiptGap ?? MESSAGE_DEFAULTS2.readReceiptGap;
|
|
4735
|
+
const readReceiptFontSize = props.readReceiptFontSize ?? MESSAGE_DEFAULTS2.readReceiptFontSize;
|
|
4736
|
+
const readReceiptLetterSpacing = props.readReceiptLetterSpacing ?? MESSAGE_DEFAULTS2.readReceiptLetterSpacing;
|
|
4737
|
+
const readReceiptColor = props.readReceiptColor ?? MESSAGE_DEFAULTS2.readReceiptColor;
|
|
4738
|
+
const senderBubbleRight = props.senderBubbleRight ?? MESSAGE_DEFAULTS2.senderBubbleRight;
|
|
4739
|
+
const readReceiptTop = lastSenderMessage.bottom + readReceiptGap - readReceiptFontSize;
|
|
4740
|
+
return [{
|
|
4741
|
+
id: "read-receipt",
|
|
4742
|
+
type: "text",
|
|
4743
|
+
x: 0,
|
|
4744
|
+
y: readReceiptTop,
|
|
4745
|
+
width: senderBubbleRight,
|
|
4746
|
+
height: readReceiptFontSize,
|
|
4747
|
+
zIndex: 4,
|
|
4748
|
+
text: readReceiptText,
|
|
4749
|
+
font: "apple",
|
|
4750
|
+
fontWeight: 600,
|
|
4751
|
+
fontSize: readReceiptFontSize,
|
|
4752
|
+
letterSpacing: readReceiptLetterSpacing,
|
|
4753
|
+
color: readReceiptColor,
|
|
4754
|
+
textAlign: "right",
|
|
4755
|
+
verticalAlign: "middle"
|
|
4756
|
+
}];
|
|
4757
|
+
}
|
|
4711
4758
|
function buildImageUrls2(props) {
|
|
4712
4759
|
const imageUrls = {};
|
|
4713
4760
|
const messages = props.messages ?? [];
|
|
@@ -4724,7 +4771,8 @@ function convertPropsToElements2(props) {
|
|
|
4724
4771
|
const calculatedMessages = calculateMessagePositions2(props);
|
|
4725
4772
|
const messageElements = generateMessageElements2(props, calculatedMessages);
|
|
4726
4773
|
const headerTextElements = generateHeaderTextElements(props, calculatedMessages);
|
|
4727
|
-
const
|
|
4774
|
+
const readReceiptElements = generateReadReceiptElement(props, calculatedMessages);
|
|
4775
|
+
const allElements = [...messageElements, ...headerTextElements, ...readReceiptElements];
|
|
4728
4776
|
allElements.sort((a, b) => (a.zIndex ?? 0) - (b.zIndex ?? 0));
|
|
4729
4777
|
const imageUrls = buildImageUrls2(props);
|
|
4730
4778
|
return {
|
|
@@ -4876,13 +4924,20 @@ var defaultIMessageDmProps = {
|
|
|
4876
4924
|
// Message area header text (above first message)
|
|
4877
4925
|
messageHeaderImessageText: "iMessage",
|
|
4878
4926
|
messageHeaderTimestampText: "Today 12:16 PM",
|
|
4879
|
-
messageHeaderTimestampGap:
|
|
4880
|
-
messageHeaderImessageGap:
|
|
4927
|
+
messageHeaderTimestampGap: 30,
|
|
4928
|
+
messageHeaderImessageGap: 5,
|
|
4881
4929
|
messageHeaderTextColor: "#626167",
|
|
4882
|
-
messageHeaderFontSize:
|
|
4883
|
-
messageHeaderLetterSpacing:
|
|
4930
|
+
messageHeaderFontSize: 34,
|
|
4931
|
+
messageHeaderLetterSpacing: 1.25,
|
|
4884
4932
|
messageHeaderLeft: 0,
|
|
4885
4933
|
messageHeaderRight: 1206,
|
|
4934
|
+
// Read receipt (under last sender message)
|
|
4935
|
+
showReadReceipt: true,
|
|
4936
|
+
readReceiptText: "Read 12:16 PM",
|
|
4937
|
+
readReceiptGap: 47,
|
|
4938
|
+
readReceiptFontSize: 34,
|
|
4939
|
+
readReceiptLetterSpacing: 1.25,
|
|
4940
|
+
readReceiptColor: "#626167",
|
|
4886
4941
|
// Example messages
|
|
4887
4942
|
messages: [
|
|
4888
4943
|
{ id: "msg-1", sender: "user", text: "heyyy fae, help me slide on this baddie pls \u{1F64F}", imageUrl: "https://n14dcpakf8w1fekl.public.blob.vercel-storage.com/media/06c3ed1c-eefb-4a60-b0c4-5fb872811ba0/pinterest-1766175214139-0-JpXmGIxVWdjEJ3qxGyoC4DAi2KAZrg.jpg" },
|
|
@@ -5841,6 +5896,13 @@ var iMessageDmPropsSchema = z.object({
|
|
|
5841
5896
|
messageHeaderLetterSpacing: z.number().optional(),
|
|
5842
5897
|
messageHeaderLeft: z.number().optional(),
|
|
5843
5898
|
messageHeaderRight: z.number().optional(),
|
|
5899
|
+
// Read receipt
|
|
5900
|
+
showReadReceipt: z.boolean().optional(),
|
|
5901
|
+
readReceiptText: z.string().optional(),
|
|
5902
|
+
readReceiptGap: z.number().optional(),
|
|
5903
|
+
readReceiptFontSize: z.number().optional(),
|
|
5904
|
+
readReceiptLetterSpacing: z.number().optional(),
|
|
5905
|
+
readReceiptColor: z.string().optional(),
|
|
5844
5906
|
// Messages
|
|
5845
5907
|
messages: z.array(z.object({
|
|
5846
5908
|
id: z.string(),
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ugcinc-render",
|
|
3
|
-
"version": "1.8.
|
|
3
|
+
"version": "1.8.173",
|
|
4
4
|
"description": "Unified rendering package for UGC Inc - shared types, components, and compositions for pixel-perfect client/server rendering",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"module": "dist/index.mjs",
|