@toon-protocol/views 0.7.1 → 0.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/app/index.html +68 -68
- package/dist/atoms/media.d.ts.map +1 -1
- package/dist/atoms/media.js +21 -6
- package/dist/atoms/media.js.map +1 -1
- package/dist/atoms/profile-editor.d.ts +3 -0
- package/dist/atoms/profile-editor.d.ts.map +1 -0
- package/dist/atoms/profile-editor.js +144 -0
- package/dist/atoms/profile-editor.js.map +1 -0
- package/dist/atoms/registry.d.ts.map +1 -1
- package/dist/atoms/registry.js +2 -0
- package/dist/atoms/registry.js.map +1 -1
- package/dist/atoms/social.d.ts.map +1 -1
- package/dist/atoms/social.js +31 -4
- package/dist/atoms/social.js.map +1 -1
- package/dist/atoms/types.d.ts +10 -0
- package/dist/atoms/types.d.ts.map +1 -1
- package/dist/catalog.d.ts.map +1 -1
- package/dist/catalog.js +14 -2
- package/dist/catalog.js.map +1 -1
- package/dist/examples.d.ts +6 -0
- package/dist/examples.d.ts.map +1 -1
- package/dist/examples.js +25 -1
- package/dist/examples.js.map +1 -1
- package/dist/runtime.d.ts.map +1 -1
- package/dist/runtime.js +65 -3
- package/dist/runtime.js.map +1 -1
- package/dist/server/apps-server.js +2 -2
- package/dist/server/backend.d.ts +9 -9
- package/dist/server/backend.d.ts.map +1 -1
- package/dist/server/daemon-backend.d.ts +2 -2
- package/dist/server/daemon-backend.d.ts.map +1 -1
- package/dist/server/daemon-backend.js +1 -1
- package/dist/server/daemon-backend.js.map +1 -1
- package/dist/server/fake-backend.js +1 -1
- package/dist/spec.d.ts +7 -0
- package/dist/spec.d.ts.map +1 -1
- package/dist/spec.js +4 -1
- package/dist/spec.js.map +1 -1
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"media.d.ts","sourceRoot":"","sources":["../../src/atoms/media.tsx"],"names":[],"mappings":"AAAA,oFAAoF;AACpF,OAAO,EAAoB,KAAK,EAAE,EAAE,MAAM,OAAO,CAAC;AAClD,OAAO,EAAE,KAAK,YAAY,EAAuD,MAAM,qBAAqB,CAAC;AAG7G,OAAO,EAAE,KAAK,IAAI,EAAwB,MAAM,YAAY,CAAC;AA6C7D,4EAA4E;AAC5E,eAAO,MAAM,eAAe,EAAE,EAAE,CAAC;IAAE,QAAQ,EAAE,YAAY,EAAE,CAAA;CAAE,CAS5D,CAAC;
|
|
1
|
+
{"version":3,"file":"media.d.ts","sourceRoot":"","sources":["../../src/atoms/media.tsx"],"names":[],"mappings":"AAAA,oFAAoF;AACpF,OAAO,EAAoB,KAAK,EAAE,EAAE,MAAM,OAAO,CAAC;AAClD,OAAO,EAAE,KAAK,YAAY,EAAuD,MAAM,qBAAqB,CAAC;AAG7G,OAAO,EAAE,KAAK,IAAI,EAAwB,MAAM,YAAY,CAAC;AA6C7D,4EAA4E;AAC5E,eAAO,MAAM,eAAe,EAAE,EAAE,CAAC;IAAE,QAAQ,EAAE,YAAY,EAAE,CAAA;CAAE,CAS5D,CAAC;AAkGF,eAAO,MAAM,UAAU,EAAE,IAAI,EAO5B,CAAC"}
|
package/dist/atoms/media.js
CHANGED
|
@@ -51,16 +51,26 @@ const MediaEmbed = ({ events }) => {
|
|
|
51
51
|
const { variants } = variantsFor(event);
|
|
52
52
|
return _jsx(InlineMediaList, { variants: variants });
|
|
53
53
|
};
|
|
54
|
+
/**
|
|
55
|
+
* Compose the uploader's error line: the recognizable "Upload failed" label,
|
|
56
|
+
* suffixed with the real underlying error (the daemon labels which leg —
|
|
57
|
+
* Arweave upload vs. post-upload publish — failed) when one is present. Falls
|
|
58
|
+
* back to the bare label when no diagnostic string is available.
|
|
59
|
+
*/
|
|
60
|
+
function uploadErrorMessage(detail) {
|
|
61
|
+
const trimmed = detail?.trim();
|
|
62
|
+
return trimmed ? `Upload failed: ${trimmed}` : 'Upload failed.';
|
|
63
|
+
}
|
|
54
64
|
const MediaUploader = ({ props, actions }) => {
|
|
55
65
|
const label = typeof props['label'] === 'string' ? props['label'] : 'Upload media';
|
|
56
66
|
const inputRef = useRef(null);
|
|
57
67
|
const [busy, setBusy] = useState(false);
|
|
58
68
|
const [uploadedOk, setUploadedOk] = useState(false);
|
|
59
|
-
const [uploadError, setUploadError] = useState(
|
|
69
|
+
const [uploadError, setUploadError] = useState(null);
|
|
60
70
|
const handleFile = async (file) => {
|
|
61
71
|
setBusy(true);
|
|
62
72
|
setUploadedOk(false);
|
|
63
|
-
setUploadError(
|
|
73
|
+
setUploadError(null);
|
|
64
74
|
try {
|
|
65
75
|
const buf = await new Promise((resolve, reject) => {
|
|
66
76
|
const reader = new FileReader();
|
|
@@ -77,14 +87,19 @@ const MediaUploader = ({ props, actions }) => {
|
|
|
77
87
|
const dataBase64 = btoa(binary);
|
|
78
88
|
const outcome = await actions['upload']?.({ dataBase64, mime: file.type || undefined });
|
|
79
89
|
if (outcome?.ok === false) {
|
|
80
|
-
|
|
90
|
+
// Surface the real underlying error so the failing leg (Arweave upload
|
|
91
|
+
// vs. post-upload kind:20 publish) is diagnosable from the UI; the
|
|
92
|
+
// daemon labels each leg in its error text. Keep the recognizable
|
|
93
|
+
// "Upload failed" affordance as a prefix, degrading gracefully to it
|
|
94
|
+
// alone when no error string is present.
|
|
95
|
+
setUploadError(uploadErrorMessage(outcome.error));
|
|
81
96
|
}
|
|
82
97
|
else {
|
|
83
98
|
setUploadedOk(true);
|
|
84
99
|
}
|
|
85
100
|
}
|
|
86
|
-
catch {
|
|
87
|
-
setUploadError(
|
|
101
|
+
catch (err) {
|
|
102
|
+
setUploadError(uploadErrorMessage(err instanceof Error ? err.message : String(err)));
|
|
88
103
|
}
|
|
89
104
|
finally {
|
|
90
105
|
setBusy(false);
|
|
@@ -96,7 +111,7 @@ const MediaUploader = ({ props, actions }) => {
|
|
|
96
111
|
const file = e.target.files?.[0];
|
|
97
112
|
if (file)
|
|
98
113
|
void handleFile(file);
|
|
99
|
-
} }), _jsxs("button", { type: "button", disabled: busy || !actions['upload'], className: "rounded-md border border-dashed border-border px-3 py-2 text-sm hover:bg-muted disabled:opacity-50", onClick: () => inputRef.current?.click(), children: [busy ? 'Uploading…' : label, ' ', _jsx("span", { className: "text-xs text-muted-foreground", children: "(pays to publish)" })] }), uploadedOk && (_jsx("p", { className: "text-xs text-muted-foreground", children: "Uploaded successfully." })), uploadError && (_jsx("p", { className: "text-xs text-destructive", children:
|
|
114
|
+
} }), _jsxs("button", { type: "button", disabled: busy || !actions['upload'], className: "rounded-md border border-dashed border-border px-3 py-2 text-sm hover:bg-muted disabled:opacity-50", onClick: () => inputRef.current?.click(), children: [busy ? 'Uploading…' : label, ' ', _jsx("span", { className: "text-xs text-muted-foreground", children: "(pays to publish)" })] }), uploadedOk && (_jsx("p", { className: "text-xs text-muted-foreground", children: "Uploaded successfully." })), uploadError && (_jsx("p", { className: "text-xs text-destructive whitespace-pre-wrap break-words", children: uploadError }))] }));
|
|
100
115
|
};
|
|
101
116
|
export const mediaAtoms = [
|
|
102
117
|
{ id: 'media-embed', kinds: [20, 21, 22, 1063], Component: MediaEmbed },
|
package/dist/atoms/media.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"media.js","sourceRoot":"","sources":["../../src/atoms/media.tsx"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"media.js","sourceRoot":"","sources":["../../src/atoms/media.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"profile-editor.d.ts","sourceRoot":"","sources":["../../src/atoms/profile-editor.tsx"],"names":[],"mappings":"AAiBA,OAAO,EAAE,KAAK,IAAI,EAAyC,MAAM,YAAY,CAAC;AA+S9E,eAAO,MAAM,kBAAkB,EAAE,IAAI,EAMpC,CAAC"}
|
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
+
/**
|
|
3
|
+
* Profile editor atom — compose/update a NIP-01 kind:0 metadata event.
|
|
4
|
+
*
|
|
5
|
+
* Unlike `onboard-card` (which fires a preset publish with hardcoded args), this
|
|
6
|
+
* atom collects the profile fields (name / display name / picture / about /
|
|
7
|
+
* nip05) from input fields, serializes them into the kind:0 `content` JSON, and
|
|
8
|
+
* publishes via `toon_publish_unsigned` ({ kind: 0, content }) through the normal
|
|
9
|
+
* pay-to-write confirm flow. When a kind:0 event is bound (free read), the form
|
|
10
|
+
* pre-fills from it and unknown JSON fields are preserved on republish.
|
|
11
|
+
*/
|
|
12
|
+
import { useEffect, useState } from 'react';
|
|
13
|
+
import { ArrowLeft, CircleCheck, Coins, Loader2 } from 'lucide-react';
|
|
14
|
+
import { Button } from '@/components/ui/button.js';
|
|
15
|
+
import { Input } from '@/components/ui/input.js';
|
|
16
|
+
import { Textarea } from '@/components/ui/textarea.js';
|
|
17
|
+
import { MonoId } from '@/components/mono-id.js';
|
|
18
|
+
import { parseProfile } from '../parsers/social.js';
|
|
19
|
+
import {} from './types.js';
|
|
20
|
+
import { byteLength } from './social-ui.js';
|
|
21
|
+
const EMPTY_FORM = {
|
|
22
|
+
name: '',
|
|
23
|
+
display_name: '',
|
|
24
|
+
picture: '',
|
|
25
|
+
about: '',
|
|
26
|
+
nip05: '',
|
|
27
|
+
};
|
|
28
|
+
/** kind:0 keys this editor owns; everything else on a bound profile is preserved. */
|
|
29
|
+
const EDITOR_KEYS = new Set([
|
|
30
|
+
'name',
|
|
31
|
+
'display_name',
|
|
32
|
+
'displayName',
|
|
33
|
+
'picture',
|
|
34
|
+
'about',
|
|
35
|
+
'nip05',
|
|
36
|
+
]);
|
|
37
|
+
/**
|
|
38
|
+
* Build the kind:0 `content` JSON from the form. Starts from any preserved
|
|
39
|
+
* fields the bound profile carried (banner / lud16 / website / …) so a republish
|
|
40
|
+
* doesn't drop metadata the editor doesn't surface; empty inputs delete their key.
|
|
41
|
+
*/
|
|
42
|
+
function buildContent(form, preserved) {
|
|
43
|
+
// `preserved` never carries the editor's own keys, so trimmed-empty fields are
|
|
44
|
+
// simply omitted (no delete) and a cleared field drops from the published JSON.
|
|
45
|
+
const content = { ...preserved };
|
|
46
|
+
for (const [key, value] of Object.entries(form)) {
|
|
47
|
+
const trimmed = value.trim();
|
|
48
|
+
if (trimmed)
|
|
49
|
+
content[key] = trimmed;
|
|
50
|
+
}
|
|
51
|
+
return JSON.stringify(content);
|
|
52
|
+
}
|
|
53
|
+
const FieldRow = ({ id, label, hint, children }) => (_jsxs("label", { htmlFor: id, className: "flex flex-col gap-1", children: [_jsxs("span", { className: "text-xs font-medium text-muted-foreground", children: [label, hint ? _jsx("span", { className: "ml-1.5 font-normal opacity-70", children: hint }) : null] }), children] }));
|
|
54
|
+
const ProfileEditor = ({ events, props, actions, readStatus }) => {
|
|
55
|
+
const label = typeof props['label'] === 'string' ? props['label'] : 'Save profile';
|
|
56
|
+
// Pre-fill from a bound kind:0, when present. Preserve unknown raw fields so a
|
|
57
|
+
// republish keeps metadata this editor doesn't surface (banner, lud16, …).
|
|
58
|
+
const bound = events.map(parseProfile).find((p) => p !== null) ?? null;
|
|
59
|
+
const [form, setForm] = useState(EMPTY_FORM);
|
|
60
|
+
const [preserved, setPreserved] = useState({});
|
|
61
|
+
const [hydrated, setHydrated] = useState(false);
|
|
62
|
+
useEffect(() => {
|
|
63
|
+
if (hydrated || !bound)
|
|
64
|
+
return;
|
|
65
|
+
setForm({
|
|
66
|
+
name: bound.name ?? '',
|
|
67
|
+
display_name: bound.displayName ?? '',
|
|
68
|
+
picture: bound.picture ?? '',
|
|
69
|
+
about: bound.about ?? '',
|
|
70
|
+
nip05: bound.nip05 ?? '',
|
|
71
|
+
});
|
|
72
|
+
setPreserved(Object.fromEntries(Object.entries(bound.raw).filter(([k]) => !EDITOR_KEYS.has(k))));
|
|
73
|
+
setHydrated(true);
|
|
74
|
+
}, [bound, hydrated]);
|
|
75
|
+
const [phase, setPhase] = useState('idle');
|
|
76
|
+
const [status, setStatus] = useState(null);
|
|
77
|
+
const [statusError, setStatusError] = useState(false);
|
|
78
|
+
const [eventId, setEventId] = useState(null);
|
|
79
|
+
const [failed, setFailed] = useState(null);
|
|
80
|
+
useEffect(() => {
|
|
81
|
+
if (phase !== 'confirming' || status || statusError || !readStatus)
|
|
82
|
+
return;
|
|
83
|
+
let cancelled = false;
|
|
84
|
+
void readStatus()
|
|
85
|
+
.then((s) => {
|
|
86
|
+
if (!cancelled)
|
|
87
|
+
setStatus(s);
|
|
88
|
+
})
|
|
89
|
+
.catch(() => {
|
|
90
|
+
if (!cancelled)
|
|
91
|
+
setStatusError(true);
|
|
92
|
+
});
|
|
93
|
+
return () => {
|
|
94
|
+
cancelled = true;
|
|
95
|
+
};
|
|
96
|
+
}, [phase, status, statusError, readStatus]);
|
|
97
|
+
const set = (key) => (value) => setForm((prev) => ({ ...prev, [key]: value }));
|
|
98
|
+
const hasAny = Object.values(form).some((v) => v.trim());
|
|
99
|
+
const content = buildContent(form, preserved);
|
|
100
|
+
const bytes = byteLength(content);
|
|
101
|
+
const review = () => {
|
|
102
|
+
if (!hasAny || !actions['publish'])
|
|
103
|
+
return;
|
|
104
|
+
setFailed(null);
|
|
105
|
+
setPhase('confirming');
|
|
106
|
+
};
|
|
107
|
+
const cancel = () => setPhase('idle');
|
|
108
|
+
const confirm = async () => {
|
|
109
|
+
if (!hasAny || !actions['publish'])
|
|
110
|
+
return;
|
|
111
|
+
setPhase('publishing');
|
|
112
|
+
const outcome = await actions['publish']({ content });
|
|
113
|
+
if (!outcome || outcome.ok === false) {
|
|
114
|
+
setFailed(outcome?.error ?? 'unknown');
|
|
115
|
+
setPhase('confirming');
|
|
116
|
+
return;
|
|
117
|
+
}
|
|
118
|
+
setEventId(outcome.eventId ?? null);
|
|
119
|
+
setPhase('receipt');
|
|
120
|
+
};
|
|
121
|
+
const feeLabel = status
|
|
122
|
+
? `${status.feePerEvent}${status.asset ? ` ${status.asset}` : ''}`
|
|
123
|
+
: statusError
|
|
124
|
+
? 'unavailable'
|
|
125
|
+
: '…';
|
|
126
|
+
const chainLabel = status ? status.settlementChain : statusError ? 'unknown' : '…';
|
|
127
|
+
if (phase === 'receipt') {
|
|
128
|
+
return (_jsxs("div", { className: "overflow-hidden rounded-xl border border-primary/30 bg-card", children: [_jsxs("div", { className: "flex items-center gap-2.5 border-b border-primary/20 bg-primary/5 px-4 py-3", children: [_jsx(CircleCheck, { "aria-hidden": "true", className: "size-5 text-primary" }), _jsxs("div", { children: [_jsx("div", { className: "font-semibold leading-tight", children: "Profile saved \u2014 and paid" }), _jsx("p", { className: "text-xs text-muted-foreground", children: "Your kind:0 metadata is live." })] })] }), _jsxs("dl", { className: "grid grid-cols-[auto_1fr] gap-x-4 gap-y-1.5 px-4 py-3 text-xs", children: [_jsx("dt", { className: "text-muted-foreground", children: "Event" }), _jsx("dd", { children: eventId ? _jsx(MonoId, { value: eventId, prefixLen: 12, suffixLen: 6 }) : '—' }), _jsx("dt", { className: "text-muted-foreground", children: "Fee paid" }), _jsxs("dd", { className: "font-medium", children: [feeLabel, " on ", chainLabel] })] }), _jsx("div", { className: "flex justify-end border-t border-border px-4 py-2.5", children: _jsx(Button, { variant: "outline", size: "sm", onClick: () => setPhase('idle'), children: "Edit again" }) })] }));
|
|
129
|
+
}
|
|
130
|
+
if (phase === 'confirming' || phase === 'publishing') {
|
|
131
|
+
const publishing = phase === 'publishing';
|
|
132
|
+
const displayName = form.display_name.trim() || form.name.trim() || 'your profile';
|
|
133
|
+
return (_jsxs("div", { className: "overflow-hidden rounded-xl border border-border bg-card", children: [_jsxs("div", { className: "flex items-center gap-2 border-b border-border px-4 py-3", children: [_jsx(Coins, { "aria-hidden": "true", className: "size-4 text-primary" }), _jsx("span", { className: "text-sm font-semibold", children: "Confirm pay-to-write" })] }), _jsxs("div", { className: "flex flex-col gap-3 px-4 py-3", children: [_jsxs("p", { className: "text-sm", children: ["Publish profile metadata for ", _jsx("span", { className: "font-semibold", children: displayName }), " as a kind:0 event."] }), _jsxs("dl", { className: "flex flex-wrap items-center gap-x-6 gap-y-1 text-xs", children: [_jsxs("div", { className: "flex items-center gap-1.5", children: [_jsx("dt", { className: "text-muted-foreground", children: "Fee" }), _jsx("dd", { className: "font-medium tabular-nums", children: feeLabel })] }), _jsxs("div", { className: "flex items-center gap-1.5", children: [_jsx("dt", { className: "text-muted-foreground", children: "Settles on" }), _jsx("dd", { className: "font-medium", children: chainLabel })] }), _jsxs("div", { className: "flex items-center gap-1.5", children: [_jsx("dt", { className: "text-muted-foreground", children: "Size" }), _jsxs("dd", { className: "font-mono font-medium tabular-nums", children: [bytes, " bytes"] })] })] }), _jsx("p", { className: "text-xs text-muted-foreground", children: "Saving your profile pays the fee above. The message is the money." }), failed ? (_jsxs("p", { className: "text-xs text-destructive", children: ["Publish failed: ", failed] })) : null] }), _jsxs("div", { className: "flex justify-end gap-2 border-t border-border px-4 py-2.5", children: [_jsxs(Button, { variant: "outline", size: "sm", disabled: publishing, onClick: cancel, children: [_jsx(ArrowLeft, { "aria-hidden": "true" }), "Back"] }), _jsx(Button, { size: "sm", disabled: publishing || statusError, onClick: () => void confirm(), children: publishing ? (_jsxs(_Fragment, { children: [_jsx(Loader2, { "aria-hidden": "true", className: "animate-spin" }), "Publishing\u2026"] })) : (_jsxs(_Fragment, { children: [_jsx(Coins, { "aria-hidden": "true" }), "Confirm & pay"] })) })] })] }));
|
|
134
|
+
}
|
|
135
|
+
return (_jsxs("div", { className: "overflow-hidden rounded-xl border border-border bg-card", children: [_jsxs("div", { className: "flex items-center justify-between gap-2 border-b border-border px-4 py-3", children: [_jsx("span", { className: "text-sm font-semibold", children: bound ? 'Edit profile' : 'Create profile' }), bound ? (_jsx(MonoId, { value: bound.pubkey, className: "text-muted-foreground" })) : null] }), _jsxs("div", { className: "flex flex-col gap-3 px-4 py-3", children: [_jsx(FieldRow, { id: "profile-name", label: "Name", children: _jsx(Input, { id: "profile-name", value: form.name, onChange: (e) => set('name')(e.target.value), placeholder: "satoshi" }) }), _jsx(FieldRow, { id: "profile-display-name", label: "Display name", hint: "optional", children: _jsx(Input, { id: "profile-display-name", value: form.display_name, onChange: (e) => set('display_name')(e.target.value), placeholder: "Satoshi Nakamoto" }) }), _jsx(FieldRow, { id: "profile-picture", label: "Picture URL", hint: "optional", children: _jsx(Input, { id: "profile-picture", type: "url", inputMode: "url", value: form.picture, onChange: (e) => set('picture')(e.target.value), placeholder: "https://\u2026/avatar.png" }) }), _jsx(FieldRow, { id: "profile-about", label: "About", hint: "optional", children: _jsx(Textarea, { id: "profile-about", value: form.about, onChange: (e) => set('about')(e.target.value), placeholder: "A short bio.", rows: 3, className: "resize-none text-base md:text-sm" }) }), _jsx(FieldRow, { id: "profile-nip05", label: "NIP-05 identifier", hint: "optional", children: _jsx(Input, { id: "profile-nip05", value: form.nip05, onChange: (e) => set('nip05')(e.target.value), placeholder: "name@example.com" }) })] }), _jsxs("div", { className: "flex items-center justify-between gap-2 border-t border-border px-4 py-2.5", children: [_jsxs("span", { className: "font-mono text-xs text-muted-foreground tabular-nums", title: "Fees scale with encoded bytes", children: [bytes, " ", bytes === 1 ? 'byte' : 'bytes'] }), _jsxs(Button, { size: "sm", disabled: !hasAny || !actions['publish'], onClick: review, children: [_jsx(Coins, { "aria-hidden": "true" }), label] })] })] }));
|
|
136
|
+
};
|
|
137
|
+
export const profileEditorAtoms = [
|
|
138
|
+
{
|
|
139
|
+
id: 'profile-editor',
|
|
140
|
+
writes: [{ name: 'toon_publish_unsigned' }],
|
|
141
|
+
Component: ProfileEditor,
|
|
142
|
+
},
|
|
143
|
+
];
|
|
144
|
+
//# sourceMappingURL=profile-editor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"profile-editor.js","sourceRoot":"","sources":["../../src/atoms/profile-editor.tsx"],"names":[],"mappings":";AAAA;;;;;;;;;GASG;AACH,OAAO,EAAE,SAAS,EAAE,QAAQ,EAA2B,MAAM,OAAO,CAAC;AACrE,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACtE,OAAO,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AACnD,OAAO,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AACvD,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAoD,MAAM,YAAY,CAAC;AAC9E,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAW5C,MAAM,UAAU,GAAgB;IAC9B,IAAI,EAAE,EAAE;IACR,YAAY,EAAE,EAAE;IAChB,OAAO,EAAE,EAAE;IACX,KAAK,EAAE,EAAE;IACT,KAAK,EAAE,EAAE;CACV,CAAC;AAEF,qFAAqF;AACrF,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC;IAC1B,MAAM;IACN,cAAc;IACd,aAAa;IACb,SAAS;IACT,OAAO;IACP,OAAO;CACR,CAAC,CAAC;AAEH;;;;GAIG;AACH,SAAS,YAAY,CAAC,IAAiB,EAAE,SAAkC;IACzE,+EAA+E;IAC/E,gFAAgF;IAChF,MAAM,OAAO,GAA4B,EAAE,GAAG,SAAS,EAAE,CAAC;IAC1D,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QAChD,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;QAC7B,IAAI,OAAO;YAAE,OAAO,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC;IACtC,CAAC;IACD,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;AACjC,CAAC;AAID,MAAM,QAAQ,GAKT,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CACtC,iBAAO,OAAO,EAAE,EAAE,EAAE,SAAS,EAAC,qBAAqB,aACjD,gBAAM,SAAS,EAAC,2CAA2C,aACxD,KAAK,EACL,IAAI,CAAC,CAAC,CAAC,eAAM,SAAS,EAAC,+BAA+B,YAAE,IAAI,GAAQ,CAAC,CAAC,CAAC,IAAI,IACvE,EACN,QAAQ,IACH,CACT,CAAC;AAEF,MAAM,aAAa,GAAwB,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,EAAE,EAAE;IACpF,MAAM,KAAK,GAAG,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC;IAEnF,+EAA+E;IAC/E,2EAA2E;IAC3E,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,IAAI,IAAI,CAAC;IACvE,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAc,UAAU,CAAC,CAAC;IAC1D,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAA0B,EAAE,CAAC,CAAC;IACxE,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAEhD,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,QAAQ,IAAI,CAAC,KAAK;YAAE,OAAO;QAC/B,OAAO,CAAC;YACN,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,EAAE;YACtB,YAAY,EAAE,KAAK,CAAC,WAAW,IAAI,EAAE;YACrC,OAAO,EAAE,KAAK,CAAC,OAAO,IAAI,EAAE;YAC5B,KAAK,EAAE,KAAK,CAAC,KAAK,IAAI,EAAE;YACxB,KAAK,EAAE,KAAK,CAAC,KAAK,IAAI,EAAE;SACzB,CAAC,CAAC;QACH,YAAY,CACV,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CACnF,CAAC;QACF,WAAW,CAAC,IAAI,CAAC,CAAC;IACpB,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC;IAEtB,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAY,MAAM,CAAC,CAAC;IACtD,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAoB,IAAI,CAAC,CAAC;IAC9D,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IACtD,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAgB,IAAI,CAAC,CAAC;IAC5D,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAgB,IAAI,CAAC,CAAC;IAE1D,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,KAAK,KAAK,YAAY,IAAI,MAAM,IAAI,WAAW,IAAI,CAAC,UAAU;YAAE,OAAO;QAC3E,IAAI,SAAS,GAAG,KAAK,CAAC;QACtB,KAAK,UAAU,EAAE;aACd,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE;YACV,IAAI,CAAC,SAAS;gBAAE,SAAS,CAAC,CAAC,CAAC,CAAC;QAC/B,CAAC,CAAC;aACD,KAAK,CAAC,GAAG,EAAE;YACV,IAAI,CAAC,SAAS;gBAAE,cAAc,CAAC,IAAI,CAAC,CAAC;QACvC,CAAC,CAAC,CAAC;QACL,OAAO,GAAG,EAAE;YACV,SAAS,GAAG,IAAI,CAAC;QACnB,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC,CAAC;IAE7C,MAAM,GAAG,GAAG,CAAC,GAAsB,EAAE,EAAE,CAAC,CAAC,KAAa,EAAQ,EAAE,CAC9D,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;IAEjD,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IACzD,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IAC9C,MAAM,KAAK,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;IAElC,MAAM,MAAM,GAAG,GAAS,EAAE;QACxB,IAAI,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;YAAE,OAAO;QAC3C,SAAS,CAAC,IAAI,CAAC,CAAC;QAChB,QAAQ,CAAC,YAAY,CAAC,CAAC;IACzB,CAAC,CAAC;IAEF,MAAM,MAAM,GAAG,GAAS,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAE5C,MAAM,OAAO,GAAG,KAAK,IAAmB,EAAE;QACxC,IAAI,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;YAAE,OAAO;QAC3C,QAAQ,CAAC,YAAY,CAAC,CAAC;QACvB,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;QACtD,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,EAAE,KAAK,KAAK,EAAE,CAAC;YACrC,SAAS,CAAC,OAAO,EAAE,KAAK,IAAI,SAAS,CAAC,CAAC;YACvC,QAAQ,CAAC,YAAY,CAAC,CAAC;YACvB,OAAO;QACT,CAAC;QACD,UAAU,CAAC,OAAO,CAAC,OAAO,IAAI,IAAI,CAAC,CAAC;QACpC,QAAQ,CAAC,SAAS,CAAC,CAAC;IACtB,CAAC,CAAC;IAEF,MAAM,QAAQ,GAAG,MAAM;QACrB,CAAC,CAAC,GAAG,MAAM,CAAC,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE;QAClE,CAAC,CAAC,WAAW;YACX,CAAC,CAAC,aAAa;YACf,CAAC,CAAC,GAAG,CAAC;IACV,MAAM,UAAU,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC;IAEnF,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,OAAO,CACL,eAAK,SAAS,EAAC,6DAA6D,aAC1E,eAAK,SAAS,EAAC,6EAA6E,aAC1F,KAAC,WAAW,mBAAa,MAAM,EAAC,SAAS,EAAC,qBAAqB,GAAG,EAClE,0BACE,cAAK,SAAS,EAAC,6BAA6B,8CAA+B,EAC3E,YAAG,SAAS,EAAC,+BAA+B,8CAAkC,IAC1E,IACF,EACN,cAAI,SAAS,EAAC,+DAA+D,aAC3E,aAAI,SAAS,EAAC,uBAAuB,sBAAW,EAChD,uBAAK,OAAO,CAAC,CAAC,CAAC,KAAC,MAAM,IAAC,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS,EAAE,CAAC,GAAI,CAAC,CAAC,CAAC,GAAG,GAAM,EAClF,aAAI,SAAS,EAAC,uBAAuB,yBAAc,EACnD,cAAI,SAAS,EAAC,aAAa,aACxB,QAAQ,UAAM,UAAU,IACtB,IACF,EACL,cAAK,SAAS,EAAC,qDAAqD,YAClE,KAAC,MAAM,IAAC,OAAO,EAAC,SAAS,EAAC,IAAI,EAAC,IAAI,EAAC,OAAO,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,2BAE1D,GACL,IACF,CACP,CAAC;IACJ,CAAC;IAED,IAAI,KAAK,KAAK,YAAY,IAAI,KAAK,KAAK,YAAY,EAAE,CAAC;QACrD,MAAM,UAAU,GAAG,KAAK,KAAK,YAAY,CAAC;QAC1C,MAAM,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,cAAc,CAAC;QACnF,OAAO,CACL,eAAK,SAAS,EAAC,yDAAyD,aACtE,eAAK,SAAS,EAAC,0DAA0D,aACvE,KAAC,KAAK,mBAAa,MAAM,EAAC,SAAS,EAAC,qBAAqB,GAAG,EAC5D,eAAM,SAAS,EAAC,uBAAuB,qCAA4B,IAC/D,EACN,eAAK,SAAS,EAAC,+BAA+B,aAC5C,aAAG,SAAS,EAAC,SAAS,8CACS,eAAM,SAAS,EAAC,eAAe,YAAE,WAAW,GAAQ,2BAE/E,EACJ,cAAI,SAAS,EAAC,qDAAqD,aACjE,eAAK,SAAS,EAAC,2BAA2B,aACxC,aAAI,SAAS,EAAC,uBAAuB,oBAAS,EAC9C,aAAI,SAAS,EAAC,0BAA0B,YAAE,QAAQ,GAAM,IACpD,EACN,eAAK,SAAS,EAAC,2BAA2B,aACxC,aAAI,SAAS,EAAC,uBAAuB,2BAAgB,EACrD,aAAI,SAAS,EAAC,aAAa,YAAE,UAAU,GAAM,IACzC,EACN,eAAK,SAAS,EAAC,2BAA2B,aACxC,aAAI,SAAS,EAAC,uBAAuB,qBAAU,EAC/C,cAAI,SAAS,EAAC,oCAAoC,aAAE,KAAK,cAAY,IACjE,IACH,EACL,YAAG,SAAS,EAAC,+BAA+B,kFAExC,EACH,MAAM,CAAC,CAAC,CAAC,CACR,aAAG,SAAS,EAAC,0BAA0B,iCAAkB,MAAM,IAAK,CACrE,CAAC,CAAC,CAAC,IAAI,IACJ,EACN,eAAK,SAAS,EAAC,2DAA2D,aACxE,MAAC,MAAM,IAAC,OAAO,EAAC,SAAS,EAAC,IAAI,EAAC,IAAI,EAAC,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,aACvE,KAAC,SAAS,mBAAa,MAAM,GAAG,YAEzB,EACT,KAAC,MAAM,IAAC,IAAI,EAAC,IAAI,EAAC,QAAQ,EAAE,UAAU,IAAI,WAAW,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,OAAO,EAAE,YACjF,UAAU,CAAC,CAAC,CAAC,CACZ,8BACE,KAAC,OAAO,mBAAa,MAAM,EAAC,SAAS,EAAC,cAAc,GAAG,wBAEtD,CACJ,CAAC,CAAC,CAAC,CACF,8BACE,KAAC,KAAK,mBAAa,MAAM,GAAG,qBAE3B,CACJ,GACM,IACL,IACF,CACP,CAAC;IACJ,CAAC;IAED,OAAO,CACL,eAAK,SAAS,EAAC,yDAAyD,aACtE,eAAK,SAAS,EAAC,0EAA0E,aACvF,eAAM,SAAS,EAAC,uBAAuB,YAAE,KAAK,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,gBAAgB,GAAQ,EACzF,KAAK,CAAC,CAAC,CAAC,CACP,KAAC,MAAM,IAAC,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE,SAAS,EAAC,uBAAuB,GAAG,CAClE,CAAC,CAAC,CAAC,IAAI,IACJ,EACN,eAAK,SAAS,EAAC,+BAA+B,aAC5C,KAAC,QAAQ,IAAC,EAAE,EAAC,cAAc,EAAC,KAAK,EAAC,MAAM,YACtC,KAAC,KAAK,IACJ,EAAE,EAAC,cAAc,EACjB,KAAK,EAAE,IAAI,CAAC,IAAI,EAChB,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAC5C,WAAW,EAAC,SAAS,GACrB,GACO,EACX,KAAC,QAAQ,IAAC,EAAE,EAAC,sBAAsB,EAAC,KAAK,EAAC,cAAc,EAAC,IAAI,EAAC,UAAU,YACtE,KAAC,KAAK,IACJ,EAAE,EAAC,sBAAsB,EACzB,KAAK,EAAE,IAAI,CAAC,YAAY,EACxB,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EACpD,WAAW,EAAC,kBAAkB,GAC9B,GACO,EACX,KAAC,QAAQ,IAAC,EAAE,EAAC,iBAAiB,EAAC,KAAK,EAAC,aAAa,EAAC,IAAI,EAAC,UAAU,YAChE,KAAC,KAAK,IACJ,EAAE,EAAC,iBAAiB,EACpB,IAAI,EAAC,KAAK,EACV,SAAS,EAAC,KAAK,EACf,KAAK,EAAE,IAAI,CAAC,OAAO,EACnB,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAC/C,WAAW,EAAC,2BAAsB,GAClC,GACO,EACX,KAAC,QAAQ,IAAC,EAAE,EAAC,eAAe,EAAC,KAAK,EAAC,OAAO,EAAC,IAAI,EAAC,UAAU,YACxD,KAAC,QAAQ,IACP,EAAE,EAAC,eAAe,EAClB,KAAK,EAAE,IAAI,CAAC,KAAK,EACjB,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAC7C,WAAW,EAAC,cAAc,EAC1B,IAAI,EAAE,CAAC,EACP,SAAS,EAAC,kCAAkC,GAC5C,GACO,EACX,KAAC,QAAQ,IAAC,EAAE,EAAC,eAAe,EAAC,KAAK,EAAC,mBAAmB,EAAC,IAAI,EAAC,UAAU,YACpE,KAAC,KAAK,IACJ,EAAE,EAAC,eAAe,EAClB,KAAK,EAAE,IAAI,CAAC,KAAK,EACjB,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAC7C,WAAW,EAAC,kBAAkB,GAC9B,GACO,IACP,EACN,eAAK,SAAS,EAAC,4EAA4E,aACzF,gBACE,SAAS,EAAC,sDAAsD,EAChE,KAAK,EAAC,+BAA+B,aAEpC,KAAK,OAAG,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,IAClC,EACP,MAAC,MAAM,IACL,IAAI,EAAC,IAAI,EACT,QAAQ,EAAE,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,EACxC,OAAO,EAAE,MAAM,aAEf,KAAC,KAAK,mBAAa,MAAM,GAAG,EAC3B,KAAK,IACC,IACL,IACF,CACP,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,kBAAkB,GAAW;IACxC;QACE,EAAE,EAAE,gBAAgB;QACpB,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,uBAAuB,EAAE,CAAC;QAC3C,SAAS,EAAE,aAAa;KACzB;CACF,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/atoms/registry.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAC5D,OAAO,EAAE,KAAK,IAAI,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/atoms/registry.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAC5D,OAAO,EAAE,KAAK,IAAI,EAAE,MAAM,YAAY,CAAC;AAWvC,OAAO,EAAgB,eAAe,EAAE,MAAM,eAAe,CAAC;AAgB9D,sBAAsB;AACtB,eAAO,MAAM,KAAK,EAAE,WAAW,CAAC,MAAM,EAAE,IAAI,CAA4C,CAAC;AAEzF,kEAAkE;AAClE,eAAO,MAAM,QAAQ,EAAE,WAAW,CAAC,MAAM,CAAyB,CAAC;AAYnE,mEAAmE;AACnE,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAErD;AAED,0EAA0E;AAC1E,wBAAgB,eAAe,IAAI,IAAI,CAEtC;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,iBAAiB,IAAI,YAAY,CAAC,IAAI,CAAC,CAStD;AAED,OAAO,EAAE,eAAe,EAAE,CAAC;AAC3B,OAAO,EAAE,KAAK,IAAI,EAAE,KAAK,eAAe,EAAE,KAAK,UAAU,EAAE,KAAK,aAAa,EAAE,MAAM,YAAY,CAAC"}
|
package/dist/atoms/registry.js
CHANGED
|
@@ -14,6 +14,7 @@ import { forgeAtoms } from './forge.js';
|
|
|
14
14
|
import { interactiveAtoms } from './interactive.js';
|
|
15
15
|
import { defiAtoms } from './defi.js';
|
|
16
16
|
import { onboardAtoms } from './onboard.js';
|
|
17
|
+
import { profileEditorAtoms } from './profile-editor.js';
|
|
17
18
|
import { contentAtoms } from './content.js';
|
|
18
19
|
import { statusAtoms } from './status.js';
|
|
19
20
|
import { fallbackAtom, GENERIC_ATOM_ID } from './fallback.js';
|
|
@@ -25,6 +26,7 @@ const ALL_ATOMS = [
|
|
|
25
26
|
...interactiveAtoms,
|
|
26
27
|
...defiAtoms,
|
|
27
28
|
...onboardAtoms,
|
|
29
|
+
...profileEditorAtoms,
|
|
28
30
|
...contentAtoms,
|
|
29
31
|
...statusAtoms,
|
|
30
32
|
fallbackAtom,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/atoms/registry.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAC5D,OAAO,EAAa,MAAM,YAAY,CAAC;AACvC,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAE9D,MAAM,SAAS,GAAW;IACxB,GAAG,WAAW;IACd,GAAG,WAAW;IACd,GAAG,UAAU;IACb,GAAG,UAAU;IACb,GAAG,gBAAgB;IACnB,GAAG,SAAS;IACZ,GAAG,YAAY;IACf,GAAG,YAAY;IACf,GAAG,WAAW;IACd,YAAY;CACb,CAAC;AAEF,sBAAsB;AACtB,MAAM,CAAC,MAAM,KAAK,GAA8B,IAAI,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AAEzF,kEAAkE;AAClE,MAAM,CAAC,MAAM,QAAQ,GAAwB,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;AAEnE,MAAM,YAAY,GAA8B,CAAC,GAAG,EAAE;IACpD,MAAM,GAAG,GAAG,IAAI,GAAG,EAAgB,CAAC;IACpC,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;QAC7B,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,IAAI,EAAE,EAAE,CAAC;YACpC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC;gBAAE,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC1C,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC,CAAC,EAAE,CAAC;AAEL,mEAAmE;AACnE,MAAM,UAAU,kBAAkB,CAAC,IAAY;IAC7C,OAAO,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,YAAY,CAAC;AAChD,CAAC;AAED,0EAA0E;AAC1E,MAAM,UAAU,eAAe;IAC7B,OAAO,YAAY,CAAC;AACtB,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,iBAAiB;IAC/B,MAAM,QAAQ,GAAG,IAAI,YAAY,EAAQ,CAAC;IAC1C,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;QAC7B,IAAI,IAAI,KAAK,YAAY;YAAE,SAAS;QACpC,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,IAAI,EAAE,EAAE,CAAC;YACpC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC;gBAAE,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACzD,CAAC;IACH,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,OAAO,EAAE,eAAe,EAAE,CAAC;AAC3B,OAAO,EAAwE,MAAM,YAAY,CAAC"}
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/atoms/registry.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAC5D,OAAO,EAAa,MAAM,YAAY,CAAC;AACvC,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAE9D,MAAM,SAAS,GAAW;IACxB,GAAG,WAAW;IACd,GAAG,WAAW;IACd,GAAG,UAAU;IACb,GAAG,UAAU;IACb,GAAG,gBAAgB;IACnB,GAAG,SAAS;IACZ,GAAG,YAAY;IACf,GAAG,kBAAkB;IACrB,GAAG,YAAY;IACf,GAAG,WAAW;IACd,YAAY;CACb,CAAC;AAEF,sBAAsB;AACtB,MAAM,CAAC,MAAM,KAAK,GAA8B,IAAI,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AAEzF,kEAAkE;AAClE,MAAM,CAAC,MAAM,QAAQ,GAAwB,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;AAEnE,MAAM,YAAY,GAA8B,CAAC,GAAG,EAAE;IACpD,MAAM,GAAG,GAAG,IAAI,GAAG,EAAgB,CAAC;IACpC,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;QAC7B,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,IAAI,EAAE,EAAE,CAAC;YACpC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC;gBAAE,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC1C,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC,CAAC,EAAE,CAAC;AAEL,mEAAmE;AACnE,MAAM,UAAU,kBAAkB,CAAC,IAAY;IAC7C,OAAO,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,YAAY,CAAC;AAChD,CAAC;AAED,0EAA0E;AAC1E,MAAM,UAAU,eAAe;IAC7B,OAAO,YAAY,CAAC;AACtB,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,iBAAiB;IAC/B,MAAM,QAAQ,GAAG,IAAI,YAAY,EAAQ,CAAC;IAC1C,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;QAC7B,IAAI,IAAI,KAAK,YAAY;YAAE,SAAS;QACpC,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,IAAI,EAAE,EAAE,CAAC;YACpC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC;gBAAE,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACzD,CAAC;IACH,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,OAAO,EAAE,eAAe,EAAE,CAAC;AAC3B,OAAO,EAAwE,MAAM,YAAY,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"social.d.ts","sourceRoot":"","sources":["../../src/atoms/social.tsx"],"names":[],"mappings":"AAiBA,OAAO,EAAE,KAAK,IAAI,EAAwB,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"social.d.ts","sourceRoot":"","sources":["../../src/atoms/social.tsx"],"names":[],"mappings":"AAiBA,OAAO,EAAE,KAAK,IAAI,EAAwB,MAAM,YAAY,CAAC;AAmT7D,eAAO,MAAM,WAAW,EAAE,IAAI,EAgB7B,CAAC"}
|
package/dist/atoms/social.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
2
|
/** Social atoms — NIP-01 profile/note, NIP-25 reactions, NIP-02 follow. */
|
|
3
|
-
import { useState } from 'react';
|
|
3
|
+
import { useEffect, useState } from 'react';
|
|
4
4
|
import { Heart, MessageCircle, UserPlus } from 'lucide-react';
|
|
5
5
|
import { Button } from '@/components/ui/button.js';
|
|
6
6
|
import { Badge } from '@/components/ui/badge.js';
|
|
@@ -31,8 +31,35 @@ const ActionButton = ({ label, icon, text, count, active = false, accent = 'fore
|
|
|
31
31
|
: cn('hover:text-foreground focus-visible:text-foreground', active && 'text-foreground');
|
|
32
32
|
return (_jsxs(Button, { type: "button", variant: "ghost", size: "sm", "aria-label": label, "aria-pressed": active, className: cn('h-8 gap-1.5 px-2 text-xs text-muted-foreground transition-colors', accentClass), onClick: onClick, children: [icon, _jsx("span", { children: text }), typeof count === 'number' && count > 0 ? (_jsx("span", { className: "tabular-nums", children: count })) : null] }));
|
|
33
33
|
};
|
|
34
|
+
/**
|
|
35
|
+
* Resolve an author's kind:0 profile. A profile already joined from the bind's
|
|
36
|
+
* own events (`seeded`) wins immediately; otherwise — the feed case, where the
|
|
37
|
+
* bind carries only `kinds:[1]` — we lazily pull the author's kind:0 via the
|
|
38
|
+
* runtime-wired `resolveProfile` seam. Authors with no kind:0 stay `undefined`,
|
|
39
|
+
* so the avatar/name degrade to the deterministic placeholder.
|
|
40
|
+
*/
|
|
41
|
+
function useAuthorProfile(pubkey, seeded, resolveProfile) {
|
|
42
|
+
const [fetched, setFetched] = useState(undefined);
|
|
43
|
+
useEffect(() => {
|
|
44
|
+
if (seeded || !resolveProfile)
|
|
45
|
+
return;
|
|
46
|
+
let cancelled = false;
|
|
47
|
+
void resolveProfile(pubkey).then((profileEvent) => {
|
|
48
|
+
if (cancelled || !profileEvent)
|
|
49
|
+
return;
|
|
50
|
+
const parsed = parseProfile(profileEvent);
|
|
51
|
+
if (parsed)
|
|
52
|
+
setFetched(parsed);
|
|
53
|
+
});
|
|
54
|
+
return () => {
|
|
55
|
+
cancelled = true;
|
|
56
|
+
};
|
|
57
|
+
}, [pubkey, seeded, resolveProfile]);
|
|
58
|
+
return seeded ?? fetched;
|
|
59
|
+
}
|
|
34
60
|
/** A single feed item: identity row, note body, inline media, engagement. */
|
|
35
|
-
const NoteRow = ({ event, note, profile, reactionCount, actions }) => {
|
|
61
|
+
const NoteRow = ({ event, note, profile: seededProfile, resolveProfile, reactionCount, actions }) => {
|
|
62
|
+
const profile = useAuthorProfile(note.authorPubkey, seededProfile, resolveProfile);
|
|
36
63
|
const media = parseInlineMedia(event);
|
|
37
64
|
const displayName = profile?.displayName ?? profile?.name;
|
|
38
65
|
const reply = actions['reply'];
|
|
@@ -57,7 +84,7 @@ const NoteRow = ({ event, note, profile, reactionCount, actions }) => {
|
|
|
57
84
|
const likeCount = reactionCount + (liked ? 1 : 0);
|
|
58
85
|
return (_jsxs("article", { className: "group/note flex gap-3 px-1 py-3 transition-colors first:pt-0 last:pb-0 hover:bg-muted/30", children: [_jsx(IdentityAvatar, { pubkey: note.authorPubkey, name: displayName, picture: profile?.picture }), _jsxs("div", { className: "flex min-w-0 flex-1 flex-col gap-1", children: [_jsxs("header", { className: "flex items-center gap-1.5", children: [_jsxs("div", { className: "flex min-w-0 flex-1 items-baseline gap-1.5", children: [displayName ? (_jsxs(_Fragment, { children: [_jsx("span", { className: "truncate font-semibold leading-tight text-foreground", children: displayName }), _jsx(MonoId, { value: note.authorPubkey, className: "shrink-0 text-muted-foreground" })] })) : (_jsx(MonoId, { value: note.authorPubkey, className: "text-muted-foreground" })), _jsx("span", { "aria-hidden": "true", className: "text-muted-foreground", children: "\u00B7" }), _jsx("span", { className: "shrink-0 text-xs text-muted-foreground tabular-nums", children: relativeTime(note.createdAt) }), note.isReply ? (_jsx(Badge, { variant: "secondary", className: "px-1.5 py-0 text-[10px] font-normal", children: "reply" })) : null] }), follow ? (_jsxs(Button, { type: "button", variant: followed ? 'secondary' : 'outline', size: "sm", "aria-label": followed ? 'Following this author' : 'Follow this author', "aria-pressed": followed, className: "h-7 shrink-0 rounded-full px-3 text-xs font-semibold", onClick: onFollow, children: [_jsx(UserPlus, { "aria-hidden": "true" }), followed ? 'Following' : 'Follow'] })) : null] }), note.content ? (_jsx("p", { className: "whitespace-pre-wrap break-words text-sm leading-relaxed text-foreground", children: note.content })) : null, media.length > 0 ? (_jsx("div", { className: "mt-1", children: _jsx(InlineMediaList, { variants: media }) })) : null, reply || react ? (_jsxs("footer", { className: "-ml-2 mt-1 flex items-center gap-6", children: [reply ? (_jsx(ActionButton, { label: "Reply to this note", icon: _jsx(MessageCircle, { "aria-hidden": "true" }), text: "Reply", onClick: () => void reply({ parentId: note.eventId }) })) : null, react ? (_jsx(ActionButton, { label: liked ? 'Liked this note' : 'Like this note', icon: _jsx(Heart, { "aria-hidden": "true", className: liked ? 'fill-current' : undefined }), text: "Like", count: likeCount, active: liked, accent: "rose", onClick: onLike })) : null] })) : null, react || follow ? (_jsx("p", { className: "mt-0.5 text-[10px] text-muted-foreground/70", children: "Like and follow are paid writes \u2014 each spends the per-event channel fee." })) : null] })] }));
|
|
59
86
|
};
|
|
60
|
-
const NoteCard = ({ events, actions }) => {
|
|
87
|
+
const NoteCard = ({ events, actions, resolveProfile }) => {
|
|
61
88
|
const noteItems = events
|
|
62
89
|
.map((event) => ({ event, note: parseNote(event) }))
|
|
63
90
|
.filter((item) => item.note !== null);
|
|
@@ -79,7 +106,7 @@ const NoteCard = ({ events, actions }) => {
|
|
|
79
106
|
reactionCounts.set(reaction.targetEventId, (reactionCounts.get(reaction.targetEventId) ?? 0) + 1);
|
|
80
107
|
}
|
|
81
108
|
}
|
|
82
|
-
return (_jsx("div", { className: "flex flex-col divide-y divide-border", children: noteItems.map(({ event, note }) => (_jsx(NoteRow, { event: event, note: note, profile: profiles.get(note.authorPubkey), reactionCount: reactionCounts.get(note.eventId) ?? 0, actions: actions }, note.eventId))) }));
|
|
109
|
+
return (_jsx("div", { className: "flex flex-col divide-y divide-border", children: noteItems.map(({ event, note }) => (_jsx(NoteRow, { event: event, note: note, profile: profiles.get(note.authorPubkey), resolveProfile: resolveProfile, reactionCount: reactionCounts.get(note.eventId) ?? 0, actions: actions }, note.eventId))) }));
|
|
83
110
|
};
|
|
84
111
|
const ReactionBar = ({ events, actions }) => {
|
|
85
112
|
const counts = new Map();
|
package/dist/atoms/social.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"social.js","sourceRoot":"","sources":["../../src/atoms/social.tsx"],"names":[],"mappings":";AAAA,2EAA2E;AAC3E,OAAO,EAA2B,QAAQ,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"social.js","sourceRoot":"","sources":["../../src/atoms/social.tsx"],"names":[],"mappings":";AAAA,2EAA2E;AAC3E,OAAO,EAA2B,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACrE,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAC9D,OAAO,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AACnD,OAAO,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AACjD,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AACjD,OAAO,EAAE,EAAE,EAAE,MAAM,gBAAgB,CAAC;AACpC,OAAO,EACL,YAAY,EACZ,SAAS,EACT,aAAa,GAGd,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAmB,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAmC,MAAM,YAAY,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9D,MAAM,aAAa,GAAwB,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE;IACxD,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,IAAI,IAAI,CAAC;IACzE,IAAI,CAAC,OAAO;QAAE,OAAO,IAAI,CAAC;IAC1B,MAAM,IAAI,GAAG,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,MAAM,CAAC;IACnE,OAAO,CACL,eAAK,SAAS,EAAC,yBAAyB,aACtC,KAAC,cAAc,IAAC,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,GAAI,EAChF,eAAK,SAAS,EAAC,gBAAgB,aAC7B,cAAK,SAAS,EAAC,sCAAsC,YAAE,IAAI,GAAO,EACjE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CACf,cAAK,SAAS,EAAC,wCAAwC,YAAE,OAAO,CAAC,KAAK,GAAO,CAC9E,CAAC,CAAC,CAAC,CACF,KAAC,MAAM,IAAC,KAAK,EAAE,OAAO,CAAC,MAAM,EAAE,SAAS,EAAC,uBAAuB,GAAG,CACpE,EACA,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CACf,YAAG,SAAS,EAAC,iDAAiD,YAAE,OAAO,CAAC,KAAK,GAAK,CACnF,CAAC,CAAC,CAAC,IAAI,IACJ,IACF,CACP,CAAC;AACJ,CAAC,CAAC;AAEF;;;;;GAKG;AACH,MAAM,YAAY,GAQb,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,GAAG,KAAK,EAAE,MAAM,GAAG,YAAY,EAAE,OAAO,EAAE,EAAE,EAAE;IACpF,MAAM,WAAW,GACf,MAAM,KAAK,MAAM;QACf,CAAC,CAAC,EAAE,CAAC,iDAAiD,EAAE,MAAM,IAAI,eAAe,CAAC;QAClF,CAAC,CAAC,EAAE,CAAC,qDAAqD,EAAE,MAAM,IAAI,iBAAiB,CAAC,CAAC;IAC7F,OAAO,CACL,MAAC,MAAM,IACL,IAAI,EAAC,QAAQ,EACb,OAAO,EAAC,OAAO,EACf,IAAI,EAAC,IAAI,gBACG,KAAK,kBACH,MAAM,EACpB,SAAS,EAAE,EAAE,CAAC,kEAAkE,EAAE,WAAW,CAAC,EAC9F,OAAO,EAAE,OAAO,aAEf,IAAI,EACL,yBAAO,IAAI,GAAQ,EAClB,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CACxC,eAAM,SAAS,EAAC,cAAc,YAAE,KAAK,GAAQ,CAC9C,CAAC,CAAC,CAAC,IAAI,IACD,CACV,CAAC;AACJ,CAAC,CAAC;AAEF;;;;;;GAMG;AACH,SAAS,gBAAgB,CACvB,MAAc,EACd,MAAmC,EACnC,cAAiD;IAEjD,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAA8B,SAAS,CAAC,CAAC;IAC/E,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,MAAM,IAAI,CAAC,cAAc;YAAE,OAAO;QACtC,IAAI,SAAS,GAAG,KAAK,CAAC;QACtB,KAAK,cAAc,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,YAAY,EAAE,EAAE;YAChD,IAAI,SAAS,IAAI,CAAC,YAAY;gBAAE,OAAO;YACvC,MAAM,MAAM,GAAG,YAAY,CAAC,YAAY,CAAC,CAAC;YAC1C,IAAI,MAAM;gBAAE,UAAU,CAAC,MAAM,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;QACH,OAAO,GAAG,EAAE;YACV,SAAS,GAAG,IAAI,CAAC;QACnB,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,cAAc,CAAC,CAAC,CAAC;IACrC,OAAO,MAAM,IAAI,OAAO,CAAC;AAC3B,CAAC;AAED,6EAA6E;AAC7E,MAAM,OAAO,GAOR,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,aAAa,EAAE,OAAO,EAAE,EAAE,EAAE;IACvF,MAAM,OAAO,GAAG,gBAAgB,CAAC,IAAI,CAAC,YAAY,EAAE,aAAa,EAAE,cAAc,CAAC,CAAC;IACnF,MAAM,KAAK,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;IACtC,MAAM,WAAW,GAAG,OAAO,EAAE,WAAW,IAAI,OAAO,EAAE,IAAI,CAAC;IAC1D,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC/B,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC/B,MAAM,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IAEjC,gFAAgF;IAChF,+EAA+E;IAC/E,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC1C,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAEhD,MAAM,MAAM,GAAG,GAAS,EAAE;QACxB,IAAI,CAAC,KAAK;YAAE,OAAO;QACnB,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QACpB,KAAK,KAAK,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC;IAC/B,CAAC,CAAC;IACF,MAAM,QAAQ,GAAG,GAAS,EAAE;QAC1B,IAAI,CAAC,MAAM;YAAE,OAAO;QACpB,WAAW,CAAC,IAAI,CAAC,CAAC;QAClB,KAAK,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC;IACpD,CAAC,CAAC;IAEF,MAAM,SAAS,GAAG,aAAa,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAElD,OAAO,CACL,mBAAS,SAAS,EAAC,0FAA0F,aAC3G,KAAC,cAAc,IACb,MAAM,EAAE,IAAI,CAAC,YAAY,EACzB,IAAI,EAAE,WAAW,EACjB,OAAO,EAAE,OAAO,EAAE,OAAO,GACzB,EACF,eAAK,SAAS,EAAC,oCAAoC,aACjD,kBAAQ,SAAS,EAAC,2BAA2B,aAC3C,eAAK,SAAS,EAAC,4CAA4C,aACxD,WAAW,CAAC,CAAC,CAAC,CACb,8BACE,eAAM,SAAS,EAAC,sDAAsD,YACnE,WAAW,GACP,EACP,KAAC,MAAM,IAAC,KAAK,EAAE,IAAI,CAAC,YAAY,EAAE,SAAS,EAAC,gCAAgC,GAAG,IAC9E,CACJ,CAAC,CAAC,CAAC,CACF,KAAC,MAAM,IAAC,KAAK,EAAE,IAAI,CAAC,YAAY,EAAE,SAAS,EAAC,uBAAuB,GAAG,CACvE,EACD,8BAAkB,MAAM,EAAC,SAAS,EAAC,uBAAuB,uBAEnD,EACP,eAAM,SAAS,EAAC,qDAAqD,YAClE,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,GACxB,EACN,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CACd,KAAC,KAAK,IAAC,OAAO,EAAC,WAAW,EAAC,SAAS,EAAC,qCAAqC,sBAElE,CACT,CAAC,CAAC,CAAC,IAAI,IACJ,EACL,MAAM,CAAC,CAAC,CAAC,CACR,MAAC,MAAM,IACL,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,EAC3C,IAAI,EAAC,IAAI,gBACG,QAAQ,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,oBAAoB,kBACvD,QAAQ,EACtB,SAAS,EAAC,sDAAsD,EAChE,OAAO,EAAE,QAAQ,aAEjB,KAAC,QAAQ,mBAAa,MAAM,GAAG,EAC9B,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,IAC3B,CACV,CAAC,CAAC,CAAC,IAAI,IACD,EAER,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CACd,YAAG,SAAS,EAAC,yEAAyE,YACnF,IAAI,CAAC,OAAO,GACX,CACL,CAAC,CAAC,CAAC,IAAI,EAEP,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAClB,cAAK,SAAS,EAAC,MAAM,YACnB,KAAC,eAAe,IAAC,QAAQ,EAAE,KAAK,GAAI,GAChC,CACP,CAAC,CAAC,CAAC,IAAI,EAEP,KAAK,IAAI,KAAK,CAAC,CAAC,CAAC,CAChB,kBAAQ,SAAS,EAAC,oCAAoC,aACnD,KAAK,CAAC,CAAC,CAAC,CACP,KAAC,YAAY,IACX,KAAK,EAAC,oBAAoB,EAC1B,IAAI,EAAE,KAAC,aAAa,mBAAa,MAAM,GAAG,EAC1C,IAAI,EAAC,OAAO,EACZ,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,KAAK,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,GACrD,CACH,CAAC,CAAC,CAAC,IAAI,EACP,KAAK,CAAC,CAAC,CAAC,CACP,KAAC,YAAY,IACX,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,gBAAgB,EACnD,IAAI,EACF,KAAC,KAAK,mBACQ,MAAM,EAClB,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,SAAS,GAC7C,EAEJ,IAAI,EAAC,MAAM,EACX,KAAK,EAAE,SAAS,EAChB,MAAM,EAAE,KAAK,EACb,MAAM,EAAC,MAAM,EACb,OAAO,EAAE,MAAM,GACf,CACH,CAAC,CAAC,CAAC,IAAI,IACD,CACV,CAAC,CAAC,CAAC,IAAI,EAEP,KAAK,IAAI,MAAM,CAAC,CAAC,CAAC,CACjB,YAAG,SAAS,EAAC,6CAA6C,8FAEtD,CACL,CAAC,CAAC,CAAC,IAAI,IACJ,IACE,CACX,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,QAAQ,GAAwB,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,EAAE,EAAE,EAAE;IAC5E,MAAM,SAAS,GAAG,MAAM;SACrB,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;SACnD,MAAM,CAAC,CAAC,IAAI,EAAqD,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;IAC3F,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAExC,0EAA0E;IAC1E,4EAA4E;IAC5E,MAAM,QAAQ,GAAG,IAAI,GAAG,EAA2B,CAAC;IACpD,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,MAAM,OAAO,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;QACpC,IAAI,OAAO;YAAE,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrD,CAAC;IAED,gEAAgE;IAChE,MAAM,cAAc,GAAG,IAAI,GAAG,EAAkB,CAAC;IACjD,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,MAAM,QAAQ,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;QACtC,IAAI,QAAQ,EAAE,aAAa,EAAE,CAAC;YAC5B,cAAc,CAAC,GAAG,CAChB,QAAQ,CAAC,aAAa,EACtB,CAAC,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CACtD,CAAC;QACJ,CAAC;IACH,CAAC;IAED,OAAO,CACL,cAAK,SAAS,EAAC,sCAAsC,YAClD,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAClC,KAAC,OAAO,IAEN,KAAK,EAAE,KAAK,EACZ,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,EACxC,cAAc,EAAE,cAAc,EAC9B,aAAa,EAAE,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EACpD,OAAO,EAAE,OAAO,IANX,IAAI,CAAC,OAAO,CAOjB,CACH,CAAC,GACE,CACP,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,WAAW,GAAwB,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE;IAC/D,MAAM,MAAM,GAAG,IAAI,GAAG,EAAkB,CAAC;IACzC,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;QACzB,MAAM,QAAQ,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC;QACpC,IAAI,CAAC,QAAQ;YAAE,SAAS;QACxB,MAAM,GAAG,GAAG,QAAQ,CAAC,OAAO,IAAI,GAAG,CAAC;QACpC,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAC9C,CAAC;IACD,OAAO,CACL,eAAK,SAAS,EAAC,qCAAqC,aACjD,CAAC,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CACzC,MAAC,KAAK,IAAa,OAAO,EAAC,WAAW,EAAC,SAAS,EAAC,oBAAoB,aAClE,KAAK,OAAG,CAAC,KADA,KAAK,CAET,CACT,CAAC,EACD,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAClB,MAAC,MAAM,IACL,OAAO,EAAC,SAAS,EACjB,IAAI,EAAC,IAAI,gBACE,gBAAgB,EAC3B,SAAS,EAAC,qCAAqC,EAC/C,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,aAExD,KAAC,KAAK,mBAAa,MAAM,GAAG,aAErB,CACV,CAAC,CAAC,CAAC,IAAI,IACJ,CACP,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,YAAY,GAAwB,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE;IAC/D,MAAM,KAAK,GAAG,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;IAC7E,OAAO,CACL,KAAC,MAAM,IAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAC,IAAI,EAAC,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,OAAO,CAAC,QAAQ,CAAC,EAAE,EAAE,YACtF,KAAK,GACC,CACV,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAAW;IACjC,EAAE,EAAE,EAAE,gBAAgB,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,aAAa,EAAE;IAC9D;QACE,EAAE,EAAE,WAAW;QACf,KAAK,EAAE,CAAC,CAAC,CAAC;QACV,0EAA0E;QAC1E,8EAA8E;QAC9E,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,uBAAuB,EAAE,CAAC;QAC3C,SAAS,EAAE,QAAQ;KACpB;IACD,EAAE,EAAE,EAAE,cAAc,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE;IAC1D;QACE,EAAE,EAAE,eAAe;QACnB,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,uBAAuB,EAAE,CAAC;QAC3C,SAAS,EAAE,YAAY;KACxB;CACF,CAAC"}
|
package/dist/atoms/types.d.ts
CHANGED
|
@@ -96,6 +96,16 @@ export interface AtomRenderProps {
|
|
|
96
96
|
* never call the bridge directly, so this is the single read seam for the fee.
|
|
97
97
|
*/
|
|
98
98
|
readStatus?: () => Promise<AtomStatus>;
|
|
99
|
+
/**
|
|
100
|
+
* Resolve an author's kind:0 profile event by pubkey, lazily and cached for
|
|
101
|
+
* the session. A feed bind only carries the notes (`kinds:[1]`), so an atom
|
|
102
|
+
* cannot find the author's metadata in its own `events`; this seam lets it
|
|
103
|
+
* pull the kind:0 on demand. Returns the newest kind:0 for the pubkey, or
|
|
104
|
+
* `null` when the author has never published one. Wired to the bridge by the
|
|
105
|
+
* runtime (atoms never call the bridge directly); `undefined` only in older
|
|
106
|
+
* render paths / tests that don't provide it.
|
|
107
|
+
*/
|
|
108
|
+
resolveProfile?: (pubkey: string) => Promise<NostrEvent | null>;
|
|
99
109
|
}
|
|
100
110
|
/** A registered atom. */
|
|
101
111
|
export interface Atom {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/atoms/types.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,KAAK,EAAE,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAChD,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,aAAa,CAAC;AAE9C;;;;;;GAMG;AACH,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,OAAO,CAAC;IACZ,oFAAoF;IACpF,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,mDAAmD;IACnD,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,qCAAqC;IACrC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;iDAEiD;AACjD,MAAM,MAAM,UAAU,GAAG,CACvB,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAClC,aAAa,GAAG,IAAI,GAAG,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CAAC;AAE1D,8EAA8E;AAC9E,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;;;GASG;AACH,MAAM,WAAW,UAAU;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,iCAAiC;IACjC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,8DAA8D;IAC9D,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,gEAAgE;IAChE,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,mEAAmE;IACnE,QAAQ,CAAC,EAAE;QACT,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,CAAC;IACF,qCAAqC;IACrC,SAAS,CAAC,EAAE;QACV,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,qCAAqC;IACrC,KAAK,CAAC,EAAE;QACN,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,SAAS,CAAC,EAAE,OAAO,CAAC;QACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;KAC1B,CAAC;IACF,yEAAyE;IACzE,OAAO,CAAC,EAAE,eAAe,EAAE,CAAC;IAC5B,8CAA8C;IAC9C,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,eAAe;IAC9B,+EAA+E;IAC/E,MAAM,EAAE,UAAU,EAAE,CAAC;IACrB,2CAA2C;IAC3C,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,8EAA8E;IAC9E,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IACpC,4BAA4B;IAC5B,QAAQ,EAAE,SAAS,CAAC;IACpB,+EAA+E;IAC/E,WAAW,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,SAAS,CAAC;IAC9C;;;;;OAKG;IACH,UAAU,CAAC,EAAE,MAAM,OAAO,CAAC,UAAU,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/atoms/types.ts"],"names":[],"mappings":"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"}
|
package/dist/catalog.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"catalog.d.ts","sourceRoot":"","sources":["../src/catalog.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,yDAAyD;IACzD,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,sCAAsC;IACtC,MAAM,CAAC,EAAE,aAAa,EAAE,CAAC;IACzB,+DAA+D;IAC/D,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACtC;AAED,eAAO,MAAM,YAAY,EAAE,QAAQ,
|
|
1
|
+
{"version":3,"file":"catalog.d.ts","sourceRoot":"","sources":["../src/catalog.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,yDAAyD;IACzD,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,sCAAsC;IACtC,MAAM,CAAC,EAAE,aAAa,EAAE,CAAC;IACzB,+DAA+D;IAC/D,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACtC;AAED,eAAO,MAAM,YAAY,EAAE,QAAQ,EA0LlC,CAAC;AAEF,+DAA+D;AAC/D,eAAO,MAAM,gBAAgB,EAAE,WAAW,CAAC,MAAM,CAA0C,CAAC"}
|
package/dist/catalog.js
CHANGED
|
@@ -96,8 +96,8 @@ export const ATOM_CATALOG = [
|
|
|
96
96
|
description: 'Interactive: collects swap params and fires a cross-asset swap. Spendy.',
|
|
97
97
|
writes: [{ name: SWAP_TOOL, spendy: true }],
|
|
98
98
|
propsSchema: {
|
|
99
|
-
destination: 'string (
|
|
100
|
-
|
|
99
|
+
destination: 'string (swap peer ILP destination)',
|
|
100
|
+
swapPubkey: 'string (swap peer 64-char hex Nostr pubkey)',
|
|
101
101
|
pair: 'SwapPair ({ from, to, rate, … })',
|
|
102
102
|
chainRecipient: 'string (payout address on pair.to.chain)',
|
|
103
103
|
label: 'string (submit button label)',
|
|
@@ -121,6 +121,18 @@ export const ATOM_CATALOG = [
|
|
|
121
121
|
label: 'string (optional publish-profile button label)',
|
|
122
122
|
},
|
|
123
123
|
},
|
|
124
|
+
{
|
|
125
|
+
id: 'profile-editor',
|
|
126
|
+
description: 'Edit/create a NIP-01 kind:0 profile: input fields for name, display_name, ' +
|
|
127
|
+
'picture (URL), about, and nip05, serialized into the kind:0 content JSON ' +
|
|
128
|
+
'and published via toon_publish_unsigned ({ kind: 0, content }) through a ' +
|
|
129
|
+
'pay-to-write confirm. Bind a kind:0 event to pre-fill the form (unknown ' +
|
|
130
|
+
'fields are preserved on republish). The "publish" action fires the write.',
|
|
131
|
+
writes: [{ name: 'toon_publish_unsigned' }],
|
|
132
|
+
propsSchema: {
|
|
133
|
+
label: 'string (optional save-button label)',
|
|
134
|
+
},
|
|
135
|
+
},
|
|
124
136
|
// content — generic, props-driven primitives for ANY structured (non-event)
|
|
125
137
|
// data: daemon status, write targets, balances, identity. Compose these inside
|
|
126
138
|
// layout atoms instead of falling back to plain text. No event kinds.
|
package/dist/catalog.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"catalog.js","sourceRoot":"","sources":["../src/catalog.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"catalog.js","sourceRoot":"","sources":["../src/catalog.ts"],"names":[],"mappings":"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"}
|
package/dist/examples.d.ts
CHANGED
|
@@ -27,6 +27,12 @@ export declare function forgeView(ownerPubkey: string, repoId: string): ViewSpec
|
|
|
27
27
|
export declare function mediaView(): ViewSpec;
|
|
28
28
|
/** An onboarding journey: get-started card + the new user's profile header. */
|
|
29
29
|
export declare function onboardView(pubkey: string): ViewSpec;
|
|
30
|
+
/**
|
|
31
|
+
* A profile editor: input fields for name/picture/about (pre-filled from the
|
|
32
|
+
* user's existing kind:0, when bound) that publish an updated kind:0 via a
|
|
33
|
+
* pay-to-write confirm, with the live header below so the change shows up.
|
|
34
|
+
*/
|
|
35
|
+
export declare function profileEditorView(pubkey: string): ViewSpec;
|
|
30
36
|
/** A DeFi panel: pre-open a channel, run a swap, show the settlement receipt. */
|
|
31
37
|
export declare function swapView(): ViewSpec;
|
|
32
38
|
/**
|
package/dist/examples.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"examples.d.ts","sourceRoot":"","sources":["../src/examples.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,WAAW,CAAC;AAY1C,8DAA8D;AAC9D,wBAAgB,QAAQ,IAAI,QAAQ,CAWnC;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,IAAI,QAAQ,CAezC;AAED,oEAAoE;AACpE,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,QAAQ,CAgBpD;AAED,kEAAkE;AAClE,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,QAAQ,
|
|
1
|
+
{"version":3,"file":"examples.d.ts","sourceRoot":"","sources":["../src/examples.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,WAAW,CAAC;AAY1C,8DAA8D;AAC9D,wBAAgB,QAAQ,IAAI,QAAQ,CAWnC;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,IAAI,QAAQ,CAezC;AAED,oEAAoE;AACpE,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,QAAQ,CAgBpD;AAED,kEAAkE;AAClE,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,QAAQ,CAiBnD;AAED,uDAAuD;AACvD,wBAAgB,SAAS,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,QAAQ,CAsBvE;AAED,kCAAkC;AAClC,wBAAgB,SAAS,IAAI,QAAQ,CAWpC;AAED,+EAA+E;AAC/E,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,QAAQ,CAepD;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,QAAQ,CAgB1D;AAED,iFAAiF;AACjF,wBAAgB,QAAQ,IAAI,QAAQ,CAiBnC;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,IAAI,QAAQ,CAK3C;AAED;;;;;GAKG;AACH,wBAAgB,QAAQ,IAAI,QAAQ,CA0BnC;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,QAAQ,CAAC;CAChB;AAED,kFAAkF;AAClF,eAAO,MAAM,iBAAiB,EAAE,WAAW,EAY1C,CAAC"}
|
package/dist/examples.js
CHANGED
|
@@ -71,7 +71,8 @@ export function threadView(rootId) {
|
|
|
71
71
|
atom: 'stack',
|
|
72
72
|
children: [
|
|
73
73
|
{ atom: 'note-card', bind: { query: buildEventByIdFilter([rootId]), kindAuto: true } },
|
|
74
|
-
|
|
74
|
+
// Replies read oldest-first so the conversation flows top-to-bottom.
|
|
75
|
+
{ atom: 'note-card', bind: { query: buildCommentFilter([rootId]), kindAuto: true, sort: 'asc' } },
|
|
75
76
|
{
|
|
76
77
|
atom: 'composer',
|
|
77
78
|
props: { placeholder: 'Reply…', label: 'Reply' },
|
|
@@ -135,6 +136,28 @@ export function onboardView(pubkey) {
|
|
|
135
136
|
},
|
|
136
137
|
};
|
|
137
138
|
}
|
|
139
|
+
/**
|
|
140
|
+
* A profile editor: input fields for name/picture/about (pre-filled from the
|
|
141
|
+
* user's existing kind:0, when bound) that publish an updated kind:0 via a
|
|
142
|
+
* pay-to-write confirm, with the live header below so the change shows up.
|
|
143
|
+
*/
|
|
144
|
+
export function profileEditorView(pubkey) {
|
|
145
|
+
return {
|
|
146
|
+
title: 'Edit profile',
|
|
147
|
+
root: {
|
|
148
|
+
atom: 'stack',
|
|
149
|
+
children: [
|
|
150
|
+
{
|
|
151
|
+
atom: 'profile-editor',
|
|
152
|
+
props: { label: 'Save profile' },
|
|
153
|
+
bind: { query: buildProfileFilter([pubkey]) },
|
|
154
|
+
actions: { publish: { tool: PUBLISH_TOOL, args: { kind: 0 } } },
|
|
155
|
+
},
|
|
156
|
+
{ atom: 'profile-header', bind: { query: buildProfileFilter([pubkey]) } },
|
|
157
|
+
],
|
|
158
|
+
},
|
|
159
|
+
};
|
|
160
|
+
}
|
|
138
161
|
/** A DeFi panel: pre-open a channel, run a swap, show the settlement receipt. */
|
|
139
162
|
export function swapView() {
|
|
140
163
|
return {
|
|
@@ -207,6 +230,7 @@ export const EXAMPLE_VIEWSPECS = [
|
|
|
207
230
|
{ name: 'forge', description: 'Tabbed repos + issues (NIP-34).', spec: forgeView('<owner-pubkey>', '<repo-id>') },
|
|
208
231
|
{ name: 'media', description: 'Media gallery with an uploader.', spec: mediaView() },
|
|
209
232
|
{ name: 'onboard', description: 'Get-started card + the new user’s profile header.', spec: onboardView('<pubkey-hex>') },
|
|
233
|
+
{ name: 'profile-editor', description: 'Edit name/picture/about → publish kind:0 via pay-to-write (pre-fills from the bound profile).', spec: profileEditorView('<pubkey-hex>') },
|
|
210
234
|
{ name: 'swap', description: 'Open a channel, run a swap, show the settlement receipt.', spec: swapView() },
|
|
211
235
|
{ name: 'client-status', description: 'Daemon health dashboard (ready/relay/chains/identity) from live toon_status — answers "show me my status".', spec: clientStatusView() },
|
|
212
236
|
{ name: 'info', description: 'Generic info view from content primitives (heading + key-value + badge) — the pattern for any non-event data.', spec: infoView() },
|