Ecosystem metrics
- New Repos
- 10
- New
- Commits
- 555
- up 32.1%
- Releases
- 3
- up 50.0%
- Contributors
- 42
- up 40.0%
- Merges
- 10
- down 16.7%
Activity Overview
Commits and releases over time
- Commits
- Releases
- Authors
Repository Explorer
No repositories match that filter.
8982 commits in all time
Aug 10, 2026 21:41 – Nov 08, 2026 21:41 UTC
Merge d014d1afaab1c049c5f15a770385dec3990e3846 into ae579634c34cafd00c2e45a5cb1cefbb6818abb1
46fc5c16
pull/66/merge
12/1,218 ++ 992 --
chore(deps): Update all non-major dependencies
d014d1af
renovate/all-non-major-dependencies
12/1,218 ++ 992 --
Merge fb9e8d0b6f4b57bd33656b58c1e62b2e32ed67c4 into ae579634c34cafd00c2e45a5cb1cefbb6818abb1
c435e3b7
pull/76/merge
3/134 ++ 253 --
chore(deps): Update dependency vitest to v4 [SECURITY]
fb9e8d0b
renovate/npm-vitest-vulnerability
3/134 ++ 253 --
chore(vue): bump version to 1.2.0 (#86)
Vue is published by the manual Release Vue workflow, which publishes the version in packages/vue/package.json. 1.2.0 carries the passkey support from #85.
ae579634
main
1/1 ++ 1 --
chore(vue): bump version to 1.2.0
Vue is published by the manual Release Vue workflow, which publishes the version in packages/vue/package.json. 1.2.0 carries the passkey support from #85.
79ce9775
chore/vue-1.2.0
1/1 ++ 1 --
Notes added by 'git notes add'
d555d3ce
notes/semantic-release-v1.4.0
1/1 ++ 0 --
chore(release): 1.4.0 [skip ci]
# [1.4.0](https://github.com/TxnLab/use-wallet-ui/compare/v1.3.0...v1.4.0) (2026-11-08) ### Features * support the use-wallet passkey wallet ([#85](https://github.com/TxnLab/use-wallet-ui/issues/85)) ([c2734e7](https://github.com/TxnLab/use-wallet-ui/commit/c2734e7a57b590ad82ee01486c08b8ff0db61022))
1dc34f70
main
2/8 ++ 1 --
feat: support the use-wallet passkey wallet (#85)
* feat: support the use-wallet passkey wallet
Apps that register passkey() from @txnlab/use-wallet-passkey (use-wallet
5.2+) now get it in the connect dialog with "Create passkey" and "Sign in"
buttons. Passkey errors keep the dialog open with a message the user can
act on (cancelled or no passkey found, in-app browser, no PRF support).
The connect call starts before any await, so Safari and iOS keep the tap.
A new ./plugins/passkey entry (React and Vue) adds to the connected menu:
- Export Recovery Phrase: a fresh passkey prompt, Falcon / quantum import
instructions for Lute and Pera, a 60s timeout, and best-effort clipboard
clearing
- Session lock status with Unlock and Lock (session: true)
- A note that the account belongs to the site (disclosure, on by default)
Only the plugin entry imports useWalletManager (use-wallet 5.2+), so the
main entry keeps the ^4.6.0 || ^5.0.0 peer range. The adapter is typed
structurally, with a type test against PasskeyAdapter; use-wallet-passkey
is a devDependency only.
Also:
- Bump use-wallet devDependencies and examples to 5.2.0
- Add react-passkey and vue-passkey examples (passkey, Lute, Pera)
- Add passkey-react and passkey-vue Playwright projects using Chromium's
virtual authenticator with PRF, and run them in CI
- Document the plugin and the WalletList args contract
* feat(passkey): passkey-first connect dialog and show-once disclosure
The connect dialog now leads with the passkey wallet: a full-width
"Continue with passkey" button signs in, and a "New here? Create a
passkey" link creates one. The other wallets follow under an "or connect
a wallet" divider. WalletList no longer renders the passkey wallet; the
section is exported as PasskeyConnect for custom connect menus.
The connected menu tags a passkey account with its domain. The plugin's
disclosure is now off by default; with `disclosure: true` it shows until
the user chooses "Got it", remembered per address in localStorage (with
an in-memory fallback when storage is unavailable).
Export Recovery Phrase uses a document icon, since a key now means
passkey sign-in.
Also restore the passkey plugin's Requirements and Subpath Import docs,
which the first passkey commit dropped from PLUGINS.md.
* fix(examples): resolve node polyfill shims for the linked library build
vite-plugin-node-polyfills injects its shim imports into every module,
including the workspace-linked packages/*/dist files. Those can't resolve
vite-plugin-node-polyfills, so `pnpm build:examples` failed for the react,
react-css-only, react-custom, react-web3auth and vue examples. CI doesn't
build the examples, so this went unnoticed.
Alias the three shims to their ESM files, resolved from each example. All
polyfills stay on (Web3Auth still gets its `process` global), and the
passkey examples drop their Buffer-only workaround for the same fix.
* feat(passkey): add a passkeyLayout option with a list layout
Connect dialogs can now present the passkey wallet two ways:
- 'featured' (default): the existing "Continue with passkey" button and
"Create a passkey" link, with the other wallets below
- 'list': "Sign in with passkey" and "Create a passkey" rows in a Passkey
group above a Wallets group, for apps where most users bring a wallet
Set it app-wide with `passkeyLayout` on WalletUIProvider, or per menu on
WalletButton or ConnectWalletMenu; the menu prop wins, and the default is
'featured'. PasskeyConnect takes a `layout` prop so custom menus get both,
and PasskeyConnectLayout is exported. The wallet icon tile moves into a
shared WalletIcon component.
The passkey examples get a Featured / List selector (or ?layout=list),
and e2e covers the list layout's rows, create and sign-in, the error
hint, and switching layouts through the provider.
* feat(passkey): default passkeyLayout to 'list'
The connect dialog now shows the passkey wallet as "Sign in with
passkey" and "Create a passkey" rows in a Passkey group above the other
wallets. `passkeyLayout: 'featured'` keeps the "Continue with passkey"
layout. PasskeyConnect defaults to 'list' as well.
The dialog now passes `layout="featured"` to PasskeyConnect explicitly
instead of relying on its default, which had shown the list rows for
'featured' once the default changed. The passkey examples start in the
list layout (?layout=featured opens the other), and the e2e suites set
their layout explicitly.
* feat(passkey): show the pending passkey action and add a backup reminder
While a passkey prompt is open, the control the user pressed shows a
spinner and "Waiting for your passkey…" at full strength, and the other
control dims. Both layouts do this; the status line is now for screen
readers only. PasskeyConnectStatus gains an optional `action`
('sign-in' | 'create') to tell them apart.
The plugin's recovery item is now "Back up account" with a numbered-list
icon, tagged "Not backed up" until the phrase has been revealed once for
the account (remembered per address in localStorage, with an in-memory
fallback). `recoveryPhrase: { backupReminder: false }` turns the tag off.
The per-address storage for the disclosure and this flag now share one
helper (storage.ts).
The passkey e2e fixture can turn off presence simulation to hold a prompt
open, so the pending state is tested in both layouts. The examples' intro
copy now matches the list default.
* refactor(passkey): remove the "Not backed up" tag
The tag could only record that the recovery phrase had been shown, not
that the user backed it up, so it claimed more than the app can know.
Drop it along with the `recoveryPhrase.backupReminder` option and its
per-address storage flag. The menu item keeps its "Back up account"
label.
* style(passkey): use a plain shield icon for Back up account
A solid shield (Heroicons shield-check without the check) reads as a
protective step without implying the backup is already done. A key
would read as passkey sign-in.
c2734e7a
main
98/5,548 ++ 161 --
style(passkey): use a plain shield icon for Back up account
A solid shield (Heroicons shield-check without the check) reads as a protective step without implying the backup is already done. A key would read as passkey sign-in.
f8398d4d
feat/passkey
2/10 ++ 6 --
refactor(passkey): remove the "Not backed up" tag
The tag could only record that the recovery phrase had been shown, not that the user backed it up, so it claimed more than the app can know. Drop it along with the `recoveryPhrase.backupReminder` option and its per-address storage flag. The menu item keeps its "Back up account" label.
94e551ed
feat/passkey
14/28 ++ 193 --
feat(passkey): show the pending passkey action and add a backup reminder
While a passkey prompt is open, the control the user pressed shows a
spinner and "Waiting for your passkey…" at full strength, and the other
control dims. Both layouts do this; the status line is now for screen
readers only. PasskeyConnectStatus gains an optional `action`
('sign-in' | 'create') to tell them apart.
The plugin's recovery item is now "Back up account" with a numbered-list
icon, tagged "Not backed up" until the phrase has been revealed once for
the account (remembered per address in localStorage, with an in-memory
fallback). `recoveryPhrase: { backupReminder: false }` turns the tag off.
The per-address storage for the disclosure and this flag now share one
helper (storage.ts).
The passkey e2e fixture can turn off presence simulation to hold a prompt
open, so the pending state is tested in both layouts. The examples' intro
copy now matches the list default.
6aff481c
feat/passkey
28/562 ++ 173 --
feat(passkey): default passkeyLayout to 'list'
The connect dialog now shows the passkey wallet as "Sign in with passkey" and "Create a passkey" rows in a Passkey group above the other wallets. `passkeyLayout: 'featured'` keeps the "Continue with passkey" layout. PasskeyConnect defaults to 'list' as well. The dialog now passes `layout="featured"` to PasskeyConnect explicitly instead of relying on its default, which had shown the list rows for 'featured' once the default changed. The passkey examples start in the list layout (?layout=featured opens the other), and the e2e suites set their layout explicitly.
ebb98f4b
feat/passkey
20/76 ++ 68 --
Fill missing PNG sizes for published icons
fb703998
master
25/0 ++ 0 --
feat(passkey): add a passkeyLayout option with a list layout
Connect dialogs can now present the passkey wallet two ways: - 'featured' (default): the existing "Continue with passkey" button and "Create a passkey" link, with the other wallets below - 'list': "Sign in with passkey" and "Create a passkey" rows in a Passkey group above a Wallets group, for apps where most users bring a wallet Set it app-wide with `passkeyLayout` on WalletUIProvider, or per menu on WalletButton or ConnectWalletMenu; the menu prop wins, and the default is 'featured'. PasskeyConnect takes a `layout` prop so custom menus get both, and PasskeyConnectLayout is exported. The wallet icon tile moves into a shared WalletIcon component. The passkey examples get a Featured / List selector (or ?layout=list), and e2e covers the list layout's rows, create and sign-in, the error hint, and switching layouts through the provider.
35cfa8b6
feat/passkey
29/722 ++ 120 --
Add November 2026 cryptocurrency icons
a7025185
master
300/1 ++ 1 --
Merge 26e335206ffe062d3a68eddf484cb3a04c7f4626 into 5820c2f98fb16ff6c51cdc51b0576d760514901d
e245af10
pull/476/merge
14/1,231 ++ 698 --
chore(deps): update non-major dependencies
26e33520
renovate/non-major-dependencies
14/1,231 ++ 698 --
fix(examples): resolve node polyfill shims for the linked library build
vite-plugin-node-polyfills injects its shim imports into every module, including the workspace-linked packages/*/dist files. Those can't resolve vite-plugin-node-polyfills, so `pnpm build:examples` failed for the react, react-css-only, react-custom, react-web3auth and vue examples. CI doesn't build the examples, so this went unnoticed. Alias the three shims to their ESM files, resolved from each example. All polyfills stay on (Web3Auth still gets its `process` global), and the passkey examples drop their Buffer-only workaround for the same fix.
43851645
feat/passkey
7/119 ++ 8 --
feat(passkey): passkey-first connect dialog and show-once disclosure
The connect dialog now leads with the passkey wallet: a full-width "Continue with passkey" button signs in, and a "New here? Create a passkey" link creates one. The other wallets follow under an "or connect a wallet" divider. WalletList no longer renders the passkey wallet; the section is exported as PasskeyConnect for custom connect menus. The connected menu tags a passkey account with its domain. The plugin's disclosure is now off by default; with `disclosure: true` it shows until the user chooses "Got it", remembered per address in localStorage (with an in-memory fallback when storage is unavailable). Export Recovery Phrase uses a document icon, since a key now means passkey sign-in. Also restore the passkey plugin's Requirements and Subpath Import docs, which the first passkey commit dropped from PLUGINS.md.
840abd63
feat/passkey
32/836 ++ 338 --
Merge 51cadd6f566da4a27615b4437760cd898f31ab43 into 5820c2f98fb16ff6c51cdc51b0576d760514901d
470a06db
pull/476/merge
14/1,221 ++ 688 --
chore(deps): update non-major dependencies
51cadd6f
renovate/non-major-dependencies
14/1,221 ++ 688 --