@design.estate/dees-catalog 13.0.0 → 13.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (31) hide show
  1. package/dist_bundle/bundle.js +823 -170
  2. package/dist_bundle/bundle.js.map +1 -1
  3. package/dist_ts_web/00_commitinfo_data.js +1 -1
  4. package/dist_ts_web/elements/00group-input/dees-input-reference/dees-input-reference.js +4 -4
  5. package/dist_ts_web/elements/00group-kanban/dees-kanban/dees-kanban.d.ts +3 -1
  6. package/dist_ts_web/elements/00group-kanban/dees-kanban/dees-kanban.js +75 -46
  7. package/dist_ts_web/elements/00group-kanban/dees-kanban-card/dees-kanban-card.d.ts +4 -0
  8. package/dist_ts_web/elements/00group-kanban/dees-kanban-card/dees-kanban-card.js +72 -27
  9. package/dist_ts_web/elements/00group-kanban/dees-kanban-column/dees-kanban-column.d.ts +7 -2
  10. package/dist_ts_web/elements/00group-kanban/dees-kanban-column/dees-kanban-column.js +87 -45
  11. package/dist_ts_web/elements/00group-kanban/dees-kanban-discussion/dees-kanban-discussion.js +26 -15
  12. package/dist_ts_web/elements/00group-kanban/dees-kanban-ticket-detail/dees-kanban-ticket-detail.d.ts +2 -0
  13. package/dist_ts_web/elements/00group-kanban/dees-kanban-ticket-detail/dees-kanban-ticket-detail.js +73 -40
  14. package/dist_ts_web/elements/00group-kanban/kanban.dragcontroller.d.ts +67 -0
  15. package/dist_ts_web/elements/00group-kanban/kanban.dragcontroller.js +548 -0
  16. package/dist_ts_web/elements/00group-kanban/kanban.helpers.d.ts +3 -1
  17. package/dist_ts_web/elements/00group-kanban/kanban.helpers.js +3 -1
  18. package/dist_ts_web/elements/00group-kanban/kanban.styles.js +11 -3
  19. package/package.json +1 -1
  20. package/readme.md +19 -4
  21. package/scripts/check-packed-consumer.mjs +1 -1
  22. package/ts_web/00_commitinfo_data.ts +1 -1
  23. package/ts_web/elements/00group-input/dees-input-reference/dees-input-reference.ts +3 -3
  24. package/ts_web/elements/00group-kanban/dees-kanban/dees-kanban.ts +61 -34
  25. package/ts_web/elements/00group-kanban/dees-kanban-card/dees-kanban-card.ts +47 -24
  26. package/ts_web/elements/00group-kanban/dees-kanban-column/dees-kanban-column.ts +47 -27
  27. package/ts_web/elements/00group-kanban/dees-kanban-discussion/dees-kanban-discussion.ts +25 -14
  28. package/ts_web/elements/00group-kanban/dees-kanban-ticket-detail/dees-kanban-ticket-detail.ts +64 -38
  29. package/ts_web/elements/00group-kanban/kanban.dragcontroller.ts +481 -0
  30. package/ts_web/elements/00group-kanban/kanban.helpers.ts +5 -1
  31. package/ts_web/elements/00group-kanban/kanban.styles.ts +10 -2
@@ -34,7 +34,7 @@ var __runInitializers = (this && this.__runInitializers) || function (thisArg, i
34
34
  };
35
35
  import { DeesElement, customElement, property, html, css } from '@design.estate/dees-element';
36
36
  import { kanbanStyles } from '../kanban.styles.js';
37
- import { kanbanEvent } from '../kanban.helpers.js';
37
+ import { kanbanEvent, kanbanInitials, kanbanPriorityIcon } from '../kanban.helpers.js';
38
38
  import '../../00group-button/dees-button/dees-button.js';
39
39
  import '../../00group-utility/dees-icon/dees-icon.js';
