@design.estate/dees-catalog 4.9.0 → 4.10.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 +565 -94
- package/dist_ts_web/00_commitinfo_data.js +2 -2
- package/dist_ts_web/elements/00group-harness/dees-harness-session-list/dees-harness-session-list.d.ts +23 -2
- package/dist_ts_web/elements/00group-harness/dees-harness-session-list/dees-harness-session-list.demo.js +10 -1
- package/dist_ts_web/elements/00group-harness/dees-harness-session-list/dees-harness-session-list.js +575 -99
- package/dist_ts_web/elements/00group-harness/interfaces.d.ts +10 -1
- package/package.json +2 -2
- package/readme.md +3 -1
- package/ts_web/00_commitinfo_data.ts +1 -1
- package/ts_web/elements/00group-harness/dees-harness-session-list/dees-harness-session-list.demo.ts +10 -0
- package/ts_web/elements/00group-harness/dees-harness-session-list/dees-harness-session-list.ts +615 -95
- package/ts_web/elements/00group-harness/interfaces.ts +11 -1
- package/dist_watch/bundle.js +0 -235637
- package/dist_watch/bundle.js.map +0 -7
- package/dist_watch/index.html +0 -28
package/dist_bundle/bundle.js
CHANGED
|
@@ -3901,23 +3901,23 @@ var init_innerFrom = __esm({
|
|
|
3901
3901
|
});
|
|
3902
3902
|
|
|
3903
3903
|
// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/util/executeSchedule.js
|
|
3904
|
-
function executeSchedule(parentSubscription, scheduler, work, delay3,
|
|
3904
|
+
function executeSchedule(parentSubscription, scheduler, work, delay3, repeat6) {
|
|
3905
3905
|
if (delay3 === void 0) {
|
|
3906
3906
|
delay3 = 0;
|
|
3907
3907
|
}
|
|
3908
|
-
if (
|
|
3909
|
-
|
|
3908
|
+
if (repeat6 === void 0) {
|
|
3909
|
+
repeat6 = false;
|
|
3910
3910
|
}
|
|
3911
3911
|
var scheduleSubscription = scheduler.schedule(function() {
|
|
3912
3912
|
work();
|
|
3913
|
-
if (
|
|
3913
|
+
if (repeat6) {
|
|
3914
3914
|
parentSubscription.add(this.schedule(null, delay3));
|
|
3915
3915
|
} else {
|
|
3916
3916
|
this.unsubscribe();
|
|
3917
3917
|
}
|
|
3918
3918
|
}, delay3);
|
|
3919
3919
|
parentSubscription.add(scheduleSubscription);
|
|
3920
|
-
if (!
|
|
3920
|
+
if (!repeat6) {
|
|
3921
3921
|
return scheduleSubscription;
|
|
3922
3922
|
}
|
|
3923
3923
|
}
|
|
@@ -177039,8 +177039,14 @@ var demoSessions = Array.from({ length: 24 }, (_3, index3) => ({
|
|
|
177039
177039
|
createdAt: Date.now() - (index3 + 2) * 36e5,
|
|
177040
177040
|
updatedAt: Date.now() - (index3 + 1) * 35e5,
|
|
177041
177041
|
messageCount: 4 + index3 % 9,
|
|
177042
|
-
preview: "Latest: the regression test asserts the cache key stays stable across\u2026"
|
|
177042
|
+
preview: "Latest: the regression test asserts the cache key stays stable across\u2026",
|
|
177043
|
+
state: ["normal", "working", "finished", "attention", "error"][index3 % 5],
|
|
177044
|
+
working: index3 % 5 === 1
|
|
177043
177045
|
}));
|
|
177046
|
+
var demoGroups = [
|
|
177047
|
+
{ id: "active", name: "Active work", sessionIds: ["session-0", "session-1", "session-2"] },
|
|
177048
|
+
{ id: "review", name: "Review", sessionIds: ["session-3", "session-4"] }
|
|
177049
|
+
];
|
|
177044
177050
|
var openModal = /* @__PURE__ */ __name(async () => {
|
|
177045
177051
|
const { DeesModal: DeesModal2 } = await Promise.resolve().then(() => (init_dees_modal(), dees_modal_exports));
|
|
177046
177052
|
const content3 = document.createElement("dees-harness-session-list");
|
|
@@ -177075,6 +177081,9 @@ var demoFunc63 = /* @__PURE__ */ __name(() => b2`
|
|
|
177075
177081
|
<dees-button @clicked=${openModal}>Open in a DeesModal</dees-button>
|
|
177076
177082
|
<dees-harness-session-list
|
|
177077
177083
|
.sessions=${demoSessions}
|
|
177084
|
+
.groups=${demoGroups}
|
|
177085
|
+
.ungroupedSessionIds=${demoSessions.slice(5).map((session) => session.id)}
|
|
177086
|
+
.enableGrouping=${true}
|
|
177078
177087
|
selectedSessionId="session-2"
|
|
177079
177088
|
@harness-session-select=${(event) => console.log("select", event.detail.session)}
|
|
177080
177089
|
></dees-harness-session-list>
|
|
@@ -177085,9 +177094,10 @@ var demoFunc63 = /* @__PURE__ */ __name(() => b2`
|
|
|
177085
177094
|
init_dist_ts25();
|
|
177086
177095
|
init_theme();
|
|
177087
177096
|
init_dees_icon();
|
|
177088
|
-
var _collapsedGroupIds_dec, _dropSlot_dec, _draggingSessionId_dec, _search_dec, _enableGrouping_dec, _groups_dec2, _emptyText_dec2, _loading_dec4, _selectedSessionId_dec, _sessions_dec, _a89, _DeesHarnessSessionList_decorators, _init90, _sessions, _selectedSessionId, _loading4, _emptyText2, _groups2, _enableGrouping, _search, _draggingSessionId, _dropSlot, _collapsedGroupIds;
|
|
177097
|
+
var _collapsedGroupIds_dec, _expandedSessionIds_dec, _draggedItemHeight_dec, _dropSlot_dec, _draggingSessionId_dec, _search_dec, _ungroupedSessionIds_dec, _enableGrouping_dec, _groups_dec2, _emptyText_dec2, _loading_dec4, _selectedSessionId_dec, _sessions_dec, _a89, _DeesHarnessSessionList_decorators, _init90, _sessions, _selectedSessionId, _loading4, _emptyText2, _groups2, _enableGrouping, _ungroupedSessionIds, _search, _draggingSessionId, _dropSlot, _draggedItemHeight, _expandedSessionIds, _collapsedGroupIds;
|
|
177098
|
+
var { repeat: repeat5 } = directives_exports;
|
|
177089
177099
|
_DeesHarnessSessionList_decorators = [customElement("dees-harness-session-list")];
|
|
177090
|
-
var _DeesHarnessSessionList = class _DeesHarnessSessionList extends (_a89 = DeesElement, _sessions_dec = [n5({ attribute: false })], _selectedSessionId_dec = [n5()], _loading_dec4 = [n5({ type: Boolean })], _emptyText_dec2 = [n5()], _groups_dec2 = [n5({ attribute: false })], _enableGrouping_dec = [n5({ type: Boolean })], _search_dec = [r5()], _draggingSessionId_dec = [r5()], _dropSlot_dec = [r5()], _collapsedGroupIds_dec = [r5()], _a89) {
|
|
177100
|
+
var _DeesHarnessSessionList = class _DeesHarnessSessionList extends (_a89 = DeesElement, _sessions_dec = [n5({ attribute: false })], _selectedSessionId_dec = [n5()], _loading_dec4 = [n5({ type: Boolean })], _emptyText_dec2 = [n5()], _groups_dec2 = [n5({ attribute: false })], _enableGrouping_dec = [n5({ type: Boolean })], _ungroupedSessionIds_dec = [n5({ attribute: false })], _search_dec = [r5()], _draggingSessionId_dec = [r5()], _dropSlot_dec = [r5()], _draggedItemHeight_dec = [r5()], _expandedSessionIds_dec = [r5()], _collapsedGroupIds_dec = [r5()], _a89) {
|
|
177091
177101
|
constructor() {
|
|
177092
177102
|
super(...arguments);
|
|
177093
177103
|
__privateAdd(this, _sessions, __runInitializers(_init90, 8, this, [])), __runInitializers(_init90, 11, this);
|
|
@@ -177096,10 +177106,16 @@ var _DeesHarnessSessionList = class _DeesHarnessSessionList extends (_a89 = Dees
|
|
|
177096
177106
|
__privateAdd(this, _emptyText2, __runInitializers(_init90, 20, this, "No conversations yet.")), __runInitializers(_init90, 23, this);
|
|
177097
177107
|
__privateAdd(this, _groups2, __runInitializers(_init90, 24, this, [])), __runInitializers(_init90, 27, this);
|
|
177098
177108
|
__privateAdd(this, _enableGrouping, __runInitializers(_init90, 28, this, false)), __runInitializers(_init90, 31, this);
|
|
177099
|
-
__privateAdd(this,
|
|
177100
|
-
__privateAdd(this,
|
|
177101
|
-
__privateAdd(this,
|
|
177102
|
-
__privateAdd(this,
|
|
177109
|
+
__privateAdd(this, _ungroupedSessionIds, __runInitializers(_init90, 32, this, [])), __runInitializers(_init90, 35, this);
|
|
177110
|
+
__privateAdd(this, _search, __runInitializers(_init90, 36, this, "")), __runInitializers(_init90, 39, this);
|
|
177111
|
+
__privateAdd(this, _draggingSessionId, __runInitializers(_init90, 40, this, "")), __runInitializers(_init90, 43, this);
|
|
177112
|
+
__privateAdd(this, _dropSlot, __runInitializers(_init90, 44, this)), __runInitializers(_init90, 47, this);
|
|
177113
|
+
__privateAdd(this, _draggedItemHeight, __runInitializers(_init90, 48, this, 0)), __runInitializers(_init90, 51, this);
|
|
177114
|
+
__privateAdd(this, _expandedSessionIds, __runInitializers(_init90, 52, this, /* @__PURE__ */ new Set())), __runInitializers(_init90, 55, this);
|
|
177115
|
+
__privateAdd(this, _collapsedGroupIds, __runInitializers(_init90, 56, this, /* @__PURE__ */ new Set())), __runInitializers(_init90, 59, this);
|
|
177116
|
+
__publicField(this, "reflowGeneration", 0);
|
|
177117
|
+
__publicField(this, "reflowAnimations", /* @__PURE__ */ new Set());
|
|
177118
|
+
__publicField(this, "dragSourceElement");
|
|
177103
177119
|
}
|
|
177104
177120
|
get sessionsById() {
|
|
177105
177121
|
return new Map(this.sessions.map((session) => [session.id, session]));
|
|
@@ -177111,12 +177127,25 @@ var _DeesHarnessSessionList = class _DeesHarnessSessionList extends (_a89 = Dees
|
|
|
177111
177127
|
}
|
|
177112
177128
|
return ids;
|
|
177113
177129
|
}
|
|
177114
|
-
/**
|
|
177130
|
+
/** Pinned entries first, followed by explicitly ordered sortable sessions. */
|
|
177115
177131
|
get ungroupedSessions() {
|
|
177116
177132
|
const grouped = this.groupedSessionIds;
|
|
177117
|
-
|
|
177133
|
+
const available = this.sessions.filter((session) => !grouped.has(session.id));
|
|
177134
|
+
const pinned = available.filter((session) => session.draggable === false);
|
|
177135
|
+
const sortableById = new Map(
|
|
177136
|
+
available.filter((session) => session.draggable !== false).map((session) => [session.id, session])
|
|
177137
|
+
);
|
|
177138
|
+
const ordered = [];
|
|
177139
|
+
for (const sessionId of this.ungroupedSessionIds) {
|
|
177140
|
+
const session = sortableById.get(sessionId);
|
|
177141
|
+
if (!session) continue;
|
|
177142
|
+
ordered.push(session);
|
|
177143
|
+
sortableById.delete(sessionId);
|
|
177144
|
+
}
|
|
177145
|
+
const newSessions = [...sortableById.values()].sort(
|
|
177118
177146
|
(left, right) => (right.updatedAt ?? right.createdAt ?? 0) - (left.updatedAt ?? left.createdAt ?? 0)
|
|
177119
177147
|
);
|
|
177148
|
+
return [...pinned, ...ordered, ...newSessions];
|
|
177120
177149
|
}
|
|
177121
177150
|
get filteredSessions() {
|
|
177122
177151
|
const query3 = this.search.trim().toLowerCase();
|
|
@@ -177131,10 +177160,40 @@ var _DeesHarnessSessionList = class _DeesHarnessSessionList extends (_a89 = Dees
|
|
|
177131
177160
|
focusSearch() {
|
|
177132
177161
|
this.shadowRoot?.querySelector(".searchRow input")?.focus();
|
|
177133
177162
|
}
|
|
177163
|
+
updated(changedProperties) {
|
|
177164
|
+
super.updated(changedProperties);
|
|
177165
|
+
if (this.draggingSessionId && !this.dragSourceElement?.isConnected) {
|
|
177166
|
+
this.clearDragState();
|
|
177167
|
+
}
|
|
177168
|
+
if (!changedProperties.has("sessions")) return;
|
|
177169
|
+
const previousSessions = changedProperties.get("sessions");
|
|
177170
|
+
const previousById = new Map((previousSessions ?? []).map((session) => [session.id, session]));
|
|
177171
|
+
const knownIds = new Set(this.sessions.map((session) => session.id));
|
|
177172
|
+
if (this.draggingSessionId && !knownIds.has(this.draggingSessionId)) {
|
|
177173
|
+
this.clearDragState();
|
|
177174
|
+
}
|
|
177175
|
+
const nextExpanded = new Set(
|
|
177176
|
+
[...this.expandedSessionIds].filter((sessionId) => knownIds.has(sessionId))
|
|
177177
|
+
);
|
|
177178
|
+
for (const session of this.sessions) {
|
|
177179
|
+
const previous3 = previousById.get(session.id);
|
|
177180
|
+
if (previous3 && previous3.working !== true && session.working === true) {
|
|
177181
|
+
nextExpanded.add(session.id);
|
|
177182
|
+
}
|
|
177183
|
+
}
|
|
177184
|
+
if (nextExpanded.size !== this.expandedSessionIds.size || [...nextExpanded].some((sessionId) => !this.expandedSessionIds.has(sessionId))) {
|
|
177185
|
+
this.expandedSessionIds = nextExpanded;
|
|
177186
|
+
}
|
|
177187
|
+
}
|
|
177188
|
+
async disconnectedCallback() {
|
|
177189
|
+
this.clearDragState();
|
|
177190
|
+
await super.disconnectedCallback();
|
|
177191
|
+
}
|
|
177134
177192
|
render() {
|
|
177135
177193
|
const groupingActive = this.enableGrouping && !this.search.trim();
|
|
177136
177194
|
return b2`
|
|
177137
177195
|
<div class="searchRow">
|
|
177196
|
+
<dees-icon class="searchIcon" icon="lucide:Search" iconSize="13"></dees-icon>
|
|
177138
177197
|
<input
|
|
177139
177198
|
placeholder="Search conversations"
|
|
177140
177199
|
.value=${this.search}
|
|
@@ -177174,7 +177233,15 @@ var _DeesHarnessSessionList = class _DeesHarnessSessionList extends (_a89 = Dees
|
|
|
177174
177233
|
${this.sessions.length ? "No conversations match this search." : this.emptyText}
|
|
177175
177234
|
</div>`;
|
|
177176
177235
|
}
|
|
177177
|
-
return b2
|
|
177236
|
+
return b2`
|
|
177237
|
+
<div class="section">
|
|
177238
|
+
${repeat5(
|
|
177239
|
+
sessions,
|
|
177240
|
+
(session) => session.id,
|
|
177241
|
+
(session) => this.renderItem(session, null, -1)
|
|
177242
|
+
)}
|
|
177243
|
+
</div>
|
|
177244
|
+
`;
|
|
177178
177245
|
}
|
|
177179
177246
|
renderGroupedList() {
|
|
177180
177247
|
const byId = this.sessionsById;
|
|
@@ -177186,7 +177253,7 @@ var _DeesHarnessSessionList = class _DeesHarnessSessionList extends (_a89 = Dees
|
|
|
177186
177253
|
${this.groups.map((group) => {
|
|
177187
177254
|
const members = group.sessionIds.map((id) => byId.get(id)).filter((session) => session !== void 0);
|
|
177188
177255
|
const collapsed = this.collapsedGroupIds.has(group.id);
|
|
177189
|
-
const isHeaderDrop = this.dropSlot?.groupId === group.id && this.dropSlot.index === members.length && collapsed;
|
|
177256
|
+
const isHeaderDrop = this.dropSlot?.groupId === group.id && this.dropSlot.index === this.sortableSessions(members).length && collapsed;
|
|
177190
177257
|
return b2`
|
|
177191
177258
|
<button
|
|
177192
177259
|
class="groupHeader ${collapsed ? "collapsed" : ""} ${isHeaderDrop ? "dropTarget" : ""}"
|
|
@@ -177204,8 +177271,16 @@ var _DeesHarnessSessionList = class _DeesHarnessSessionList extends (_a89 = Dees
|
|
|
177204
177271
|
new CustomEvent("harness-group-context", { detail, bubbles: true, composed: true })
|
|
177205
177272
|
);
|
|
177206
177273
|
}}
|
|
177207
|
-
@dragover=${(event) => this.handleDragOverSlot(
|
|
177208
|
-
|
|
177274
|
+
@dragover=${(event) => this.handleDragOverSlot(
|
|
177275
|
+
event,
|
|
177276
|
+
group.id,
|
|
177277
|
+
this.sortableSessions(members).length
|
|
177278
|
+
)}
|
|
177279
|
+
@drop=${(event) => this.handleDrop(
|
|
177280
|
+
event,
|
|
177281
|
+
group.id,
|
|
177282
|
+
this.sortableSessions(members).length
|
|
177283
|
+
)}
|
|
177209
177284
|
>
|
|
177210
177285
|
<dees-icon class="chevron" icon="lucide:ChevronDown" iconSize="12"></dees-icon>
|
|
177211
177286
|
<span>${group.name}</span>
|
|
@@ -177214,7 +177289,7 @@ var _DeesHarnessSessionList = class _DeesHarnessSessionList extends (_a89 = Dees
|
|
|
177214
177289
|
${collapsed ? "" : this.renderSection(members, group.id)}
|
|
177215
177290
|
`;
|
|
177216
177291
|
})}
|
|
177217
|
-
${this.groups.length && ungrouped.length ? b2`
|
|
177292
|
+
${this.groups.length && (ungrouped.length || this.draggingSessionId) ? b2`
|
|
177218
177293
|
<button
|
|
177219
177294
|
class="groupHeader"
|
|
177220
177295
|
type="button"
|
|
@@ -177231,29 +177306,69 @@ var _DeesHarnessSessionList = class _DeesHarnessSessionList extends (_a89 = Dees
|
|
|
177231
177306
|
}
|
|
177232
177307
|
renderSection(sessions, groupId) {
|
|
177233
177308
|
const slot = this.dropSlot;
|
|
177309
|
+
const entries = [];
|
|
177310
|
+
let logicalIndex = 0;
|
|
177311
|
+
for (const session of sessions) {
|
|
177312
|
+
const isDragging = session.id === this.draggingSessionId;
|
|
177313
|
+
const sortable = session.draggable !== false;
|
|
177314
|
+
if (slot && slot.groupId === groupId && slot.index === logicalIndex && !isDragging && sortable) {
|
|
177315
|
+
entries.push({ type: "placeholder", key: `placeholder:${groupId ?? "ungrouped"}` });
|
|
177316
|
+
}
|
|
177317
|
+
entries.push({
|
|
177318
|
+
type: "session",
|
|
177319
|
+
key: `session:${session.id}`,
|
|
177320
|
+
session,
|
|
177321
|
+
logicalIndex: sortable ? logicalIndex : -1
|
|
177322
|
+
});
|
|
177323
|
+
if (sortable && !isDragging) logicalIndex += 1;
|
|
177324
|
+
}
|
|
177325
|
+
if (slot && slot.groupId === groupId && slot.index === logicalIndex) {
|
|
177326
|
+
entries.push({ type: "placeholder", key: `placeholder:${groupId ?? "ungrouped"}` });
|
|
177327
|
+
}
|
|
177328
|
+
const hasPlaceholder = entries.some((entry) => entry.type === "placeholder");
|
|
177234
177329
|
return b2`
|
|
177235
|
-
|
|
177236
|
-
|
|
177237
|
-
|
|
177238
|
-
|
|
177239
|
-
|
|
177330
|
+
<div class="section" data-group-id=${groupId ?? ""}>
|
|
177331
|
+
${repeat5(
|
|
177332
|
+
entries,
|
|
177333
|
+
(entry) => entry.key,
|
|
177334
|
+
(entry) => entry.type === "placeholder" ? this.renderDropPlaceholder(groupId, slot?.index ?? 0) : this.renderItem(entry.session, groupId, entry.logicalIndex)
|
|
177240
177335
|
)}
|
|
177241
|
-
|
|
177336
|
+
${this.draggingSessionId && !hasPlaceholder && this.sortableSessions(sessions).length === 0 ? b2`
|
|
177337
|
+
<div
|
|
177338
|
+
class="emptyDropZone"
|
|
177339
|
+
@dragover=${(event) => this.handleDragOverSlot(event, groupId, 0)}
|
|
177340
|
+
@drop=${(event) => this.handleDrop(event, groupId, 0)}
|
|
177341
|
+
></div>
|
|
177342
|
+
` : ""}
|
|
177343
|
+
</div>
|
|
177344
|
+
`;
|
|
177345
|
+
}
|
|
177346
|
+
renderDropPlaceholder(groupId, index3) {
|
|
177347
|
+
return b2`
|
|
177348
|
+
<div
|
|
177349
|
+
class="dropPlaceholder"
|
|
177350
|
+
style=${`height: ${Math.max(46, this.draggedItemHeight)}px`}
|
|
177351
|
+
@dragover=${(event) => this.handleDragOverSlot(event, groupId, index3)}
|
|
177352
|
+
@drop=${(event) => this.handleDrop(event, groupId, index3)}
|
|
177353
|
+
></div>
|
|
177242
177354
|
`;
|
|
177243
177355
|
}
|
|
177244
177356
|
renderItem(session, groupId, index3) {
|
|
177245
|
-
const draggable = this.enableGrouping && index3 >= 0;
|
|
177357
|
+
const draggable = this.enableGrouping && session.draggable !== false && index3 >= 0 && !globalThis.matchMedia?.("(pointer: coarse)").matches;
|
|
177358
|
+
const expanded = this.expandedSessionIds.has(session.id);
|
|
177359
|
+
const state5 = session.state ?? "normal";
|
|
177360
|
+
const detailsId = `session-details-${session.id}`;
|
|
177246
177361
|
return b2`
|
|
177247
|
-
<
|
|
177248
|
-
class="item ${session.id === this.selectedSessionId ? "selected" : ""} ${this.draggingSessionId === session.id ? "dragging" : ""}"
|
|
177249
|
-
|
|
177250
|
-
draggable=${draggable
|
|
177251
|
-
@
|
|
177252
|
-
|
|
177253
|
-
|
|
177254
|
-
if (event.key === "Enter") this.emit("harness-session-open", session);
|
|
177362
|
+
<article
|
|
177363
|
+
class="item state-${state5} ${expanded ? "expanded" : ""} ${session.id === this.selectedSessionId ? "selected" : ""} ${this.draggingSessionId === session.id ? "dragging" : ""}"
|
|
177364
|
+
data-session-id=${session.id}
|
|
177365
|
+
.draggable=${draggable}
|
|
177366
|
+
@dblclick=${(event) => {
|
|
177367
|
+
if (this.eventTargetsExpandToggle(event)) return;
|
|
177368
|
+
this.emit("harness-session-open", session);
|
|
177255
177369
|
}}
|
|
177256
177370
|
@contextmenu=${(event) => {
|
|
177371
|
+
if (this.eventTargetsExpandToggle(event)) return;
|
|
177257
177372
|
event.preventDefault();
|
|
177258
177373
|
const detail = {
|
|
177259
177374
|
session,
|
|
@@ -177266,38 +177381,99 @@ var _DeesHarnessSessionList = class _DeesHarnessSessionList extends (_a89 = Dees
|
|
|
177266
177381
|
);
|
|
177267
177382
|
}}
|
|
177268
177383
|
@dragstart=${(event) => {
|
|
177269
|
-
|
|
177270
|
-
this.draggingSessionId = session.id;
|
|
177271
|
-
event.dataTransfer?.setData("text/plain", session.id);
|
|
177272
|
-
if (event.dataTransfer) event.dataTransfer.effectAllowed = "move";
|
|
177273
|
-
}}
|
|
177274
|
-
@dragend=${() => {
|
|
177275
|
-
this.draggingSessionId = "";
|
|
177276
|
-
this.dropSlot = void 0;
|
|
177384
|
+
this.handleDragStart(event, session, groupId, index3, draggable);
|
|
177277
177385
|
}}
|
|
177386
|
+
@dragend=${() => this.clearDragState()}
|
|
177278
177387
|
@dragover=${(event) => {
|
|
177279
|
-
if (!this.draggingSessionId || index3 < 0) return;
|
|
177388
|
+
if (!this.draggingSessionId || index3 < 0 || session.id === this.draggingSessionId) return;
|
|
177280
177389
|
event.preventDefault();
|
|
177281
177390
|
const rect = event.currentTarget.getBoundingClientRect();
|
|
177282
177391
|
const before = event.clientY < rect.top + rect.height / 2;
|
|
177283
177392
|
this.setDropSlot(groupId, before ? index3 : index3 + 1);
|
|
177284
177393
|
}}
|
|
177285
177394
|
@drop=${(event) => {
|
|
177286
|
-
if (index3 < 0) return;
|
|
177395
|
+
if (index3 < 0 || session.id === this.draggingSessionId) return;
|
|
177287
177396
|
const rect = event.currentTarget.getBoundingClientRect();
|
|
177288
177397
|
const before = event.clientY < rect.top + rect.height / 2;
|
|
177289
177398
|
this.handleDrop(event, groupId, before ? index3 : index3 + 1);
|
|
177290
177399
|
}}
|
|
177291
177400
|
>
|
|
177292
|
-
<
|
|
177293
|
-
|
|
177294
|
-
|
|
177295
|
-
|
|
177296
|
-
|
|
177297
|
-
|
|
177298
|
-
|
|
177401
|
+
<div class="itemHeader">
|
|
177402
|
+
<button
|
|
177403
|
+
class="itemPrimary"
|
|
177404
|
+
type="button"
|
|
177405
|
+
aria-current=${session.id === this.selectedSessionId ? "true" : "false"}
|
|
177406
|
+
@click=${() => this.emit("harness-session-select", session)}
|
|
177407
|
+
@keydown=${(event) => {
|
|
177408
|
+
if (event.key !== "Enter") return;
|
|
177409
|
+
event.preventDefault();
|
|
177410
|
+
this.emit("harness-session-open", session);
|
|
177411
|
+
}}
|
|
177412
|
+
>
|
|
177413
|
+
<span class="stateDot"></span>
|
|
177414
|
+
<span class="itemCopy">
|
|
177415
|
+
<span class="itemTitle">
|
|
177416
|
+
${session.icon ? b2`<dees-icon class="itemIcon" icon=${session.icon} iconSize="13"></dees-icon>` : ""}
|
|
177417
|
+
<span class="titleText">${session.title || session.id}</span>
|
|
177418
|
+
</span>
|
|
177419
|
+
<span class="itemTime">${harnessFormatRelativeTime(session.updatedAt ?? session.createdAt)}</span>
|
|
177420
|
+
<span class="visuallyHidden">Status: ${this.sessionStateLabel(state5)}</span>
|
|
177421
|
+
</span>
|
|
177422
|
+
</button>
|
|
177423
|
+
<button
|
|
177424
|
+
class="expandToggle"
|
|
177425
|
+
type="button"
|
|
177426
|
+
aria-expanded=${expanded ? "true" : "false"}
|
|
177427
|
+
aria-controls=${detailsId}
|
|
177428
|
+
title=${expanded ? "Collapse conversation card" : "Expand conversation card"}
|
|
177429
|
+
@click=${(event) => {
|
|
177430
|
+
event.stopPropagation();
|
|
177431
|
+
this.toggleSessionExpanded(session.id);
|
|
177432
|
+
}}
|
|
177433
|
+
>
|
|
177434
|
+
<dees-icon icon="lucide:ChevronDown" iconSize="15"></dees-icon>
|
|
177435
|
+
</button>
|
|
177436
|
+
</div>
|
|
177437
|
+
${expanded ? b2`
|
|
177438
|
+
<div class="itemDetails" id=${detailsId}>
|
|
177439
|
+
<div class="stateLine">
|
|
177440
|
+
<span class="stateDot"></span>
|
|
177441
|
+
<span>${this.sessionStateLabel(state5)}</span>
|
|
177442
|
+
</div>
|
|
177443
|
+
${session.preview ? b2`<div class="itemPreview">${session.preview}</div>` : ""}
|
|
177444
|
+
<div class="itemMeta">
|
|
177445
|
+
${session.messageCount ? `${session.messageCount} messages \xB7 ` : ""}${session.id}
|
|
177446
|
+
</div>
|
|
177447
|
+
</div>
|
|
177448
|
+
` : ""}
|
|
177449
|
+
</article>
|
|
177299
177450
|
`;
|
|
177300
177451
|
}
|
|
177452
|
+
eventTargetsExpandToggle(event) {
|
|
177453
|
+
return event.composedPath().some(
|
|
177454
|
+
(target) => target instanceof HTMLElement && target.classList.contains("expandToggle")
|
|
177455
|
+
);
|
|
177456
|
+
}
|
|
177457
|
+
sessionStateLabel(state5) {
|
|
177458
|
+
switch (state5) {
|
|
177459
|
+
case "working":
|
|
177460
|
+
return "Working";
|
|
177461
|
+
case "finished":
|
|
177462
|
+
return "Finished";
|
|
177463
|
+
case "attention":
|
|
177464
|
+
return "Needs attention";
|
|
177465
|
+
case "error":
|
|
177466
|
+
return "Error";
|
|
177467
|
+
default:
|
|
177468
|
+
return "Idle";
|
|
177469
|
+
}
|
|
177470
|
+
}
|
|
177471
|
+
toggleSessionExpanded(sessionIdArg) {
|
|
177472
|
+
const next2 = new Set(this.expandedSessionIds);
|
|
177473
|
+
if (next2.has(sessionIdArg)) next2.delete(sessionIdArg);
|
|
177474
|
+
else next2.add(sessionIdArg);
|
|
177475
|
+
this.expandedSessionIds = next2;
|
|
177476
|
+
}
|
|
177301
177477
|
toggleGroupCollapsed(groupIdArg) {
|
|
177302
177478
|
const next2 = new Set(this.collapsedGroupIds);
|
|
177303
177479
|
if (next2.has(groupIdArg)) {
|
|
@@ -177307,32 +177483,116 @@ var _DeesHarnessSessionList = class _DeesHarnessSessionList extends (_a89 = Dees
|
|
|
177307
177483
|
}
|
|
177308
177484
|
this.collapsedGroupIds = next2;
|
|
177309
177485
|
}
|
|
177486
|
+
sortableSessions(sessionsArg, excludeDraggingArg = true) {
|
|
177487
|
+
return sessionsArg.filter((session) => session.draggable !== false && (!excludeDraggingArg || session.id !== this.draggingSessionId));
|
|
177488
|
+
}
|
|
177489
|
+
sessionsForGroup(groupIdArg) {
|
|
177490
|
+
if (groupIdArg === null) return this.ungroupedSessions;
|
|
177491
|
+
const group = this.groups.find((candidate) => candidate.id === groupIdArg);
|
|
177492
|
+
if (!group) return [];
|
|
177493
|
+
const byId = this.sessionsById;
|
|
177494
|
+
return group.sessionIds.map((sessionId) => byId.get(sessionId)).filter((session) => session !== void 0);
|
|
177495
|
+
}
|
|
177496
|
+
handleDragStart(event, session, groupId, logicalIndex, draggable) {
|
|
177497
|
+
if (!draggable || logicalIndex < 0) {
|
|
177498
|
+
event.preventDefault();
|
|
177499
|
+
return;
|
|
177500
|
+
}
|
|
177501
|
+
const item = event.currentTarget;
|
|
177502
|
+
this.reflowGeneration += 1;
|
|
177503
|
+
this.cancelReflowAnimations();
|
|
177504
|
+
this.draggedItemHeight = Math.ceil(item.getBoundingClientRect().height);
|
|
177505
|
+
this.dragSourceElement = item;
|
|
177506
|
+
this.draggingSessionId = session.id;
|
|
177507
|
+
const remainingCount = this.sortableSessions(this.sessionsForGroup(groupId)).length;
|
|
177508
|
+
this.dropSlot = { groupId, index: Math.min(logicalIndex, remainingCount) };
|
|
177509
|
+
event.dataTransfer?.setData("text/plain", session.id);
|
|
177510
|
+
if (event.dataTransfer) event.dataTransfer.effectAllowed = "move";
|
|
177511
|
+
}
|
|
177310
177512
|
setDropSlot(groupIdArg, indexArg) {
|
|
177311
177513
|
const current = this.dropSlot;
|
|
177312
177514
|
if (current && current.groupId === groupIdArg && current.index === indexArg) return;
|
|
177515
|
+
const previousRects = this.captureCardRects();
|
|
177516
|
+
const generation = ++this.reflowGeneration;
|
|
177313
177517
|
this.dropSlot = { groupId: groupIdArg, index: indexArg };
|
|
177518
|
+
void this.animateCardReflow(previousRects, generation);
|
|
177314
177519
|
}
|
|
177315
177520
|
handleDragOverSlot(event, groupIdArg, indexArg) {
|
|
177316
177521
|
if (!this.draggingSessionId) return;
|
|
177317
177522
|
event.preventDefault();
|
|
177523
|
+
if (event.dataTransfer) event.dataTransfer.dropEffect = "move";
|
|
177318
177524
|
this.setDropSlot(groupIdArg, indexArg);
|
|
177319
177525
|
}
|
|
177320
177526
|
handleDrop(event, groupIdArg, indexArg) {
|
|
177321
177527
|
event.preventDefault();
|
|
177322
177528
|
event.stopPropagation();
|
|
177323
177529
|
const sessionId = this.draggingSessionId || event.dataTransfer?.getData("text/plain") || "";
|
|
177324
|
-
|
|
177325
|
-
|
|
177326
|
-
|
|
177530
|
+
if (!sessionId) {
|
|
177531
|
+
this.clearDragState();
|
|
177532
|
+
return;
|
|
177533
|
+
}
|
|
177534
|
+
const targetSessions = this.sortableSessions(this.sessionsForGroup(groupIdArg));
|
|
177535
|
+
const beforeSessionId = targetSessions[Math.max(0, indexArg)]?.id;
|
|
177536
|
+
const sourceGroupId = this.groups.find((group) => group.sessionIds.includes(sessionId))?.id ?? null;
|
|
177537
|
+
const sourceSessions = this.sortableSessions(this.sessionsForGroup(sourceGroupId), false);
|
|
177538
|
+
const sourceIndex = sourceSessions.findIndex((session) => session.id === sessionId);
|
|
177539
|
+
const compatibilityIndex = sourceGroupId === groupIdArg && sourceIndex >= 0 && indexArg > sourceIndex ? indexArg + 1 : indexArg;
|
|
177327
177540
|
const detail = {
|
|
177328
177541
|
sessionId,
|
|
177329
177542
|
groupId: groupIdArg,
|
|
177330
|
-
index: Math.max(0,
|
|
177543
|
+
index: Math.max(0, compatibilityIndex),
|
|
177544
|
+
...beforeSessionId ? { beforeSessionId } : {}
|
|
177331
177545
|
};
|
|
177546
|
+
this.clearDragState();
|
|
177332
177547
|
this.dispatchEvent(
|
|
177333
177548
|
new CustomEvent("harness-session-move", { detail, bubbles: true, composed: true })
|
|
177334
177549
|
);
|
|
177335
177550
|
}
|
|
177551
|
+
captureCardRects() {
|
|
177552
|
+
const result = /* @__PURE__ */ new Map();
|
|
177553
|
+
for (const item of this.shadowRoot?.querySelectorAll(".item[data-session-id]") ?? []) {
|
|
177554
|
+
if (item.dataset.sessionId === this.draggingSessionId) continue;
|
|
177555
|
+
result.set(item.dataset.sessionId ?? "", item.getBoundingClientRect());
|
|
177556
|
+
}
|
|
177557
|
+
return result;
|
|
177558
|
+
}
|
|
177559
|
+
async animateCardReflow(previousRectsArg, generationArg) {
|
|
177560
|
+
await this.updateComplete;
|
|
177561
|
+
if (generationArg !== this.reflowGeneration || !this.isConnected || globalThis.matchMedia?.("(prefers-reduced-motion: reduce)").matches) return;
|
|
177562
|
+
this.cancelReflowAnimations();
|
|
177563
|
+
for (const item of this.shadowRoot?.querySelectorAll(".item[data-session-id]") ?? []) {
|
|
177564
|
+
const sessionId = item.dataset.sessionId ?? "";
|
|
177565
|
+
if (!sessionId || sessionId === this.draggingSessionId) continue;
|
|
177566
|
+
const previous3 = previousRectsArg.get(sessionId);
|
|
177567
|
+
if (!previous3) continue;
|
|
177568
|
+
const current = item.getBoundingClientRect();
|
|
177569
|
+
const deltaY = previous3.top - current.top;
|
|
177570
|
+
if (Math.abs(deltaY) < 0.5) continue;
|
|
177571
|
+
const animation = item.animate(
|
|
177572
|
+
[
|
|
177573
|
+
{ transform: `translateY(${deltaY}px)` },
|
|
177574
|
+
{ transform: "translateY(0)" }
|
|
177575
|
+
],
|
|
177576
|
+
{ duration: 180, easing: "cubic-bezier(0.22, 1, 0.36, 1)" }
|
|
177577
|
+
);
|
|
177578
|
+
this.reflowAnimations.add(animation);
|
|
177579
|
+
void animation.finished.catch(() => void 0).finally(() => {
|
|
177580
|
+
this.reflowAnimations.delete(animation);
|
|
177581
|
+
});
|
|
177582
|
+
}
|
|
177583
|
+
}
|
|
177584
|
+
cancelReflowAnimations() {
|
|
177585
|
+
for (const animation of this.reflowAnimations) animation.cancel();
|
|
177586
|
+
this.reflowAnimations.clear();
|
|
177587
|
+
}
|
|
177588
|
+
clearDragState() {
|
|
177589
|
+
this.reflowGeneration += 1;
|
|
177590
|
+
this.cancelReflowAnimations();
|
|
177591
|
+
this.draggingSessionId = "";
|
|
177592
|
+
this.draggedItemHeight = 0;
|
|
177593
|
+
this.dropSlot = void 0;
|
|
177594
|
+
this.dragSourceElement = void 0;
|
|
177595
|
+
}
|
|
177336
177596
|
emit(name, session) {
|
|
177337
177597
|
this.dispatchEvent(new CustomEvent(name, { detail: { session }, bubbles: true, composed: true }));
|
|
177338
177598
|
}
|
|
@@ -177344,9 +177604,12 @@ _loading4 = new WeakMap();
|
|
|
177344
177604
|
_emptyText2 = new WeakMap();
|
|
177345
177605
|
_groups2 = new WeakMap();
|
|
177346
177606
|
_enableGrouping = new WeakMap();
|
|
177607
|
+
_ungroupedSessionIds = new WeakMap();
|
|
177347
177608
|
_search = new WeakMap();
|
|
177348
177609
|
_draggingSessionId = new WeakMap();
|
|
177349
177610
|
_dropSlot = new WeakMap();
|
|
177611
|
+
_draggedItemHeight = new WeakMap();
|
|
177612
|
+
_expandedSessionIds = new WeakMap();
|
|
177350
177613
|
_collapsedGroupIds = new WeakMap();
|
|
177351
177614
|
__decorateElement(_init90, 4, "sessions", _sessions_dec, _DeesHarnessSessionList, _sessions);
|
|
177352
177615
|
__decorateElement(_init90, 4, "selectedSessionId", _selectedSessionId_dec, _DeesHarnessSessionList, _selectedSessionId);
|
|
@@ -177354,9 +177617,12 @@ __decorateElement(_init90, 4, "loading", _loading_dec4, _DeesHarnessSessionList,
|
|
|
177354
177617
|
__decorateElement(_init90, 4, "emptyText", _emptyText_dec2, _DeesHarnessSessionList, _emptyText2);
|
|
177355
177618
|
__decorateElement(_init90, 4, "groups", _groups_dec2, _DeesHarnessSessionList, _groups2);
|
|
177356
177619
|
__decorateElement(_init90, 4, "enableGrouping", _enableGrouping_dec, _DeesHarnessSessionList, _enableGrouping);
|
|
177620
|
+
__decorateElement(_init90, 4, "ungroupedSessionIds", _ungroupedSessionIds_dec, _DeesHarnessSessionList, _ungroupedSessionIds);
|
|
177357
177621
|
__decorateElement(_init90, 4, "search", _search_dec, _DeesHarnessSessionList, _search);
|
|
177358
177622
|
__decorateElement(_init90, 4, "draggingSessionId", _draggingSessionId_dec, _DeesHarnessSessionList, _draggingSessionId);
|
|
177359
177623
|
__decorateElement(_init90, 4, "dropSlot", _dropSlot_dec, _DeesHarnessSessionList, _dropSlot);
|
|
177624
|
+
__decorateElement(_init90, 4, "draggedItemHeight", _draggedItemHeight_dec, _DeesHarnessSessionList, _draggedItemHeight);
|
|
177625
|
+
__decorateElement(_init90, 4, "expandedSessionIds", _expandedSessionIds_dec, _DeesHarnessSessionList, _expandedSessionIds);
|
|
177360
177626
|
__decorateElement(_init90, 4, "collapsedGroupIds", _collapsedGroupIds_dec, _DeesHarnessSessionList, _collapsedGroupIds);
|
|
177361
177627
|
_DeesHarnessSessionList = __decorateElement(_init90, 0, "DeesHarnessSessionList", _DeesHarnessSessionList_decorators, _DeesHarnessSessionList);
|
|
177362
177628
|
__name(_DeesHarnessSessionList, "DeesHarnessSessionList");
|
|
@@ -177371,26 +177637,48 @@ __publicField(_DeesHarnessSessionList, "styles", [
|
|
|
177371
177637
|
flex-direction: column;
|
|
177372
177638
|
min-height: 0;
|
|
177373
177639
|
font-family: var(--dees-font-family);
|
|
177640
|
+
--session-normal: var(--dees-color-text-muted);
|
|
177641
|
+
--session-working: var(--dees-color-accent-primary);
|
|
177642
|
+
--session-finished: var(--dees-color-accent-success);
|
|
177643
|
+
--session-attention: #bf5af2;
|
|
177644
|
+
--session-error: var(--dees-color-accent-error);
|
|
177645
|
+
}
|
|
177646
|
+
|
|
177647
|
+
:host([gobright]) {
|
|
177648
|
+
--session-attention: #af52de;
|
|
177374
177649
|
}
|
|
177375
177650
|
|
|
177376
177651
|
.searchRow {
|
|
177652
|
+
position: relative;
|
|
177377
177653
|
flex: 0 0 auto;
|
|
177378
|
-
padding: var(--dees-spacing-sm);
|
|
177654
|
+
padding: var(--dees-spacing-sm) var(--dees-spacing-md) var(--dees-spacing-md);
|
|
177655
|
+
}
|
|
177656
|
+
|
|
177657
|
+
.searchIcon {
|
|
177658
|
+
position: absolute;
|
|
177659
|
+
top: 50%;
|
|
177660
|
+
left: calc(var(--dees-spacing-md) + 10px);
|
|
177661
|
+
color: var(--dees-color-text-muted);
|
|
177662
|
+
transform: translateY(-62%);
|
|
177663
|
+
pointer-events: none;
|
|
177379
177664
|
}
|
|
177380
177665
|
|
|
177381
177666
|
.searchRow input {
|
|
177382
177667
|
width: 100%;
|
|
177383
|
-
height: var(--dees-control-height-
|
|
177384
|
-
padding: 0 var(--dees-spacing-md);
|
|
177668
|
+
height: var(--dees-control-height-lg);
|
|
177669
|
+
padding: 0 var(--dees-spacing-md) 0 34px;
|
|
177385
177670
|
border: 1px solid var(--dees-color-border-default);
|
|
177386
|
-
border-radius: var(--dees-radius-
|
|
177671
|
+
border-radius: var(--dees-radius-lg);
|
|
177387
177672
|
corner-shape: var(--dees-corner-shape);
|
|
177388
|
-
background: var(--dees-color-bg-primary);
|
|
177673
|
+
background: color-mix(in srgb, var(--dees-color-bg-primary) 78%, transparent);
|
|
177389
177674
|
color: var(--dees-color-text-primary);
|
|
177390
177675
|
font-family: inherit;
|
|
177391
|
-
font-size: var(--dees-font-control-size,
|
|
177676
|
+
font-size: var(--dees-font-control-size-sm, 12px);
|
|
177392
177677
|
outline: none;
|
|
177393
177678
|
box-sizing: border-box;
|
|
177679
|
+
box-shadow: var(--dees-shadow-xs);
|
|
177680
|
+
transition: border-color var(--dees-transition-fast) var(--dees-ease-standard),
|
|
177681
|
+
box-shadow var(--dees-transition-fast) var(--dees-ease-standard);
|
|
177394
177682
|
}
|
|
177395
177683
|
|
|
177396
177684
|
.searchRow input:focus {
|
|
@@ -177404,46 +177692,146 @@ __publicField(_DeesHarnessSessionList, "styles", [
|
|
|
177404
177692
|
overflow-y: auto;
|
|
177405
177693
|
scrollbar-width: thin;
|
|
177406
177694
|
scrollbar-color: var(--dees-color-scrollbar-thumb) transparent;
|
|
177407
|
-
padding: 0 var(--dees-spacing-
|
|
177695
|
+
padding: 0 var(--dees-spacing-md) var(--dees-spacing-md);
|
|
177696
|
+
}
|
|
177697
|
+
|
|
177698
|
+
.section {
|
|
177699
|
+
position: relative;
|
|
177408
177700
|
display: grid;
|
|
177409
|
-
gap:
|
|
177701
|
+
gap: var(--dees-spacing-sm);
|
|
177410
177702
|
align-content: start;
|
|
177411
177703
|
}
|
|
177412
177704
|
|
|
177413
177705
|
.item {
|
|
177706
|
+
--card-accent: var(--session-normal);
|
|
177707
|
+
position: relative;
|
|
177414
177708
|
width: 100%;
|
|
177415
|
-
|
|
177416
|
-
|
|
177417
|
-
border:
|
|
177418
|
-
border-radius: var(--dees-radius-
|
|
177709
|
+
min-width: 0;
|
|
177710
|
+
overflow: hidden;
|
|
177711
|
+
border: 1px solid color-mix(in srgb, var(--card-accent) 24%, var(--dees-color-border-subtle));
|
|
177712
|
+
border-radius: var(--dees-radius-xl);
|
|
177419
177713
|
corner-shape: var(--dees-corner-shape);
|
|
177420
|
-
background: transparent;
|
|
177714
|
+
background: color-mix(in srgb, var(--dees-color-bg-primary) 90%, transparent);
|
|
177421
177715
|
color: var(--dees-color-text-primary);
|
|
177422
|
-
|
|
177423
|
-
|
|
177424
|
-
|
|
177425
|
-
|
|
177716
|
+
box-shadow:
|
|
177717
|
+
var(--dees-shadow-sm),
|
|
177718
|
+
inset 3px 0 0 var(--card-accent);
|
|
177719
|
+
box-sizing: border-box;
|
|
177720
|
+
transition:
|
|
177721
|
+
border-color var(--dees-transition-fast) var(--dees-ease-standard),
|
|
177722
|
+
background var(--dees-transition-fast) var(--dees-ease-standard),
|
|
177723
|
+
box-shadow var(--dees-transition-fast) var(--dees-ease-standard);
|
|
177426
177724
|
}
|
|
177427
177725
|
|
|
177428
177726
|
.item:hover {
|
|
177429
|
-
|
|
177727
|
+
border-color: color-mix(in srgb, var(--card-accent) 42%, var(--dees-color-border-default));
|
|
177728
|
+
background: color-mix(in srgb, var(--dees-color-bg-primary) 96%, var(--card-accent) 4%);
|
|
177430
177729
|
}
|
|
177431
177730
|
|
|
177432
177731
|
.item.selected {
|
|
177433
|
-
|
|
177434
|
-
box-shadow:
|
|
177732
|
+
border-color: color-mix(in srgb, var(--dees-color-accent-primary) 65%, var(--dees-color-border-default));
|
|
177733
|
+
box-shadow:
|
|
177734
|
+
0 0 0 2px color-mix(in srgb, var(--dees-color-accent-primary) 18%, transparent),
|
|
177735
|
+
var(--dees-shadow-sm),
|
|
177736
|
+
inset 3px 0 0 var(--card-accent);
|
|
177435
177737
|
}
|
|
177436
177738
|
|
|
177437
177739
|
.item.dragging {
|
|
177438
|
-
|
|
177740
|
+
position: absolute;
|
|
177741
|
+
inset-inline: 0;
|
|
177742
|
+
z-index: -1;
|
|
177743
|
+
opacity: 0;
|
|
177744
|
+
pointer-events: none;
|
|
177439
177745
|
}
|
|
177440
177746
|
|
|
177441
|
-
.
|
|
177747
|
+
.item.state-working {
|
|
177748
|
+
--card-accent: var(--session-working);
|
|
177749
|
+
}
|
|
177750
|
+
|
|
177751
|
+
.item.state-finished {
|
|
177752
|
+
--card-accent: var(--session-finished);
|
|
177753
|
+
}
|
|
177754
|
+
|
|
177755
|
+
.item.state-attention {
|
|
177756
|
+
--card-accent: var(--session-attention);
|
|
177757
|
+
}
|
|
177758
|
+
|
|
177759
|
+
.item.state-error {
|
|
177760
|
+
--card-accent: var(--session-error);
|
|
177761
|
+
}
|
|
177762
|
+
|
|
177763
|
+
@keyframes attentionPulse {
|
|
177764
|
+
0%, 100% {
|
|
177765
|
+
box-shadow:
|
|
177766
|
+
0 0 0 0 color-mix(in srgb, var(--session-attention) 0%, transparent),
|
|
177767
|
+
var(--dees-shadow-sm),
|
|
177768
|
+
inset 3px 0 0 var(--session-attention);
|
|
177769
|
+
}
|
|
177770
|
+
50% {
|
|
177771
|
+
box-shadow:
|
|
177772
|
+
0 0 0 4px color-mix(in srgb, var(--session-attention) 26%, transparent),
|
|
177773
|
+
0 7px 18px color-mix(in srgb, var(--session-attention) 16%, transparent),
|
|
177774
|
+
inset 3px 0 0 var(--session-attention);
|
|
177775
|
+
}
|
|
177776
|
+
}
|
|
177777
|
+
|
|
177778
|
+
.item.state-attention:not(.selected) {
|
|
177779
|
+
animation: attentionPulse 1.15s ease-in-out infinite;
|
|
177780
|
+
}
|
|
177781
|
+
|
|
177782
|
+
.itemHeader {
|
|
177783
|
+
display: grid;
|
|
177784
|
+
grid-template-columns: minmax(0, 1fr) 30px;
|
|
177785
|
+
min-height: 46px;
|
|
177786
|
+
}
|
|
177787
|
+
|
|
177788
|
+
.itemPrimary,
|
|
177789
|
+
.expandToggle {
|
|
177790
|
+
appearance: none;
|
|
177791
|
+
border: 0;
|
|
177792
|
+
background: transparent;
|
|
177793
|
+
color: inherit;
|
|
177794
|
+
font-family: inherit;
|
|
177795
|
+
}
|
|
177796
|
+
|
|
177797
|
+
.itemPrimary {
|
|
177442
177798
|
display: flex;
|
|
177443
|
-
|
|
177799
|
+
min-width: 0;
|
|
177800
|
+
align-items: center;
|
|
177444
177801
|
gap: var(--dees-spacing-sm);
|
|
177802
|
+
padding: var(--dees-spacing-sm) var(--dees-spacing-xs) var(--dees-spacing-sm) var(--dees-spacing-md);
|
|
177803
|
+
text-align: left;
|
|
177804
|
+
cursor: pointer;
|
|
177805
|
+
}
|
|
177806
|
+
|
|
177807
|
+
.itemPrimary:focus-visible,
|
|
177808
|
+
.expandToggle:focus-visible {
|
|
177809
|
+
outline: 2px solid var(--dees-color-accent-primary);
|
|
177810
|
+
outline-offset: -3px;
|
|
177811
|
+
border-radius: 9px;
|
|
177812
|
+
}
|
|
177813
|
+
|
|
177814
|
+
.stateDot {
|
|
177815
|
+
width: 8px;
|
|
177816
|
+
height: 8px;
|
|
177817
|
+
flex: 0 0 auto;
|
|
177818
|
+
border-radius: 50%;
|
|
177819
|
+
background: var(--card-accent);
|
|
177820
|
+
box-shadow: 0 0 0 3px color-mix(in srgb, var(--card-accent) 15%, transparent);
|
|
177821
|
+
}
|
|
177822
|
+
|
|
177823
|
+
.itemCopy {
|
|
177824
|
+
min-width: 0;
|
|
177825
|
+
flex: 1;
|
|
177826
|
+
}
|
|
177827
|
+
|
|
177828
|
+
.itemTitle {
|
|
177829
|
+
display: flex;
|
|
177830
|
+
min-width: 0;
|
|
177831
|
+
align-items: center;
|
|
177832
|
+
gap: 6px;
|
|
177445
177833
|
font-size: var(--dees-font-control-size-sm, 12px);
|
|
177446
|
-
font-weight:
|
|
177834
|
+
font-weight: 590;
|
|
177447
177835
|
}
|
|
177448
177836
|
|
|
177449
177837
|
.itemTitle .titleText {
|
|
@@ -177455,24 +177843,99 @@ __publicField(_DeesHarnessSessionList, "styles", [
|
|
|
177455
177843
|
|
|
177456
177844
|
.itemTitle .itemIcon {
|
|
177457
177845
|
flex: 0 0 auto;
|
|
177458
|
-
align-self: center;
|
|
177459
177846
|
color: var(--dees-color-text-secondary);
|
|
177460
177847
|
}
|
|
177461
177848
|
|
|
177462
177849
|
.itemTime {
|
|
177463
|
-
margin-
|
|
177464
|
-
flex: 0 0 auto;
|
|
177850
|
+
margin-top: 2px;
|
|
177465
177851
|
color: var(--dees-color-text-muted);
|
|
177466
177852
|
font-size: var(--dees-font-caption2-size, 10px);
|
|
177467
177853
|
}
|
|
177468
177854
|
|
|
177855
|
+
.expandToggle {
|
|
177856
|
+
display: grid;
|
|
177857
|
+
place-items: center;
|
|
177858
|
+
margin: 7px 7px 7px 0;
|
|
177859
|
+
border-radius: 9px;
|
|
177860
|
+
color: var(--dees-color-text-muted);
|
|
177861
|
+
cursor: pointer;
|
|
177862
|
+
}
|
|
177863
|
+
|
|
177864
|
+
.expandToggle:hover {
|
|
177865
|
+
background: color-mix(in srgb, var(--card-accent) 11%, transparent);
|
|
177866
|
+
color: var(--dees-color-text-primary);
|
|
177867
|
+
}
|
|
177868
|
+
|
|
177869
|
+
.expandToggle dees-icon {
|
|
177870
|
+
transition: transform var(--dees-transition-fast) var(--dees-ease-standard);
|
|
177871
|
+
}
|
|
177872
|
+
|
|
177873
|
+
.item.expanded .expandToggle dees-icon {
|
|
177874
|
+
transform: rotate(180deg);
|
|
177875
|
+
}
|
|
177876
|
+
|
|
177877
|
+
.itemDetails {
|
|
177878
|
+
display: grid;
|
|
177879
|
+
gap: 6px;
|
|
177880
|
+
margin: 0 10px 10px 28px;
|
|
177881
|
+
padding: 9px 10px;
|
|
177882
|
+
border-top: 1px solid color-mix(in srgb, var(--card-accent) 20%, var(--dees-color-border-subtle));
|
|
177883
|
+
color: var(--dees-color-text-secondary);
|
|
177884
|
+
}
|
|
177885
|
+
|
|
177886
|
+
.stateLine {
|
|
177887
|
+
display: flex;
|
|
177888
|
+
align-items: center;
|
|
177889
|
+
gap: 6px;
|
|
177890
|
+
color: var(--card-accent);
|
|
177891
|
+
font-size: var(--dees-font-caption1-size, 11px);
|
|
177892
|
+
font-weight: 650;
|
|
177893
|
+
}
|
|
177894
|
+
|
|
177469
177895
|
.itemPreview {
|
|
177470
|
-
margin-top: 1px;
|
|
177471
177896
|
color: var(--dees-color-text-secondary);
|
|
177472
177897
|
font-size: var(--dees-font-caption1-size, 11px);
|
|
177473
177898
|
overflow: hidden;
|
|
177474
|
-
|
|
177899
|
+
display: -webkit-box;
|
|
177900
|
+
-webkit-line-clamp: 2;
|
|
177901
|
+
-webkit-box-orient: vertical;
|
|
177902
|
+
}
|
|
177903
|
+
|
|
177904
|
+
.itemMeta {
|
|
177905
|
+
color: var(--dees-color-text-muted);
|
|
177906
|
+
font-size: var(--dees-font-caption2-size, 10px);
|
|
177907
|
+
}
|
|
177908
|
+
|
|
177909
|
+
.visuallyHidden {
|
|
177910
|
+
position: absolute;
|
|
177911
|
+
width: 1px;
|
|
177912
|
+
height: 1px;
|
|
177913
|
+
padding: 0;
|
|
177914
|
+
margin: -1px;
|
|
177915
|
+
overflow: hidden;
|
|
177916
|
+
clip: rect(0, 0, 0, 0);
|
|
177475
177917
|
white-space: nowrap;
|
|
177918
|
+
border: 0;
|
|
177919
|
+
}
|
|
177920
|
+
|
|
177921
|
+
.dropPlaceholder,
|
|
177922
|
+
.emptyDropZone {
|
|
177923
|
+
display: grid;
|
|
177924
|
+
place-items: center;
|
|
177925
|
+
min-height: 46px;
|
|
177926
|
+
border: 1px dashed color-mix(in srgb, var(--dees-color-accent-primary) 68%, transparent);
|
|
177927
|
+
border-radius: var(--dees-radius-xl);
|
|
177928
|
+
background: color-mix(in srgb, var(--dees-color-accent-primary) 8%, transparent);
|
|
177929
|
+
color: var(--dees-color-accent-primary);
|
|
177930
|
+
box-sizing: border-box;
|
|
177931
|
+
}
|
|
177932
|
+
|
|
177933
|
+
.dropPlaceholder::after,
|
|
177934
|
+
.emptyDropZone::after {
|
|
177935
|
+
content: 'Drop conversation here';
|
|
177936
|
+
font-size: var(--dees-font-caption2-size, 10px);
|
|
177937
|
+
font-weight: 650;
|
|
177938
|
+
letter-spacing: 0.02em;
|
|
177476
177939
|
}
|
|
177477
177940
|
|
|
177478
177941
|
.emptyNote {
|
|
@@ -177487,8 +177950,8 @@ __publicField(_DeesHarnessSessionList, "styles", [
|
|
|
177487
177950
|
align-items: center;
|
|
177488
177951
|
gap: var(--dees-spacing-xs);
|
|
177489
177952
|
width: 100%;
|
|
177490
|
-
margin
|
|
177491
|
-
padding:
|
|
177953
|
+
margin: var(--dees-spacing-md) 0 7px;
|
|
177954
|
+
padding: var(--dees-spacing-xs) 6px;
|
|
177492
177955
|
border: 0;
|
|
177493
177956
|
border-radius: var(--dees-radius-md);
|
|
177494
177957
|
background: transparent;
|
|
@@ -177528,15 +177991,12 @@ __publicField(_DeesHarnessSessionList, "styles", [
|
|
|
177528
177991
|
}
|
|
177529
177992
|
|
|
177530
177993
|
.dropLine {
|
|
177531
|
-
|
|
177532
|
-
margin: 0 var(--dees-spacing-sm);
|
|
177533
|
-
border-radius: 1px;
|
|
177534
|
-
background: var(--dees-color-accent-primary);
|
|
177994
|
+
display: none;
|
|
177535
177995
|
}
|
|
177536
177996
|
|
|
177537
177997
|
.newGroupRow {
|
|
177538
177998
|
flex: 0 0 auto;
|
|
177539
|
-
padding:
|
|
177999
|
+
padding: 0 var(--dees-spacing-md) var(--dees-spacing-md);
|
|
177540
178000
|
}
|
|
177541
178001
|
|
|
177542
178002
|
.newGroupButton {
|
|
@@ -177544,10 +178004,12 @@ __publicField(_DeesHarnessSessionList, "styles", [
|
|
|
177544
178004
|
align-items: center;
|
|
177545
178005
|
gap: var(--dees-spacing-xs);
|
|
177546
178006
|
width: 100%;
|
|
178007
|
+
min-height: 34px;
|
|
178008
|
+
justify-content: center;
|
|
177547
178009
|
padding: var(--dees-spacing-xs) var(--dees-spacing-sm);
|
|
177548
178010
|
border: 1px dashed var(--dees-color-border-default);
|
|
177549
|
-
border-radius:
|
|
177550
|
-
background: transparent;
|
|
178011
|
+
border-radius: 11px;
|
|
178012
|
+
background: color-mix(in srgb, var(--dees-color-bg-primary) 55%, transparent);
|
|
177551
178013
|
color: var(--dees-color-text-secondary);
|
|
177552
178014
|
cursor: pointer;
|
|
177553
178015
|
font-family: inherit;
|
|
@@ -177558,6 +178020,15 @@ __publicField(_DeesHarnessSessionList, "styles", [
|
|
|
177558
178020
|
border-color: var(--dees-color-accent-primary);
|
|
177559
178021
|
color: var(--dees-color-text-primary);
|
|
177560
178022
|
}
|
|
178023
|
+
|
|
178024
|
+
@media (prefers-reduced-motion: reduce) {
|
|
178025
|
+
.item,
|
|
178026
|
+
.item.state-attention,
|
|
178027
|
+
.expandToggle dees-icon {
|
|
178028
|
+
animation: none;
|
|
178029
|
+
transition: none;
|
|
178030
|
+
}
|
|
178031
|
+
}
|
|
177561
178032
|
`
|
|
177562
178033
|
]);
|
|
177563
178034
|
__runInitializers(_init90, 1, _DeesHarnessSessionList);
|
|
@@ -199639,7 +200110,7 @@ init_group_runtime();
|
|
|
199639
200110
|
// ts_web/00_commitinfo_data.ts
|
|
199640
200111
|
var commitinfo = {
|
|
199641
200112
|
name: "@design.estate/dees-catalog",
|
|
199642
|
-
version: "4.
|
|
200113
|
+
version: "4.10.0",
|
|
199643
200114
|
description: "A comprehensive library that provides dynamic web components for building sophisticated and modern web applications using JavaScript and TypeScript."
|
|
199644
200115
|
};
|
|
199645
200116
|
|