payload-auth 1.5.0 → 1.6.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.
Files changed (52) hide show
  1. package/dist/better-auth/plugin/lib/build-collections/index.d.ts.map +1 -1
  2. package/dist/better-auth/plugin/lib/build-collections/index.js +3 -1
  3. package/dist/better-auth/plugin/lib/build-collections/passkeys.d.ts +1 -1
  4. package/dist/better-auth/plugin/lib/build-collections/passkeys.d.ts.map +1 -1
  5. package/dist/better-auth/plugin/lib/build-collections/passkeys.js +16 -3
  6. package/dist/better-auth/plugin/lib/build-collections/users/endpoints/index.d.ts +0 -1
  7. package/dist/better-auth/plugin/lib/build-collections/users/endpoints/index.d.ts.map +1 -1
  8. package/dist/better-auth/plugin/lib/build-collections/users/endpoints/index.js +1 -2
  9. package/dist/better-auth/plugin/lib/build-collections/users/index.d.ts +1 -1
  10. package/dist/better-auth/plugin/lib/build-collections/users/index.d.ts.map +1 -1
  11. package/dist/better-auth/plugin/lib/build-collections/users/index.js +32 -10
  12. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/index.d.ts.map +1 -1
  13. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/index.js +11 -3
  14. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/utils/use-admin-invite-after-email-sign-up-middleware.d.ts +10 -0
  15. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/utils/use-admin-invite-after-email-sign-up-middleware.d.ts.map +1 -0
  16. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/utils/use-admin-invite-after-email-sign-up-middleware.js +62 -0
  17. package/dist/better-auth/plugin/payload/components/passkeys/add-button.d.ts +7 -0
  18. package/dist/better-auth/plugin/payload/components/passkeys/add-button.d.ts.map +1 -0
  19. package/dist/better-auth/plugin/payload/components/passkeys/add-button.js +120 -0
  20. package/dist/better-auth/plugin/payload/components/passkeys/client.d.ts +4 -0
  21. package/dist/better-auth/plugin/payload/components/passkeys/client.d.ts.map +1 -0
  22. package/dist/better-auth/plugin/payload/components/passkeys/client.js +59 -0
  23. package/dist/better-auth/plugin/payload/components/passkeys/index.d.ts +5 -0
  24. package/dist/better-auth/plugin/payload/components/passkeys/index.d.ts.map +1 -0
  25. package/dist/better-auth/plugin/payload/components/passkeys/index.js +40 -0
  26. package/dist/better-auth/plugin/payload/components/passkeys/index.scss +91 -0
  27. package/dist/better-auth/plugin/payload/components/passkeys/list.d.ts +9 -0
  28. package/dist/better-auth/plugin/payload/components/passkeys/list.d.ts.map +1 -0
  29. package/dist/better-auth/plugin/payload/components/passkeys/list.js +57 -0
  30. package/dist/better-auth/plugin/payload/components/passkeys/types.d.ts +20 -0
  31. package/dist/better-auth/plugin/payload/components/passkeys/types.d.ts.map +1 -0
  32. package/dist/better-auth/plugin/payload/components/passkeys/types.js +3 -0
  33. package/dist/better-auth/plugin/payload/exports/rsc.d.ts +2 -1
  34. package/dist/better-auth/plugin/payload/exports/rsc.d.ts.map +1 -1
  35. package/dist/better-auth/plugin/payload/exports/rsc.js +3 -2
  36. package/dist/better-auth/plugin/payload/views/admin-login/client.d.ts +1 -0
  37. package/dist/better-auth/plugin/payload/views/admin-login/client.d.ts.map +1 -1
  38. package/dist/better-auth/plugin/payload/views/admin-login/client.js +11 -7
  39. package/dist/better-auth/plugin/payload/views/admin-login/index.d.ts.map +1 -1
  40. package/dist/better-auth/plugin/payload/views/admin-login/index.js +3 -1
  41. package/dist/better-auth/plugin/payload/views/admin-signup/client.d.ts.map +1 -1
  42. package/dist/better-auth/plugin/payload/views/admin-signup/client.js +29 -28
  43. package/dist/better-auth/plugin/types.d.ts +2 -0
  44. package/dist/better-auth/plugin/types.d.ts.map +1 -1
  45. package/dist/better-auth/plugin/types.js +1 -1
  46. package/dist/shared/form/validation.d.ts +1 -3
  47. package/dist/shared/form/validation.d.ts.map +1 -1
  48. package/dist/shared/form/validation.js +3 -3
  49. package/package.json +1 -1
  50. package/dist/better-auth/plugin/lib/build-collections/users/endpoints/signup.d.ts +0 -4
  51. package/dist/better-auth/plugin/lib/build-collections/users/endpoints/signup.d.ts.map +0 -1
  52. package/dist/better-auth/plugin/lib/build-collections/users/endpoints/signup.js +0 -157
