@markee_team/sdk 0.1.0-alpha.2 → 0.1.0-alpha.21

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/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
@@ -141,6 +141,7 @@ export interface PreparedAction {
141
141
  lines: string[];
142
142
  estimatedGasCost: string;
143
143
  reward: string;
144
+ estimatedTokens?: string;
144
145
  };
145
146
  }
146
147
  export interface TransactionResult {
@@ -212,7 +213,7 @@ export interface WalletAdapter {
212
213
  getProvider(): Promise<EIP1193Provider | null>;
213
214
  connect?(): Promise<EIP1193Provider>;
214
215
  }
215
- /** Semantic color pairs used throughout the modal, including forms and notices. */
216
+ /** Semantic color pairs used by the modal and sign, including forms and notices. */
216
217
  export interface MarkeeThemeColors {
217
218
  background: string;
218
219
  surface: string;
@@ -249,12 +250,26 @@ export interface MarkeeTheme {
249
250
  fontFamily?: string;
250
251
  /** Panel corner radius in pixels, clamped to 0–48. Controls scale with it. Default: 22. */
251
252
  radius?: number;
253
+ /** Card corner radius in pixels, 0–48. Defaults to 64% of radius. */
254
+ cardRadius?: number;
255
+ /** Button and input corner radius in pixels, 0–48. Defaults to 45% of radius. */
256
+ controlRadius?: number;
257
+ /** Sign hover surface color. Defaults to the normal surface; set false to keep it unchanged. */
258
+ sign?: {
259
+ hoverBackground?: string | false;
260
+ /** Fade in the Markee logo behind the message on hover. Enabled by default. */
261
+ hoverLogo?: boolean;
262
+ };
252
263
  }
253
264
  export interface SDKOptions {
254
265
  /** Optional development override; defaults to the Markee-hosted API. */
266
+ checkoutWindow?: 'tab' | 'redirect';
255
267
  apiUrl?: string;
256
268
  wallet?: WalletAdapter;
257
269
  fetch?: typeof fetch;
270
+ /** Public page/domain to verify for this board; omit to disable automatic registration. */
271
+ siteUrl?: string;
272
+ onSiteVerification?: (result: SiteVerification) => void;
258
273
  theme?: MarkeeTheme;
259
274
  onEvent?: (event: {
260
275
  type: 'submitted' | 'confirmed' | 'error';
@@ -262,3 +277,23 @@ export interface SDKOptions {
262
277
  message?: string;
263
278
  }) => void;
264
279
  }
280
+ export interface SiteVerification {
281
+ verified: boolean;
282
+ url: string;
283
+ verifiedUrls?: string[];
284
+ message?: string;
285
+ }
286
+ export interface CheckoutSession {
287
+ checkoutOrigin?: string;
288
+ id: string;
289
+ readToken: string;
290
+ writeToken: string;
291
+ expiresAt: number;
292
+ }
293
+ export interface CheckoutStatus {
294
+ id: string;
295
+ status: 'created' | 'ready' | 'signing' | 'submitted' | 'confirmed' | 'reverted';
296
+ account?: Address;
297
+ result?: TransactionResult;
298
+ expiresAt: number;
299
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@markee_team/sdk",
3
- "version": "0.1.0-alpha.2",
3
+ "version": "0.1.0-alpha.21",
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": "alpha",
58
+ "tag": "latest",
59
59
  "registry": "https://registry.npmjs.org/"
60
60
  },
61
61
  "main": "./dist/index.js",