@acorex/components 20.8.32 → 20.9.0

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.
Files changed (128) hide show
  1. package/conversation/README.md +462 -2
  2. package/conversation/index.d.ts +5400 -485
  3. package/fesm2022/acorex-components-calendar.mjs +3 -2
  4. package/fesm2022/acorex-components-calendar.mjs.map +1 -1
  5. package/fesm2022/acorex-components-conversation-acorex-components-conversation-CjVDCoJw.mjs +13711 -0
  6. package/fesm2022/acorex-components-conversation-acorex-components-conversation-CjVDCoJw.mjs.map +1 -0
  7. package/fesm2022/acorex-components-conversation-audio-attachment.component-Ri-Jx210.mjs +119 -0
  8. package/fesm2022/acorex-components-conversation-audio-attachment.component-Ri-Jx210.mjs.map +1 -0
  9. package/fesm2022/acorex-components-conversation-audio-composer.payload-DiMDlVl9.mjs +59 -0
  10. package/fesm2022/acorex-components-conversation-audio-composer.payload-DiMDlVl9.mjs.map +1 -0
  11. package/fesm2022/acorex-components-conversation-audio-picker.component-CqrKBDIF.mjs +432 -0
  12. package/fesm2022/acorex-components-conversation-audio-picker.component-CqrKBDIF.mjs.map +1 -0
  13. package/fesm2022/acorex-components-conversation-audio-renderer.component-CO8owVrA.mjs +177 -0
  14. package/fesm2022/acorex-components-conversation-audio-renderer.component-CO8owVrA.mjs.map +1 -0
  15. package/fesm2022/acorex-components-conversation-audio.payload-CLnYjmYY.mjs +54 -0
  16. package/fesm2022/acorex-components-conversation-audio.payload-CLnYjmYY.mjs.map +1 -0
  17. package/fesm2022/acorex-components-conversation-composer-action-choice-dialog.component-CYutyq7i.mjs +101 -0
  18. package/fesm2022/acorex-components-conversation-composer-action-choice-dialog.component-CYutyq7i.mjs.map +1 -0
  19. package/fesm2022/acorex-components-conversation-conversation-audio.file-type-D-hIBwQ2.mjs +100 -0
  20. package/fesm2022/acorex-components-conversation-conversation-audio.file-type-D-hIBwQ2.mjs.map +1 -0
  21. package/fesm2022/acorex-components-conversation-conversation-file.file-type-DQUy3C64.mjs +121 -0
  22. package/fesm2022/acorex-components-conversation-conversation-file.file-type-DQUy3C64.mjs.map +1 -0
  23. package/fesm2022/acorex-components-conversation-conversation-image.file-type-Bd_SkwR0.mjs +84 -0
  24. package/fesm2022/acorex-components-conversation-conversation-image.file-type-Bd_SkwR0.mjs.map +1 -0
  25. package/fesm2022/acorex-components-conversation-conversation-info-media-view.component-BalIIAFB.mjs +238 -0
  26. package/fesm2022/acorex-components-conversation-conversation-info-media-view.component-BalIIAFB.mjs.map +1 -0
  27. package/fesm2022/acorex-components-conversation-conversation-info-panel.component-BJMo9bDd.mjs +1080 -0
  28. package/fesm2022/acorex-components-conversation-conversation-info-panel.component-BJMo9bDd.mjs.map +1 -0
  29. package/fesm2022/acorex-components-conversation-conversation-video.file-type-DyK0bLE5.mjs +102 -0
  30. package/fesm2022/acorex-components-conversation-conversation-video.file-type-DyK0bLE5.mjs.map +1 -0
  31. package/fesm2022/acorex-components-conversation-conversation-voice.file-type-v3rFWDv6.mjs +90 -0
  32. package/fesm2022/acorex-components-conversation-conversation-voice.file-type-v3rFWDv6.mjs.map +1 -0
  33. package/fesm2022/acorex-components-conversation-emoji-categories-C7Gm95V0.mjs +1840 -0
  34. package/fesm2022/acorex-components-conversation-emoji-categories-C7Gm95V0.mjs.map +1 -0
  35. package/fesm2022/acorex-components-conversation-fallback-renderer.component-DOQkZWwP.mjs +44 -0
  36. package/fesm2022/acorex-components-conversation-fallback-renderer.component-DOQkZWwP.mjs.map +1 -0
  37. package/fesm2022/acorex-components-conversation-file-composer.payload-azPSH99m.mjs +64 -0
  38. package/fesm2022/acorex-components-conversation-file-composer.payload-azPSH99m.mjs.map +1 -0
  39. package/fesm2022/acorex-components-conversation-file-picker.component-cmUkgSF3.mjs +468 -0
  40. package/fesm2022/acorex-components-conversation-file-picker.component-cmUkgSF3.mjs.map +1 -0
  41. package/fesm2022/acorex-components-conversation-file-renderer.component-CpUgRTR4.mjs +125 -0
  42. package/fesm2022/acorex-components-conversation-file-renderer.component-CpUgRTR4.mjs.map +1 -0
  43. package/fesm2022/acorex-components-conversation-file.payload-DXwzNWxT.mjs +50 -0
  44. package/fesm2022/acorex-components-conversation-file.payload-DXwzNWxT.mjs.map +1 -0
  45. package/fesm2022/acorex-components-conversation-format-media-DUD4vA6F.mjs +21 -0
  46. package/fesm2022/acorex-components-conversation-format-media-DUD4vA6F.mjs.map +1 -0
  47. package/fesm2022/acorex-components-conversation-image-attachment.component-BZto5LFo.mjs +77 -0
  48. package/fesm2022/acorex-components-conversation-image-attachment.component-BZto5LFo.mjs.map +1 -0
  49. package/fesm2022/acorex-components-conversation-image-picker.component-G9EEOyDg.mjs +407 -0
  50. package/fesm2022/acorex-components-conversation-image-picker.component-G9EEOyDg.mjs.map +1 -0
  51. package/fesm2022/acorex-components-conversation-image-renderer.component-Bwa6rG6C.mjs +83 -0
  52. package/fesm2022/acorex-components-conversation-image-renderer.component-Bwa6rG6C.mjs.map +1 -0
  53. package/fesm2022/acorex-components-conversation-index-BbrYsQ84.mjs +180 -0
  54. package/fesm2022/acorex-components-conversation-index-BbrYsQ84.mjs.map +1 -0
  55. package/fesm2022/acorex-components-conversation-index-DtGEWeKN.mjs +266 -0
  56. package/fesm2022/acorex-components-conversation-index-DtGEWeKN.mjs.map +1 -0
  57. package/fesm2022/acorex-components-conversation-location-picker.component-Cx993j_c.mjs +149 -0
  58. package/fesm2022/acorex-components-conversation-location-picker.component-Cx993j_c.mjs.map +1 -0
  59. package/fesm2022/acorex-components-conversation-location-renderer.component-BiynmAJw.mjs +118 -0
  60. package/fesm2022/acorex-components-conversation-location-renderer.component-BiynmAJw.mjs.map +1 -0
  61. package/fesm2022/acorex-components-conversation-media-formatters-DV3wEEno.mjs +17 -0
  62. package/fesm2022/acorex-components-conversation-media-formatters-DV3wEEno.mjs.map +1 -0
  63. package/fesm2022/acorex-components-conversation-media-playback-info-bar-banner.component-a7OSpfB1.mjs +140 -0
  64. package/fesm2022/acorex-components-conversation-media-playback-info-bar-banner.component-a7OSpfB1.mjs.map +1 -0
  65. package/fesm2022/acorex-components-conversation-message-renderer-copy-host.component-D_eAnM6v.mjs +33 -0
  66. package/fesm2022/acorex-components-conversation-message-renderer-copy-host.component-D_eAnM6v.mjs.map +1 -0
  67. package/fesm2022/acorex-components-conversation-message-renderer-state.component-DSnNoz1N.mjs +172 -0
  68. package/fesm2022/acorex-components-conversation-message-renderer-state.component-DSnNoz1N.mjs.map +1 -0
  69. package/fesm2022/acorex-components-conversation-open-composer-picker-for-files-CbNyy2Ws.mjs +224 -0
  70. package/fesm2022/acorex-components-conversation-open-composer-picker-for-files-CbNyy2Ws.mjs.map +1 -0
  71. package/fesm2022/acorex-components-conversation-pagination-demo-data-DRr9PXjJ.mjs +81 -0
  72. package/fesm2022/acorex-components-conversation-pagination-demo-data-DRr9PXjJ.mjs.map +1 -0
  73. package/fesm2022/acorex-components-conversation-picker-header.component-BhTzlufI.mjs +91 -0
  74. package/fesm2022/acorex-components-conversation-picker-header.component-BhTzlufI.mjs.map +1 -0
  75. package/fesm2022/acorex-components-conversation-picker-toolbar.component-CpyS0j6P.mjs +537 -0
  76. package/fesm2022/acorex-components-conversation-picker-toolbar.component-CpyS0j6P.mjs.map +1 -0
  77. package/fesm2022/acorex-components-conversation-picker-upload-C-PlKPaU.mjs +163 -0
  78. package/fesm2022/acorex-components-conversation-picker-upload-C-PlKPaU.mjs.map +1 -0
  79. package/fesm2022/acorex-components-conversation-playback-banner-sync-BMsx6Fuy.mjs +68 -0
  80. package/fesm2022/acorex-components-conversation-playback-banner-sync-BMsx6Fuy.mjs.map +1 -0
  81. package/fesm2022/acorex-components-conversation-renderer-shared.styles-Digah3Zn.mjs +95 -0
  82. package/fesm2022/acorex-components-conversation-renderer-shared.styles-Digah3Zn.mjs.map +1 -0
  83. package/fesm2022/acorex-components-conversation-search.component-96NI2ERG.mjs +187 -0
  84. package/fesm2022/acorex-components-conversation-search.component-96NI2ERG.mjs.map +1 -0
  85. package/fesm2022/acorex-components-conversation-send-message-media--Rbrne7k.mjs +170 -0
  86. package/fesm2022/acorex-components-conversation-send-message-media--Rbrne7k.mjs.map +1 -0
  87. package/fesm2022/acorex-components-conversation-shared-storage.seed-zFjNXfKF.mjs +750 -0
  88. package/fesm2022/acorex-components-conversation-shared-storage.seed-zFjNXfKF.mjs.map +1 -0
  89. package/fesm2022/acorex-components-conversation-sticker-renderer.component-BZgx_Ylk.mjs +103 -0
  90. package/fesm2022/acorex-components-conversation-sticker-renderer.component-BZgx_Ylk.mjs.map +1 -0
  91. package/fesm2022/acorex-components-conversation-system-renderer.component-D1Aj-LuF.mjs +55 -0
  92. package/fesm2022/acorex-components-conversation-system-renderer.component-D1Aj-LuF.mjs.map +1 -0
  93. package/fesm2022/acorex-components-conversation-text-renderer.component-Cxvwjr2p.mjs +109 -0
  94. package/fesm2022/acorex-components-conversation-text-renderer.component-Cxvwjr2p.mjs.map +1 -0
  95. package/fesm2022/acorex-components-conversation-video-attachment.component-DBY_4Ri2.mjs +105 -0
  96. package/fesm2022/acorex-components-conversation-video-attachment.component-DBY_4Ri2.mjs.map +1 -0
  97. package/fesm2022/acorex-components-conversation-video-composer.payload-CWGxsPg5.mjs +62 -0
  98. package/fesm2022/acorex-components-conversation-video-composer.payload-CWGxsPg5.mjs.map +1 -0
  99. package/fesm2022/acorex-components-conversation-video-picker.component-D1JYwEm_.mjs +446 -0
  100. package/fesm2022/acorex-components-conversation-video-picker.component-D1JYwEm_.mjs.map +1 -0
  101. package/fesm2022/acorex-components-conversation-video-renderer.component-iwf2bU29.mjs +181 -0
  102. package/fesm2022/acorex-components-conversation-video-renderer.component-iwf2bU29.mjs.map +1 -0
  103. package/fesm2022/acorex-components-conversation-video.payload-DfBEjqQ4.mjs +54 -0
  104. package/fesm2022/acorex-components-conversation-video.payload-DfBEjqQ4.mjs.map +1 -0
  105. package/fesm2022/acorex-components-conversation-voice-composer.payload-DLVow7ex.mjs +17 -0
  106. package/fesm2022/acorex-components-conversation-voice-composer.payload-DLVow7ex.mjs.map +1 -0
  107. package/fesm2022/acorex-components-conversation-voice-recorder.component-P8J_5OH0.mjs +328 -0
  108. package/fesm2022/acorex-components-conversation-voice-recorder.component-P8J_5OH0.mjs.map +1 -0
  109. package/fesm2022/acorex-components-conversation-voice-renderer.component-CZpEqbXL.mjs +270 -0
  110. package/fesm2022/acorex-components-conversation-voice-renderer.component-CZpEqbXL.mjs.map +1 -0
  111. package/fesm2022/acorex-components-conversation.mjs +1 -1402
  112. package/fesm2022/acorex-components-conversation.mjs.map +1 -1
  113. package/fesm2022/acorex-components-data-table.mjs +2 -2
  114. package/fesm2022/acorex-components-data-table.mjs.map +1 -1
  115. package/fesm2022/acorex-components-rest-api-generator.mjs +2 -2
  116. package/fesm2022/acorex-components-rest-api-generator.mjs.map +1 -1
  117. package/fesm2022/acorex-components-scheduler-picker.mjs +22 -14
  118. package/fesm2022/acorex-components-scheduler-picker.mjs.map +1 -1
  119. package/fesm2022/acorex-components-step-wizard.mjs +2 -2
  120. package/fesm2022/acorex-components-step-wizard.mjs.map +1 -1
  121. package/fesm2022/acorex-components-tree-view-legacy.mjs +2 -2
  122. package/fesm2022/acorex-components-tree-view-legacy.mjs.map +1 -1
  123. package/package.json +35 -39
  124. package/scheduler-picker/index.d.ts +2 -0
  125. package/conversation2/README.md +0 -463
  126. package/conversation2/index.d.ts +0 -6410
  127. package/fesm2022/acorex-components-conversation2.mjs +0 -22331
  128. package/fesm2022/acorex-components-conversation2.mjs.map +0 -1
