@aurum-sdk/core 0.1.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.
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/ui/globals.css","../src/ui/Badge/Badge.css","../src/ui/Button/Button.css","../src/ui/Divider/Divider.css","../src/components/PoweredBy/PoweredBy.css","../src/ui/Modal/Modal.css","../src/ui/Spinner/Spinner.css","../src/ui/Text/Text.css","../src/components/ModalHeader/ModalHeader.css","../src/components/ConnectModal/EmailAuth.css","../src/components/ConnectModal/WalletGrid.css","../src/components/ConnectModal/AdditionalWalletsIcon.css","../src/components/ConnectModal/ConnectionStatus/ConnectionStatus.css","../src/components/QRCodeDisplay/QRCodeSkeleton.css","../src/components/QRCodeDisplay/QRCodeDisplay.css"],"sourcesContent":["/* ============================================\n AURUM SDK - DESIGN TOKEN SYSTEM\n ============================================\n\n Google Fonts:\n - Noto Sans: 400, 500, 600, 700\n ============================================ */\n\n@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap');\n\n/* ============================================\n External variables (injected by createShadowRoot.ts):\n - --aurum-primary-color: Brand color from dapp\n - --aurum-border-radius-*: Radius scale tokens\n - --aurum-modal-z-index: Modal z-index\n - --aurum-font-family: Font family from dapp\n ============================================ */\n\n/* Base reset styles for Shadow DOM */\n:host {\n all: initial;\n}\n\n*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\n/* Ensure form elements inherit font from parent */\ninput,\nbutton,\ntextarea,\nselect {\n font-family: inherit;\n}\n\n.aurum-sdk {\n /* ==========================================\n TYPOGRAPHY\n ========================================== */\n font-family: var(--aurum-font-family);\n font-size: 1rem;\n line-height: 1.5;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n\n /* Font weights */\n --font-normal: 400;\n --font-medium: 500;\n --font-semibold: 600;\n --font-bold: 700;\n\n /* ==========================================\n TRANSITIONS\n ========================================== */\n --duration-fast: 100ms;\n --duration-normal: 200ms;\n --duration-slow: 300ms;\n --ease-default: cubic-bezier(0.4, 0, 0.2, 1);\n --ease-in: cubic-bezier(0.4, 0, 1, 1);\n --ease-out: cubic-bezier(0, 0, 0.2, 1);\n\n /* ==========================================\n LIGHT THEME COLORS (Default)\n ========================================== */\n\n /* Foreground / Text */\n --color-foreground: #0c0c0c;\n --color-foreground-muted: #787878;\n --color-foreground-subtle: #979797;\n\n /* Card surfaces */\n --color-card: #ffffff;\n\n /* Borders */\n --color-border: #d9d9d9;\n --color-border-muted: #c0c0c0;\n --color-border-focus: var(--aurum-primary-color);\n\n /* Brand / Primary (from integrator) */\n --color-primary: var(--aurum-primary-color);\n --color-primary-foreground: #ffffff;\n --color-primary-hover: color-mix(in srgb, var(--aurum-primary-color) 85%, #000);\n --color-primary-muted: color-mix(in srgb, var(--aurum-primary-color) 15%, transparent);\n\n /* Interactive elements */\n --color-accent: #f1f1f1;\n --color-accent-foreground: #0d0d0d;\n --color-accent-hover: #e6e6e6;\n\n /* Semantic colors */\n --color-success: #22c55e;\n --color-error: #ef4444;\n\n /* Overlay / Modal */\n --color-overlay: rgb(0 0 0 / 0.5);\n\n /* Ring (focus indicator) */\n --color-ring: var(--aurum-primary-color);\n --ring-offset: 0.125rem;\n\n /* Shadows */\n --shadow: 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1);\n}\n\n/* ==========================================\n DARK THEME COLORS\n ========================================== */\n\n.aurum-sdk[data-theme='dark'] {\n /* Foreground / Text */\n --color-foreground: #fafafa;\n --color-foreground-muted: #a9a9a9;\n --color-foreground-subtle: #777777;\n\n /* Card surfaces */\n --color-card: #151515;\n\n /* Borders */\n --color-border: #282828;\n --color-border-muted: #424242;\n --color-border-focus: var(--aurum-primary-color);\n\n /* Brand / Primary (from integrator) */\n --color-primary: var(--aurum-primary-color);\n --color-primary-foreground: #0a0a0a;\n --color-primary-hover: color-mix(in srgb, var(--aurum-primary-color) 85%, #fff);\n --color-primary-muted: color-mix(in srgb, var(--aurum-primary-color) 20%, transparent);\n\n /* Interactive elements */\n --color-accent: #272727;\n --color-accent-foreground: #fafafa;\n --color-accent-hover: #404040;\n\n /* Semantic colors */\n --color-success: #22c55e;\n --color-error: #ef4444;\n\n /* Overlay / Modal */\n --color-overlay: rgb(0 0 0 / 0.7);\n\n /* Ring (focus indicator) */\n --color-ring: var(--aurum-primary-color);\n --ring-offset: 0.125rem;\n\n /* Shadows */\n --shadow: 0 20px 25px -5px rgb(0 0 0 / 0.5), 0 8px 10px -6px rgb(0 0 0 / 0.5);\n}\n",".aurum-badge-recent {\n padding: 0.25rem 0.5rem;\n border-radius: var(--aurum-border-radius-xs);\n\n font-size: 0.65rem;\n line-height: 1;\n letter-spacing: 0.07em;\n text-transform: uppercase;\n\n color: var(--color-foreground-muted);\n}\n",".aurum-button {\n display: flex;\n align-items: center;\n justify-content: center;\n border: none;\n font-weight: var(--font-semibold);\n cursor: pointer;\n transition:\n background-color var(--duration-normal) var(--ease-default),\n color var(--duration-normal) var(--ease-default),\n transform var(--duration-fast) var(--ease-default),\n box-shadow var(--duration-normal) var(--ease-default);\n text-decoration: none;\n box-sizing: border-box;\n position: relative;\n outline: none;\n font-family: inherit;\n}\n\n.aurum-button:focus-visible {\n outline: 2px solid var(--color-ring);\n outline-offset: var(--ring-offset);\n}\n\n.aurum-button--xs {\n padding: 0.25rem 0.5rem;\n font-size: 0.75rem;\n gap: 0.25rem;\n border-radius: var(--aurum-border-radius-xs);\n}\n\n.aurum-button--sm {\n padding: 0.5rem 0.75rem;\n font-size: 0.875rem;\n gap: 0.25rem;\n border-radius: calc(var(--aurum-border-radius-sm) - 2px);\n}\n\n.aurum-button--md {\n padding: 0.75rem 1rem;\n font-size: 0.9rem;\n gap: 0.5rem;\n border-radius: calc(var(--aurum-border-radius-md) - 2px);\n}\n\n.aurum-button--lg {\n padding: 1rem 1.5rem;\n font-size: 1rem;\n gap: 0.75rem;\n border-radius: var(--aurum-border-radius-md);\n}\n\n.aurum-button--full-width {\n width: 100%;\n}\n\n.aurum-button--primary {\n background-color: var(--color-primary);\n color: var(--color-primary-foreground);\n}\n\n.aurum-button--primary:active:not(:disabled) {\n transform: scale(0.98);\n}\n\n.aurum-button--secondary {\n background-color: var(--color-accent);\n color: var(--color-accent-foreground);\n}\n\n.aurum-button--secondary:active:not(:disabled) {\n transform: scale(0.98);\n}\n\n.aurum-button--tertiary {\n background: transparent;\n color: var(--color-foreground);\n border: 1px solid var(--color-border);\n}\n\n.aurum-button--tertiary:active:not(:disabled) {\n transform: scale(0.98);\n}\n\n.aurum-button--text {\n background: transparent;\n color: var(--color-primary);\n padding: 0.25rem;\n}\n\n.aurum-button--text:not(.aurum-button--full-width) {\n width: fit-content;\n}\n\n.aurum-button--text:active:not(:disabled) {\n transform: scale(0.98);\n}\n\n.aurum-button--close {\n background: transparent;\n color: var(--color-foreground-muted);\n border: none;\n padding: 0.5rem;\n border-radius: var(--aurum-border-radius-md);\n font-size: 1.25rem;\n line-height: 1;\n}\n\n.aurum-button--close:active:not(:disabled) {\n transform: scale(0.95);\n}\n\n/* Hover styles only for devices with hover capability (not touch) */\n@media (hover: hover) {\n .aurum-button--primary:hover:not(:disabled) {\n background-color: var(--color-primary-hover);\n }\n\n .aurum-button--secondary:hover:not(:disabled) {\n background-color: var(--color-accent-hover);\n }\n\n .aurum-button--tertiary:hover:not(:disabled) {\n background-color: var(--color-accent);\n border-color: var(--color-border-muted);\n }\n\n .aurum-button--text:hover:not(:disabled) {\n opacity: 0.7;\n }\n\n .aurum-button--close:hover:not(:disabled) {\n background-color: var(--color-accent);\n color: var(--color-foreground);\n }\n}\n\n.aurum-button--disabled,\n.aurum-button:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n pointer-events: none;\n}\n\n.aurum-button--loading {\n pointer-events: none;\n}\n",".divider {\n display: flex;\n align-items: center;\n width: 100%;\n}\n\n.divider-line {\n flex: 1;\n height: 1px;\n background-color: var(--color-border);\n}\n\n.divider-text {\n padding: 0 1rem;\n color: var(--color-foreground-subtle);\n font-size: 0.875rem;\n font-weight: var(--font-medium);\n}\n",".powered-by-container {\n position: absolute;\n bottom: 1rem;\n left: 0;\n right: 0;\n width: 100%;\n}\n",".modal-overlay {\n position: fixed;\n inset: 0;\n display: flex;\n justify-content: center;\n align-items: center;\n z-index: var(--aurum-modal-z-index);\n background-color: var(--color-overlay);\n opacity: 0;\n}\n\n.modal-overlay.modal-open {\n opacity: 1;\n transition: opacity 150ms ease-out;\n}\n\n.modal-overlay.modal-exiting {\n opacity: 0;\n transition: opacity 150ms ease-in;\n}\n\n.modal-content {\n position: relative;\n width: 23.75rem;\n min-width: 17rem;\n padding: 1.25rem 1.5rem;\n color: var(--color-card-foreground);\n background-color: var(--color-card);\n border-radius: var(--aurum-border-radius-lg);\n box-shadow: var(--shadow);\n border: 1px solid var(--color-border-muted);\n outline: none;\n opacity: 0;\n transform: scale(0.95);\n}\n\n.modal-overlay.modal-open .modal-content {\n opacity: 1;\n transform: scale(1);\n transition:\n opacity 150ms ease-out,\n transform 150ms ease-out;\n}\n\n.modal-overlay.modal-exiting .modal-content {\n opacity: 0;\n transform: scale(0.95);\n transition:\n opacity 150ms ease-in,\n transform 150ms ease-in;\n}\n\n.modal-page-container {\n position: relative;\n width: 100%;\n overflow-x: visible;\n overflow-y: auto;\n scrollbar-width: none;\n -ms-overflow-style: none;\n}\n\n.modal-page-container::-webkit-scrollbar {\n display: none;\n}\n\n.modal-page {\n position: relative;\n width: 100%;\n box-sizing: border-box;\n opacity: 0;\n transition: opacity 0s;\n}\n\n.modal-page.active {\n opacity: 1;\n transition: opacity var(--duration-slow) var(--ease-out);\n}\n\n/* Mobile drawer layout */\n@media (max-width: 30.25rem) {\n .modal-overlay {\n align-items: flex-end;\n justify-content: center;\n opacity: 1;\n transition: none;\n }\n\n .modal-overlay.modal-open {\n transition: none;\n }\n\n .modal-overlay.modal-exiting {\n opacity: 1;\n background-color: transparent;\n transition: none;\n }\n\n .modal-content {\n width: 100%;\n max-height: 82vh;\n max-height: 82dvh;\n min-height: 35vh;\n min-height: 35dvh;\n padding: 1rem;\n border-radius: var(--aurum-border-radius-lg) var(--aurum-border-radius-lg) 0 0;\n border-bottom: none;\n display: flex;\n flex-direction: column;\n height: auto;\n opacity: 1;\n transform: translateY(100%);\n }\n\n .modal-overlay.modal-open .modal-content {\n opacity: 1;\n transform: translateY(0);\n transition: transform 300ms cubic-bezier(0.4, 0, 0.2, 1);\n }\n\n .modal-overlay.modal-exiting .modal-content {\n opacity: 1;\n transform: translateY(100%);\n transition: transform 300ms cubic-bezier(0.4, 0, 0.2, 1);\n }\n\n .modal-page-container {\n flex: 0 1 auto;\n display: flex;\n flex-direction: column;\n overflow-y: auto;\n }\n\n .modal-page {\n flex: 0 1 auto;\n display: flex;\n flex-direction: column;\n }\n}\n",".spinner {\n flex-shrink: 0;\n animation: spinner-rotate 1s linear infinite;\n}\n\n@keyframes spinner-rotate {\n from {\n transform: rotate(0deg);\n }\n to {\n transform: rotate(360deg);\n }\n}\n",".aurum-text {\n margin: 0;\n padding: 0;\n font-family: inherit;\n line-height: 1.5;\n}\n\n.aurum-text--primary {\n color: var(--color-foreground);\n}\n\n.aurum-text--secondary {\n color: var(--color-foreground-muted);\n}\n\n.aurum-text--tertiary {\n color: var(--color-foreground-subtle);\n}\n\n.aurum-text--error {\n color: var(--color-error);\n}\n\n.aurum-text--brand {\n color: var(--color-primary);\n}\n\n.aurum-text--success {\n color: var(--color-success);\n}\n\n.aurum-text--xs {\n font-size: 0.75rem;\n line-height: 1.4;\n}\n\n.aurum-text--sm {\n font-size: 0.875rem;\n line-height: 1.45;\n}\n\n.aurum-text--md {\n font-size: 1rem;\n line-height: 1.5;\n}\n\n.aurum-text--lg {\n font-size: 1.125rem;\n line-height: 1.5;\n}\n\n.aurum-text--normal {\n font-weight: var(--font-normal);\n}\n\n.aurum-text--semibold {\n font-weight: var(--font-semibold);\n}\n\n.aurum-text--bold {\n font-weight: var(--font-bold);\n}\n\n.aurum-text--align-left {\n text-align: left;\n}\n\n.aurum-text--align-center {\n text-align: center;\n}\n\n.aurum-text--align-right {\n text-align: right;\n}\n",".modal-header {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n padding: 1rem;\n background-color: var(--color-card);\n border-radius: var(--aurum-border-radius-lg) var(--aurum-border-radius-lg) 0 0;\n z-index: 1;\n display: grid;\n grid-template-columns: 1fr auto 1fr;\n align-items: center;\n}\n\n.modal-header > div {\n display: flex;\n align-items: center;\n width: 100%;\n}\n\n.modal-header-left {\n justify-content: flex-start;\n min-width: 2.25rem;\n height: 2.25rem;\n}\n\n.modal-header-center {\n justify-content: center;\n max-width: 12.5rem;\n text-align: center;\n line-height: 1.2;\n overflow-wrap: break-word;\n}\n\n.modal-header-right {\n justify-content: flex-end;\n min-width: 2.25rem;\n height: 2.25rem;\n}\n",".email-auth-input {\n width: 100%;\n outline: none;\n font-family: inherit;\n font-size: 1rem;\n line-height: 1.75rem;\n box-sizing: border-box;\n padding: 0.75rem 3rem 0.75rem 3rem;\n color: var(--color-foreground);\n transition:\n outline 0.2s ease,\n border-color 0.2s ease;\n background-color: var(--color-card);\n border-width: 1px;\n border-style: solid;\n border-color: var(--color-border);\n border-radius: var(--aurum-border-radius-md);\n}\n\n.email-auth-input:hover:not(:focus):not(.email-auth-input--error) {\n border-color: var(--color-border-muted);\n}\n\n.email-auth-input:focus {\n outline: 2px solid var(--color-ring);\n outline-offset: var(--ring-offset);\n}\n\n.email-auth-input--error {\n outline: 2px solid var(--color-error);\n outline-offset: var(--ring-offset);\n}\n\n.email-auth-submit-button.aurum-button {\n top: 50%;\n right: 0.75rem;\n height: auto;\n padding: 0.5rem;\n min-width: auto;\n position: absolute;\n transform: translateY(-50%);\n border-radius: var(--aurum-border-radius-sm);\n}\n\n.email-auth-icon {\n top: 50%;\n left: 1rem;\n position: absolute;\n transform: translateY(-50%);\n display: flex;\n align-items: center;\n pointer-events: none;\n}\n",".aurum-wallet-grid {\n display: grid;\n grid-template-columns: repeat(var(--grid-columns, 3), 1fr);\n gap: 10px;\n width: 100%;\n}\n",".additional-wallets-container {\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n.additional-wallets-grid {\n display: grid;\n grid-template-columns: 1fr 1fr;\n grid-template-rows: 1fr 1fr;\n gap: 0.125rem;\n align-items: center;\n justify-items: center;\n}\n\n.additional-wallets-grid-item {\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n.additional-wallets-placeholder {\n background-color: var(--aurum-color-bg-tertiary);\n border-radius: var(--aurum-border-radius-xs);\n opacity: 0.4;\n}\n\n.circular-icon-wrapper {\n border-radius: 50%;\n overflow: hidden;\n border: 2px solid var(--aurum-color-bg-secondary);\n}\n\n.circular-icon-wrapper--front {\n z-index: 2;\n}\n\n.circular-icon-wrapper--back {\n margin-left: -0.5rem;\n z-index: 1;\n}\n","@keyframes shake {\n 0%,\n 100% {\n transform: translateX(0);\n }\n 20%,\n 60% {\n transform: translateX(-0.125rem);\n }\n 40%,\n 80% {\n transform: translateX(0.125rem);\n }\n}\n\n@keyframes opacity-pulse {\n 0%,\n 100% {\n opacity: 0.4;\n }\n 50% {\n opacity: 1;\n }\n}\n\n@keyframes scale-in {\n from {\n transform: scale(0.75);\n }\n to {\n transform: scale(1);\n }\n}\n\n.wallet-icon-shake {\n /* Duration synced with ANIMATION_DURATION.SHAKE in constants/theme.ts */\n animation: shake var(--duration-slow) var(--ease-default);\n}\n\n.ellipses-loading,\n.ellipses-success,\n.status-icon-with-dots {\n display: flex;\n gap: 0.25rem;\n align-items: center;\n justify-content: center;\n width: 100%;\n}\n\n.ellipses-loading span,\n.ellipses-success span,\n.status-icon-with-dots .dot,\n.status-icon-with-dots .icon-center {\n font-size: 3rem;\n line-height: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 0.9375rem;\n height: 3rem;\n margin: 0;\n padding: 0;\n flex-shrink: 0;\n}\n\n.ellipses-loading span,\n.ellipses-success span,\n.status-icon-with-dots .dot {\n transform: translateY(-0.28125rem);\n}\n\n.status-icon-with-dots .icon-center {\n transform: translateY(-0.2rem);\n}\n\n.ellipses-loading span {\n color: var(--color-foreground-subtle);\n opacity: 0.4;\n animation: opacity-pulse 1.5s var(--ease-default) infinite;\n will-change: opacity;\n}\n\n.ellipses-loading span:nth-child(2) {\n animation-delay: 0.2s;\n}\n.ellipses-loading span:nth-child(3) {\n animation-delay: 0.4s;\n}\n.ellipses-loading span:nth-child(4) {\n animation-delay: 0.6s;\n}\n.ellipses-loading span:nth-child(5) {\n animation-delay: 0.8s;\n}\n\n.ellipses-success span,\n.status-icon-with-dots.success .dot {\n color: var(--aurum-primary-color);\n}\n\n.status-icon-with-dots.error .dot {\n color: var(--color-error);\n}\n\n.status-button {\n display: flex;\n align-items: flex-start;\n justify-content: center;\n width: 100%;\n}\n\n.success-icon-large {\n animation: scale-in var(--duration-fast) var(--ease-out);\n}\n\n/* Logo containers for visual balance */\n.brand-logo-container,\n.wallet-logo-with-retry {\n position: relative;\n display: inline-block;\n}\n\n/* Always reserve space on both sides to prevent layout shift when retry button appears/disappears */\n.brand-logo-container {\n margin-left: 0.375rem; /* Matches retry button's right: -0.375rem */\n}\n\n.wallet-logo-with-retry {\n margin-right: 0.375rem; /* Reserve space for retry button */\n}\n\n.retry-icon-overlay.retry-icon-overlay {\n position: absolute;\n bottom: -0.125rem;\n right: -0.375rem;\n width: 1.625rem;\n height: 1.625rem;\n min-width: 1.625rem;\n min-height: 1.625rem;\n border-radius: 50%;\n padding: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n",".qr-skeleton-container {\n width: 100%;\n position: relative;\n}\n\n.qr-skeleton-svg {\n display: block;\n position: relative;\n z-index: 2;\n border-radius: var(--aurum-border-radius-sm);\n}\n\n.qr-skeleton-dot {\n opacity: 0.7;\n}\n\n.qr-skeleton-eye {\n opacity: 0.7;\n}\n","@keyframes qr-shimmer {\n 0% {\n transform: translateX(-100%);\n }\n 100% {\n transform: translateX(100%);\n }\n}\n\n.qr-container-shimmer {\n position: relative;\n overflow: hidden; /* Keep for shimmer animation */\n}\n\n.qr-container-shimmer::before {\n content: '';\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background: linear-gradient(\n 90deg,\n transparent 0%,\n color-mix(in srgb, var(--color-foreground) 10%, transparent) 50%,\n transparent 100%\n );\n animation: qr-shimmer 2s infinite;\n pointer-events: none;\n z-index: 1;\n}\n\n.qr-container {\n border-radius: var(--aurum-border-radius-md);\n border: 1px solid var(--color-border);\n padding: 0.5rem;\n box-sizing: content-box;\n transition: border-color var(--duration-slow) var(--ease-default);\n}\n\n.qr-subtitle {\n max-width: 15rem;\n}\n"],"mappings":"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","names":[]}
@@ -0,0 +1,88 @@
1
+ import React, { RefObject } from 'react';
2
+ import { Aurum } from './index.mjs';
3
+ import { NonNullableBrandConfig } from '@aurum-sdk/types';
4
+ import 'viem';
5
+ import '@coinbase/cdp-core';
6
+
7
+ interface ConnectWidgetProps {
8
+ aurum: Aurum;
9
+ onConnect: (result: {
10
+ address: string;
11
+ walletId: string;
12
+ email?: string;
13
+ }) => void;
14
+ }
15
+ /**
16
+ * Embedded connect widget for embedded wallet connection.
17
+ *
18
+ * ## Hierarchy (mirrors renderConnectModal)
19
+ * ```
20
+ * ConnectWidget ← you are here
21
+ * └── WidgetStyleContainer (style injection + ThemeContainer)
22
+ * └── ConnectUIProviders (NavigationProvider + ConnectModalProvider)
23
+ * └── WidgetShell
24
+ * └── WidgetProvider (mode='widget')
25
+ * └── PageTransitionContainer
26
+ * └── ConnectPages (shared with modal)
27
+ * ```
28
+ *
29
+ * @see renderConnectModal - Modal equivalent entry point
30
+ * @see WidgetShell - Shell component (parallel to ModalShell)
31
+ *
32
+ * @example
33
+ * ```tsx
34
+ * <ConnectWidget
35
+ * aurum={aurum}
36
+ * onConnect={({ address, walletId }) => {
37
+ * console.log('Connected:', address, walletId);
38
+ * }}
39
+ * />
40
+ * ```
41
+ */
42
+ declare const ConnectWidget: React.FC<ConnectWidgetProps>;
43
+
44
+ /**
45
+ * Rendering mode for SDK UI components.
46
+ *
47
+ * - `'modal'`: Rendered inside Modal overlay (has close button, can be dismissed)
48
+ * - `'widget'`: Rendered embedded on page (no close button)
49
+ */
50
+ type WidgetMode = 'modal' | 'widget';
51
+ interface WidgetContextType {
52
+ mode: WidgetMode;
53
+ brandConfig: NonNullableBrandConfig;
54
+ onDismiss: () => void;
55
+ headerPortalRef: RefObject<HTMLDivElement | null> | null;
56
+ }
57
+ declare const useWidgetContext: () => WidgetContextType;
58
+ interface WidgetProviderProps {
59
+ children: React.ReactNode;
60
+ mode: WidgetMode;
61
+ brandConfig: NonNullableBrandConfig;
62
+ onDismiss: () => void;
63
+ headerPortalRef?: RefObject<HTMLDivElement | null> | null;
64
+ }
65
+ /**
66
+ * Unified provider for both modal and widget contexts.
67
+ *
68
+ * ## Provider Hierarchy
69
+ *
70
+ * For Modals:
71
+ * ```
72
+ * ModalShell
73
+ * └── Modal
74
+ * └── WidgetProvider (mode='modal', onDismiss=closeModal)
75
+ * └── ConnectPages
76
+ * ```
77
+ *
78
+ * For Widgets:
79
+ * ```
80
+ * ConnectWidget
81
+ * └── WidgetShell
82
+ * └── WidgetProvider (mode='widget', onDismiss=noop)
83
+ * └── ConnectPages
84
+ * ```
85
+ */
86
+ declare const WidgetProvider: React.FC<WidgetProviderProps>;
87
+
88
+ export { ConnectWidget, type ConnectWidgetProps, type WidgetMode, WidgetProvider, useWidgetContext };
@@ -0,0 +1,88 @@
1
+ import React, { RefObject } from 'react';
2
+ import { Aurum } from './index.js';
3
+ import { NonNullableBrandConfig } from '@aurum-sdk/types';
4
+ import 'viem';
5
+ import '@coinbase/cdp-core';
6
+
7
+ interface ConnectWidgetProps {
8
+ aurum: Aurum;
9
+ onConnect: (result: {
10
+ address: string;
11
+ walletId: string;
12
+ email?: string;
13
+ }) => void;
14
+ }
15
+ /**
16
+ * Embedded connect widget for embedded wallet connection.
17
+ *
18
+ * ## Hierarchy (mirrors renderConnectModal)
19
+ * ```
20
+ * ConnectWidget ← you are here
21
+ * └── WidgetStyleContainer (style injection + ThemeContainer)
22
+ * └── ConnectUIProviders (NavigationProvider + ConnectModalProvider)
23
+ * └── WidgetShell
24
+ * └── WidgetProvider (mode='widget')
25
+ * └── PageTransitionContainer
26
+ * └── ConnectPages (shared with modal)
27
+ * ```
28
+ *
29
+ * @see renderConnectModal - Modal equivalent entry point
30
+ * @see WidgetShell - Shell component (parallel to ModalShell)
31
+ *
32
+ * @example
33
+ * ```tsx
34
+ * <ConnectWidget
35
+ * aurum={aurum}
36
+ * onConnect={({ address, walletId }) => {
37
+ * console.log('Connected:', address, walletId);
38
+ * }}
39
+ * />
40
+ * ```
41
+ */
42
+ declare const ConnectWidget: React.FC<ConnectWidgetProps>;
43
+
44
+ /**
45
+ * Rendering mode for SDK UI components.
46
+ *
47
+ * - `'modal'`: Rendered inside Modal overlay (has close button, can be dismissed)
48
+ * - `'widget'`: Rendered embedded on page (no close button)
49
+ */
50
+ type WidgetMode = 'modal' | 'widget';
51
+ interface WidgetContextType {
52
+ mode: WidgetMode;
53
+ brandConfig: NonNullableBrandConfig;
54
+ onDismiss: () => void;
55
+ headerPortalRef: RefObject<HTMLDivElement | null> | null;
56
+ }
57
+ declare const useWidgetContext: () => WidgetContextType;
58
+ interface WidgetProviderProps {
59
+ children: React.ReactNode;
60
+ mode: WidgetMode;
61
+ brandConfig: NonNullableBrandConfig;
62
+ onDismiss: () => void;
63
+ headerPortalRef?: RefObject<HTMLDivElement | null> | null;
64
+ }
65
+ /**
66
+ * Unified provider for both modal and widget contexts.
67
+ *
68
+ * ## Provider Hierarchy
69
+ *
70
+ * For Modals:
71
+ * ```
72
+ * ModalShell
73
+ * └── Modal
74
+ * └── WidgetProvider (mode='modal', onDismiss=closeModal)
75
+ * └── ConnectPages
76
+ * ```
77
+ *
78
+ * For Widgets:
79
+ * ```
80
+ * ConnectWidget
81
+ * └── WidgetShell
82
+ * └── WidgetProvider (mode='widget', onDismiss=noop)
83
+ * └── ConnectPages
84
+ * ```
85
+ */
86
+ declare const WidgetProvider: React.FC<WidgetProviderProps>;
87
+
88
+ export { ConnectWidget, type ConnectWidgetProps, type WidgetMode, WidgetProvider, useWidgetContext };
@@ -0,0 +1,78 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
+
3
+
4
+
5
+
6
+
7
+
8
+
9
+
10
+
11
+
12
+
13
+
14
+
15
+ var _chunkDHEVW7CRjs = require('./chunk-DHEVW7CR.js');
16
+
17
+ // src/components/widgets/ConnectWidget.tsx
18
+ var _react = require('react');
19
+
20
+ // src/components/widgets/WidgetShell.tsx
21
+
22
+ var _jsxruntime = require('react/jsx-runtime');
23
+ var noop = () => {
24
+ };
25
+ var WidgetShell = ({ brandConfig, children }) => {
26
+ const headerPortalRef = _react.useRef.call(void 0, null);
27
+ const { currentPage } = _chunkDHEVW7CRjs.useNavigation.call(void 0, );
28
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDHEVW7CRjs.WidgetProvider, { mode: "widget", brandConfig, onDismiss: noop, headerPortalRef, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "widget-provider", children: [
29
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { ref: headerPortalRef }),
30
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDHEVW7CRjs.PageTransitionContainer, { transitionKey: currentPage, children }),
31
+ !brandConfig.hideFooter ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
32
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDHEVW7CRjs.Spacer, { size: `${_chunkDHEVW7CRjs.POWERED_BY_SPACER_REM}rem` }),
33
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDHEVW7CRjs.PoweredBy, {})
34
+ ] }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDHEVW7CRjs.Spacer, { size: "0.3125rem" })
35
+ ] }) });
36
+ };
37
+ var WidgetStyleContainer = ({ children, brandConfig }) => {
38
+ return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "aurum-widget", style: { width: "100%" }, children: [
39
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "style", { children: _chunkDHEVW7CRjs.generateCompleteStyles.call(void 0, brandConfig) }),
40
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDHEVW7CRjs.ThemeContainer, { theme: brandConfig.theme, children })
41
+ ] });
42
+ };
43
+
44
+ // src/components/widgets/ConnectWidget.tsx
45
+ var _types = require('@aurum-sdk/types');
46
+
47
+ var ConnectWidget = ({ aurum, onConnect }) => {
48
+ const brandConfig = aurum.brandConfig;
49
+ const walletAdapters = aurum.walletAdapters;
50
+ const excludedWalletIds = aurum.excludedWalletIds;
51
+ const displayedWallets = _react.useMemo.call(void 0, () => {
52
+ let filtered = walletAdapters.filter((w) => !excludedWalletIds.has(w.id));
53
+ filtered = _chunkDHEVW7CRjs.sortWallets.call(void 0, filtered, { filterHidden: false });
54
+ const hasAppKit = filtered.some((w) => w.id === _types.WalletId.AppKit);
55
+ if (_chunkDHEVW7CRjs.isMobile.call(void 0, ) && !hasAppKit) {
56
+ filtered = filtered.filter((w) => w.id !== _types.WalletId.WalletConnect);
57
+ }
58
+ return filtered;
59
+ }, [walletAdapters, excludedWalletIds]);
60
+ const handleConnect = _react.useCallback.call(void 0,
61
+ async (result) => {
62
+ await aurum.handleWidgetConnection(result);
63
+ onConnect({
64
+ address: result.address,
65
+ walletId: result.walletId,
66
+ email: result.email
67
+ });
68
+ },
69
+ [aurum, onConnect]
70
+ );
71
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, WidgetStyleContainer, { brandConfig, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDHEVW7CRjs.ConnectUIProviders, { onConnect: handleConnect, displayedWallets, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, WidgetShell, { brandConfig, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDHEVW7CRjs.ConnectPages, {}) }) }) });
72
+ };
73
+
74
+
75
+
76
+
77
+ exports.ConnectWidget = ConnectWidget; exports.WidgetProvider = _chunkDHEVW7CRjs.WidgetProvider; exports.useWidgetContext = _chunkDHEVW7CRjs.useWidgetContext;
78
+ //# sourceMappingURL=widgets.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["/Users/huntercote/Desktop/code/2025/station-6/monorepo/packages/sdk/dist/widgets.js","../src/components/widgets/ConnectWidget.tsx","../src/components/widgets/WidgetShell.tsx"],"names":[],"mappings":"AAAA;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF,sDAA4B;AAC5B;AACA;AChBA,8BAA4C;ADkB5C;AACA;AEnBA;AA+CQ,+CAAA;AA9BR,IAAM,KAAA,EAAO,CAAA,EAAA,GAAM;AAAC,CAAA;AAuBb,IAAM,YAAA,EAA0C,CAAC,EAAE,WAAA,EAAa,SAAS,CAAA,EAAA,GAAM;AACpF,EAAA,MAAM,gBAAA,EAAkB,2BAAA,IAA2B,CAAA;AACnD,EAAA,MAAM,EAAE,YAAY,EAAA,EAAI,4CAAA,CAAc;AAEtC,EAAA,uBACE,6BAAA,+BAAC,EAAA,EAAe,IAAA,EAAK,QAAA,EAAS,WAAA,EAA0B,SAAA,EAAW,IAAA,EAAM,eAAA,EACvE,QAAA,kBAAA,8BAAA,KAAC,EAAA,EAAI,SAAA,EAAU,iBAAA,EACb,QAAA,EAAA;AAAA,oBAAA,6BAAA,KAAC,EAAA,EAAI,GAAA,EAAK,gBAAA,CAAiB,CAAA;AAAA,oBAC3B,6BAAA,wCAAC,EAAA,EAAwB,aAAA,EAAe,WAAA,EAAc,SAAA,CAAS,CAAA;AAAA,IAC9D,CAAC,WAAA,CAAY,WAAA,kBACZ,8BAAA,oBAAA,EAAA,EACE,QAAA,EAAA;AAAA,sBAAA,6BAAA,uBAAC,EAAA,EAAO,IAAA,EAAM,CAAA,EAAA;AACH,sBAAA;AAGL,IAAA;AAGd,EAAA;AAEJ;AAasF;AAE7E,EAAA;AACK,oBAAA;AACQ,oBAAA;AAClB,EAAA;AAEJ;AFtC2C;AACA;ACnClB;AAuEf;AArCqE;AACnD,EAAA;AACG,EAAA;AACG,EAAA;AAEO,EAAA;AACC,IAAA;AACH,IAAA;AAGI,IAAA;AACT,IAAA;AACQ,MAAA;AACtC,IAAA;AAEO,IAAA;AAC6B,EAAA;AAEhB,EAAA;AACsB,IAAA;AAEL,MAAA;AAGzB,MAAA;AACQ,QAAA;AACC,QAAA;AACH,QAAA;AACf,MAAA;AACH,IAAA;AACiB,IAAA;AACnB,EAAA;AAGG,EAAA;AAQL;ADZ2C;AACA;AACA;AACA;AACA","file":"/Users/huntercote/Desktop/code/2025/station-6/monorepo/packages/sdk/dist/widgets.js","sourcesContent":[null,"import React, { useMemo, useCallback } from 'react';\nimport { ConnectUIProviders } from '@src/components/ConnectUIProviders';\nimport { WidgetShell, WidgetStyleContainer } from '@src/components/widgets/WidgetShell';\nimport { ConnectPages } from '@src/components/ConnectModal/ConnectPages';\nimport { WalletConnectionResult } from '@src/types/internal';\nimport { sortWallets } from '@src/utils/sortWallets';\nimport { isMobile } from '@src/utils/platform/isMobile';\nimport { Aurum } from '@src/Aurum';\nimport { WalletId } from '@aurum-sdk/types';\n\nexport interface ConnectWidgetProps {\n aurum: Aurum;\n onConnect: (result: { address: string; walletId: string; email?: string }) => void;\n}\n\n/**\n * Embedded connect widget for embedded wallet connection.\n *\n * ## Hierarchy (mirrors renderConnectModal)\n * ```\n * ConnectWidget ← you are here\n * └── WidgetStyleContainer (style injection + ThemeContainer)\n * └── ConnectUIProviders (NavigationProvider + ConnectModalProvider)\n * └── WidgetShell\n * └── WidgetProvider (mode='widget')\n * └── PageTransitionContainer\n * └── ConnectPages (shared with modal)\n * ```\n *\n * @see renderConnectModal - Modal equivalent entry point\n * @see WidgetShell - Shell component (parallel to ModalShell)\n *\n * @example\n * ```tsx\n * <ConnectWidget\n * aurum={aurum}\n * onConnect={({ address, walletId }) => {\n * console.log('Connected:', address, walletId);\n * }}\n * />\n * ```\n */\nexport const ConnectWidget: React.FC<ConnectWidgetProps> = ({ aurum, onConnect }) => {\n const brandConfig = aurum.brandConfig;\n const walletAdapters = aurum.walletAdapters;\n const excludedWalletIds = aurum.excludedWalletIds;\n\n const displayedWallets = useMemo(() => {\n let filtered = walletAdapters.filter((w) => !excludedWalletIds.has(w.id));\n filtered = sortWallets(filtered, { filterHidden: false });\n\n // On mobile, WalletConnect requires AppKit\n const hasAppKit = filtered.some((w) => w.id === WalletId.AppKit);\n if (isMobile() && !hasAppKit) {\n filtered = filtered.filter((w) => w.id !== WalletId.WalletConnect);\n }\n\n return filtered;\n }, [walletAdapters, excludedWalletIds]);\n\n const handleConnect = useCallback(\n async (result: WalletConnectionResult) => {\n // Sync connection state with AurumCore (updates userInfo, provider, store, etc.)\n await aurum.handleWidgetConnection(result);\n\n // Fire user callback\n onConnect({\n address: result.address,\n walletId: result.walletId,\n email: result.email,\n });\n },\n [aurum, onConnect],\n );\n\n return (\n <WidgetStyleContainer brandConfig={brandConfig}>\n <ConnectUIProviders onConnect={handleConnect} displayedWallets={displayedWallets}>\n <WidgetShell brandConfig={brandConfig}>\n <ConnectPages />\n </WidgetShell>\n </ConnectUIProviders>\n </WidgetStyleContainer>\n );\n};\n","import React, { ReactNode, useRef } from 'react';\nimport { WidgetProvider } from '@src/contexts/WidgetContext';\nimport { useNavigation } from '@src/contexts/NavigationContext';\nimport { ThemeContainer } from '@src/ui';\nimport { PoweredBy } from '@src/components/PoweredBy/PoweredBy';\nimport { Spacer } from '@src/ui';\nimport { PageTransitionContainer } from '@src/components/PageTransitionContainer';\nimport { generateCompleteStyles } from '@src/utils/generateBrandStyles';\nimport { POWERED_BY_SPACER_REM } from '@src/constants/layout';\nimport { NonNullableBrandConfig } from '@aurum-sdk/types';\n\nexport interface WidgetShellProps {\n brandConfig: NonNullableBrandConfig;\n children: ReactNode;\n}\n\n// Noop for widget mode - close buttons are hidden via ModalHeader\nconst noop = () => {};\n\n/**\n * Shell component for embedded widgets.\n *\n * Mirrors the Modal component structure but without overlay.\n * Provider hierarchy is handled by ConnectWidget.\n *\n * ## Hierarchy\n * ```\n * ConnectWidget\n * └── StyleContainer (inline styles)\n * └── ThemeContainer\n * └── NavigationProvider\n * └── ConnectModalProvider\n * └── WidgetShell ← you are here\n * └── WidgetProvider (mode='widget')\n * └── PageTransitionContainer\n * └── ConnectPages\n * ```\n *\n * @see ModalShell - Modal equivalent of this component\n */\nexport const WidgetShell: React.FC<WidgetShellProps> = ({ brandConfig, children }) => {\n const headerPortalRef = useRef<HTMLDivElement>(null);\n const { currentPage } = useNavigation();\n\n return (\n <WidgetProvider mode=\"widget\" brandConfig={brandConfig} onDismiss={noop} headerPortalRef={headerPortalRef}>\n <div className=\"widget-provider\">\n <div ref={headerPortalRef} />\n <PageTransitionContainer transitionKey={currentPage}>{children}</PageTransitionContainer>\n {!brandConfig.hideFooter ? (\n <>\n <Spacer size={`${POWERED_BY_SPACER_REM}rem`} />\n <PoweredBy />\n </>\n ) : (\n <Spacer size=\"0.3125rem\" />\n )}\n </div>\n </WidgetProvider>\n );\n};\n\ninterface WidgetStyleContainerProps {\n children: React.ReactNode;\n brandConfig: NonNullableBrandConfig;\n}\n\n/**\n * Style injection container for widgets.\n *\n * Equivalent to createShadowRoot for modals but uses inline styles\n * since widgets are embedded in the host page.\n */\nexport const WidgetStyleContainer: React.FC<WidgetStyleContainerProps> = ({ children, brandConfig }) => {\n return (\n <div className=\"aurum-widget\" style={{ width: '100%' }}>\n <style>{generateCompleteStyles(brandConfig)}</style>\n <ThemeContainer theme={brandConfig.theme}>{children}</ThemeContainer>\n </div>\n );\n};\n"]}
@@ -0,0 +1,78 @@
1
+ import {
2
+ ConnectPages,
3
+ ConnectUIProviders,
4
+ POWERED_BY_SPACER_REM,
5
+ PageTransitionContainer,
6
+ PoweredBy,
7
+ Spacer,
8
+ ThemeContainer,
9
+ WidgetProvider,
10
+ generateCompleteStyles,
11
+ isMobile,
12
+ sortWallets,
13
+ useNavigation,
14
+ useWidgetContext
15
+ } from "./chunk-U5BSED2R.mjs";
16
+
17
+ // src/components/widgets/ConnectWidget.tsx
18
+ import { useMemo, useCallback } from "react";
19
+
20
+ // src/components/widgets/WidgetShell.tsx
21
+ import { useRef } from "react";
22
+ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
23
+ var noop = () => {
24
+ };
25
+ var WidgetShell = ({ brandConfig, children }) => {
26
+ const headerPortalRef = useRef(null);
27
+ const { currentPage } = useNavigation();
28
+ return /* @__PURE__ */ jsx(WidgetProvider, { mode: "widget", brandConfig, onDismiss: noop, headerPortalRef, children: /* @__PURE__ */ jsxs("div", { className: "widget-provider", children: [
29
+ /* @__PURE__ */ jsx("div", { ref: headerPortalRef }),
30
+ /* @__PURE__ */ jsx(PageTransitionContainer, { transitionKey: currentPage, children }),
31
+ !brandConfig.hideFooter ? /* @__PURE__ */ jsxs(Fragment, { children: [
32
+ /* @__PURE__ */ jsx(Spacer, { size: `${POWERED_BY_SPACER_REM}rem` }),
33
+ /* @__PURE__ */ jsx(PoweredBy, {})
34
+ ] }) : /* @__PURE__ */ jsx(Spacer, { size: "0.3125rem" })
35
+ ] }) });
36
+ };
37
+ var WidgetStyleContainer = ({ children, brandConfig }) => {
38
+ return /* @__PURE__ */ jsxs("div", { className: "aurum-widget", style: { width: "100%" }, children: [
39
+ /* @__PURE__ */ jsx("style", { children: generateCompleteStyles(brandConfig) }),
40
+ /* @__PURE__ */ jsx(ThemeContainer, { theme: brandConfig.theme, children })
41
+ ] });
42
+ };
43
+
44
+ // src/components/widgets/ConnectWidget.tsx
45
+ import { WalletId } from "@aurum-sdk/types";
46
+ import { jsx as jsx2 } from "react/jsx-runtime";
47
+ var ConnectWidget = ({ aurum, onConnect }) => {
48
+ const brandConfig = aurum.brandConfig;
49
+ const walletAdapters = aurum.walletAdapters;
50
+ const excludedWalletIds = aurum.excludedWalletIds;
51
+ const displayedWallets = useMemo(() => {
52
+ let filtered = walletAdapters.filter((w) => !excludedWalletIds.has(w.id));
53
+ filtered = sortWallets(filtered, { filterHidden: false });
54
+ const hasAppKit = filtered.some((w) => w.id === WalletId.AppKit);
55
+ if (isMobile() && !hasAppKit) {
56
+ filtered = filtered.filter((w) => w.id !== WalletId.WalletConnect);
57
+ }
58
+ return filtered;
59
+ }, [walletAdapters, excludedWalletIds]);
60
+ const handleConnect = useCallback(
61
+ async (result) => {
62
+ await aurum.handleWidgetConnection(result);
63
+ onConnect({
64
+ address: result.address,
65
+ walletId: result.walletId,
66
+ email: result.email
67
+ });
68
+ },
69
+ [aurum, onConnect]
70
+ );
71
+ return /* @__PURE__ */ jsx2(WidgetStyleContainer, { brandConfig, children: /* @__PURE__ */ jsx2(ConnectUIProviders, { onConnect: handleConnect, displayedWallets, children: /* @__PURE__ */ jsx2(WidgetShell, { brandConfig, children: /* @__PURE__ */ jsx2(ConnectPages, {}) }) }) });
72
+ };
73
+ export {
74
+ ConnectWidget,
75
+ WidgetProvider,
76
+ useWidgetContext
77
+ };
78
+ //# sourceMappingURL=widgets.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/widgets/ConnectWidget.tsx","../src/components/widgets/WidgetShell.tsx"],"sourcesContent":["import React, { useMemo, useCallback } from 'react';\nimport { ConnectUIProviders } from '@src/components/ConnectUIProviders';\nimport { WidgetShell, WidgetStyleContainer } from '@src/components/widgets/WidgetShell';\nimport { ConnectPages } from '@src/components/ConnectModal/ConnectPages';\nimport { WalletConnectionResult } from '@src/types/internal';\nimport { sortWallets } from '@src/utils/sortWallets';\nimport { isMobile } from '@src/utils/platform/isMobile';\nimport { Aurum } from '@src/Aurum';\nimport { WalletId } from '@aurum-sdk/types';\n\nexport interface ConnectWidgetProps {\n aurum: Aurum;\n onConnect: (result: { address: string; walletId: string; email?: string }) => void;\n}\n\n/**\n * Embedded connect widget for embedded wallet connection.\n *\n * ## Hierarchy (mirrors renderConnectModal)\n * ```\n * ConnectWidget ← you are here\n * └── WidgetStyleContainer (style injection + ThemeContainer)\n * └── ConnectUIProviders (NavigationProvider + ConnectModalProvider)\n * └── WidgetShell\n * └── WidgetProvider (mode='widget')\n * └── PageTransitionContainer\n * └── ConnectPages (shared with modal)\n * ```\n *\n * @see renderConnectModal - Modal equivalent entry point\n * @see WidgetShell - Shell component (parallel to ModalShell)\n *\n * @example\n * ```tsx\n * <ConnectWidget\n * aurum={aurum}\n * onConnect={({ address, walletId }) => {\n * console.log('Connected:', address, walletId);\n * }}\n * />\n * ```\n */\nexport const ConnectWidget: React.FC<ConnectWidgetProps> = ({ aurum, onConnect }) => {\n const brandConfig = aurum.brandConfig;\n const walletAdapters = aurum.walletAdapters;\n const excludedWalletIds = aurum.excludedWalletIds;\n\n const displayedWallets = useMemo(() => {\n let filtered = walletAdapters.filter((w) => !excludedWalletIds.has(w.id));\n filtered = sortWallets(filtered, { filterHidden: false });\n\n // On mobile, WalletConnect requires AppKit\n const hasAppKit = filtered.some((w) => w.id === WalletId.AppKit);\n if (isMobile() && !hasAppKit) {\n filtered = filtered.filter((w) => w.id !== WalletId.WalletConnect);\n }\n\n return filtered;\n }, [walletAdapters, excludedWalletIds]);\n\n const handleConnect = useCallback(\n async (result: WalletConnectionResult) => {\n // Sync connection state with AurumCore (updates userInfo, provider, store, etc.)\n await aurum.handleWidgetConnection(result);\n\n // Fire user callback\n onConnect({\n address: result.address,\n walletId: result.walletId,\n email: result.email,\n });\n },\n [aurum, onConnect],\n );\n\n return (\n <WidgetStyleContainer brandConfig={brandConfig}>\n <ConnectUIProviders onConnect={handleConnect} displayedWallets={displayedWallets}>\n <WidgetShell brandConfig={brandConfig}>\n <ConnectPages />\n </WidgetShell>\n </ConnectUIProviders>\n </WidgetStyleContainer>\n );\n};\n","import React, { ReactNode, useRef } from 'react';\nimport { WidgetProvider } from '@src/contexts/WidgetContext';\nimport { useNavigation } from '@src/contexts/NavigationContext';\nimport { ThemeContainer } from '@src/ui';\nimport { PoweredBy } from '@src/components/PoweredBy/PoweredBy';\nimport { Spacer } from '@src/ui';\nimport { PageTransitionContainer } from '@src/components/PageTransitionContainer';\nimport { generateCompleteStyles } from '@src/utils/generateBrandStyles';\nimport { POWERED_BY_SPACER_REM } from '@src/constants/layout';\nimport { NonNullableBrandConfig } from '@aurum-sdk/types';\n\nexport interface WidgetShellProps {\n brandConfig: NonNullableBrandConfig;\n children: ReactNode;\n}\n\n// Noop for widget mode - close buttons are hidden via ModalHeader\nconst noop = () => {};\n\n/**\n * Shell component for embedded widgets.\n *\n * Mirrors the Modal component structure but without overlay.\n * Provider hierarchy is handled by ConnectWidget.\n *\n * ## Hierarchy\n * ```\n * ConnectWidget\n * └── StyleContainer (inline styles)\n * └── ThemeContainer\n * └── NavigationProvider\n * └── ConnectModalProvider\n * └── WidgetShell ← you are here\n * └── WidgetProvider (mode='widget')\n * └── PageTransitionContainer\n * └── ConnectPages\n * ```\n *\n * @see ModalShell - Modal equivalent of this component\n */\nexport const WidgetShell: React.FC<WidgetShellProps> = ({ brandConfig, children }) => {\n const headerPortalRef = useRef<HTMLDivElement>(null);\n const { currentPage } = useNavigation();\n\n return (\n <WidgetProvider mode=\"widget\" brandConfig={brandConfig} onDismiss={noop} headerPortalRef={headerPortalRef}>\n <div className=\"widget-provider\">\n <div ref={headerPortalRef} />\n <PageTransitionContainer transitionKey={currentPage}>{children}</PageTransitionContainer>\n {!brandConfig.hideFooter ? (\n <>\n <Spacer size={`${POWERED_BY_SPACER_REM}rem`} />\n <PoweredBy />\n </>\n ) : (\n <Spacer size=\"0.3125rem\" />\n )}\n </div>\n </WidgetProvider>\n );\n};\n\ninterface WidgetStyleContainerProps {\n children: React.ReactNode;\n brandConfig: NonNullableBrandConfig;\n}\n\n/**\n * Style injection container for widgets.\n *\n * Equivalent to createShadowRoot for modals but uses inline styles\n * since widgets are embedded in the host page.\n */\nexport const WidgetStyleContainer: React.FC<WidgetStyleContainerProps> = ({ children, brandConfig }) => {\n return (\n <div className=\"aurum-widget\" style={{ width: '100%' }}>\n <style>{generateCompleteStyles(brandConfig)}</style>\n <ThemeContainer theme={brandConfig.theme}>{children}</ThemeContainer>\n </div>\n );\n};\n"],"mappings":";;;;;;;;;;;;;;;;;AAAA,SAAgB,SAAS,mBAAmB;;;ACA5C,SAA2B,cAAc;AA+CjC,SAGE,UAHF,KAGE,YAHF;AA9BR,IAAM,OAAO,MAAM;AAAC;AAuBb,IAAM,cAA0C,CAAC,EAAE,aAAa,SAAS,MAAM;AACpF,QAAM,kBAAkB,OAAuB,IAAI;AACnD,QAAM,EAAE,YAAY,IAAI,cAAc;AAEtC,SACE,oBAAC,kBAAe,MAAK,UAAS,aAA0B,WAAW,MAAM,iBACvE,+BAAC,SAAI,WAAU,mBACb;AAAA,wBAAC,SAAI,KAAK,iBAAiB;AAAA,IAC3B,oBAAC,2BAAwB,eAAe,aAAc,UAAS;AAAA,IAC9D,CAAC,YAAY,aACZ,iCACE;AAAA,0BAAC,UAAO,MAAM,GAAG,qBAAqB,OAAO;AAAA,MAC7C,oBAAC,aAAU;AAAA,OACb,IAEA,oBAAC,UAAO,MAAK,aAAY;AAAA,KAE7B,GACF;AAEJ;AAaO,IAAM,uBAA4D,CAAC,EAAE,UAAU,YAAY,MAAM;AACtG,SACE,qBAAC,SAAI,WAAU,gBAAe,OAAO,EAAE,OAAO,OAAO,GACnD;AAAA,wBAAC,WAAO,iCAAuB,WAAW,GAAE;AAAA,IAC5C,oBAAC,kBAAe,OAAO,YAAY,OAAQ,UAAS;AAAA,KACtD;AAEJ;;;ADxEA,SAAS,gBAAgB;AAuEf,gBAAAA,YAAA;AArCH,IAAM,gBAA8C,CAAC,EAAE,OAAO,UAAU,MAAM;AACnF,QAAM,cAAc,MAAM;AAC1B,QAAM,iBAAiB,MAAM;AAC7B,QAAM,oBAAoB,MAAM;AAEhC,QAAM,mBAAmB,QAAQ,MAAM;AACrC,QAAI,WAAW,eAAe,OAAO,CAAC,MAAM,CAAC,kBAAkB,IAAI,EAAE,EAAE,CAAC;AACxE,eAAW,YAAY,UAAU,EAAE,cAAc,MAAM,CAAC;AAGxD,UAAM,YAAY,SAAS,KAAK,CAAC,MAAM,EAAE,OAAO,SAAS,MAAM;AAC/D,QAAI,SAAS,KAAK,CAAC,WAAW;AAC5B,iBAAW,SAAS,OAAO,CAAC,MAAM,EAAE,OAAO,SAAS,aAAa;AAAA,IACnE;AAEA,WAAO;AAAA,EACT,GAAG,CAAC,gBAAgB,iBAAiB,CAAC;AAEtC,QAAM,gBAAgB;AAAA,IACpB,OAAO,WAAmC;AAExC,YAAM,MAAM,uBAAuB,MAAM;AAGzC,gBAAU;AAAA,QACR,SAAS,OAAO;AAAA,QAChB,UAAU,OAAO;AAAA,QACjB,OAAO,OAAO;AAAA,MAChB,CAAC;AAAA,IACH;AAAA,IACA,CAAC,OAAO,SAAS;AAAA,EACnB;AAEA,SACE,gBAAAA,KAAC,wBAAqB,aACpB,0BAAAA,KAAC,sBAAmB,WAAW,eAAe,kBAC5C,0BAAAA,KAAC,eAAY,aACX,0BAAAA,KAAC,gBAAa,GAChB,GACF,GACF;AAEJ;","names":["jsx"]}
package/package.json ADDED
@@ -0,0 +1,113 @@
1
+ {
2
+ "name": "@aurum-sdk/core",
3
+ "version": "0.1.0",
4
+ "description": "Aurum wallet connection SDK",
5
+ "sideEffects": [
6
+ "*.css"
7
+ ],
8
+ "main": "./dist/index.js",
9
+ "module": "./dist/index.mjs",
10
+ "types": "./dist/index.d.ts",
11
+ "engines": {
12
+ "node": ">=18.0.0",
13
+ "pnpm": ">=8.0.0"
14
+ },
15
+ "packageManager": "pnpm@8.15.0",
16
+ "exports": {
17
+ ".": {
18
+ "types": "./dist/index.d.ts",
19
+ "import": "./dist/index.mjs",
20
+ "require": "./dist/index.js"
21
+ },
22
+ "./widgets": {
23
+ "types": "./dist/widgets.d.ts",
24
+ "import": "./dist/widgets.mjs",
25
+ "require": "./dist/widgets.js"
26
+ }
27
+ },
28
+ "typesVersions": {
29
+ "*": {
30
+ "widgets": [
31
+ "./dist/widgets.d.ts"
32
+ ]
33
+ }
34
+ },
35
+ "files": [
36
+ "dist",
37
+ "README.md"
38
+ ],
39
+ "scripts": {
40
+ "build": "tsup",
41
+ "playground": "vite --config vite.config.playground.ts",
42
+ "clean": "rm -rf dist",
43
+ "test": "vitest run",
44
+ "test:watch": "vitest",
45
+ "test:coverage": "vitest run --coverage",
46
+ "prepublishOnly": "pnpm build"
47
+ },
48
+ "peerDependencies": {
49
+ "react": ">=18.0.0",
50
+ "react-dom": ">=18.0.0",
51
+ "viem": ">=2.0.0",
52
+ "wagmi": ">=2.0.0"
53
+ },
54
+ "peerDependenciesMeta": {
55
+ "viem": {
56
+ "optional": true
57
+ },
58
+ "wagmi": {
59
+ "optional": true
60
+ }
61
+ },
62
+ "devDependencies": {
63
+ "@types/react": "^18.0.0",
64
+ "@types/react-dom": "^18.0.0",
65
+ "@vitejs/plugin-react": "^4.3.4",
66
+ "@vitest/coverage-v8": "^2.1.0",
67
+ "jsdom": "^25.0.0",
68
+ "react": "^19.2.2",
69
+ "react-dom": "^19.2.2",
70
+ "tsup": "^8.0.0",
71
+ "typescript": "^5.0.0",
72
+ "viem": "^2.42.1",
73
+ "vite": "^6.0.0",
74
+ "vitest": "^2.1.0",
75
+ "wagmi": "^3.1.0"
76
+ },
77
+ "keywords": [
78
+ "wallet",
79
+ "ethereum",
80
+ "web3",
81
+ "react",
82
+ "typescript"
83
+ ],
84
+ "author": "Hunter Cote",
85
+ "license": "MIT",
86
+ "repository": {
87
+ "type": "git",
88
+ "url": "https://github.com/aurum-sdk/aurum.git",
89
+ "directory": "packages/sdk"
90
+ },
91
+ "homepage": "https://github.com/aurum-sdk/aurum#readme",
92
+ "dependencies": {
93
+ "@aurum-sdk/logos": "workspace:^",
94
+ "@aurum-sdk/types": "workspace:^",
95
+ "@coinbase/cdp-core": "^0.0.74",
96
+ "@coinbase/wallet-sdk": "^4.3.7",
97
+ "@gemini-wallet/core": "^0.3.2",
98
+ "@ledgerhq/connect-kit-loader": "^1.1.8",
99
+ "@metamask/sdk": "~0.33.1",
100
+ "@react-native-async-storage/async-storage": "^1.24.0",
101
+ "@reown/appkit": "^1.8.15",
102
+ "@reown/appkit-adapter-wagmi": "^1.8.15",
103
+ "@sentry/browser": "^10.29.0",
104
+ "@walletconnect/ethereum-provider": "~2.21.1",
105
+ "buffer": "^6.0.3",
106
+ "lucide-react": "^0.460.0",
107
+ "mobile-detect": "^1.4.5",
108
+ "porto": "^0.2.37",
109
+ "react-qrcode-logo": "^3.0.0",
110
+ "x402-fetch": "^0.7.0",
111
+ "zustand": "^5.0.9"
112
+ }
113
+ }