@@ -0,0 +1,7 @@
1
+ import React from 'react';
2
+ interface PassKeyAddButtonProps {
3
+ onAdd?: () => void;
4
+ }
5
+ export declare const PassKeyAddButton: React.FC<PassKeyAddButtonProps>;
6
+ export {};
7
+ //# sourceMappingURL=add-button.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"add-button.d.ts","sourceRoot":"","sources":["../../../../../../src/better-auth/plugin/payload/components/passkeys/add-button.tsx"],"names":[],"mappings":"AAEA,OAAO,KAA4B,MAAM,OAAO,CAAA;AAWhD,UAAU,qBAAqB;IAC7B,KAAK,CAAC,EAAE,MAAM,IAAI,CAAA;CACnB;AAED,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC,qBAAqB,CAuE5D,CAAA"}
@@ -0,0 +1,120 @@
1
+ 'use client';
2
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
3
+ import React, { useMemo, useState } from "react";
4
+ import { useAppForm } from "../../../../../shared/form";
5
+ import { Form, FormInputWrap } from "../../../../../shared/form/ui";
6
+ import { Button, Modal, toast, useModal } from "@payloadcms/ui";
7
+ import { passkeyClient } from "better-auth/client/plugins";
8
+ import { createAuthClient } from "better-auth/react";
9
+ import { XIcon } from "lucide-react";
10
+ import { z } from "zod";
11
+ const baseClass = 'passkeys-modal';
12
+ export const PassKeyAddButton = ({ onAdd })=>{
13
+ const { openModal, closeModal } = useModal();
14
+ const authClient = useMemo(()=>createAuthClient({
15
+ plugins: [
16
+ passkeyClient()
17
+ ]
18
+ }), []);
19
+ const AddPasskeyForm = ()=>{
20
+ const [isLoading, setIsLoading] = useState(false);
21
+ const nameSchema = z.object({
22
+ name: z.string().min(1, 'Name is required')
23
+ });
24
+ const form = useAppForm({
25
+ defaultValues: {
26
+ name: ''
27
+ },
28
+ onSubmit: async ({ value })=>{
29
+ setIsLoading(true);
30
+ const res = await authClient.passkey.addPasskey({
31
+ name: value.name
32
+ });
33
+ setIsLoading(false);
34
+ if (res?.error) {
35
+ toast.error(res.error.message);
36
+ return;
37
+ }
38
+ toast.success('Passkey added successfully');
39
+ closeModal('passkeys-modal');
40
+ if (typeof onAdd === 'function') onAdd();
41
+ },
42
+ validators: {
43
+ onSubmit: nameSchema
44
+ }
45
+ });
46
+ return /*#__PURE__*/ _jsxs(Form, {
47
+ onSubmit: (e)=>{
48
+ e.preventDefault();
49
+ void form.handleSubmit();
50
+ },
51
+ className: "passkeys-add-form",
52
+ children: [
53
+ /*#__PURE__*/ _jsx(FormInputWrap, {
54
+ className: "passkeys-add-form__inputWrap",
55
+ children: /*#__PURE__*/ _jsx(form.AppField, {
56
+ name: "name",
57
+ children: (field)=>/*#__PURE__*/ _jsx(field.TextField, {
58
+ type: "text",
59
+ className: "text name",
60
+ label: "Passkey Name",
61
+ required: true
62
+ })
63
+ })
64
+ }),
65
+ /*#__PURE__*/ _jsx(form.AppForm, {
66
+ children: /*#__PURE__*/ _jsx(form.Submit, {
67
+ label: "Create Passkey",
68
+ loadingLabel: "Creating"
69
+ })
70
+ })
71
+ ]
72
+ });
73
+ };
74
+ return /*#__PURE__*/ _jsxs(_Fragment, {
75
+ children: [
76
+ /*#__PURE__*/ _jsx(Button, {
77
+ onClick: ()=>openModal('passkeys-modal'),
78
+ size: "medium",
79
+ buttonStyle: "pill",
80
+ children: "Add Passkey"
81
+ }),
82
+ /*#__PURE__*/ _jsx(Modal, {
83
+ slug: "passkeys-modal",
84
+ className: baseClass,
85
+ closeOnBlur: true,
86
+ children: /*#__PURE__*/ _jsxs("div", {
87
+ className: `${baseClass}__wrapper`,
88
+ children: [
89
+ /*#__PURE__*/ _jsx(Button, {
90
+ onClick: ()=>closeModal('passkeys-modal'),
91
+ buttonStyle: "icon-label",
92
+ size: "small",
93
+ className: `${baseClass}__close-button`,
94
+ children: /*#__PURE__*/ _jsx(XIcon, {
95
+ size: 24
96
+ })
97
+ }),
98
+ /*#__PURE__*/ _jsxs("div", {
99
+ className: `${baseClass}__content`,
100
+ style: {
101
+ maxWidth: '30rem'
102
+ },
103
+ children: [
104
+ /*#__PURE__*/ _jsx("h2", {
105
+ children: "Create New Passkey"
106
+ }),
107
+ /*#__PURE__*/ _jsx("p", {
108
+ children: "Securely access your account without a password by creating a new passkey."
109
+ }),
110
+ /*#__PURE__*/ _jsx(AddPasskeyForm, {})
111
+ ]
112
+ })
113
+ ]
114
+ })
115
+ })
116
+ ]
117
+ });
118
+ };
119
+
120
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9iZXR0ZXItYXV0aC9wbHVnaW4vcGF5bG9hZC9jb21wb25lbnRzL3Bhc3NrZXlzL2FkZC1idXR0b24udHN4Il0sInNvdXJjZXNDb250ZW50IjpbIid1c2UgY2xpZW50J1xuXG5pbXBvcnQgUmVhY3QsIHsgdXNlTWVtbywgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCdcbmltcG9ydCB7IHVzZUFwcEZvcm0gfSBmcm9tICdAL3NoYXJlZC9mb3JtJ1xuaW1wb3J0IHsgRm9ybSwgRm9ybUlucHV0V3JhcCB9IGZyb20gJ0Avc2hhcmVkL2Zvcm0vdWknXG5pbXBvcnQgeyBCdXR0b24sIE1vZGFsLCB0b2FzdCwgdXNlTW9kYWwgfSBmcm9tICdAcGF5bG9hZGNtcy91aSdcbmltcG9ydCB7IHBhc3NrZXlDbGllbnQgfSBmcm9tICdiZXR0ZXItYXV0aC9jbGllbnQvcGx1Z2lucydcbmltcG9ydCB7IGNyZWF0ZUF1dGhDbGllbnQgfSBmcm9tICdiZXR0ZXItYXV0aC9yZWFjdCdcbmltcG9ydCB7IFhJY29uIH0gZnJvbSAnbHVjaWRlLXJlYWN0J1xuaW1wb3J0IHsgeiB9IGZyb20gJ3pvZCdcblxuY29uc3QgYmFzZUNsYXNzID0gJ3Bhc3NrZXlzLW1vZGFsJ1xuXG5pbnRlcmZhY2UgUGFzc0tleUFkZEJ1dHRvblByb3BzIHtcbiAgb25BZGQ/OiAoKSA9PiB2b2lkXG59XG5cbmV4cG9ydCBjb25zdCBQYXNzS2V5QWRkQnV0dG9uOiBSZWFjdC5GQzxQYXNzS2V5QWRkQnV0dG9uUHJvcHM+ID0gKHsgb25BZGQgfSkgPT4ge1xuICBjb25zdCB7IG9wZW5Nb2RhbCwgY2xvc2VNb2RhbCB9ID0gdXNlTW9kYWwoKVxuICBjb25zdCBhdXRoQ2xpZW50ID0gdXNlTWVtbygoKSA9PiBjcmVhdGVBdXRoQ2xpZW50KHsgcGx1Z2luczogW3Bhc3NrZXlDbGllbnQoKV0gfSksIFtdKVxuXG4gIGNvbnN0IEFkZFBhc3NrZXlGb3JtOiBSZWFjdC5GQyA9ICgpID0+IHtcbiAgICBjb25zdCBbaXNMb2FkaW5nLCBzZXRJc0xvYWRpbmddID0gdXNlU3RhdGUoZmFsc2UpXG4gICAgY29uc3QgbmFtZVNjaGVtYSA9IHoub2JqZWN0KHtcbiAgICAgIG5hbWU6IHouc3RyaW5nKCkubWluKDEsICdOYW1lIGlzIHJlcXVpcmVkJylcbiAgICB9KVxuXG4gICAgY29uc3QgZm9ybSA9IHVzZUFwcEZvcm0oe1xuICAgICAgZGVmYXVsdFZhbHVlczogeyBuYW1lOiAnJyB9LFxuICAgICAgb25TdWJtaXQ6IGFzeW5jICh7IHZhbHVlIH0pID0+IHtcbiAgICAgICAgc2V0SXNMb2FkaW5nKHRydWUpXG4gICAgICAgIGNvbnN0IHJlcyA9IGF3YWl0IGF1dGhDbGllbnQucGFzc2tleS5hZGRQYXNza2V5KHsgbmFtZTogdmFsdWUubmFtZSB9KVxuICAgICAgICBzZXRJc0xvYWRpbmcoZmFsc2UpXG4gICAgICAgIGlmIChyZXM/LmVycm9yKSB7XG4gICAgICAgICAgdG9hc3QuZXJyb3IocmVzLmVycm9yLm1lc3NhZ2UpXG4gICAgICAgICAgcmV0dXJuXG4gICAgICAgIH1cbiAgICAgICAgdG9hc3Quc3VjY2VzcygnUGFzc2tleSBhZGRlZCBzdWNjZXNzZnVsbHknKVxuICAgICAgICBjbG9zZU1vZGFsKCdwYXNza2V5cy1tb2RhbCcpXG4gICAgICAgIGlmICh0eXBlb2Ygb25BZGQgPT09ICdmdW5jdGlvbicpIG9uQWRkKClcbiAgICAgIH0sXG4gICAgICB2YWxpZGF0b3JzOiB7IFxuICAgICAgICBvblN1Ym1pdDogbmFtZVNjaGVtYVxuICAgICAgfVxuICAgIH0pXG5cbiAgICByZXR1cm4gKFxuICAgICAgPEZvcm1cbiAgICAgICAgb25TdWJtaXQ9eyhlKSA9PiB7XG4gICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICAgICAgdm9pZCBmb3JtLmhhbmRsZVN1Ym1pdCgpXG4gICAgICAgIH19XG4gICAgICAgIGNsYXNzTmFtZT1cInBhc3NrZXlzLWFkZC1mb3JtXCI+XG4gICAgICAgIDxGb3JtSW5wdXRXcmFwIGNsYXNzTmFtZT1cInBhc3NrZXlzLWFkZC1mb3JtX19pbnB1dFdyYXBcIj5cbiAgICAgICAgICA8Zm9ybS5BcHBGaWVsZCBuYW1lPVwibmFtZVwiPlxuICAgICAgICAgICAgeyhmaWVsZDogYW55KSA9PiA8ZmllbGQuVGV4dEZpZWxkIHR5cGU9XCJ0ZXh0XCIgY2xhc3NOYW1lPVwidGV4dCBuYW1lXCIgbGFiZWw9XCJQYXNza2V5IE5hbWVcIiByZXF1aXJlZCAvPn1cbiAgICAgICAgICA8L2Zvcm0uQXBwRmllbGQ+XG4gICAgICAgIDwvRm9ybUlucHV0V3JhcD5cbiAgICAgICAgPGZvcm0uQXBwRm9ybT5cbiAgICAgICAgICA8Zm9ybS5TdWJtaXQgbGFiZWw9XCJDcmVhdGUgUGFzc2tleVwiIGxvYWRpbmdMYWJlbD1cIkNyZWF0aW5nXCIgLz5cbiAgICAgICAgPC9mb3JtLkFwcEZvcm0+XG4gICAgICA8L0Zvcm0+XG4gICAgKVxuICB9XG5cbiAgcmV0dXJuIChcbiAgICA8PlxuICAgICAgPEJ1dHRvbiBvbkNsaWNrPXsoKSA9PiBvcGVuTW9kYWwoJ3Bhc3NrZXlzLW1vZGFsJyl9IHNpemU9XCJtZWRpdW1cIiBidXR0b25TdHlsZT1cInBpbGxcIj5cbiAgICAgICAgQWRkIFBhc3NrZXlcbiAgICAgIDwvQnV0dG9uPlxuICAgICAgPE1vZGFsIHNsdWc9XCJwYXNza2V5cy1tb2RhbFwiIGNsYXNzTmFtZT17YmFzZUNsYXNzfSBjbG9zZU9uQmx1cj5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9e2Ake2Jhc2VDbGFzc31fX3dyYXBwZXJgfT5cbiAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBjbG9zZU1vZGFsKCdwYXNza2V5cy1tb2RhbCcpfVxuICAgICAgICAgICAgYnV0dG9uU3R5bGU9XCJpY29uLWxhYmVsXCJcbiAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICBjbGFzc05hbWU9e2Ake2Jhc2VDbGFzc31fX2Nsb3NlLWJ1dHRvbmB9PlxuICAgICAgICAgICAgPFhJY29uIHNpemU9ezI0fSAvPlxuICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtgJHtiYXNlQ2xhc3N9X19jb250ZW50YH0gc3R5bGU9e3sgbWF4V2lkdGg6ICczMHJlbScgfX0+XG4gICAgICAgICAgICA8aDI+Q3JlYXRlIE5ldyBQYXNza2V5PC9oMj5cbiAgICAgICAgICAgIDxwPlNlY3VyZWx5IGFjY2VzcyB5b3VyIGFjY291bnQgd2l0aG91dCBhIHBhc3N3b3JkIGJ5IGNyZWF0aW5nIGEgbmV3IHBhc3NrZXkuPC9wPlxuICAgICAgICAgICAgPEFkZFBhc3NrZXlGb3JtIC8+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9Nb2RhbD5cbiAgICA8Lz5cbiAgKVxufVxuIl0sIm5hbWVzIjpbIlJlYWN0IiwidXNlTWVtbyIsInVzZVN0YXRlIiwidXNlQXBwRm9ybSIsIkZvcm0iLCJGb3JtSW5wdXRXcmFwIiwiQnV0dG9uIiwiTW9kYWwiLCJ0b2FzdCIsInVzZU1vZGFsIiwicGFzc2tleUNsaWVudCIsImNyZWF0ZUF1dGhDbGllbnQiLCJYSWNvbiIsInoiLCJiYXNlQ2xhc3MiLCJQYXNzS2V5QWRkQnV0dG9uIiwib25BZGQiLCJvcGVuTW9kYWwiLCJjbG9zZU1vZGFsIiwiYXV0aENsaWVudCIsInBsdWdpbnMiLCJBZGRQYXNza2V5Rm9ybSIsImlzTG9hZGluZyIsInNldElzTG9hZGluZyIsIm5hbWVTY2hlbWEiLCJvYmplY3QiLCJuYW1lIiwic3RyaW5nIiwibWluIiwiZm9ybSIsImRlZmF1bHRWYWx1ZXMiLCJvblN1Ym1pdCIsInZhbHVlIiwicmVzIiwicGFzc2tleSIsImFkZFBhc3NrZXkiLCJlcnJvciIsIm1lc3NhZ2UiLCJzdWNjZXNzIiwidmFsaWRhdG9ycyIsImUiLCJwcmV2ZW50RGVmYXVsdCIsImhhbmRsZVN1Ym1pdCIsImNsYXNzTmFtZSIsIkFwcEZpZWxkIiwiZmllbGQiLCJUZXh0RmllbGQiLCJ0eXBlIiwibGFiZWwiLCJyZXF1aXJlZCIsIkFwcEZvcm0iLCJTdWJtaXQiLCJsb2FkaW5nTGFiZWwiLCJvbkNsaWNrIiwic2l6ZSIsImJ1dHRvblN0eWxlIiwic2x1ZyIsImNsb3NlT25CbHVyIiwiZGl2Iiwic3R5bGUiLCJtYXhXaWR0aCIsImgyIiwicCJdLCJtYXBwaW5ncyI6IkFBQUE7O0FBRUEsT0FBT0EsU0FBU0MsT0FBTyxFQUFFQyxRQUFRLFFBQVEsUUFBTztBQUNoRCxTQUFTQyxVQUFVLFFBQVEsNkJBQWU7QUFDMUMsU0FBU0MsSUFBSSxFQUFFQyxhQUFhLFFBQVEsZ0NBQWtCO0FBQ3RELFNBQVNDLE1BQU0sRUFBRUMsS0FBSyxFQUFFQyxLQUFLLEVBQUVDLFFBQVEsUUFBUSxpQkFBZ0I7QUFDL0QsU0FBU0MsYUFBYSxRQUFRLDZCQUE0QjtBQUMxRCxTQUFTQyxnQkFBZ0IsUUFBUSxvQkFBbUI7QUFDcEQsU0FBU0MsS0FBSyxRQUFRLGVBQWM7QUFDcEMsU0FBU0MsQ0FBQyxRQUFRLE1BQUs7QUFFdkIsTUFBTUMsWUFBWTtBQU1sQixPQUFPLE1BQU1DLG1CQUFvRCxDQUFDLEVBQUVDLEtBQUssRUFBRTtJQUN6RSxNQUFNLEVBQUVDLFNBQVMsRUFBRUMsVUFBVSxFQUFFLEdBQUdUO0lBQ2xDLE1BQU1VLGFBQWFsQixRQUFRLElBQU1VLGlCQUFpQjtZQUFFUyxTQUFTO2dCQUFDVjthQUFnQjtRQUFDLElBQUksRUFBRTtJQUVyRixNQUFNVyxpQkFBMkI7UUFDL0IsTUFBTSxDQUFDQyxXQUFXQyxhQUFhLEdBQUdyQixTQUFTO1FBQzNDLE1BQU1zQixhQUFhWCxFQUFFWSxNQUFNLENBQUM7WUFDMUJDLE1BQU1iLEVBQUVjLE1BQU0sR0FBR0MsR0FBRyxDQUFDLEdBQUc7UUFDMUI7UUFFQSxNQUFNQyxPQUFPMUIsV0FBVztZQUN0QjJCLGVBQWU7Z0JBQUVKLE1BQU07WUFBRztZQUMxQkssVUFBVSxPQUFPLEVBQUVDLEtBQUssRUFBRTtnQkFDeEJULGFBQWE7Z0JBQ2IsTUFBTVUsTUFBTSxNQUFNZCxXQUFXZSxPQUFPLENBQUNDLFVBQVUsQ0FBQztvQkFBRVQsTUFBTU0sTUFBTU4sSUFBSTtnQkFBQztnQkFDbkVILGFBQWE7Z0JBQ2IsSUFBSVUsS0FBS0csT0FBTztvQkFDZDVCLE1BQU00QixLQUFLLENBQUNILElBQUlHLEtBQUssQ0FBQ0MsT0FBTztvQkFDN0I7Z0JBQ0Y7Z0JBQ0E3QixNQUFNOEIsT0FBTyxDQUFDO2dCQUNkcEIsV0FBVztnQkFDWCxJQUFJLE9BQU9GLFVBQVUsWUFBWUE7WUFDbkM7WUFDQXVCLFlBQVk7Z0JBQ1ZSLFVBQVVQO1lBQ1o7UUFDRjtRQUVBLHFCQUNFLE1BQUNwQjtZQUNDMkIsVUFBVSxDQUFDUztnQkFDVEEsRUFBRUMsY0FBYztnQkFDaEIsS0FBS1osS0FBS2EsWUFBWTtZQUN4QjtZQUNBQyxXQUFVOzs4QkFDVixLQUFDdEM7b0JBQWNzQyxXQUFVOzhCQUN2QixjQUFBLEtBQUNkLEtBQUtlLFFBQVE7d0JBQUNsQixNQUFLO2tDQUNqQixDQUFDbUIsc0JBQWUsS0FBQ0EsTUFBTUMsU0FBUztnQ0FBQ0MsTUFBSztnQ0FBT0osV0FBVTtnQ0FBWUssT0FBTTtnQ0FBZUMsUUFBUTs7Ozs4QkFHckcsS0FBQ3BCLEtBQUtxQixPQUFPOzhCQUNYLGNBQUEsS0FBQ3JCLEtBQUtzQixNQUFNO3dCQUFDSCxPQUFNO3dCQUFpQkksY0FBYTs7Ozs7SUFJekQ7SUFFQSxxQkFDRTs7MEJBQ0UsS0FBQzlDO2dCQUFPK0MsU0FBUyxJQUFNcEMsVUFBVTtnQkFBbUJxQyxNQUFLO2dCQUFTQyxhQUFZOzBCQUFPOzswQkFHckYsS0FBQ2hEO2dCQUFNaUQsTUFBSztnQkFBaUJiLFdBQVc3QjtnQkFBVzJDLFdBQVc7MEJBQzVELGNBQUEsTUFBQ0M7b0JBQUlmLFdBQVcsR0FBRzdCLFVBQVUsU0FBUyxDQUFDOztzQ0FDckMsS0FBQ1I7NEJBQ0MrQyxTQUFTLElBQU1uQyxXQUFXOzRCQUMxQnFDLGFBQVk7NEJBQ1pELE1BQUs7NEJBQ0xYLFdBQVcsR0FBRzdCLFVBQVUsY0FBYyxDQUFDO3NDQUN2QyxjQUFBLEtBQUNGO2dDQUFNMEMsTUFBTTs7O3NDQUVmLE1BQUNJOzRCQUFJZixXQUFXLEdBQUc3QixVQUFVLFNBQVMsQ0FBQzs0QkFBRTZDLE9BQU87Z0NBQUVDLFVBQVU7NEJBQVE7OzhDQUNsRSxLQUFDQzs4Q0FBRzs7OENBQ0osS0FBQ0M7OENBQUU7OzhDQUNILEtBQUN6Qzs7Ozs7Ozs7QUFNYixFQUFDIn0=
@@ -0,0 +1,4 @@
1
+ import React from 'react';
2
+ import type { PasskeysClientComponentProps } from './types';
3
+ export declare const PasskeysClient: React.FC<PasskeysClientComponentProps>;
4
+ //# sourceMappingURL=client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../../../../src/better-auth/plugin/payload/components/passkeys/client.tsx"],"names":[],"mappings":"AAEA,OAAO,KAA2C,MAAM,OAAO,CAAA;AAE/D,OAAO,KAAK,EAAE,4BAA4B,EAAiB,MAAM,SAAS,CAAA;AAI1E,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,4BAA4B,CA2CjE,CAAA"}
@@ -0,0 +1,59 @@
1
+ 'use client';
2
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
3
+ import React, { useState, useEffect, useCallback } from "react";
4
+ import { useConfig } from "@payloadcms/ui";
5
+ import { PasskeyList } from "./list";
6
+ import { PassKeyAddButton } from "./add-button";
7
+ export const PasskeysClient = ({ initialPasskeys, documentId, currentUserId, passkeySlug, passkeyUserIdFieldName })=>{
8
+ const { config: { routes: { api: apiRoute } } } = useConfig();
9
+ const [passkeys, setPasskeys] = useState(initialPasskeys);
10
+ const fetchPasskeys = useCallback(async ()=>{
11
+ const url = `${apiRoute}/${passkeySlug}?where[${passkeyUserIdFieldName}][equals]=${documentId}`;
12
+ const res = await fetch(url, {
13
+ credentials: 'include'
14
+ });
15
+ if (!res.ok) return;
16
+ const data = await res.json();
17
+ setPasskeys(data.docs);
18
+ }, [
19
+ apiRoute,
20
+ passkeySlug,
21
+ passkeyUserIdFieldName,
22
+ documentId
23
+ ]);
24
+ useEffect(()=>{
25
+ void fetchPasskeys();
26
+ }, [
27
+ fetchPasskeys
28
+ ]);
29
+ const handleDelete = useCallback(async (id)=>{
30
+ const res = await fetch(`${apiRoute}/${passkeySlug}/${id}`, {
31
+ method: 'DELETE',
32
+ credentials: 'include'
33
+ });
34
+ if (!res.ok) return;
35
+ void fetchPasskeys();
36
+ }, [
37
+ apiRoute,
38
+ passkeySlug,
39
+ fetchPasskeys
40
+ ]);
41
+ const handleAdd = useCallback(()=>{
42
+ void fetchPasskeys();
43
+ }, [
44
+ fetchPasskeys
45
+ ]);
46
+ return /*#__PURE__*/ _jsxs(_Fragment, {
47
+ children: [
48
+ /*#__PURE__*/ _jsx(PasskeyList, {
49
+ passkeys: passkeys,
50
+ onDelete: handleDelete
51
+ }),
52
+ currentUserId === documentId && /*#__PURE__*/ _jsx(PassKeyAddButton, {
53
+ onAdd: handleAdd
54
+ })
55
+ ]
56
+ });
57
+ };
58
+
59
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9iZXR0ZXItYXV0aC9wbHVnaW4vcGF5bG9hZC9jb21wb25lbnRzL3Bhc3NrZXlzL2NsaWVudC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBjbGllbnQnXG5cbmltcG9ydCBSZWFjdCwgeyB1c2VTdGF0ZSwgdXNlRWZmZWN0LCB1c2VDYWxsYmFjayB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgdXNlQ29uZmlnIH0gZnJvbSAnQHBheWxvYWRjbXMvdWknXG5pbXBvcnQgdHlwZSB7IFBhc3NrZXlzQ2xpZW50Q29tcG9uZW50UHJvcHMsIFBhc3NrZXlXaXRoSWQgfSBmcm9tICcuL3R5cGVzJ1xuaW1wb3J0IHsgUGFzc2tleUxpc3QgfSBmcm9tICcuL2xpc3QnXG5pbXBvcnQgeyBQYXNzS2V5QWRkQnV0dG9uIH0gZnJvbSAnLi9hZGQtYnV0dG9uJ1xuXG5leHBvcnQgY29uc3QgUGFzc2tleXNDbGllbnQ6IFJlYWN0LkZDPFBhc3NrZXlzQ2xpZW50Q29tcG9uZW50UHJvcHM+ID0gKHtcbiAgaW5pdGlhbFBhc3NrZXlzLFxuICBkb2N1bWVudElkLFxuICBjdXJyZW50VXNlcklkLFxuICBwYXNza2V5U2x1ZyxcbiAgcGFzc2tleVVzZXJJZEZpZWxkTmFtZVxufSkgPT4ge1xuICBjb25zdCB7XG4gICAgY29uZmlnOiB7XG4gICAgICByb3V0ZXM6IHsgYXBpOiBhcGlSb3V0ZSB9XG4gICAgfVxuICB9ID0gdXNlQ29uZmlnKClcblxuICBjb25zdCBbcGFzc2tleXMsIHNldFBhc3NrZXlzXSA9IHVzZVN0YXRlPFBhc3NrZXlXaXRoSWRbXT4oaW5pdGlhbFBhc3NrZXlzKVxuXG4gIGNvbnN0IGZldGNoUGFzc2tleXMgPSB1c2VDYWxsYmFjayhhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgdXJsID0gYCR7YXBpUm91dGV9LyR7cGFzc2tleVNsdWd9P3doZXJlWyR7cGFzc2tleVVzZXJJZEZpZWxkTmFtZX1dW2VxdWFsc109JHtkb2N1bWVudElkfWBcbiAgICBjb25zdCByZXMgPSBhd2FpdCBmZXRjaCh1cmwsIHsgY3JlZGVudGlhbHM6ICdpbmNsdWRlJyB9KVxuICAgIGlmICghcmVzLm9rKSByZXR1cm5cbiAgICBjb25zdCBkYXRhID0gKGF3YWl0IHJlcy5qc29uKCkpIGFzIHsgZG9jczogUGFzc2tleVdpdGhJZFtdIH1cbiAgICBzZXRQYXNza2V5cyhkYXRhLmRvY3MpXG4gIH0sIFthcGlSb3V0ZSwgcGFzc2tleVNsdWcsIHBhc3NrZXlVc2VySWRGaWVsZE5hbWUsIGRvY3VtZW50SWRdKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgdm9pZCBmZXRjaFBhc3NrZXlzKClcbiAgfSwgW2ZldGNoUGFzc2tleXNdKVxuXG4gIGNvbnN0IGhhbmRsZURlbGV0ZSA9IHVzZUNhbGxiYWNrKGFzeW5jIChpZDogc3RyaW5nKSA9PiB7XG4gICAgY29uc3QgcmVzID0gYXdhaXQgZmV0Y2goYCR7YXBpUm91dGV9LyR7cGFzc2tleVNsdWd9LyR7aWR9YCwgeyBtZXRob2Q6ICdERUxFVEUnLCBjcmVkZW50aWFsczogJ2luY2x1ZGUnIH0pXG4gICAgaWYgKCFyZXMub2spIHJldHVyblxuICAgIHZvaWQgZmV0Y2hQYXNza2V5cygpXG4gIH0sIFthcGlSb3V0ZSwgcGFzc2tleVNsdWcsIGZldGNoUGFzc2tleXNdKVxuXG4gIGNvbnN0IGhhbmRsZUFkZCA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICB2b2lkIGZldGNoUGFzc2tleXMoKVxuICB9LCBbZmV0Y2hQYXNza2V5c10pXG5cbiAgcmV0dXJuIChcbiAgICA8PlxuICAgICAgPFBhc3NrZXlMaXN0IHBhc3NrZXlzPXtwYXNza2V5c30gb25EZWxldGU9e2hhbmRsZURlbGV0ZX0gLz5cbiAgICAgIHtjdXJyZW50VXNlcklkID09PSBkb2N1bWVudElkICYmIDxQYXNzS2V5QWRkQnV0dG9uIG9uQWRkPXtoYW5kbGVBZGR9IC8+fVxuICAgIDwvPlxuICApXG59XG4iXSwibmFtZXMiOlsiUmVhY3QiLCJ1c2VTdGF0ZSIsInVzZUVmZmVjdCIsInVzZUNhbGxiYWNrIiwidXNlQ29uZmlnIiwiUGFzc2tleUxpc3QiLCJQYXNzS2V5QWRkQnV0dG9uIiwiUGFzc2tleXNDbGllbnQiLCJpbml0aWFsUGFzc2tleXMiLCJkb2N1bWVudElkIiwiY3VycmVudFVzZXJJZCIsInBhc3NrZXlTbHVnIiwicGFzc2tleVVzZXJJZEZpZWxkTmFtZSIsImNvbmZpZyIsInJvdXRlcyIsImFwaSIsImFwaVJvdXRlIiwicGFzc2tleXMiLCJzZXRQYXNza2V5cyIsImZldGNoUGFzc2tleXMiLCJ1cmwiLCJyZXMiLCJmZXRjaCIsImNyZWRlbnRpYWxzIiwib2siLCJkYXRhIiwianNvbiIsImRvY3MiLCJoYW5kbGVEZWxldGUiLCJpZCIsIm1ldGhvZCIsImhhbmRsZUFkZCIsIm9uRGVsZXRlIiwib25BZGQiXSwibWFwcGluZ3MiOiJBQUFBOztBQUVBLE9BQU9BLFNBQVNDLFFBQVEsRUFBRUMsU0FBUyxFQUFFQyxXQUFXLFFBQVEsUUFBTztBQUMvRCxTQUFTQyxTQUFTLFFBQVEsaUJBQWdCO0FBRTFDLFNBQVNDLFdBQVcsUUFBUSxTQUFRO0FBQ3BDLFNBQVNDLGdCQUFnQixRQUFRLGVBQWM7QUFFL0MsT0FBTyxNQUFNQyxpQkFBeUQsQ0FBQyxFQUNyRUMsZUFBZSxFQUNmQyxVQUFVLEVBQ1ZDLGFBQWEsRUFDYkMsV0FBVyxFQUNYQyxzQkFBc0IsRUFDdkI7SUFDQyxNQUFNLEVBQ0pDLFFBQVEsRUFDTkMsUUFBUSxFQUFFQyxLQUFLQyxRQUFRLEVBQUUsRUFDMUIsRUFDRixHQUFHWjtJQUVKLE1BQU0sQ0FBQ2EsVUFBVUMsWUFBWSxHQUFHakIsU0FBMEJPO0lBRTFELE1BQU1XLGdCQUFnQmhCLFlBQVk7UUFDaEMsTUFBTWlCLE1BQU0sR0FBR0osU0FBUyxDQUFDLEVBQUVMLFlBQVksT0FBTyxFQUFFQyx1QkFBdUIsVUFBVSxFQUFFSCxZQUFZO1FBQy9GLE1BQU1ZLE1BQU0sTUFBTUMsTUFBTUYsS0FBSztZQUFFRyxhQUFhO1FBQVU7UUFDdEQsSUFBSSxDQUFDRixJQUFJRyxFQUFFLEVBQUU7UUFDYixNQUFNQyxPQUFRLE1BQU1KLElBQUlLLElBQUk7UUFDNUJSLFlBQVlPLEtBQUtFLElBQUk7SUFDdkIsR0FBRztRQUFDWDtRQUFVTDtRQUFhQztRQUF3Qkg7S0FBVztJQUU5RFAsVUFBVTtRQUNSLEtBQUtpQjtJQUNQLEdBQUc7UUFBQ0E7S0FBYztJQUVsQixNQUFNUyxlQUFlekIsWUFBWSxPQUFPMEI7UUFDdEMsTUFBTVIsTUFBTSxNQUFNQyxNQUFNLEdBQUdOLFNBQVMsQ0FBQyxFQUFFTCxZQUFZLENBQUMsRUFBRWtCLElBQUksRUFBRTtZQUFFQyxRQUFRO1lBQVVQLGFBQWE7UUFBVTtRQUN2RyxJQUFJLENBQUNGLElBQUlHLEVBQUUsRUFBRTtRQUNiLEtBQUtMO0lBQ1AsR0FBRztRQUFDSDtRQUFVTDtRQUFhUTtLQUFjO0lBRXpDLE1BQU1ZLFlBQVk1QixZQUFZO1FBQzVCLEtBQUtnQjtJQUNQLEdBQUc7UUFBQ0E7S0FBYztJQUVsQixxQkFDRTs7MEJBQ0UsS0FBQ2Q7Z0JBQVlZLFVBQVVBO2dCQUFVZSxVQUFVSjs7WUFDMUNsQixrQkFBa0JELDRCQUFjLEtBQUNIO2dCQUFpQjJCLE9BQU9GOzs7O0FBR2hFLEVBQUMifQ==
@@ -0,0 +1,5 @@
1
+ import React from 'react';
2
+ import './index.scss';
3
+ import type { PasskeysServerComponentProps } from './types';
4
+ export declare const Passkeys: React.FC<PasskeysServerComponentProps>;
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/better-auth/plugin/payload/components/passkeys/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,cAAc,CAAA;AACrB,OAAO,KAAK,EAAE,4BAA4B,EAAiB,MAAM,SAAS,CAAA;AAE1E,eAAO,MAAM,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,4BAA4B,CA6B3D,CAAA"}
@@ -0,0 +1,40 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import React from "react";
3
+ import { PasskeysClient } from "./client";
4
+ import "./index.scss";
5
+ export const Passkeys = async (props)=>{
6
+ const { id, passkeySlug, payload, passkeyUserIdFieldName, req, user } = props;
7
+ if (!id || !passkeySlug || !passkeyUserIdFieldName) return null;
8
+ const { docs: userPasskeys } = await payload.find({
9
+ collection: passkeySlug,
10
+ where: {
11
+ [passkeyUserIdFieldName]: {
12
+ equals: id
13
+ }
14
+ },
15
+ limit: 100,
16
+ req,
17
+ depth: 0
18
+ });
19
+ return /*#__PURE__*/ _jsxs("div", {
20
+ className: "passkeys-field",
21
+ children: [
22
+ /*#__PURE__*/ _jsx("h3", {
23
+ className: "passkeys-field__title",
24
+ style: {
25
+ marginBottom: '0.7rem'
26
+ },
27
+ children: "Passkeys"
28
+ }),
29
+ /*#__PURE__*/ _jsx(PasskeysClient, {
30
+ initialPasskeys: userPasskeys,
31
+ documentId: id,
32
+ currentUserId: user?.id,
33
+ passkeySlug: passkeySlug,
34
+ passkeyUserIdFieldName: passkeyUserIdFieldName
35
+ })
36
+ ]
37
+ });
38
+ };
39
+
40
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9iZXR0ZXItYXV0aC9wbHVnaW4vcGF5bG9hZC9jb21wb25lbnRzL3Bhc3NrZXlzL2luZGV4LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnXG5pbXBvcnQgeyBQYXNza2V5c0NsaWVudCB9IGZyb20gJy4vY2xpZW50J1xuaW1wb3J0ICcuL2luZGV4LnNjc3MnXG5pbXBvcnQgdHlwZSB7IFBhc3NrZXlzU2VydmVyQ29tcG9uZW50UHJvcHMsIFBhc3NrZXlXaXRoSWQgfSBmcm9tICcuL3R5cGVzJ1xuXG5leHBvcnQgY29uc3QgUGFzc2tleXM6IFJlYWN0LkZDPFBhc3NrZXlzU2VydmVyQ29tcG9uZW50UHJvcHM+ID0gYXN5bmMgKHByb3BzKSA9PiB7XG4gIGNvbnN0IHsgaWQsIHBhc3NrZXlTbHVnLCBwYXlsb2FkLCBwYXNza2V5VXNlcklkRmllbGROYW1lLCByZXEsIHVzZXIgfSA9IHByb3BzXG5cbiAgaWYgKCFpZCB8fCAhcGFzc2tleVNsdWcgfHwgIXBhc3NrZXlVc2VySWRGaWVsZE5hbWUpIHJldHVybiBudWxsXG5cbiAgY29uc3QgeyBkb2NzOiB1c2VyUGFzc2tleXMgfSA9IGF3YWl0IHBheWxvYWQuZmluZCh7XG4gICAgY29sbGVjdGlvbjogcGFzc2tleVNsdWcsXG4gICAgd2hlcmU6IHtcbiAgICAgIFtwYXNza2V5VXNlcklkRmllbGROYW1lXTogeyBlcXVhbHM6IGlkIH1cbiAgICB9LFxuICAgIGxpbWl0OiAxMDAsXG4gICAgcmVxLFxuICAgIGRlcHRoOiAwXG4gIH0pIGFzIHVua25vd24gYXMgeyBkb2NzOiBQYXNza2V5V2l0aElkW10gfVxuXG4gIHJldHVybiAoXG4gICAgPGRpdiBjbGFzc05hbWU9XCJwYXNza2V5cy1maWVsZFwiPlxuICAgICAgPGgzIGNsYXNzTmFtZT1cInBhc3NrZXlzLWZpZWxkX190aXRsZVwiIHN0eWxlPXt7IG1hcmdpbkJvdHRvbTogJzAuN3JlbScgfX0+XG4gICAgICAgIFBhc3NrZXlzXG4gICAgICA8L2gzPlxuICAgICAgPFBhc3NrZXlzQ2xpZW50XG4gICAgICAgIGluaXRpYWxQYXNza2V5cz17dXNlclBhc3NrZXlzfVxuICAgICAgICBkb2N1bWVudElkPXtpZH1cbiAgICAgICAgY3VycmVudFVzZXJJZD17dXNlcj8uaWR9XG4gICAgICAgIHBhc3NrZXlTbHVnPXtwYXNza2V5U2x1Z31cbiAgICAgICAgcGFzc2tleVVzZXJJZEZpZWxkTmFtZT17cGFzc2tleVVzZXJJZEZpZWxkTmFtZX1cbiAgICAgIC8+XG4gICAgPC9kaXY+XG4gIClcbn1cbiJdLCJuYW1lcyI6WyJSZWFjdCIsIlBhc3NrZXlzQ2xpZW50IiwiUGFzc2tleXMiLCJwcm9wcyIsImlkIiwicGFzc2tleVNsdWciLCJwYXlsb2FkIiwicGFzc2tleVVzZXJJZEZpZWxkTmFtZSIsInJlcSIsInVzZXIiLCJkb2NzIiwidXNlclBhc3NrZXlzIiwiZmluZCIsImNvbGxlY3Rpb24iLCJ3aGVyZSIsImVxdWFscyIsImxpbWl0IiwiZGVwdGgiLCJkaXYiLCJjbGFzc05hbWUiLCJoMyIsInN0eWxlIiwibWFyZ2luQm90dG9tIiwiaW5pdGlhbFBhc3NrZXlzIiwiZG9jdW1lbnRJZCIsImN1cnJlbnRVc2VySWQiXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPQSxXQUFXLFFBQU87QUFDekIsU0FBU0MsY0FBYyxRQUFRLFdBQVU7QUFDekMsT0FBTyxlQUFjO0FBR3JCLE9BQU8sTUFBTUMsV0FBbUQsT0FBT0M7SUFDckUsTUFBTSxFQUFFQyxFQUFFLEVBQUVDLFdBQVcsRUFBRUMsT0FBTyxFQUFFQyxzQkFBc0IsRUFBRUMsR0FBRyxFQUFFQyxJQUFJLEVBQUUsR0FBR047SUFFeEUsSUFBSSxDQUFDQyxNQUFNLENBQUNDLGVBQWUsQ0FBQ0Usd0JBQXdCLE9BQU87SUFFM0QsTUFBTSxFQUFFRyxNQUFNQyxZQUFZLEVBQUUsR0FBRyxNQUFNTCxRQUFRTSxJQUFJLENBQUM7UUFDaERDLFlBQVlSO1FBQ1pTLE9BQU87WUFDTCxDQUFDUCx1QkFBdUIsRUFBRTtnQkFBRVEsUUFBUVg7WUFBRztRQUN6QztRQUNBWSxPQUFPO1FBQ1BSO1FBQ0FTLE9BQU87SUFDVDtJQUVBLHFCQUNFLE1BQUNDO1FBQUlDLFdBQVU7OzBCQUNiLEtBQUNDO2dCQUFHRCxXQUFVO2dCQUF3QkUsT0FBTztvQkFBRUMsY0FBYztnQkFBUzswQkFBRzs7MEJBR3pFLEtBQUNyQjtnQkFDQ3NCLGlCQUFpQlo7Z0JBQ2pCYSxZQUFZcEI7Z0JBQ1pxQixlQUFlaEIsTUFBTUw7Z0JBQ3JCQyxhQUFhQTtnQkFDYkUsd0JBQXdCQTs7OztBQUloQyxFQUFDIn0=
@@ -0,0 +1,91 @@
1
+ @layer payload-default {
2
+ .passkeys-modal {
3
+ position: fixed;
4
+ inset: 0;
5
+ z-index: 1000;
6
+ display: flex;
7
+ align-items: center;
8
+ justify-content: center;
9
+ height: 100%;
10
+
11
+ &:before {
12
+ content: '';
13
+ position: absolute;
14
+ inset: 0;
15
+ background: rgba(0, 0, 0, 0.8);
16
+ z-index: 0;
17
+ }
18
+
19
+ &__wrapper {
20
+ z-index: 1;
21
+ position: relative;
22
+ display: flex;
23
+ flex-direction: column;
24
+ gap: 16px;
25
+ border-radius: 3px;
26
+ border: 1px solid var(--theme-border-color);
27
+ background-color: var(--theme-elevation-50);
28
+ min-width: 340px;
29
+ max-width: 90vw;
30
+ box-shadow: 0 8px 32px rgba(0, 0, 0, 0.18);
31
+ }
32
+
33
+ &__close-button {
34
+ position: absolute;
35
+ top: 0;
36
+ right: 0;
37
+ margin-block: 0 !important;
38
+ padding: 10px !important;
39
+ svg {
40
+ width: 24px;
41
+ height: 24px;
42
+ }
43
+ }
44
+
45
+ &__content {
46
+ display: flex;
47
+ flex-direction: column;
48
+ gap: 1.5rem;
49
+ padding: 1.5rem 1.5rem 1rem 1.5rem;
50
+ h2 {
51
+ font-size: 1.5rem;
52
+ font-weight: 600;
53
+ margin: 0;
54
+ }
55
+ p {
56
+ margin: 0;
57
+ color: var(--theme-elevation-500);
58
+ }
59
+ }
60
+
61
+ &__input {
62
+ margin-bottom: 1rem;
63
+ }
64
+ }
65
+ .passkeys-field {
66
+ &__list {
67
+ list-style: disc;
68
+ padding-left: 0;
69
+ row-gap: 1rem;
70
+ display: flex;
71
+ flex-direction: column;
72
+ }
73
+ &__list-item {
74
+ display: flex;
75
+ background-color: var(--theme-input-bg);
76
+ align-items: center;
77
+ padding: 0.8rem 1rem;
78
+ gap: 0.5rem;
79
+ border: 1px solid var(--theme-elevation-150);
80
+ border-radius: var(--style-radius-m);
81
+ color: var(--theme-elevation-800);
82
+ }
83
+ &__list-item-date {
84
+ color: var(--theme-elevation-500);
85
+ }
86
+ &__delete-button {
87
+ margin-block: 0;
88
+ margin-left: auto;
89
+ }
90
+ }
91
+ }
@@ -0,0 +1,9 @@
1
+ import React from 'react';
2
+ import type { PasskeyWithId } from './types';
3
+ interface PasskeyListProps {
4
+ passkeys: PasskeyWithId[];
5
+ onDelete?: (id: string) => void;
6
+ }
7
+ export declare const PasskeyList: React.FC<PasskeyListProps>;
8
+ export {};
9
+ //# sourceMappingURL=list.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../../../../src/better-auth/plugin/payload/components/passkeys/list.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAA;AAGzB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAE5C,UAAU,gBAAgB;IACxB,QAAQ,EAAE,aAAa,EAAE,CAAA;IACzB,QAAQ,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAA;CAChC;AAED,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,CAiClD,CAAA"}
@@ -0,0 +1,57 @@
1
+ 'use client';
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import React from "react";
4
+ import { Fingerprint, Trash } from "lucide-react";
5
+ import { Button } from "@payloadcms/ui";
6
+ export const PasskeyList = ({ passkeys, onDelete })=>{
7
+ if (passkeys.length === 0) return /*#__PURE__*/ _jsx("p", {
8
+ style: {
9
+ marginBottom: '1rem'
10
+ },
11
+ children: "No passkeys found."
12
+ });
13
+ return /*#__PURE__*/ _jsx("ul", {
14
+ className: "passkeys-field__list",
15
+ children: passkeys.map((pk)=>{
16
+ const { id, createdAt } = pk;
17
+ if (!id || !createdAt) return null;
18
+ return /*#__PURE__*/ _jsxs("li", {
19
+ className: "passkeys-field__list-item",
20
+ children: [
21
+ /*#__PURE__*/ _jsx(Fingerprint, {
22
+ size: 16
23
+ }),
24
+ /*#__PURE__*/ _jsx("span", {
25
+ children: pk.name || 'My Passkey'
26
+ }),
27
+ /*#__PURE__*/ _jsx("span", {
28
+ className: "passkeys-field__list-item-date",
29
+ children: " - "
30
+ }),
31
+ /*#__PURE__*/ _jsx("span", {
32
+ className: "passkeys-field__list-item-date",
33
+ children: new Date(createdAt).toLocaleString('en-US', {
34
+ month: 'long',
35
+ day: 'numeric',
36
+ year: 'numeric',
37
+ hour: 'numeric',
38
+ minute: '2-digit',
39
+ hour12: true
40
+ })
41
+ }),
42
+ onDelete && /*#__PURE__*/ _jsx(Button, {
43
+ buttonStyle: "none",
44
+ size: "small",
45
+ className: "passkeys-field__delete-button",
46
+ onClick: ()=>onDelete(id),
47
+ children: /*#__PURE__*/ _jsx(Trash, {
48
+ size: 16
49
+ })
50
+ })
51
+ ]
52
+ }, id);
53
+ })
54
+ });
55
+ };
56
+
57
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9iZXR0ZXItYXV0aC9wbHVnaW4vcGF5bG9hZC9jb21wb25lbnRzL3Bhc3NrZXlzL2xpc3QudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIid1c2UgY2xpZW50J1xuXG5pbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnXG5pbXBvcnQgeyBGaW5nZXJwcmludCwgVHJhc2ggfSBmcm9tICdsdWNpZGUtcmVhY3QnXG5pbXBvcnQgeyBCdXR0b24gfSBmcm9tICdAcGF5bG9hZGNtcy91aSdcbmltcG9ydCB0eXBlIHsgUGFzc2tleVdpdGhJZCB9IGZyb20gJy4vdHlwZXMnXG5cbmludGVyZmFjZSBQYXNza2V5TGlzdFByb3BzIHtcbiAgcGFzc2tleXM6IFBhc3NrZXlXaXRoSWRbXVxuICBvbkRlbGV0ZT86IChpZDogc3RyaW5nKSA9PiB2b2lkXG59XG5cbmV4cG9ydCBjb25zdCBQYXNza2V5TGlzdDogUmVhY3QuRkM8UGFzc2tleUxpc3RQcm9wcz4gPSAoeyBwYXNza2V5cywgb25EZWxldGUgfSkgPT4ge1xuICBpZiAocGFzc2tleXMubGVuZ3RoID09PSAwKSByZXR1cm4gPHAgc3R5bGU9e3sgbWFyZ2luQm90dG9tOiAnMXJlbScgfX0+Tm8gcGFzc2tleXMgZm91bmQuPC9wPlxuXG4gIHJldHVybiAoXG4gICAgPHVsIGNsYXNzTmFtZT1cInBhc3NrZXlzLWZpZWxkX19saXN0XCI+XG4gICAgICB7cGFzc2tleXMubWFwKChwaykgPT4ge1xuICAgICAgICBjb25zdCB7IGlkLCBjcmVhdGVkQXQgfSA9IHBrXG4gICAgICAgIGlmICghaWQgfHwgIWNyZWF0ZWRBdCkgcmV0dXJuIG51bGxcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICA8bGkga2V5PXtpZH0gY2xhc3NOYW1lPVwicGFzc2tleXMtZmllbGRfX2xpc3QtaXRlbVwiPlxuICAgICAgICAgICAgPEZpbmdlcnByaW50IHNpemU9ezE2fSAvPlxuICAgICAgICAgICAgPHNwYW4+e3BrLm5hbWUgfHwgJ015IFBhc3NrZXknfTwvc3Bhbj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cInBhc3NrZXlzLWZpZWxkX19saXN0LWl0ZW0tZGF0ZVwiPiAtIDwvc3Bhbj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cInBhc3NrZXlzLWZpZWxkX19saXN0LWl0ZW0tZGF0ZVwiPlxuICAgICAgICAgICAgICB7bmV3IERhdGUoY3JlYXRlZEF0KS50b0xvY2FsZVN0cmluZygnZW4tVVMnLCB7XG4gICAgICAgICAgICAgICAgbW9udGg6ICdsb25nJyxcbiAgICAgICAgICAgICAgICBkYXk6ICdudW1lcmljJyxcbiAgICAgICAgICAgICAgICB5ZWFyOiAnbnVtZXJpYycsXG4gICAgICAgICAgICAgICAgaG91cjogJ251bWVyaWMnLFxuICAgICAgICAgICAgICAgIG1pbnV0ZTogJzItZGlnaXQnLFxuICAgICAgICAgICAgICAgIGhvdXIxMjogdHJ1ZVxuICAgICAgICAgICAgICB9KX1cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIHtvbkRlbGV0ZSAmJiAoXG4gICAgICAgICAgICAgIDxCdXR0b24gYnV0dG9uU3R5bGU9XCJub25lXCIgc2l6ZT1cInNtYWxsXCIgY2xhc3NOYW1lPVwicGFzc2tleXMtZmllbGRfX2RlbGV0ZS1idXR0b25cIiBvbkNsaWNrPXsoKSA9PiBvbkRlbGV0ZShpZCl9PlxuICAgICAgICAgICAgICAgIDxUcmFzaCBzaXplPXsxNn0gLz5cbiAgICAgICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvbGk+XG4gICAgICAgIClcbiAgICAgIH0pfVxuICAgIDwvdWw+XG4gIClcbn1cbiJdLCJuYW1lcyI6WyJSZWFjdCIsIkZpbmdlcnByaW50IiwiVHJhc2giLCJCdXR0b24iLCJQYXNza2V5TGlzdCIsInBhc3NrZXlzIiwib25EZWxldGUiLCJsZW5ndGgiLCJwIiwic3R5bGUiLCJtYXJnaW5Cb3R0b20iLCJ1bCIsImNsYXNzTmFtZSIsIm1hcCIsInBrIiwiaWQiLCJjcmVhdGVkQXQiLCJsaSIsInNpemUiLCJzcGFuIiwibmFtZSIsIkRhdGUiLCJ0b0xvY2FsZVN0cmluZyIsIm1vbnRoIiwiZGF5IiwieWVhciIsImhvdXIiLCJtaW51dGUiLCJob3VyMTIiLCJidXR0b25TdHlsZSIsIm9uQ2xpY2siXSwibWFwcGluZ3MiOiJBQUFBOztBQUVBLE9BQU9BLFdBQVcsUUFBTztBQUN6QixTQUFTQyxXQUFXLEVBQUVDLEtBQUssUUFBUSxlQUFjO0FBQ2pELFNBQVNDLE1BQU0sUUFBUSxpQkFBZ0I7QUFRdkMsT0FBTyxNQUFNQyxjQUEwQyxDQUFDLEVBQUVDLFFBQVEsRUFBRUMsUUFBUSxFQUFFO0lBQzVFLElBQUlELFNBQVNFLE1BQU0sS0FBSyxHQUFHLHFCQUFPLEtBQUNDO1FBQUVDLE9BQU87WUFBRUMsY0FBYztRQUFPO2tCQUFHOztJQUV0RSxxQkFDRSxLQUFDQztRQUFHQyxXQUFVO2tCQUNYUCxTQUFTUSxHQUFHLENBQUMsQ0FBQ0M7WUFDYixNQUFNLEVBQUVDLEVBQUUsRUFBRUMsU0FBUyxFQUFFLEdBQUdGO1lBQzFCLElBQUksQ0FBQ0MsTUFBTSxDQUFDQyxXQUFXLE9BQU87WUFDOUIscUJBQ0UsTUFBQ0M7Z0JBQVlMLFdBQVU7O2tDQUNyQixLQUFDWDt3QkFBWWlCLE1BQU07O2tDQUNuQixLQUFDQztrQ0FBTUwsR0FBR00sSUFBSSxJQUFJOztrQ0FDbEIsS0FBQ0Q7d0JBQUtQLFdBQVU7a0NBQWlDOztrQ0FDakQsS0FBQ087d0JBQUtQLFdBQVU7a0NBQ2IsSUFBSVMsS0FBS0wsV0FBV00sY0FBYyxDQUFDLFNBQVM7NEJBQzNDQyxPQUFPOzRCQUNQQyxLQUFLOzRCQUNMQyxNQUFNOzRCQUNOQyxNQUFNOzRCQUNOQyxRQUFROzRCQUNSQyxRQUFRO3dCQUNWOztvQkFFRHRCLDBCQUNDLEtBQUNIO3dCQUFPMEIsYUFBWTt3QkFBT1gsTUFBSzt3QkFBUU4sV0FBVTt3QkFBZ0NrQixTQUFTLElBQU14QixTQUFTUztrQ0FDeEcsY0FBQSxLQUFDYjs0QkFBTWdCLE1BQU07Ozs7ZUFoQlZIO1FBcUJiOztBQUdOLEVBQUMifQ==
@@ -0,0 +1,20 @@
1
+ import type { UIFieldServerProps } from 'payload';
2
+ import type { BuildSchema } from '@/better-auth/types';
3
+ import type { Passkey } from '@/better-auth/generated-types';
4
+ export type PasskeyWithId = Passkey & {
5
+ id: string;
6
+ createdAt: Date;
7
+ };
8
+ export type PasskeysServerComponentProps = UIFieldServerProps & {
9
+ schema: BuildSchema;
10
+ passkeySlug: string;
11
+ passkeyUserIdFieldName: string;
12
+ };
13
+ export type PasskeysClientComponentProps = {
14
+ initialPasskeys: PasskeyWithId[];
15
+ documentId: string | number;
16
+ currentUserId: string | number;
17
+ passkeySlug: string;
18
+ passkeyUserIdFieldName: string;
19
+ };
20
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../src/better-auth/plugin/payload/components/passkeys/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAA;AACjD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AACtD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,+BAA+B,CAAA;AAE5D,MAAM,MAAM,aAAa,GAAG,OAAO,GAAG;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,IAAI,CAAA;CAAE,CAAA;AAErE,MAAM,MAAM,4BAA4B,GAAG,kBAAkB,GAAG;IAC9D,MAAM,EAAE,WAAW,CAAA;IACnB,WAAW,EAAE,MAAM,CAAA;IACnB,sBAAsB,EAAE,MAAM,CAAA;CAC/B,CAAA;AAED,MAAM,MAAM,4BAA4B,GAAG;IACzC,eAAe,EAAE,aAAa,EAAE,CAAA;IAChC,UAAU,EAAE,MAAM,GAAG,MAAM,CAAA;IAC3B,aAAa,EAAE,MAAM,GAAG,MAAM,CAAA;IAC9B,WAAW,EAAE,MAAM,CAAA;IACnB,sBAAsB,EAAE,MAAM,CAAA;CAC/B,CAAA"}
@@ -0,0 +1,3 @@
1
+ export { };
2
+
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9iZXR0ZXItYXV0aC9wbHVnaW4vcGF5bG9hZC9jb21wb25lbnRzL3Bhc3NrZXlzL3R5cGVzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgVUlGaWVsZFNlcnZlclByb3BzIH0gZnJvbSAncGF5bG9hZCdcbmltcG9ydCB0eXBlIHsgQnVpbGRTY2hlbWEgfSBmcm9tICdAL2JldHRlci1hdXRoL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBQYXNza2V5IH0gZnJvbSAnQC9iZXR0ZXItYXV0aC9nZW5lcmF0ZWQtdHlwZXMnXG5cbmV4cG9ydCB0eXBlIFBhc3NrZXlXaXRoSWQgPSBQYXNza2V5ICYgeyBpZDogc3RyaW5nOyBjcmVhdGVkQXQ6IERhdGUgfVxuXG5leHBvcnQgdHlwZSBQYXNza2V5c1NlcnZlckNvbXBvbmVudFByb3BzID0gVUlGaWVsZFNlcnZlclByb3BzICYge1xuICBzY2hlbWE6IEJ1aWxkU2NoZW1hXG4gIHBhc3NrZXlTbHVnOiBzdHJpbmdcbiAgcGFzc2tleVVzZXJJZEZpZWxkTmFtZTogc3RyaW5nXG59XG5cbmV4cG9ydCB0eXBlIFBhc3NrZXlzQ2xpZW50Q29tcG9uZW50UHJvcHMgPSB7XG4gIGluaXRpYWxQYXNza2V5czogUGFzc2tleVdpdGhJZFtdXG4gIGRvY3VtZW50SWQ6IHN0cmluZyB8IG51bWJlclxuICBjdXJyZW50VXNlcklkOiBzdHJpbmcgfCBudW1iZXJcbiAgcGFzc2tleVNsdWc6IHN0cmluZ1xuICBwYXNza2V5VXNlcklkRmllbGROYW1lOiBzdHJpbmdcbn1cblxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVlBLFdBTUMifQ==
@@ -4,5 +4,6 @@ import ForgotPassword from '../views/forgot-password';
4
4
  import ResetPassword from '../views/reset-password';
