@markee_team/sdk 0.1.0-alpha.8 → 0.1.0-beta.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.
- package/README.md +72 -6
- package/dist/client.d.ts +4 -3
- package/dist/index.d.ts +2 -0
- package/dist/index.js +55 -4
- package/dist/logo-data.d.ts +2 -0
- package/dist/modal.d.ts +12 -0
- package/dist/react.d.ts +9 -0
- package/dist/react.js +55 -4
- package/dist/sign.d.ts +23 -0
- package/dist/styles.d.ts +1 -1
- package/dist/types.d.ts +30 -1
- package/package.json +3 -3
package/dist/sign.d.ts
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { Entry, Placement, SDKOptions, Snapshot } from './types.js';
|
|
2
|
+
export interface MarkeeSignOptions extends SDKOptions {
|
|
3
|
+
placement: Placement;
|
|
4
|
+
/** Make the sign a button that opens the payment modal. Defaults to true. */
|
|
5
|
+
showAction?: boolean;
|
|
6
|
+
/** Open a host-controlled modal instead of the sign's built-in SDK modal. */
|
|
7
|
+
onOpen?: () => void;
|
|
8
|
+
/** Refresh board and moderation state while mounted. Minimum 10 seconds; default 30 seconds. */
|
|
9
|
+
refreshIntervalMs?: number;
|
|
10
|
+
}
|
|
11
|
+
/** Board flags apply on integrations; Markee-only site flags deliberately do not. */
|
|
12
|
+
export declare function signContent(snapshot: Snapshot): {
|
|
13
|
+
entry: Entry | null;
|
|
14
|
+
visibility: 'visible' | 'flagged' | 'unavailable';
|
|
15
|
+
};
|
|
16
|
+
/** @internal Pure renderer kept separate so hidden-content behavior can be verified. */
|
|
17
|
+
export declare function signHtml(snapshot: Snapshot | null, showAction: boolean, unavailable?: boolean): string;
|
|
18
|
+
/** Mount a live, isolated sign in any app. The Markee API supplies its content and moderation status. */
|
|
19
|
+
export declare function createMarkeeSign(container: HTMLElement, options: MarkeeSignOptions): {
|
|
20
|
+
refresh: () => Promise<void>;
|
|
21
|
+
setTheme: (theme?: import("./types.js").MarkeeTheme) => void;
|
|
22
|
+
destroy(): void;
|
|
23
|
+
};
|
package/dist/styles.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const styles = "\n:host{all:initial;font-family:var(--markee-font-family);color:var(--markee-text);font-size:14px;line-height:1.5;color-scheme:var(--markee-color-scheme)}\n\n*{box-sizing:border-box}\nbutton,input,textarea,select{font:inherit}\nbutton{cursor:pointer}\nbutton:disabled{opacity:.5;cursor:wait}\nbutton:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,a:focus-visible{outline:3px solid var(--markee-focus-ring);outline-offset:3px}\n\n.overlay{position:fixed;inset:0;z-index:10000;background:var(--markee-overlay);backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;padding:24px}\n\n.panel{background:var(--markee-background);border:1px solid var(--markee-border);border-radius:var(--markee-radius);width:min(512px,100%);max-height:92dvh;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 24px 100px #10183244;position:relative}\n\nheader{flex-shrink:0;padding:18px 24px;display:flex;gap:16px;align-items:flex-start;border-bottom:1px solid var(--markee-border)}\n.brand{width:40px;height:40px;display:grid;place-items:center;border-radius:var(--markee-control-radius);background:var(--markee-primary);color:var(--markee-primary-text);font-weight:900;font-size:24px}\n.grow{flex:1;min-width:0}\nh1{font-size:18px;line-height:1.25;margin:0 0 4px}\nh2{font-size:18px;line-height:1.3;margin:0 0 12px}\nh3{font-size:16px;margin:0 0 8px}\np{margin:8px 0 14px}\n.muted,small{color:var(--markee-muted)}\n.eyebrow{font-size:11px;text-transform:uppercase;letter-spacing:1.3px;font-weight:700;color:var(--markee-accent-surface-text)}\n.pill{display:inline-flex;border-radius:var(--markee-small-radius);background:var(--markee-accent-surface);color:var(--markee-accent-surface-text);padding:3px 7px;font-size:11px;font-weight:700}\n.close{border:0;background:none;color:var(--markee-muted);font-size:23px;padding:5px 10px;border-radius:var(--markee-small-radius)}\n.nav{display:flex;gap:4px;padding:12px 24px 0;overflow:auto}\n.nav button{white-space:nowrap;border:0;background:transparent;padding:10px 12px;color:var(--markee-muted);border-radius:var(--markee-control-radius);font-size:13px}\n.nav button[aria-selected=true]{background:var(--markee-selected);color:var(--markee-selected-text);font-weight:650}\n.content{padding:20px 24px;overflow-y:auto;overflow-x:hidden;min-height:0;overscroll-behavior:contain}\n.row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}\n.between{justify-content:space-between}\n.stack{display:grid;gap:12px}\n.btn{border:1px solid var(--markee-border);border-radius:var(--markee-control-radius);background:var(--markee-surface);color:var(--markee-text);padding:10px 15px;font-weight:600;font-size:13px}\n.primary{background:var(--markee-primary);border-color:var(--markee-primary);color:var(--markee-primary-text)}\n.accent{background:var(--markee-accent);border-color:var(--markee-accent);color:var(--markee-accent-text)}\n.danger{color:var(--markee-error-text)}\n.full{width:100%}\n.card{border:1px solid var(--markee-border);border-radius:var(--markee-card-radius);background:var(--markee-surface);padding:17px 18px}\n.winner{background:var(--markee-accent-surface);border-color:var(--markee-accent-border)}\n.message{font-family:ui-monospace,monospace;font-size:15px;overflow-wrap:anywhere;white-space:pre-wrap;line-height:1.5;margin:10px 0}\n.name{font-size:12px;color:var(--markee-muted)}\n.meta{font-size:12px;color:var(--markee-muted)}\n.stat{display:flex;justify-content:space-between;gap:16px;margin:8px 0;font-size:13px}\n.stat strong{text-align:right;overflow-wrap:anywhere}\n.grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}\n.metric{font-size:23px;font-weight:650;letter-spacing:-.6px}\n.note,.error,.success{padding:12px 14px;border-radius:var(--markee-control-radius);font-size:13px;overflow-wrap:anywhere;margin-bottom:14px}\n.note{background:var(--markee-info);color:var(--markee-info-text)}\n.error{background:var(--markee-error);color:var(--markee-error-text)}\n.success{background:var(--markee-success);color:var(--markee-success-text)}\nlabel{display:block;font-size:13px;font-weight:600;margin-bottom:6px}\ninput,textarea,select{display:block;width:100%;border:1px solid var(--markee-border);border-radius:var(--markee-control-radius);background:var(--markee-input-background);color:var(--markee-input-text);padding:12px;min-width:0}\ninput::placeholder,textarea::placeholder{color:var(--markee-muted);opacity:1}\ntextarea{font-family:ui-monospace,monospace;font-size:14px;min-height:88px;max-height:220px;resize:vertical}\nform{display:grid;gap:16px}\n.field small{display:block;margin-top:5px;font-weight:400;font-size:12px}\n.divider{height:1px;background:var(--markee-border);margin:20px 0}\na{color:var(--markee-link);text-decoration:none;overflow-wrap:anywhere}\nul{padding-left:20px;font-size:14px}\n.review li{margin-bottom:9px;overflow-wrap:anywhere}\n.loading{padding:40px;text-align:center;color:var(--markee-muted)}\n.empty{padding:24px 8px;text-align:center}\n.spinner{display:inline-block;width:14px;height:14px;border-radius:100%;border:2px solid var(--markee-border);border-top-color:var(--markee-muted);animation:spin 1s linear infinite;margin-right:8px}\n@keyframes spin{to{transform:rotate(360deg)}\n}\nfooter{flex-shrink:0;padding:14px 20px;border-top:1px solid var(--markee-border);background:var(--markee-background);color:var(--markee-muted);font-size:11px}\n.mono{font-family:ui-monospace,monospace}\n.review{margin:16px 0}.review ul{padding-left:18px}.review .stat{border-top:1px solid var(--markee-border);padding-top:10px}.review-title{font-size:14px;color:var(--markee-muted);font-weight:500}\n.wallets{display:grid;gap:10px}\n\n\n.header-caption{font-size:12px;color:var(--markee-muted);margin:5px 0 0}\n.close{line-height:1;padding:4px 6px;flex-shrink:0}\n.text-button{border:0;background:transparent;color:var(--markee-link);padding:0;font-size:12px;font-weight:500;text-align:left}\n.compact{padding:5px 9px;font-size:11px;line-height:1.4}\n.leaderboard{border:1px solid var(--markee-border);border-radius:var(--markee-control-radius);padding:12px 14px;background:var(--markee-surface);margin-bottom:20px}\n.leaderboard>.row{gap:8px}.leaderboard a{font-size:11px}.leaderboard .text-button{color:var(--markee-muted)}.chevron{display:inline-block;width:15px;font-size:16px}\n.leaderboard-list{display:grid;gap:10px;margin-top:12px;padding-top:12px;border-top:1px solid var(--markee-border)}\n.leaderboard-entry{display:flex;gap:12px;align-items:center;justify-content:space-between;border:1px solid var(--markee-border);border-radius:var(--markee-control-radius);padding:10px}\n.selected-entry{border-color:var(--markee-link)}.leaderboard-entry .message{font-size:12px;line-height:1.5;margin:0}.entry-caption{gap:5px;margin-top:5px}.entry-caption:empty{display:none}.entry-caption .pill{font-size:9px}.entry-caption .name,.entry-caption .meta{font-size:10px}\n.entry-funding{display:flex;flex-direction:column;align-items:flex-end;gap:4px;flex:0 0 auto;max-width:44%;text-align:right;overflow-wrap:anywhere}.entry-funding .meta{font-size:10px}\n.message-card{padding:16px;border:1px solid var(--markee-border);border-radius:var(--markee-card-radius);background:var(--markee-surface);min-width:0}\n.message-card.winner{background:var(--markee-accent-surface);border-color:var(--markee-accent-border)}\n.message-card>.message{font-size:17px;margin:12px 0 6px}.message-card .eyebrow{font-size:10px}.message-card>.name{margin:4px 0}\n.message-tools{margin-top:12px;gap:10px 16px}.message-tools .text-button{font-size:11px}.editor-card{display:grid;gap:16px}\n.field label{display:flex;align-items:baseline;justify-content:space-between;gap:8px}.field-count{font-size:10px;font-weight:400;color:var(--markee-muted)}.field small{font-size:10px}\n.message-stats{border-top:1px solid var(--markee-border);margin-top:16px;padding-top:12px}.message-stats>.meta{font-size:11px}.stats-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:8px}.stats-grid>div{min-width:0}.stats-grid strong{display:block;font-family:ui-monospace,monospace;font-size:12px;overflow-wrap:anywhere}.stat-label{display:block;font-size:9px;letter-spacing:.6px;text-transform:uppercase;color:var(--markee-muted);margin-bottom:4px}\n.funding-card{border:1px solid var(--markee-link);border-radius:var(--markee-card-radius);background:var(--markee-surface);padding:16px;min-width:0}\n.funding-card>label{font-size:11px;color:var(--markee-muted);font-weight:500;margin-bottom:8px}.amount-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.amount-value{display:flex;gap:6px;align-items:baseline;min-width:0;flex:1 1 140px}.amount-value input{background:transparent;border:0;border-radius:2px;box-shadow:none;font-family:ui-monospace,monospace;font-size:23px;font-weight:600;min-width:0;width:100%;padding:3px 0;color:var(--markee-text)}.amount-value>span{font-size:11px;color:var(--markee-muted);white-space:nowrap}.amount-presets{display:flex;gap:6px;margin-left:auto}.amount-presets button{color:var(--markee-link)}.amount-presets button[aria-pressed=true]{border-color:var(--markee-link);background:var(--markee-selected);color:var(--markee-selected-text)}\n.funding-caption{display:flex;justify-content:space-between;flex-wrap:wrap;gap:4px 10px;margin-top:9px;color:var(--markee-muted);font-size:10px}.funding-tools{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:8px;border-top:1px solid var(--markee-border);margin-top:13px;padding-top:12px}.funding-tools .meta{font-size:10px}.funding-hint{font-size:11px;margin:0}.funding-hint+.note{margin:0;font-size:11px}\n.footer-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.footer-actions>.primary:last-child{margin-left:auto}.footer-actions:empty{display:none}.footer-meta{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:6px;margin-top:10px;font-size:10px}.footer-meta .text-button{font-size:10px}\n\n@media(max-width:560px){.overlay{padding:8px;align-items:flex-end}\n.panel{border-radius:var(--markee-radius) var(--markee-radius) var(--markee-control-radius) var(--markee-control-radius);max-height:94dvh}\n.content{padding:20px 18px}\nheader{padding:20px 18px}\n.nav{padding-left:10px;padding-right:10px}\n.grid{grid-template-columns:1fr 1fr}\n.metric{font-size:19px}\nfooter{padding:12px 18px}\n.btn{padding:10px 12px}\n.compact{padding:5px 9px}.text-button{padding:0}.footer-actions>.btn{flex:1;white-space:normal}.footer-actions>.primary:last-child{margin-left:0}\n}\n\n@media(prefers-reduced-motion:reduce){*{animation:none!important;scroll-behavior:auto!important}\n}\n\n";
|
|
1
|
+
export declare const styles = "\n:host{all:initial;font-family:var(--markee-font-family);color:var(--markee-text);font-size:14px;line-height:1.5;color-scheme:var(--markee-color-scheme)}\n\n*{box-sizing:border-box}\nbutton,input,textarea,select{font:inherit}\nbutton{cursor:pointer}\nbutton:disabled{opacity:.5;cursor:wait}\nbutton:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,a:focus-visible{outline:3px solid var(--markee-focus-ring);outline-offset:3px}\n\n.overlay{position:fixed;inset:0;z-index:10000;background:var(--markee-overlay);backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;padding:24px}\n\n.panel{background:var(--markee-background);border:1px solid var(--markee-border);border-radius:var(--markee-radius);width:min(512px,100%);max-height:92dvh;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 24px 100px #10183244;position:relative}\n\nheader{flex-shrink:0;padding:18px 24px;display:flex;gap:16px;align-items:flex-start;border-bottom:1px solid var(--markee-border)}\n.brand{width:40px;height:40px;display:grid;place-items:center;border-radius:var(--markee-control-radius);background:var(--markee-primary);color:var(--markee-primary-text);font-weight:900;font-size:24px}\n.grow{flex:1;min-width:0}\nh1{font-size:18px;line-height:1.25;margin:0 0 4px}\nh2{font-size:18px;line-height:1.3;margin:0 0 12px}\nh3{font-size:16px;margin:0 0 8px}\np{margin:8px 0 14px}\n.muted,small{color:var(--markee-muted)}\n.eyebrow{font-size:11px;text-transform:uppercase;letter-spacing:1.3px;font-weight:700;color:var(--markee-accent-surface-text)}\n.pill{display:inline-flex;border-radius:var(--markee-small-radius);background:var(--markee-accent-surface);color:var(--markee-accent-surface-text);padding:3px 7px;font-size:11px;font-weight:700}\n.close{border:0;background:none;color:var(--markee-muted);font-size:23px;padding:5px 10px;border-radius:var(--markee-small-radius)}\n.nav{display:flex;gap:4px;padding:12px 24px 0;overflow:auto}\n.nav button{white-space:nowrap;border:0;background:transparent;padding:10px 12px;color:var(--markee-muted);border-radius:var(--markee-control-radius);font-size:13px}\n.nav button[aria-selected=true]{background:var(--markee-selected);color:var(--markee-selected-text);font-weight:650}\n.content{padding:20px 24px;overflow-y:auto;overflow-x:hidden;min-height:0;overscroll-behavior:contain}\n.row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}\n.between{justify-content:space-between}\n.stack{display:grid;gap:12px}\n.btn{border:1px solid var(--markee-border);border-radius:var(--markee-control-radius);background:var(--markee-surface);color:var(--markee-text);padding:10px 15px;font-weight:600;font-size:13px}\n.primary{background:var(--markee-primary);border-color:var(--markee-primary);color:var(--markee-primary-text)}\n.accent{background:var(--markee-accent);border-color:var(--markee-accent);color:var(--markee-accent-text)}\n.review-action{position:relative;display:inline-flex;margin-left:auto}.review-action>button{width:100%}\n.review-action.insufficient,.review-action.insufficient button{cursor:not-allowed}\n.balance-tooltip{position:absolute;bottom:calc(100% + 8px);right:0;width:max-content;max-width:min(280px,75vw);padding:8px 12px;border:1px solid var(--markee-border);border-radius:8px;background:var(--markee-background);color:var(--markee-text);font-size:12px;line-height:1.5;z-index:2;visibility:hidden}\n.balance-tooltip[hidden]{display:none}\n.review-action:hover .balance-tooltip,.review-action:focus .balance-tooltip{visibility:visible}\n.danger{color:var(--markee-error-text)}\n.full{width:100%}\n.card{border:1px solid var(--markee-border);border-radius:var(--markee-card-radius);background:var(--markee-surface);padding:17px 18px}\n.winner{background:var(--markee-accent-surface);border-color:var(--markee-accent-border)}\n.message{font-family:ui-monospace,monospace;font-size:15px;overflow-wrap:anywhere;white-space:pre-wrap;line-height:1.5;margin:10px 0}\n.name{font-size:12px;color:var(--markee-muted)}\n.meta{font-size:12px;color:var(--markee-muted)}\n.stat{display:flex;justify-content:space-between;gap:16px;margin:8px 0;font-size:13px}\n.stat strong{text-align:right;overflow-wrap:anywhere}\n.grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}\n.metric{font-size:23px;font-weight:650;letter-spacing:-.6px}\n.note,.error,.success{padding:12px 14px;border-radius:var(--markee-control-radius);font-size:13px;overflow-wrap:anywhere;margin-bottom:14px}\n.note{background:var(--markee-info);color:var(--markee-info-text)}\n.error{background:var(--markee-error);color:var(--markee-error-text)}\n.success{background:var(--markee-success);color:var(--markee-success-text)}\nlabel{display:block;font-size:13px;font-weight:600;margin-bottom:6px}\ninput,textarea,select{display:block;width:100%;border:1px solid var(--markee-border);border-radius:var(--markee-control-radius);background:var(--markee-input-background);color:var(--markee-input-text);padding:12px;min-width:0}\ninput::placeholder,textarea::placeholder{color:var(--markee-muted);opacity:1}\ntextarea{font-family:ui-monospace,monospace;font-size:14px;min-height:88px;max-height:220px;resize:vertical}\nform{display:grid;gap:16px}\n.field small{display:block;margin-top:5px;font-weight:400;font-size:12px}\n.divider{height:1px;background:var(--markee-border);margin:20px 0}\na{color:var(--markee-link);text-decoration:none;overflow-wrap:anywhere}\nul{padding-left:20px;font-size:14px}\n.loading{padding:40px;text-align:center;color:var(--markee-muted)}\n.empty{padding:24px 8px;text-align:center}\n.spinner{display:inline-block;width:14px;height:14px;border-radius:100%;border:2px solid var(--markee-border);border-top-color:var(--markee-muted);animation:spin 1s linear infinite;margin-right:8px}\n@keyframes spin{to{transform:rotate(360deg)}\n}\nfooter{flex-shrink:0;padding:14px 20px;border-top:1px solid var(--markee-border);background:var(--markee-background);color:var(--markee-muted);font-size:11px}\n.mono{font-family:ui-monospace,monospace}\n.payment-review{display:grid;gap:16px}\n.review-message{border:1px solid var(--markee-border);border-radius:var(--markee-card-radius);background:var(--markee-input-background);padding:16px 18px;min-width:0}\n.review-message .message{font-size:14px;margin:0}\n.review-summary{padding:0 4px}\n.review-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:10px 0;border-bottom:1px solid var(--markee-border);font-size:13px}\n.review-row:last-child{border-bottom:0}\n.review-row>span{color:var(--markee-muted)}\n.review-row strong{text-align:right;font-family:ui-monospace,monospace;font-size:13px;overflow-wrap:anywhere}\n.review-callout{padding:16px;border:1px solid var(--markee-accent-border);border-radius:var(--markee-control-radius);background:var(--markee-accent-surface);color:var(--markee-accent-surface-text)}\n.review-callout strong{display:block;font-family:ui-monospace,monospace;font-size:13px;line-height:1.45}\n.review-callout p{margin:6px 0 0;font-size:12px;line-height:1.5}\n.review-details{font-size:11px;color:var(--markee-muted)}\n.review-details summary{cursor:pointer;color:var(--markee-link);font-size:12px}\n.review-details .review-row{font-size:11px;padding:7px 0}\n.review-details .review-row strong{font-size:11px;color:var(--markee-text)}\n.review-address{display:flex;align-items:center;justify-content:flex-end;gap:8px;min-width:0}\n.review-copy{padding:3px 7px;font-size:10px;line-height:1.3;color:var(--markee-link);white-space:nowrap}\n.review-details p{margin:8px 0}\n.review-footer .footer-actions{justify-content:flex-end}\n.review-footer .footer-actions>.primary:last-child{margin-left:0}\n.wallets{display:grid;gap:10px}\n\n\n.header-caption{font-size:12px;color:var(--markee-muted);margin:5px 0 0}\n.close{line-height:1;padding:4px 6px;flex-shrink:0}\n.text-button{border:0;background:transparent;color:var(--markee-link);padding:0;font-size:12px;font-weight:500;text-align:left}\n.compact{padding:5px 9px;font-size:11px;line-height:1.4}\n.leaderboard{border:1px solid var(--markee-border);border-radius:var(--markee-control-radius);padding:12px 14px;background:var(--markee-surface);margin-bottom:20px}\n.leaderboard>.row{gap:8px}.leaderboard a{font-size:11px}.leaderboard .text-button{color:var(--markee-muted)}.chevron{display:inline-block;width:15px;font-size:16px}\n.leaderboard-list{display:grid;gap:10px;margin-top:12px;padding-top:12px;border-top:1px solid var(--markee-border)}\n.leaderboard-entry{display:flex;gap:12px;align-items:center;justify-content:space-between;border:1px solid var(--markee-border);border-radius:var(--markee-control-radius);padding:10px}\n.selected-entry{border-color:var(--markee-link)}.leaderboard-entry .message{font-size:12px;line-height:1.5;margin:0}.entry-caption{gap:5px;margin-top:5px}.entry-caption:empty{display:none}.entry-caption .pill{font-size:9px}.entry-caption .name,.entry-caption .meta{font-size:10px}\n.entry-funding{display:flex;flex-direction:column;align-items:flex-end;gap:4px;flex:0 0 auto;max-width:44%;text-align:right;overflow-wrap:anywhere}.entry-funding .meta{font-size:10px}\n.message-card{padding:16px;border:1px solid var(--markee-border);border-radius:var(--markee-card-radius);background:var(--markee-surface);min-width:0}\n.message-card.winner{background:var(--markee-accent-surface);border-color:var(--markee-accent-border)}\n.message-card>.message{font-size:17px;margin:12px 0 6px}.message-card .eyebrow{font-size:10px}.message-card>.name{margin:4px 0}\n.leaderboard-entry .message.moderation-placeholder,.message-card>.message.moderation-placeholder{font-family:var(--markee-font-family);font-size:12px;font-weight:500;line-height:1.45;color:var(--markee-muted);background:var(--markee-background);border:1px dashed var(--markee-border);border-radius:var(--markee-small-radius);padding:8px 10px}\n.message-tools{margin-top:12px;gap:10px 16px}.message-tools .text-button{font-size:11px}.editor-card{display:grid;gap:16px}\n.field label{display:flex;align-items:baseline;justify-content:space-between;gap:8px}.field-count{font-size:10px;font-weight:400;color:var(--markee-muted)}.field small{font-size:10px}\n.message-stats{border-top:1px solid var(--markee-border);margin-top:16px;padding-top:12px}.message-stats>.meta{font-size:11px}.stats-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:8px}.stats-grid>div{min-width:0}.stats-grid strong{display:block;font-family:ui-monospace,monospace;font-size:12px;overflow-wrap:anywhere}.stat-label{display:block;font-size:9px;letter-spacing:.6px;text-transform:uppercase;color:var(--markee-muted);margin-bottom:4px}\n.funding-card{border:1px solid var(--markee-link);border-radius:var(--markee-card-radius);background:var(--markee-surface);padding:16px;min-width:0}\n.funding-card>label{font-size:11px;color:var(--markee-muted);font-weight:500;margin-bottom:8px}.amount-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.amount-value{display:flex;gap:6px;align-items:baseline;min-width:0;flex:1 1 140px}.amount-value input{background:transparent;border:0;border-radius:2px;box-shadow:none;font-family:ui-monospace,monospace;font-size:23px;font-weight:600;min-width:0;width:100%;padding:3px 0;color:var(--markee-text)}.amount-value>span{font-size:11px;color:var(--markee-muted);white-space:nowrap}.amount-presets{display:flex;gap:6px;margin-left:auto}.amount-presets button{color:var(--markee-link)}.amount-presets button[aria-pressed=true]{border-color:var(--markee-link);background:var(--markee-selected);color:var(--markee-selected-text)}\n.funding-caption{display:flex;justify-content:space-between;flex-wrap:wrap;gap:4px 10px;margin-top:9px;color:var(--markee-muted);font-size:10px}.funding-tools{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:8px;border-top:1px solid var(--markee-border);margin-top:13px;padding-top:12px}.funding-tools .meta{font-size:10px}.funding-hint{font-size:11px;margin:0}.funding-hint+.note{margin:0;font-size:11px}\n.footer-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.footer-actions>.primary:last-child{margin-left:auto}.footer-actions:empty{display:none}.footer-meta{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:6px;margin-top:10px;font-size:10px}.footer-meta .text-button{font-size:10px}\n.payment-choice-footer .footer-actions{justify-content:flex-end}.payment-choice-footer .footer-actions>.primary:last-child{margin-left:0}\n\n@media(max-width:560px){.overlay{padding:8px;align-items:flex-end}\n.panel{border-radius:var(--markee-radius) var(--markee-radius) var(--markee-control-radius) var(--markee-control-radius);max-height:94dvh}\n.content{padding:20px 18px}\nheader{padding:20px 18px}\n.nav{padding-left:10px;padding-right:10px}\n.grid{grid-template-columns:1fr 1fr}\n.metric{font-size:19px}\nfooter{padding:12px 18px}\n.btn{padding:10px 12px}\n.compact{padding:5px 9px}.text-button{padding:0}.footer-actions>.btn{flex:1;white-space:normal}.footer-actions>.primary:last-child{margin-left:0}\n.review-footer .footer-actions>.btn{flex:0 1 auto}\n.payment-choice-footer .footer-actions>.btn{flex:0 1 auto}\n}\n\n@media(prefers-reduced-motion:reduce){*{animation:none!important;scroll-behavior:auto!important}\n}\n\n";
|
package/dist/types.d.ts
CHANGED
|
@@ -1,3 +1,17 @@
|
|
|
1
|
+
export interface MessageCheck {
|
|
2
|
+
enabled: boolean;
|
|
3
|
+
state: 'pass' | 'soft-flagged' | 'unavailable';
|
|
4
|
+
contentHash: string;
|
|
5
|
+
engine: string;
|
|
6
|
+
policyVersion: string;
|
|
7
|
+
reason?: string;
|
|
8
|
+
}
|
|
9
|
+
export interface EntryModeration {
|
|
10
|
+
state: 'visible' | 'manual-flagged' | 'soft-flagged' | 'unavailable';
|
|
11
|
+
contentHash: string;
|
|
12
|
+
reason?: string;
|
|
13
|
+
policyVersion: string;
|
|
14
|
+
}
|
|
1
15
|
export type Address = `0x${string}`;
|
|
2
16
|
export type Hex = `0x${string}`;
|
|
3
17
|
export type Placement = {
|
|
@@ -18,6 +32,7 @@ export interface Entry {
|
|
|
18
32
|
totalFunds: string;
|
|
19
33
|
aggregateRate: string;
|
|
20
34
|
legacyFloor: string;
|
|
35
|
+
moderation?: EntryModeration;
|
|
21
36
|
moderated: boolean | null;
|
|
22
37
|
views: number | null;
|
|
23
38
|
}
|
|
@@ -57,6 +72,7 @@ export interface CommunityState {
|
|
|
57
72
|
};
|
|
58
73
|
}
|
|
59
74
|
export interface Snapshot {
|
|
75
|
+
autoModerationEnabled?: boolean;
|
|
60
76
|
freshness?: {
|
|
61
77
|
updatedAt: number;
|
|
62
78
|
freshUntil: number;
|
|
@@ -68,6 +84,7 @@ export interface Snapshot {
|
|
|
68
84
|
placement: Placement;
|
|
69
85
|
board: Address | null;
|
|
70
86
|
chainId: number;
|
|
87
|
+
beneficiary?: Address | null;
|
|
71
88
|
strategy: 'sale' | 'rent';
|
|
72
89
|
name: string;
|
|
73
90
|
minimum: string;
|
|
@@ -137,10 +154,12 @@ export interface PreparedAction {
|
|
|
137
154
|
gas: Hex;
|
|
138
155
|
};
|
|
139
156
|
review: {
|
|
157
|
+
moderation?: MessageCheck;
|
|
140
158
|
title: string;
|
|
141
159
|
lines: string[];
|
|
142
160
|
estimatedGasCost: string;
|
|
143
161
|
reward: string;
|
|
162
|
+
estimatedTokens?: string;
|
|
144
163
|
};
|
|
145
164
|
}
|
|
146
165
|
export interface TransactionResult {
|
|
@@ -212,7 +231,7 @@ export interface WalletAdapter {
|
|
|
212
231
|
getProvider(): Promise<EIP1193Provider | null>;
|
|
213
232
|
connect?(): Promise<EIP1193Provider>;
|
|
214
233
|
}
|
|
215
|
-
/** Semantic color pairs used
|
|
234
|
+
/** Semantic color pairs used by the modal and sign, including forms and notices. */
|
|
216
235
|
export interface MarkeeThemeColors {
|
|
217
236
|
background: string;
|
|
218
237
|
surface: string;
|
|
@@ -249,6 +268,16 @@ export interface MarkeeTheme {
|
|
|
249
268
|
fontFamily?: string;
|
|
250
269
|
/** Panel corner radius in pixels, clamped to 0–48. Controls scale with it. Default: 22. */
|
|
251
270
|
radius?: number;
|
|
271
|
+
/** Card corner radius in pixels, 0–48. Defaults to 64% of radius. */
|
|
272
|
+
cardRadius?: number;
|
|
273
|
+
/** Button and input corner radius in pixels, 0–48. Defaults to 45% of radius. */
|
|
274
|
+
controlRadius?: number;
|
|
275
|
+
/** Sign hover surface color. Defaults to the normal surface; set false to keep it unchanged. */
|
|
276
|
+
sign?: {
|
|
277
|
+
hoverBackground?: string | false;
|
|
278
|
+
/** Fade in the Markee logo behind the message on hover. Enabled by default. */
|
|
279
|
+
hoverLogo?: boolean;
|
|
280
|
+
};
|
|
252
281
|
}
|
|
253
282
|
export interface SDKOptions {
|
|
254
283
|
/** Optional development override; defaults to the Markee-hosted API. */
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@markee_team/sdk",
|
|
3
|
-
"version": "0.1.0-
|
|
3
|
+
"version": "0.1.0-beta.1",
|
|
4
4
|
"description": "Self-contained Markee modal and API client, with an optional React adapter.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"sideEffects": false,
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
}
|
|
21
21
|
},
|
|
22
22
|
"scripts": {
|
|
23
|
-
"build": "tsc && esbuild src/index.ts src/react.ts --bundle --format=esm --outdir=dist --external:react --minify",
|
|
23
|
+
"build": "node scripts/embed-logos.mjs && tsc && esbuild src/index.ts src/react.ts --bundle --format=esm --outdir=dist --external:react --minify",
|
|
24
24
|
"typecheck": "tsc --noEmit",
|
|
25
25
|
"test": "tsx --test tests/*.test.ts",
|
|
26
26
|
"prepack": "npm run build",
|
|
@@ -55,7 +55,7 @@
|
|
|
55
55
|
},
|
|
56
56
|
"publishConfig": {
|
|
57
57
|
"access": "public",
|
|
58
|
-
"tag": "
|
|
58
|
+
"tag": "latest",
|
|
59
59
|
"registry": "https://registry.npmjs.org/"
|
|
60
60
|
},
|
|
61
61
|
"main": "./dist/index.js",
|