@happyvertical/smrt-messages 0.37.2 → 0.37.3

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.
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "version": "1.0.0",
3
- "timestamp": 1782873342236,
3
+ "timestamp": 1782936213040,
4
4
  "packageName": "@happyvertical/smrt-messages",
5
- "packageVersion": "0.37.2",
5
+ "packageVersion": "0.37.3",
6
6
  "objects": {
7
7
  "@happyvertical/smrt-messages:AccountCollection": {
8
8
  "name": "accountcollection",
@@ -1,176 +1,156 @@
1
1
  import { MESSAGES_MODULE_META } from "./ui.js";
2
- const noop = () => {
2
+ //#region src/svelte/playground.ts
3
+ var noop = () => {};
4
+ var sampleAccounts = [{
5
+ id: "account-editorial",
6
+ name: "Editorial Inbox",
7
+ email: "editorial@example.com",
8
+ providerType: "email",
9
+ isActive: true,
10
+ unreadCount: 12,
11
+ totalCount: 438,
12
+ lastSyncAt: "2026-03-21T16:12:00.000Z"
13
+ }, {
14
+ id: "account-social",
15
+ name: "Community Slack",
16
+ providerType: "slack",
17
+ isActive: true,
18
+ unreadCount: 3,
19
+ totalCount: 91,
20
+ lastSyncAt: "2026-03-21T16:05:00.000Z"
21
+ }];
22
+ var sampleAttachments = [{
23
+ id: "attachment-proof",
24
+ filename: "proofing-notes.pdf",
25
+ contentType: "application/pdf",
26
+ size: 248512
27
+ }];
28
+ var sampleMessages = [{
29
+ id: "message-1",
30
+ type: "email",
31
+ accountId: "account-editorial",
32
+ subject: "Governance review complete",
33
+ body: "The editorial governance review is complete and the draft is ready for publication.",
34
+ senderName: "Taylor Rowan",
35
+ senderAddress: "taylor@example.com",
36
+ recipientAddresses: [{
37
+ address: "editorial@example.com",
38
+ name: "Editorial Desk"
39
+ }],
40
+ ccAddresses: [{
41
+ address: "governance@example.com",
42
+ name: "Governance"
43
+ }],
44
+ threadId: "thread-1",
45
+ isRead: true,
46
+ isFlagged: false,
47
+ hasAttachments: true,
48
+ attachments: sampleAttachments,
49
+ date: "2026-03-21T15:30:00.000Z",
50
+ folderPath: "Inbox",
51
+ labels: ["governance", "release"],
52
+ sendStatus: "sent"
53
+ }, {
54
+ id: "message-2",
55
+ type: "slack",
56
+ accountId: "account-social",
57
+ subject: "Release coordination",
58
+ body: "Can we confirm the package rollout order for this afternoon?",
59
+ senderName: "Jordan Lee",
60
+ senderAddress: "jordan@example.com",
61
+ recipientAddresses: [{ address: "#release-coordination" }],
62
+ isRead: false,
63
+ isFlagged: true,
64
+ hasAttachments: false,
65
+ date: "2026-03-21T16:02:00.000Z",
66
+ folderPath: "Slack / release-coordination",
67
+ meta: { channelName: "release-coordination" }
68
+ }];
69
+ var loadAccountList = () => import("./svelte/components/AccountList.svelte");
70
+ var loadComposeForm = () => import("./svelte/components/ComposeForm.svelte");
71
+ var loadMessageDetail = () => import("./svelte/components/MessageDetail.svelte");
72
+ var loadMessageList = () => import("./svelte/components/MessageList.svelte");
73
+ var playground_default = {
74
+ packageName: "@happyvertical/smrt-messages",
75
+ displayName: MESSAGES_MODULE_META.displayName,
76
+ description: MESSAGES_MODULE_META.description,
77
+ moduleMeta: MESSAGES_MODULE_META,
78
+ entries: [
79
+ {
80
+ id: "account-list",
81
+ title: "Account List",
82
+ description: "Connected messaging accounts with sync state and unread counts.",
83
+ loadComponent: loadAccountList,
84
+ order: 1,
85
+ props: {
86
+ accounts: sampleAccounts,
87
+ onaccountclick: noop,
88
+ onsync: noop,
89
+ onremove: noop
90
+ },
91
+ modes: { mock: { label: "Mock" } }
92
+ },
93
+ {
94
+ id: "message-list",
95
+ title: "Message List",
96
+ description: "Inbox-style message listing with selection, account context, and type-aware cards.",
97
+ loadComponent: loadMessageList,
98
+ order: 2,
99
+ props: {
100
+ messages: sampleMessages,
101
+ activeMessageId: "message-1",
102
+ accounts: sampleAccounts,
103
+ showAccount: true,
104
+ onmessageclick: noop,
105
+ onselect: noop,
106
+ onflag: noop
107
+ },
108
+ modes: { mock: { label: "Mock" } }
109
+ },
110
+ {
111
+ id: "message-detail",
112
+ title: "Message Detail",
113
+ description: "Full message view for reading, attachments, and follow-up actions.",
114
+ loadComponent: loadMessageDetail,
115
+ order: 3,
116
+ props: {
117
+ message: sampleMessages[0],
118
+ attachments: sampleAttachments,
119
+ account: sampleAccounts[0],
120
+ onreply: noop,
121
+ onforward: noop,
122
+ ondelete: noop
123
+ },
124
+ modes: { mock: { label: "Mock" } }
125
+ },
126
+ {
127
+ id: "compose-form",
128
+ title: "Compose Form",
129
+ description: "Channel-aware compose experience for email, Slack, and short-form posts.",
130
+ loadComponent: loadComposeForm,
131
+ order: 4,
132
+ props: {
133
+ type: "email",
134
+ accounts: sampleAccounts,
135
+ initialState: {
136
+ accountId: "account-editorial",
137
+ to: [{
138
+ address: "ops@example.com",
139
+ name: "Operations",
140
+ isValid: true
141
+ }],
142
+ subject: "Launch checklist follow-up",
143
+ body: "Please confirm the remaining package rollout items for issue #1047."
144
+ },
145
+ onsend: noop,
146
+ onsavedraft: noop,
147
+ ondiscard: noop
148
+ },
149
+ modes: { mock: { label: "Mock" } }
150
+ }
151
+ ]
3
152
  };
4
- const sampleAccounts = [
5
- {
6
- id: "account-editorial",
7
- name: "Editorial Inbox",
8
- email: "editorial@example.com",
9
- providerType: "email",
10
- isActive: true,
11
- unreadCount: 12,
12
- totalCount: 438,
13
- lastSyncAt: "2026-03-21T16:12:00.000Z"
14
- },
15
- {
16
- id: "account-social",
17
- name: "Community Slack",
18
- providerType: "slack",
19
- isActive: true,
20
- unreadCount: 3,
21
- totalCount: 91,
22
- lastSyncAt: "2026-03-21T16:05:00.000Z"
23
- }
24
- ];
25
- const sampleAttachments = [
26
- {
27
- id: "attachment-proof",
28
- filename: "proofing-notes.pdf",
29
- contentType: "application/pdf",
30
- size: 248512
31
- }
32
- ];
33
- const sampleMessages = [
34
- {
35
- id: "message-1",
36
- type: "email",
37
- accountId: "account-editorial",
38
- subject: "Governance review complete",
39
- body: "The editorial governance review is complete and the draft is ready for publication.",
40
- senderName: "Taylor Rowan",
41
- senderAddress: "taylor@example.com",
42
- recipientAddresses: [
43
- { address: "editorial@example.com", name: "Editorial Desk" }
44
- ],
45
- ccAddresses: [{ address: "governance@example.com", name: "Governance" }],
46
- threadId: "thread-1",
47
- isRead: true,
48
- isFlagged: false,
49
- hasAttachments: true,
50
- attachments: sampleAttachments,
51
- date: "2026-03-21T15:30:00.000Z",
52
- folderPath: "Inbox",
53
- labels: ["governance", "release"],
54
- sendStatus: "sent"
55
- },
56
- {
57
- id: "message-2",
58
- type: "slack",
59
- accountId: "account-social",
60
- subject: "Release coordination",
61
- body: "Can we confirm the package rollout order for this afternoon?",
62
- senderName: "Jordan Lee",
63
- senderAddress: "jordan@example.com",
64
- recipientAddresses: [{ address: "#release-coordination" }],
65
- isRead: false,
66
- isFlagged: true,
67
- hasAttachments: false,
68
- date: "2026-03-21T16:02:00.000Z",
69
- folderPath: "Slack / release-coordination",
70
- meta: {
71
- channelName: "release-coordination"
72
- }
73
- }
74
- ];
75
- const loadAccountList = () => import("./svelte/components/AccountList.svelte");
76
- const loadComposeForm = () => import("./svelte/components/ComposeForm.svelte");
77
- const loadMessageDetail = () => import("./svelte/components/MessageDetail.svelte");
78
- const loadMessageList = () => import("./svelte/components/MessageList.svelte");
79
- const playground = {
80
- packageName: "@happyvertical/smrt-messages",
81
- displayName: MESSAGES_MODULE_META.displayName,
82
- description: MESSAGES_MODULE_META.description,
83
- moduleMeta: MESSAGES_MODULE_META,
84
- entries: [
85
- {
86
- id: "account-list",
87
- title: "Account List",
88
- description: "Connected messaging accounts with sync state and unread counts.",
89
- loadComponent: loadAccountList,
90
- order: 1,
91
- props: {
92
- accounts: sampleAccounts,
93
- onaccountclick: noop,
94
- onsync: noop,
95
- onremove: noop
96
- },
97
- modes: {
98
- mock: {
99
- label: "Mock"
100
- }
101
- }
102
- },
103
- {
104
- id: "message-list",
105
- title: "Message List",
106
- description: "Inbox-style message listing with selection, account context, and type-aware cards.",
107
- loadComponent: loadMessageList,
108
- order: 2,
109
- props: {
110
- messages: sampleMessages,
111
- activeMessageId: "message-1",
112
- accounts: sampleAccounts,
113
- showAccount: true,
114
- onmessageclick: noop,
115
- onselect: noop,
116
- onflag: noop
117
- },
118
- modes: {
119
- mock: {
120
- label: "Mock"
121
- }
122
- }
123
- },
124
- {
125
- id: "message-detail",
126
- title: "Message Detail",
127
- description: "Full message view for reading, attachments, and follow-up actions.",
128
- loadComponent: loadMessageDetail,
129
- order: 3,
130
- props: {
131
- message: sampleMessages[0],
132
- attachments: sampleAttachments,
133
- account: sampleAccounts[0],
134
- onreply: noop,
135
- onforward: noop,
136
- ondelete: noop
137
- },
138
- modes: {
139
- mock: {
140
- label: "Mock"
141
- }
142
- }
143
- },
144
- {
145
- id: "compose-form",
146
- title: "Compose Form",
147
- description: "Channel-aware compose experience for email, Slack, and short-form posts.",
148
- loadComponent: loadComposeForm,
149
- order: 4,
150
- props: {
151
- type: "email",
152
- accounts: sampleAccounts,
153
- initialState: {
154
- accountId: "account-editorial",
155
- to: [
156
- { address: "ops@example.com", name: "Operations", isValid: true }
157
- ],
158
- subject: "Launch checklist follow-up",
159
- body: "Please confirm the remaining package rollout items for issue #1047."
160
- },
161
- onsend: noop,
162
- onsavedraft: noop,
163
- ondiscard: noop
164
- },
165
- modes: {
166
- mock: {
167
- label: "Mock"
168
- }
169
- }
170
- }
171
- ]
172
- };
173
- export {
174
- playground as default
175
- };
176
- //# sourceMappingURL=playground.js.map
153
+ //#endregion
154
+ export { playground_default as default };
155
+
156
+ //# sourceMappingURL=playground.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"playground.js","sources":["../src/svelte/playground.ts"],"sourcesContent":["import { MESSAGES_MODULE_META } from '../ui.js';\n\nconst noop = () => {};\n\nconst sampleAccounts = [\n {\n id: 'account-editorial',\n name: 'Editorial Inbox',\n email: 'editorial@example.com',\n providerType: 'email',\n isActive: true,\n unreadCount: 12,\n totalCount: 438,\n lastSyncAt: '2026-03-21T16:12:00.000Z',\n },\n {\n id: 'account-social',\n name: 'Community Slack',\n providerType: 'slack',\n isActive: true,\n unreadCount: 3,\n totalCount: 91,\n lastSyncAt: '2026-03-21T16:05:00.000Z',\n },\n];\n\nconst sampleAttachments = [\n {\n id: 'attachment-proof',\n filename: 'proofing-notes.pdf',\n contentType: 'application/pdf',\n size: 248512,\n },\n];\n\nconst sampleMessages = [\n {\n id: 'message-1',\n type: 'email',\n accountId: 'account-editorial',\n subject: 'Governance review complete',\n body: 'The editorial governance review is complete and the draft is ready for publication.',\n senderName: 'Taylor Rowan',\n senderAddress: 'taylor@example.com',\n recipientAddresses: [\n { address: 'editorial@example.com', name: 'Editorial Desk' },\n ],\n ccAddresses: [{ address: 'governance@example.com', name: 'Governance' }],\n threadId: 'thread-1',\n isRead: true,\n isFlagged: false,\n hasAttachments: true,\n attachments: sampleAttachments,\n date: '2026-03-21T15:30:00.000Z',\n folderPath: 'Inbox',\n labels: ['governance', 'release'],\n sendStatus: 'sent',\n },\n {\n id: 'message-2',\n type: 'slack',\n accountId: 'account-social',\n subject: 'Release coordination',\n body: 'Can we confirm the package rollout order for this afternoon?',\n senderName: 'Jordan Lee',\n senderAddress: 'jordan@example.com',\n recipientAddresses: [{ address: '#release-coordination' }],\n isRead: false,\n isFlagged: true,\n hasAttachments: false,\n date: '2026-03-21T16:02:00.000Z',\n folderPath: 'Slack / release-coordination',\n meta: {\n channelName: 'release-coordination',\n },\n },\n];\n\nconst loadAccountList = () => import('./components/AccountList.svelte');\nconst loadComposeForm = () => import('./components/ComposeForm.svelte');\nconst loadMessageDetail = () => import('./components/MessageDetail.svelte');\nconst loadMessageList = () => import('./components/MessageList.svelte');\n\nexport default {\n packageName: '@happyvertical/smrt-messages',\n displayName: MESSAGES_MODULE_META.displayName,\n description: MESSAGES_MODULE_META.description,\n moduleMeta: MESSAGES_MODULE_META,\n entries: [\n {\n id: 'account-list',\n title: 'Account List',\n description:\n 'Connected messaging accounts with sync state and unread counts.',\n loadComponent: loadAccountList,\n order: 1,\n props: {\n accounts: sampleAccounts,\n onaccountclick: noop,\n onsync: noop,\n onremove: noop,\n },\n modes: {\n mock: {\n label: 'Mock',\n },\n },\n },\n {\n id: 'message-list',\n title: 'Message List',\n description:\n 'Inbox-style message listing with selection, account context, and type-aware cards.',\n loadComponent: loadMessageList,\n order: 2,\n props: {\n messages: sampleMessages,\n activeMessageId: 'message-1',\n accounts: sampleAccounts,\n showAccount: true,\n onmessageclick: noop,\n onselect: noop,\n onflag: noop,\n },\n modes: {\n mock: {\n label: 'Mock',\n },\n },\n },\n {\n id: 'message-detail',\n title: 'Message Detail',\n description:\n 'Full message view for reading, attachments, and follow-up actions.',\n loadComponent: loadMessageDetail,\n order: 3,\n props: {\n message: sampleMessages[0],\n attachments: sampleAttachments,\n account: sampleAccounts[0],\n onreply: noop,\n onforward: noop,\n ondelete: noop,\n },\n modes: {\n mock: {\n label: 'Mock',\n },\n },\n },\n {\n id: 'compose-form',\n title: 'Compose Form',\n description:\n 'Channel-aware compose experience for email, Slack, and short-form posts.',\n loadComponent: loadComposeForm,\n order: 4,\n props: {\n type: 'email',\n accounts: sampleAccounts,\n initialState: {\n accountId: 'account-editorial',\n to: [\n { address: 'ops@example.com', name: 'Operations', isValid: true },\n ],\n subject: 'Launch checklist follow-up',\n body: 'Please confirm the remaining package rollout items for issue #1047.',\n },\n onsend: noop,\n onsavedraft: noop,\n ondiscard: noop,\n },\n modes: {\n mock: {\n label: 'Mock',\n },\n },\n },\n ],\n};\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"playground.js","names":[],"sources":["../src/svelte/playground.ts"],"sourcesContent":["import { MESSAGES_MODULE_META } from '../ui.js';\n\nconst noop = () => {};\n\nconst sampleAccounts = [\n {\n id: 'account-editorial',\n name: 'Editorial Inbox',\n email: 'editorial@example.com',\n providerType: 'email',\n isActive: true,\n unreadCount: 12,\n totalCount: 438,\n lastSyncAt: '2026-03-21T16:12:00.000Z',\n },\n {\n id: 'account-social',\n name: 'Community Slack',\n providerType: 'slack',\n isActive: true,\n unreadCount: 3,\n totalCount: 91,\n lastSyncAt: '2026-03-21T16:05:00.000Z',\n },\n];\n\nconst sampleAttachments = [\n {\n id: 'attachment-proof',\n filename: 'proofing-notes.pdf',\n contentType: 'application/pdf',\n size: 248512,\n },\n];\n\nconst sampleMessages = [\n {\n id: 'message-1',\n type: 'email',\n accountId: 'account-editorial',\n subject: 'Governance review complete',\n body: 'The editorial governance review is complete and the draft is ready for publication.',\n senderName: 'Taylor Rowan',\n senderAddress: 'taylor@example.com',\n recipientAddresses: [\n { address: 'editorial@example.com', name: 'Editorial Desk' },\n ],\n ccAddresses: [{ address: 'governance@example.com', name: 'Governance' }],\n threadId: 'thread-1',\n isRead: true,\n isFlagged: false,\n hasAttachments: true,\n attachments: sampleAttachments,\n date: '2026-03-21T15:30:00.000Z',\n folderPath: 'Inbox',\n labels: ['governance', 'release'],\n sendStatus: 'sent',\n },\n {\n id: 'message-2',\n type: 'slack',\n accountId: 'account-social',\n subject: 'Release coordination',\n body: 'Can we confirm the package rollout order for this afternoon?',\n senderName: 'Jordan Lee',\n senderAddress: 'jordan@example.com',\n recipientAddresses: [{ address: '#release-coordination' }],\n isRead: false,\n isFlagged: true,\n hasAttachments: false,\n date: '2026-03-21T16:02:00.000Z',\n folderPath: 'Slack / release-coordination',\n meta: {\n channelName: 'release-coordination',\n },\n },\n];\n\nconst loadAccountList = () => import('./components/AccountList.svelte');\nconst loadComposeForm = () => import('./components/ComposeForm.svelte');\nconst loadMessageDetail = () => import('./components/MessageDetail.svelte');\nconst loadMessageList = () => import('./components/MessageList.svelte');\n\nexport default {\n packageName: '@happyvertical/smrt-messages',\n displayName: MESSAGES_MODULE_META.displayName,\n description: MESSAGES_MODULE_META.description,\n moduleMeta: MESSAGES_MODULE_META,\n entries: [\n {\n id: 'account-list',\n title: 'Account List',\n description:\n 'Connected messaging accounts with sync state and unread counts.',\n loadComponent: loadAccountList,\n order: 1,\n props: {\n accounts: sampleAccounts,\n onaccountclick: noop,\n onsync: noop,\n onremove: noop,\n },\n modes: {\n mock: {\n label: 'Mock',\n },\n },\n },\n {\n id: 'message-list',\n title: 'Message List',\n description:\n 'Inbox-style message listing with selection, account context, and type-aware cards.',\n loadComponent: loadMessageList,\n order: 2,\n props: {\n messages: sampleMessages,\n activeMessageId: 'message-1',\n accounts: sampleAccounts,\n showAccount: true,\n onmessageclick: noop,\n onselect: noop,\n onflag: noop,\n },\n modes: {\n mock: {\n label: 'Mock',\n },\n },\n },\n {\n id: 'message-detail',\n title: 'Message Detail',\n description:\n 'Full message view for reading, attachments, and follow-up actions.',\n loadComponent: loadMessageDetail,\n order: 3,\n props: {\n message: sampleMessages[0],\n attachments: sampleAttachments,\n account: sampleAccounts[0],\n onreply: noop,\n onforward: noop,\n ondelete: noop,\n },\n modes: {\n mock: {\n label: 'Mock',\n },\n },\n },\n {\n id: 'compose-form',\n title: 'Compose Form',\n description:\n 'Channel-aware compose experience for email, Slack, and short-form posts.',\n loadComponent: loadComposeForm,\n order: 4,\n props: {\n type: 'email',\n accounts: sampleAccounts,\n initialState: {\n accountId: 'account-editorial',\n to: [\n { address: 'ops@example.com', name: 'Operations', isValid: true },\n ],\n subject: 'Launch checklist follow-up',\n body: 'Please confirm the remaining package rollout items for issue #1047.',\n },\n onsend: noop,\n onsavedraft: noop,\n ondiscard: noop,\n },\n modes: {\n mock: {\n label: 'Mock',\n },\n },\n },\n ],\n};\n"],"mappings":";;AAEA,IAAM,aAAa,CAAC;AAEpB,IAAM,iBAAiB,CACrB;CACE,IAAI;CACJ,MAAM;CACN,OAAO;CACP,cAAc;CACd,UAAU;CACV,aAAa;CACb,YAAY;CACZ,YAAY;AACd,GACA;CACE,IAAI;CACJ,MAAM;CACN,cAAc;CACd,UAAU;CACV,aAAa;CACb,YAAY;CACZ,YAAY;AACd,CACF;AAEA,IAAM,oBAAoB,CACxB;CACE,IAAI;CACJ,UAAU;CACV,aAAa;CACb,MAAM;AACR,CACF;AAEA,IAAM,iBAAiB,CACrB;CACE,IAAI;CACJ,MAAM;CACN,WAAW;CACX,SAAS;CACT,MAAM;CACN,YAAY;CACZ,eAAe;CACf,oBAAoB,CAClB;EAAE,SAAS;EAAyB,MAAM;CAAiB,CAC7D;CACA,aAAa,CAAC;EAAE,SAAS;EAA0B,MAAM;CAAa,CAAC;CACvE,UAAU;CACV,QAAQ;CACR,WAAW;CACX,gBAAgB;CAChB,aAAa;CACb,MAAM;CACN,YAAY;CACZ,QAAQ,CAAC,cAAc,SAAS;CAChC,YAAY;AACd,GACA;CACE,IAAI;CACJ,MAAM;CACN,WAAW;CACX,SAAS;CACT,MAAM;CACN,YAAY;CACZ,eAAe;CACf,oBAAoB,CAAC,EAAE,SAAS,wBAAwB,CAAC;CACzD,QAAQ;CACR,WAAW;CACX,gBAAgB;CAChB,MAAM;CACN,YAAY;CACZ,MAAM,EACJ,aAAa,uBACf;AACF,CACF;AAEA,IAAM,wBAAwB,OAAO;AACrC,IAAM,wBAAwB,OAAO;AACrC,IAAM,0BAA0B,OAAO;AACvC,IAAM,wBAAwB,OAAO;AAErC,IAAA,qBAAe;CACb,aAAa;CACb,aAAa,qBAAqB;CAClC,aAAa,qBAAqB;CAClC,YAAY;CACZ,SAAS;EACP;GACE,IAAI;GACJ,OAAO;GACP,aACE;GACF,eAAe;GACf,OAAO;GACP,OAAO;IACL,UAAU;IACV,gBAAgB;IAChB,QAAQ;IACR,UAAU;GACZ;GACA,OAAO,EACL,MAAM,EACJ,OAAO,OACT,EACF;EACF;EACA;GACE,IAAI;GACJ,OAAO;GACP,aACE;GACF,eAAe;GACf,OAAO;GACP,OAAO;IACL,UAAU;IACV,iBAAiB;IACjB,UAAU;IACV,aAAa;IACb,gBAAgB;IAChB,UAAU;IACV,QAAQ;GACV;GACA,OAAO,EACL,MAAM,EACJ,OAAO,OACT,EACF;EACF;EACA;GACE,IAAI;GACJ,OAAO;GACP,aACE;GACF,eAAe;GACf,OAAO;GACP,OAAO;IACL,SAAS,eAAe;IACxB,aAAa;IACb,SAAS,eAAe;IACxB,SAAS;IACT,WAAW;IACX,UAAU;GACZ;GACA,OAAO,EACL,MAAM,EACJ,OAAO,OACT,EACF;EACF;EACA;GACE,IAAI;GACJ,OAAO;GACP,aACE;GACF,eAAe;GACf,OAAO;GACP,OAAO;IACL,MAAM;IACN,UAAU;IACV,cAAc;KACZ,WAAW;KACX,IAAI,CACF;MAAE,SAAS;MAAmB,MAAM;MAAc,SAAS;KAAK,CAClE;KACA,SAAS;KACT,MAAM;IACR;IACA,QAAQ;IACR,aAAa;IACb,WAAW;GACb;GACA,OAAO,EACL,MAAM,EACJ,OAAO,OACT,EACF;EACF;CACF;AACF"}
@@ -1,13 +1,13 @@
1
1
  {
2
2
  "schemaVersion": 1,
3
- "generatedAt": "2026-07-01T02:35:42.838Z",
3
+ "generatedAt": "2026-07-01T20:03:33.445Z",
4
4
  "packageName": "@happyvertical/smrt-messages",
5
- "packageVersion": "0.37.2",
5
+ "packageVersion": "0.37.3",
6
6
  "sourceManifestPath": "dist/manifest.json",
7
7
  "agentDocPath": "AGENTS.md",
8
8
  "sourceHashes": {
9
- "manifest": "10c6e35ea315c175304650e82cd1a5f5c7ed4894f87279691ed27dbb89789af1",
10
- "packageJson": "090a78dff3add45818d534b1bd19d146a604b7d8850ac1526395ab1aaed4a4ff",
9
+ "manifest": "2a3407fd84a5d9fdd09e13358a1c6f3e622070e4b2c4994b6adbf8697bddaa5b",
10
+ "packageJson": "e033febfd5115af796e66155baa29011329fba82886a65e7c9a0ac4499b0c0c4",
11
11
  "agents": "32563a30ceeb21bd8732042f894e2a148fd83727caffc1eec7c97540005c6fdc"
12
12
  },
13
13
  "exports": [
@@ -32,14 +32,14 @@
32
32
  "@happyvertical/sql": "catalog:",
33
33
  "@happyvertical/utils": "catalog:",
34
34
  "@happyvertical/smrt-vitest": "workspace:*",
35
- "@sveltejs/package": "^2.5.7",
36
- "@sveltejs/vite-plugin-svelte": "^6.2.4",
37
- "@types/node": "25.0.9",
38
- "svelte": "^5.18.0",
39
- "svelte-check": "^4.3.5",
35
+ "@sveltejs/package": "^2.5.8",
36
+ "@sveltejs/vite-plugin-svelte": "^7.1.2",
37
+ "@types/node": "24.13.2",
38
+ "svelte": "^5.56.4",
39
+ "svelte-check": "^4.7.1",
40
40
  "typescript": "^5.9.3",
41
- "vite": "^7.3.6",
42
- "vitest": "^4.0.17",
41
+ "vite": "^8.1.2",
42
+ "vitest": "^4.1.9",
43
43
  "@happyvertical/encryption": "*"
44
44
  },
45
45
  "smrtDependencies": [
package/dist/types.js CHANGED
@@ -1,2 +0,0 @@
1
-
2
- //# sourceMappingURL=types.js.map
package/dist/ui.js CHANGED
@@ -1,103 +1,103 @@
1
- const MESSAGES_UI_SLOTS = {
2
- "message-card": {
3
- id: "message-card",
4
- label: "Message Card",
5
- description: "Single message row with type-adaptive rendering",
6
- icon: "mail",
7
- category: "display",
8
- order: 1,
9
- propsInterface: "MessageCardProps"
10
- },
11
- "message-list": {
12
- id: "message-list",
13
- label: "Message List",
14
- description: "Unified message list with selection and filtering",
15
- icon: "list",
16
- category: "list",
17
- order: 2,
18
- propsInterface: "MessageListProps"
19
- },
20
- "message-detail": {
21
- id: "message-detail",
22
- label: "Message Detail",
23
- description: "Full message view with type-adaptive sections",
24
- icon: "file-text",
25
- category: "display",
26
- order: 3,
27
- propsInterface: "MessageDetailProps"
28
- },
29
- "message-filters": {
30
- id: "message-filters",
31
- label: "Message Filters",
32
- description: "Filter and sort controls for message lists",
33
- icon: "filter",
34
- category: "action",
35
- order: 4,
36
- propsInterface: "MessageFiltersProps"
37
- },
38
- "account-list": {
39
- id: "account-list",
40
- label: "Account List",
41
- description: "Account management list with sync status",
42
- icon: "users",
43
- category: "list",
44
- order: 5,
45
- propsInterface: "AccountListProps"
46
- },
47
- "thread-view": {
48
- id: "thread-view",
49
- label: "Thread View",
50
- description: "Conversation thread with collapsible messages",
51
- icon: "message-circle",
52
- category: "display",
53
- order: 6,
54
- propsInterface: "ThreadViewProps"
55
- },
56
- "compose-form": {
57
- id: "compose-form",
58
- label: "Compose Form",
59
- description: "Full message compose form with type-adaptive fields",
60
- icon: "edit",
61
- category: "action",
62
- order: 7,
63
- propsInterface: "ComposeFormProps"
64
- },
65
- "reply-form": {
66
- id: "reply-form",
67
- label: "Reply Form",
68
- description: "Inline reply form with quoted original",
69
- icon: "reply",
70
- category: "action",
71
- order: 8,
72
- propsInterface: "ReplyFormProps"
73
- }
1
+ //#region src/ui.ts
2
+ var MESSAGES_UI_SLOTS = {
3
+ "message-card": {
4
+ id: "message-card",
5
+ label: "Message Card",
6
+ description: "Single message row with type-adaptive rendering",
7
+ icon: "mail",
8
+ category: "display",
9
+ order: 1,
10
+ propsInterface: "MessageCardProps"
11
+ },
12
+ "message-list": {
13
+ id: "message-list",
14
+ label: "Message List",
15
+ description: "Unified message list with selection and filtering",
16
+ icon: "list",
17
+ category: "list",
18
+ order: 2,
19
+ propsInterface: "MessageListProps"
20
+ },
21
+ "message-detail": {
22
+ id: "message-detail",
23
+ label: "Message Detail",
24
+ description: "Full message view with type-adaptive sections",
25
+ icon: "file-text",
26
+ category: "display",
27
+ order: 3,
28
+ propsInterface: "MessageDetailProps"
29
+ },
30
+ "message-filters": {
31
+ id: "message-filters",
32
+ label: "Message Filters",
33
+ description: "Filter and sort controls for message lists",
34
+ icon: "filter",
35
+ category: "action",
36
+ order: 4,
37
+ propsInterface: "MessageFiltersProps"
38
+ },
39
+ "account-list": {
40
+ id: "account-list",
41
+ label: "Account List",
42
+ description: "Account management list with sync status",
43
+ icon: "users",
44
+ category: "list",
45
+ order: 5,
46
+ propsInterface: "AccountListProps"
47
+ },
48
+ "thread-view": {
49
+ id: "thread-view",
50
+ label: "Thread View",
51
+ description: "Conversation thread with collapsible messages",
52
+ icon: "message-circle",
53
+ category: "display",
54
+ order: 6,
55
+ propsInterface: "ThreadViewProps"
56
+ },
57
+ "compose-form": {
58
+ id: "compose-form",
59
+ label: "Compose Form",
60
+ description: "Full message compose form with type-adaptive fields",
61
+ icon: "edit",
62
+ category: "action",
63
+ order: 7,
64
+ propsInterface: "ComposeFormProps"
65
+ },
66
+ "reply-form": {
67
+ id: "reply-form",
68
+ label: "Reply Form",
69
+ description: "Inline reply form with quoted original",
70
+ icon: "reply",
71
+ category: "action",
72
+ order: 8,
73
+ propsInterface: "ReplyFormProps"
74
+ }
74
75
  };
75
- const MESSAGES_MODULE_META = {
76
- name: "@happyvertical/smrt-messages",
77
- displayName: "Messages",
78
- description: "Unified multi-channel messaging: email, Slack, Twitter, and more",
79
- uiSlots: MESSAGES_UI_SLOTS,
80
- models: [
81
- "Message",
82
- "Email",
83
- "Tweet",
84
- "SlackMessage",
85
- "Account",
86
- "EmailAccount",
87
- "SlackAccount",
88
- "TwitterAccount",
89
- "Attachment"
90
- ],
91
- collections: [
92
- "MessageCollection",
93
- "EmailCollection",
94
- "AccountCollection",
95
- "EmailAccountCollection",
96
- "AttachmentCollection"
97
- ]
76
+ var MESSAGES_MODULE_META = {
77
+ name: "@happyvertical/smrt-messages",
78
+ displayName: "Messages",
79
+ description: "Unified multi-channel messaging: email, Slack, Twitter, and more",
80
+ uiSlots: MESSAGES_UI_SLOTS,
81
+ models: [
82
+ "Message",
83
+ "Email",
84
+ "Tweet",
85
+ "SlackMessage",
86
+ "Account",
87
+ "EmailAccount",
88
+ "SlackAccount",
89
+ "TwitterAccount",
90
+ "Attachment"
91
+ ],
92
+ collections: [
93
+ "MessageCollection",
94
+ "EmailCollection",
95
+ "AccountCollection",
96
+ "EmailAccountCollection",
97
+ "AttachmentCollection"
98
+ ]
98
99
  };
99
- export {
100
- MESSAGES_MODULE_META,
101
- MESSAGES_UI_SLOTS
102
- };
103
- //# sourceMappingURL=ui.js.map
100
+ //#endregion
101
+ export { MESSAGES_MODULE_META, MESSAGES_UI_SLOTS };
102
+
103
+ //# sourceMappingURL=ui.js.map