@kelpie/ui 0.10.0 → 0.12.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/api/resources/activities.d.ts +2 -1
- package/dist/api/resources/activities.d.ts.map +1 -1
- package/dist/api/resources/activities.js +6 -2
- package/dist/api/resources/activities.js.map +1 -1
- package/dist/api/resources/conversions.d.ts +16 -0
- package/dist/api/resources/conversions.d.ts.map +1 -0
- package/dist/api/resources/conversions.js +81 -0
- package/dist/api/resources/conversions.js.map +1 -0
- package/dist/api/resources/enquiries.d.ts +2 -7
- package/dist/api/resources/enquiries.d.ts.map +1 -1
- package/dist/api/resources/enquiries.js +2 -30
- package/dist/api/resources/enquiries.js.map +1 -1
- package/dist/api/resources/importJobs.d.ts +2 -2
- package/dist/api/resources/importJobs.d.ts.map +1 -1
- package/dist/api/resources/importJobs.js.map +1 -1
- package/dist/app/KelpieApp.js +1 -1
- package/dist/app/KelpieApp.js.map +1 -1
- package/dist/components/ActivitiesPanel.d.ts +2 -2
- package/dist/components/ActivitiesPanel.d.ts.map +1 -1
- package/dist/components/ActivitiesPanel.js +7 -5
- package/dist/components/ActivitiesPanel.js.map +1 -1
- package/dist/components/ApiKeysPanel.d.ts +0 -7
- package/dist/components/ApiKeysPanel.d.ts.map +1 -1
- package/dist/components/ApiKeysPanel.js +83 -16
- package/dist/components/ApiKeysPanel.js.map +1 -1
- package/dist/components/ConvertRecordDialog.d.ts +30 -0
- package/dist/components/ConvertRecordDialog.d.ts.map +1 -0
- package/dist/components/ConvertRecordDialog.js +50 -0
- package/dist/components/ConvertRecordDialog.js.map +1 -0
- package/dist/components/Shell.d.ts.map +1 -1
- package/dist/components/Shell.js +19 -7
- package/dist/components/Shell.js.map +1 -1
- package/dist/index.d.ts +4 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -1
- package/dist/index.js.map +1 -1
- package/dist/pages/DealDetail.d.ts.map +1 -1
- package/dist/pages/DealDetail.js +15 -2
- package/dist/pages/DealDetail.js.map +1 -1
- package/dist/pages/DecisionsPage.d.ts.map +1 -1
- package/dist/pages/DecisionsPage.js +1 -7
- package/dist/pages/DecisionsPage.js.map +1 -1
- package/dist/pages/EnquiryDetail.d.ts.map +1 -1
- package/dist/pages/EnquiryDetail.js +17 -25
- package/dist/pages/EnquiryDetail.js.map +1 -1
- package/dist/pages/ListDetail.d.ts.map +1 -1
- package/dist/pages/ListDetail.js +1 -14
- package/dist/pages/ListDetail.js.map +1 -1
- package/dist/pages/OpportunityDetail.d.ts.map +1 -1
- package/dist/pages/OpportunityDetail.js +15 -2
- package/dist/pages/OpportunityDetail.js.map +1 -1
- package/dist/pages/PartnershipDetail.d.ts.map +1 -1
- package/dist/pages/PartnershipDetail.js +15 -2
- package/dist/pages/PartnershipDetail.js.map +1 -1
- package/dist/pages/RaiseDetail.d.ts.map +1 -1
- package/dist/pages/RaiseDetail.js +15 -2
- package/dist/pages/RaiseDetail.js.map +1 -1
- package/dist/pages/account/SecurityPage.js +2 -2
- package/dist/pages/account/SecurityPage.js.map +1 -1
- package/dist/pages/admin/DataPage.d.ts.map +1 -1
- package/dist/pages/admin/DataPage.js +3 -3
- package/dist/pages/admin/DataPage.js.map +1 -1
- package/dist/pages/admin/PrivacyPage.js +3 -3
- package/dist/pages/admin/PrivacyPage.js.map +1 -1
- package/dist/pages/admin/TeamPage.js +1 -1
- package/dist/pages/admin/TeamPage.js.map +1 -1
- package/dist/pages/admin/WorkspaceSettingsPage.js +2 -12
- package/dist/pages/admin/WorkspaceSettingsPage.js.map +1 -1
- package/dist/pages/auth/AuthForm.d.ts +18 -0
- package/dist/pages/auth/AuthForm.d.ts.map +1 -1
- package/dist/pages/auth/AuthForm.js +17 -0
- package/dist/pages/auth/AuthForm.js.map +1 -1
- package/dist/pages/auth/AuthMethods.d.ts +12 -0
- package/dist/pages/auth/AuthMethods.d.ts.map +1 -0
- package/dist/pages/auth/AuthMethods.js +20 -0
- package/dist/pages/auth/AuthMethods.js.map +1 -0
- package/dist/pages/auth/SignInPage.d.ts +7 -0
- package/dist/pages/auth/SignInPage.d.ts.map +1 -1
- package/dist/pages/auth/SignInPage.js +3 -8
- package/dist/pages/auth/SignInPage.js.map +1 -1
- package/dist/pages/auth/SignUpPage.d.ts.map +1 -1
- package/dist/pages/auth/SignUpPage.js +2 -1
- package/dist/pages/auth/SignUpPage.js.map +1 -1
- package/dist/pages/auth/nextPath.d.ts +15 -0
- package/dist/pages/auth/nextPath.d.ts.map +1 -0
- package/dist/pages/auth/nextPath.js +17 -0
- package/dist/pages/auth/nextPath.js.map +1 -0
- package/dist/pages/forms/AddFieldMenu.js +2 -2
- package/dist/pages/forms/AddFieldMenu.js.map +1 -1
- package/dist/pages/forms/FieldsEditor.d.ts.map +1 -1
- package/dist/pages/forms/FieldsEditor.js +22 -10
- package/dist/pages/forms/FieldsEditor.js.map +1 -1
- package/dist/pages/forms/MapTargetSearch.d.ts +7 -0
- package/dist/pages/forms/MapTargetSearch.d.ts.map +1 -0
- package/dist/pages/forms/MapTargetSearch.js +32 -0
- package/dist/pages/forms/MapTargetSearch.js.map +1 -0
- package/dist/pages/forms/fieldList.d.ts +6 -7
- package/dist/pages/forms/fieldList.d.ts.map +1 -1
- package/dist/pages/forms/fieldList.js +14 -16
- package/dist/pages/forms/fieldList.js.map +1 -1
- package/dist/pages/forms/template.d.ts.map +1 -1
- package/dist/pages/forms/template.js +7 -0
- package/dist/pages/forms/template.js.map +1 -1
- package/dist/registry/context.d.ts +3 -1
- package/dist/registry/context.d.ts.map +1 -1
- package/dist/registry/context.js +4 -0
- package/dist/registry/context.js.map +1 -1
- package/dist/registry/contributions.d.ts +24 -0
- package/dist/registry/contributions.d.ts.map +1 -1
- package/dist/registry/contributions.js.map +1 -1
- package/dist/registry/registry.d.ts +4 -1
- package/dist/registry/registry.d.ts.map +1 -1
- package/dist/registry/registry.js +6 -0
- package/dist/registry/registry.js.map +1 -1
- package/package.json +2 -2
- package/src/api/resources/activities.ts +10 -2
- package/src/api/resources/conversions.ts +125 -0
- package/src/api/resources/enquiries.ts +9 -35
- package/src/api/resources/importJobs.ts +3 -2
- package/src/app/KelpieApp.tsx +1 -0
- package/src/components/ActivitiesPanel.tsx +20 -14
- package/src/components/ApiKeysPanel.tsx +206 -21
- package/src/components/ConvertRecordDialog.tsx +210 -0
- package/src/components/Shell.tsx +91 -36
- package/src/index.ts +7 -0
- package/src/pages/DealDetail.tsx +35 -0
- package/src/pages/DecisionsPage.tsx +0 -14
- package/src/pages/EnquiryDetail.tsx +37 -90
- package/src/pages/ListDetail.tsx +0 -47
- package/src/pages/OpportunityDetail.tsx +35 -0
- package/src/pages/PartnershipDetail.tsx +35 -0
- package/src/pages/RaiseDetail.tsx +35 -0
- package/src/pages/account/SecurityPage.tsx +6 -1
- package/src/pages/admin/DataPage.tsx +14 -9
- package/src/pages/admin/PrivacyPage.tsx +4 -4
- package/src/pages/admin/TeamPage.tsx +1 -2
- package/src/pages/admin/WorkspaceSettingsPage.tsx +1 -31
- package/src/pages/auth/AuthForm.tsx +38 -0
- package/src/pages/auth/AuthMethods.tsx +29 -0
- package/src/pages/auth/SignInPage.tsx +3 -8
- package/src/pages/auth/SignUpPage.tsx +7 -0
- package/src/pages/auth/nextPath.ts +17 -0
- package/src/pages/forms/AddFieldMenu.tsx +2 -2
- package/src/pages/forms/FieldsEditor.tsx +45 -20
- package/src/pages/forms/MapTargetSearch.tsx +69 -0
- package/src/pages/forms/fieldList.ts +34 -16
- package/src/pages/forms/template.ts +7 -0
- package/src/registry/context.ts +6 -0
- package/src/registry/contributions.ts +26 -0
- package/src/registry/registry.ts +12 -0
|
@@ -44,7 +44,7 @@ function InviteForm() {
|
|
|
44
44
|
setEmail(event.target.value);
|
|
45
45
|
}, required: true, placeholder: "colleague@startup.com", className: "w-full rounded-md border border-border bg-surface px-3 py-2 text-[13px] outline-none focus:border-accent focus:ring-2 focus:ring-accent/20" })] }), _jsxs("label", { children: [_jsx("span", { className: "mb-1.5 block text-[12px] font-medium text-ink", children: "Role" }), _jsx("select", { value: role, onChange: (event) => {
|
|
46
46
|
setRole(event.target.value);
|
|
47
|
-
}, className: "rounded-md border border-border bg-surface px-3 py-2 text-[13px] capitalize outline-none focus:border-accent", children: INVITABLE_ROLES.map((option) => (_jsx("option", { value: option, children: option }, option))) })] }), _jsx("button", { type: "submit", disabled: sendInvite.isPending, className: "rounded-md bg-accent px-3.5 py-2 text-[12px] font-semibold text-accent-fg transition hover:bg-accent-hover disabled:opacity-50", children: sendInvite.isPending ? 'Sending…' : 'Send invite' })] }), sendInvite.error !== null && _jsx(ErrorPanel, { error: sendInvite.error }), _jsx("p", { className: "text-[11px] text-ink-faint", children: "The invitation is emailed and lasts seven days.
|
|
47
|
+
}, className: "rounded-md border border-border bg-surface px-3 py-2 text-[13px] capitalize outline-none focus:border-accent", children: INVITABLE_ROLES.map((option) => (_jsx("option", { value: option, children: option }, option))) })] }), _jsx("button", { type: "submit", disabled: sendInvite.isPending, className: "rounded-md bg-accent px-3.5 py-2 text-[12px] font-semibold text-accent-fg transition hover:bg-accent-hover disabled:opacity-50", children: sendInvite.isPending ? 'Sending…' : 'Send invite' })] }), sendInvite.error !== null && _jsx(ErrorPanel, { error: sendInvite.error }), _jsx("p", { className: "text-[11px] text-ink-faint", children: "The invitation is emailed and lasts seven days." })] }));
|
|
48
48
|
}
|
|
49
49
|
function PendingInvites() {
|
|
50
50
|
const { invites, isLoading, error } = useInvites();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TeamPage.js","sourceRoot":"","sources":["../../../src/pages/admin/TeamPage.tsx"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"TeamPage.js","sourceRoot":"","sources":["../../../src/pages/admin/TeamPage.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAEjD,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAGhC,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAA;AAC9F,OAAO,EACL,UAAU,EACV,eAAe,EACf,eAAe,EACf,aAAa,GACd,MAAM,gCAAgC,CAAA;AACvC,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAA;AAC3D,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAiC,CAAA;AAC5D,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,gCAAiC,CAAA;AAC1E,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AAE/C;;;;;;;;;;GAUG;AAEH,SAAS,UAAU,CAAC,KAAW;IAC7B,OAAO,KAAK,CAAC,kBAAkB,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,CAAA;AACrE,CAAC;AAED,MAAM,UAAU,QAAQ;IACtB,MAAM,EAAE,OAAO,EAAE,GAAG,UAAU,EAAE,CAAA;IAChC,MAAM,OAAO,GAAG,OAAO,EAAE,IAAI,KAAK,OAAO,IAAI,OAAO,EAAE,IAAI,KAAK,OAAO,CAAA;IACtE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,UAAU,EAAE,CAAA;IAElD,OAAO,CACL,eAAK,SAAS,EAAC,8CAA8C,aAC3D,KAAC,UAAU,IAAC,KAAK,EAAC,MAAM,EAAC,WAAW,EAAC,iDAAiD,GAAG,EAExF,OAAO,IAAI,KAAC,UAAU,KAAG,EACzB,OAAO,IAAI,KAAC,cAAc,KAAG,EAE9B,8BACE,aAAI,SAAS,EAAC,yCAAyC,+BAAoB,EAC1E,KAAK,KAAK,IAAI,IAAI,KAAC,UAAU,IAAC,KAAK,EAAE,KAAK,GAAI,EAC9C,SAAS,CAAC,CAAC,CAAC,CACX,KAAC,YAAY,IAAC,KAAK,EAAC,wBAAmB,GAAG,CAC3C,CAAC,CAAC,CAAC,CACF,KAAC,WAAW,IAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,GAAI,CACpF,IACO,IACN,CACP,CAAA;AACH,CAAC;AAED,SAAS,UAAU;IACjB,MAAM,UAAU,GAAG,aAAa,EAAE,CAAA;IAClC,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAA;IACtC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAgB,QAAQ,CAAC,CAAA;IAEzD,SAAS,MAAM,CAAC,KAAgB;QAC9B,KAAK,CAAC,cAAc,EAAE,CAAA;QAEtB,UAAU;aACP,QAAQ,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC;aACvC,IAAI,CAAC,GAAG,EAAE;YACT,QAAQ,CAAC,EAAE,CAAC,CAAA;QACd,CAAC,CAAC;aACD,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAA;IAC3B,CAAC;IAED,OAAO,CACL,gBAAM,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAC,+CAA+C,aAC/E,eAAK,SAAS,EAAC,gCAAgC,aAC7C,iBAAO,SAAS,EAAC,sBAAsB,aACrC,eAAM,SAAS,EAAC,+CAA+C,gCAAuB,EACtF,gBACE,IAAI,EAAC,OAAO,EACZ,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE;oCAClB,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;gCAC9B,CAAC,EACD,QAAQ,QACR,WAAW,EAAC,uBAAuB,EACnC,SAAS,EAAC,4IAA4I,GACtJ,IACI,EACR,4BACE,eAAM,SAAS,EAAC,+CAA+C,qBAAY,EAC3E,iBACE,KAAK,EAAE,IAAI,EACX,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE;oCAClB,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,KAAsB,CAAC,CAAA;gCAC9C,CAAC,EACD,SAAS,EAAC,8GAA8G,YAEvH,eAAe,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAC/B,iBAAqB,KAAK,EAAE,MAAM,YAC/B,MAAM,IADI,MAAM,CAEV,CACV,CAAC,GACK,IACH,EACR,iBACE,IAAI,EAAC,QAAQ,EACb,QAAQ,EAAE,UAAU,CAAC,SAAS,EAC9B,SAAS,EAAC,gIAAgI,YAEzI,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,aAAa,GAC3C,IACL,EACL,UAAU,CAAC,KAAK,KAAK,IAAI,IAAI,KAAC,UAAU,IAAC,KAAK,EAAE,UAAU,CAAC,KAAK,GAAI,EACrE,YAAG,SAAS,EAAC,4BAA4B,gEAErC,IACC,CACR,CAAA;AACH,CAAC;AAED,SAAS,cAAc;IACrB,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,UAAU,EAAE,CAAA;IAClD,MAAM,MAAM,GAAG,eAAe,EAAE,CAAA;IAChC,MAAM,MAAM,GAAG,eAAe,EAAE,CAAA;IAChC,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,KAAK,IAAI,KAAK,CAAA;IAErD,OAAO,CACL,8BACE,aAAI,SAAS,EAAC,yCAAyC,4BAAiB,EACvE,OAAO,KAAK,IAAI,IAAI,KAAC,UAAU,IAAC,KAAK,EAAE,OAAO,GAAI,EAClD,SAAS,CAAC,CAAC,CAAC,CACX,KAAC,YAAY,IAAC,KAAK,EAAC,2BAAsB,GAAG,CAC9C,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CACzB,YAAG,SAAS,EAAC,4BAA4B,4CAAgC,CAC1E,CAAC,CAAC,CAAC,CACF,cAAK,SAAS,EAAC,iDAAiD,YAC9D,iBAAO,SAAS,EAAC,8BAA8B,aAC7C,0BACE,cAAI,SAAS,EAAC,oGAAoG,aAChH,aAAI,SAAS,EAAC,aAAa,sBAAW,EACtC,aAAI,SAAS,EAAC,aAAa,qBAAU,EACrC,aAAI,SAAS,EAAC,aAAa,wBAAa,EACxC,aAAI,SAAS,EAAC,aAAa,uBAAY,EACvC,aAAI,SAAS,EAAC,wBAAwB,wBAAa,IAChD,GACC,EACR,0BACG,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CACvB,KAAC,SAAS,IAER,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,SAAS,EAC/C,QAAQ,EAAE,GAAG,EAAE;oCACb,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;gCACvB,CAAC,EACD,QAAQ,EAAE,GAAG,EAAE;oCACb,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;gCACvB,CAAC,IARI,MAAM,CAAC,EAAE,CASd,CACH,CAAC,GACI,IACF,GACJ,CACP,IACO,CACX,CAAA;AACH,CAAC;AAED,SAAS,SAAS,CAAC,EACjB,MAAM,EACN,SAAS,EACT,QAAQ,EACR,QAAQ,GAMT;IACC,OAAO,CACL,cAAI,SAAS,EAAC,sCAAsC,aAClD,aAAI,SAAS,EAAC,0CAA0C,YAAE,MAAM,CAAC,KAAK,GAAM,EAC5E,aAAI,SAAS,EAAC,qCAAqC,YAAE,MAAM,CAAC,IAAI,GAAM,EACtE,aAAI,SAAS,EAAC,0BAA0B,YAAE,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC,GAAM,EAC5E,aAAI,SAAS,EAAC,WAAW,YACvB,eACE,SAAS,EACP,MAAM,CAAC,MAAM,KAAK,SAAS;wBACzB,CAAC,CAAC,sCAAsC;wBACxC,CAAC,CAAC,wCAAwC,YAG7C,MAAM,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,iBAAiB,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,GACrF,GACJ,EACL,aAAI,SAAS,EAAC,sBAAsB,YAClC,eAAK,SAAS,EAAC,kCAAkC,aAC/C,iBACE,IAAI,EAAC,QAAQ,EACb,QAAQ,EAAE,SAAS,EACnB,OAAO,EAAE,QAAQ,EACjB,KAAK,EAAC,0CAA0C,EAChD,SAAS,EAAC,yEAAyE,uBAG5E,EACT,iBACE,IAAI,EAAC,QAAQ,EACb,QAAQ,EAAE,SAAS,EACnB,OAAO,EAAE,QAAQ,EACjB,SAAS,EAAC,yEAAyE,uBAG5E,IACL,GACH,IACF,CACN,CAAA;AACH,CAAC;AAED,SAAS,WAAW,CAAC,EACnB,OAAO,EACP,OAAO,EACP,aAAa,GAKd;IACC,MAAM,EAAE,OAAO,EAAE,GAAG,UAAU,EAAE,CAAA;IAChC,MAAM,OAAO,GAAG,gBAAgB,EAAE,CAAA;IAClC,MAAM,YAAY,GAAG,eAAe,EAAE,CAAA;IACtC,MAAM,CAAC,gBAAgB,EAAE,mBAAmB,CAAC,GAAG,QAAQ,CAAgB,IAAI,CAAC,CAAA;IAC7E,2EAA2E;IAC3E,+EAA+E;IAC/E,6DAA6D;IAC7D,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,IAAI,CAAC,gBAAgB,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,CAAA;IAExF,MAAM,OAAO,GAAG,OAAO,EAAE,IAAI,KAAK,OAAO,CAAA;IAEzC,SAAS,MAAM,CAAC,QAAgB;QAC9B,YAAY;aACT,QAAQ,CAAC,QAAQ,CAAC;aAClB,IAAI,CAAC,GAAG,EAAE;YACT,mBAAmB,CAAC,IAAI,CAAC,CAAA;QAC3B,CAAC,CAAC;aACD,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAA;IAC3B,CAAC;IAED,OAAO,CACL,eAAK,SAAS,EAAC,WAAW,aACvB,OAAO,KAAK,IAAI,IAAI,KAAC,UAAU,IAAC,KAAK,EAAE,OAAO,GAAI,EACnD,cAAK,SAAS,EAAC,iDAAiD,YAC9D,iBAAO,SAAS,EAAC,8BAA8B,aAC7C,0BACE,cAAI,SAAS,EAAC,oGAAoG,aAChH,aAAI,SAAS,EAAC,aAAa,uBAAY,EACvC,aAAI,SAAS,EAAC,aAAa,qBAAU,EACrC,aAAI,SAAS,EAAC,aAAa,uBAAY,EACvC,aAAI,SAAS,EAAC,wBAAwB,wBAAa,IAChD,GACC,EACR,0BACG,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CACvB,cAAoB,SAAS,EAAC,sCAAsC,aAClE,aAAI,SAAS,EAAC,WAAW,YACvB,eAAK,SAAS,EAAC,yBAAyB,aACtC,cAAK,SAAS,EAAC,mHAAmH,YAC/H,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,GACpB,EACN,eAAK,SAAS,EAAC,SAAS,aACtB,eAAK,SAAS,EAAC,+BAA+B,aAC3C,MAAM,CAAC,IAAI,EACX,MAAM,CAAC,MAAM,KAAK,aAAa,IAAI,CAClC,eAAM,SAAS,EAAC,mCAAmC,oBAAW,CAC/D,IACG,EACN,cAAK,SAAS,EAAC,+CAA+C,YAC3D,MAAM,CAAC,KAAK,GACT,IACF,IACF,GACH,EACL,aAAI,SAAS,EAAC,WAAW,YACtB,MAAM,CAAC,IAAI,KAAK,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CACrC,eAAM,SAAS,EAAC,2BAA2B,YAAE,MAAM,CAAC,IAAI,GAAQ,CACjE,CAAC,CAAC,CAAC,CACF,kBACE,KAAK,EAAE,MAAM,CAAC,IAAI,EAClB,QAAQ,EAAE,OAAO,CAAC,SAAS,EAC3B,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE;gDAClB,OAAO,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,KAAmB,EAAE,CAAC,CAAA;4CAC9E,CAAC,EACD,SAAS,EAAC,2GAA2G,aAErH,iBAAQ,KAAK,EAAC,OAAO,sBAAe,EACpC,iBAAQ,KAAK,EAAC,QAAQ,uBAAgB,EAErC,OAAO,IAAI,iBAAQ,KAAK,EAAC,OAAO,iCAA0B,IACpD,CACV,GACE,EACL,aAAI,SAAS,EAAC,0BAA0B,YAAE,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAM,EAC3E,aAAI,SAAS,EAAC,sBAAsB,YACjC,OAAO,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO,IAAI,CACrC,KAAC,gBAAgB,IACf,IAAI,EAAE,MAAM,CAAC,IAAI,EACjB,YAAY,EAAE,gBAAgB,KAAK,MAAM,CAAC,EAAE,EAC5C,SAAS,EAAE,YAAY,CAAC,SAAS,EACjC,KAAK,EAAE,GAAG,EAAE;gDACV,mBAAmB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;4CAChC,CAAC,EACD,QAAQ,EAAE,GAAG,EAAE;gDACb,mBAAmB,CAAC,IAAI,CAAC,CAAA;4CAC3B,CAAC,EACD,SAAS,EAAE,GAAG,EAAE;gDACd,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;4CACnB,CAAC,GACD,CACH,GACE,KAxDE,MAAM,CAAC,EAAE,CAyDb,CACN,CAAC,GACI,IACF,GACJ,EACL,OAAO,IAAI,CACV,YAAG,SAAS,EAAC,4BAA4B,iGAErC,CACL,IACG,CACP,CAAA;AACH,CAAC;AAED,SAAS,gBAAgB,CAAC,EACxB,IAAI,EACJ,YAAY,EACZ,SAAS,EACT,KAAK,EACL,QAAQ,EACR,SAAS,GAQV;IACC,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,OAAO,CACL,iBACE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,KAAK,EACd,SAAS,EAAC,qDAAqD,uBAGxD,CACV,CAAA;IACH,CAAC;IAED,OAAO,CACL,eAAK,SAAS,EAAC,qCAAqC,aAClD,gBAAM,SAAS,EAAC,4BAA4B,wBAAS,IAAI,SAAS,EAClE,iBACE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,QAAQ,EACjB,SAAS,EAAC,uDAAuD,uBAG1D,EACT,iBACE,IAAI,EAAC,QAAQ,EACb,QAAQ,EAAE,SAAS,EACnB,OAAO,EAAE,SAAS,EAClB,SAAS,EAAC,2HAA2H,YAEpI,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,GAC5B,IACL,CACP,CAAA;AACH,CAAC"}
|
|
@@ -52,8 +52,6 @@ function WorkspaceSettingsForm({ workspace, }) {
|
|
|
52
52
|
const [name, setName] = useState(workspace.name);
|
|
53
53
|
const [slug, setSlug] = useState(workspace.slug);
|
|
54
54
|
const [timezone, setTimezone] = useState(workspace.timezone);
|
|
55
|
-
const [tagline, setTagline] = useState(workspace.tagline ?? '');
|
|
56
|
-
const [oneLiner, setOneLiner] = useState(workspace.oneLiner ?? '');
|
|
57
55
|
const [saved, setSaved] = useState(false);
|
|
58
56
|
const canEdit = session?.role === 'owner' || session?.role === 'admin';
|
|
59
57
|
const timezones = COMMON_TIMEZONES.includes(timezone)
|
|
@@ -67,25 +65,17 @@ function WorkspaceSettingsForm({ workspace, }) {
|
|
|
67
65
|
name: name.trim(),
|
|
68
66
|
slug: slug.trim(),
|
|
69
67
|
timezone,
|
|
70
|
-
// Empty is not blank text, it is no tagline. `null` clears the column;
|
|
71
|
-
// an empty string would store one and hand agents an empty identity.
|
|
72
|
-
tagline: tagline.trim().length === 0 ? null : tagline.trim(),
|
|
73
|
-
oneLiner: oneLiner.trim().length === 0 ? null : oneLiner.trim(),
|
|
74
68
|
})
|
|
75
69
|
.then(() => {
|
|
76
70
|
setSaved(true);
|
|
77
71
|
})
|
|
78
72
|
.catch(() => undefined);
|
|
79
73
|
}
|
|
80
|
-
return (_jsxs("div", { className: "animate-slide-in mx-auto max-w-4xl space-y-8", children: [_jsx(PageHeader, { title: "Workspace", description: "Name, address,
|
|
74
|
+
return (_jsxs("div", { className: "animate-slide-in mx-auto max-w-4xl space-y-8", children: [_jsx(PageHeader, { title: "Workspace", description: "Name, address, and timezone." }), _jsxs("form", { onSubmit: save, className: "space-y-4", children: [_jsx(Field, { label: "Workspace name", children: _jsx("input", { value: name, onChange: (event) => {
|
|
81
75
|
setName(event.target.value);
|
|
82
76
|
}, required: true, disabled: !canEdit, className: "w-full max-w-md rounded-md border border-border bg-surface-raised px-3 py-2 text-[13px] outline-none focus:border-accent focus:ring-2 focus:ring-accent/20 disabled:opacity-60" }) }), _jsx(Field, { label: "Slug", hint: "Lowercase letters, digits, and hyphens. It appears in URLs.", children: _jsx("input", { value: slug, onChange: (event) => {
|
|
83
77
|
setSlug(event.target.value);
|
|
84
|
-
}, required: true, disabled: !canEdit, className: "w-full max-w-md rounded-md border border-border bg-surface-raised px-3 py-2 font-mono text-[13px] outline-none focus:border-accent focus:ring-2 focus:ring-accent/20 disabled:opacity-60" }) }), _jsx(Field, { label: "
|
|
85
|
-
setTagline(event.target.value);
|
|
86
|
-
}, placeholder: "CRM and company brain for agent-native startups", disabled: !canEdit, className: "w-full max-w-xl rounded-md border border-border bg-surface-raised px-3 py-2 text-[13px] outline-none focus:border-accent focus:ring-2 focus:ring-accent/20 disabled:opacity-60" }) }), _jsx(Field, { label: "One-liner", hint: "What the company does, in a sentence.", children: _jsx("textarea", { value: oneLiner, onChange: (event) => {
|
|
87
|
-
setOneLiner(event.target.value);
|
|
88
|
-
}, rows: 2, disabled: !canEdit, className: "w-full max-w-xl rounded-md border border-border bg-surface-raised px-3 py-2 text-[13px] outline-none focus:border-accent focus:ring-2 focus:ring-accent/20 disabled:opacity-60" }) }), _jsx(Field, { label: "Timezone", children: _jsx("select", { value: timezone, onChange: (event) => {
|
|
78
|
+
}, required: true, disabled: !canEdit, className: "w-full max-w-md rounded-md border border-border bg-surface-raised px-3 py-2 font-mono text-[13px] outline-none focus:border-accent focus:ring-2 focus:ring-accent/20 disabled:opacity-60" }) }), _jsx(Field, { label: "Timezone", children: _jsx("select", { value: timezone, onChange: (event) => {
|
|
89
79
|
setTimezone(event.target.value);
|
|
90
80
|
}, disabled: !canEdit, className: "w-full max-w-md rounded-md border border-border bg-surface-raised px-3 py-2 text-[13px] outline-none focus:border-accent disabled:opacity-60", children: timezones.map((zone) => (_jsx("option", { value: zone, children: zone }, zone))) }) }), update.error !== null && (_jsx("div", { className: "max-w-xl", children: _jsx(ErrorPanel, { error: update.error }) })), canEdit ? (_jsx("button", { type: "submit", disabled: update.isPending, className: "rounded-md bg-accent px-3.5 py-2 text-[12px] font-semibold text-accent-fg transition hover:bg-accent-hover disabled:opacity-50", children: update.isPending ? 'Saving…' : saved ? 'Saved' : 'Save changes' })) : (_jsx("p", { className: "text-[12px] text-ink-muted", children: "Workspace settings are changed by an admin or the owner." }))] }), _jsx(OwnCompanySection, { canEdit: canEdit }), session?.role === 'owner' && _jsx(DangerZone, { slug: workspace.slug })] }));
|
|
91
81
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WorkspaceSettingsPage.js","sourceRoot":"","sources":["../../../src/pages/admin/WorkspaceSettingsPage.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAEzC,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAE1C,OAAO,EACL,YAAY,EACZ,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,kCAAkC,CAAA;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAA;AAC3D,OAAO,EACL,kBAAkB,EAClB,kBAAkB,EAClB,YAAY,GACb,MAAM,kCAAkC,CAAA;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,kCAAmC,CAAA;AAEhE,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAiC,CAAA;AAC5D,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,gCAAiC,CAAA;AAE1E;;;;;;;;;;;GAWG;AAEH;;;;;;GAMG;AACH,MAAM,gBAAgB,GAAG;IACvB,kBAAkB;IAClB,qBAAqB;IACrB,qBAAqB;IACrB,kBAAkB;IAClB,eAAe;IACf,KAAK;CACG,CAAA;AAEV,MAAM,UAAU,qBAAqB;IACnC,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,YAAY,EAAE,CAAA;IAEtD,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QACnB,OAAO,KAAC,UAAU,IAAC,KAAK,EAAE,KAAK,GAAI,CAAA;IACrC,CAAC;IAED,IAAI,SAAS,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;QACzC,OAAO,KAAC,YAAY,KAAG,CAAA;IACzB,CAAC;IAED,+EAA+E;IAC/E,wCAAwC;IACxC,OAAO,KAAC,qBAAqB,IAAoB,SAAS,EAAE,SAAS,IAAlC,SAAS,CAAC,EAAE,CAA0B,CAAA;AAC3E,CAAC;AAED,SAAS,qBAAqB,CAAC,EAC7B,SAAS,GAGV;IACC,MAAM,EAAE,OAAO,EAAE,GAAG,UAAU,EAAE,CAAA;IAChC,MAAM,MAAM,GAAG,kBAAkB,EAAE,CAAA;IACnC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;IAChD,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;IAChD,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAA;IAC5D,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"WorkspaceSettingsPage.js","sourceRoot":"","sources":["../../../src/pages/admin/WorkspaceSettingsPage.tsx"],"names":[],"mappings":"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"}
|
|
@@ -43,4 +43,22 @@ export declare function SecondaryButton({ label, onClick, disabled, }: {
|
|
|
43
43
|
readonly onClick: () => void;
|
|
44
44
|
readonly disabled?: boolean;
|
|
45
45
|
}): React.JSX.Element;
|
|
46
|
+
/**
|
|
47
|
+
* A labelled rule, for a module separating its own buttons from the password
|
|
48
|
+
* form above them. Core never renders one itself; see `AuthMethods`.
|
|
49
|
+
*/
|
|
50
|
+
export declare function AuthDivider({ label }: {
|
|
51
|
+
readonly label?: string;
|
|
52
|
+
}): React.JSX.Element;
|
|
53
|
+
/**
|
|
54
|
+
* The secondary button as a link.
|
|
55
|
+
*
|
|
56
|
+
* A plain anchor, not a router link: a sign-in method leaves the app for its
|
|
57
|
+
* provider, and the destination is a server route the SPA router knows nothing
|
|
58
|
+
* about.
|
|
59
|
+
*/
|
|
60
|
+
export declare function AuthLinkButton({ label, href, }: {
|
|
61
|
+
readonly label: string;
|
|
62
|
+
readonly href: string;
|
|
63
|
+
}): React.JSX.Element;
|
|
46
64
|
//# sourceMappingURL=AuthForm.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AuthForm.d.ts","sourceRoot":"","sources":["../../../src/pages/auth/AuthForm.tsx"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH;;;GAGG;AACH,eAAO,MAAM,gBAAgB,+IACiH,CAAA;AAE9I,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,UAAU,CAAA;IAC7C,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IAC1C,uFAAuF;IACvF,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAA;IAC9B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;IAC3B,6EAA6E;IAC7E,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAA;CACxB;AAED,wBAAgB,SAAS,CAAC,EACxB,KAAK,EACL,IAAa,EACb,KAAK,EACL,QAAQ,EACR,YAAY,EACZ,WAAW,EACX,IAAI,EACJ,QAAgB,EAChB,IAAY,GACb,EAAE,cAAc,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAkBpC;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,kFAAkF;IAClF,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAA;CAC5B;AAKD,wBAAgB,YAAY,CAAC,EAC3B,KAAK,EACL,YAAY,EACZ,SAAS,GACV,EAAE,iBAAiB,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAMvC;AAED,mFAAmF;AACnF,wBAAgB,aAAa,CAAC,EAC5B,KAAK,EACL,OAAO,GACR,EAAE;IACD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,IAAI,CAAA;CAC7B,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAMpB;AAED,4EAA4E;AAC5E,wBAAgB,eAAe,CAAC,EAC9B,KAAK,EACL,OAAO,EACP,QAAgB,GACjB,EAAE;IACD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,IAAI,CAAA;IAC5B,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;CAC5B,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAWpB"}
|
|
1
|
+
{"version":3,"file":"AuthForm.d.ts","sourceRoot":"","sources":["../../../src/pages/auth/AuthForm.tsx"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH;;;GAGG;AACH,eAAO,MAAM,gBAAgB,+IACiH,CAAA;AAE9I,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,UAAU,CAAA;IAC7C,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IAC1C,uFAAuF;IACvF,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAA;IAC9B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;IAC3B,6EAA6E;IAC7E,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAA;CACxB;AAED,wBAAgB,SAAS,CAAC,EACxB,KAAK,EACL,IAAa,EACb,KAAK,EACL,QAAQ,EACR,YAAY,EACZ,WAAW,EACX,IAAI,EACJ,QAAgB,EAChB,IAAY,GACb,EAAE,cAAc,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAkBpC;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,kFAAkF;IAClF,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAA;CAC5B;AAKD,wBAAgB,YAAY,CAAC,EAC3B,KAAK,EACL,YAAY,EACZ,SAAS,GACV,EAAE,iBAAiB,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAMvC;AAED,mFAAmF;AACnF,wBAAgB,aAAa,CAAC,EAC5B,KAAK,EACL,OAAO,GACR,EAAE;IACD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,IAAI,CAAA;CAC7B,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAMpB;AAED,4EAA4E;AAC5E,wBAAgB,eAAe,CAAC,EAC9B,KAAK,EACL,OAAO,EACP,QAAgB,GACjB,EAAE;IACD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,IAAI,CAAA;IAC5B,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;CAC5B,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAWpB;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,EAAE,KAAY,EAAE,EAAE;IAAE,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAQ5F;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,EAC7B,KAAK,EACL,IAAI,GACL,EAAE;IACD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CACtB,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CASpB"}
|
|
@@ -29,4 +29,21 @@ export function PrimaryButton({ label, onClick, }) {
|
|
|
29
29
|
export function SecondaryButton({ label, onClick, disabled = false, }) {
|
|
30
30
|
return (_jsx("button", { type: "button", onClick: onClick, disabled: disabled, className: "w-full rounded-md border border-border bg-surface px-3.5 py-2 text-[12px] font-medium text-ink-muted transition hover:bg-surface-raised disabled:opacity-50", children: label }));
|
|
31
31
|
}
|
|
32
|
+
/**
|
|
33
|
+
* A labelled rule, for a module separating its own buttons from the password
|
|
34
|
+
* form above them. Core never renders one itself; see `AuthMethods`.
|
|
35
|
+
*/
|
|
36
|
+
export function AuthDivider({ label = 'or' }) {
|
|
37
|
+
return (_jsxs("div", { className: "flex items-center gap-3 py-1", children: [_jsx("span", { className: "h-px flex-1 bg-border" }), _jsx("span", { className: "text-[11px] text-ink-faint", children: label }), _jsx("span", { className: "h-px flex-1 bg-border" })] }));
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* The secondary button as a link.
|
|
41
|
+
*
|
|
42
|
+
* A plain anchor, not a router link: a sign-in method leaves the app for its
|
|
43
|
+
* provider, and the destination is a server route the SPA router knows nothing
|
|
44
|
+
* about.
|
|
45
|
+
*/
|
|
46
|
+
export function AuthLinkButton({ label, href, }) {
|
|
47
|
+
return (_jsx("a", { href: href, className: "block w-full rounded-md border border-border bg-surface px-3.5 py-2 text-center text-[12px] font-medium text-ink-muted transition hover:bg-surface-raised", children: label }));
|
|
48
|
+
}
|
|
32
49
|
//# sourceMappingURL=AuthForm.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AuthForm.js","sourceRoot":"","sources":["../../../src/pages/auth/AuthForm.tsx"],"names":[],"mappings":";AAAA;;;;;;;GAOG;AAEH;;;GAGG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAC3B,4IAA4I,CAAA;AAgB9I,MAAM,UAAU,SAAS,CAAC,EACxB,KAAK,EACL,IAAI,GAAG,MAAM,EACb,KAAK,EACL,QAAQ,EACR,YAAY,EACZ,WAAW,EACX,IAAI,EACJ,QAAQ,GAAG,KAAK,EAChB,IAAI,GAAG,KAAK,GACG;IACf,OAAO,CACL,iBAAO,SAAS,EAAC,OAAO,aACtB,eAAM,SAAS,EAAC,+CAA+C,YAAE,KAAK,GAAQ,EAC9E,gBACE,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE;oBAClB,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;gBAC9B,CAAC,EACD,YAAY,EAAE,YAAY,EAC1B,WAAW,EAAE,WAAW,EACxB,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC,GAAG,gBAAgB,YAAY,CAAC,CAAC,CAAC,gBAAgB,GACpE,EACD,IAAI,KAAK,SAAS,IAAI,eAAM,SAAS,EAAC,uCAAuC,YAAE,IAAI,GAAQ,IACtF,CACT,CAAA;AACH,CAAC;AASD,MAAM,aAAa,GACjB,uIAAuI,CAAA;AAEzI,MAAM,UAAU,YAAY,CAAC,EAC3B,KAAK,EACL,YAAY,EACZ,SAAS,GACS;IAClB,OAAO,CACL,iBAAQ,IAAI,EAAC,QAAQ,EAAC,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,aAAa,YAChE,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,GAC1B,CACV,CAAA;AACH,CAAC;AAED,mFAAmF;AACnF,MAAM,UAAU,aAAa,CAAC,EAC5B,KAAK,EACL,OAAO,GAIR;IACC,OAAO,CACL,iBAAQ,IAAI,EAAC,QAAQ,EAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,aAAa,YAC7D,KAAK,GACC,CACV,CAAA;AACH,CAAC;AAED,4EAA4E;AAC5E,MAAM,UAAU,eAAe,CAAC,EAC9B,KAAK,EACL,OAAO,EACP,QAAQ,GAAG,KAAK,GAKjB;IACC,OAAO,CACL,iBACE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAC,6JAA6J,YAEtK,KAAK,GACC,CACV,CAAA;AACH,CAAC"}
|
|
1
|
+
{"version":3,"file":"AuthForm.js","sourceRoot":"","sources":["../../../src/pages/auth/AuthForm.tsx"],"names":[],"mappings":";AAAA;;;;;;;GAOG;AAEH;;;GAGG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAC3B,4IAA4I,CAAA;AAgB9I,MAAM,UAAU,SAAS,CAAC,EACxB,KAAK,EACL,IAAI,GAAG,MAAM,EACb,KAAK,EACL,QAAQ,EACR,YAAY,EACZ,WAAW,EACX,IAAI,EACJ,QAAQ,GAAG,KAAK,EAChB,IAAI,GAAG,KAAK,GACG;IACf,OAAO,CACL,iBAAO,SAAS,EAAC,OAAO,aACtB,eAAM,SAAS,EAAC,+CAA+C,YAAE,KAAK,GAAQ,EAC9E,gBACE,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE;oBAClB,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;gBAC9B,CAAC,EACD,YAAY,EAAE,YAAY,EAC1B,WAAW,EAAE,WAAW,EACxB,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC,GAAG,gBAAgB,YAAY,CAAC,CAAC,CAAC,gBAAgB,GACpE,EACD,IAAI,KAAK,SAAS,IAAI,eAAM,SAAS,EAAC,uCAAuC,YAAE,IAAI,GAAQ,IACtF,CACT,CAAA;AACH,CAAC;AASD,MAAM,aAAa,GACjB,uIAAuI,CAAA;AAEzI,MAAM,UAAU,YAAY,CAAC,EAC3B,KAAK,EACL,YAAY,EACZ,SAAS,GACS;IAClB,OAAO,CACL,iBAAQ,IAAI,EAAC,QAAQ,EAAC,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,aAAa,YAChE,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,GAC1B,CACV,CAAA;AACH,CAAC;AAED,mFAAmF;AACnF,MAAM,UAAU,aAAa,CAAC,EAC5B,KAAK,EACL,OAAO,GAIR;IACC,OAAO,CACL,iBAAQ,IAAI,EAAC,QAAQ,EAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,aAAa,YAC7D,KAAK,GACC,CACV,CAAA;AACH,CAAC;AAED,4EAA4E;AAC5E,MAAM,UAAU,eAAe,CAAC,EAC9B,KAAK,EACL,OAAO,EACP,QAAQ,GAAG,KAAK,GAKjB;IACC,OAAO,CACL,iBACE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAC,6JAA6J,YAEtK,KAAK,GACC,CACV,CAAA;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,WAAW,CAAC,EAAE,KAAK,GAAG,IAAI,EAA+B;IACvE,OAAO,CACL,eAAK,SAAS,EAAC,8BAA8B,aAC3C,eAAM,SAAS,EAAC,uBAAuB,GAAG,EAC1C,eAAM,SAAS,EAAC,4BAA4B,YAAE,KAAK,GAAQ,EAC3D,eAAM,SAAS,EAAC,uBAAuB,GAAG,IACtC,CACP,CAAA;AACH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,cAAc,CAAC,EAC7B,KAAK,EACL,IAAI,GAIL;IACC,OAAO,CACL,YACE,IAAI,EAAE,IAAI,EACV,SAAS,EAAC,2JAA2J,YAEpK,KAAK,GACJ,CACL,CAAA;AACH,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { AuthMethodContext } from '../../registry/contributions.ts';
|
|
2
|
+
/**
|
|
3
|
+
* The `auth.methods` slot, rendered by the signed-out pages beside their form.
|
|
4
|
+
*
|
|
5
|
+
* Nothing is drawn around the contributions: no divider, no "or" rule. Whether
|
|
6
|
+
* a module has anything to show is decided at run time (a sign-in module with
|
|
7
|
+
* no provider configured renders nothing), so core framing would leave a
|
|
8
|
+
* heading over an empty space. A module that draws buttons draws its own
|
|
9
|
+
* divider with `AuthDivider`.
|
|
10
|
+
*/
|
|
11
|
+
export declare function AuthMethods({ intent, next }: AuthMethodContext): React.JSX.Element | null;
|
|
12
|
+
//# sourceMappingURL=AuthMethods.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AuthMethods.d.ts","sourceRoot":"","sources":["../../../src/pages/auth/AuthMethods.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAA;AAExE;;;;;;;;GAQG;AACH,wBAAgB,WAAW,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,iBAAiB,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,GAAG,IAAI,CAczF"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { Fragment } from 'react';
|
|
3
|
+
import { useAuthMethods } from '../../registry/context.js';
|
|
4
|
+
/**
|
|
5
|
+
* The `auth.methods` slot, rendered by the signed-out pages beside their form.
|
|
6
|
+
*
|
|
7
|
+
* Nothing is drawn around the contributions: no divider, no "or" rule. Whether
|
|
8
|
+
* a module has anything to show is decided at run time (a sign-in module with
|
|
9
|
+
* no provider configured renders nothing), so core framing would leave a
|
|
10
|
+
* heading over an empty space. A module that draws buttons draws its own
|
|
11
|
+
* divider with `AuthDivider`.
|
|
12
|
+
*/
|
|
13
|
+
export function AuthMethods({ intent, next }) {
|
|
14
|
+
const methods = useAuthMethods();
|
|
15
|
+
if (methods.length === 0) {
|
|
16
|
+
return null;
|
|
17
|
+
}
|
|
18
|
+
return (_jsx("div", { className: "mt-4 space-y-2", children: methods.map((method) => (_jsx(Fragment, { children: method.render({ intent, next }) }, method.id))) }));
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=AuthMethods.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AuthMethods.js","sourceRoot":"","sources":["../../../src/pages/auth/AuthMethods.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAEhC,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAG1D;;;;;;;;GAQG;AACH,MAAM,UAAU,WAAW,CAAC,EAAE,MAAM,EAAE,IAAI,EAAqB;IAC7D,MAAM,OAAO,GAAG,cAAc,EAAE,CAAA;IAEhC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,IAAI,CAAA;IACb,CAAC;IAED,OAAO,CACL,cAAK,SAAS,EAAC,gBAAgB,YAC5B,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CACvB,KAAC,QAAQ,cAAkB,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,IAA3C,MAAM,CAAC,EAAE,CAA8C,CACvE,CAAC,GACE,CACP,CAAA;AACH,CAAC"}
|
|
@@ -1,2 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Sign in, against `POST /v1/auth/login`.
|
|
3
|
+
*
|
|
4
|
+
* Where the browser goes afterwards is not always the app. An invitation link
|
|
5
|
+
* sends its token through `?next=`, and dropping it would land the invitee on
|
|
6
|
+
* People with the invitation still unaccepted.
|
|
7
|
+
*/
|
|
1
8
|
export declare function SignInPage(): React.JSX.Element;
|
|
2
9
|
//# sourceMappingURL=SignInPage.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SignInPage.d.ts","sourceRoot":"","sources":["../../../src/pages/auth/SignInPage.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"SignInPage.d.ts","sourceRoot":"","sources":["../../../src/pages/auth/SignInPage.tsx"],"names":[],"mappings":"AAWA;;;;;;GAMG;AAEH,wBAAgB,UAAU,IAAI,KAAK,CAAC,GAAG,CAAC,OAAO,CA0D9C"}
|
|
@@ -5,6 +5,8 @@ import { useLogIn } from '../../api/resources/session.js';
|
|
|
5
5
|
import { ErrorPanel } from '../../components/QueryState.js';
|
|
6
6
|
import { SubmitButton, TextField } from './AuthForm.js';
|
|
7
7
|
import { AuthLayout } from './AuthLayout.js';
|
|
8
|
+
import { AuthMethods } from './AuthMethods.js';
|
|
9
|
+
import { safeNext } from './nextPath.js';
|
|
8
10
|
/**
|
|
9
11
|
* Sign in, against `POST /v1/auth/login`.
|
|
10
12
|
*
|
|
@@ -12,13 +14,6 @@ import { AuthLayout } from './AuthLayout.js';
|
|
|
12
14
|
* sends its token through `?next=`, and dropping it would land the invitee on
|
|
13
15
|
* People with the invitation still unaccepted.
|
|
14
16
|
*/
|
|
15
|
-
/**
|
|
16
|
-
* Only a path within this app. An absolute URL in `?next=` would turn the
|
|
17
|
-
* sign-in form into an open redirect.
|
|
18
|
-
*/
|
|
19
|
-
function safeNext(value) {
|
|
20
|
-
return value !== null && value.startsWith('/') && !value.startsWith('//') ? value : '/dashboard';
|
|
21
|
-
}
|
|
22
17
|
export function SignInPage() {
|
|
23
18
|
const navigate = useNavigate();
|
|
24
19
|
const [searchParameters] = useSearchParams();
|
|
@@ -33,6 +28,6 @@ export function SignInPage() {
|
|
|
33
28
|
.then(() => navigate(next, { replace: true }))
|
|
34
29
|
.catch(() => undefined);
|
|
35
30
|
}
|
|
36
|
-
return (
|
|
31
|
+
return (_jsxs(AuthLayout, { title: "Sign in", footer: _jsxs("div", { className: "flex flex-col gap-1.5", children: [_jsx(Link, { to: "/forgot-password", className: "font-medium text-accent hover:underline", children: "Forgot password?" }), _jsxs("span", { className: "text-ink-muted", children: ["No account?", ' ', _jsx(Link, { to: "/signup", className: "font-medium text-accent hover:underline", children: "Sign up" })] })] }), children: [_jsxs("form", { onSubmit: submit, className: "mt-5 space-y-3", children: [_jsx(TextField, { label: "Email", type: "email", value: email, onChange: setEmail, autoComplete: "email", required: true }), _jsx(TextField, { label: "Password", type: "password", value: password, onChange: setPassword, autoComplete: "current-password", required: true }), logIn.error !== null && _jsx(ErrorPanel, { error: logIn.error }), _jsx(SubmitButton, { label: "Sign in", pendingLabel: "Signing in\u2026", isPending: logIn.isPending })] }), _jsx(AuthMethods, { intent: "login", next: next })] }));
|
|
37
32
|
}
|
|
38
33
|
//# sourceMappingURL=SignInPage.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SignInPage.js","sourceRoot":"","sources":["../../../src/pages/auth/SignInPage.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAEhC,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAEjE,OAAO,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAA;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAiC,CAAA;AAC5D,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,eAAgB,CAAA;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAkB,CAAA;
|
|
1
|
+
{"version":3,"file":"SignInPage.js","sourceRoot":"","sources":["../../../src/pages/auth/SignInPage.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAEhC,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAEjE,OAAO,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAA;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAiC,CAAA;AAC5D,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,eAAgB,CAAA;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAkB,CAAA;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAmB,CAAA;AAC/C,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAExC;;;;;;GAMG;AAEH,MAAM,UAAU,UAAU;IACxB,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAA;IAC9B,MAAM,CAAC,gBAAgB,CAAC,GAAG,eAAe,EAAE,CAAA;IAC5C,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAA;IACxB,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAA;IACtC,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAA;IAE5C,MAAM,IAAI,GAAG,QAAQ,CAAC,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAA;IAEnD,SAAS,MAAM,CAAC,KAAgB;QAC9B,KAAK,CAAC,cAAc,EAAE,CAAA;QAEtB,KAAK;aACF,QAAQ,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,CAAC;aAC3C,IAAI,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;aAC7C,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAA;IAC3B,CAAC;IAED,OAAO,CACL,MAAC,UAAU,IACT,KAAK,EAAC,SAAS,EACf,MAAM,EACJ,eAAK,SAAS,EAAC,uBAAuB,aACpC,KAAC,IAAI,IAAC,EAAE,EAAC,kBAAkB,EAAC,SAAS,EAAC,yCAAyC,iCAExE,EACP,gBAAM,SAAS,EAAC,gBAAgB,4BAClB,GAAG,EACf,KAAC,IAAI,IAAC,EAAE,EAAC,SAAS,EAAC,SAAS,EAAC,yCAAyC,wBAE/D,IACF,IACH,aAGR,gBAAM,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAC,gBAAgB,aAChD,KAAC,SAAS,IACR,KAAK,EAAC,OAAO,EACb,IAAI,EAAC,OAAO,EACZ,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,QAAQ,EAClB,YAAY,EAAC,OAAO,EACpB,QAAQ,SACR,EACF,KAAC,SAAS,IACR,KAAK,EAAC,UAAU,EAChB,IAAI,EAAC,UAAU,EACf,KAAK,EAAE,QAAQ,EACf,QAAQ,EAAE,WAAW,EACrB,YAAY,EAAC,kBAAkB,EAC/B,QAAQ,SACR,EACD,KAAK,CAAC,KAAK,KAAK,IAAI,IAAI,KAAC,UAAU,IAAC,KAAK,EAAE,KAAK,CAAC,KAAK,GAAI,EAC3D,KAAC,YAAY,IAAC,KAAK,EAAC,SAAS,EAAC,YAAY,EAAC,kBAAa,EAAC,SAAS,EAAE,KAAK,CAAC,SAAS,GAAI,IAClF,EACP,KAAC,WAAW,IAAC,MAAM,EAAC,OAAO,EAAC,IAAI,EAAE,IAAI,GAAI,IAC/B,CACd,CAAA;AACH,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SignUpPage.d.ts","sourceRoot":"","sources":["../../../src/pages/auth/SignUpPage.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"SignUpPage.d.ts","sourceRoot":"","sources":["../../../src/pages/auth/SignUpPage.tsx"],"names":[],"mappings":"AAWA;;;;;;;;;;;;GAYG;AACH,wBAAgB,UAAU,IAAI,KAAK,CAAC,GAAG,CAAC,OAAO,CAiF9C"}
|
|
@@ -6,6 +6,7 @@ import { useSignUp } from '../../api/resources/session.js';
|
|
|
6
6
|
import { ErrorPanel } from '../../components/QueryState.js';
|
|
7
7
|
import { SubmitButton, TextField } from './AuthForm.js';
|
|
8
8
|
import { AuthLayout } from './AuthLayout.js';
|
|
9
|
+
import { AuthMethods } from './AuthMethods.js';
|
|
9
10
|
/**
|
|
10
11
|
* Creating an account, against `POST /v1/auth/signup`.
|
|
11
12
|
*
|
|
@@ -44,6 +45,6 @@ export function SignUpPage() {
|
|
|
44
45
|
.then(() => navigate('/verify-email/pending', { replace: true }))
|
|
45
46
|
.catch(() => undefined);
|
|
46
47
|
}
|
|
47
|
-
return (
|
|
48
|
+
return (_jsxs(AuthLayout, { title: "Create account", description: "Next you will verify your email, then create a workspace for your company.", footer: _jsxs("span", { className: "text-ink-muted", children: ["Already have an account?", ' ', _jsx(Link, { to: "/login", className: "font-medium text-accent hover:underline", children: "Sign in" })] }), children: [_jsxs("form", { onSubmit: submit, className: "mt-5 space-y-3", children: [_jsx(TextField, { label: "Your name", value: name, onChange: setName, autoComplete: "name", required: true }), _jsx(TextField, { label: "Email", type: "email", value: email, onChange: setEmail, autoComplete: "email", required: true }), _jsx(TextField, { label: "Password", type: "password", value: password, onChange: setPassword, autoComplete: "new-password", hint: `At least ${String(MINIMUM_PASSWORD_LENGTH)} characters.`, required: true }), localError !== null && _jsx("p", { className: "text-[12px] text-danger", children: localError }), signUp.error !== null && _jsx(ErrorPanel, { error: signUp.error }), _jsx(SubmitButton, { label: "Continue", pendingLabel: "Creating\u2026", isPending: signUp.isPending })] }), _jsx(AuthMethods, { intent: "signup", next: "/dashboard" })] }));
|
|
48
49
|
}
|
|
49
50
|
//# sourceMappingURL=SignUpPage.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SignUpPage.js","sourceRoot":"","sources":["../../../src/pages/auth/SignUpPage.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAA;AACzD,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAEhC,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAEhD,OAAO,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAA;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAiC,CAAA;AAC5D,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,eAAgB,CAAA;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAkB,CAAA;
|
|
1
|
+
{"version":3,"file":"SignUpPage.js","sourceRoot":"","sources":["../../../src/pages/auth/SignUpPage.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Where a signed-out page sends the browser once it is signed in.
|
|
3
|
+
*
|
|
4
|
+
* Its own file rather than beside the form controls: a module exporting a
|
|
5
|
+
* component and a function from one file loses Fast Refresh, and this is
|
|
6
|
+
* exported to modules, which is the reason it is not page-local. A module
|
|
7
|
+
* contributing a sign-in method is handed the result and has to be able to
|
|
8
|
+
* rely on what it means.
|
|
9
|
+
*/
|
|
10
|
+
/**
|
|
11
|
+
* Only a path within this app. An absolute URL in `?next=` would turn a
|
|
12
|
+
* sign-in page into an open redirect.
|
|
13
|
+
*/
|
|
14
|
+
export declare function safeNext(value: string | null): string;
|
|
15
|
+
//# sourceMappingURL=nextPath.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nextPath.d.ts","sourceRoot":"","sources":["../../../src/pages/auth/nextPath.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAErD"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Where a signed-out page sends the browser once it is signed in.
|
|
3
|
+
*
|
|
4
|
+
* Its own file rather than beside the form controls: a module exporting a
|
|
5
|
+
* component and a function from one file loses Fast Refresh, and this is
|
|
6
|
+
* exported to modules, which is the reason it is not page-local. A module
|
|
7
|
+
* contributing a sign-in method is handed the result and has to be able to
|
|
8
|
+
* rely on what it means.
|
|
9
|
+
*/
|
|
10
|
+
/**
|
|
11
|
+
* Only a path within this app. An absolute URL in `?next=` would turn a
|
|
12
|
+
* sign-in page into an open redirect.
|
|
13
|
+
*/
|
|
14
|
+
export function safeNext(value) {
|
|
15
|
+
return value !== null && value.startsWith('/') && !value.startsWith('//') ? value : '/dashboard';
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=nextPath.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nextPath.js","sourceRoot":"","sources":["../../../src/pages/auth/nextPath.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH;;;GAGG;AACH,MAAM,UAAU,QAAQ,CAAC,KAAoB;IAC3C,OAAO,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,YAAY,CAAA;AAClG,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import {
|
|
2
|
+
import { labelForMapTarget } from '@kelpie/schemas';
|
|
3
3
|
import { useEffect, useRef, useState } from 'react';
|
|
4
4
|
import { unusedCrmPresets } from './fieldList.js';
|
|
5
5
|
import { SUBMISSION_FIELD_PRESETS } from './template.js';
|
|
@@ -36,7 +36,7 @@ export function AddFieldMenu({ fields, onAdd }) {
|
|
|
36
36
|
setOpen((current) => !current);
|
|
37
37
|
}, "aria-expanded": open, "aria-haspopup": "menu", className: "rounded-md bg-accent px-3 py-1.5 text-[12px] font-semibold text-accent-fg transition hover:bg-accent-hover", children: "+ Add field" }), open && (_jsxs("div", { role: "menu", "aria-label": "Field to add", className: "absolute right-0 z-20 mt-1.5 max-h-80 w-64 overflow-y-auto rounded-md border border-border bg-surface-raised py-1", children: [crmPresets.length > 0 && (_jsxs(_Fragment, { children: [_jsx("p", { className: "px-3 pb-1 pt-1.5 text-[10px] font-semibold uppercase tracking-wide text-ink-faint", children: "Writes to the CRM" }), crmPresets.map((preset) => (_jsxs("button", { type: "button", role: "menuitem", onClick: () => {
|
|
38
38
|
add(preset);
|
|
39
|
-
}, className: "flex w-full items-center justify-between gap-2 px-3 py-1.5 text-left text-[13px] text-ink transition hover:bg-surface-sunken", children: [_jsx("span", { children: preset.label }), _jsx("span", { className: "shrink-0 text-[11px] text-ink-faint", children:
|
|
39
|
+
}, className: "flex w-full items-center justify-between gap-2 px-3 py-1.5 text-left text-[13px] text-ink transition hover:bg-surface-sunken", children: [_jsx("span", { children: preset.label }), _jsx("span", { className: "shrink-0 text-[11px] text-ink-faint", children: labelForMapTarget(preset.mapTo) })] }, preset.mapTo)))] })), _jsx("p", { className: "px-3 pb-1 pt-1.5 text-[10px] font-semibold uppercase tracking-wide text-ink-faint", children: "Submission only" }), SUBMISSION_FIELD_PRESETS.map((preset) => (_jsx("button", { type: "button", role: "menuitem", onClick: () => {
|
|
40
40
|
add(preset.field);
|
|
41
41
|
}, className: "w-full px-3 py-1.5 text-left text-[13px] text-ink transition hover:bg-surface-sunken", children: preset.menuLabel }, preset.menuLabel)))] }))] }));
|
|
42
42
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AddFieldMenu.js","sourceRoot":"","sources":["../../../src/pages/forms/AddFieldMenu.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"AddFieldMenu.js","sourceRoot":"","sources":["../../../src/pages/forms/AddFieldMenu.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FieldsEditor.d.ts","sourceRoot":"","sources":["../../../src/pages/forms/FieldsEditor.tsx"],"names":[],"mappings":"AAYA,OAAO,KAAK,EACV,IAAI,
|
|
1
|
+
{"version":3,"file":"FieldsEditor.d.ts","sourceRoot":"","sources":["../../../src/pages/forms/FieldsEditor.tsx"],"names":[],"mappings":"AAYA,OAAO,KAAK,EACV,IAAI,EAIL,MAAM,iBAAiB,CAAA;AAuDxB,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAA;CACpB;AAED,wBAAgB,YAAY,CAAC,EAAE,IAAI,EAAE,EAAE,iBAAiB,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CA+K3E"}
|
|
@@ -2,13 +2,15 @@ import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-run
|
|
|
2
2
|
import { DndContext, KeyboardSensor, PointerSensor, closestCenter, useSensor, useSensors, } from '@dnd-kit/core';
|
|
3
3
|
import { SortableContext, useSortable, verticalListSortingStrategy } from '@dnd-kit/sortable';
|
|
4
4
|
import { CSS } from '@dnd-kit/utilities';
|
|
5
|
-
import {
|
|
6
|
-
import { useEffect, useRef, useState } from 'react';
|
|
5
|
+
import { FORM_OPTION_VALUE_TYPES } from '@kelpie/schemas';
|
|
6
|
+
import { useEffect, useMemo, useRef, useState } from 'react';
|
|
7
7
|
import { useConsentPurposes } from '../../api/resources/consentPurposes.js';
|
|
8
|
+
import { useCustomFields } from '../../api/resources/customFields.js';
|
|
8
9
|
import { useUpdateFormFields } from '../../api/resources/forms.js';
|
|
9
10
|
import { ErrorPanel } from '../../components/QueryState.js';
|
|
10
11
|
import { AddFieldMenu } from './AddFieldMenu.js';
|
|
11
|
-
import {
|
|
12
|
+
import { MapTargetSearch } from './MapTargetSearch.js';
|
|
13
|
+
import { FIELD_TYPE_OPTIONS, editField, fieldsChanged, findProblems, insertField, isUsable, removeField, reorderFields, toEditableFields, toFieldInputs, typeForTarget, } from './fieldList.js';
|
|
12
14
|
/**
|
|
13
15
|
* The field builder: the form as a visitor will see it, edited in place.
|
|
14
16
|
*
|
|
@@ -37,6 +39,13 @@ export function FieldsEditor({ form }) {
|
|
|
37
39
|
const [fields, setFields] = useState(() => toEditableFields(form));
|
|
38
40
|
const [selectedId, setSelectedId] = useState(null);
|
|
39
41
|
const updateFields = useUpdateFormFields();
|
|
42
|
+
const customFields = useCustomFields();
|
|
43
|
+
const customFieldDefinitions = useMemo(() => customFields.records.map((definition) => ({
|
|
44
|
+
objectType: definition.objectType,
|
|
45
|
+
key: definition.key,
|
|
46
|
+
label: definition.label,
|
|
47
|
+
type: definition.type,
|
|
48
|
+
})), [customFields.records]);
|
|
40
49
|
const fieldsRef = useRef(fields);
|
|
41
50
|
fieldsRef.current = fields;
|
|
42
51
|
const sensors = useSensors(useSensor(PointerSensor, { activationConstraint: { distance: 6 } }), useSensor(KeyboardSensor));
|
|
@@ -55,7 +64,7 @@ export function FieldsEditor({ form }) {
|
|
|
55
64
|
});
|
|
56
65
|
setFields(next);
|
|
57
66
|
}, [form]);
|
|
58
|
-
const problems = findProblems(fields, form.createDeal);
|
|
67
|
+
const problems = findProblems(fields, form.createDeal, { customFieldDefinitions });
|
|
59
68
|
const changed = fieldsChanged(form, fields);
|
|
60
69
|
const selected = fields.find((field) => field.id === selectedId);
|
|
61
70
|
function onDragEnd(event) {
|
|
@@ -74,7 +83,7 @@ export function FieldsEditor({ form }) {
|
|
|
74
83
|
}
|
|
75
84
|
return (_jsxs("div", { children: [_jsxs("div", { className: "mb-3 flex items-start justify-between gap-2", children: [_jsxs("div", { className: "min-w-0", children: [_jsx("h2", { className: "text-[13px] font-semibold text-ink", children: "Fields" }), _jsx("p", { className: "mt-0.5 text-[11px] text-ink-faint", children: "Click a field to edit it. Drag the anchor to reorder. What a field maps to decides what a submission writes." })] }), _jsx(AddFieldMenu, { fields: fields, onAdd: addField })] }), problems.list.map((problem) => (_jsx("p", { className: "mb-2 text-[12px] text-danger", children: problem }, problem))), _jsxs("div", { className: "grid items-start gap-6 lg:grid-cols-[minmax(0,1fr)_300px]", children: [_jsxs("div", { className: "rounded-lg border border-border bg-surface-raised p-4 sm:p-6", children: [fields.length === 0 ? (_jsx("p", { className: "rounded-md border border-dashed border-border px-6 py-10 text-center text-[13px] text-ink-muted", children: "No fields yet. A form needs at least an email field." })) : (_jsx(DndContext, { sensors: sensors, collisionDetection: closestCenter, onDragEnd: onDragEnd, children: _jsx(SortableContext, { items: fields.map((field) => field.id), strategy: verticalListSortingStrategy, children: _jsx("ul", { className: "flex flex-col gap-1", children: fields.map((field) => (_jsx(PreviewField, { field: field, selected: field.id === selectedId, problem: problems.byField.get(field.id), onSelect: () => {
|
|
76
85
|
setSelectedId(field.id);
|
|
77
|
-
} }, field.id))) }) }) })), _jsx("div", { className: "mt-4 pl-7", "aria-hidden": "true", children: _jsx("span", { className: "pointer-events-none inline-flex rounded-md bg-accent px-4 py-2 text-[13px] font-semibold text-accent-fg", children: "Submit" }) })] }), selected === undefined ? (_jsx("aside", { className: "rounded-lg border border-dashed border-border p-4 text-[13px] text-ink-muted lg:sticky lg:top-4", children: "Select a field in the preview to edit its label, mapping, and type. \"Add field\" appends a new one." })) : (_jsx(FieldSettings, { field: selected, problem: problems.byField.get(selected.id), onChange: (change) => {
|
|
86
|
+
} }, field.id))) }) }) })), _jsx("div", { className: "mt-4 pl-7", "aria-hidden": "true", children: _jsx("span", { className: "pointer-events-none inline-flex rounded-md bg-accent px-4 py-2 text-[13px] font-semibold text-accent-fg", children: "Submit" }) })] }), selected === undefined ? (_jsx("aside", { className: "rounded-lg border border-dashed border-border p-4 text-[13px] text-ink-muted lg:sticky lg:top-4", children: "Select a field in the preview to edit its label, mapping, and type. \"Add field\" appends a new one." })) : (_jsx(FieldSettings, { field: selected, fields: fields, customFieldDefinitions: customFieldDefinitions, problem: problems.byField.get(selected.id), onChange: (change) => {
|
|
78
87
|
setFields((current) => editField(current, selected.id, change));
|
|
79
88
|
}, onRemove: () => {
|
|
80
89
|
setFields((current) => removeField(current, selected.id));
|
|
@@ -152,13 +161,16 @@ function ConsentPreview({ field }) {
|
|
|
152
161
|
return (_jsxs("div", { className: "space-y-1.5", children: [_jsx("p", { className: "text-[12px] text-ink-muted", children: statement }), ids.length === 0 ? (_jsx("p", { className: "text-[11px] italic text-ink-faint", children: "Pick at least one purpose in the settings panel." })) : (ids.map((id) => (_jsxs("div", { className: "flex items-start gap-2", children: [_jsx("input", { readOnly: true, tabIndex: -1, type: "checkbox", className: "mt-0.5" }), _jsx("span", { className: "text-[13px] text-ink", children: overrides[id] ?? labelById.get(id) ?? id })] }, id))))] }));
|
|
153
162
|
}
|
|
154
163
|
/** The panel a selected field's settings edit in. */
|
|
155
|
-
function FieldSettings({ field, problem, onChange, onRemove, onClose, }) {
|
|
164
|
+
function FieldSettings({ field, fields, customFieldDefinitions, problem, onChange, onRemove, onClose, }) {
|
|
165
|
+
const usedTargets = useMemo(() => new Set(fields.filter((entry) => entry.id !== field.id).map((entry) => entry.mapTo)), [fields, field.id]);
|
|
156
166
|
return (_jsxs("aside", { className: "rounded-lg border border-border bg-surface-raised p-4 lg:sticky lg:top-4", children: [_jsxs("div", { className: "mb-3 flex items-center justify-between gap-2", children: [_jsx("h3", { className: "text-[12px] font-semibold text-ink", children: "Field settings" }), _jsx("button", { type: "button", onClick: onClose, "aria-label": "Close field settings", className: "rounded-md px-1.5 py-1 text-[12px] text-ink-faint transition hover:text-ink", children: "\u2715" })] }), _jsxs("div", { className: "flex flex-col gap-3", children: [_jsxs("label", { className: "block", children: [_jsx("span", { className: "mb-1 block text-[11px] font-medium text-ink-faint", children: "Label" }), _jsx("input", { className: inputClass, value: field.label, onChange: (event) => {
|
|
157
167
|
onChange({ label: event.target.value });
|
|
158
|
-
} })] }), _jsxs("
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
168
|
+
} })] }), _jsxs("div", { className: "block", children: [_jsx("span", { className: "mb-1 block text-[11px] font-medium text-ink-faint", children: "Maps to" }), _jsx(MapTargetSearch, { value: field.mapTo, usedTargets: usedTargets, onChange: (mapTo) => {
|
|
169
|
+
onChange({
|
|
170
|
+
mapTo,
|
|
171
|
+
type: typeForTarget(mapTo, field.type, customFieldDefinitions),
|
|
172
|
+
});
|
|
173
|
+
} })] }), _jsxs("label", { className: "block", children: [_jsx("span", { className: "mb-1 block text-[11px] font-medium text-ink-faint", children: "Type" }), _jsx("select", { className: inputClass, value: field.type, onChange: (event) => {
|
|
162
174
|
onChange({ type: event.target.value });
|
|
163
175
|
}, children: FIELD_TYPE_OPTIONS.map((option) => (_jsx("option", { value: option.value, children: option.label }, option.value))) })] }), _jsxs("label", { className: "block", children: [_jsx("span", { className: "mb-1 block text-[11px] font-medium text-ink-faint", children: "Placeholder" }), _jsx("input", { className: inputClass, value: field.placeholder ?? '', onChange: (event) => {
|
|
164
176
|
onChange({ placeholder: event.target.value.length === 0 ? null : event.target.value });
|