5
5
  import RSCRedirect from '../components/rsc-redirect';
6
6
  import TwoFactorVerify from '../views/two-factor-verify';
7
- export { AdminSignup, AdminLogin, ForgotPassword, ResetPassword, RSCRedirect, TwoFactorVerify };
7
+ import { Passkeys } from '../components/passkeys';
8
+ export { AdminSignup, AdminLogin, ForgotPassword, ResetPassword, RSCRedirect, TwoFactorVerify, Passkeys };
8
9
  //# sourceMappingURL=rsc.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"rsc.d.ts","sourceRoot":"","sources":["../../../../../src/better-auth/plugin/payload/exports/rsc.ts"],"names":[],"mappings":"AAAA,OAAO,WAAW,MAAM,uBAAuB,CAAA;AAC/C,OAAO,UAAU,MAAM,sBAAsB,CAAA;AAC7C,OAAO,cAAc,MAAM,0BAA0B,CAAA;AACrD,OAAO,aAAa,MAAM,yBAAyB,CAAA;AACnD,OAAO,WAAW,MAAM,4BAA4B,CAAA;AACpD,OAAO,eAAe,MAAM,4BAA4B,CAAA;AAExD,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,cAAc,EAAE,aAAa,EAAE,WAAW,EAAE,eAAe,EAAE,CAAA"}
