@kelpie/ui 0.7.0 → 0.9.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/resource.d.ts +59 -6
- package/dist/api/resource.d.ts.map +1 -1
- package/dist/api/resource.js +106 -24
- package/dist/api/resource.js.map +1 -1
- package/dist/api/resources/companies.d.ts +2 -0
- package/dist/api/resources/companies.d.ts.map +1 -1
- package/dist/api/resources/companies.js +5 -1
- package/dist/api/resources/companies.js.map +1 -1
- package/dist/api/resources/consentPurposes.d.ts +13 -0
- package/dist/api/resources/consentPurposes.d.ts.map +1 -0
- package/dist/api/resources/consentPurposes.js +39 -0
- package/dist/api/resources/consentPurposes.js.map +1 -0
- package/dist/api/resources/customFields.d.ts +15 -0
- package/dist/api/resources/customFields.d.ts.map +1 -0
- package/dist/api/resources/customFields.js +41 -0
- package/dist/api/resources/customFields.js.map +1 -0
- package/dist/api/resources/decisions.d.ts +2 -0
- package/dist/api/resources/decisions.d.ts.map +1 -1
- package/dist/api/resources/decisions.js +1 -0
- package/dist/api/resources/decisions.js.map +1 -1
- package/dist/api/resources/emailDomainLinker.d.ts +16 -0
- package/dist/api/resources/emailDomainLinker.d.ts.map +1 -0
- package/dist/api/resources/emailDomainLinker.js +16 -0
- package/dist/api/resources/emailDomainLinker.js.map +1 -0
- package/dist/api/resources/enquiries.d.ts +39 -0
- package/dist/api/resources/enquiries.d.ts.map +1 -0
- package/dist/api/resources/enquiries.js +68 -0
- package/dist/api/resources/enquiries.js.map +1 -0
- package/dist/api/resources/forms.d.ts +21 -1
- package/dist/api/resources/forms.d.ts.map +1 -1
- package/dist/api/resources/forms.js +44 -17
- package/dist/api/resources/forms.js.map +1 -1
- package/dist/api/resources/handbookPages.d.ts +1 -1
- package/dist/api/resources/handbookPages.js +1 -1
- package/dist/api/resources/importJobs.d.ts +5 -0
- package/dist/api/resources/importJobs.d.ts.map +1 -1
- package/dist/api/resources/importJobs.js +3 -0
- package/dist/api/resources/importJobs.js.map +1 -1
- package/dist/api/resources/listMembers.d.ts +27 -0
- package/dist/api/resources/listMembers.d.ts.map +1 -0
- package/dist/api/resources/listMembers.js +108 -0
- package/dist/api/resources/listMembers.js.map +1 -0
- package/dist/api/resources/lists.d.ts +14 -0
- package/dist/api/resources/lists.d.ts.map +1 -0
- package/dist/api/resources/lists.js +34 -0
- package/dist/api/resources/lists.js.map +1 -0
- package/dist/api/resources/opportunities.d.ts +2 -0
- package/dist/api/resources/opportunities.d.ts.map +1 -1
- package/dist/api/resources/opportunities.js +1 -0
- package/dist/api/resources/opportunities.js.map +1 -1
- package/dist/api/resources/people.d.ts.map +1 -1
- package/dist/api/resources/people.js +4 -1
- package/dist/api/resources/people.js.map +1 -1
- package/dist/api/resources/roles.d.ts +2 -0
- package/dist/api/resources/roles.d.ts.map +1 -1
- package/dist/api/resources/roles.js +1 -1
- package/dist/api/resources/roles.js.map +1 -1
- package/dist/api/resources/sampleData.d.ts +17 -0
- package/dist/api/resources/sampleData.d.ts.map +1 -0
- package/dist/api/resources/sampleData.js +31 -0
- package/dist/api/resources/sampleData.js.map +1 -0
- package/dist/api/resources/webhooks.d.ts.map +1 -1
- package/dist/api/resources/webhooks.js +7 -22
- package/dist/api/resources/webhooks.js.map +1 -1
- package/dist/app/KelpieApp.d.ts.map +1 -1
- package/dist/app/KelpieApp.js +9 -1
- package/dist/app/KelpieApp.js.map +1 -1
- package/dist/components/ActivitiesPanel.d.ts.map +1 -1
- package/dist/components/ActivitiesPanel.js +3 -1
- package/dist/components/ActivitiesPanel.js.map +1 -1
- package/dist/components/ColumnPicker.d.ts +24 -0
- package/dist/components/ColumnPicker.d.ts.map +1 -0
- package/dist/components/ColumnPicker.js +56 -0
- package/dist/components/ColumnPicker.js.map +1 -0
- package/dist/components/CustomFieldsPanel.d.ts +23 -0
- package/dist/components/CustomFieldsPanel.d.ts.map +1 -0
- package/dist/components/CustomFieldsPanel.js +116 -0
- package/dist/components/CustomFieldsPanel.js.map +1 -0
- package/dist/components/DataTable.d.ts +16 -1
- package/dist/components/DataTable.d.ts.map +1 -1
- package/dist/components/DataTable.js +51 -10
- package/dist/components/DataTable.js.map +1 -1
- package/dist/components/DecisionsPanel.d.ts.map +1 -1
- package/dist/components/DecisionsPanel.js +4 -3
- package/dist/components/DecisionsPanel.js.map +1 -1
- package/dist/components/EntitySearch.d.ts.map +1 -1
- package/dist/components/EntitySearch.js +11 -5
- package/dist/components/EntitySearch.js.map +1 -1
- package/dist/components/FormsPanel.d.ts +18 -0
- package/dist/components/FormsPanel.d.ts.map +1 -0
- package/dist/components/FormsPanel.js +37 -0
- package/dist/components/FormsPanel.js.map +1 -0
- package/dist/components/ListsPanel.d.ts +14 -0
- package/dist/components/ListsPanel.d.ts.map +1 -0
- package/dist/components/ListsPanel.js +56 -0
- package/dist/components/ListsPanel.js.map +1 -0
- package/dist/components/NotesPanel.d.ts.map +1 -1
- package/dist/components/NotesPanel.js +6 -5
- package/dist/components/NotesPanel.js.map +1 -1
- package/dist/components/Paginator.d.ts +26 -0
- package/dist/components/Paginator.d.ts.map +1 -0
- package/dist/components/Paginator.js +16 -0
- package/dist/components/Paginator.js.map +1 -0
- package/dist/components/PlanAttention.d.ts +3 -2
- package/dist/components/PlanAttention.d.ts.map +1 -1
- package/dist/components/PlanAttention.js +7 -3
- package/dist/components/PlanAttention.js.map +1 -1
- package/dist/components/PlanPanel.d.ts.map +1 -1
- package/dist/components/PlanPanel.js +2 -1
- package/dist/components/PlanPanel.js.map +1 -1
- package/dist/components/Shell.d.ts.map +1 -1
- package/dist/components/Shell.js +4 -0
- package/dist/components/Shell.js.map +1 -1
- package/dist/components/useHasCustomFields.d.ts +13 -0
- package/dist/components/useHasCustomFields.d.ts.map +1 -0
- package/dist/components/useHasCustomFields.js +16 -0
- package/dist/components/useHasCustomFields.js.map +1 -0
- package/dist/index.d.ts +8 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -1
- package/dist/index.js.map +1 -1
- package/dist/lib/listView.d.ts +15 -0
- package/dist/lib/listView.d.ts.map +1 -0
- package/dist/lib/listView.js +66 -0
- package/dist/lib/listView.js.map +1 -0
- package/dist/lib/sort.d.ts +43 -0
- package/dist/lib/sort.d.ts.map +1 -0
- package/dist/lib/sort.js +102 -0
- package/dist/lib/sort.js.map +1 -0
- package/dist/pages/CompaniesPage.d.ts.map +1 -1
- package/dist/pages/CompaniesPage.js +88 -3
- package/dist/pages/CompaniesPage.js.map +1 -1
- package/dist/pages/CompanyDetail.d.ts.map +1 -1
- package/dist/pages/CompanyDetail.js +40 -15
- package/dist/pages/CompanyDetail.js.map +1 -1
- package/dist/pages/DealDetail.d.ts.map +1 -1
- package/dist/pages/DealDetail.js +20 -1
- package/dist/pages/DealDetail.js.map +1 -1
- package/dist/pages/DealsPage.d.ts.map +1 -1
- package/dist/pages/DealsPage.js +134 -14
- package/dist/pages/DealsPage.js.map +1 -1
- package/dist/pages/DecisionsPage.d.ts.map +1 -1
- package/dist/pages/DecisionsPage.js +52 -8
- package/dist/pages/DecisionsPage.js.map +1 -1
- package/dist/pages/EnquiriesPage.d.ts +2 -0
- package/dist/pages/EnquiriesPage.d.ts.map +1 -0
- package/dist/pages/EnquiriesPage.js +251 -0
- package/dist/pages/EnquiriesPage.js.map +1 -0
- package/dist/pages/EnquiryDetail.d.ts +2 -0
- package/dist/pages/EnquiryDetail.d.ts.map +1 -0
- package/dist/pages/EnquiryDetail.js +207 -0
- package/dist/pages/EnquiryDetail.js.map +1 -0
- package/dist/pages/EnquiryStageSettingsPage.d.ts +3 -0
- package/dist/pages/EnquiryStageSettingsPage.d.ts.map +1 -0
- package/dist/pages/EnquiryStageSettingsPage.js +34 -0
- package/dist/pages/EnquiryStageSettingsPage.js.map +1 -0
- package/dist/pages/FormDetail.d.ts.map +1 -1
- package/dist/pages/FormDetail.js +19 -1
- package/dist/pages/FormDetail.js.map +1 -1
- package/dist/pages/FormsPage.d.ts.map +1 -1
- package/dist/pages/FormsPage.js +53 -2
- package/dist/pages/FormsPage.js.map +1 -1
- package/dist/pages/FundraisingPage.d.ts.map +1 -1
- package/dist/pages/FundraisingPage.js +116 -14
- package/dist/pages/FundraisingPage.js.map +1 -1
- package/dist/pages/HiringPage.d.ts.map +1 -1
- package/dist/pages/HiringPage.js +27 -4
- package/dist/pages/HiringPage.js.map +1 -1
- package/dist/pages/ListDetail.d.ts +11 -0
- package/dist/pages/ListDetail.d.ts.map +1 -0
- package/dist/pages/ListDetail.js +214 -0
- package/dist/pages/ListDetail.js.map +1 -0
- package/dist/pages/ListsPage.d.ts +9 -0
- package/dist/pages/ListsPage.d.ts.map +1 -0
- package/dist/pages/ListsPage.js +125 -0
- package/dist/pages/ListsPage.js.map +1 -0
- package/dist/pages/OpportunitiesPage.d.ts.map +1 -1
- package/dist/pages/OpportunitiesPage.js +97 -14
- package/dist/pages/OpportunitiesPage.js.map +1 -1
- package/dist/pages/OpportunityDetail.d.ts.map +1 -1
- package/dist/pages/OpportunityDetail.js +64 -3
- package/dist/pages/OpportunityDetail.js.map +1 -1
- package/dist/pages/PartnershipDetail.d.ts.map +1 -1
- package/dist/pages/PartnershipDetail.js +19 -1
- package/dist/pages/PartnershipDetail.js.map +1 -1
- package/dist/pages/PartnershipsPage.d.ts.map +1 -1
- package/dist/pages/PartnershipsPage.js +111 -14
- package/dist/pages/PartnershipsPage.js.map +1 -1
- package/dist/pages/PeoplePage.d.ts.map +1 -1
- package/dist/pages/PeoplePage.js +119 -3
- package/dist/pages/PeoplePage.js.map +1 -1
- package/dist/pages/PersonDetail.d.ts.map +1 -1
- package/dist/pages/PersonDetail.js +67 -5
- package/dist/pages/PersonDetail.js.map +1 -1
- package/dist/pages/PlanningPage.d.ts.map +1 -1
- package/dist/pages/PlanningPage.js +88 -17
- package/dist/pages/PlanningPage.js.map +1 -1
- package/dist/pages/RaiseDetail.d.ts.map +1 -1
- package/dist/pages/RaiseDetail.js +13 -1
- package/dist/pages/RaiseDetail.js.map +1 -1
- package/dist/pages/RoleDetail.d.ts.map +1 -1
- package/dist/pages/RoleDetail.js +5 -4
- package/dist/pages/RoleDetail.js.map +1 -1
- package/dist/pages/SearchPage.d.ts.map +1 -1
- package/dist/pages/SearchPage.js +1 -0
- package/dist/pages/SearchPage.js.map +1 -1
- package/dist/pages/admin/DataPage.d.ts.map +1 -1
- package/dist/pages/admin/DataPage.js +126 -13
- package/dist/pages/admin/DataPage.js.map +1 -1
- package/dist/pages/admin/FieldsPage.d.ts +2 -0
- package/dist/pages/admin/FieldsPage.d.ts.map +1 -0
- package/dist/pages/admin/FieldsPage.js +164 -0
- package/dist/pages/admin/FieldsPage.js.map +1 -0
- package/dist/pages/admin/PrivacyPage.d.ts +9 -0
- package/dist/pages/admin/PrivacyPage.d.ts.map +1 -0
- package/dist/pages/admin/PrivacyPage.js +170 -0
- package/dist/pages/admin/PrivacyPage.js.map +1 -0
- package/dist/pages/admin/WebhookDeliveries.d.ts.map +1 -1
- package/dist/pages/admin/WebhookDeliveries.js +3 -2
- package/dist/pages/admin/WebhookDeliveries.js.map +1 -1
- package/dist/pages/admin/WebhooksPage.d.ts.map +1 -1
- package/dist/pages/admin/WebhooksPage.js +3 -2
- package/dist/pages/admin/WebhooksPage.js.map +1 -1
- package/dist/pages/admin/WorkspaceSettingsPage.d.ts.map +1 -1
- package/dist/pages/admin/WorkspaceSettingsPage.js +45 -2
- package/dist/pages/admin/WorkspaceSettingsPage.js.map +1 -1
- package/dist/pages/dashboard/attention.d.ts.map +1 -1
- package/dist/pages/dashboard/attention.js +3 -0
- package/dist/pages/dashboard/attention.js.map +1 -1
- package/dist/pages/forms/AddFieldMenu.d.ts +17 -0
- package/dist/pages/forms/AddFieldMenu.d.ts.map +1 -0
- package/dist/pages/forms/AddFieldMenu.js +43 -0
- package/dist/pages/forms/AddFieldMenu.js.map +1 -0
- package/dist/pages/forms/EmbedPanel.d.ts +4 -0
- package/dist/pages/forms/EmbedPanel.d.ts.map +1 -1
- package/dist/pages/forms/EmbedPanel.js +62 -3
- package/dist/pages/forms/EmbedPanel.js.map +1 -1
- package/dist/pages/forms/FieldsEditor.d.ts.map +1 -1
- package/dist/pages/forms/FieldsEditor.js +179 -36
- package/dist/pages/forms/FieldsEditor.js.map +1 -1
- package/dist/pages/forms/FormActions.d.ts +6 -0
- package/dist/pages/forms/FormActions.d.ts.map +1 -0
- package/dist/pages/forms/FormActions.js +149 -0
- package/dist/pages/forms/FormActions.js.map +1 -0
- package/dist/pages/forms/FormSettings.d.ts.map +1 -1
- package/dist/pages/forms/FormSettings.js +15 -19
- package/dist/pages/forms/FormSettings.js.map +1 -1
- package/dist/pages/forms/SubmissionDetail.d.ts +2 -0
- package/dist/pages/forms/SubmissionDetail.d.ts.map +1 -0
- package/dist/pages/forms/SubmissionDetail.js +76 -0
- package/dist/pages/forms/SubmissionDetail.js.map +1 -0
- package/dist/pages/forms/SubmissionsTable.d.ts.map +1 -1
- package/dist/pages/forms/SubmissionsTable.js +57 -8
- package/dist/pages/forms/SubmissionsTable.js.map +1 -1
- package/dist/pages/forms/fieldList.d.ts +11 -5
- package/dist/pages/forms/fieldList.d.ts.map +1 -1
- package/dist/pages/forms/fieldList.js +66 -6
- package/dist/pages/forms/fieldList.js.map +1 -1
- package/dist/pages/forms/template.d.ts +17 -0
- package/dist/pages/forms/template.d.ts.map +1 -1
- package/dist/pages/forms/template.js +93 -0
- package/dist/pages/forms/template.js.map +1 -1
- package/dist/pages/handbook/HandbookPage.js +1 -1
- package/dist/pages/hiringDirectory.js +2 -2
- package/dist/pages/onboarding/WorkspaceStepPage.d.ts.map +1 -1
- package/dist/pages/onboarding/WorkspaceStepPage.js +15 -2
- package/dist/pages/onboarding/WorkspaceStepPage.js.map +1 -1
- package/dist/pages/positionDirectory.js +2 -2
- package/package.json +2 -2
- package/src/api/resource.ts +155 -32
- package/src/api/resources/companies.ts +7 -1
- package/src/api/resources/consentPurposes.ts +83 -0
- package/src/api/resources/customFields.ts +88 -0
- package/src/api/resources/decisions.ts +3 -0
- package/src/api/resources/emailDomainLinker.ts +43 -0
- package/src/api/resources/enquiries.ts +118 -0
- package/src/api/resources/forms.ts +59 -19
- package/src/api/resources/handbookPages.ts +1 -1
- package/src/api/resources/importJobs.ts +9 -0
- package/src/api/resources/listMembers.ts +173 -0
- package/src/api/resources/lists.ts +61 -0
- package/src/api/resources/opportunities.ts +3 -0
- package/src/api/resources/people.ts +4 -1
- package/src/api/resources/roles.ts +3 -1
- package/src/api/resources/sampleData.ts +57 -0
- package/src/api/resources/webhooks.ts +8 -24
- package/src/app/KelpieApp.tsx +16 -0
- package/src/components/ActivitiesPanel.tsx +3 -10
- package/src/components/ColumnPicker.tsx +124 -0
- package/src/components/CustomFieldsPanel.tsx +330 -0
- package/src/components/DataTable.tsx +89 -10
- package/src/components/DecisionsPanel.tsx +4 -12
- package/src/components/EntitySearch.tsx +12 -5
- package/src/components/FormsPanel.tsx +86 -0
- package/src/components/ListsPanel.tsx +176 -0
- package/src/components/NotesPanel.tsx +6 -14
- package/src/components/Paginator.tsx +78 -0
- package/src/components/PlanAttention.tsx +20 -3
- package/src/components/PlanPanel.tsx +2 -10
- package/src/components/Shell.tsx +4 -0
- package/src/components/useHasCustomFields.ts +18 -0
- package/src/index.ts +10 -1
- package/src/lib/listView.ts +149 -0
- package/src/lib/sort.ts +143 -0
- package/src/pages/CompaniesPage.tsx +125 -11
- package/src/pages/CompanyDetail.tsx +98 -63
- package/src/pages/DealDetail.tsx +34 -0
- package/src/pages/DealsPage.tsx +178 -24
- package/src/pages/DecisionsPage.tsx +75 -18
- package/src/pages/EnquiriesPage.tsx +434 -0
- package/src/pages/EnquiryDetail.tsx +554 -0
- package/src/pages/EnquiryStageSettingsPage.tsx +63 -0
- package/src/pages/FormDetail.tsx +23 -1
- package/src/pages/FormsPage.tsx +81 -17
- package/src/pages/FundraisingPage.tsx +152 -24
- package/src/pages/HiringPage.tsx +39 -11
- package/src/pages/ListDetail.tsx +470 -0
- package/src/pages/ListsPage.tsx +281 -0
- package/src/pages/OpportunitiesPage.tsx +130 -24
- package/src/pages/OpportunityDetail.tsx +168 -2
- package/src/pages/PartnershipDetail.tsx +35 -0
- package/src/pages/PartnershipsPage.tsx +149 -24
- package/src/pages/PeoplePage.tsx +157 -11
- package/src/pages/PersonDetail.tsx +157 -6
- package/src/pages/PlanningPage.tsx +259 -29
- package/src/pages/RaiseDetail.tsx +24 -0
- package/src/pages/RoleDetail.tsx +21 -26
- package/src/pages/SearchPage.tsx +1 -0
- package/src/pages/admin/DataPage.tsx +324 -13
- package/src/pages/admin/FieldsPage.tsx +455 -0
- package/src/pages/admin/PrivacyPage.tsx +461 -0
- package/src/pages/admin/WebhookDeliveries.tsx +10 -15
- package/src/pages/admin/WebhooksPage.tsx +14 -19
- package/src/pages/admin/WorkspaceSettingsPage.tsx +134 -2
- package/src/pages/dashboard/attention.ts +3 -0
- package/src/pages/forms/AddFieldMenu.tsx +121 -0
- package/src/pages/forms/EmbedPanel.tsx +163 -2
- package/src/pages/forms/FieldsEditor.tsx +539 -165
- package/src/pages/forms/FormActions.tsx +552 -0
- package/src/pages/forms/FormSettings.tsx +29 -70
- package/src/pages/forms/SubmissionDetail.tsx +249 -0
- package/src/pages/forms/SubmissionsTable.tsx +112 -26
- package/src/pages/forms/fieldList.ts +68 -5
- package/src/pages/forms/template.ts +103 -0
- package/src/pages/handbook/HandbookPage.tsx +1 -1
- package/src/pages/hiringDirectory.ts +2 -2
- package/src/pages/onboarding/WorkspaceStepPage.tsx +31 -3
- package/src/pages/positionDirectory.ts +2 -2
- package/src/styles.css +3 -3
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { CUSTOM_FIELD_OBJECT_TYPE_LABELS, CUSTOM_FIELD_OBJECT_TYPES, CUSTOM_FIELD_TYPE_LABELS, CUSTOM_FIELD_TYPES, CUSTOM_FIELD_TYPES_WITH_OPTIONS, } from '@kelpie/schemas';
|
|
3
|
+
import { useMemo, useState } from 'react';
|
|
4
|
+
import { useCreateCustomField, useCustomFields, useDeleteCustomField, useUpdateCustomField, } from '../../api/resources/customFields.js';
|
|
5
|
+
import { useSession } from '../../api/resources/session.js';
|
|
6
|
+
import { AddButton } from '../../components/SectionHeader.js';
|
|
7
|
+
import { PageHeader } from '../../components/PageHeader.js';
|
|
8
|
+
import { ErrorPanel, LoadingPanel } from '../../components/QueryState.js';
|
|
9
|
+
import { SegmentedControl } from '../../components/SegmentedControl.js';
|
|
10
|
+
/**
|
|
11
|
+
* Admin surface for workspace-defined fields.
|
|
12
|
+
*
|
|
13
|
+
* Admin-only, matching the pattern from `WebhooksPage` — a definition changes
|
|
14
|
+
* the shape of every record of one object type and is team-wide config, not a
|
|
15
|
+
* per-user preference.
|
|
16
|
+
*
|
|
17
|
+
* Reorder in v1 is server-side via `PATCH sort_order`; a drag-and-drop UI is
|
|
18
|
+
* the next tweak and does not change the wire.
|
|
19
|
+
*/
|
|
20
|
+
const OBJECT_TYPE_OPTIONS = CUSTOM_FIELD_OBJECT_TYPES.map((id) => ({
|
|
21
|
+
id,
|
|
22
|
+
label: CUSTOM_FIELD_OBJECT_TYPE_LABELS[id],
|
|
23
|
+
}));
|
|
24
|
+
const OPTIONS_TYPES = new Set(CUSTOM_FIELD_TYPES_WITH_OPTIONS);
|
|
25
|
+
export function FieldsPage() {
|
|
26
|
+
const { session } = useSession();
|
|
27
|
+
const isAdmin = session?.role === 'owner' || session?.role === 'admin';
|
|
28
|
+
return (_jsxs("div", { className: "animate-slide-in mx-auto max-w-4xl space-y-6", children: [_jsx(PageHeader, { title: "Custom fields", description: "Add workspace-defined fields to the six main record types. Values on records go through the same API the UI uses." }), isAdmin ? _jsx(FieldsAdmin, {}) : _jsx(MemberNotice, {})] }));
|
|
29
|
+
}
|
|
30
|
+
function MemberNotice() {
|
|
31
|
+
return (_jsx("p", { className: "rounded-md border border-border px-4 py-3 text-[13px] text-ink-muted", children: "Custom fields are managed by workspace admins." }));
|
|
32
|
+
}
|
|
33
|
+
function FieldsAdmin() {
|
|
34
|
+
const [objectType, setObjectType] = useState('deal');
|
|
35
|
+
const [adding, setAdding] = useState(false);
|
|
36
|
+
const definitions = useCustomFields({ objectType, sort: 'sort_order', limit: 200 });
|
|
37
|
+
return (_jsxs(_Fragment, { children: [_jsxs("div", { className: "flex flex-wrap items-center gap-3", children: [_jsx(SegmentedControl, { value: objectType, onChange: setObjectType, options: OBJECT_TYPE_OPTIONS, ariaLabel: "Record type" }), _jsx("div", { className: "ml-auto", children: _jsx(AddButton, { onClick: () => {
|
|
38
|
+
setAdding(true);
|
|
39
|
+
}, label: "New field" }) })] }), adding && (_jsx(AddFieldForm, { objectType: objectType, onDone: () => {
|
|
40
|
+
setAdding(false);
|
|
41
|
+
} })), definitions.error !== null && _jsx(ErrorPanel, { error: definitions.error }), definitions.isLoading ? (_jsx(LoadingPanel, { label: "Loading fields\u2026" })) : definitions.records.length === 0 ? (_jsxs("p", { className: "text-[13px] text-ink-muted", children: ["No custom fields on ", CUSTOM_FIELD_OBJECT_TYPE_LABELS[objectType].toLowerCase(), " records yet."] })) : (_jsx("ul", { className: "space-y-3", children: definitions.records.map((definition) => (_jsx("li", { children: _jsx(FieldRow, { definition: definition }) }, definition.id))) }))] }));
|
|
42
|
+
}
|
|
43
|
+
function AddFieldForm({ objectType, onDone }) {
|
|
44
|
+
const create = useCreateCustomField();
|
|
45
|
+
const [label, setLabel] = useState('');
|
|
46
|
+
const [key, setKey] = useState('');
|
|
47
|
+
const [keyEdited, setKeyEdited] = useState(false);
|
|
48
|
+
const [type, setType] = useState('text');
|
|
49
|
+
const [optionsText, setOptionsText] = useState('');
|
|
50
|
+
const [description, setDescription] = useState('');
|
|
51
|
+
const derivedKey = useMemo(() => (keyEdited ? key : slugify(label)), [keyEdited, key, label]);
|
|
52
|
+
function submit(event) {
|
|
53
|
+
event.preventDefault();
|
|
54
|
+
const trimmedLabel = label.trim();
|
|
55
|
+
if (trimmedLabel.length === 0) {
|
|
56
|
+
return;
|
|
57
|
+
}
|
|
58
|
+
const options = OPTIONS_TYPES.has(type)
|
|
59
|
+
? optionsText
|
|
60
|
+
.split(/[\n,]/u)
|
|
61
|
+
.map((option) => option.trim())
|
|
62
|
+
.filter((option) => option.length > 0)
|
|
63
|
+
: [];
|
|
64
|
+
create.runAsync({
|
|
65
|
+
objectType,
|
|
66
|
+
key: derivedKey,
|
|
67
|
+
label: trimmedLabel,
|
|
68
|
+
type,
|
|
69
|
+
options,
|
|
70
|
+
description: description.trim(),
|
|
71
|
+
})
|
|
72
|
+
.then(() => {
|
|
73
|
+
setLabel('');
|
|
74
|
+
setKey('');
|
|
75
|
+
setKeyEdited(false);
|
|
76
|
+
setType('text');
|
|
77
|
+
setOptionsText('');
|
|
78
|
+
setDescription('');
|
|
79
|
+
onDone();
|
|
80
|
+
})
|
|
81
|
+
.catch(() => {
|
|
82
|
+
// The mutation error is rendered below the form; keep the values.
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
return (_jsxs("form", { onSubmit: submit, className: "space-y-3 rounded-md border border-border bg-surface-raised p-4", children: [_jsxs("div", { className: "grid gap-3 sm:grid-cols-2", children: [_jsx(Field, { label: "Label", children: _jsx("input", { className: "w-full rounded-md border border-border bg-transparent px-2 py-1 text-[13px] outline-none focus:border-accent", value: label, onChange: (event) => {
|
|
86
|
+
setLabel(event.target.value);
|
|
87
|
+
}, required: true }) }), _jsx(Field, { label: "Key", children: _jsx("input", { className: "w-full rounded-md border border-border bg-transparent px-2 py-1 font-mono text-[12px] outline-none focus:border-accent", value: derivedKey, onChange: (event) => {
|
|
88
|
+
setKey(event.target.value);
|
|
89
|
+
setKeyEdited(true);
|
|
90
|
+
}, placeholder: "lowercase_snake_case", pattern: "^[a-z][a-z0-9_]*$", required: true }) }), _jsx(Field, { label: "Type", children: _jsx("select", { className: "w-full rounded-md border border-border bg-transparent px-2 py-1 text-[13px] outline-none focus:border-accent", value: type, onChange: (event) => {
|
|
91
|
+
setType(event.target.value);
|
|
92
|
+
}, children: CUSTOM_FIELD_TYPES.map((option) => (_jsx("option", { value: option, children: CUSTOM_FIELD_TYPE_LABELS[option] }, option))) }) }), OPTIONS_TYPES.has(type) && (_jsx(Field, { label: "Options (one per line, or comma-separated)", children: _jsx("textarea", { className: "min-h-[80px] w-full rounded-md border border-border bg-transparent px-2 py-1 text-[13px] outline-none focus:border-accent", value: optionsText, onChange: (event) => {
|
|
93
|
+
setOptionsText(event.target.value);
|
|
94
|
+
}, required: true }) }))] }), _jsx(Field, { label: "Description (agent-facing help text)", children: _jsx("textarea", { className: "min-h-[60px] w-full rounded-md border border-border bg-transparent px-2 py-1 text-[13px] outline-none focus:border-accent", value: description, onChange: (event) => {
|
|
95
|
+
setDescription(event.target.value);
|
|
96
|
+
} }) }), create.error !== null && _jsx(ErrorPanel, { error: create.error }), _jsxs("div", { className: "flex justify-end gap-2", children: [_jsx("button", { type: "button", onClick: () => {
|
|
97
|
+
onDone();
|
|
98
|
+
}, className: "rounded-md border border-border px-3 py-1 text-[12px] text-ink-muted hover:text-ink", children: "Cancel" }), _jsx("button", { type: "submit", disabled: create.isPending, className: "rounded-md bg-accent px-3 py-1 text-[12px] font-medium text-white hover:bg-accent-hover disabled:opacity-50", children: create.isPending ? 'Adding…' : 'Add field' })] })] }));
|
|
99
|
+
}
|
|
100
|
+
function FieldRow({ definition }) {
|
|
101
|
+
const update = useUpdateCustomField();
|
|
102
|
+
const remove = useDeleteCustomField();
|
|
103
|
+
const [editing, setEditing] = useState(false);
|
|
104
|
+
const [label, setLabel] = useState(definition.label);
|
|
105
|
+
const [description, setDescription] = useState(definition.description);
|
|
106
|
+
const [optionsText, setOptionsText] = useState(definition.options.join('\n'));
|
|
107
|
+
const [confirmingDelete, setConfirmingDelete] = useState(false);
|
|
108
|
+
const hasOptions = OPTIONS_TYPES.has(definition.type);
|
|
109
|
+
function save(event) {
|
|
110
|
+
event.preventDefault();
|
|
111
|
+
const options = hasOptions
|
|
112
|
+
? optionsText
|
|
113
|
+
.split(/[\n,]/u)
|
|
114
|
+
.map((option) => option.trim())
|
|
115
|
+
.filter((option) => option.length > 0)
|
|
116
|
+
: undefined;
|
|
117
|
+
update.runAsync({
|
|
118
|
+
id: definition.id,
|
|
119
|
+
changes: {
|
|
120
|
+
label: label.trim(),
|
|
121
|
+
description: description.trim(),
|
|
122
|
+
...(options === undefined ? {} : { options }),
|
|
123
|
+
},
|
|
124
|
+
})
|
|
125
|
+
.then(() => {
|
|
126
|
+
setEditing(false);
|
|
127
|
+
})
|
|
128
|
+
.catch(() => {
|
|
129
|
+
// Error rendered inline.
|
|
130
|
+
});
|
|
131
|
+
}
|
|
132
|
+
return (_jsxs("div", { className: "rounded-md border border-border p-3", children: [_jsxs("div", { className: "flex items-start justify-between gap-3", children: [_jsxs("div", { className: "min-w-0 flex-1", children: [_jsxs("div", { className: "flex flex-wrap items-baseline gap-2", children: [_jsx("div", { className: "text-[14px] font-semibold text-ink", children: definition.label }), _jsx("code", { className: "rounded bg-surface-raised px-1.5 py-0.5 font-mono text-[11px] text-ink-muted", children: definition.key }), _jsx("span", { className: "text-[11px] text-ink-muted", children: CUSTOM_FIELD_TYPE_LABELS[definition.type] })] }), definition.description.length > 0 && (_jsx("p", { className: "mt-1 text-[12px] text-ink-muted", children: definition.description })), hasOptions && (_jsxs("p", { className: "mt-1 text-[12px] text-ink-muted", children: ["Options: ", definition.options.join(', ')] }))] }), _jsxs("div", { className: "flex shrink-0 gap-2", children: [_jsx("button", { type: "button", onClick: () => {
|
|
133
|
+
setEditing((current) => !current);
|
|
134
|
+
}, className: "text-[12px] text-ink-muted hover:text-ink", children: editing ? 'Cancel' : 'Edit' }), _jsx("button", { type: "button", onClick: () => {
|
|
135
|
+
setConfirmingDelete(true);
|
|
136
|
+
}, className: "text-[12px] text-red-600 hover:text-red-700", children: "Delete" })] })] }), editing && (_jsxs("form", { onSubmit: save, className: "mt-3 space-y-2", children: [_jsx(Field, { label: "Label", children: _jsx("input", { className: "w-full rounded-md border border-border bg-transparent px-2 py-1 text-[13px] outline-none focus:border-accent", value: label, onChange: (event) => {
|
|
137
|
+
setLabel(event.target.value);
|
|
138
|
+
}, required: true }) }), hasOptions && (_jsx(Field, { label: "Options", children: _jsx("textarea", { className: "min-h-[80px] w-full rounded-md border border-border bg-transparent px-2 py-1 text-[13px] outline-none focus:border-accent", value: optionsText, onChange: (event) => {
|
|
139
|
+
setOptionsText(event.target.value);
|
|
140
|
+
} }) })), _jsx(Field, { label: "Description", children: _jsx("textarea", { className: "min-h-[60px] w-full rounded-md border border-border bg-transparent px-2 py-1 text-[13px] outline-none focus:border-accent", value: description, onChange: (event) => {
|
|
141
|
+
setDescription(event.target.value);
|
|
142
|
+
} }) }), update.error !== null && _jsx(ErrorPanel, { error: update.error }), _jsx("div", { className: "flex justify-end", children: _jsx("button", { type: "submit", disabled: update.isPending, className: "rounded-md bg-accent px-3 py-1 text-[12px] font-medium text-white hover:bg-accent-hover disabled:opacity-50", children: update.isPending ? 'Saving…' : 'Save' }) })] })), confirmingDelete && (_jsxs("div", { className: "mt-3 rounded-md border border-red-300 bg-red-50 p-3 text-[13px] text-red-800 dark:border-red-800 dark:bg-red-950/40 dark:text-red-200", children: [_jsxs("p", { children: ["Delete the ", definition.label, " field? This removes its stored values from every", ' ', CUSTOM_FIELD_OBJECT_TYPE_LABELS[definition.objectType].toLowerCase(), ' ', "record."] }), remove.error !== null && _jsx(ErrorPanel, { error: remove.error }), _jsxs("div", { className: "mt-2 flex justify-end gap-2", children: [_jsx("button", { type: "button", onClick: () => {
|
|
143
|
+
setConfirmingDelete(false);
|
|
144
|
+
}, className: "rounded-md border border-red-300 px-3 py-1 text-[12px] hover:bg-red-100 dark:border-red-800 dark:hover:bg-red-900/40", children: "Cancel" }), _jsx("button", { type: "button", onClick: () => {
|
|
145
|
+
remove.runAsync(definition.id)
|
|
146
|
+
.then(() => {
|
|
147
|
+
setConfirmingDelete(false);
|
|
148
|
+
})
|
|
149
|
+
.catch(() => {
|
|
150
|
+
// Error rendered inline.
|
|
151
|
+
});
|
|
152
|
+
}, disabled: remove.isPending, className: "rounded-md bg-red-600 px-3 py-1 text-[12px] font-medium text-white hover:bg-red-700 disabled:opacity-50", children: remove.isPending ? 'Deleting…' : 'Delete' })] })] }))] }));
|
|
153
|
+
}
|
|
154
|
+
function Field({ label, children }) {
|
|
155
|
+
return (_jsxs("label", { className: "block text-[12px]", children: [_jsx("span", { className: "mb-1 block font-medium text-ink-muted", children: label }), children] }));
|
|
156
|
+
}
|
|
157
|
+
function slugify(label) {
|
|
158
|
+
return label
|
|
159
|
+
.toLowerCase()
|
|
160
|
+
.replace(/[^a-z0-9]+/gu, '_')
|
|
161
|
+
.replace(/^_+|_+$/gu, '')
|
|
162
|
+
.replace(/^([0-9])/u, '_$1');
|
|
163
|
+
}
|
|
164
|
+
//# sourceMappingURL=FieldsPage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FieldsPage.js","sourceRoot":"","sources":["../../../src/pages/admin/FieldsPage.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Admin surface for workspace consent purposes.
|
|
3
|
+
*
|
|
4
|
+
* Admin-only, matching Custom fields: a purpose change touches every form,
|
|
5
|
+
* list, and import job that names it, and is team-wide config. A purpose has
|
|
6
|
+
* a default status that every Person without an explicit override inherits.
|
|
7
|
+
*/
|
|
8
|
+
export declare function PrivacyPage(): React.JSX.Element;
|
|
9
|
+
//# sourceMappingURL=PrivacyPage.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PrivacyPage.d.ts","sourceRoot":"","sources":["../../../src/pages/admin/PrivacyPage.tsx"],"names":[],"mappings":"AAgBA;;;;;;GAMG;AAEH,wBAAgB,WAAW,IAAI,KAAK,CAAC,GAAG,CAAC,OAAO,CAa/C"}
|
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { CONSENT_PURPOSE_STATUS_LABELS, CONSENT_PURPOSE_STATUSES } from '@kelpie/schemas';
|
|
3
|
+
import { useMemo, useState } from 'react';
|
|
4
|
+
import { useConsentPurposes, useCreateConsentPurpose, useDeleteConsentPurpose, useUpdateConsentPurpose, } from '../../api/resources/consentPurposes.js';
|
|
5
|
+
import { useSession } from '../../api/resources/session.js';
|
|
6
|
+
import { AddButton } from '../../components/SectionHeader.js';
|
|
7
|
+
import { PageHeader } from '../../components/PageHeader.js';
|
|
8
|
+
import { ErrorPanel, LoadingPanel } from '../../components/QueryState.js';
|
|
9
|
+
/**
|
|
10
|
+
* Admin surface for workspace consent purposes.
|
|
11
|
+
*
|
|
12
|
+
* Admin-only, matching Custom fields: a purpose change touches every form,
|
|
13
|
+
* list, and import job that names it, and is team-wide config. A purpose has
|
|
14
|
+
* a default status that every Person without an explicit override inherits.
|
|
15
|
+
*/
|
|
16
|
+
export function PrivacyPage() {
|
|
17
|
+
const { session } = useSession();
|
|
18
|
+
const isAdmin = session?.role === 'owner' || session?.role === 'admin';
|
|
19
|
+
return (_jsxs("div", { className: "animate-slide-in mx-auto max-w-4xl space-y-6", children: [_jsx(PageHeader, { title: "Privacy", description: "Consent purposes for the things you contact people about. A form's consent checkbox, a list you add signups to, and an import can each grant one of these \u2014 and every Person's record reflects it." }), isAdmin ? _jsx(PurposesAdmin, {}) : _jsx(MemberNotice, {})] }));
|
|
20
|
+
}
|
|
21
|
+
function MemberNotice() {
|
|
22
|
+
return (_jsx("p", { className: "rounded-md border border-border px-4 py-3 text-[13px] text-ink-muted", children: "Consent purposes are managed by workspace admins." }));
|
|
23
|
+
}
|
|
24
|
+
function PurposesAdmin() {
|
|
25
|
+
const [adding, setAdding] = useState(false);
|
|
26
|
+
const [seeding, setSeeding] = useState(false);
|
|
27
|
+
const purposes = useConsentPurposes({ sort: 'sort_order', limit: 200 });
|
|
28
|
+
const create = useCreateConsentPurpose();
|
|
29
|
+
async function seedStarters() {
|
|
30
|
+
setSeeding(true);
|
|
31
|
+
try {
|
|
32
|
+
await create.runAsync({
|
|
33
|
+
slug: 'contact',
|
|
34
|
+
label: 'Contact',
|
|
35
|
+
description: 'Being contacted by the workspace about our work together.',
|
|
36
|
+
defaultStatus: 'unknown',
|
|
37
|
+
});
|
|
38
|
+
await create.runAsync({
|
|
39
|
+
slug: 'marketing',
|
|
40
|
+
label: 'Marketing',
|
|
41
|
+
description: 'Marketing communications — newsletters, product updates, and campaigns.',
|
|
42
|
+
defaultStatus: 'unknown',
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
catch {
|
|
46
|
+
// Error rendered inline via the ErrorPanel below.
|
|
47
|
+
}
|
|
48
|
+
finally {
|
|
49
|
+
setSeeding(false);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
return (_jsxs(_Fragment, { children: [_jsx("div", { className: "flex justify-end", children: _jsx(AddButton, { onClick: () => {
|
|
53
|
+
setAdding(true);
|
|
54
|
+
}, label: "Add a purpose" }) }), adding && (_jsx(AddPurposeForm, { onDone: () => {
|
|
55
|
+
setAdding(false);
|
|
56
|
+
} })), purposes.error !== null && _jsx(ErrorPanel, { error: purposes.error }), create.error !== null && _jsx(ErrorPanel, { error: create.error }), purposes.isLoading ? (_jsx(LoadingPanel, { label: "Loading purposes\u2026" })) : purposes.records.length === 0 ? (_jsx(EmptyState, { onAdd: () => {
|
|
57
|
+
setAdding(true);
|
|
58
|
+
}, onSeedStarters: () => {
|
|
59
|
+
void seedStarters();
|
|
60
|
+
}, isSeeding: seeding })) : (_jsx("ul", { className: "space-y-3", children: purposes.records.map((purpose) => (_jsx("li", { children: _jsx(PurposeRow, { purpose: purpose }) }, purpose.id))) }))] }));
|
|
61
|
+
}
|
|
62
|
+
function EmptyState({ onAdd, onSeedStarters, isSeeding }) {
|
|
63
|
+
return (_jsxs("div", { className: "rounded-md border border-dashed border-border p-6 text-[13px]", children: [_jsx("p", { className: "font-medium text-ink", children: "You have no consent purposes yet." }), _jsxs("p", { className: "mt-1 text-ink-muted", children: ["A purpose is what a person is agreeing to \u2014 being contacted at all, marketing, research. Every workspace usually has at least a general ", _jsx("span", { className: "font-medium", children: "Contact" }), ' ', "purpose. Forms, lists, and imports that don\u2019t need consent don\u2019t need one."] }), _jsxs("div", { className: "mt-4 flex flex-wrap items-center gap-2", children: [_jsx("button", { type: "button", onClick: onSeedStarters, disabled: isSeeding, className: "rounded-md bg-accent px-3 py-1.5 text-[12px] font-medium text-white hover:bg-accent-hover disabled:opacity-50", children: isSeeding ? 'Adding…' : 'Add Contact & Marketing' }), _jsx("button", { type: "button", onClick: onAdd, className: "rounded-md border border-border px-3 py-1.5 text-[12px] font-medium text-ink hover:border-ink-muted", children: "Add my own" })] })] }));
|
|
64
|
+
}
|
|
65
|
+
function AddPurposeForm({ onDone }) {
|
|
66
|
+
const create = useCreateConsentPurpose();
|
|
67
|
+
const [label, setLabel] = useState('');
|
|
68
|
+
const [slug, setSlug] = useState('');
|
|
69
|
+
const [slugEdited, setSlugEdited] = useState(false);
|
|
70
|
+
const [description, setDescription] = useState('');
|
|
71
|
+
const [defaultStatus, setDefaultStatus] = useState('unknown');
|
|
72
|
+
const derivedSlug = useMemo(() => (slugEdited ? slug : slugify(label)), [slugEdited, slug, label]);
|
|
73
|
+
function submit(event) {
|
|
74
|
+
event.preventDefault();
|
|
75
|
+
const trimmedLabel = label.trim();
|
|
76
|
+
if (trimmedLabel.length === 0) {
|
|
77
|
+
return;
|
|
78
|
+
}
|
|
79
|
+
create
|
|
80
|
+
.runAsync({
|
|
81
|
+
slug: derivedSlug,
|
|
82
|
+
label: trimmedLabel,
|
|
83
|
+
description: description.trim(),
|
|
84
|
+
defaultStatus,
|
|
85
|
+
})
|
|
86
|
+
.then(() => {
|
|
87
|
+
setLabel('');
|
|
88
|
+
setSlug('');
|
|
89
|
+
setSlugEdited(false);
|
|
90
|
+
setDescription('');
|
|
91
|
+
setDefaultStatus('unknown');
|
|
92
|
+
onDone();
|
|
93
|
+
})
|
|
94
|
+
.catch(() => {
|
|
95
|
+
// Error rendered below.
|
|
96
|
+
});
|
|
97
|
+
}
|
|
98
|
+
return (_jsxs("form", { onSubmit: submit, className: "space-y-3 rounded-md border border-border bg-surface-raised p-4", children: [_jsxs("div", { className: "grid gap-3 sm:grid-cols-2", children: [_jsx(Field, { label: "Label", children: _jsx("input", { className: "w-full rounded-md border border-border bg-transparent px-2 py-1 text-[13px] outline-none focus:border-accent", value: label, onChange: (event) => {
|
|
99
|
+
setLabel(event.target.value);
|
|
100
|
+
}, required: true }) }), _jsx(Field, { label: "Slug", children: _jsx("input", { className: "w-full rounded-md border border-border bg-transparent px-2 py-1 font-mono text-[12px] outline-none focus:border-accent", value: derivedSlug, onChange: (event) => {
|
|
101
|
+
setSlug(event.target.value);
|
|
102
|
+
setSlugEdited(true);
|
|
103
|
+
}, placeholder: "lowercase_snake_case", pattern: "^[a-z][a-z0-9_]*$", required: true }) }), _jsx(Field, { label: "Default status", children: _jsx("select", { className: "w-full rounded-md border border-border bg-transparent px-2 py-1 text-[13px] outline-none focus:border-accent", value: defaultStatus, onChange: (event) => {
|
|
104
|
+
setDefaultStatus(event.target.value);
|
|
105
|
+
}, children: CONSENT_PURPOSE_STATUSES.map((option) => (_jsx("option", { value: option, children: CONSENT_PURPOSE_STATUS_LABELS[option] }, option))) }) })] }), _jsx(Field, { label: "Description (shown on capture surfaces and to agents)", children: _jsx("textarea", { className: "min-h-[60px] w-full rounded-md border border-border bg-transparent px-2 py-1 text-[13px] outline-none focus:border-accent", value: description, onChange: (event) => {
|
|
106
|
+
setDescription(event.target.value);
|
|
107
|
+
} }) }), create.error !== null && _jsx(ErrorPanel, { error: create.error }), _jsxs("div", { className: "flex justify-end gap-2", children: [_jsx("button", { type: "button", onClick: () => {
|
|
108
|
+
onDone();
|
|
109
|
+
}, className: "rounded-md border border-border px-3 py-1 text-[12px] text-ink-muted hover:text-ink", children: "Cancel" }), _jsx("button", { type: "submit", disabled: create.isPending, className: "rounded-md bg-accent px-3 py-1 text-[12px] font-medium text-white hover:bg-accent-hover disabled:opacity-50", children: create.isPending ? 'Adding…' : 'Add purpose' })] })] }));
|
|
110
|
+
}
|
|
111
|
+
function PurposeRow({ purpose }) {
|
|
112
|
+
const update = useUpdateConsentPurpose();
|
|
113
|
+
const remove = useDeleteConsentPurpose();
|
|
114
|
+
const [editing, setEditing] = useState(false);
|
|
115
|
+
const [label, setLabel] = useState(purpose.label);
|
|
116
|
+
const [description, setDescription] = useState(purpose.description);
|
|
117
|
+
const [defaultStatus, setDefaultStatus] = useState(purpose.defaultStatus);
|
|
118
|
+
const [confirmingDelete, setConfirmingDelete] = useState(false);
|
|
119
|
+
function save(event) {
|
|
120
|
+
event.preventDefault();
|
|
121
|
+
update
|
|
122
|
+
.runAsync({
|
|
123
|
+
id: purpose.id,
|
|
124
|
+
changes: {
|
|
125
|
+
label: label.trim(),
|
|
126
|
+
description: description.trim(),
|
|
127
|
+
defaultStatus,
|
|
128
|
+
},
|
|
129
|
+
})
|
|
130
|
+
.then(() => {
|
|
131
|
+
setEditing(false);
|
|
132
|
+
})
|
|
133
|
+
.catch(() => {
|
|
134
|
+
// Error rendered inline.
|
|
135
|
+
});
|
|
136
|
+
}
|
|
137
|
+
return (_jsxs("div", { className: "rounded-md border border-border p-3", children: [_jsxs("div", { className: "flex items-start justify-between gap-3", children: [_jsxs("div", { className: "min-w-0 flex-1", children: [_jsxs("div", { className: "flex flex-wrap items-baseline gap-2", children: [_jsx("div", { className: "text-[14px] font-semibold text-ink", children: purpose.label }), _jsx("code", { className: "rounded bg-surface-raised px-1.5 py-0.5 font-mono text-[11px] text-ink-muted", children: purpose.slug }), _jsxs("span", { className: "text-[11px] text-ink-muted", children: ["Default: ", CONSENT_PURPOSE_STATUS_LABELS[purpose.defaultStatus]] })] }), purpose.description.length > 0 && (_jsx("p", { className: "mt-1 text-[12px] text-ink-muted", children: purpose.description }))] }), _jsxs("div", { className: "flex shrink-0 gap-2", children: [_jsx("button", { type: "button", onClick: () => {
|
|
138
|
+
setEditing((current) => !current);
|
|
139
|
+
}, className: "text-[12px] text-ink-muted hover:text-ink", children: editing ? 'Cancel' : 'Edit' }), _jsx("button", { type: "button", onClick: () => {
|
|
140
|
+
setConfirmingDelete(true);
|
|
141
|
+
}, className: "text-[12px] text-red-600 hover:text-red-700", children: "Delete" })] })] }), editing && (_jsxs("form", { onSubmit: save, className: "mt-3 space-y-2", children: [_jsx(Field, { label: "Label", children: _jsx("input", { className: "w-full rounded-md border border-border bg-transparent px-2 py-1 text-[13px] outline-none focus:border-accent", value: label, onChange: (event) => {
|
|
142
|
+
setLabel(event.target.value);
|
|
143
|
+
}, required: true }) }), _jsx(Field, { label: "Default status", children: _jsx("select", { className: "w-full rounded-md border border-border bg-transparent px-2 py-1 text-[13px] outline-none focus:border-accent", value: defaultStatus, onChange: (event) => {
|
|
144
|
+
setDefaultStatus(event.target.value);
|
|
145
|
+
}, children: CONSENT_PURPOSE_STATUSES.map((option) => (_jsx("option", { value: option, children: CONSENT_PURPOSE_STATUS_LABELS[option] }, option))) }) }), _jsx(Field, { label: "Description", children: _jsx("textarea", { className: "min-h-[60px] w-full rounded-md border border-border bg-transparent px-2 py-1 text-[13px] outline-none focus:border-accent", value: description, onChange: (event) => {
|
|
146
|
+
setDescription(event.target.value);
|
|
147
|
+
} }) }), update.error !== null && _jsx(ErrorPanel, { error: update.error }), _jsx("div", { className: "flex justify-end", children: _jsx("button", { type: "submit", disabled: update.isPending, className: "rounded-md bg-accent px-3 py-1 text-[12px] font-medium text-white hover:bg-accent-hover disabled:opacity-50", children: update.isPending ? 'Saving…' : 'Save' }) })] })), confirmingDelete && (_jsxs("div", { className: "mt-3 rounded-md border border-red-300 bg-red-50 p-3 text-[13px] text-red-800 dark:border-red-800 dark:bg-red-950/40 dark:text-red-200", children: [_jsxs("p", { children: ["Delete the ", purpose.label, " purpose? Remove it from every form field and list that names it first \u2014 the delete refuses otherwise."] }), remove.error !== null && _jsx(ErrorPanel, { error: remove.error }), _jsxs("div", { className: "mt-2 flex justify-end gap-2", children: [_jsx("button", { type: "button", onClick: () => {
|
|
148
|
+
setConfirmingDelete(false);
|
|
149
|
+
}, className: "rounded-md border border-red-300 px-3 py-1 text-[12px] hover:bg-red-100 dark:border-red-800 dark:hover:bg-red-900/40", children: "Cancel" }), _jsx("button", { type: "button", onClick: () => {
|
|
150
|
+
remove
|
|
151
|
+
.runAsync(purpose.id)
|
|
152
|
+
.then(() => {
|
|
153
|
+
setConfirmingDelete(false);
|
|
154
|
+
})
|
|
155
|
+
.catch(() => {
|
|
156
|
+
// Error rendered inline.
|
|
157
|
+
});
|
|
158
|
+
}, disabled: remove.isPending, className: "rounded-md bg-red-600 px-3 py-1 text-[12px] font-medium text-white hover:bg-red-700 disabled:opacity-50", children: remove.isPending ? 'Deleting…' : 'Delete' })] })] }))] }));
|
|
159
|
+
}
|
|
160
|
+
function Field({ label, children }) {
|
|
161
|
+
return (_jsxs("label", { className: "block text-[12px]", children: [_jsx("span", { className: "mb-1 block font-medium text-ink-muted", children: label }), children] }));
|
|
162
|
+
}
|
|
163
|
+
function slugify(label) {
|
|
164
|
+
return label
|
|
165
|
+
.toLowerCase()
|
|
166
|
+
.replace(/[^a-z0-9]+/gu, '_')
|
|
167
|
+
.replace(/^_+|_+$/gu, '')
|
|
168
|
+
.replace(/^([0-9])/u, '_$1');
|
|
169
|
+
}
|
|
170
|
+
//# sourceMappingURL=PrivacyPage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PrivacyPage.js","sourceRoot":"","sources":["../../../src/pages/admin/PrivacyPage.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WebhookDeliveries.d.ts","sourceRoot":"","sources":["../../../src/pages/admin/WebhookDeliveries.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"WebhookDeliveries.d.ts","sourceRoot":"","sources":["../../../src/pages/admin/WebhookDeliveries.tsx"],"names":[],"mappings":"AAsCA,wBAAgB,iBAAiB,CAAC,EAAE,SAAS,EAAE,EAAE;IAAE,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAsHlG"}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
1
|
+
import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { useState } from 'react';
|
|
3
3
|
import { useTimezone } from '../../api/resources/account.js';
|
|
4
4
|
import { useWebhookDeliveries } from '../../api/resources/webhooks.js';
|
|
5
5
|
import { Chip } from '../../components/Chip.js';
|
|
6
6
|
import { DataTable } from '../../components/DataTable.js';
|
|
7
|
+
import { Paginator } from '../../components/Paginator.js';
|
|
7
8
|
import { ErrorPanel, LoadingPanel } from '../../components/QueryState.js';
|
|
8
9
|
import { SegmentedControl } from '../../components/SegmentedControl.js';
|
|
9
10
|
import { formatDateTime } from '../../lib/dates.js';
|
|
@@ -73,7 +74,7 @@ export function WebhookDeliveries({ webhookId }) {
|
|
|
73
74
|
// The open body may not be in the filtered list, and a panel left
|
|
74
75
|
// showing a row the table no longer has reads as a mismatch.
|
|
75
76
|
setOpenPayloadId(null);
|
|
76
|
-
}, options: STATUS_OPTIONS, ariaLabel: "Filter deliveries by status" })] }), deliveries.isLoading ? (_jsx(LoadingPanel, { label: "Loading deliveries\u2026" })) : deliveries.records.length === 0 ? (_jsx("p", { className: "text-[12px] text-ink-muted", children: status === 'all' ? 'Nothing delivered yet.' : `No ${status} deliveries.` })) : (_jsx(DataTable, { columns: columns, rows: deliveries.records, getRowId: (delivery) => delivery.id })), open !== undefined && _jsx(PayloadPanel, { delivery: open }),
|
|
77
|
+
}, options: STATUS_OPTIONS, ariaLabel: "Filter deliveries by status" })] }), deliveries.isLoading ? (_jsx(LoadingPanel, { label: "Loading deliveries\u2026" })) : deliveries.records.length === 0 ? (_jsx("p", { className: "text-[12px] text-ink-muted", children: status === 'all' ? 'Nothing delivered yet.' : `No ${status} deliveries.` })) : (_jsxs(_Fragment, { children: [_jsx(Paginator, { list: deliveries, placement: "top" }), _jsx(DataTable, { columns: columns, rows: deliveries.records, getRowId: (delivery) => delivery.id })] })), open !== undefined && _jsx(PayloadPanel, { delivery: open }), _jsx(Paginator, { list: deliveries })] }));
|
|
77
78
|
}
|
|
78
79
|
/**
|
|
79
80
|
* The body of one delivery.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WebhookDeliveries.js","sourceRoot":"","sources":["../../../src/pages/admin/WebhookDeliveries.tsx"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"WebhookDeliveries.js","sourceRoot":"","sources":["../../../src/pages/admin/WebhookDeliveries.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WebhooksPage.d.ts","sourceRoot":"","sources":["../../../src/pages/admin/WebhooksPage.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"WebhooksPage.d.ts","sourceRoot":"","sources":["../../../src/pages/admin/WebhooksPage.tsx"],"names":[],"mappings":"AA2CA,wBAAgB,YAAY,IAAI,KAAK,CAAC,GAAG,CAAC,OAAO,CAUhD"}
|
|
@@ -6,6 +6,7 @@ import { useSession } from '../../api/resources/session.js';
|
|
|
6
6
|
import { useCreateWebhook, useDeleteWebhook, useRotateWebhookSecret, useUpdateWebhook, useWebhooks, } from '../../api/resources/webhooks.js';
|
|
7
7
|
import { Chip } from '../../components/Chip.js';
|
|
8
8
|
import { PageHeader } from '../../components/PageHeader.js';
|
|
9
|
+
import { Paginator } from '../../components/Paginator.js';
|
|
9
10
|
import { ErrorPanel, LoadingPanel } from '../../components/QueryState.js';
|
|
10
11
|
import { formatDateTime } from '../../lib/dates.js';
|
|
11
12
|
import { WebhookDeliveries } from './WebhookDeliveries.js';
|
|
@@ -39,13 +40,13 @@ function MemberNotice() {
|
|
|
39
40
|
return (_jsx("p", { className: "rounded-md border border-border px-4 py-3 text-[13px] text-ink-muted", children: "Webhooks are managed by workspace admins. An endpoint URL often carries its own credential, so the registrations are not listed to other members." }));
|
|
40
41
|
}
|
|
41
42
|
function WebhookAdmin() {
|
|
42
|
-
const
|
|
43
|
+
const webhooks = useWebhooks();
|
|
43
44
|
const [minted, setMinted] = useState(null);
|
|
44
45
|
return (_jsxs(_Fragment, { children: [_jsx(RegisterForm, { onRegistered: (webhook) => {
|
|
45
46
|
setMinted(webhook);
|
|
46
47
|
} }), minted !== null && (_jsx(SecretOnce, { webhook: minted, onDismiss: () => {
|
|
47
48
|
setMinted(null);
|
|
48
|
-
} })), error !== null && _jsx(ErrorPanel, { error: error }), isLoading ? (_jsx(LoadingPanel, { label: "Loading webhooks\u2026" })) : records.length === 0 ? (_jsx("p", { className: "text-[13px] text-ink-muted", children: "No webhooks yet." })) : (_jsx("ul", { className: "space-y-3", children: records.map((webhook) => (_jsx(WebhookRow, { webhook: webhook, onRotated: setMinted }, webhook.id))) })),
|
|
49
|
+
} })), webhooks.error !== null && _jsx(ErrorPanel, { error: webhooks.error }), webhooks.isLoading ? (_jsx(LoadingPanel, { label: "Loading webhooks\u2026" })) : webhooks.records.length === 0 ? (_jsx("p", { className: "text-[13px] text-ink-muted", children: "No webhooks yet." })) : (_jsxs(_Fragment, { children: [_jsx(Paginator, { list: webhooks, placement: "top" }), _jsx("ul", { className: "space-y-3", children: webhooks.records.map((webhook) => (_jsx(WebhookRow, { webhook: webhook, onRotated: setMinted }, webhook.id))) })] })), _jsx(Paginator, { list: webhooks })] }));
|
|
49
50
|
}
|
|
50
51
|
function RegisterForm({ onRegistered, }) {
|
|
51
52
|
const createWebhook = useCreateWebhook();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WebhooksPage.js","sourceRoot":"","sources":["../../../src/pages/admin/WebhooksPage.tsx"],"names":[],"mappings":";AAAA,OAAO,EACL,cAAc,EACd,4BAA4B,EAC5B,qBAAqB,GACtB,MAAM,iBAAiB,CAAA;AAExB,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAGhC,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAA;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAA;AAC3D,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAChB,sBAAsB,EACtB,gBAAgB,EAChB,WAAW,GACZ,MAAM,iCAAiC,CAAA;AACxC,OAAO,EAAE,IAAI,EAAE,MAAM,0BAA2B,CAAA;AAEhD,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAiC,CAAA;AAC5D,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,gCAAiC,CAAA;AAC1E,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAyB,CAAA;AAE3D;;;;;;;;;GASG;AAEH,MAAM,YAAY,GAA8C;IAC9D,MAAM,EAAE,SAAS;IACjB,OAAO,EAAE,QAAQ;IACjB,MAAM,EAAE,SAAS;CAClB,CAAA;AAED,MAAM,UAAU,YAAY;IAC1B,MAAM,EAAE,OAAO,EAAE,GAAG,UAAU,EAAE,CAAA;IAChC,MAAM,OAAO,GAAG,OAAO,EAAE,IAAI,KAAK,OAAO,IAAI,OAAO,EAAE,IAAI,KAAK,OAAO,CAAA;IAEtE,OAAO,CACL,eAAK,SAAS,EAAC,8CAA8C,aAC3D,KAAC,UAAU,IAAC,KAAK,EAAC,UAAU,EAAC,WAAW,EAAC,2CAA2C,GAAG,EACtF,OAAO,CAAC,CAAC,CAAC,KAAC,YAAY,KAAG,CAAC,CAAC,CAAC,KAAC,YAAY,KAAG,IAC1C,CACP,CAAA;AACH,CAAC;AAED;;;;;GAKG;AACH,SAAS,YAAY;IACnB,OAAO,CACL,YAAG,SAAS,EAAC,sEAAsE,kKAG/E,CACL,CAAA;AACH,CAAC;AAED,SAAS,YAAY;IACnB,MAAM,
|
|
1
|
+
{"version":3,"file":"WebhooksPage.js","sourceRoot":"","sources":["../../../src/pages/admin/WebhooksPage.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WorkspaceSettingsPage.d.ts","sourceRoot":"","sources":["../../../src/pages/admin/WorkspaceSettingsPage.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"WorkspaceSettingsPage.d.ts","sourceRoot":"","sources":["../../../src/pages/admin/WorkspaceSettingsPage.tsx"],"names":[],"mappings":"AAkDA,wBAAgB,qBAAqB,IAAI,KAAK,CAAC,GAAG,CAAC,OAAO,CAczD"}
|