40
40
  let DeesKanbanCard = (() => {
@@ -58,9 +58,18 @@ let DeesKanbanCard = (() => {
58
58
  let _movable_decorators;
59
59
  let _movable_initializers = [];
60
60
  let _movable_extraInitializers = [];
61
+ let _moveDisabled_decorators;
62
+ let _moveDisabled_initializers = [];
63
+ let _moveDisabled_extraInitializers = [];
61
64
  let _pending_decorators;
62
65
  let _pending_initializers = [];
63
66
  let _pending_extraInitializers = [];
67
+ let _saving_decorators;
68
+ let _saving_initializers = [];
69
+ let _saving_extraInitializers = [];
70
+ let _pointerManaged_decorators;
71
+ let _pointerManaged_initializers = [];
72
+ let _pointerManaged_extraInitializers = [];
64
73
  var DeesKanbanCard = class extends _classSuper {
65
74
  static { _classThis = this; }
66
75
  static {
@@ -70,13 +79,19 @@ let DeesKanbanCard = (() => {
70
79
  _subtasks_decorators = [property({ attribute: false })];
71
80
  _columns_decorators = [property({ attribute: false })];
72
81
  _movable_decorators = [property({ type: Boolean })];
82
+ _moveDisabled_decorators = [property({ type: Boolean })];
73
83
  _pending_decorators = [property({ type: Boolean })];
84
+ _saving_decorators = [property({ type: Boolean })];
85
+ _pointerManaged_decorators = [property({ attribute: false })];
74
86
  __esDecorate(this, null, _ticket_decorators, { kind: "accessor", name: "ticket", static: false, private: false, access: { has: obj => "ticket" in obj, get: obj => obj.ticket, set: (obj, value) => { obj.ticket = value; } }, metadata: _metadata }, _ticket_initializers, _ticket_extraInitializers);
75
87
  __esDecorate(this, null, _epic_decorators, { kind: "accessor", name: "epic", static: false, private: false, access: { has: obj => "epic" in obj, get: obj => obj.epic, set: (obj, value) => { obj.epic = value; } }, metadata: _metadata }, _epic_initializers, _epic_extraInitializers);
76
88
  __esDecorate(this, null, _subtasks_decorators, { kind: "accessor", name: "subtasks", static: false, private: false, access: { has: obj => "subtasks" in obj, get: obj => obj.subtasks, set: (obj, value) => { obj.subtasks = value; } }, metadata: _metadata }, _subtasks_initializers, _subtasks_extraInitializers);
77
89
  __esDecorate(this, null, _columns_decorators, { kind: "accessor", name: "columns", static: false, private: false, access: { has: obj => "columns" in obj, get: obj => obj.columns, set: (obj, value) => { obj.columns = value; } }, metadata: _metadata }, _columns_initializers, _columns_extraInitializers);
78
90
  __esDecorate(this, null, _movable_decorators, { kind: "accessor", name: "movable", static: false, private: false, access: { has: obj => "movable" in obj, get: obj => obj.movable, set: (obj, value) => { obj.movable = value; } }, metadata: _metadata }, _movable_initializers, _movable_extraInitializers);
91
+ __esDecorate(this, null, _moveDisabled_decorators, { kind: "accessor", name: "moveDisabled", static: false, private: false, access: { has: obj => "moveDisabled" in obj, get: obj => obj.moveDisabled, set: (obj, value) => { obj.moveDisabled = value; } }, metadata: _metadata }, _moveDisabled_initializers, _moveDisabled_extraInitializers);
79
92
  __esDecorate(this, null, _pending_decorators, { kind: "accessor", name: "pending", static: false, private: false, access: { has: obj => "pending" in obj, get: obj => obj.pending, set: (obj, value) => { obj.pending = value; } }, metadata: _metadata }, _pending_initializers, _pending_extraInitializers);
93
+ __esDecorate(this, null, _saving_decorators, { kind: "accessor", name: "saving", static: false, private: false, access: { has: obj => "saving" in obj, get: obj => obj.saving, set: (obj, value) => { obj.saving = value; } }, metadata: _metadata }, _saving_initializers, _saving_extraInitializers);
94
+ __esDecorate(this, null, _pointerManaged_decorators, { kind: "accessor", name: "pointerManaged", static: false, private: false, access: { has: obj => "pointerManaged" in obj, get: obj => obj.pointerManaged, set: (obj, value) => { obj.pointerManaged = value; } }, metadata: _metadata }, _pointerManaged_initializers, _pointerManaged_extraInitializers);
80
95
  __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
81
96
  DeesKanbanCard = _classThis = _classDescriptor.value;
82
97
  if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
@@ -96,21 +111,48 @@ let DeesKanbanCard = (() => {
96
111
  #movable_accessor_storage = (__runInitializers(this, _columns_extraInitializers), __runInitializers(this, _movable_initializers, false));
97
112
  get movable() { return this.#movable_accessor_storage; }
98
113
  set movable(value) { this.#movable_accessor_storage = value; }
99
- #pending_accessor_storage = (__runInitializers(this, _movable_extraInitializers), __runInitializers(this, _pending_initializers, false));
114
+ #moveDisabled_accessor_storage = (__runInitializers(this, _movable_extraInitializers), __runInitializers(this, _moveDisabled_initializers, false));
115
+ get moveDisabled() { return this.#moveDisabled_accessor_storage; }
116
+ set moveDisabled(value) { this.#moveDisabled_accessor_storage = value; }
117
+ #pending_accessor_storage = (__runInitializers(this, _moveDisabled_extraInitializers), __runInitializers(this, _pending_initializers, false));
100
118
  get pending() { return this.#pending_accessor_storage; }
101
119
  set pending(value) { this.#pending_accessor_storage = value; }
120
+ #saving_accessor_storage = (__runInitializers(this, _pending_extraInitializers), __runInitializers(this, _saving_initializers, false));
121
+ get saving() { return this.#saving_accessor_storage; }
122
+ set saving(value) { this.#saving_accessor_storage = value; }
123
+ #pointerManaged_accessor_storage = (__runInitializers(this, _saving_extraInitializers), __runInitializers(this, _pointerManaged_initializers, false));
124
+ /** The assembled board owns pointer previews; standalone cards retain native drag events. */
125
+ get pointerManaged() { return this.#pointerManaged_accessor_storage; }
126
+ set pointerManaged(value) { this.#pointerManaged_accessor_storage = value; }
102
127
  static styles = [...kanbanStyles, css `
103
- article { padding: 14px; border: 1px solid var(--dees-color-border-default); border-radius: var(--dees-radius-lg); background: var(--dees-color-bg-primary); box-shadow: var(--dees-shadow-xs); }
128
+ article { padding: 12px; border: 1px solid var(--dees-color-border-subtle); border-radius: var(--dees-radius-xl); corner-shape: var(--dees-corner-shape); background: var(--dees-color-bg-primary); box-shadow: var(--dees-shadow-xs); }
104
129
  article:hover { border-color: var(--dees-color-border-strong); }
105
- article[aria-busy=true] { opacity: .65; }
106
- .title { display: block; width: 100%; border: 0; background: transparent; padding: 8px 0 12px; color: inherit; text-align: left; cursor: pointer; font: inherit; font-weight: 550; line-height: 1.45; overflow-wrap: anywhere; }
107
- .key { font-variant-numeric: tabular-nums; }
108
- .link.epic { margin-bottom: 5px; max-width: 100%; font-size: var(--dees-font-caption1-size); }
109
- .labels { margin-bottom: 10px; }
110
- .priority[data-priority=urgent], .priority[data-priority=high] { color: var(--dees-color-text-warning); }
111
- .avatar { width: 24px; height: 24px; border-radius: 50%; background: var(--dees-color-badge-default-bg); display: inline-grid; place-items: center; font-size: 10px; font-weight: 600; }
112
- summary { cursor: pointer; padding: 10px 0 2px; font-size: var(--dees-font-footnote-size); color: var(--dees-color-text-secondary); }
113
- .subtask { display: flex; gap: 6px; align-items: baseline; padding-top: 8px; font-size: var(--dees-font-footnote-size); }
130
+ article[aria-busy=true] > :not(.meta), article[aria-busy=true] .meta > :not(.saving) { opacity: .65; }
131
+ article[data-movable=true] { cursor: grab; }
132
+ .meta { display: flex; align-items: center; gap: 8px; min-height: 24px; font-size: var(--dees-font-caption1-size); color: var(--dees-color-text-secondary); }
133
+ .key { flex-shrink: 0; font-weight: 500; font-variant-numeric: tabular-nums; }
134
+ .link.epic { min-width: 0; color: var(--dees-color-text-secondary); font-size: var(--dees-font-caption1-size); overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
135
+ .link.epic:hover { color: var(--dees-color-link); text-decoration: underline; }
136
+ .move { flex-shrink: 0; margin-left: auto; }
137
+ .saving { margin-left: auto; font-size: var(--dees-font-caption1-size); white-space: nowrap; }
138
+ .move::part(button) { width: 24px; height: 24px; min-height: 24px; }
139
+ .title { display: block; width: 100%; border: 0; background: transparent; padding: 4px 0 0; color: inherit; text-align: left; cursor: pointer; font: inherit; font-weight: 600; line-height: 22px; overflow-wrap: anywhere; }
140
+ .title:hover { color: var(--dees-color-link); }
141
+ .footer { margin-top: 10px; gap: 6px; }
142
+ .badge { padding: 1px 6px; }
143
+ .assignee { display: flex; align-items: center; gap: 5px; margin-left: auto; min-width: 0; color: var(--dees-color-text-secondary); font-size: var(--dees-font-caption1-size); }
144
+ .assignee-name { max-width: 110px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
145
+ .avatar { width: 20px; height: 20px; font-size: 9px; }
146
+ details { border-top: 1px solid var(--dees-color-border-subtle); margin-top: 10px; }
147
+ summary { cursor: pointer; display: flex; align-items: center; gap: 6px; padding: 9px 0 0; font-size: var(--dees-font-caption1-size); color: var(--dees-color-text-secondary); list-style: none; }
148
+ summary::-webkit-details-marker { display: none; }
149
+ summary .disclosure { margin-left: auto; }
150
+ details[open] summary .disclosure { transform: rotate(90deg); }
151
+ .subtask { display: flex; gap: 7px; align-items: center; padding-top: 8px; font-size: var(--dees-font-footnote-size); }
152
+ .subtask dees-icon { flex-shrink: 0; color: var(--dees-color-text-secondary); font-size: 14px; }
153
+ .subtask .link { color: var(--dees-color-text-primary); }
154
+ .subtask .link:hover { color: var(--dees-color-link); }
155
+ @media (pointer: coarse) { .move::part(button) { width: 32px; height: 32px; min-height: 32px; } summary { min-height: 36px; } }
114
156
  `];
115
157
  open(ticketId) { kanbanEvent(this, 'kanban-ticket-open', { ticketId }); }
116
158
  render() {
@@ -118,34 +160,37 @@ let DeesKanbanCard = (() => {
118
160
  if (!ticket)
119
161
  return html ``;
120
162
  const completed = this.subtasks.filter(task => this.columns.some(column => column.id === task.columnId && column.done)).length;
121
- return html `<article aria-busy=${String(this.pending)} draggable=${this.movable && !this.pending ? 'true' : 'false'}
163
+ return html `<article aria-busy=${String(this.pending)} data-movable=${String(this.movable && !this.moveDisabled && !this.pending)}
164
+ draggable=${String(this.movable && !this.moveDisabled && !this.pending && !this.pointerManaged)}
122
165
  @dragstart=${(event) => {
123
- if (!this.movable || this.pending || !event.dataTransfer) {
166
+ if (this.pointerManaged || !this.movable || this.moveDisabled || this.pending || !event.dataTransfer) {
124
167
  event.preventDefault();
125
168
  return;
126
169
  }
127
170
  event.dataTransfer.setData('application/x-dees-kanban-ticket', ticket.id);
128
171
  event.dataTransfer.effectAllowed = 'move';
129
172
  kanbanEvent(this, 'kanban-drag-start', { ticketId: ticket.id });
130
- }} @dragend=${() => kanbanEvent(this, 'kanban-drag-end', {})}>
131
- ${this.epic ? html `<button class="link epic" @click=${() => this.open(this.epic.id)}>${this.epic.title}</button>` : ''}
132
- <div class="row caption"><span class="key">${ticket.key}</span><span class="spacer"></span>
133
- ${ticket.priority && ticket.priority !== 'none' ? html `<span class="priority" data-priority=${ticket.priority}>${ticket.priority}</span>` : ''}</div>
134
- <button class="title" @click=${() => this.open(ticket.id)}>${ticket.title}</button>
135
- ${ticket.labels?.length ? html `<div class="row labels">${ticket.labels.map(label => html `<span class="badge">${label}</span>`)}</div>` : ''}
136
- <div class="row caption"><span class="avatar" title=${ticket.assignee?.name ?? 'Unassigned'}>${ticket.assignee?.name.split(/\s+/).map(part => part[0]).join('').slice(0, 2) ?? '–'}</span>
137
- <span>${ticket.assignee?.name ?? 'Unassigned'}</span><span class="spacer"></span>
138
- ${this.movable ? html `<dees-button size="icon" type="ghost" icon="lucide:Ellipsis" text="Move ticket" .disabled=${this.pending}
173
+ }} @dragend=${() => { if (!this.pointerManaged)
174
+ kanbanEvent(this, 'kanban-drag-end', {}); }}>
175
+ <div class="meta"><span class="key">${ticket.key}</span>
176
+ ${this.epic ? html `<button class="link epic" title=${this.epic.title} @click=${() => this.open(this.epic.id)}>${this.epic.title}</button>` : ''}
177
+ ${this.saving ? html `<span class="saving" role="status">Saving…</span>` : this.movable ? html `<dees-button class="move" size="icon" type="ghost" icon="lucide:Ellipsis" text="Move ticket" .disabled=${this.pending || this.moveDisabled}
139
178
  @clicked=${(event) => kanbanEvent(this, 'kanban-move-menu', { ticketId: ticket.id, anchor: event.currentTarget })}></dees-button>` : ''}
140
179
  </div>
141
- ${this.subtasks.length ? html `<details><summary>${completed}/${this.subtasks.length} subtasks complete</summary>
142
- ${this.subtasks.map(task => html `<div class="subtask"><span>${this.columns.some(column => column.id === task.columnId && column.done) ? '✓' : '○'}</span>
180
+ <button class="title" @click=${() => this.open(ticket.id)}>${ticket.title}</button>
181
+ <div class="row footer">
182
+ ${ticket.priority && ticket.priority !== 'none' ? html `<span class="priority" data-priority=${ticket.priority}><dees-icon .icon=${kanbanPriorityIcon(ticket.priority)} iconSize="13" aria-hidden="true"></dees-icon>${ticket.priority}</span>` : ''}
183
+ ${ticket.labels?.map(label => html `<span class="badge">${label}</span>`)}
184
+ <span class="assignee" title=${ticket.assignee?.name ?? 'Unassigned'}><span class="avatar" aria-hidden="true">${ticket.assignee ? kanbanInitials(ticket.assignee.name) : '–'}</span><span class="assignee-name">${ticket.assignee?.name ?? 'Unassigned'}</span></span>
185
+ </div>
186
+ ${this.subtasks.length ? html `<details><summary><dees-icon icon="lucide:ListChecks" iconSize="14" aria-hidden="true"></dees-icon>${completed}/${this.subtasks.length} subtasks complete<dees-icon class="disclosure" icon="lucide:ChevronRight" iconSize="14" aria-hidden="true"></dees-icon></summary>
187
+ ${this.subtasks.map(task => html `<div class="subtask"><dees-icon .icon=${this.columns.some(column => column.id === task.columnId && column.done) ? 'lucide:CircleCheck' : 'lucide:Circle'} iconSize="14" aria-hidden="true"></dees-icon>
143
188
  <button class="link" @click=${() => this.open(task.id)}>${task.title}</button></div>`)}</details>` : ''}
144
189
  </article>`;
145
190
  }
146
191
  constructor() {
147
192
  super(...arguments);
148
- __runInitializers(this, _pending_extraInitializers);
193
+ __runInitializers(this, _pointerManaged_extraInitializers);
149
194
  }
150
195
  static {
151
196
  __runInitializers(_classThis, _classExtraInitializers);
@@ -154,4 +199,4 @@ let DeesKanbanCard = (() => {
154
199
  return DeesKanbanCard = _classThis;
155
200
  })();
156
201
  export { DeesKanbanCard };
157
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVlcy1rYW5iYW4tY2FyZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3RzX3dlYi9lbGVtZW50cy8wMGdyb3VwLWthbmJhbi9kZWVzLWthbmJhbi1jYXJkL2RlZXMta2FuYmFuLWNhcmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsYUFBYSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFFOUYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNuRCxPQUFPLGlEQUFpRCxDQUFDO0FBQ3pELE9BQU8sOENBQThDLENBQUM7SUFLekMsY0FBYzs0QkFEMUIsYUFBYSxDQUFDLGtCQUFrQixDQUFDOzs7O3NCQUNFLFdBQVc7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OEJBQW5CLFNBQVEsV0FBVzs7OztrQ0FDNUMsUUFBUSxDQUFDLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxDQUFDO2dDQUM5QixRQUFRLENBQUMsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLENBQUM7b0NBQzlCLFFBQVEsQ0FBQyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsQ0FBQzttQ0FDOUIsUUFBUSxDQUFDLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxDQUFDO21DQUM5QixRQUFRLENBQUMsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLENBQUM7bUNBQzNCLFFBQVEsQ0FBQyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsQ0FBQztZQUxJLHVLQUFTLE1BQU0sNkJBQU4sTUFBTSx1RkFBNEI7WUFDM0MsaUtBQVMsSUFBSSw2QkFBSixJQUFJLG1GQUE0QjtZQUN6Qyw2S0FBUyxRQUFRLDZCQUFSLFFBQVEsMkZBQXVCO1lBQ3hDLDBLQUFTLE9BQU8sNkJBQVAsT0FBTyx5RkFBdUI7WUFDMUMsMEtBQVMsT0FBTyw2QkFBUCxPQUFPLHlGQUFTO1lBQ3pCLDBLQUFTLE9BQU8sNkJBQVAsT0FBTyx5RkFBUztZQU54RCw2S0ErQ0M7Ozs7UUE5Q2lDLGlGQUEyQztRQUEzQyxJQUFTLE1BQU0sNENBQTRCO1FBQTNDLElBQVMsTUFBTSxrREFBNEI7UUFDM0MsbUlBQXlDO1FBQXpDLElBQVMsSUFBSSwwQ0FBNEI7UUFBekMsSUFBUyxJQUFJLGdEQUE0QjtRQUN6QyxnSUFBcUMsRUFBRSxHQUFDO1FBQXhDLElBQVMsUUFBUSw4Q0FBdUI7UUFBeEMsSUFBUyxRQUFRLG9EQUF1QjtRQUN4QyxrSUFBb0MsRUFBRSxHQUFDO1FBQXZDLElBQVMsT0FBTyw2Q0FBdUI7UUFBdkMsSUFBUyxPQUFPLG1EQUF1QjtRQUMxQyxpSUFBbUIsS0FBSyxHQUFDO1FBQXpCLElBQVMsT0FBTyw2Q0FBUztRQUF6QixJQUFTLE9BQU8sbURBQVM7UUFDekIsaUlBQW1CLEtBQUssR0FBQztRQUF6QixJQUFTLE9BQU8sNkNBQVM7UUFBekIsSUFBUyxPQUFPLG1EQUFTO1FBQy9DLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxHQUFHLFlBQVksRUFBRSxHQUFHLENBQUE7Ozs7Ozs7Ozs7OztHQVkzQyxDQUFDLENBQUM7UUFDSyxJQUFJLENBQUMsUUFBZ0IsSUFBVSxXQUFXLENBQUMsSUFBSSxFQUFFLG9CQUFvQixFQUFFLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDeEYsTUFBTTtZQUNYLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7WUFDM0IsSUFBSSxDQUFDLE1BQU07Z0JBQUUsT0FBTyxJQUFJLENBQUEsRUFBRSxDQUFDO1lBQzNCLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsRUFBRSxLQUFLLElBQUksQ0FBQyxRQUFRLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDO1lBQy9ILE9BQU8sSUFBSSxDQUFBLHNCQUFzQixNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxjQUFjLElBQUksQ0FBQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE9BQU87bUJBQ3BHLENBQUMsS0FBZ0IsRUFBRSxFQUFFO2dCQUNoQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksRUFBRSxDQUFDO29CQUFDLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztvQkFBQyxPQUFPO2dCQUFDLENBQUM7Z0JBQzdGLEtBQUssQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLGtDQUFrQyxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQztnQkFDMUUsS0FBSyxDQUFDLFlBQVksQ0FBQyxhQUFhLEdBQUcsTUFBTSxDQUFDO2dCQUMxQyxXQUFXLENBQUMsSUFBSSxFQUFFLG1CQUFtQixFQUFFLEVBQUUsUUFBUSxFQUFFLE1BQU0sQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQ2xFLENBQUMsYUFBYSxHQUFHLEVBQUUsQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLGlCQUFpQixFQUFFLEVBQUUsQ0FBQztRQUMxRCxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUEsb0NBQW9DLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUssQ0FBQyxFQUFFLENBQUMsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssV0FBVyxDQUFDLENBQUMsQ0FBQyxFQUFFO21EQUMxRSxNQUFNLENBQUMsR0FBRztVQUNuRCxNQUFNLENBQUMsUUFBUSxJQUFJLE1BQU0sQ0FBQyxRQUFRLEtBQUssTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUEsd0NBQXdDLE1BQU0sQ0FBQyxRQUFRLElBQUksTUFBTSxDQUFDLFFBQVEsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFO3FDQUNqSCxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsSUFBSSxNQUFNLENBQUMsS0FBSztRQUN2RSxNQUFNLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFBLDJCQUEyQixNQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQSx1QkFBdUIsS0FBSyxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFFOzREQUNyRixNQUFNLENBQUMsUUFBUSxFQUFFLElBQUksSUFBSSxZQUFZLElBQUksTUFBTSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLEdBQUc7Z0JBQ3hLLE1BQU0sQ0FBQyxRQUFRLEVBQUUsSUFBSSxJQUFJLFlBQVk7VUFDM0MsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFBLDZGQUE2RixJQUFJLENBQUMsT0FBTztxQkFDakgsQ0FBQyxLQUFZLEVBQUUsRUFBRSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsa0JBQWtCLEVBQUUsRUFBRSxRQUFRLEVBQUUsTUFBTSxDQUFDLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxDQUFDLGFBQTRCLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsRUFBRTs7UUFFL0osSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQSxxQkFBcUIsU0FBUyxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTTtVQUMvRSxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQSw4QkFBOEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsRUFBRSxLQUFLLElBQUksQ0FBQyxRQUFRLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUc7d0NBQ2pILEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLElBQUksQ0FBQyxLQUFLLGlCQUFpQixDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsRUFBRTtlQUNsRyxDQUFDO1FBQ2QsQ0FBQzs7Ozs7O1lBOUNVLHVEQUFjOzs7OztTQUFkLGNBQWMifQ==
202
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVlcy1rYW5iYW4tY2FyZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3RzX3dlYi9lbGVtZW50cy8wMGdyb3VwLWthbmJhbi9kZWVzLWthbmJhbi1jYXJkL2RlZXMta2FuYmFuLWNhcmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsYUFBYSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFFOUYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxXQUFXLEVBQUUsY0FBYyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDdkYsT0FBTyxpREFBaUQsQ0FBQztBQUN6RCxPQUFPLDhDQUE4QyxDQUFDO0lBS3pDLGNBQWM7NEJBRDFCLGFBQWEsQ0FBQyxrQkFBa0IsQ0FBQzs7OztzQkFDRSxXQUFXOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OzhCQUFuQixTQUFRLFdBQVc7Ozs7a0NBQzVDLFFBQVEsQ0FBQyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsQ0FBQztnQ0FDOUIsUUFBUSxDQUFDLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxDQUFDO29DQUM5QixRQUFRLENBQUMsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLENBQUM7bUNBQzlCLFFBQVEsQ0FBQyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsQ0FBQzttQ0FDOUIsUUFBUSxDQUFDLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxDQUFDO3dDQUMzQixRQUFRLENBQUMsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLENBQUM7bUNBQzNCLFFBQVEsQ0FBQyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsQ0FBQztrQ0FDM0IsUUFBUSxDQUFDLEVBQUUsSUFB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
@@ -1,5 +1,6 @@
1
1
  import { DeesElement } from '@design.estate/dees-element';
2
2
  import type { IKanbanColumn, IKanbanTicket } from '../interfaces.js';
3
+ import type { IKanbanMotion } from '../kanban.dragcontroller.js';
3
4
  import '../dees-kanban-card/dees-kanban-card.js';
4
5
  declare global {
5
6
  interface HTMLElementTagNameMap {
@@ -12,11 +13,15 @@ export declare class DeesKanbanColumn extends DeesElement {
12
13
  accessor allTickets: IKanbanTicket[];
13
14
  accessor columns: IKanbanColumn[];
14
15
  accessor movable: boolean;
16
+ accessor movesDisabled: boolean;
15
17
  accessor canCreate: boolean;
16
18
  accessor pendingTicketId: string;
17
19
  accessor draggingTicketId: string;
18
- private accessor dropBefore;
19
- private accessor draggingOver;
20
+ accessor pointerManaged: boolean;
21
+ private accessor nativeDropBefore;
22
+ private accessor nativeOver;
23
+ /** Internal render projection; provider-owned ticket data remains unchanged until saved. */
24
+ accessor motion: IKanbanMotion | undefined;
20
25
  static styles: import("@design.estate/dees-element").CSSResult[];
21
26
  updated(): void;
22
27
  render(): import("@design.estate/dees-element").TemplateResult<1>;
@@ -32,7 +32,7 @@ var __runInitializers = (this && this.__runInitializers) || function (thisArg, i
32
32
  }
33
33
  return useValue ? value : void 0;
34
34
  };
35
- import { DeesElement, customElement, property, state, html, css } from '@design.estate/dees-element';
35
+ import { DeesElement, customElement, property, state, html, css, directives } from '@design.estate/dees-element';
36
36
  import { kanbanStyles } from '../kanban.styles.js';
37
37
  import { kanbanEvent, sortKanbanTickets } from '../kanban.helpers.js';
38
38
  import '../dees-kanban-card/dees-kanban-card.js';
@@ -57,6 +57,9 @@ let DeesKanbanColumn = (() => {
57
57
  let _movable_decorators;
58
58
  let _movable_initializers = [];
59
59
  let _movable_extraInitializers = [];
60
+ let _movesDisabled_decorators;
61
+ let _movesDisabled_initializers = [];
62
+ let _movesDisabled_extraInitializers = [];
60
63
  let _canCreate_decorators;
61
64
  let _canCreate_initializers = [];
62
65
  let _canCreate_extraInitializers = [];
@@ -66,12 +69,18 @@ let DeesKanbanColumn = (() => {
66
69
  let _draggingTicketId_decorators;
67
70
  let _draggingTicketId_initializers = [];
68
71
  let _draggingTicketId_extraInitializers = [];
69
- let _dropBefore_decorators;
70
- let _dropBefore_initializers = [];
71
- let _dropBefore_extraInitializers = [];
72
- let _draggingOver_decorators;
73
- let _draggingOver_initializers = [];
74
- let _draggingOver_extraInitializers = [];
72
+ let _pointerManaged_decorators;
73
+ let _pointerManaged_initializers = [];
74
+ let _pointerManaged_extraInitializers = [];
75
+ let _nativeDropBefore_decorators;
76
+ let _nativeDropBefore_initializers = [];
77
+ let _nativeDropBefore_extraInitializers = [];
78
+ let _nativeOver_decorators;
79
+ let _nativeOver_initializers = [];
80
+ let _nativeOver_extraInitializers = [];
81
+ let _motion_decorators;
82
+ let _motion_initializers = [];
83
+ let _motion_extraInitializers = [];
75
84
  var DeesKanbanColumn = class extends _classSuper {
76
85
  static { _classThis = this; }
77
86
  static {
@@ -81,21 +90,27 @@ let DeesKanbanColumn = (() => {
81
90
  _allTickets_decorators = [property({ attribute: false })];
82
91
  _columns_decorators = [property({ attribute: false })];
83
92
  _movable_decorators = [property({ type: Boolean })];
93
+ _movesDisabled_decorators = [property({ type: Boolean })];
84
94
  _canCreate_decorators = [property({ type: Boolean })];
85
95
  _pendingTicketId_decorators = [property({ type: String })];
86
96
  _draggingTicketId_decorators = [property({ type: String })];
87
- _dropBefore_decorators = [state()];
88
- _draggingOver_decorators = [state()];
97
+ _pointerManaged_decorators = [property({ attribute: false })];
98
+ _nativeDropBefore_decorators = [state()];
99
+ _nativeOver_decorators = [state()];
100
+ _motion_decorators = [property({ attribute: false })];
89
101
  __esDecorate(this, null, _column_decorators, { kind: "accessor", name: "column", static: false, private: false, access: { has: obj => "column" in obj, get: obj => obj.column, set: (obj, value) => { obj.column = value; } }, metadata: _metadata }, _column_initializers, _column_extraInitializers);
90
102
  __esDecorate(this, null, _tickets_decorators, { kind: "accessor", name: "tickets", static: false, private: false, access: { has: obj => "tickets" in obj, get: obj => obj.tickets, set: (obj, value) => { obj.tickets = value; } }, metadata: _metadata }, _tickets_initializers, _tickets_extraInitializers);
91
103
  __esDecorate(this, null, _allTickets_decorators, { kind: "accessor", name: "allTickets", static: false, private: false, access: { has: obj => "allTickets" in obj, get: obj => obj.allTickets, set: (obj, value) => { obj.allTickets = value; } }, metadata: _metadata }, _allTickets_initializers, _allTickets_extraInitializers);
92
104
  __esDecorate(this, null, _columns_decorators, { kind: "accessor", name: "columns", static: false, private: false, access: { has: obj => "columns" in obj, get: obj => obj.columns, set: (obj, value) => { obj.columns = value; } }, metadata: _metadata }, _columns_initializers, _columns_extraInitializers);
93
105
  __esDecorate(this, null, _movable_decorators, { kind: "accessor", name: "movable", static: false, private: false, access: { has: obj => "movable" in obj, get: obj => obj.movable, set: (obj, value) => { obj.movable = value; } }, metadata: _metadata }, _movable_initializers, _movable_extraInitializers);
106
+ __esDecorate(this, null, _movesDisabled_decorators, { kind: "accessor", name: "movesDisabled", static: false, private: false, access: { has: obj => "movesDisabled" in obj, get: obj => obj.movesDisabled, set: (obj, value) => { obj.movesDisabled = value; } }, metadata: _metadata }, _movesDisabled_initializers, _movesDisabled_extraInitializers);
94
107
  __esDecorate(this, null, _canCreate_decorators, { kind: "accessor", name: "canCreate", static: false, private: false, access: { has: obj => "canCreate" in obj, get: obj => obj.canCreate, set: (obj, value) => { obj.canCreate = value; } }, metadata: _metadata }, _canCreate_initializers, _canCreate_extraInitializers);
95
108
  __esDecorate(this, null, _pendingTicketId_decorators, { kind: "accessor", name: "pendingTicketId", static: false, private: false, access: { has: obj => "pendingTicketId" in obj, get: obj => obj.pendingTicketId, set: (obj, value) => { obj.pendingTicketId = value; } }, metadata: _metadata }, _pendingTicketId_initializers, _pendingTicketId_extraInitializers);
96
109
  __esDecorate(this, null, _draggingTicketId_decorators, { kind: "accessor", name: "draggingTicketId", static: false, private: false, access: { has: obj => "draggingTicketId" in obj, get: obj => obj.draggingTicketId, set: (obj, value) => { obj.draggingTicketId = value; } }, metadata: _metadata }, _draggingTicketId_initializers, _draggingTicketId_extraInitializers);
97
- __esDecorate(this, null, _dropBefore_decorators, { kind: "accessor", name: "dropBefore", static: false, private: false, access: { has: obj => "dropBefore" in obj, get: obj => obj.dropBefore, set: (obj, value) => { obj.dropBefore = value; } }, metadata: _metadata }, _dropBefore_initializers, _dropBefore_extraInitializers);
98
- __esDecorate(this, null, _draggingOver_decorators, { kind: "accessor", name: "draggingOver", static: false, private: false, access: { has: obj => "draggingOver" in obj, get: obj => obj.draggingOver, set: (obj, value) => { obj.draggingOver = value; } }, metadata: _metadata }, _draggingOver_initializers, _draggingOver_extraInitializers);
110
+ __esDecorate(this, null, _pointerManaged_decorators, { kind: "accessor", name: "pointerManaged", static: false, private: false, access: { has: obj => "pointerManaged" in obj, get: obj => obj.pointerManaged, set: (obj, value) => { obj.pointerManaged = value; } }, metadata: _metadata }, _pointerManaged_initializers, _pointerManaged_extraInitializers);
111
+ __esDecorate(this, null, _nativeDropBefore_decorators, { kind: "accessor", name: "nativeDropBefore", static: false, private: false, access: { has: obj => "nativeDropBefore" in obj, get: obj => obj.nativeDropBefore, set: (obj, value) => { obj.nativeDropBefore = value; } }, metadata: _metadata }, _nativeDropBefore_initializers, _nativeDropBefore_extraInitializers);
112
+ __esDecorate(this, null, _nativeOver_decorators, { kind: "accessor", name: "nativeOver", static: false, private: false, access: { has: obj => "nativeOver" in obj, get: obj => obj.nativeOver, set: (obj, value) => { obj.nativeOver = value; } }, metadata: _metadata }, _nativeOver_initializers, _nativeOver_extraInitializers);
113
+ __esDecorate(this, null, _motion_decorators, { kind: "accessor", name: "motion", static: false, private: false, access: { has: obj => "motion" in obj, get: obj => obj.motion, set: (obj, value) => { obj.motion = value; } }, metadata: _metadata }, _motion_initializers, _motion_extraInitializers);
99
114
  __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
100
115
  DeesKanbanColumn = _classThis = _classDescriptor.value;
101
116
  if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
@@ -115,7 +130,10 @@ let DeesKanbanColumn = (() => {
115
130
  #movable_accessor_storage = (__runInitializers(this, _columns_extraInitializers), __runInitializers(this, _movable_initializers, false));
116
131
  get movable() { return this.#movable_accessor_storage; }
117
132
  set movable(value) { this.#movable_accessor_storage = value; }
118
- #canCreate_accessor_storage = (__runInitializers(this, _movable_extraInitializers), __runInitializers(this, _canCreate_initializers, false));
133
+ #movesDisabled_accessor_storage = (__runInitializers(this, _movable_extraInitializers), __runInitializers(this, _movesDisabled_initializers, false));
134
+ get movesDisabled() { return this.#movesDisabled_accessor_storage; }
135
+ set movesDisabled(value) { this.#movesDisabled_accessor_storage = value; }
136
+ #canCreate_accessor_storage = (__runInitializers(this, _movesDisabled_extraInitializers), __runInitializers(this, _canCreate_initializers, false));
119
137
  get canCreate() { return this.#canCreate_accessor_storage; }
120
138
  set canCreate(value) { this.#canCreate_accessor_storage = value; }
121
139
  #pendingTicketId_accessor_storage = (__runInitializers(this, _canCreate_extraInitializers), __runInitializers(this, _pendingTicketId_initializers, ''));
@@ -124,63 +142,87 @@ let DeesKanbanColumn = (() => {
124
142
  #draggingTicketId_accessor_storage = (__runInitializers(this, _pendingTicketId_extraInitializers), __runInitializers(this, _draggingTicketId_initializers, ''));
125
143
  get draggingTicketId() { return this.#draggingTicketId_accessor_storage; }
126
144
  set draggingTicketId(value) { this.#draggingTicketId_accessor_storage = value; }
127
- #dropBefore_accessor_storage = (__runInitializers(this, _draggingTicketId_extraInitializers), __runInitializers(this, _dropBefore_initializers, void 0));
128
- get dropBefore() { return this.#dropBefore_accessor_storage; }
129
- set dropBefore(value) { this.#dropBefore_accessor_storage = value; }
130
- #draggingOver_accessor_storage = (__runInitializers(this, _dropBefore_extraInitializers), __runInitializers(this, _draggingOver_initializers, false));
131
- get draggingOver() { return this.#draggingOver_accessor_storage; }
132
- set draggingOver(value) { this.#draggingOver_accessor_storage = value; }
145
+ #pointerManaged_accessor_storage = (__runInitializers(this, _draggingTicketId_extraInitializers), __runInitializers(this, _pointerManaged_initializers, false));
146
+ get pointerManaged() { return this.#pointerManaged_accessor_storage; }
147
+ set pointerManaged(value) { this.#pointerManaged_accessor_storage = value; }
148
+ #nativeDropBefore_accessor_storage = (__runInitializers(this, _pointerManaged_extraInitializers), __runInitializers(this, _nativeDropBefore_initializers, void 0));
149
+ get nativeDropBefore() { return this.#nativeDropBefore_accessor_storage; }
150
+ set nativeDropBefore(value) { this.#nativeDropBefore_accessor_storage = value; }
151
+ #nativeOver_accessor_storage = (__runInitializers(this, _nativeDropBefore_extraInitializers), __runInitializers(this, _nativeOver_initializers, false));
152
+ get nativeOver() { return this.#nativeOver_accessor_storage; }
153
+ set nativeOver(value) { this.#nativeOver_accessor_storage = value; }
154
+ #motion_accessor_storage = (__runInitializers(this, _nativeOver_extraInitializers), __runInitializers(this, _motion_initializers, void 0));
155
+ /** Internal render projection; provider-owned ticket data remains unchanged until saved. */
156
+ get motion() { return this.#motion_accessor_storage; }
157
+ set motion(value) { this.#motion_accessor_storage = value; }
133
158
  static styles = [...kanbanStyles, css `
134
- :host { display: flex; flex-direction: column; width: 300px; min-width: 270px; flex: 1 0 270px; }
135
- section { min-height: 220px; height: 100%; border-radius: var(--dees-radius-lg); background: var(--dees-color-bg-secondary); padding: 10px; }
136
- header { display: flex; align-items: center; gap: 8px; padding: 3px 3px 12px; }
137
- h3 { font-size: var(--dees-font-body-size); font-weight: 600; }
138
- .count { font-size: var(--dees-font-caption1-size); color: var(--dees-color-text-secondary); }
139
- .stack { display: grid; gap: 10px; min-height: 80px; align-content: start; }
159
+ :host { display: flex; flex-direction: column; min-width: 272px; max-width: 360px; flex: 1 0 272px; }
160
+ section { min-height: 220px; height: 100%; border-radius: var(--dees-radius-xl); transition: background var(--dees-transition-default) var(--dees-ease-out); }
161
+ header { display: flex; align-items: center; gap: 8px; min-height: 40px; margin-bottom: 10px; padding: 0 2px 8px; border-bottom: 1px solid var(--dees-color-border-subtle); }
162
+ h3 { font-size: var(--dees-font-footnote-size); font-weight: 600; }
163
+ header dees-button::part(button) { width: 24px; height: 24px; min-height: 24px; }
164
+ .status { width: 8px; height: 8px; border: 1.5px solid var(--dees-color-text-secondary); border-radius: 50%; flex-shrink: 0; }
165
+ .status.done { background: var(--dees-color-accent-success); border-color: var(--dees-color-accent-success); }
166
+ .stack { display: grid; gap: 8px; min-height: 120px; align-content: start; }
140
167
  .target { position: relative; }
141
- .target.before::before, .end-target.before::before { content: ''; display: block; height: 3px; background: var(--dees-color-accent-primary); border-radius: 2px; margin-bottom: 7px; }
142
- .end-target { min-height: 20px; padding-top: 10px; }
143
- section.over { outline: 2px solid var(--dees-color-focus-ring); outline-offset: 1px; }
168
+ .native-before::before { content: ''; position: absolute; top: -5px; left: 0; right: 0; height: 2px; background: var(--dees-color-accent-primary); border-radius: 2px; }
169
+ .placeholder { border-radius: var(--dees-radius-xl); background: var(--dees-color-fill-tertiary); box-shadow: inset 0 0 0 1px var(--dees-color-border-default); }
170
+ .end-target { position: relative; min-height: 32px; margin-top: 8px; }
171
+ section.over { background: var(--dees-color-row-hover); }
172
+ @media (prefers-reduced-motion: reduce) { section { transition: none; } }
173
+ @media (pointer: coarse) { header dees-button::part(button) { width: 32px; height: 32px; min-height: 32px; } }
144
174
  `];
145
175
  updated() { if (!this.draggingTicketId)
146
- this.draggingOver = false; }
176
+ this.nativeOver = false; }
147
177
  render() {
148
178
  if (!this.column)
149
179
  return html ``;
150
- return html `<section class=${this.draggingOver ? 'over' : ''} aria-label=${this.column.title}
151
- @dragover=${(event) => { if (this.draggingTicketId && this.movable) {
180
+ const motion = this.motion;
181
+ const tickets = sortKanbanTickets(this.tickets).filter(ticket => ticket.id !== motion?.move.ticketId);
182
+ const active = motion?.move.columnId === this.column.id;
183
+ if (motion && active) {
184
+ const index = tickets.findIndex(ticket => ticket.id === motion.move.beforeTicketId);
185
+ tickets.splice(index < 0 ? tickets.length : index, 0, motion.ticket);
186
+ }
187
+ return html `<section class=${active && motion?.placeholder || this.nativeOver ? 'over' : ''} aria-label=${this.column.title}
188
+ @dragover=${(event) => { if (!this.pointerManaged && this.draggingTicketId && this.movable && !this.movesDisabled) {
152
189
  event.preventDefault();
153
- this.draggingOver = true;
190
+ this.nativeOver = true;
154
191
  if (event.dataTransfer)
155
192
  event.dataTransfer.dropEffect = 'move';
156
193
  } }}
157
194
  @dragleave=${(event) => { if (!(event.relatedTarget instanceof Node) || !event.currentTarget.contains(event.relatedTarget))
158
- this.draggingOver = false; }}
195
+ this.nativeOver = false; }}
159
196
  @drop=${(event) => {
197
+ if (this.pointerManaged)
198
+ return;
160
199
  event.preventDefault();
161
- this.draggingOver = false;
162
- if (this.movable && this.draggingTicketId && event.dataTransfer?.getData('application/x-dees-kanban-ticket') === this.draggingTicketId)
163
- kanbanEvent(this, 'kanban-ticket-move', { ticketId: this.draggingTicketId, columnId: this.column.id, beforeTicketId: this.dropBefore });
200
+ this.nativeOver = false;
201
+ if (this.movable && !this.movesDisabled && this.draggingTicketId && event.dataTransfer?.getData('application/x-dees-kanban-ticket') === this.draggingTicketId)
202
+ kanbanEvent(this, 'kanban-ticket-move', { ticketId: this.draggingTicketId, columnId: this.column.id, beforeTicketId: this.nativeDropBefore });
164
203
  }}>
165
- <header><h3>${this.column.title}</h3><span class="count">${this.tickets.length}</span><span class="spacer"></span>
204
+ <header><span class="status ${this.column.done ? 'done' : ''}" aria-hidden="true"></span><h3>${this.column.title}</h3><span class="count">${tickets.length}</span><span class="spacer"></span>
166
205
  ${this.canCreate ? html `<dees-button type="ghost" size="icon" icon="lucide:Plus" text=${`Add task to ${this.column.title}`}
167
206
  @clicked=${() => kanbanEvent(this, 'kanban-ticket-create', { kind: 'task', columnId: this.column.id })}></dees-button>` : ''}</header>
168
- <div class="stack">${sortKanbanTickets(this.tickets).map(ticket => html `
169
- <div class="target ${this.draggingOver && this.dropBefore === ticket.id ? 'before' : ''}"
170
- @dragover=${() => { this.dropBefore = ticket.id; }}>
171
- <dees-kanban-card .ticket=${ticket} .columns=${this.columns}
207
+ <div class="stack">${directives.repeat(tickets, ticket => ticket.id, ticket => html `
208
+ <div class="target ${this.nativeOver && this.nativeDropBefore === ticket.id ? 'native-before' : ''}" data-ticket-id=${ticket.id}
209
+ @dragover=${() => { if (!this.pointerManaged)
210
+ this.nativeDropBefore = ticket.id; }}>
211
+ ${motion?.move.ticketId === ticket.id && motion.placeholder ? html `<div class="placeholder" style=${`height: ${motion.height}px`} aria-label="Drop ticket here"></div>` : html `<dees-kanban-card .ticket=${ticket} .columns=${this.columns}
172
212
  .epic=${this.allTickets.find(item => item.id === ticket.parentId && item.kind === 'epic')}
173
213
  .subtasks=${sortKanbanTickets(this.allTickets.filter(item => item.parentId === ticket.id && item.kind === 'subtask'))}
174
- .movable=${this.movable && ticket.permissions?.move !== false} .pending=${this.pendingTicketId === ticket.id}></dees-kanban-card>
214
+ .movable=${this.movable && ticket.permissions?.move !== false} .pending=${motion?.move.ticketId === ticket.id ? motion.dimmed : this.pendingTicketId === ticket.id}
215
+ .moveDisabled=${this.movesDisabled}
216
+ .saving=${motion?.move.ticketId === ticket.id && motion.saving} .pointerManaged=${this.pointerManaged}></dees-kanban-card>`}
175
217
  </div>`)}
176
- ${!this.tickets.length ? html `<div class="empty" @dragover=${() => { this.dropBefore = undefined; }}>No tasks</div>` : ''}
218
+ ${!tickets.length ? html `<div class="empty" @dragover=${() => { this.nativeDropBefore = undefined; }}>No tasks</div>` : ''}
177
219
  </div>
178
- <div class="end-target ${this.draggingOver && !this.dropBefore ? 'before' : ''}" @dragover=${() => { this.dropBefore = undefined; }}></div>
220
+ <div class="end-target ${this.nativeOver && !this.nativeDropBefore ? 'native-before' : ''}" @dragover=${() => { this.nativeDropBefore = undefined; }}></div>
179
221
  </section>`;
180
222
  }
181
223
  constructor() {
182
224
  super(...arguments);
183
- __runInitializers(this, _draggingOver_extraInitializers);
225
+ __runInitializers(this, _motion_extraInitializers);
184
226
  }
185
227
  static {
186
228
  __runInitializers(_classThis, _classExtraInitializers);
@@ -189,4 +231,4 @@ let DeesKanbanColumn = (() => {
189
231
  return DeesKanbanColumn = _classThis;
190
232
  })();
191
233
  export { DeesKanbanColumn };
192
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVlcy1rYW5iYW4tY29sdW1uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vdHNfd2ViL2VsZW1lbnRzLzAwZ3JvdXAta2FuYmFuL2RlZXMta2FuYmFuLWNvbHVtbi9kZWVzLWthbmJhbi1jb2x1bW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsYUFBYSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBRXJHLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsV0FBVyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDdEUsT0FBTyx5Q0FBeUMsQ0FBQztJQUtwQyxnQkFBZ0I7NEJBRDVCLGFBQWEsQ0FBQyxvQkFBb0IsQ0FBQzs7OztzQkFDRSxXQUFXOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O2dDQUFuQixTQUFRLFdBQVc7Ozs7a0NBQzlDLFFBQVEsQ0FBQyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsQ0FBQzttQ0FDOUIsUUFBUSxDQUFDLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxDQUFDO3NDQUM5QixRQUFRLENBQUMsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLENBQUM7bUNBQzlCLFFBQVEsQ0FBQyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsQ0FBQzttQ0FDOUIsUUFBUSxDQUFDLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxDQUFDO3FDQUMzQixRQUFRLENBQUMsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLENBQUM7MkNBQzNCLFFBQVEsQ0FBQyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsQ0FBQzs0Q0FDMUIsUUFBUSxDQUFDLEVBQUUsSUFBSSxFQUFFLE1BQU0s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
234
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVlcy1rYW5iYW4tY29sdW1uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vdHNfd2ViL2VsZW1lbnRzLzAwZ3JvdXAta2FuYmFuL2RlZXMta2FuYmFuLWNvbHVtbi9kZWVzLWthbmJhbi1jb2x1bW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsYUFBYSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxVQUFVLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUdqSCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDbkQsT0FBTyxFQUFFLFdBQVcsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3RFLE9BQU8seUNBQXlDLENBQUM7SUFLcEMsZ0JBQWdCOzRCQUQ1QixhQUFhLENBQUMsb0JBQW9CLENBQUM7Ozs7c0JBQ0UsV0FBVzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztnQ0FBbkIsU0FBUSxXQUFXOzs7O2tDQUM5QyxRQUFRLENBQUMsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLENBQUM7bUNBQzlCLFFBQVEsQ0FBQyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsQ0FBQztzQ0FDOUIsUUFBUSxDQUFDLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxDQUFDO21DQUM5QixRQUFRLENBQUMsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLENBQUM7bUNBQzlCLFFBQVEsQ0FBQyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsQ0FBQzt5Q0FDM0IsUUFBUSxDQUFDLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxDQUFDO3FDQUMzQixRQUFRLENBQUMsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLENBQUM7MkNBQzNCLFFBQVEsQ0FBQyxF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
@@ -34,7 +34,7 @@ var __runInitializers = (this && this.__runInitializers) || function (thisArg, i
34
34
  };
35
35
  import { DeesElement, customElement, property, state, html, css } from '@design.estate/dees-element';
36
36
  import { kanbanStyles } from '../kanban.styles.js';
37
- import { kanbanError, kanbanEvent } from '../kanban.helpers.js';
37
+ import { kanbanError, kanbanEvent, kanbanInitials } from '../kanban.helpers.js';
38
38
  import { referenceText } from '../../00group-input/dees-input-reference/index.js';
39
39
  import '../../00group-button/dees-button/dees-button.js';
40
40
  let DeesKanbanDiscussion = (() => {
@@ -132,31 +132,42 @@ let DeesKanbanDiscussion = (() => {
132
132
  get failures() { return this.#failures_accessor_storage; }
133
133
  set failures(value) { this.#failures_accessor_storage = value; }
134
134
  static styles = [...kanbanStyles, css `
135
- header { display: flex; align-items: center; margin-bottom: 16px; }
136
- h3 { font-size: var(--dees-font-body-size); font-weight: 600; }
135
+ header { display: flex; align-items: center; gap: 8px; margin-bottom: 8px; }
136
+ h3 { font-size: var(--dees-font-footnote-size); font-weight: 600; }
137
+ .refresh::part(button) { width: 28px; height: 28px; min-height: 28px; }
137
138
  ol { list-style: none; padding: 0; margin: 0; }
138
- li { padding: 0 0 20px; }
139
- .author { font-weight: 550; font-size: var(--dees-font-footnote-size); }
139
+ li { display: grid; grid-template-columns: 28px minmax(0, 1fr); gap: 10px; padding: 10px 0; }
140
+ li > .avatar { width: 28px; height: 28px; margin-top: 1px; }
141
+ .author { font-weight: 600; font-size: var(--dees-font-footnote-size); }
142
+ .meta { gap: 4px 10px; }
140
143
  time { font-size: var(--dees-font-caption1-size); color: var(--dees-color-text-secondary); }
141
- .message { white-space: pre-wrap; overflow-wrap: anywhere; line-height: 1.6; margin-top: 6px; }
142
- .reference { display: inline; border: 0; border-radius: var(--dees-radius-sm); padding: 1px 4px; color: var(--dees-color-link); background: var(--dees-color-badge-default-bg); font: inherit; cursor: pointer; }
143
- .compose { padding-top: 4px; }
144
- .compose .row { padding-top: 8px; }
144
+ .message { white-space: pre-wrap; overflow-wrap: anywhere; font-size: var(--dees-font-subhead-size); line-height: 22px; margin-top: 2px; }
145
+ .reference { display: inline; border: 0; border-radius: var(--dees-radius-sm); padding: 1px 5px; color: var(--dees-color-link); background: var(--dees-color-fill-tertiary); font: inherit; font-weight: 500; cursor: pointer; text-align: left; overflow-wrap: anywhere; }
146
+ .compose { margin: 14px 0 0 38px; padding: 0; border: 1px solid var(--dees-color-control-border); border-radius: var(--dees-radius-xl); corner-shape: var(--dees-corner-shape); background: var(--dees-color-control-bg); }
147
+ .compose:has(dees-input-reference:focus-within) { outline: 2px solid var(--dees-color-focus-ring); outline-offset: 1px; }
148
+ dees-input-reference { --dees-reference-min-height: 64px; --dees-reference-font-size: var(--dees-font-subhead-size); }
149
+ dees-input-reference::part(editor) { border: 0; background: transparent; outline: none; }
150
+ .compose .row { padding: 4px 10px 10px; gap: 8px; }
151
+ .compose .caption { font-size: var(--dees-font-caption1-size); }
152
+ .shortcut { white-space: nowrap; }
153
+ .compose .error { padding: 0 12px 10px; }
154
+ @media (max-width: 600px) { .compose { margin-left: 0; } .compose .caption { flex-basis: 100%; } }
145
155
  `];
146
156
  render() {
147
157
  const pending = this.pending.has(this.ticketId);
148
158
  const comments = this.comments.filter(comment => comment.ticketId === this.ticketId)
149
159
  .slice().sort((a, b) => Date.parse(a.createdAt) - Date.parse(b.createdAt));
150
- return html `<header><h3>Discussion <span class="caption">${comments.length}</span></h3><span class="spacer"></span>
151
- <dees-button size="sm" type="ghost" icon="lucide:RefreshCw" text="Refresh" .disabled=${this.loading}
160
+ return html `<header><h3>Discussion</h3><span class="count">${comments.length}</span><span class="spacer"></span>
161
+ <dees-button class="refresh" size="icon" type="ghost" icon="lucide:RefreshCw" text="Refresh" .disabled=${this.loading}
152
162
  @clicked=${() => kanbanEvent(this, 'kanban-comments-refresh', { ticketId: this.ticketId })}></dees-button></header>
153
163
  ${this.loading ? html `<p class="caption" role="status">Loading comments…</p>` : ''}
154
164
  ${this.error ? html `<p class="error" role="alert">${this.error}</p>` : ''}
155
165
  <ol aria-label="Comments">${comments.map(comment => html `<li>
156
- <div class="row"><span class="author">${comment.author.name}</span><time datetime=${comment.createdAt}>${new Date(comment.createdAt).toLocaleString()}</time></div>
166
+ <span class="avatar" aria-hidden="true">${kanbanInitials(comment.author.name)}</span><div>
167
+ <div class="row meta"><span class="author">${comment.author.name}</span><time datetime=${comment.createdAt} title=${comment.createdAt}>${new Date(comment.createdAt).toLocaleString(undefined, { dateStyle: 'medium', timeStyle: 'short' })}</time></div>
157
168
  <div class="message">${comment.body.map(part => part.type === 'text' ? part.text : html `<button class="reference"
158
169
  @click=${() => kanbanEvent(this, 'kanban-ticket-open', { ticketId: part.id })}>${part.label}</button>`)}</div>
159
- </li>`)}</ol>
170
+ </div></li>`)}</ol>
160
171
  ${!comments.length && !this.loading && !this.error ? html `<p class="empty">Start the conversation.</p>` : ''}
161
172
  ${this.addComment && !this.readOnly ? html `<div class="compose">
162
173
  <dees-input-reference label="Comment" placeholder="Write a comment…" .documentKey=${this.ticketId} .value=${this.draft} .disabled=${pending}
@@ -167,7 +178,7 @@ let DeesKanbanDiscussion = (() => {
167
178
  }}
168
179
  @reference-open=${(event) => kanbanEvent(this, 'kanban-ticket-open', { ticketId: event.detail.id })}
169
180
  @reference-submit=${() => { void this.submit(); }}></dees-input-reference>
170
- <div class="row"><span class="caption">Type #_ to link a ticket · Ctrl/⌘ Enter to send</span><span class="spacer"></span>
181
+ <div class="row"><span class="caption">Type <strong>#_</strong> to link a ticket · <span class="shortcut">Ctrl/⌘ Enter to send</span></span><span class="spacer"></span>
171
182
  <dees-button type="accent" size="sm" text="Comment" .disabled=${pending || !referenceText(this.draft).trim()}
172
183
  .status=${pending ? 'pending' : 'normal'} @clicked=${() => { void this.submit(); }}></dees-button></div>
173
184
  ${this.failures.get(this.ticketId) ? html `<p class="error" role="alert">${this.failures.get(this.ticketId)}</p>` : ''}
@@ -208,4 +219,4 @@ let DeesKanbanDiscussion = (() => {
208
219
  return DeesKanbanDiscussion = _classThis;
209
220
  })();
210
221
  export { DeesKanbanDiscussion };
211
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVlcy1rYW5iYW4tZGlzY3Vzc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3RzX3dlYi9lbGVtZW50cy8wMGdyb3VwLWthbmJhbi9kZWVzLWthbmJhbi1kaXNjdXNzaW9uL2RlZXMta2FuYmFuLWRpc2N1c3Npb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsYUFBYSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBRXJHLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxhQUFhLEVBQWlELE1BQU0sbURBQW1ELENBQUM7QUFDakksT0FBTyxpREFBaUQsQ0FBQztJQUs1QyxvQkFBb0I7NEJBRGhDLGFBQWEsQ0FBQyx3QkFBd0IsQ0FBQzs7OztzQkFDRSxXQUFXOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O29DQUFuQixTQUFRLFdBQVc7Ozs7b0NBQ2xELFFBQVEsQ0FBQyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsQ0FBQztvQ0FDMUIsUUFBUSxDQUFDLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxDQUFDO2lDQUM5QixRQUFRLENBQUMsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLENBQUM7eUNBQzlCLFFBQVEsQ0FBQyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsQ0FBQztzQ0FDOUIsUUFBUSxDQUFDLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxDQUFDO21DQUM5QixRQUFRLENBQUMsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLENBQUM7b0NBQzNCLFFBQVEsQ0FBQyxFQUFFLElBQUksRUFB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
222
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVlcy1rYW5iYW4tZGlzY3Vzc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3RzX3dlYi9lbGVtZW50cy8wMGdyb3VwLWthbmJhbi9kZWVzLWthbmJhbi1kaXNjdXNzaW9uL2RlZXMta2FuYmFuLWRpc2N1c3Npb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsYUFBYSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBRXJHLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxjQUFjLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNoRixPQUFPLEVBQUUsYUFBYSxFQUFpRCxNQUFNLG1EQUFtRCxDQUFDO0FBQ2pJLE9BQU8saURBQWlELENBQUM7SUFLNUMsb0JBQW9COzRCQURoQyxhQUFhLENBQUMsd0JBQXdCLENBQUM7Ozs7c0JBQ0UsV0FBVzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztvQ0FBbkIsU0FBUSxXQUFXOzs7O29DQUNsRCxRQUFRLENBQUMsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLENBQUM7b0NBQzFCLFFBQVEsQ0FBQyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsQ0FBQztpQ0FDOUIsUUFBUSxDQUFDLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxDQUFDO3lDQUM5QixRQUFRLENBQUMsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLENBQUM7c0NBQzlCLFFBQVEsQ0FBQyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsQ0FBQzttQ0FDOUIsUUFBUSxDQUFDLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxDQUFDO29DQUMzQixRQUFRLENBQUMsRUFB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