1
+ {"version":3,"file":"rsc.d.ts","sourceRoot":"","sources":["../../../../../src/better-auth/plugin/payload/exports/rsc.ts"],"names":[],"mappings":"AAAA,OAAO,WAAW,MAAM,uBAAuB,CAAA;AAC/C,OAAO,UAAU,MAAM,sBAAsB,CAAA;AAC7C,OAAO,cAAc,MAAM,0BAA0B,CAAA;AACrD,OAAO,aAAa,MAAM,yBAAyB,CAAA;AACnD,OAAO,WAAW,MAAM,4BAA4B,CAAA;AACpD,OAAO,eAAe,MAAM,4BAA4B,CAAA;AACxD,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAA;AAEjD,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,cAAc,EAAE,aAAa,EAAE,WAAW,EAAE,eAAe,EAAE,QAAQ,EAAE,CAAA"}
@@ -4,6 +4,7 @@ import ForgotPassword from "../views/forgot-password";
4
4
  import ResetPassword from "../views/reset-password";
5
5
  import RSCRedirect from "../components/rsc-redirect";
6
6
  import TwoFactorVerify from "../views/two-factor-verify";
7
- export { AdminSignup, AdminLogin, ForgotPassword, ResetPassword, RSCRedirect, TwoFactorVerify };
7
+ import { Passkeys } from "../components/passkeys";
8
+ export { AdminSignup, AdminLogin, ForgotPassword, ResetPassword, RSCRedirect, TwoFactorVerify, Passkeys };
8
9
 
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9iZXR0ZXItYXV0aC9wbHVnaW4vcGF5bG9hZC9leHBvcnRzL3JzYy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgQWRtaW5TaWdudXAgZnJvbSAnLi4vdmlld3MvYWRtaW4tc2lnbnVwJ1xuaW1wb3J0IEFkbWluTG9naW4gZnJvbSAnLi4vdmlld3MvYWRtaW4tbG9naW4nXG5pbXBvcnQgRm9yZ290UGFzc3dvcmQgZnJvbSAnLi4vdmlld3MvZm9yZ290LXBhc3N3b3JkJ1xuaW1wb3J0IFJlc2V0UGFzc3dvcmQgZnJvbSAnLi4vdmlld3MvcmVzZXQtcGFzc3dvcmQnXG5pbXBvcnQgUlNDUmVkaXJlY3QgZnJvbSAnLi4vY29tcG9uZW50cy9yc2MtcmVkaXJlY3QnXG5pbXBvcnQgVHdvRmFjdG9yVmVyaWZ5IGZyb20gJy4uL3ZpZXdzL3R3by1mYWN0b3ItdmVyaWZ5J1xuXG5leHBvcnQgeyBBZG1pblNpZ251cCwgQWRtaW5Mb2dpbiwgRm9yZ290UGFzc3dvcmQsIFJlc2V0UGFzc3dvcmQsIFJTQ1JlZGlyZWN0LCBUd29GYWN0b3JWZXJpZnkgfVxuIl0sIm5hbWVzIjpbIkFkbWluU2lnbnVwIiwiQWRtaW5Mb2dpbiIsIkZvcmdvdFBhc3N3b3JkIiwiUmVzZXRQYXNzd29yZCIsIlJTQ1JlZGlyZWN0IiwiVHdvRmFjdG9yVmVyaWZ5Il0sIm1hcHBpbmdzIjoiQUFBQSxPQUFPQSxpQkFBaUIsd0JBQXVCO0FBQy9DLE9BQU9DLGdCQUFnQix1QkFBc0I7QUFDN0MsT0FBT0Msb0JBQW9CLDJCQUEwQjtBQUNyRCxPQUFPQyxtQkFBbUIsMEJBQXlCO0FBQ25ELE9BQU9DLGlCQUFpQiw2QkFBNEI7QUFDcEQsT0FBT0MscUJBQXFCLDZCQUE0QjtBQUV4RCxTQUFTTCxXQUFXLEVBQUVDLFVBQVUsRUFBRUMsY0FBYyxFQUFFQyxhQUFhLEVBQUVDLFdBQVcsRUFBRUMsZUFBZSxHQUFFIn0=
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9iZXR0ZXItYXV0aC9wbHVnaW4vcGF5bG9hZC9leHBvcnRzL3JzYy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgQWRtaW5TaWdudXAgZnJvbSAnLi4vdmlld3MvYWRtaW4tc2lnbnVwJ1xuaW1wb3J0IEFkbWluTG9naW4gZnJvbSAnLi4vdmlld3MvYWRtaW4tbG9naW4nXG5pbXBvcnQgRm9yZ290UGFzc3dvcmQgZnJvbSAnLi4vdmlld3MvZm9yZ290LXBhc3N3b3JkJ1xuaW1wb3J0IFJlc2V0UGFzc3dvcmQgZnJvbSAnLi4vdmlld3MvcmVzZXQtcGFzc3dvcmQnXG5pbXBvcnQgUlNDUmVkaXJlY3QgZnJvbSAnLi4vY29tcG9uZW50cy9yc2MtcmVkaXJlY3QnXG5pbXBvcnQgVHdvRmFjdG9yVmVyaWZ5IGZyb20gJy4uL3ZpZXdzL3R3by1mYWN0b3ItdmVyaWZ5J1xuaW1wb3J0IHsgUGFzc2tleXMgfSBmcm9tICcuLi9jb21wb25lbnRzL3Bhc3NrZXlzJ1xuXG5leHBvcnQgeyBBZG1pblNpZ251cCwgQWRtaW5Mb2dpbiwgRm9yZ290UGFzc3dvcmQsIFJlc2V0UGFzc3dvcmQsIFJTQ1JlZGlyZWN0LCBUd29GYWN0b3JWZXJpZnksIFBhc3NrZXlzIH1cbiJdLCJuYW1lcyI6WyJBZG1pblNpZ251cCIsIkFkbWluTG9naW4iLCJGb3Jnb3RQYXNzd29yZCIsIlJlc2V0UGFzc3dvcmQiLCJSU0NSZWRpcmVjdCIsIlR3b0ZhY3RvclZlcmlmeSIsIlBhc3NrZXlzIl0sIm1hcHBpbmdzIjoiQUFBQSxPQUFPQSxpQkFBaUIsd0JBQXVCO0FBQy9DLE9BQU9DLGdCQUFnQix1QkFBc0I7QUFDN0MsT0FBT0Msb0JBQW9CLDJCQUEwQjtBQUNyRCxPQUFPQyxtQkFBbUIsMEJBQXlCO0FBQ25ELE9BQU9DLGlCQUFpQiw2QkFBNEI7QUFDcEQsT0FBT0MscUJBQXFCLDZCQUE0QjtBQUN4RCxTQUFTQyxRQUFRLFFBQVEseUJBQXdCO0FBRWpELFNBQVNOLFdBQVcsRUFBRUMsVUFBVSxFQUFFQyxjQUFjLEVBQUVDLGFBQWEsRUFBRUMsV0FBVyxFQUFFQyxlQUFlLEVBQUVDLFFBQVEsR0FBRSJ9
@@ -4,6 +4,7 @@ import type { LoginWithUsernameOptions } from 'payload';
4
4
  type AdminLoginClientProps = {
5
5
  loginMethods: LoginMethod[];
6
6
  hasUsernamePlugin: boolean;
7
+ hasPasskeyPlugin: boolean;
7
8
  prefillEmail?: string;
8
9
  prefillPassword?: string;
9
10
  prefillUsername?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../../../../src/better-auth/plugin/payload/views/admin-login/client.tsx"],"names":[],"mappings":"AAKA,OAAO,KAA4B,MAAM,OAAO,CAAA;AAChD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAA;AAC7D,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,SAAS,CAAA;AAYvD,KAAK,qBAAqB,GAAG;IAC3B,YAAY,EAAE,WAAW,EAAE,CAAA;IAC3B,iBAAiB,EAAE,OAAO,CAAA;IAC1B,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,YAAY,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAAA;KAAE,CAAA;IAC9D,iBAAiB,EAAE,KAAK,GAAG,wBAAwB,CAAA;CACpD,CAAA;AA0HD,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC,qBAAqB,CA6B5D,CAAA"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../../../../src/better-auth/plugin/payload/views/admin-login/client.tsx"],"names":[],"mappings":"AAKA,OAAO,KAA4B,MAAM,OAAO,CAAA;AAChD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAA;AAC7D,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,SAAS,CAAA;AAYvD,KAAK,qBAAqB,GAAG;IAC3B,YAAY,EAAE,WAAW,EAAE,CAAA;IAC3B,iBAAiB,EAAE,OAAO,CAAA;IAC1B,gBAAgB,EAAE,OAAO,CAAA;IACzB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,YAAY,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAAA;KAAE,CAAA;IAC9D,iBAAiB,EAAE,KAAK,GAAG,wBAAwB,CAAA;CACpD,CAAA;AA4HD,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC,qBAAqB,CA+B5D,CAAA"}