@awesome-markdown/board-ui 1.6.0 → 2.0.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.
Files changed (67) hide show
  1. package/dist/board/Board.d.ts.map +1 -1
  2. package/dist/board/Board.js +79 -66
  3. package/dist/board/Board.js.map +1 -1
  4. package/dist/board/Cell.d.ts.map +1 -1
  5. package/dist/board/Cell.js +11 -6
  6. package/dist/board/Cell.js.map +1 -1
  7. package/dist/board/HomelessItemCard.d.ts.map +1 -1
  8. package/dist/board/HomelessItemCard.js +2 -1
  9. package/dist/board/HomelessItemCard.js.map +1 -1
  10. package/dist/board/ItemCard.d.ts.map +1 -1
  11. package/dist/board/ItemCard.js +9 -16
  12. package/dist/board/ItemCard.js.map +1 -1
  13. package/dist/board/dnd/mutateDragDrop.d.ts +3 -5
  14. package/dist/board/dnd/mutateDragDrop.d.ts.map +1 -1
  15. package/dist/board/dnd/mutateDragDrop.js +36 -55
  16. package/dist/board/dnd/mutateDragDrop.js.map +1 -1
  17. package/dist/board/layout/AxisBehavior.d.ts +2 -1
  18. package/dist/board/layout/AxisBehavior.d.ts.map +1 -1
  19. package/dist/board/layout/AxisBehavior.js +9 -5
  20. package/dist/board/layout/AxisBehavior.js.map +1 -1
  21. package/dist/board/layout/AxisDrawer.d.ts.map +1 -1
  22. package/dist/board/layout/AxisDrawer.js +1 -1
  23. package/dist/board/layout/AxisDrawer.js.map +1 -1
  24. package/dist/board/layout/filter-draft.d.ts.map +1 -1
  25. package/dist/board/layout/filter-draft.js +3 -1
  26. package/dist/board/layout/filter-draft.js.map +1 -1
  27. package/dist/components/ItemRecovery.d.ts +9 -0
  28. package/dist/components/ItemRecovery.d.ts.map +1 -0
  29. package/dist/components/ItemRecovery.js +48 -0
  30. package/dist/components/ItemRecovery.js.map +1 -0
  31. package/dist/components/PropertyTree.d.ts +18 -0
  32. package/dist/components/PropertyTree.d.ts.map +1 -0
  33. package/dist/components/PropertyTree.js +109 -0
  34. package/dist/components/PropertyTree.js.map +1 -0
  35. package/dist/lib/item-board.d.ts +0 -3
  36. package/dist/lib/item-board.d.ts.map +1 -1
  37. package/dist/lib/item-board.js +0 -7
  38. package/dist/lib/item-board.js.map +1 -1
  39. package/dist/lib/patch-visible-item.d.ts +4 -0
  40. package/dist/lib/patch-visible-item.d.ts.map +1 -0
  41. package/dist/lib/patch-visible-item.js +10 -0
  42. package/dist/lib/patch-visible-item.js.map +1 -0
  43. package/dist/lib/property-display.d.ts +2 -3
  44. package/dist/lib/property-display.d.ts.map +1 -1
  45. package/dist/lib/property-display.js +15 -10
  46. package/dist/lib/property-display.js.map +1 -1
  47. package/dist/lib/property-tree.d.ts +23 -0
  48. package/dist/lib/property-tree.d.ts.map +1 -0
  49. package/dist/lib/property-tree.js +109 -0
  50. package/dist/lib/property-tree.js.map +1 -0
  51. package/dist/pages/ItemEditorPage.d.ts.map +1 -1
  52. package/dist/pages/ItemEditorPage.js +185 -204
  53. package/dist/pages/ItemEditorPage.js.map +1 -1
  54. package/package.json +6 -5
  55. package/styles.css +766 -146
  56. package/dist/components/BoardAssigneeField.d.ts +0 -10
  57. package/dist/components/BoardAssigneeField.d.ts.map +0 -1
  58. package/dist/components/BoardAssigneeField.js +0 -37
  59. package/dist/components/BoardAssigneeField.js.map +0 -1
  60. package/dist/components/DeleteItemConfirmDialog.d.ts +0 -14
  61. package/dist/components/DeleteItemConfirmDialog.d.ts.map +0 -1
  62. package/dist/components/DeleteItemConfirmDialog.js +0 -46
  63. package/dist/components/DeleteItemConfirmDialog.js.map +0 -1
  64. package/dist/components/ItemEditorActions.d.ts +0 -15
  65. package/dist/components/ItemEditorActions.d.ts.map +0 -1
  66. package/dist/components/ItemEditorActions.js +0 -48
  67. package/dist/components/ItemEditorActions.js.map +0 -1
