@seams/wallet 0.18.0 → 0.19.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/.build-inputs.sha256 +1 -1
- package/dist/esm/SeamsWeb/index.js +1 -1
- package/dist/esm/SeamsWeb/walletIframe/client/inboundMessages.js +1 -1
- package/dist/esm/SeamsWeb/walletIframe/client/router.js +10 -4
- package/dist/esm/SeamsWeb/walletIframe/coordinator.js +23 -1
- package/dist/esm/SeamsWeb/walletIframe/host/ui/auth-menu/AuthMenuSurface.js +33 -6
- package/dist/esm/SeamsWeb/walletIframe/host/ui/auth-menu/icons.js +37 -1
- package/dist/esm/SeamsWeb/walletIframe/host/ui/auth-menu/presentation.js +1 -0
- package/dist/esm/core/browser/walletIframe/events.js +6 -0
- package/dist/esm/core/signingEngine/uiConfirm/ui/appearance.js +27 -0
- package/dist/esm/core/signingEngine/uiConfirm/ui/export-private-key-reveal.js +155 -0
- package/dist/esm/core/signingEngine/uiConfirm/ui/export-viewer-host.js +209 -0
- package/dist/esm/core/signingEngine/uiConfirm/ui/preact/ExportPrivateKeySurface.js +319 -0
- package/dist/esm/core/signingEngine/uiConfirm/ui/preact/mountExportPrivateKeySurface.js +92 -0
- package/dist/esm/core/signingEngine/uiConfirm/ui/surface-measurement-binding.js +12 -0
- package/dist/esm/core/ui/messages.js +4 -0
- package/dist/esm/index.js +1 -1
- package/dist/esm/react/components/AccountMenuButton/AccountMenuButtonView.js +1 -1
- package/dist/esm/react/components/AccountMenuButton/ExportKeysSection.css +20 -0
- package/dist/esm/react/components/AccountMenuButton/LinkedDevicesModal.css +9 -3
- package/dist/esm/react/components/AccountMenuButton/UserAccountButton.css +1 -0
- package/dist/esm/react/components/AccountMenuButton/Web3AuthProfileButton.css +15 -0
- package/dist/esm/react/styles/styles.css +36 -0
- package/dist/esm/sdk/{ConfirmationDrawer-mu3iThxX.js → ConfirmationDrawer-DCw0m-Iv.js} +1 -1
- package/dist/{public/sdk/adapters-u7LVXthY.js → esm/sdk/adapters-BNmcyf9K.js} +1 -1
- package/dist/esm/sdk/appearance-token-vars-DxBm_cKA.js +2 -0
- package/dist/{public/sdk/export-viewer-host-ivf9LlBo.js → esm/sdk/export-viewer-host-DsdzagKK.js} +1 -1
- package/dist/esm/sdk/{exportKeypairOperation-Gw7L5Htj.js → exportKeypairOperation-BwW_E4Lt.js} +1 -1
- package/dist/esm/sdk/{host-B-2QXolt.js → host-DMR4KDy9.js} +1 -1
- package/dist/esm/sdk/{localOnly-BKpUHtHa.js → localOnly-DO191vDh.js} +1 -1
- package/dist/esm/sdk/{mountExportPrivateKeySurface-C8pUK6PQ.js → mountExportPrivateKeySurface-DQzFzhNu.js} +1 -1
- package/dist/esm/sdk/{mountRecoveryCodeBackupSurface-DUudF89t.js → mountRecoveryCodeBackupSurface-B1D0ovqx.js} +1 -1
- package/dist/esm/sdk/{pendingWalletRecoveryCodeBackup-7tBjuSe7.js → pendingWalletRecoveryCodeBackup-DOeIn_Qj.js} +1 -1
- package/dist/esm/sdk/{registration-CWpOVwhj.js → registration-DknFwoqn.js} +1 -1
- package/dist/esm/sdk/{registration-D2OEgY7O.js → registration-sQndIWRF.js} +1 -1
- package/dist/esm/sdk/router_ab_ed25519_yao_client_bg.wasm +0 -0
- package/dist/esm/sdk/runtime-auth-BxG-J-BB.js +1 -0
- package/dist/esm/sdk/{runtime-device-link-vhRhB-wS.js → runtime-device-link-Dn_5hPCq.js} +1 -1
- package/dist/{public/sdk/runtime-ecdsa-tempo-BXWgFVBa.js → esm/sdk/runtime-ecdsa-tempo-lTFTb9Rh.js} +1 -1
- package/dist/esm/sdk/{runtime-email-otp-BlAaSKtk.js → runtime-email-otp-CPqTCH8Q.js} +1 -1
- package/dist/esm/sdk/{runtime-export-B4FuHhcH.js → runtime-export-Brz53_oi.js} +1 -1
- package/dist/esm/sdk/{runtime-near-BnWOpEpA.js → runtime-near-Da_xFUXx.js} +1 -1
- package/dist/esm/sdk/{runtime-preferences-COm-LTiu.js → runtime-preferences-riUZGaTs.js} +1 -1
- package/dist/esm/sdk/{runtime-recovery-BJTo5Idi.js → runtime-recovery-CTj4nDAM.js} +1 -1
- package/dist/esm/sdk/{runtime-recovery-codes-CEOjdUHV.js → runtime-recovery-codes-D8T9LQ7-.js} +1 -1
- package/dist/esm/sdk/{shared-BKPGtAps.js → shared-hx7KVyeq.js} +1 -1
- package/dist/esm/sdk/tx-confirm-ui.js +4 -0
- package/dist/esm/sdk/wallet-iframe-host-ecdsa.js +1 -1
- package/dist/esm/sdk/wallet-iframe-host-full.js +1 -1
- package/dist/esm/sdk/wallet-iframe-host-near.js +1 -1
- package/dist/esm/sdk/wallet-iframe-host-runtime.js +1 -1
- package/dist/esm/sdk/wallet-ui.css +1 -1
- package/dist/esm/wasm/router_ab_ed25519_yao_client/pkg/router_ab_ed25519_yao_client_bg.wasm +0 -0
- package/dist/public/headers.manifest.json +1 -1
- package/dist/public/sdk/{ConfirmationDrawer-mu3iThxX.js → ConfirmationDrawer-DCw0m-Iv.js} +1 -1
- package/dist/{esm/sdk/adapters-u7LVXthY.js → public/sdk/adapters-BNmcyf9K.js} +1 -1
- package/dist/public/sdk/appearance-token-vars-DxBm_cKA.js +2 -0
- package/dist/{esm/sdk/export-viewer-host-ivf9LlBo.js → public/sdk/export-viewer-host-DsdzagKK.js} +1 -1
- package/dist/public/sdk/{exportKeypairOperation-Gw7L5Htj.js → exportKeypairOperation-BwW_E4Lt.js} +1 -1
- package/dist/public/sdk/{host-B-2QXolt.js → host-DMR4KDy9.js} +1 -1
- package/dist/public/sdk/{localOnly-BKpUHtHa.js → localOnly-DO191vDh.js} +1 -1
- package/dist/public/sdk/{mountExportPrivateKeySurface-C8pUK6PQ.js → mountExportPrivateKeySurface-DQzFzhNu.js} +1 -1
- package/dist/public/sdk/{mountRecoveryCodeBackupSurface-DUudF89t.js → mountRecoveryCodeBackupSurface-B1D0ovqx.js} +1 -1
- package/dist/public/sdk/{pendingWalletRecoveryCodeBackup-7tBjuSe7.js → pendingWalletRecoveryCodeBackup-DOeIn_Qj.js} +1 -1
- package/dist/public/sdk/{registration-CWpOVwhj.js → registration-DknFwoqn.js} +1 -1
- package/dist/public/sdk/{registration-D2OEgY7O.js → registration-sQndIWRF.js} +1 -1
- package/dist/public/sdk/router_ab_ed25519_yao_client_bg.wasm +0 -0
- package/dist/public/sdk/runtime-auth-BxG-J-BB.js +1 -0
- package/dist/public/sdk/{runtime-device-link-vhRhB-wS.js → runtime-device-link-Dn_5hPCq.js} +1 -1
- package/dist/{esm/sdk/runtime-ecdsa-tempo-BXWgFVBa.js → public/sdk/runtime-ecdsa-tempo-lTFTb9Rh.js} +1 -1
- package/dist/public/sdk/{runtime-email-otp-BlAaSKtk.js → runtime-email-otp-CPqTCH8Q.js} +1 -1
- package/dist/public/sdk/{runtime-export-B4FuHhcH.js → runtime-export-Brz53_oi.js} +1 -1
- package/dist/public/sdk/{runtime-near-BnWOpEpA.js → runtime-near-Da_xFUXx.js} +1 -1
- package/dist/public/sdk/{runtime-preferences-COm-LTiu.js → runtime-preferences-riUZGaTs.js} +1 -1
- package/dist/public/sdk/{runtime-recovery-BJTo5Idi.js → runtime-recovery-CTj4nDAM.js} +1 -1
- package/dist/public/sdk/{runtime-recovery-codes-CEOjdUHV.js → runtime-recovery-codes-D8T9LQ7-.js} +1 -1
- package/dist/public/sdk/{shared-BKPGtAps.js → shared-hx7KVyeq.js} +1 -1
- package/dist/public/sdk/tx-confirm-ui.js +4 -0
- package/dist/public/sdk/wallet-iframe-host-ecdsa.js +1 -1
- package/dist/public/sdk/wallet-iframe-host-full.js +1 -1
- package/dist/public/sdk/wallet-iframe-host-near.js +1 -1
- package/dist/public/sdk/wallet-iframe-host-runtime.js +1 -1
- package/dist/public/sdk/wallet-ui.css +1 -1
- package/dist/public/sdk/workers/router_ab_ed25519_yao_client_bg.wasm +0 -0
- package/dist/public/sdk/workers/wallet_custody_ceremony_bg.wasm +0 -0
- package/dist/public/wallet-assets.manifest.json +46 -46
- package/dist/public/wallet-service/index.html +4 -4
- package/dist/types/wallet/src/SeamsWeb/walletIframe/coordinator.d.ts +2 -1
- package/dist/types/wallet/src/SeamsWeb/walletIframe/host/auth-menu/domain.d.ts +20 -3
- package/dist/types/wallet/src/SeamsWeb/walletIframe/host/auth-menu/session.d.ts +3 -0
- package/dist/types/wallet/src/SeamsWeb/walletIframe/host/ui/auth-menu/AuthMenuSurface.d.ts +1 -0
- package/dist/types/wallet/src/SeamsWeb/walletIframe/host/ui/auth-menu/icons.d.ts +2 -0
- package/dist/types/wallet/src/core/ui/messages.d.ts +1 -1
- package/dist/workers/router_ab_ed25519_yao_client_bg.wasm +0 -0
- package/dist/workers/wallet_custody_ceremony_bg.wasm +0 -0
- package/package.json +1 -1
- package/dist/esm/sdk/appearance-token-vars-CzBVbO39.js +0 -2
- package/dist/esm/sdk/runtime-auth-jtyQAuxZ.js +0 -1
- package/dist/public/sdk/appearance-token-vars-CzBVbO39.js +0 -2
- package/dist/public/sdk/runtime-auth-jtyQAuxZ.js +0 -1
|
@@ -548,8 +548,10 @@
|
|
|
548
548
|
margin-bottom: 1.5rem;
|
|
549
549
|
font-size: 0.875rem;
|
|
550
550
|
}
|
|
551
|
+
/* The body scrolls, so the last action needs its own room above the card edge. */
|
|
551
552
|
.seams-auth-methods-modal-content .seams-linked-devices-modal-body {
|
|
552
553
|
gap: 1.5rem;
|
|
554
|
+
padding-bottom: 1.5rem;
|
|
553
555
|
}
|
|
554
556
|
/* A method's icon sits on a tile, like the recovery-code row. */
|
|
555
557
|
.seams-auth-methods-modal-content .seams-linked-devices-modal-item--row {
|
|
@@ -585,12 +587,16 @@
|
|
|
585
587
|
font-size: 0.8125rem;
|
|
586
588
|
}
|
|
587
589
|
.seams-auth-methods-modal-content .seams-linked-devices-modal-otp-form button {
|
|
588
|
-
background: var(--seams-colors-
|
|
590
|
+
background: var(--seams-colors-textPrimary);
|
|
589
591
|
border-color: transparent;
|
|
590
|
-
color: var(--seams-colors-
|
|
592
|
+
color: var(--seams-colors-colorBackground);
|
|
591
593
|
}
|
|
592
594
|
.seams-auth-methods-modal-content .seams-linked-devices-modal-otp-form button:hover:not(:disabled) {
|
|
593
|
-
background:
|
|
595
|
+
background: color-mix(
|
|
596
|
+
in srgb,
|
|
597
|
+
var(--seams-colors-textPrimary) 84%,
|
|
598
|
+
var(--seams-colors-colorBackground)
|
|
599
|
+
);
|
|
594
600
|
}
|
|
595
601
|
@media (max-width: 480px) {
|
|
596
602
|
.seams-auth-methods-modal-content .seams-linked-devices-modal-otp-form {
|
|
@@ -16,6 +16,14 @@
|
|
|
16
16
|
.seams-profile-button-morphable.open {
|
|
17
17
|
width: 420px;
|
|
18
18
|
overflow: hidden;
|
|
19
|
+
/* The panel replaces the Settings button; a short fade keeps that from
|
|
20
|
+
reading as a cut. */
|
|
21
|
+
animation: seams-account-panel-in 100ms ease-out both;
|
|
22
|
+
}
|
|
23
|
+
@keyframes seams-account-panel-in {
|
|
24
|
+
from {
|
|
25
|
+
opacity: 0;
|
|
26
|
+
}
|
|
19
27
|
}
|
|
20
28
|
.seams-account-resize {
|
|
21
29
|
overflow: hidden;
|
|
@@ -354,6 +362,9 @@
|
|
|
354
362
|
overflow: hidden;
|
|
355
363
|
}
|
|
356
364
|
.seams-account-screen .qr-scanner-video {
|
|
365
|
+
/* The base video is a fixed 400px; the menu's box is narrower, which cut the
|
|
366
|
+
camera off on the right and moved it from under the scan frame. */
|
|
367
|
+
width: 100%;
|
|
357
368
|
height: 208px;
|
|
358
369
|
object-fit: cover;
|
|
359
370
|
}
|
|
@@ -410,6 +421,10 @@
|
|
|
410
421
|
.seams-account-method-list-item {
|
|
411
422
|
list-style: none;
|
|
412
423
|
}
|
|
424
|
+
/* Separators go between rows only; the footer rule closes the screen. */
|
|
425
|
+
.seams-account-method-list-item:last-child > .seams-account-method-button {
|
|
426
|
+
border-bottom: 0;
|
|
427
|
+
}
|
|
413
428
|
.seams-account-screen ul {
|
|
414
429
|
padding-left: 0;
|
|
415
430
|
}
|
|
@@ -104,6 +104,26 @@
|
|
|
104
104
|
height: 100%;
|
|
105
105
|
}
|
|
106
106
|
|
|
107
|
+
/* A phone-width menu left the description beside the label only a few
|
|
108
|
+
characters, so it moves to a line of its own under the label. */
|
|
109
|
+
@media (max-width: 480px) {
|
|
110
|
+
.seams-account-screen .seams-export-keys-row {
|
|
111
|
+
flex-wrap: wrap;
|
|
112
|
+
row-gap: 2px;
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
.seams-account-screen .seams-export-keys-row-spinner {
|
|
116
|
+
margin-left: auto;
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
.seams-account-screen .seams-export-keys-row-description {
|
|
120
|
+
flex-basis: 100%;
|
|
121
|
+
order: 1;
|
|
122
|
+
white-space: normal;
|
|
123
|
+
text-align: left;
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
|
|
107
127
|
/* MenuItem Component Styles */
|
|
108
128
|
|
|
109
129
|
.seams-dropdown-menu-item {
|
|
@@ -626,6 +646,7 @@
|
|
|
626
646
|
padding: 4px 12px 4px 4px;
|
|
627
647
|
border-radius: 6px;
|
|
628
648
|
width: fit-content;
|
|
649
|
+
cursor: pointer;
|
|
629
650
|
}
|
|
630
651
|
|
|
631
652
|
.seams-user-account-button-trigger .hide-username {
|
|
@@ -805,6 +826,14 @@
|
|
|
805
826
|
.seams-profile-button-morphable.open {
|
|
806
827
|
width: 420px;
|
|
807
828
|
overflow: hidden;
|
|
829
|
+
/* The panel replaces the Settings button; a short fade keeps that from
|
|
830
|
+
reading as a cut. */
|
|
831
|
+
animation: seams-account-panel-in 100ms ease-out both;
|
|
832
|
+
}
|
|
833
|
+
@keyframes seams-account-panel-in {
|
|
834
|
+
from {
|
|
835
|
+
opacity: 0;
|
|
836
|
+
}
|
|
808
837
|
}
|
|
809
838
|
.seams-account-resize {
|
|
810
839
|
overflow: hidden;
|
|
@@ -1143,6 +1172,9 @@
|
|
|
1143
1172
|
overflow: hidden;
|
|
1144
1173
|
}
|
|
1145
1174
|
.seams-account-screen .qr-scanner-video {
|
|
1175
|
+
/* The base video is a fixed 400px; the menu's box is narrower, which cut the
|
|
1176
|
+
camera off on the right and moved it from under the scan frame. */
|
|
1177
|
+
width: 100%;
|
|
1146
1178
|
height: 208px;
|
|
1147
1179
|
object-fit: cover;
|
|
1148
1180
|
}
|
|
@@ -1199,6 +1231,10 @@
|
|
|
1199
1231
|
.seams-account-method-list-item {
|
|
1200
1232
|
list-style: none;
|
|
1201
1233
|
}
|
|
1234
|
+
/* Separators go between rows only; the footer rule closes the screen. */
|
|
1235
|
+
.seams-account-method-list-item:last-child > .seams-account-method-button {
|
|
1236
|
+
border-bottom: 0;
|
|
1237
|
+
}
|
|
1202
1238
|
.seams-account-screen ul {
|
|
1203
1239
|
padding-left: 0;
|
|
1204
1240
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as e,d as t,f as n,l as r,o as i,p as a,u as o}from"./appearance-token-vars-CzBVbO39.js";async function s(e,t,n){if(!e.isConnected||n?.aborted)return!1;let r=e.ownerDocument,i=r.defaultView?.navigator.clipboard;if(i?.writeText)try{return await i.writeText(t),!0}catch{}if(!e.isConnected||n?.aborted)return!1;let a=r.createElement(`textarea`);a.value=t,a.readOnly=!0,a.className=`seams-offscreen`,e.appendChild(a),a.select();try{return r.execCommand(`copy`)}finally{a.remove()}}function c(){return r(`span`,{class:`copy-icon`,"aria-hidden":`true`,children:[r(`span`,{class:`copy-icon-check`,children:r(`svg`,{width:`16`,height:`16`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,children:r(`path`,{d:`M20 6 9 17l-5-5`})})}),r(`span`,{class:`copy-icon-copy`,children:r(`svg`,{width:`16`,height:`16`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,children:[r(`rect`,{width:`14`,height:`14`,x:`8`,y:`8`,rx:`2`,ry:`2`}),r(`path`,{d:`M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2`})]})})]})}let l=0;function u(e){return r(d,{...e},e.context)}var d=class extends n{static contextType=e;dialog=a();hosted=a();containerId=`seams-confirmation-modal-${++l}`;componentDidMount(){this.props.context===`standalone`?this.dialog.current?.showModal():this.hosted.current?.focus({preventScroll:!0})}componentWillUnmount(){this.dialog.current?.close()}cancel=e=>{e.preventDefault(),e.stopPropagation(),this.props.onCancel()};backdropClick=e=>{let t=this.dialog.current;if(!t||e.target!==t)return;let n=t.getBoundingClientRect();(e.clientX<n.left||e.clientX>n.right||e.clientY<n.top||e.clientY>n.bottom)&&this.cancel(e)};hostedKeyDown=e=>{!e.defaultPrevented&&e.key===`Escape`&&this.cancel(e)};render(){return this.props.context===`standalone`?r(`dialog`,{ref:this.dialog,class:`seams-confirmation-modal`,"aria-label":o(this.context,this.props.label),onCancel:this.cancel,onClick:this.backdropClick,children:r(`div`,{id:this.containerId,class:`modal-container-root`,tabIndex:-1,children:this.props.children})}):r(`div`,{ref:this.hosted,class:`seams-confirmation-modal seams-confirmation-modal--hosted`,tabIndex:-1,onKeyDown:this.hostedKeyDown,children:r(`div`,{id:this.containerId,class:`modal-container-root`,children:this.props.children})})}};function f(e){let t=e.startTranslatePx+e.deltaPx;if(t>=e.restTranslatePx)return t;let n=Math.max(e.sheetHeightPx*.5,e.viewportHeightPx*.5,e.minimumOverpullPx),r=e.restTranslatePx-t;return e.restTranslatePx-n*(1-1/(r/n+1))}function p(e){let t=e.totalDeltaPx/Math.max(1,e.durationMs);return Math.min(e.velocityPxPerMs,t)<=-.6||Math.max(e.velocityPxPerMs,t)>=.7||e.translatePx>=e.sheetHeightPx-50}let m=0;function h(e){return r(g,{...e},e.context)}var g=class extends n{static contextType=e;state={settled:!1};id=`seams-confirmation-drawer-${++m}`;dialog=a();sheet=a();body=a();content=a();observer=null;frame=null;closeTimer=null;gesture={kind:`idle`};lifetime=`active`;closeReported=!1;suppressPointerClick=!1;componentDidMount(){let e=this.sheet.current,t=e.ownerDocument.defaultView;this.dialog.current?.showModal(),this.dialog.current||e.focus({preventScroll:!0}),this.observer=new ResizeObserver(this.measureContent),this.observer.observe(this.content.current),this.observer.observe(e),t.addEventListener(`resize`,this.scheduleMeasure),t.visualViewport?.addEventListener(`resize`,this.scheduleMeasure),this.measure(),this.frame=t.requestAnimationFrame(this.openAfterLayout),this.props.state.kind===`closing`&&this.startClose()}openAfterLayout=()=>{this.frame=null,this.setState({settled:!0})};componentDidUpdate(e){e.styles!==this.props.styles&&(e.styles.deleteDynamicRule(this.id),e.styles.deleteDynamicRule(`${this.id}-drag`),this.resetGesture(),this.measure()),e.state.kind!==this.props.state.kind&&(this.props.state.kind===`closing`?this.startClose():(this.clearCloseTimer(),this.closeReported=!1)),this.props.state.kind===`open`&&this.props.state.interaction===`busy`&&this.resetGesture()}componentWillUnmount(){this.lifetime=`disposed`,this.resetGesture();let e=this.sheet.current.ownerDocument.defaultView;this.frame!==null&&e.cancelAnimationFrame(this.frame),this.clearCloseTimer(),this.observer?.disconnect(),e.removeEventListener(`resize`,this.scheduleMeasure),e.visualViewport?.removeEventListener(`resize`,this.scheduleMeasure),this.props.styles.deleteDynamicRule(this.id),this.dialog.current?.close()}scheduleMeasure=()=>{this.lifetime===`disposed`||this.frame!==null||(this.frame=this.sheet.current.ownerDocument.defaultView.requestAnimationFrame(this.measureFrame))};measureFrame=()=>{this.frame=null,this.measure()};measureContent=()=>{this.lifetime===`active`&&this.measure()};measure(){if(this.gesture.kind!==`idle`)return;let e=this.sheet.current,t=this.content.current,n=Math.round(t.getBoundingClientRect().bottom-e.getBoundingClientRect().top),r=this.props.context===`standalone`?Math.max(0,e.offsetHeight-n):0;this.props.styles.setDynamicDeclarations(this.id,`#${this.id}`,{"--seams-drawer-rest":`${r}px`})}startClose(){this.resetGesture(),this.clearCloseTimer();let e=this.sheet.current.ownerDocument.defaultView,t=e.matchMedia(`(prefers-reduced-motion: reduce)`).matches?0:150;this.closeTimer=e.setTimeout(this.reportClosed,t)}clearCloseTimer(){this.closeTimer!==null&&(this.sheet.current.ownerDocument.defaultView.clearTimeout(this.closeTimer),this.closeTimer=null)}reportClosed=()=>{this.clearCloseTimer(),!(this.lifetime===`disposed`||this.closeReported||this.props.state.kind!==`closing`)&&(this.closeReported=!0,this.props.state.onClosed())};transitionEnd=e=>{e.target===this.sheet.current&&e.propertyName===`transform`&&this.reportClosed()};cancel=e=>{e.preventDefault(),e.stopPropagation(),this.props.state.kind===`open`&&this.props.onCancel()};backdropClick=e=>{this.props.dismissOnBackdrop!==!1&&e.target===this.dialog.current&&this.canDrag()&&this.cancel(e)};keyDown=e=>{!e.defaultPrevented&&e.key===`Escape`&&this.cancel(e)};canDrag(){return this.props.state.kind===`open`&&this.props.state.interaction===`ready`}pointerDown=e=>{if(this.clearClickSuppression(),!this.canDrag()||this.gesture.kind!==`idle`||!e.isPrimary||e.button!==0)return;let t=e.target;if(t instanceof Element&&t.closest(`a, input, textarea, select, summary, button:not(.seams-drawer-handle), [data-seams-drawer-no-drag]`))return;this.gesture={kind:`pending`,pointerId:e.pointerId,startY:e.clientY};let n=this.sheet.current.ownerDocument;n.addEventListener(`pointermove`,this.pointerMove,{passive:!1}),n.addEventListener(`pointerup`,this.pointerUp),n.addEventListener(`pointercancel`,this.pointerCancel)};pointerMove=e=>{let t=this.gesture;if(t.kind===`idle`||t.pointerId!==e.pointerId)return;let n=this.sheet.current;if(t.kind===`pending`){if(Math.abs(e.clientY-t.startY)<8||this.body.current.scrollTop>0)return;let r=n.ownerDocument.defaultView,i=new DOMMatrixReadOnly(r.getComputedStyle(n).transform).m42;t={kind:`dragging`,pointerId:t.pointerId,startY:t.startY,lastY:t.startY,startedAt:e.timeStamp,lastTime:e.timeStamp,velocity:0,rest:i,translate:i,height:n.offsetHeight},this.gesture=t,n.setPointerCapture(e.pointerId),n.classList.add(`is-dragging`)}let r=e.timeStamp-t.lastTime;r>0&&(t.velocity=(e.clientY-t.lastY)/r),t.lastY=e.clientY,t.lastTime=e.timeStamp,t.translate=f({startTranslatePx:t.rest,deltaPx:e.clientY-t.startY,restTranslatePx:t.rest,sheetHeightPx:t.height,viewportHeightPx:n.ownerDocument.defaultView.innerHeight,minimumOverpullPx:160}),this.props.styles.setDynamicDeclarations(`${this.id}-drag`,`#${this.id}`,{"--seams-drawer-drag":`${t.translate}px`}),e.preventDefault()};pointerUp=e=>{let t=this.gesture;if(t.kind===`idle`||t.pointerId!==e.pointerId)return;let n=t.kind===`dragging`&&p({velocityPxPerMs:t.velocity,totalDeltaPx:t.lastY-t.startY,durationMs:e.timeStamp-t.startedAt,translatePx:t.translate,sheetHeightPx:t.height});t.kind===`dragging`&&(this.suppressPointerClick=!0,e.preventDefault()),this.resetGesture(),n&&this.props.state.kind===`open`&&this.props.onCancel()};pointerCancel=e=>{this.gesture.kind!==`idle`&&this.gesture.pointerId===e.pointerId&&(this.gesture.kind===`dragging`&&(this.suppressPointerClick=!0),this.resetGesture())};clearClickSuppression=()=>{this.suppressPointerClick=!1};suppressDragClick=e=>{!this.suppressPointerClick||e.detail===0||(this.suppressPointerClick=!1,e.preventDefault(),e.stopPropagation())};resetGesture(){let e=this.sheet.current,t=this.gesture;this.gesture={kind:`idle`},t.kind!==`idle`&&e.hasPointerCapture(t.pointerId)&&e.releasePointerCapture(t.pointerId),e.classList.remove(`is-dragging`);let n=e.ownerDocument;n.removeEventListener(`pointermove`,this.pointerMove),n.removeEventListener(`pointerup`,this.pointerUp),n.removeEventListener(`pointercancel`,this.pointerCancel),this.props.styles.deleteDynamicRule(`${this.id}-drag`),this.lifetime===`active`&&this.scheduleMeasure()}render(){let e=this.state.settled&&this.props.state.kind===`open`,n=[`seams-confirmation-drawer`];e&&n.push(`is-open`),this.gesture.kind===`dragging`&&n.push(`is-dragging`);let a=r(`section`,{ref:this.sheet,id:this.id,class:n.join(` `),"data-context":this.props.context,tabIndex:-1,onPointerDownCapture:this.pointerDown,onClickCapture:this.suppressDragClick,onLostPointerCapture:this.pointerCancel,onTransitionEnd:this.transitionEnd,onKeyDown:this.keyDown,children:[r(`div`,{class:`seams-drawer-controls`,children:[this.props.origin&&r(`div`,{class:`seams-drawer-origin`,children:this.props.origin}),r(`button`,{type:`button`,class:`seams-drawer-handle`,"aria-label":t(this.context,`Dismiss confirmation`),disabled:!this.canDrag(),onClick:this.cancel,children:r(`span`,{})}),r(`button`,{type:`button`,class:`seams-drawer-close`,"aria-label":t(this.context,`Close`),disabled:!this.canDrag(),onClick:this.cancel,children:`×`})]}),r(`div`,{class:`seams-drawer-body`,ref:this.body,children:[this.props.errorMessage&&r(`div`,{class:`error`,children:r(i,{copy:this.props.errorMessage})}),r(`div`,{class:`seams-drawer-content`,ref:this.content,children:this.props.children})]})]});return this.props.context===`wallet-iframe`?a:r(`dialog`,{class:`seams-drawer-dialog`,ref:this.dialog,"aria-label":o(this.context,this.props.label),onCancel:this.cancel,onClick:this.backdropClick,onClickCapture:this.suppressDragClick,onPointerDownCapture:this.clearClickSuppression,children:a})}};export{s as i,u as n,c as r,h as t};
|
|
1
|
+
import{a as e,d as t,f as n,l as r,o as i,p as a,u as o}from"./appearance-token-vars-DxBm_cKA.js";async function s(e,t,n){if(!e.isConnected||n?.aborted)return!1;let r=e.ownerDocument,i=r.defaultView?.navigator.clipboard;if(i?.writeText)try{return await i.writeText(t),!0}catch{}if(!e.isConnected||n?.aborted)return!1;let a=r.createElement(`textarea`);a.value=t,a.readOnly=!0,a.className=`seams-offscreen`,e.appendChild(a),a.select();try{return r.execCommand(`copy`)}finally{a.remove()}}function c(){return r(`span`,{class:`copy-icon`,"aria-hidden":`true`,children:[r(`span`,{class:`copy-icon-check`,children:r(`svg`,{width:`16`,height:`16`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,children:r(`path`,{d:`M20 6 9 17l-5-5`})})}),r(`span`,{class:`copy-icon-copy`,children:r(`svg`,{width:`16`,height:`16`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,children:[r(`rect`,{width:`14`,height:`14`,x:`8`,y:`8`,rx:`2`,ry:`2`}),r(`path`,{d:`M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2`})]})})]})}let l=0;function u(e){return r(d,{...e},e.context)}var d=class extends n{static contextType=e;dialog=a();hosted=a();containerId=`seams-confirmation-modal-${++l}`;componentDidMount(){this.props.context===`standalone`?this.dialog.current?.showModal():this.hosted.current?.focus({preventScroll:!0})}componentWillUnmount(){this.dialog.current?.close()}cancel=e=>{e.preventDefault(),e.stopPropagation(),this.props.onCancel()};backdropClick=e=>{let t=this.dialog.current;if(!t||e.target!==t)return;let n=t.getBoundingClientRect();(e.clientX<n.left||e.clientX>n.right||e.clientY<n.top||e.clientY>n.bottom)&&this.cancel(e)};hostedKeyDown=e=>{!e.defaultPrevented&&e.key===`Escape`&&this.cancel(e)};render(){return this.props.context===`standalone`?r(`dialog`,{ref:this.dialog,class:`seams-confirmation-modal`,"aria-label":o(this.context,this.props.label),onCancel:this.cancel,onClick:this.backdropClick,children:r(`div`,{id:this.containerId,class:`modal-container-root`,tabIndex:-1,children:this.props.children})}):r(`div`,{ref:this.hosted,class:`seams-confirmation-modal seams-confirmation-modal--hosted`,tabIndex:-1,onKeyDown:this.hostedKeyDown,children:r(`div`,{id:this.containerId,class:`modal-container-root`,children:this.props.children})})}};function f(e){let t=e.startTranslatePx+e.deltaPx;if(t>=e.restTranslatePx)return t;let n=Math.max(e.sheetHeightPx*.5,e.viewportHeightPx*.5,e.minimumOverpullPx),r=e.restTranslatePx-t;return e.restTranslatePx-n*(1-1/(r/n+1))}function p(e){let t=e.totalDeltaPx/Math.max(1,e.durationMs);return Math.min(e.velocityPxPerMs,t)<=-.6||Math.max(e.velocityPxPerMs,t)>=.7||e.translatePx>=e.sheetHeightPx-50}let m=0;function h(e){return r(g,{...e},e.context)}var g=class extends n{static contextType=e;state={settled:!1};id=`seams-confirmation-drawer-${++m}`;dialog=a();sheet=a();body=a();content=a();observer=null;frame=null;closeTimer=null;gesture={kind:`idle`};lifetime=`active`;closeReported=!1;suppressPointerClick=!1;componentDidMount(){let e=this.sheet.current,t=e.ownerDocument.defaultView;this.dialog.current?.showModal(),this.dialog.current||e.focus({preventScroll:!0}),this.observer=new ResizeObserver(this.measureContent),this.observer.observe(this.content.current),this.observer.observe(e),t.addEventListener(`resize`,this.scheduleMeasure),t.visualViewport?.addEventListener(`resize`,this.scheduleMeasure),this.measure(),this.frame=t.requestAnimationFrame(this.openAfterLayout),this.props.state.kind===`closing`&&this.startClose()}openAfterLayout=()=>{this.frame=null,this.setState({settled:!0})};componentDidUpdate(e){e.styles!==this.props.styles&&(e.styles.deleteDynamicRule(this.id),e.styles.deleteDynamicRule(`${this.id}-drag`),this.resetGesture(),this.measure()),e.state.kind!==this.props.state.kind&&(this.props.state.kind===`closing`?this.startClose():(this.clearCloseTimer(),this.closeReported=!1)),this.props.state.kind===`open`&&this.props.state.interaction===`busy`&&this.resetGesture()}componentWillUnmount(){this.lifetime=`disposed`,this.resetGesture();let e=this.sheet.current.ownerDocument.defaultView;this.frame!==null&&e.cancelAnimationFrame(this.frame),this.clearCloseTimer(),this.observer?.disconnect(),e.removeEventListener(`resize`,this.scheduleMeasure),e.visualViewport?.removeEventListener(`resize`,this.scheduleMeasure),this.props.styles.deleteDynamicRule(this.id),this.dialog.current?.close()}scheduleMeasure=()=>{this.lifetime===`disposed`||this.frame!==null||(this.frame=this.sheet.current.ownerDocument.defaultView.requestAnimationFrame(this.measureFrame))};measureFrame=()=>{this.frame=null,this.measure()};measureContent=()=>{this.lifetime===`active`&&this.measure()};measure(){if(this.gesture.kind!==`idle`)return;let e=this.sheet.current,t=this.content.current,n=Math.round(t.getBoundingClientRect().bottom-e.getBoundingClientRect().top),r=this.props.context===`standalone`?Math.max(0,e.offsetHeight-n):0;this.props.styles.setDynamicDeclarations(this.id,`#${this.id}`,{"--seams-drawer-rest":`${r}px`})}startClose(){this.resetGesture(),this.clearCloseTimer();let e=this.sheet.current.ownerDocument.defaultView,t=e.matchMedia(`(prefers-reduced-motion: reduce)`).matches?0:150;this.closeTimer=e.setTimeout(this.reportClosed,t)}clearCloseTimer(){this.closeTimer!==null&&(this.sheet.current.ownerDocument.defaultView.clearTimeout(this.closeTimer),this.closeTimer=null)}reportClosed=()=>{this.clearCloseTimer(),!(this.lifetime===`disposed`||this.closeReported||this.props.state.kind!==`closing`)&&(this.closeReported=!0,this.props.state.onClosed())};transitionEnd=e=>{e.target===this.sheet.current&&e.propertyName===`transform`&&this.reportClosed()};cancel=e=>{e.preventDefault(),e.stopPropagation(),this.props.state.kind===`open`&&this.props.onCancel()};backdropClick=e=>{this.props.dismissOnBackdrop!==!1&&e.target===this.dialog.current&&this.canDrag()&&this.cancel(e)};keyDown=e=>{!e.defaultPrevented&&e.key===`Escape`&&this.cancel(e)};canDrag(){return this.props.state.kind===`open`&&this.props.state.interaction===`ready`}pointerDown=e=>{if(this.clearClickSuppression(),!this.canDrag()||this.gesture.kind!==`idle`||!e.isPrimary||e.button!==0)return;let t=e.target;if(t instanceof Element&&t.closest(`a, input, textarea, select, summary, button:not(.seams-drawer-handle), [data-seams-drawer-no-drag]`))return;this.gesture={kind:`pending`,pointerId:e.pointerId,startY:e.clientY};let n=this.sheet.current.ownerDocument;n.addEventListener(`pointermove`,this.pointerMove,{passive:!1}),n.addEventListener(`pointerup`,this.pointerUp),n.addEventListener(`pointercancel`,this.pointerCancel)};pointerMove=e=>{let t=this.gesture;if(t.kind===`idle`||t.pointerId!==e.pointerId)return;let n=this.sheet.current;if(t.kind===`pending`){if(Math.abs(e.clientY-t.startY)<8||this.body.current.scrollTop>0)return;let r=n.ownerDocument.defaultView,i=new DOMMatrixReadOnly(r.getComputedStyle(n).transform).m42;t={kind:`dragging`,pointerId:t.pointerId,startY:t.startY,lastY:t.startY,startedAt:e.timeStamp,lastTime:e.timeStamp,velocity:0,rest:i,translate:i,height:n.offsetHeight},this.gesture=t,n.setPointerCapture(e.pointerId),n.classList.add(`is-dragging`)}let r=e.timeStamp-t.lastTime;r>0&&(t.velocity=(e.clientY-t.lastY)/r),t.lastY=e.clientY,t.lastTime=e.timeStamp,t.translate=f({startTranslatePx:t.rest,deltaPx:e.clientY-t.startY,restTranslatePx:t.rest,sheetHeightPx:t.height,viewportHeightPx:n.ownerDocument.defaultView.innerHeight,minimumOverpullPx:160}),this.props.styles.setDynamicDeclarations(`${this.id}-drag`,`#${this.id}`,{"--seams-drawer-drag":`${t.translate}px`}),e.preventDefault()};pointerUp=e=>{let t=this.gesture;if(t.kind===`idle`||t.pointerId!==e.pointerId)return;let n=t.kind===`dragging`&&p({velocityPxPerMs:t.velocity,totalDeltaPx:t.lastY-t.startY,durationMs:e.timeStamp-t.startedAt,translatePx:t.translate,sheetHeightPx:t.height});t.kind===`dragging`&&(this.suppressPointerClick=!0,e.preventDefault()),this.resetGesture(),n&&this.props.state.kind===`open`&&this.props.onCancel()};pointerCancel=e=>{this.gesture.kind!==`idle`&&this.gesture.pointerId===e.pointerId&&(this.gesture.kind===`dragging`&&(this.suppressPointerClick=!0),this.resetGesture())};clearClickSuppression=()=>{this.suppressPointerClick=!1};suppressDragClick=e=>{!this.suppressPointerClick||e.detail===0||(this.suppressPointerClick=!1,e.preventDefault(),e.stopPropagation())};resetGesture(){let e=this.sheet.current,t=this.gesture;this.gesture={kind:`idle`},t.kind!==`idle`&&e.hasPointerCapture(t.pointerId)&&e.releasePointerCapture(t.pointerId),e.classList.remove(`is-dragging`);let n=e.ownerDocument;n.removeEventListener(`pointermove`,this.pointerMove),n.removeEventListener(`pointerup`,this.pointerUp),n.removeEventListener(`pointercancel`,this.pointerCancel),this.props.styles.deleteDynamicRule(`${this.id}-drag`),this.lifetime===`active`&&this.scheduleMeasure()}render(){let e=this.state.settled&&this.props.state.kind===`open`,n=[`seams-confirmation-drawer`];e&&n.push(`is-open`),this.gesture.kind===`dragging`&&n.push(`is-dragging`);let a=r(`section`,{ref:this.sheet,id:this.id,class:n.join(` `),"data-context":this.props.context,tabIndex:-1,onPointerDownCapture:this.pointerDown,onClickCapture:this.suppressDragClick,onLostPointerCapture:this.pointerCancel,onTransitionEnd:this.transitionEnd,onKeyDown:this.keyDown,children:[r(`div`,{class:`seams-drawer-controls`,children:[this.props.origin&&r(`div`,{class:`seams-drawer-origin`,children:this.props.origin}),r(`button`,{type:`button`,class:`seams-drawer-handle`,"aria-label":t(this.context,`Dismiss confirmation`),disabled:!this.canDrag(),onClick:this.cancel,children:r(`span`,{})}),r(`button`,{type:`button`,class:`seams-drawer-close`,"aria-label":t(this.context,`Close`),disabled:!this.canDrag(),onClick:this.cancel,children:`×`})]}),r(`div`,{class:`seams-drawer-body`,ref:this.body,children:[this.props.errorMessage&&r(`div`,{class:`error`,children:r(i,{copy:this.props.errorMessage})}),r(`div`,{class:`seams-drawer-content`,ref:this.content,children:this.props.children})]})]});return this.props.context===`wallet-iframe`?a:r(`dialog`,{class:`seams-drawer-dialog`,ref:this.dialog,"aria-label":o(this.context,this.props.label),onCancel:this.cancel,onClick:this.backdropClick,onClickCapture:this.suppressDragClick,onPointerDownCapture:this.clearClickSuppression,children:a})}};export{s as i,u as n,c as r,h as t};
|