ugcinc-render 1.8.172 → 1.8.174

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,14 @@ 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;
1126
+ readReceiptLeft?: number;
1127
+ readReceiptRight?: number;
1120
1128
  messages?: ImMessage[];
1121
1129
  }
1122
1130
 
package/dist/index.d.ts CHANGED
@@ -1117,6 +1117,14 @@ 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;
1126
+ readReceiptLeft?: number;
1127
+ readReceiptRight?: number;
1120
1128
  messages?: ImMessage[];
1121
1129
  }
1122
1130
 
package/dist/index.js CHANGED
@@ -5297,13 +5297,22 @@ 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",
5314
+ readReceiptLeft: 0,
5315
+ readReceiptRight: 1158
5307
5316
  };
5308
5317
  var FONT_FAMILY2 = getFontFamily("apple");
5309
5318
  function calculateAutoWidthAndLines3({
@@ -5662,6 +5671,48 @@ function generateHeaderTextElements(props, calculatedMessages) {
5662
5671
  });
5663
5672
  return elements;
5664
5673
  }
5674
+ function generateReadReceiptElement(props, calculatedMessages) {
5675
+ const showReadReceipt = props.showReadReceipt ?? MESSAGE_DEFAULTS2.showReadReceipt;
5676
+ if (!showReadReceipt) {
5677
+ return [];
5678
+ }
5679
+ let lastSenderMessage = null;
5680
+ for (let i = calculatedMessages.length - 1; i >= 0; i--) {
5681
+ if (calculatedMessages[i].message.sender === "user") {
5682
+ lastSenderMessage = calculatedMessages[i];
5683
+ break;
5684
+ }
5685
+ }
5686
+ if (!lastSenderMessage) {
5687
+ return [];
5688
+ }
5689
+ const readReceiptText = props.readReceiptText ?? MESSAGE_DEFAULTS2.readReceiptText;
5690
+ const readReceiptGap = props.readReceiptGap ?? MESSAGE_DEFAULTS2.readReceiptGap;
5691
+ const readReceiptFontSize = props.readReceiptFontSize ?? MESSAGE_DEFAULTS2.readReceiptFontSize;
5692
+ const readReceiptLetterSpacing = props.readReceiptLetterSpacing ?? MESSAGE_DEFAULTS2.readReceiptLetterSpacing;
5693
+ const readReceiptColor = props.readReceiptColor ?? MESSAGE_DEFAULTS2.readReceiptColor;
5694
+ const readReceiptLeft = props.readReceiptLeft ?? MESSAGE_DEFAULTS2.readReceiptLeft;
5695
+ const readReceiptRight = props.readReceiptRight ?? MESSAGE_DEFAULTS2.readReceiptRight;
5696
+ const readReceiptWidth = readReceiptRight - readReceiptLeft;
5697
+ const readReceiptTop = lastSenderMessage.bottom + readReceiptGap - readReceiptFontSize;
5698
+ return [{
5699
+ id: "read-receipt",
5700
+ type: "text",
5701
+ x: readReceiptLeft,
5702
+ y: readReceiptTop,
5703
+ width: readReceiptWidth,
5704
+ height: readReceiptFontSize,
5705
+ zIndex: 4,
5706
+ text: readReceiptText,
5707
+ font: "apple",
5708
+ fontWeight: 600,
5709
+ fontSize: readReceiptFontSize,
5710
+ letterSpacing: readReceiptLetterSpacing,
5711
+ color: readReceiptColor,
5712
+ textAlign: "right",
5713
+ verticalAlign: "middle"
5714
+ }];
5715
+ }
5665
5716
  function buildImageUrls2(props) {
5666
5717
  const imageUrls = {};
5667
5718
  const messages = props.messages ?? [];
@@ -5678,7 +5729,8 @@ function convertPropsToElements2(props) {
5678
5729
  const calculatedMessages = calculateMessagePositions2(props);
5679
5730
  const messageElements = generateMessageElements2(props, calculatedMessages);
5680
5731
  const headerTextElements = generateHeaderTextElements(props, calculatedMessages);
5681
- const allElements = [...messageElements, ...headerTextElements];
5732
+ const readReceiptElements = generateReadReceiptElement(props, calculatedMessages);
5733
+ const allElements = [...messageElements, ...headerTextElements, ...readReceiptElements];
5682
5734
  allElements.sort((a, b) => (a.zIndex ?? 0) - (b.zIndex ?? 0));
5683
5735
  const imageUrls = buildImageUrls2(props);
5684
5736
  return {
@@ -5830,13 +5882,22 @@ var defaultIMessageDmProps = {
5830
5882
  // Message area header text (above first message)
5831
5883
  messageHeaderImessageText: "iMessage",
5832
5884
  messageHeaderTimestampText: "Today 12:16 PM",
5833
- messageHeaderTimestampGap: 36,
5834
- messageHeaderImessageGap: 39,
5885
+ messageHeaderTimestampGap: 30,
5886
+ messageHeaderImessageGap: 5,
5835
5887
  messageHeaderTextColor: "#626167",
5836
- messageHeaderFontSize: 36,
5837
- messageHeaderLetterSpacing: 0.5,
5888
+ messageHeaderFontSize: 34,
5889
+ messageHeaderLetterSpacing: 1.25,
5838
5890
  messageHeaderLeft: 0,
5839
5891
  messageHeaderRight: 1206,
5892
+ // Read receipt (under last sender message)
5893
+ showReadReceipt: true,
5894
+ readReceiptText: "Read 12:16 PM",
5895
+ readReceiptGap: 47,
5896
+ readReceiptFontSize: 34,
5897
+ readReceiptLetterSpacing: 1.25,
5898
+ readReceiptColor: "#626167",
5899
+ readReceiptLeft: 0,
5900
+ readReceiptRight: 1158,
5840
5901
  // Example messages
5841
5902
  messages: [
5842
5903
  { 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 +7139,15 @@ var iMessageDmPropsSchema = import_zod.z.object({
7078
7139
  messageHeaderLetterSpacing: import_zod.z.number().optional(),
7079
7140
  messageHeaderLeft: import_zod.z.number().optional(),
7080
7141
  messageHeaderRight: import_zod.z.number().optional(),
7142
+ // Read receipt
7143
+ showReadReceipt: import_zod.z.boolean().optional(),
7144
+ readReceiptText: import_zod.z.string().optional(),
7145
+ readReceiptGap: import_zod.z.number().optional(),
7146
+ readReceiptFontSize: import_zod.z.number().optional(),
7147
+ readReceiptLetterSpacing: import_zod.z.number().optional(),
7148
+ readReceiptColor: import_zod.z.string().optional(),
7149
+ readReceiptLeft: import_zod.z.number().optional(),
7150
+ readReceiptRight: import_zod.z.number().optional(),
7081
7151
  // Messages
7082
7152
  messages: import_zod.z.array(import_zod.z.object({
7083
7153
  id: import_zod.z.string(),
package/dist/index.mjs CHANGED
@@ -4343,13 +4343,22 @@ 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",
4360
+ readReceiptLeft: 0,
4361
+ readReceiptRight: 1158
4353
4362
  };
4354
4363
  var FONT_FAMILY2 = getFontFamily("apple");
4355
4364
  function calculateAutoWidthAndLines3({
@@ -4708,6 +4717,48 @@ function generateHeaderTextElements(props, calculatedMessages) {
4708
4717
  });
4709
4718
  return elements;
4710
4719
  }
4720
+ function generateReadReceiptElement(props, calculatedMessages) {
4721
+ const showReadReceipt = props.showReadReceipt ?? MESSAGE_DEFAULTS2.showReadReceipt;
4722
+ if (!showReadReceipt) {
4723
+ return [];
4724
+ }
4725
+ let lastSenderMessage = null;
4726
+ for (let i = calculatedMessages.length - 1; i >= 0; i--) {
4727
+ if (calculatedMessages[i].message.sender === "user") {
4728
+ lastSenderMessage = calculatedMessages[i];
4729
+ break;
4730
+ }
4731
+ }
4732
+ if (!lastSenderMessage) {
4733
+ return [];
4734
+ }
4735
+ const readReceiptText = props.readReceiptText ?? MESSAGE_DEFAULTS2.readReceiptText;
4736
+ const readReceiptGap = props.readReceiptGap ?? MESSAGE_DEFAULTS2.readReceiptGap;
4737
+ const readReceiptFontSize = props.readReceiptFontSize ?? MESSAGE_DEFAULTS2.readReceiptFontSize;
4738
+ const readReceiptLetterSpacing = props.readReceiptLetterSpacing ?? MESSAGE_DEFAULTS2.readReceiptLetterSpacing;
4739
+ const readReceiptColor = props.readReceiptColor ?? MESSAGE_DEFAULTS2.readReceiptColor;
4740
+ const readReceiptLeft = props.readReceiptLeft ?? MESSAGE_DEFAULTS2.readReceiptLeft;
4741
+ const readReceiptRight = props.readReceiptRight ?? MESSAGE_DEFAULTS2.readReceiptRight;
4742
+ const readReceiptWidth = readReceiptRight - readReceiptLeft;
4743
+ const readReceiptTop = lastSenderMessage.bottom + readReceiptGap - readReceiptFontSize;
4744
+ return [{
4745
+ id: "read-receipt",
4746
+ type: "text",
4747
+ x: readReceiptLeft,
4748
+ y: readReceiptTop,
4749
+ width: readReceiptWidth,
4750
+ height: readReceiptFontSize,
4751
+ zIndex: 4,
4752
+ text: readReceiptText,
4753
+ font: "apple",
4754
+ fontWeight: 600,
4755
+ fontSize: readReceiptFontSize,
4756
+ letterSpacing: readReceiptLetterSpacing,
4757
+ color: readReceiptColor,
4758
+ textAlign: "right",
4759
+ verticalAlign: "middle"
4760
+ }];
4761
+ }
4711
4762
  function buildImageUrls2(props) {
4712
4763
  const imageUrls = {};
4713
4764
  const messages = props.messages ?? [];
@@ -4724,7 +4775,8 @@ function convertPropsToElements2(props) {
4724
4775
  const calculatedMessages = calculateMessagePositions2(props);
4725
4776
  const messageElements = generateMessageElements2(props, calculatedMessages);
4726
4777
  const headerTextElements = generateHeaderTextElements(props, calculatedMessages);
4727
- const allElements = [...messageElements, ...headerTextElements];
4778
+ const readReceiptElements = generateReadReceiptElement(props, calculatedMessages);
4779
+ const allElements = [...messageElements, ...headerTextElements, ...readReceiptElements];
4728
4780
  allElements.sort((a, b) => (a.zIndex ?? 0) - (b.zIndex ?? 0));
4729
4781
  const imageUrls = buildImageUrls2(props);
4730
4782
  return {
@@ -4876,13 +4928,22 @@ var defaultIMessageDmProps = {
4876
4928
  // Message area header text (above first message)
4877
4929
  messageHeaderImessageText: "iMessage",
4878
4930
  messageHeaderTimestampText: "Today 12:16 PM",
4879
- messageHeaderTimestampGap: 36,
4880
- messageHeaderImessageGap: 39,
4931
+ messageHeaderTimestampGap: 30,
4932
+ messageHeaderImessageGap: 5,
4881
4933
  messageHeaderTextColor: "#626167",
4882
- messageHeaderFontSize: 36,
4883
- messageHeaderLetterSpacing: 0.5,
4934
+ messageHeaderFontSize: 34,
4935
+ messageHeaderLetterSpacing: 1.25,
4884
4936
  messageHeaderLeft: 0,
4885
4937
  messageHeaderRight: 1206,
4938
+ // Read receipt (under last sender message)
4939
+ showReadReceipt: true,
4940
+ readReceiptText: "Read 12:16 PM",
4941
+ readReceiptGap: 47,
4942
+ readReceiptFontSize: 34,
4943
+ readReceiptLetterSpacing: 1.25,
4944
+ readReceiptColor: "#626167",
4945
+ readReceiptLeft: 0,
4946
+ readReceiptRight: 1158,
4886
4947
  // Example messages
4887
4948
  messages: [
4888
4949
  { 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 +5902,15 @@ var iMessageDmPropsSchema = z.object({
5841
5902
  messageHeaderLetterSpacing: z.number().optional(),
5842
5903
  messageHeaderLeft: z.number().optional(),
5843
5904
  messageHeaderRight: z.number().optional(),
5905
+ // Read receipt
5906
+ showReadReceipt: z.boolean().optional(),
5907
+ readReceiptText: z.string().optional(),
5908
+ readReceiptGap: z.number().optional(),
5909
+ readReceiptFontSize: z.number().optional(),
5910
+ readReceiptLetterSpacing: z.number().optional(),
5911
+ readReceiptColor: z.string().optional(),
5912
+ readReceiptLeft: z.number().optional(),
5913
+ readReceiptRight: z.number().optional(),
5844
5914
  // Messages
5845
5915
  messages: z.array(z.object({
5846
5916
  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.174",
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",