@@ -0,0 +1,750 @@
1
+ import { i as axConversationIndexedDbStorage, j as registerChatMessage } from './acorex-components-conversation-acorex-components-conversation-CjVDCoJw.mjs';
2
+ import { ensurePaginationDemoData } from './acorex-components-conversation-pagination-demo-data-DRr9PXjJ.mjs';
3
+
4
+ async function seedSharedStorageInitialData(storage) {
5
+ console.log('🌱 Seeding initial data...');
6
+ // Create participants (15 users for realistic data) with profile information
7
+ const participants = [
8
+ {
9
+ id: 'current-user',
10
+ name: 'You',
11
+ description: 'Senior Developer',
12
+ avatar: 'https://i.pravatar.cc/150?img=1',
13
+ status: 'online',
14
+ lastSeen: new Date(),
15
+ profile: {
16
+ bio: 'Software developer passionate about creating amazing user experiences',
17
+ email: 'you@example.com',
18
+ phone: '+1 (555) 123-4567',
19
+ location: 'San Francisco, CA',
20
+ company: 'Tech Corp',
21
+ title: 'Senior Developer',
22
+ },
23
+ },
24
+ {
25
+ id: 'user-2',
26
+ name: 'Alice Johnson',
27
+ description: 'Lead Designer',
28
+ avatar: 'https://i.pravatar.cc/150?img=5',
29
+ status: 'online',
30
+ lastSeen: new Date(),
31
+ profile: {
32
+ bio: 'Product designer with a love for minimalist aesthetics',
33
+ email: 'alice.johnson@example.com',
34
+ phone: '+1 (555) 234-5678',
35
+ location: 'New York, NY',
36
+ company: 'Design Studio',
37
+ title: 'Lead Designer',
38
+ },
39
+ },
40
+ {
41
+ id: 'user-3',
42
+ name: 'Bob Smith',
43
+ description: 'Tech Lead',
44
+ avatar: 'https://i.pravatar.cc/150?img=12',
45
+ status: 'away',
46
+ lastSeen: new Date(Date.now() - 300000),
47
+ profile: {
48
+ bio: 'Full-stack developer and open source enthusiast',
49
+ email: 'bob.smith@example.com',
50
+ phone: '+1 (555) 345-6789',
51
+ location: 'Austin, TX',
52
+ company: 'Startup Inc',
53
+ title: 'Tech Lead',
54
+ },
55
+ },
56
+ {
57
+ id: 'user-4',
58
+ name: 'Carol Williams',
59
+ description: 'Marketing Manager',
60
+ avatar: 'https://i.pravatar.cc/150?img=20',
61
+ status: 'offline',
62
+ lastSeen: new Date(Date.now() - 3600000),
63
+ profile: {
64
+ bio: 'Marketing specialist focused on digital strategies',
65
+ email: 'carol.williams@example.com',
66
+ phone: '+1 (555) 456-7890',
67
+ location: 'Los Angeles, CA',
68
+ company: 'Marketing Pro',
69
+ title: 'Marketing Manager',
70
+ },
71
+ },
72
+ {
73
+ id: 'user-5',
74
+ name: 'David Brown',
75
+ description: 'DevOps Lead',
76
+ avatar: 'https://i.pravatar.cc/150?img=13',
77
+ status: 'online',
78
+ lastSeen: new Date(),
79
+ profile: {
80
+ bio: 'DevOps engineer passionate about automation',
81
+ email: 'david.brown@example.com',
82
+ phone: '+1 (555) 567-8901',
83
+ location: 'Seattle, WA',
84
+ company: 'Cloud Systems',
85
+ title: 'DevOps Lead',
86
+ },
87
+ },
88
+ {
89
+ id: 'user-6',
90
+ name: 'Emma Davis',
91
+ description: 'UX Researcher',
92
+ avatar: 'https://i.pravatar.cc/150?img=24',
93
+ status: 'offline',
94
+ lastSeen: new Date(Date.now() - 7200000),
95
+ profile: {
96
+ bio: 'UX researcher exploring human behavior',
97
+ email: 'emma.davis@example.com',
98
+ phone: '+1 (555) 678-9012',
99
+ location: 'Boston, MA',
100
+ company: 'Research Lab',
101
+ title: 'UX Researcher',
102
+ },
103
+ },
104
+ {
105
+ id: 'user-7',
106
+ name: 'Frank Miller',
107
+ description: 'Data Scientist',
108
+ avatar: 'https://i.pravatar.cc/150?img=33',
109
+ status: 'online',
110
+ lastSeen: new Date(),
111
+ profile: {
112
+ bio: 'Data scientist turning data into insights',
113
+ email: 'frank.miller@example.com',
114
+ phone: '+1 (555) 789-0123',
115
+ location: 'Chicago, IL',
116
+ company: 'Data Corp',
117
+ title: 'Data Scientist',
118
+ },
119
+ },
120
+ {
121
+ id: 'user-8',
122
+ name: 'Grace Wilson',
123
+ description: 'Mobile Developer',
124
+ avatar: 'https://i.pravatar.cc/150?img=44',
125
+ status: 'away',
126
+ lastSeen: new Date(Date.now() - 600000),
127
+ profile: {
128
+ bio: 'Mobile app developer for iOS and Android',
129
+ email: 'grace.wilson@example.com',
130
+ phone: '+1 (555) 890-1234',
131
+ location: 'Miami, FL',
132
+ company: 'Mobile Solutions',
133
+ title: 'Mobile Developer',
134
+ },
135
+ },
136
+ {
137
+ id: 'user-9',
138
+ name: 'Henry Moore',
139
+ description: 'Security Engineer',
140
+ avatar: 'https://i.pravatar.cc/150?img=52',
141
+ status: 'online',
142
+ lastSeen: new Date(),
143
+ profile: {
144
+ bio: 'Security engineer protecting digital assets',
145
+ email: 'henry.moore@example.com',
146
+ phone: '+1 (555) 901-2345',
147
+ location: 'Denver, CO',
148
+ company: 'SecureNet',
149
+ title: 'Security Engineer',
150
+ },
151
+ },
152
+ {
153
+ id: 'user-10',
154
+ name: 'Ivy Taylor',
155
+ description: 'Content Strategist',
156
+ avatar: 'https://i.pravatar.cc/150?img=47',
157
+ status: 'offline',
158
+ lastSeen: new Date(Date.now() - 10800000),
159
+ profile: {
160
+ bio: 'Content strategist crafting compelling narratives',
161
+ email: 'ivy.taylor@example.com',
162
+ phone: '+1 (555) 012-3456',
163
+ location: 'Portland, OR',
164
+ company: 'Content Agency',
165
+ title: 'Content Strategist',
166
+ },
167
+ },
168
+ {
169
+ id: 'user-11',
170
+ name: 'Jack Anderson',
171
+ description: 'Backend Engineer',
172
+ avatar: 'https://i.pravatar.cc/150?img=68',
173
+ status: 'online',
174
+ lastSeen: new Date(),
175
+ profile: {
176
+ bio: 'Backend engineer building scalable systems',
177
+ email: 'jack.anderson@example.com',
178
+ phone: '+1 (555) 123-4560',
179
+ location: 'Phoenix, AZ',
180
+ company: 'Backend Systems',
181
+ title: 'Backend Engineer',
182
+ },
183
+ },
184
+ {
185
+ id: 'user-12',
186
+ name: 'Kate Thomas',
187
+ description: 'Project Manager',
188
+ avatar: 'https://i.pravatar.cc/150?img=32',
189
+ status: 'away',
190
+ lastSeen: new Date(Date.now() - 900000),
191
+ profile: {
192
+ bio: 'Project manager keeping teams on track',
193
+ email: 'kate.thomas@example.com',
194
+ phone: '+1 (555) 234-5601',
195
+ location: 'Atlanta, GA',
196
+ company: 'Project Solutions',
197
+ title: 'Project Manager',
198
+ },
199
+ },
200
+ {
201
+ id: 'user-13',
202
+ name: 'Leo Jackson',
203
+ description: 'ML Engineer',
204
+ avatar: 'https://i.pravatar.cc/150?img=59',
205
+ status: 'online',
206
+ lastSeen: new Date(),
207
+ profile: {
208
+ bio: 'AI/ML engineer exploring artificial intelligence',
209
+ email: 'leo.jackson@example.com',
210
+ phone: '+1 (555) 345-6012',
211
+ location: 'San Jose, CA',
212
+ company: 'AI Labs',
213
+ title: 'ML Engineer',
214
+ },
215
+ },
216
+ {
217
+ id: 'user-14',
218
+ name: 'Mia White',
219
+ description: 'Business Analyst',
220
+ avatar: 'https://i.pravatar.cc/150?img=45',
221
+ status: 'offline',
222
+ lastSeen: new Date(Date.now() - 14400000),
223
+ profile: {
224
+ bio: 'Business analyst bridging tech and business',
225
+ email: 'mia.white@example.com',
226
+ phone: '+1 (555) 456-0123',
227
+ location: 'Dallas, TX',
228
+ company: 'Business Analytics',
229
+ title: 'Business Analyst',
230
+ },
231
+ },
232
+ {
233
+ id: 'user-15',
234
+ name: 'Noah Harris',
235
+ description: 'QA Engineer',
236
+ avatar: 'https://i.pravatar.cc/150?img=70',
237
+ status: 'online',
238
+ lastSeen: new Date(),
239
+ profile: {
240
+ bio: 'QA engineer ensuring quality in every release',
241
+ email: 'noah.harris@example.com',
242
+ phone: '+1 (555) 567-0124',
243
+ location: 'Nashville, TN',
244
+ company: 'Quality Assurance',
245
+ title: 'QA Engineer',
246
+ },
247
+ },
248
+ /** Demo: no avatar image — only participant `icon` (Font Awesome) in the message list */
249
+ {
250
+ id: 'demo-icon-only-user',
251
+ name: 'Icon Demo User',
252
+ description: 'No profile photo — FA icon only',
253
+ icon: 'fa-light fa-user',
254
+ status: 'online',
255
+ lastSeen: new Date(),
256
+ profile: {
257
+ bio: 'Seed user to demo participant icon without profile image',
258
+ email: 'icon.demo@example.com',
259
+ phone: '+1 (555) 999-0000',
260
+ location: 'Demo',
261
+ company: 'Acorex',
262
+ title: 'Demo',
263
+ },
264
+ },
265
+ ];
266
+ // Store participants in memory and IndexedDB
267
+ for (const p of participants) {
268
+ storage.participants.set(p.id, p);
269
+ await axConversationIndexedDbStorage.putParticipant(p);
270
+ }
271
+ // Create conversations: 2 private + 3 groups (includes icon-only avatar demo)
272
+ const now = new Date();
273
+ const conversations = [
274
+ // Private Chat 1: Alice Johnson
275
+ {
276
+ id: 'conv-1',
277
+ type: 'private',
278
+ title: 'Alice Johnson',
279
+ participants: [participants[0], { ...participants[1], role: 'member' }],
280
+ lastMessageAt: new Date(now.getTime() - 60000),
281
+ unreadCount: 2,
282
+ status: { isTyping: false, typingUsers: [] },
283
+ settings: { notifications: true, showPreview: true },
284
+ archived: false,
285
+ metadata: {
286
+ profile: {
287
+ description: 'Private conversation with Alice Johnson',
288
+ tags: ['work', 'design'],
289
+ favorite: true,
290
+ },
291
+ },
292
+ createdAt: new Date(now.getTime() - 86400000),
293
+ updatedAt: new Date(now.getTime() - 60000),
294
+ },
295
+ // Private Chat 2: Bob Smith
296
+ {
297
+ id: 'conv-2',
298
+ type: 'private',
299
+ title: 'Bob Smith',
300
+ participants: [participants[0], { ...participants[2], role: 'member' }],
301
+ lastMessageAt: new Date(now.getTime() - 7200000),
302
+ unreadCount: 0,
303
+ status: { isTyping: false, typingUsers: [] },
304
+ settings: { notifications: true, showPreview: true },
305
+ archived: false,
306
+ metadata: {
307
+ profile: {
308
+ description: 'Private conversation with Bob Smith',
309
+ tags: ['development', 'tech'],
310
+ favorite: false,
311
+ },
312
+ },
313
+ createdAt: new Date(now.getTime() - 259200000),
314
+ updatedAt: new Date(now.getTime() - 7200000),
315
+ },
316
+ // Group Chat 1: Project Team (3-5 members)
317
+ {
318
+ id: 'conv-3',
319
+ type: 'group',
320
+ title: 'Project Team',
321
+ avatar: 'https://i.pravatar.cc/150?img=50',
322
+ participants: [
323
+ { ...participants[0], role: 'admin' },
324
+ { ...participants[1], role: 'member' },
325
+ { ...participants[2], role: 'member' },
326
+ { ...participants[4], role: 'member' },
327
+ ],
328
+ lastMessageAt: new Date(now.getTime() - 3600000),
329
+ unreadCount: 1,
330
+ status: { isTyping: false, typingUsers: [] },
331
+ settings: { notifications: true, showPreview: true },
332
+ archived: false,
333
+ metadata: {
334
+ profile: {
335
+ description: 'Team collaboration for current project',
336
+ tags: ['work', 'project', 'team'],
337
+ favorite: true,
338
+ groupInfo: {
339
+ createdBy: 'current-user',
340
+ purpose: 'Project coordination and updates',
341
+ },
342
+ },
343
+ },
344
+ createdAt: new Date(now.getTime() - 604800000),
345
+ updatedAt: new Date(now.getTime() - 3600000),
346
+ },
347
+ // Group Chat 2: Design Team (5-10 members)
348
+ {
349
+ id: 'conv-4',
350
+ type: 'group',
351
+ title: 'Design Team',
352
+ avatar: 'https://i.pravatar.cc/150?img=65',
353
+ participants: [
354
+ { ...participants[0], role: 'admin' },
355
+ { ...participants[1], role: 'member' },
356
+ { ...participants[3], role: 'member' },
357
+ { ...participants[5], role: 'member' },
358
+ { ...participants[6], role: 'member' },
359
+ { ...participants[7], role: 'member' },
360
+ { ...participants[8], role: 'member' },
361
+ { ...participants[10], role: 'member' },
362
+ ],
363
+ lastMessageAt: new Date(now.getTime() - 10800000),
364
+ unreadCount: 0,
365
+ status: { isTyping: false, typingUsers: [] },
366
+ settings: { notifications: true, showPreview: true },
367
+ archived: false,
368
+ metadata: {
369
+ profile: {
370
+ description: 'Design team collaboration and brainstorming',
371
+ tags: ['design', 'creative', 'team'],
372
+ favorite: false,
373
+ groupInfo: {
374
+ createdBy: 'user-2',
375
+ purpose: 'Design reviews and creative discussions',
376
+ },
377
+ },
378
+ },
379
+ createdAt: new Date(now.getTime() - 1209600000),
380
+ updatedAt: new Date(now.getTime() - 10800000),
381
+ },
382
+ // Group: icon-only demo (no conversation avatar image; optional `icon` for chrome that reads it)
383
+ {
384
+ id: 'conv-icon-demo',
385
+ type: 'group',
386
+ title: 'Icon-only avatars (demo)',
387
+ icon: 'fa-light fa-users',
388
+ participants: [
389
+ { ...participants[0], role: 'admin' },
390
+ { ...participants[15], role: 'member' },
391
+ ],
392
+ lastMessageAt: new Date(now.getTime() - 120000),
393
+ unreadCount: 1,
394
+ status: { isTyping: false, typingUsers: [] },
395
+ settings: { notifications: true, showPreview: true },
396
+ archived: false,
397
+ metadata: {
398
+ profile: {
399
+ description: 'Demo: sender has no avatar URL — Font Awesome icon from participant/conversation',
400
+ tags: ['demo', 'icon'],
401
+ },
402
+ },
403
+ createdAt: new Date(now.getTime() - 86400000),
404
+ updatedAt: new Date(now.getTime() - 120000),
405
+ },
406
+ ];
407
+ // Store conversations in memory and IndexedDB
408
+ for (const c of conversations) {
409
+ storage.conversations.set(c.id, c);
410
+ await axConversationIndexedDbStorage.putConversation(c);
411
+ }
412
+ // Create messages with ALL types for each conversation
413
+ const messages = [];
414
+ // Conv-1 (Private: Alice) - All message types
415
+ messages.push({
416
+ id: 'msg-1-1',
417
+ conversationId: 'conv-1',
418
+ senderId: 'user-2',
419
+ type: 'text',
420
+ timestamp: new Date(now.getTime() - 300000),
421
+ payload: { type: 'text', text: 'Hey! How are you doing?' },
422
+ status: 'read',
423
+ reactions: [],
424
+ metadata: {},
425
+ }, {
426
+ id: 'msg-1-2',
427
+ conversationId: 'conv-1',
428
+ senderId: 'current-user',
429
+ type: 'text',
430
+ timestamp: new Date(now.getTime() - 270000),
431
+ payload: { type: 'text', text: "I'm good! Working on the new project." },
432
+ status: 'read',
433
+ reactions: [{ emoji: '👍', userId: 'user-2', timestamp: new Date(now.getTime() - 265000) }],
434
+ metadata: {},
435
+ }, {
436
+ id: 'msg-1-3',
437
+ conversationId: 'conv-1',
438
+ senderId: 'user-2',
439
+ type: 'image',
440
+ timestamp: new Date(now.getTime() - 240000),
441
+ payload: {
442
+ type: 'image',
443
+ images: [
444
+ {
445
+ url: 'https://picsum.photos/400/300',
446
+ thumbnailUrl: 'https://picsum.photos/200/150',
447
+ width: 400,
448
+ height: 300,
449
+ mimeType: 'image/jpeg',
450
+ },
451
+ ],
452
+ caption: 'Check out this design!',
453
+ },
454
+ status: 'read',
455
+ reactions: [{ emoji: '🔥', userId: 'current-user', timestamp: new Date(now.getTime() - 235000) }],
456
+ metadata: {},
457
+ }, {
458
+ id: 'msg-1-4',
459
+ conversationId: 'conv-1',
460
+ senderId: 'current-user',
461
+ type: 'voice',
462
+ timestamp: new Date(now.getTime() - 180000),
463
+ payload: {
464
+ type: 'voice',
465
+ url: 'https://www.soundhelix.com/examples/mp3/SoundHelix-Song-1.mp3',
466
+ duration: 15,
467
+ size: 245760,
468
+ waveform: [0.2, 0.4, 0.6, 0.8, 0.5, 0.3, 0.7, 0.9, 0.4, 0.2],
469
+ },
470
+ status: 'read',
471
+ reactions: [],
472
+ metadata: {},
473
+ }, {
474
+ id: 'msg-1-5',
475
+ conversationId: 'conv-1',
476
+ senderId: 'user-2',
477
+ type: 'audio',
478
+ timestamp: new Date(now.getTime() - 120000),
479
+ payload: {
480
+ type: 'audio',
481
+ audios: [
482
+ {
483
+ url: 'https://www.soundhelix.com/examples/mp3/SoundHelix-Song-2.mp3',
484
+ title: 'Background Music',
485
+ duration: 180,
486
+ size: 3145728,
487
+ mimeType: 'audio/mpeg',
488
+ },
489
+ ],
490
+ },
491
+ status: 'read',
492
+ reactions: [],
493
+ metadata: {},
494
+ }, {
495
+ id: 'msg-1-6',
496
+ conversationId: 'conv-1',
497
+ senderId: 'current-user',
498
+ type: 'location',
499
+ timestamp: new Date(now.getTime() - 90000),
500
+ payload: {
501
+ type: 'location',
502
+ latitude: 37.7749,
503
+ longitude: -122.4194,
504
+ address: 'San Francisco, CA',
505
+ },
506
+ status: 'read',
507
+ reactions: [],
508
+ metadata: {},
509
+ }, {
510
+ id: 'msg-1-7',
511
+ conversationId: 'conv-1',
512
+ senderId: 'user-2',
513
+ type: 'sticker',
514
+ timestamp: new Date(now.getTime() - 60000),
515
+ payload: {
516
+ type: 'sticker',
517
+ url: 'https://cdn.jsdelivr.net/npm/emoji-datasource-apple/img/apple/64/1f44d.png',
518
+ packId: 'pack-1',
519
+ id: 'sticker-thumbs-up',
520
+ animated: false,
521
+ },
522
+ status: 'delivered',
523
+ reactions: [],
524
+ metadata: {},
525
+ }, {
526
+ id: 'msg-1-8',
527
+ conversationId: 'conv-1',
528
+ senderId: 'user-2',
529
+ type: 'file',
530
+ timestamp: new Date(now.getTime() - 30000),
531
+ payload: {
532
+ type: 'file',
533
+ files: [
534
+ {
535
+ url: 'https://example.com/document.pdf',
536
+ name: 'Project_Proposal.pdf',
537
+ size: 2048576,
538
+ mimeType: 'application/pdf',
539
+ },
540
+ ],
541
+ },
542
+ status: 'delivered',
543
+ reactions: [],
544
+ metadata: {},
545
+ });
546
+ // Conv-2 (Private: Bob) - Mixed messages
547
+ messages.push({
548
+ id: 'msg-2-1',
549
+ conversationId: 'conv-2',
550
+ senderId: 'user-3',
551
+ type: 'text',
552
+ timestamp: new Date(now.getTime() - 7200000),
553
+ payload: { type: 'text', text: 'Did you see the latest updates?' },
554
+ status: 'read',
555
+ reactions: [],
556
+ metadata: {},
557
+ }, {
558
+ id: 'msg-2-2',
559
+ conversationId: 'conv-2',
560
+ senderId: 'current-user',
561
+ type: 'video',
562
+ timestamp: new Date(now.getTime() - 7180000),
563
+ payload: {
564
+ type: 'video',
565
+ videos: [
566
+ {
567
+ url: 'https://sample-videos.com/video123/mp4/720/big_buck_bunny_720p_1mb.mp4',
568
+ thumbnailUrl: 'https://picsum.photos/640/360',
569
+ duration: 60,
570
+ size: 1048576,
571
+ width: 1280,
572
+ height: 720,
573
+ mimeType: 'video/mp4',
574
+ },
575
+ ],
576
+ },
577
+ status: 'read',
578
+ reactions: [{ emoji: '😂', userId: 'user-3', timestamp: new Date(now.getTime() - 7175000) }],
579
+ metadata: {},
580
+ });
581
+ // Conv-3 (Group: Project Team) - Group messages
582
+ messages.push({
583
+ id: 'msg-3-1',
584
+ conversationId: 'conv-3',
585
+ senderId: 'user-2',
586
+ type: 'text',
587
+ timestamp: new Date(now.getTime() - 3700000),
588
+ payload: { type: 'text', text: 'Team meeting at 3 PM today!' },
589
+ status: 'read',
590
+ reactions: [
591
+ { emoji: '👍', userId: 'current-user', timestamp: new Date(now.getTime() - 3695000) },
592
+ { emoji: '👍', userId: 'user-3', timestamp: new Date(now.getTime() - 3690000) },
593
+ ],
594
+ metadata: {},
595
+ }, {
596
+ id: 'msg-3-2',
597
+ conversationId: 'conv-3',
598
+ senderId: 'user-5',
599
+ type: 'image',
600
+ timestamp: new Date(now.getTime() - 3650000),
601
+ payload: {
602
+ type: 'image',
603
+ images: [
604
+ {
605
+ url: 'https://picsum.photos/800/600',
606
+ thumbnailUrl: 'https://picsum.photos/200/150',
607
+ width: 800,
608
+ height: 600,
609
+ mimeType: 'image/jpeg',
610
+ },
611
+ ],
612
+ caption: 'Sprint planning board',
613
+ },
614
+ status: 'read',
615
+ reactions: [],
616
+ metadata: {},
617
+ }, {
618
+ id: 'msg-3-3',
619
+ conversationId: 'conv-3',
620
+ senderId: 'current-user',
621
+ type: 'text',
622
+ timestamp: new Date(now.getTime() - 3600000),
623
+ payload: { type: 'text', text: 'Great work everyone! 🎉' },
624
+ status: 'read',
625
+ reactions: [{ emoji: '🎉', userId: 'user-2', timestamp: new Date(now.getTime() - 3595000) }],
626
+ metadata: {},
627
+ }, {
628
+ id: 'msg-3-4',
629
+ conversationId: 'conv-3',
630
+ senderId: 'user-2',
631
+ type: 'text',
632
+ timestamp: new Date(now.getTime() - 3550000),
633
+ payload: { type: 'text', text: 'Thanks! Looking forward to it.' },
634
+ status: 'delivered',
635
+ reactions: [],
636
+ metadata: {},
637
+ });
638
+ // Conv-4 (Group: Design Team) - Design-related messages
639
+ messages.push({
640
+ id: 'msg-4-1',
641
+ conversationId: 'conv-4',
642
+ senderId: 'user-7',
643
+ type: 'text',
644
+ timestamp: new Date(now.getTime() - 10900000),
645
+ payload: { type: 'text', text: 'New design mockups are ready for review' },
646
+ status: 'read',
647
+ reactions: [],
648
+ metadata: {},
649
+ }, {
650
+ id: 'msg-4-2',
651
+ conversationId: 'conv-4',
652
+ senderId: 'user-8',
653
+ type: 'file',
654
+ timestamp: new Date(now.getTime() - 10850000),
655
+ payload: {
656
+ type: 'file',
657
+ files: [
658
+ {
659
+ url: 'https://example.com/designs.zip',
660
+ name: 'UI_Designs_v2.zip',
661
+ size: 15728640,
662
+ mimeType: 'application/zip',
663
+ },
664
+ ],
665
+ },
666
+ status: 'read',
667
+ reactions: [],
668
+ metadata: {},
669
+ }, {
670
+ id: 'msg-4-3',
671
+ conversationId: 'conv-4',
672
+ senderId: 'current-user',
673
+ type: 'sticker',
674
+ timestamp: new Date(now.getTime() - 10800000),
675
+ payload: {
676
+ type: 'sticker',
677
+ url: 'https://cdn.jsdelivr.net/npm/emoji-datasource-apple/img/apple/64/1f389.png',
678
+ packId: 'pack-1',
679
+ id: 'sticker-party',
680
+ animated: false,
681
+ },
682
+ status: 'read',
683
+ reactions: [],
684
+ metadata: {},
685
+ });
686
+ // Conv-icon-demo: messages from icon-only participant (no avatar image, FA icon in list)
687
+ messages.push({
688
+ id: 'msg-icon-1',
689
+ conversationId: 'conv-icon-demo',
690
+ senderId: 'demo-icon-only-user',
691
+ type: 'text',
692
+ timestamp: new Date(now.getTime() - 300000),
693
+ payload: {
694
+ type: 'text',
695
+ text: 'Hi — I have no profile photo, only a Font Awesome icon.',
696
+ },
697
+ status: 'read',
698
+ reactions: [],
699
+ metadata: {},
700
+ }, {
701
+ id: 'msg-icon-2',
702
+ conversationId: 'conv-icon-demo',
703
+ senderId: 'current-user',
704
+ type: 'text',
705
+ timestamp: new Date(now.getTime() - 240000),
706
+ payload: {
707
+ type: 'text',
708
+ text: 'Looks good — the message list shows the icon where an avatar would be.',
709
+ },
710
+ status: 'read',
711
+ reactions: [],
712
+ metadata: {},
713
+ }, {
714
+ id: 'msg-icon-3',
715
+ conversationId: 'conv-icon-demo',
716
+ senderId: 'demo-icon-only-user',
717
+ type: 'text',
718
+ timestamp: new Date(now.getTime() - 120000),
719
+ payload: {
720
+ type: 'text',
721
+ text: 'Useful for bots or users without uploaded photos.',
722
+ },
723
+ status: 'delivered',
724
+ reactions: [],
725
+ metadata: {},
726
+ });
727
+ // Store all messages in memory and IndexedDB (sorted per conversation)
728
+ for (const m of messages) {
729
+ registerChatMessage(m);
730
+ await axConversationIndexedDbStorage.putMessage(m);
731
+ }
732
+ // Update conversations with last messages
733
+ conversations[0].lastMessage = messages.find((m) => m.id === 'msg-1-8');
734
+ conversations[1].lastMessage = messages.find((m) => m.id === 'msg-2-2');
735
+ conversations[2].lastMessage = messages.find((m) => m.id === 'msg-3-3');
736
+ conversations[3].lastMessage = messages.find((m) => m.id === 'msg-4-3');
737
+ conversations[4].lastMessage = messages.find((m) => m.id === 'msg-icon-3');
738
+ // Update in memory and IndexedDB
739
+ for (const c of conversations) {
740
+ storage.conversations.set(c.id, c);
741
+ await axConversationIndexedDbStorage.putConversation(c);
742
+ }
743
+ await axConversationIndexedDbStorage.putSetting('isSeeded', true);
744
+ storage.markSeeded();
745
+ await ensurePaginationDemoData();
746
+ storage.startDemoSimulations();
747
+ }
748
+
749
+ export { seedSharedStorageInitialData };
750
+ //# sourceMappingURL=acorex-components-conversation-shared-storage.seed-zFjNXfKF.mjs.map