@design.estate/dees-catalog 6.5.0 → 6.7.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.
- package/dist_bundle/bundle.js +1532 -681
- package/dist_ts_web/00_commitinfo_data.js +1 -1
- package/dist_ts_web/elements/00group-harness/dees-harness-chat/dees-harness-chat.d.ts +3 -0
- package/dist_ts_web/elements/00group-harness/dees-harness-chat/dees-harness-chat.js +30 -3
- package/dist_ts_web/elements/00group-harness/dees-harness-composer/dees-harness-composer.d.ts +3 -0
- package/dist_ts_web/elements/00group-harness/dees-harness-composer/dees-harness-composer.js +24 -4
- package/dist_ts_web/elements/00group-harness/dees-harness-session-list/dees-harness-session-list.d.ts +41 -2
- package/dist_ts_web/elements/00group-harness/dees-harness-session-list/dees-harness-session-list.demo.js +100 -2
- package/dist_ts_web/elements/00group-harness/dees-harness-session-list/dees-harness-session-list.js +816 -28
- package/dist_ts_web/elements/00group-harness/interfaces.d.ts +56 -0
- package/package.json +1 -1
- package/readme.hints.md +3 -0
- package/readme.md +50 -1
- package/ts_web/00_commitinfo_data.ts +1 -1
- package/ts_web/elements/00group-harness/dees-harness-chat/dees-harness-chat.ts +17 -1
- package/ts_web/elements/00group-harness/dees-harness-composer/dees-harness-composer.ts +19 -2
- package/ts_web/elements/00group-harness/dees-harness-session-list/dees-harness-session-list.demo.ts +123 -1
- package/ts_web/elements/00group-harness/dees-harness-session-list/dees-harness-session-list.ts +922 -28
- package/ts_web/elements/00group-harness/interfaces.ts +67 -0
|
@@ -20,6 +20,38 @@ const demoGroups = [
|
|
|
20
20
|
{ id: 'active', name: 'Active work', sessionIds: ['session-0', 'session-1', 'session-2'] },
|
|
21
21
|
{ id: 'review', name: 'Review', sessionIds: ['session-3', 'session-4'] },
|
|
22
22
|
];
|
|
23
|
+
const demoResources = [
|
|
24
|
+
{
|
|
25
|
+
id: 'terminal:build',
|
|
26
|
+
kind: 'terminal',
|
|
27
|
+
title: 'Build shell',
|
|
28
|
+
icon: 'lucide:Terminal',
|
|
29
|
+
preview: 'pnpm run build',
|
|
30
|
+
updatedAt: Date.now() - 90_000,
|
|
31
|
+
state: 'ready',
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
id: 'file:release-notes',
|
|
35
|
+
kind: 'file',
|
|
36
|
+
title: 'Release notes',
|
|
37
|
+
icon: 'lucide:FileText',
|
|
38
|
+
preview: '6.7.0 controlled resource draft',
|
|
39
|
+
updatedAt: Date.now() - 180_000,
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
id: 'browser:preview',
|
|
43
|
+
kind: 'browser',
|
|
44
|
+
title: 'Documentation preview',
|
|
45
|
+
icon: 'lucide:Globe',
|
|
46
|
+
preview: 'localhost:3000',
|
|
47
|
+
updatedAt: Date.now() - 240_000,
|
|
48
|
+
},
|
|
49
|
+
];
|
|
50
|
+
const demoResourceAssociations = [
|
|
51
|
+
{ resourceId: 'terminal:build', sessionId: 'session-0' },
|
|
52
|
+
{ resourceId: 'file:release-notes', sessionId: 'session-0' },
|
|
53
|
+
];
|
|
54
|
+
const demoResourceEligibleSessionIds = Object.fromEntries(demoResources.map((resource) => [resource.id, ['session-0', 'session-1', 'session-2']]));
|
|
23
55
|
const handleSessionSelect = (event) => {
|
|
24
56
|
const list = event.currentTarget;
|
|
25
57
|
list.selectedSessionId = event.detail.session.id;
|
|
@@ -42,6 +74,61 @@ const handleSessionMove = (event) => {
|
|
|
42
74
|
list.groups = groups;
|
|
43
75
|
list.ungroupedSessionIds = ungroupedSessionIds;
|
|
44
76
|
};
|
|
77
|
+
const handleResourceAssociation = (event) => {
|
|
78
|
+
const list = event.currentTarget;
|
|
79
|
+
const next = list.resourceAssociations.filter((association) => association.resourceId !== event.detail.resource.id);
|
|
80
|
+
if (event.detail.toSessionId) {
|
|
81
|
+
next.push({
|
|
82
|
+
resourceId: event.detail.resource.id,
|
|
83
|
+
sessionId: event.detail.toSessionId,
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
list.resourceAssociations = next;
|
|
87
|
+
};
|
|
88
|
+
const handleResourceContext = async (event) => {
|
|
89
|
+
const list = event.currentTarget;
|
|
90
|
+
const { DeesContextmenu } = await import('../../00group-overlay/dees-contextmenu/dees-contextmenu.js');
|
|
91
|
+
const currentSessionId = event.detail.sessionId;
|
|
92
|
+
const eligibleSessionIds = ['session-0', 'session-1', 'session-2'];
|
|
93
|
+
const menu = await DeesContextmenu.openContextMenuWithOptions(new MouseEvent('contextmenu', {
|
|
94
|
+
clientX: event.detail.clientX,
|
|
95
|
+
clientY: event.detail.clientY,
|
|
96
|
+
}), [
|
|
97
|
+
...eligibleSessionIds
|
|
98
|
+
.filter((sessionId) => sessionId !== currentSessionId)
|
|
99
|
+
.map((sessionId) => ({
|
|
100
|
+
name: `${currentSessionId ? 'Reassign' : 'Attach'} to ${demoSessions.find((session) => session.id === sessionId)?.title}`,
|
|
101
|
+
iconName: 'lucide:Link',
|
|
102
|
+
action: async () => {
|
|
103
|
+
event.detail.requestAssociation(sessionId);
|
|
104
|
+
event.detail.close();
|
|
105
|
+
},
|
|
106
|
+
})),
|
|
107
|
+
...(currentSessionId
|
|
108
|
+
? [{
|
|
109
|
+
name: 'Detach',
|
|
110
|
+
iconName: 'lucide:Unlink',
|
|
111
|
+
action: async () => {
|
|
112
|
+
event.detail.requestAssociation(null);
|
|
113
|
+
event.detail.close();
|
|
114
|
+
},
|
|
115
|
+
}]
|
|
116
|
+
: []),
|
|
117
|
+
]);
|
|
118
|
+
if (!menu) {
|
|
119
|
+
event.detail.close();
|
|
120
|
+
}
|
|
121
|
+
else {
|
|
122
|
+
const observer = new MutationObserver(() => {
|
|
123
|
+
if (menu.isConnected)
|
|
124
|
+
return;
|
|
125
|
+
observer.disconnect();
|
|
126
|
+
event.detail.close();
|
|
127
|
+
});
|
|
128
|
+
observer.observe(document.body, { childList: true });
|
|
129
|
+
}
|
|
130
|
+
list.selectedResourceId = event.detail.resource.id;
|
|
131
|
+
};
|
|
45
132
|
const openModal = async () => {
|
|
46
133
|
const { DeesModal } = await import('../../00group-overlay/dees-modal/dees-modal.js');
|
|
47
134
|
const content = document.createElement('dees-harness-session-list');
|
|
@@ -79,16 +166,27 @@ export const demoFunc = () => html `
|
|
|
79
166
|
</style>
|
|
80
167
|
<div class="sessionDemo">
|
|
81
168
|
<dees-button @clicked=${openModal}>Open in a DeesModal</dees-button>
|
|
82
|
-
<div class="demoHint">
|
|
169
|
+
<div class="demoHint">
|
|
170
|
+
Use a conversation grip to reorder sessions. Use a resource grip to associate it with a
|
|
171
|
+
session, or open Actions with click, ContextMenu, or Shift+F10 for attach, reassign, and detach.
|
|
172
|
+
</div>
|
|
83
173
|
<dees-harness-session-list
|
|
84
174
|
.sessions=${demoSessions}
|
|
85
175
|
.groups=${demoGroups}
|
|
86
176
|
.ungroupedSessionIds=${demoSessions.slice(5).map((session) => session.id)}
|
|
177
|
+
.resources=${demoResources}
|
|
178
|
+
.resourceAssociations=${demoResourceAssociations}
|
|
179
|
+
.eligibleSessionIdsByResourceId=${demoResourceEligibleSessionIds}
|
|
87
180
|
.enableGrouping=${true}
|
|
88
181
|
selectedSessionId="session-2"
|
|
89
182
|
@harness-session-select=${handleSessionSelect}
|
|
90
183
|
@harness-session-move=${handleSessionMove}
|
|
184
|
+
@harness-resource-select=${(event) => {
|
|
185
|
+
event.currentTarget.selectedResourceId = event.detail.resource.id;
|
|
186
|
+
}}
|
|
187
|
+
@harness-resource-context=${handleResourceContext}
|
|
188
|
+
@harness-resource-association-request=${handleResourceAssociation}
|
|
91
189
|
></dees-harness-session-list>
|
|
92
190
|
</div>
|
|
93
191
|
`;
|
|
94
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
192
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVlcy1oYXJuZXNzLXNlc3Npb24tbGlzdC5kZW1vLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vdHNfd2ViL2VsZW1lbnRzLzAwZ3JvdXAtaGFybmVzcy9kZWVzLWhhcm5lc3Mtc2Vzc2lvbi1saXN0L2RlZXMtaGFybmVzcy1zZXNzaW9uLWxpc3QuZGVtby50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFZbkQsTUFBTSxZQUFZLEdBQTBCLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ3BGLEVBQUUsRUFBRSxXQUFXLEtBQUssRUFBRTtJQUN0QixLQUFLLEVBQUU7UUFDTCx1QkFBdUI7UUFDdkIsc0NBQXNDO1FBQ3RDLDJCQUEyQjtRQUMzQiw2QkFBNkI7UUFDN0IsZ0JBQWdCO1FBQ2hCLHFDQUFxQztLQUN0QyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUM7SUFDWixTQUFTLEVBQUUsSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxHQUFHLFNBQVM7SUFDL0MsU0FBUyxFQUFFLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsR0FBRyxTQUFTO0lBQy9DLFlBQVksRUFBRSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDO0lBQzdCLE9BQU8sRUFBRSx3RUFBd0U7SUFDakYsS0FBSyxFQUFHLENBQUMsUUFBUSxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLE9BQU8sQ0FBVyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUM7SUFDcEYsT0FBTyxFQUFFLEtBQUssR0FBRyxDQUFDLEtBQUssQ0FBQztDQUN6QixDQUFDLENBQUMs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
|