@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.
- package/dist/chunks/AccountCollection-BekDBDAm.js +210 -0
- package/dist/chunks/AccountCollection-BekDBDAm.js.map +1 -0
- package/dist/chunks/Email-Bv6cu8QX.js +282 -0
- package/dist/chunks/Email-Bv6cu8QX.js.map +1 -0
- package/dist/chunks/EmailFolder-DvZODbnW.js +153 -0
- package/dist/chunks/EmailFolder-DvZODbnW.js.map +1 -0
- package/dist/chunks/Message-CHTC1RuY.js +333 -0
- package/dist/chunks/Message-CHTC1RuY.js.map +1 -0
- package/dist/chunks/MessageCollection-DvG0YCfd.js +169 -0
- package/dist/chunks/MessageCollection-DvG0YCfd.js.map +1 -0
- package/dist/chunks/rolldown-runtime-D7D4PA-g.js +13 -0
- package/dist/index.js +1597 -3098
- package/dist/index.js.map +1 -1
- package/dist/manifest.json +2 -2
- package/dist/playground.js +154 -174
- package/dist/playground.js.map +1 -1
- package/dist/smrt-knowledge.json +11 -11
- package/dist/types.js +0 -2
- package/dist/ui.js +101 -101
- package/dist/ui.js.map +1 -1
- package/package.json +22 -22
- package/dist/types.js.map +0 -1
package/dist/manifest.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": "1.0.0",
|
|
3
|
-
"timestamp":
|
|
3
|
+
"timestamp": 1782936213040,
|
|
4
4
|
"packageName": "@happyvertical/smrt-messages",
|
|
5
|
-
"packageVersion": "0.37.
|
|
5
|
+
"packageVersion": "0.37.3",
|
|
6
6
|
"objects": {
|
|
7
7
|
"@happyvertical/smrt-messages:AccountCollection": {
|
|
8
8
|
"name": "accountcollection",
|
package/dist/playground.js
CHANGED
|
@@ -1,176 +1,156 @@
|
|
|
1
1
|
import { MESSAGES_MODULE_META } from "./ui.js";
|
|
2
|
-
|
|
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
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
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
|
package/dist/playground.js.map
CHANGED
|
@@ -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"],"
|
|
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"}
|
package/dist/smrt-knowledge.json
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schemaVersion": 1,
|
|
3
|
-
"generatedAt": "2026-07-
|
|
3
|
+
"generatedAt": "2026-07-01T20:03:33.445Z",
|
|
4
4
|
"packageName": "@happyvertical/smrt-messages",
|
|
5
|
-
"packageVersion": "0.37.
|
|
5
|
+
"packageVersion": "0.37.3",
|
|
6
6
|
"sourceManifestPath": "dist/manifest.json",
|
|
7
7
|
"agentDocPath": "AGENTS.md",
|
|
8
8
|
"sourceHashes": {
|
|
9
|
-
"manifest": "
|
|
10
|
-
"packageJson": "
|
|
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.
|
|
36
|
-
"@sveltejs/vite-plugin-svelte": "^
|
|
37
|
-
"@types/node": "
|
|
38
|
-
"svelte": "^5.
|
|
39
|
-
"svelte-check": "^4.
|
|
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": "^
|
|
42
|
-
"vitest": "^4.
|
|
41
|
+
"vite": "^8.1.2",
|
|
42
|
+
"vitest": "^4.1.9",
|
|
43
43
|
"@happyvertical/encryption": "*"
|
|
44
44
|
},
|
|
45
45
|
"smrtDependencies": [
|
package/dist/types.js
CHANGED
package/dist/ui.js
CHANGED
|
@@ -1,103 +1,103 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
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
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
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
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
//# sourceMappingURL=ui.js.map
|
|
100
|
+
//#endregion
|
|
101
|
+
export { MESSAGES_MODULE_META, MESSAGES_UI_SLOTS };
|
|
102
|
+
|
|
103
|
+
//# sourceMappingURL=ui.js.map
|