@@ -1,255 +1,236 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import React, { useEffect, useState, useCallback } from 'react';
2
+ import React, { useEffect, useRef, useState } from 'react';
3
+ import ReactMarkdown from 'react-markdown';
4
+ import { ItemSchema, SYSTEM_KEYS, itemLabel } from '@awesome-markdown/contracts';
3
5
  import { useProvider } from '../provider/ProviderContext.js';
4
6
  import { useBreadcrumb } from '../breadcrumb.js';
5
7
  import { useRouterAdapter } from '../router/RouterAdapter.js';
6
- import { BoardAssigneeField } from '../components/BoardAssigneeField.js';
7
- import { DeleteItemConfirmDialog } from '../components/DeleteItemConfirmDialog.js';
8
- import { ItemEditorActions } from '../components/ItemEditorActions.js';
9
- import { getBoardScopedString } from '../lib/item-board.js';
10
8
  import { useProviderSubscribe } from '../state/useProviderSubscribe.js';
11
- import { useBoardRender } from '../state/useBoardRender.js';
12
- import { PropertyValueDisplay } from '../lib/property-display.js';
9
+ import { PropertyRead, PropertyEdit } from '../components/PropertyTree.js';
10
+ import { ItemRecovery } from '../components/ItemRecovery.js';
11
+ import { draftItem, draftMutations, propertiesNode, protectedRoot, updateNode, } from '../lib/property-tree.js';
13
12
  export function ItemEditorPage() {
14
13
  const router = useRouterAdapter();
15
14
  const { slug } = router.useParams();
16
- const searchParams = router.useSearchParams();
17
- const { navigate } = router;
15
+ const board = router.useSearchParams().get('board');
18
16
  const provider = useProvider();
19
17
  const { setSegments } = useBreadcrumb();
20
- const boardSlug = searchParams.get('board') ?? undefined;
21
- const backPath = boardSlug ? `/boards/${boardSlug}` : '/';
22
- const { render: boardRender } = useBoardRender(boardSlug ?? '');
23
- const detailLayout = boardRender?.board.detailLayout ?? [];
24
- const [item, setItem] = useState(null);
25
- const [title, setTitle] = useState('');
18
+ const [record, setRecord] = useState(null);
19
+ const [tree, setTree] = useState(null);
26
20
  const [body, setBody] = useState('');
27
- const [assignee, setAssignee] = useState('');
21
+ const [editing, setEditing] = useState(false);
22
+ const [pending, setPending] = useState(new Set());
28
23
  const [loading, setLoading] = useState(true);
29
24
  const [saving, setSaving] = useState(false);
30
- const [error, setError] = useState(null);
31
- const [dirty, setDirty] = useState(false);
32
- const [deleting, setDeleting] = useState(false);
33
- const [confirmingDelete, setConfirmingDelete] = useState(false);
25
+ const [error, setError] = useState('');
26
+ const [message, setMessage] = useState('');
27
+ const [incoming, setIncoming] = useState(false);
28
+ const editButton = useRef(null);
29
+ const activeEdit = useRef(false);
30
+ activeEdit.current = editing;
31
+ const generation = useRef(0);
32
+ const backPath = board ? `/boards/${encodeURIComponent(board)}` : '/';
33
+ const accept = (fetched) => {
34
+ setRecord(fetched);
35
+ setTree(propertiesNode(fetched.item));
36
+ setBody(fetched.item.body ?? '');
37
+ setPending(new Set());
38
+ setIncoming(false);
39
+ setError('');
40
+ };
34
41
  useEffect(() => {
35
- if (!slug)
36
- return;
42
+ const request = ++generation.current;
37
43
  setLoading(true);
38
- provider
39
- .getItem(slug)
44
+ setRecord(null);
45
+ setEditing(false);
46
+ setError('');
47
+ void provider
48
+ .getItem(slug ?? '')
40
49
  .then((fetched) => {
50
+ if (request !== generation.current)
51
+ return;
41
52
  if (!fetched) {
42
53
  setError(`Item "${slug}" not found.`);
43
54
  return;
44
55
  }
45
- setItem(fetched);
46
- setTitle(fetched.title);
47
- setBody(fetched.body ?? '');
48
- setAssignee(boardSlug ? getBoardScopedString(fetched, boardSlug, 'assignee') : '');
56
+ accept(fetched);
49
57
  })
50
- .catch((err) => {
51
- setError(err instanceof Error ? err.message : 'Failed to load item.');
58
+ .catch((reason) => {
59
+ if (request === generation.current)
60
+ setError(String(reason));
52
61
  })
53
- .finally(() => setLoading(false));
54
- }, [slug, provider, boardSlug]);
62
+ .finally(() => {
63
+ if (request === generation.current)
64
+ setLoading(false);
65
+ });
66
+ return () => {
67
+ ++generation.current;
68
+ };
69
+ }, [slug, provider]);
55
70
  useProviderSubscribe((event) => {
56
- if (!slug)
71
+ if (!slug || (event?.type === 'change' && event.entitySlug !== slug))
57
72
  return;
58
- if (dirty)
73
+ if (activeEdit.current) {
74
+ setIncoming(true);
59
75
  return;
60
- if (event !== null && event.type === 'change' && event.entitySlug !== slug)
61
- return;
62
- provider
76
+ }
77
+ const request = generation.current;
78
+ void provider
63
79
  .getItem(slug)
64
80
  .then((fetched) => {
65
- if (!fetched)
81
+ if (request !== generation.current || activeEdit.current)
66
82
  return;
67
- setItem(fetched);
68
- setTitle(fetched.title);
69
- setBody(fetched.body ?? '');
70
- setAssignee(boardSlug ? getBoardScopedString(fetched, boardSlug, 'assignee') : '');
83
+ if (fetched)
84
+ accept(fetched);
85
+ else
86
+ setError('Item was deleted.');
71
87
  })
72
- .catch(() => { });
88
+ .catch((reason) => setError(String(reason)));
73
89
  });
74
90
  useEffect(() => {
75
- const segments = boardSlug
76
- ? [
77
- { label: 'boards', to: '/' },
78
- { label: boardSlug, to: `/boards/${boardSlug}` },
79
- { label: 'items', arrow: true },
80
- { label: slug ?? '' },
81
- ]
82
- : [{ label: 'items' }, { label: slug ?? '' }];
83
- setSegments(segments);
91
+ setSegments(board
92
+ ? [{ label: 'boards', to: '/' }, { label: board, to: backPath }, { label: slug ?? '' }]
93
+ : [{ label: 'items', to: '/' }, { label: slug ?? '' }]);
84
94
  return () => setSegments([]);
85
- }, [slug, boardSlug, setSegments]);
86
- const handleSave = useCallback(async () => {
87
- if (!slug || !item)
88
- return;
89
- const trimmedTitle = title.trim();
90
- if (!trimmedTitle) {
91
- setError('Title cannot be empty.');
92
- return;
93
- }
94
- setSaving(true);
95
- setError(null);
96
- const mutations = [];
97
- if (trimmedTitle !== item.title) {
98
- mutations.push({ op: 'set', path: 'title', value: trimmedTitle });
95
+ }, [slug, board, backPath, setSegments]);
96
+ let draft = record?.item ?? null;
97
+ let invalid = '';
98
+ if (editing && record && tree) {
99
+ try {
100
+ draft = draftItem(record.item, tree, body);
101
+ ItemSchema.parse(draft);
99
102
  }
100
- if (body !== (item.body ?? '')) {
101
- mutations.push({ op: 'set', path: 'body', value: body });
103
+ catch (reason) {
104
+ draft = null;
105
+ invalid = reason instanceof Error ? reason.message : String(reason);
102
106
  }
103
- if (boardSlug) {
104
- const nextAssignee = assignee.trim();
105
- const currentAssignee = getBoardScopedString(item, boardSlug, 'assignee');
106
- if (nextAssignee !== currentAssignee) {
107
- mutations.push(nextAssignee === ''
108
- ? { op: 'delete', path: `boards.${boardSlug}.assignee` }
109
- : { op: 'set', path: `boards.${boardSlug}.assignee`, value: nextAssignee });
107
+ }
108
+ const dirty = editing &&
109
+ (Boolean(invalid) ||
110
+ pending.size > 0 ||
111
+ JSON.stringify(draft) !== JSON.stringify(record?.item));
112
+ useEffect(() => {
113
+ if (!dirty)
114
+ return;
115
+ const unload = (event) => {
116
+ event.preventDefault();
117
+ event.returnValue = '';
118
+ };
119
+ const click = (event) => {
120
+ const target = event.target instanceof Element ? event.target.closest('a[href]') : null;
121
+ if (target?.hasAttribute('download') ||
122
+ target?.getAttribute('target') === '_blank' ||
123
+ event.ctrlKey ||
124
+ event.metaKey)
125
+ return;
126
+ if (target && !window.confirm('Discard unsaved item changes and leave?')) {
127
+ event.preventDefault();
128
+ event.stopPropagation();
110
129
  }
111
- }
112
- if (mutations.length === 0) {
113
- navigate(backPath);
130
+ };
131
+ window.addEventListener('beforeunload', unload);
132
+ document.addEventListener('click', click, true);
133
+ return () => {
134
+ window.removeEventListener('beforeunload', unload);
135
+ document.removeEventListener('click', click, true);
136
+ };
137
+ }, [dirty]);
138
+ const cancel = () => {
139
+ if (dirty && !window.confirm('Discard all changes, including incomplete input?'))
140
+ return;
141
+ if (record)
142
+ accept(record);
143
+ setEditing(false);
144
+ setMessage('Changes discarded.');
145
+ requestAnimationFrame(() => editButton.current?.focus());
146
+ };
147
+ const save = async () => {
148
+ if (!record || !draft || invalid || pending.size) {
149
+ setError(invalid || 'Confirm or cancel the pending addition before saving.');
150
+ const field = document.querySelector('[aria-invalid="true"]');
151
+ let parent = field?.parentElement;
152
+ while (parent) {
153
+ if (parent instanceof HTMLDetailsElement)
154
+ parent.open = true;
155
+ parent = parent.parentElement;
156
+ }
157
+ field?.focus();
114
158
  return;
115
159
  }
160
+ setSaving(true);
161
+ setError('');
116
162
  try {
117
- await provider.patchItem(slug, { mutations });
118
- navigate(backPath);
163
+ const mutations = draftMutations(record.item, draft);
164
+ const saved = mutations.length
165
+ ? await provider.patchItem(record.item.slug, { revision: record.revision, mutations })
166
+ : await provider.getItem(record.item.slug);
167
+ if (!saved)
168
+ throw new Error('Item was deleted; export the draft for recovery.');
169
+ if (!mutations.length && saved.revision !== record.revision)
170
+ throw new Error('Conflict: the source changed after entering Edit. Reload after discarding the snapshot.');
171
+ accept(saved);
172
+ setEditing(false);
173
+ setIncoming(false);
174
+ setMessage('Item saved.');
175
+ requestAnimationFrame(() => editButton.current?.focus());
119
176
  }
120
- catch (err) {
121
- setError(err instanceof Error ? err.message : 'Failed to save item.');
177
+ catch (reason) {
178
+ setError(reason instanceof Error ? reason.message : String(reason));
122
179
  }
123
180
  finally {
124
181
  setSaving(false);
125
182
  }
126
- }, [slug, item, title, body, assignee, boardSlug, provider, navigate, backPath]);
127
- const handleCancel = useCallback(() => {
128
- navigate(backPath);
129
- }, [navigate, backPath]);
130
- const handleDeleteRequest = useCallback(() => {
131
- setConfirmingDelete(true);
132
- }, []);
133
- const handleDeleteCancel = useCallback(() => {
134
- setConfirmingDelete(false);
135
- }, []);
136
- const handleDeleteConfirm = useCallback(async () => {
137
- if (!slug)
183
+ };
184
+ const reload = async () => {
185
+ if (editing && !window.confirm('Discard the edit snapshot and reload the current source?'))
138
186
  return;
139
- setDeleting(true);
140
- setError(null);
141
187
  try {
142
- await provider.deleteItem(slug);
143
- navigate(backPath);
188
+ const fetched = await provider.getItem(slug ?? '');
189
+ if (!fetched)
190
+ throw new Error('Item was deleted; export your draft for recovery.');
191
+ accept(fetched);
192
+ setEditing(false);
193
+ setMessage('Current source loaded.');
144
194
  }
145
- catch (err) {
146
- setError(err instanceof Error ? err.message : 'Failed to delete item.');
147
- setDeleting(false);
148
- setConfirmingDelete(false);
195
+ catch (reason) {
196
+ setError(String(reason));
149
197
  }
150
- }, [slug, provider, navigate, backPath]);
151
- const handleTitleChange = (e) => {
152
- setTitle(e.target.value);
153
- setDirty(true);
154
- };
155
- const handleBodyChange = (e) => {
156
- setBody(e.target.value);
157
- setDirty(true);
158
198
  };
159
- const handleAssigneeChange = (value) => {
160
- setAssignee(value);
161
- setDirty(true);
162
- };
163
- const handleKeyDown = (e) => {
164
- if ((e.metaKey || e.ctrlKey) && e.key === 's') {
165
- e.preventDefault();
166
- void handleSave();
167
- }
168
- if (e.key === 'Escape') {
169
- if (confirmingDelete) {
170
- handleDeleteCancel();
171
- return;
199
+ if (loading)
200
+ return (_jsx("p", { className: "item-page", "data-testid": "item-editor-loading", children: "Loading item\u2026" }));
201
+ if (!record || !tree)
202
+ return (_jsxs("div", { className: "item-page", "data-testid": "item-editor-error", children: [_jsx("p", { role: "alert", children: error }), _jsx("button", { onClick: () => router.navigate(backPath), children: "Back" })] }));
203
+ return (_jsxs("article", { className: "item-page", "data-testid": "item-editor", onKeyDown: (event) => {
204
+ if (editing && (event.metaKey || event.ctrlKey) && event.key === 's') {
205
+ event.preventDefault();
206
+ void save();
172
207
  }
173
- handleCancel();
174
- }
175
- };
176
- if (loading) {
177
- return (_jsx("div", { style: {
178
- display: 'flex',
179
- alignItems: 'center',
180
- justifyContent: 'center',
181
- height: '100%',
182
- fontFamily: 'var(--font-mono)',
183
- fontSize: '13px',
184
- color: 'var(--ink-muted)',
185
- }, "data-testid": "item-editor-loading", children: "loading\u2026" }));
186
- }
187
- if (error && !item) {
188
- return (_jsxs("div", { style: {
189
- display: 'flex',
190
- flexDirection: 'column',
191
- alignItems: 'center',
192
- justifyContent: 'center',
193
- height: '100%',
194
- gap: '12px',
195
- fontFamily: 'var(--font-mono)',
196
- fontSize: '13px',
197
- color: 'var(--ink-muted)',
198
- }, "data-testid": "item-editor-error", children: [_jsx("span", { children: error }), _jsx("button", { type: "button", onClick: handleCancel, style: {
199
- fontFamily: 'var(--font-mono)',
200
- fontSize: '13px',
201
- color: 'var(--ink-muted)',
202
- background: 'none',
203
- border: 'none',
204
- cursor: 'pointer',
205
- textDecoration: 'underline',
206
- }, children: "\u2190 back" })] }));
207
- }
208
- return (_jsxs("div", { style: {
209
- maxWidth: '720px',
210
- margin: '0 auto',
211
- padding: '40px 24px',
212
- display: 'flex',
213
- flexDirection: 'column',
214
- gap: '20px',
215
- }, onKeyDown: handleKeyDown, "data-testid": "item-editor", children: [_jsx("div", { style: {
216
- fontFamily: 'var(--font-mono)',
217
- fontSize: '11px',
218
- fontWeight: 400,
219
- color: 'var(--ink-muted)',
220
- textTransform: 'uppercase',
221
- letterSpacing: '0.08em',
222
- }, "data-testid": "item-editor-slug", children: slug }), _jsx("input", { type: "text", value: title, onChange: handleTitleChange, placeholder: "Title", disabled: saving, autoFocus: true, style: {
223
- fontFamily: 'var(--font-sans)',
224
- fontSize: '22px',
225
- fontWeight: 500,
226
- color: 'var(--ink)',
227
- background: 'transparent',
228
- border: 'none',
229
- borderBottom: '1px solid var(--border)',
230
- borderRadius: 0,
231
- padding: '4px 0',
232
- width: '100%',
233
- outline: 'none',
234
- }, onFocus: (e) => { e.currentTarget.style.borderBottomColor = 'var(--accent)'; }, onBlur: (e) => { e.currentTarget.style.borderBottomColor = 'var(--border)'; }, "data-testid": "item-editor-title" }), _jsx("textarea", { value: body, onChange: handleBodyChange, placeholder: "Add a description\u2026", disabled: saving, rows: 16, style: {
235
- fontFamily: 'var(--font-mono)',
236
- fontSize: '13px',
237
- fontWeight: 400,
238
- color: 'var(--ink)',
239
- background: 'transparent',
240
- border: '1px solid var(--border)',
241
- borderRadius: 0,
242
- padding: '12px',
243
- width: '100%',
244
- resize: 'vertical',
245
- outline: 'none',
246
- lineHeight: 1.6,
247
- }, onFocus: (e) => { e.currentTarget.style.borderColor = 'var(--accent)'; }, onBlur: (e) => { e.currentTarget.style.borderColor = 'var(--border)'; }, "data-testid": "item-editor-body" }), boardSlug && (_jsx(BoardAssigneeField, { boardSlug: boardSlug, value: assignee, disabled: saving, onChange: handleAssigneeChange })), item && detailLayout.length > 0 && (_jsx("div", { className: "flex flex-col gap-2", style: { borderTop: '1px solid var(--border)', paddingTop: '16px' }, "data-testid": "item-editor-properties", children: detailLayout.map((layout) => (_jsx(PropertyValueDisplay, { item: item, boardSlug: boardSlug ?? '', layout: layout }, layout.property))) })), error && (_jsx("div", { style: {
248
- fontFamily: 'var(--font-mono)',
249
- fontSize: '12px',
250
- color: 'var(--ink)',
251
- borderLeft: '2px solid var(--ink-muted)',
252
- paddingLeft: '12px',
253
- }, "data-testid": "item-editor-save-error", children: error })), _jsx(ItemEditorActions, { saving: saving, deleting: deleting, dirty: dirty, onSave: () => void handleSave(), onCancel: handleCancel, onDeleteRequest: handleDeleteRequest }), confirmingDelete && (_jsx(DeleteItemConfirmDialog, { deleting: deleting, error: error, onCancel: handleDeleteCancel, onConfirm: () => void handleDeleteConfirm() }))] }));
208
+ if (editing && event.key === 'Escape') {
209
+ event.preventDefault();
210
+ cancel();
211
+ }
212
+ }, children: [_jsxs("header", { className: "item-heading", children: [_jsxs("div", { children: [_jsx("p", { className: "item-slug", children: record.item.slug }), _jsx("h1", { children: itemLabel(record.item) })] }), !editing && (_jsx("button", { type: "button", ref: editButton, "data-testid": "item-edit", onClick: () => {
213
+ accept(record);
214
+ setEditing(true);
215
+ setMessage('Editing item. Changes are saved only with Save.');
216
+ requestAnimationFrame(() => document.querySelector('[data-testid="item-editor-body"]')?.focus());
217
+ }, children: "Edit" }))] }), _jsx("p", { role: "status", "aria-live": "polite", className: "item-status", children: message }), incoming && (_jsx("p", { role: "status", children: "The source may have changed. Your edit snapshot is preserved; saving will check its revision." })), error && (_jsxs("div", { role: "alert", "data-testid": "item-editor-save-error", children: [_jsx("p", { children: error }), _jsx("button", { type: "button", disabled: saving, onClick: () => void reload(), children: "Reload source" })] })), _jsxs("fieldset", { disabled: saving, className: "item-session", children: [_jsx("section", { className: "item-document", "aria-label": "Item content", children: editing ? (_jsx("textarea", { "aria-label": "Document text", "data-testid": "item-editor-body", rows: 12, value: body, onChange: (event) => setBody(event.target.value) })) : (_jsx("div", { "data-testid": "item-document", children: _jsx(ReactMarkdown, { children: record.item.body ?? '' }) })) }), _jsxs("section", { "aria-labelledby": "properties-heading", children: [_jsx("h2", { id: "properties-heading", children: "Properties" }), editing ? (_jsx(PropertyEdit, { node: tree, label: "Properties", root: true, change: (id, change) => setTree((current) => (current ? updateNode(current, id, change) : current)), pending: (id, open) => setPending((previous) => {
218
+ const next = new Set(previous);
219
+ if (open)
220
+ next.add(id);
221
+ else
222
+ next.delete(id);
223
+ return next;
224
+ }), announce: setMessage })) : (_jsx("div", { "data-testid": "item-properties", children: Object.entries(record.item)
225
+ .filter(([key]) => !protectedRoot(key))
226
+ .map(([key, value]) => (_jsx(PropertyRead, { label: key, value: value }, key))) }))] }), _jsxs("details", { className: "item-metadata", children: [_jsx("summary", { children: "System metadata \u00B7 read-only" }), SYSTEM_KEYS.map((key) => (_jsx(PropertyRead, { label: key, value: record.item[key] }, key)))] }), editing && (_jsxs("div", { className: "item-actions", children: [_jsx("button", { type: "button", "data-testid": "item-save", onClick: () => void save(), children: saving ? 'Saving…' : 'Save' }), _jsx("button", { type: "button", onClick: cancel, children: "Cancel" })] }))] }), _jsx(ItemRecovery, { item: draft, invalid: invalid || (pending.size ? 'Confirm or cancel the pending addition.' : ''), announce: setMessage }), !editing && (_jsxs("footer", { className: "item-actions", children: [_jsxs("button", { type: "button", "data-testid": "item-back", onClick: () => router.navigate(backPath), children: ["Back", board ? ' to board' : ''] }), _jsx("button", { type: "button", onClick: () => {
227
+ if (!window.confirm(`Permanently delete ${itemLabel(record.item)}?`))
228
+ return;
229
+ setSaving(true);
230
+ void provider.deleteItem(record.item.slug).then(() => router.navigate(backPath), (reason) => {
231
+ setError(String(reason));
232
+ setSaving(false);
233
+ });
234
+ }, children: "Delete item" })] }))] }));
254
235
  }
255
236
  //# sourceMappingURL=ItemEditorPage.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ItemEditorPage.js","sourceRoot":"","sources":["../../src/pages/ItemEditorPage.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ItemEditorPage.js","sourceRoot":"","sources":["../../src/pages/ItemEditorPage.tsx"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@awesome-markdown/board-ui",
3
- "version": "1.6.0",
3
+ "version": "2.0.0",
4
4
  "license": "MIT",
5
5
  "repository": {
6
6
  "type": "git",
@@ -38,9 +38,10 @@
38
38
  "@dnd-kit/sortable": "^10.0.0",
39
39
  "@dnd-kit/utilities": "^3.2.2",
40
40
  "diff": "^7.0.0",
41
- "@awesome-markdown/filter-engine": "1.6.0",
42
- "@awesome-markdown/contracts": "1.6.0",
43
- "@awesome-markdown/provider-http": "1.6.0"
41
+ "react-markdown": "^10.1.0",
42
+ "@awesome-markdown/contracts": "2.0.0",
43
+ "@awesome-markdown/filter-engine": "2.0.1",
44
+ "@awesome-markdown/provider-http": "2.0.0"
44
45
  },
45
46
  "devDependencies": {
46
47
  "@types/react": "^19.0.0",
@@ -50,7 +51,7 @@
50
51
  "react-dom": "^19.0.0",
51
52
  "typescript": "^5.7.3",
52
53
  "vitest": "^3.0.0",
53
- "@awesome-markdown/provider-localstorage": "1.6.0"
54
+ "@awesome-markdown/provider-localstorage": "2.0.0"
54
55
  },
55
56
  "scripts": {
56
57
  "build": "tsc --build",