@happyvertical/smrt-assets 0.54.4 → 0.55.1

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.
@@ -2,7 +2,7 @@
2
2
  "version": "1.0.0",
3
3
  "timestamp": 0,
4
4
  "packageName": "@happyvertical/smrt-assets",
5
- "packageVersion": "0.54.4",
5
+ "packageVersion": "0.55.1",
6
6
  "objects": {
7
7
  "@happyvertical/smrt-assets:AssetAssociation": {
8
8
  "name": "assetassociation",
@@ -3,12 +3,12 @@
3
3
  "sensitiveFieldsExcluded": true,
4
4
  "generatedAt": "1970-01-01T00:00:00.000Z",
5
5
  "packageName": "@happyvertical/smrt-assets",
6
- "packageVersion": "0.54.4",
6
+ "packageVersion": "0.55.1",
7
7
  "sourceManifestPath": "dist/manifest.json",
8
8
  "agentDocPath": "AGENTS.md",
9
9
  "sourceHashes": {
10
- "manifest": "f65f22a7e0283b37f348d639e91ce1351e7311a5acf8f7adb01e073c57797708",
11
- "packageJson": "eb90e5eba4096a16ea2a61f2e7ac6b791ca2fb6a44a770239e84335b93b6f06a",
10
+ "manifest": "733bb6781ca43de437c211174cb37545c68f3e830f3ac12af0e71f62bd0c23bf",
11
+ "packageJson": "284154b0bda3185ba532a21eb37abaecddecddf8af74240ac7dd6eece7543a47",
12
12
  "agents": "b20a644cf88ab66f1086b329be02d127f5396026260fbc2c515d5842cfe3d3de"
13
13
  },
14
14
  "exports": [
@@ -4,6 +4,12 @@ export declare const attachmentMessages: {
4
4
  readonly 'assets.attachments.loading': "assets.attachments.loading";
5
5
  readonly 'assets.attachments.view': "assets.attachments.view";
6
6
  readonly 'assets.attachments.download': "assets.attachments.download";
7
+ readonly 'assets.attachments.remove': "assets.attachments.remove";
8
+ readonly 'assets.attachments.remove_title': "assets.attachments.remove_title";
9
+ readonly 'assets.attachments.remove_message': "assets.attachments.remove_message";
10
+ readonly 'assets.attachments.remove_confirm': "assets.attachments.remove_confirm";
11
+ readonly 'assets.attachments.remove_cancel': "assets.attachments.remove_cancel";
12
+ readonly 'assets.attachments.remove_failed': "assets.attachments.remove_failed";
7
13
  readonly 'assets.attachments.version': "assets.attachments.version";
8
14
  readonly 'assets.attachments.history': "assets.attachments.history";
9
15
  readonly 'assets.attachments.choose': "assets.attachments.choose";
@@ -1 +1 @@
1
- {"version":3,"file":"messages.d.ts","sourceRoot":"","sources":["../../../src/svelte/attachments/messages.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;CAiB7B,CAAC"}
1
+ {"version":3,"file":"messages.d.ts","sourceRoot":"","sources":["../../../src/svelte/attachments/messages.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;CAuB7B,CAAC"}
@@ -5,6 +5,12 @@ export const attachmentMessages = defineMessages({
5
5
  'assets.attachments.loading': 'Loading attachments…',
6
6
  'assets.attachments.view': 'View {name}',
7
7
  'assets.attachments.download': 'Download {name}',
8
+ 'assets.attachments.remove': 'Remove {name}',
9
+ 'assets.attachments.remove_title': 'Remove attachment?',
10
+ 'assets.attachments.remove_message': 'Remove {name} from this record?',
11
+ 'assets.attachments.remove_confirm': 'Remove',
12
+ 'assets.attachments.remove_cancel': 'Cancel',
13
+ 'assets.attachments.remove_failed': 'Could not remove {name}.',
8
14
  'assets.attachments.version': 'Version {version}',
9
15
  'assets.attachments.history': 'Version history',
10
16
  'assets.attachments.choose': 'Choose attachment',
@@ -21,6 +21,8 @@ export interface AssetAttachmentVersion extends Pick<Asset, 'name' | 'mimeType'>
21
21
  export interface AssetAttachment extends AssetAttachmentVersion {
22
22
  /** Caller-localized status, including unknown or application-specific states. */
23
23
  statusLabel?: string;
24
+ /** Per-item presentation gate for the remove action; default true. The endpoint must still authorize. */
25
+ canRemove?: boolean;
24
26
  /** Earlier versions already authorized by the caller. No history is fetched. */
25
27
  versions?: readonly AssetAttachmentVersion[];
26
28
  }
@@ -43,6 +45,27 @@ export interface AttachmentListProps {
43
45
  message?: string;
44
46
  /** Loading presentation; existing items remain visible. */
45
47
  loading?: boolean;
48
+ /**
49
+ * Host remove handler. Providing it (or `removeAction`) renders a Remove
50
+ * button per top-level attachment, behind a confirmation. Wins over
51
+ * `removeAction` when both are given. A returned promise keeps every remove
52
+ * button disabled until it settles.
53
+ */
54
+ onremove?: (attachment: AssetAttachment) => void | Promise<void>;
55
+ /** Native mode: URL receiving a POST of the attachment id after confirmation. */
56
+ removeAction?: string;
57
+ /** Native field carrying the attachment `id`, default attachmentId. */
58
+ removeIdField?: string;
59
+ /** Native submitter field name, default intent. */
60
+ removeIntentField?: string;
61
+ /** Native submitter value, default remove. */
62
+ removeIntent?: string;
63
+ /** Request/tenant/revision fields sent verbatim with a native removal. */
64
+ removeHiddenFields?: readonly AttachmentRequestField[];
65
+ /** Caller-owned pending state (for example a native request in flight); disables remove buttons. */
66
+ removePending?: boolean;
67
+ /** Touch-size controls; omit to inherit the ThemeProvider density. */
68
+ density?: 'comfortable' | 'touch';
46
69
  }
47
70
  /** Native private upload transport, owned and authorized by the consumer. */
48
71
  export interface AttachmentUploadProps {
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/svelte/attachments/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/svelte/attachments/types.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,12 @@
1
1
  <script lang="ts">
2
+ import { ConfirmDialog } from '@happyvertical/smrt-ui/feedback';
3
+ import { Form, Input } from '@happyvertical/smrt-ui/forms';
2
4
  import { useI18n } from '@happyvertical/smrt-ui/i18n';
3
5
  import { Button } from '@happyvertical/smrt-ui/ui';
4
6
  import { attachmentLink } from '../attachments/link.js';
5
7
  import { attachmentMessages as M } from '../attachments/messages.js';
6
8
  import type {
9
+ AssetAttachment,
7
10
  AssetAttachmentVersion,
8
11
  AttachmentListProps,
9
12
  } from '../attachments/types.js';
@@ -15,10 +18,67 @@ let {
15
18
  showHistory = true,
16
19
  message,
17
20
  loading = false,
21
+ onremove,
22
+ removeAction,
23
+ removeIdField = 'attachmentId',
24
+ removeIntentField = 'intent',
25
+ removeIntent = 'remove',
26
+ removeHiddenFields = [],
27
+ removePending = false,
28
+ density,
18
29
  }: Props = $props();
19
30
  const { t } = useI18n();
31
+ const instanceId = $props.id();
32
+ const removable = $derived(Boolean(onremove || removeAction));
33
+ let target = $state<AssetAttachment | undefined>();
34
+ let running = $state(false);
35
+ let failed = $state<string | undefined>();
36
+ const formId = $derived(`${instanceId}-remove`);
37
+ const busy = $derived(running || removePending);
38
+ function askRemove(item: AssetAttachment) {
39
+ failed = undefined;
40
+ target = item;
41
+ }
42
+ async function confirmRemove() {
43
+ const item = target;
44
+ if (!item || busy) return;
45
+ if (onremove) {
46
+ running = true;
47
+ try {
48
+ await onremove(item);
49
+ } catch {
50
+ failed = item.name;
51
+ } finally {
52
+ running = false;
53
+ target = undefined;
54
+ }
55
+ } else if (removeAction) {
56
+ const form = document.getElementById(formId) as HTMLFormElement | null;
57
+ if (!form) return;
58
+ // Native POST: stay pending until navigation; a restored (bfcache)
59
+ // page or a submission cancelled by an enhancing listener releases the controls again.
60
+ running = true;
61
+ let submitted: Event | undefined;
62
+ window.addEventListener(
63
+ 'submit',
64
+ (event) => {
65
+ submitted = event;
66
+ },
67
+ { capture: true, once: true },
68
+ );
69
+ form.requestSubmit();
70
+ // Dispatch is synchronous: a listener that cancelled it (even with
71
+ // stopPropagation; the capture listener sees it first) leaves no navigation coming, so release the controls.
72
+ if (submitted?.defaultPrevented) {
73
+ running = false;
74
+ target = undefined;
75
+ }
76
+ }
77
+ }
20
78
  </script>
21
79
 
80
+ <svelte:window onpageshow={(event) => { if (event.persisted) { running = false; target = undefined; } }} />
81
+
22
82
  {#snippet entry(item: AssetAttachmentVersion)}
23
83
  <strong>{item.name}</strong>
24
84
  <div class="metadata">
@@ -42,6 +102,9 @@ const { t } = useI18n();
42
102
  {#each attachments as attachment (attachment.id)}
43
103
  <li>
44
104
  {@render entry(attachment)}
105
+ {#if removable && attachment.canRemove !== false}
106
+ <div class="links"><Button type="button" variant="ghost" {density} disabled={busy} onclick={() => askRemove(attachment)}>{t(M['assets.attachments.remove'], { name: attachment.name })}</Button></div>
107
+ {/if}
45
108
  {#if attachment.statusLabel}<p>{attachment.statusLabel}</p>{/if}
46
109
  {#if showHistory && attachment.versions?.length}
47
110
  <h4>{t(M['assets.attachments.history'])}</h4>
@@ -50,6 +113,27 @@ const { t } = useI18n();
50
113
  </li>
51
114
  {/each}
52
115
  </ul>
116
+ {#if failed}<p role="alert">{t(M['assets.attachments.remove_failed'], { name: failed })}</p>{/if}
117
+ {#if removable}
118
+ {#if removeAction && !onremove}
119
+ <Form id={formId} method="post" action={removeAction} preventDefault={false}>
120
+ <Input type="hidden" name={removeIdField} value={target?.id ?? ''} interaction={false} />
121
+ {#each removeHiddenFields as field}<Input type="hidden" name={field.name} value={field.value} interaction={false} />{/each}
122
+ <Input type="hidden" name={removeIntentField} value={removeIntent} interaction={false} />
123
+ </Form>
124
+ {/if}
125
+ <ConfirmDialog
126
+ open={target !== undefined}
127
+ title={t(M['assets.attachments.remove_title'])}
128
+ message={t(M['assets.attachments.remove_message'], { name: target?.name ?? '' })}
129
+ confirmLabel={t(M['assets.attachments.remove_confirm'])}
130
+ cancelLabel={t(M['assets.attachments.remove_cancel'])}
131
+ destructive
132
+ loading={busy}
133
+ onconfirm={confirmRemove}
134
+ oncancel={() => { if (!busy) target = undefined; }}
135
+ />
136
+ {/if}
53
137
  </section>
54
138
 
55
139
  <style>
@@ -1 +1 @@
1
- {"version":3,"file":"AttachmentList.svelte.d.ts","sourceRoot":"","sources":["../../../src/svelte/components/AttachmentList.svelte.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAEV,mBAAmB,EACpB,MAAM,yBAAyB,CAAC;AAEjC,6EAA6E;AAC7E,MAAM,WAAW,KAAM,SAAQ,mBAAmB;CAAG;AAuDrD,QAAA,MAAM,cAAc,2CAAwC,CAAC;AAC7D,KAAK,cAAc,GAAG,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC;AACxD,eAAe,cAAc,CAAC"}
1
+ {"version":3,"file":"AttachmentList.svelte.d.ts","sourceRoot":"","sources":["../../../src/svelte/components/AttachmentList.svelte.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAGV,mBAAmB,EACpB,MAAM,yBAAyB,CAAC;AAEjC,6EAA6E;AAC7E,MAAM,WAAW,KAAM,SAAQ,mBAAmB;CAAG;AAgIrD,QAAA,MAAM,cAAc,2CAAwC,CAAC;AAC7D,KAAK,cAAc,GAAG,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC;AACxD,eAAe,cAAc,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@happyvertical/smrt-assets",
3
- "version": "0.54.4",
3
+ "version": "0.55.1",
4
4
  "smrtJsdoc": "strict",
5
5
  "description": "Asset management system with versioning, metadata, and AI-powered operations for SMRT framework",
6
6
  "type": "module",
@@ -47,11 +47,11 @@
47
47
  "@happyvertical/ai": "^0.102.1",
48
48
  "@happyvertical/files": "^0.102.1",
49
49
  "@happyvertical/logger": "^0.102.1",
50
- "@happyvertical/smrt-core": "0.54.4",
51
- "@happyvertical/smrt-tags": "0.54.4",
52
- "@happyvertical/smrt-tenancy": "0.54.4",
53
- "@happyvertical/smrt-types": "0.54.4",
54
- "@happyvertical/smrt-ui": "0.54.4",
50
+ "@happyvertical/smrt-core": "0.55.1",
51
+ "@happyvertical/smrt-tags": "0.55.1",
52
+ "@happyvertical/smrt-tenancy": "0.55.1",
53
+ "@happyvertical/smrt-types": "0.55.1",
54
+ "@happyvertical/smrt-ui": "0.55.1",
55
55
  "@happyvertical/sql": "^0.102.1",
56
56
  "@happyvertical/utils": "^0.102.1"
57
57
  },
@@ -64,8 +64,8 @@
64
64
  }
65
65
  },
66
66
  "devDependencies": {
67
- "@happyvertical/smrt-playground": "0.54.4",
68
- "@happyvertical/smrt-vitest": "0.54.4",
67
+ "@happyvertical/smrt-playground": "0.55.1",
68
+ "@happyvertical/smrt-vitest": "0.55.1",
69
69
  "@sveltejs/adapter-auto": "^7.0.1",
70
70
  "@sveltejs/kit": "2.69.1",
71
71
  "@sveltejs/package": "^2.5.8",