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 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: 36,
5301
- messageHeaderImessageGap: 39,
5300
+ messageHeaderTimestampGap: 30,
5301
+ messageHeaderImessageGap: 5,
5302
5302
  messageHeaderTextColor: "#626167",
5303
- messageHeaderFontSize: 36,
5304
- messageHeaderLetterSpacing: 0.5,
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 allElements = [...messageElements, ...headerTextElements];
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: 36,
5834
- messageHeaderImessageGap: 39,
5881
+ messageHeaderTimestampGap: 30,
5882
+ messageHeaderImessageGap: 5,
5835
5883
  messageHeaderTextColor: "#626167",
5836
- messageHeaderFontSize: 36,
5837
- messageHeaderLetterSpacing: 0.5,
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: 36,
4347
- messageHeaderImessageGap: 39,
4346
+ messageHeaderTimestampGap: 30,
4347
+ messageHeaderImessageGap: 5,
4348
4348
  messageHeaderTextColor: "#626167",
4349
- messageHeaderFontSize: 36,
4350
- messageHeaderLetterSpacing: 0.5,
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 allElements = [...messageElements, ...headerTextElements];
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: 36,
4880
- messageHeaderImessageGap: 39,
4927
+ messageHeaderTimestampGap: 30,
4928
+ messageHeaderImessageGap: 5,
4881
4929
  messageHeaderTextColor: "#626167",
4882
- messageHeaderFontSize: 36,
4883
- messageHeaderLetterSpacing: 0.5,
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.172",
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",