@cellarnode/ui 0.7.9 → 0.8.1
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/components/confirmation-dialog.d.ts +30 -0
- package/dist/components/confirmation-dialog.d.ts.map +1 -0
- package/dist/components/confirmation-dialog.js +70 -0
- package/dist/components/confirmation-dialog.js.map +1 -0
- package/dist/components/kanban-board.d.ts +2 -0
- package/dist/components/kanban-board.d.ts.map +1 -1
- package/dist/components/kanban-board.js.map +1 -1
- package/dist/components/kanban-dnd-board.d.ts +1 -1
- package/dist/components/kanban-dnd-board.d.ts.map +1 -1
- package/dist/components/kanban-dnd-board.js +9 -3
- package/dist/components/kanban-dnd-board.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/org/index.d.ts +6 -0
- package/dist/org/index.d.ts.map +1 -0
- package/dist/org/index.js +3 -0
- package/dist/org/index.js.map +1 -0
- package/dist/org/invite-member-dialog.d.ts +13 -0
- package/dist/org/invite-member-dialog.d.ts.map +1 -0
- package/dist/org/invite-member-dialog.js +62 -0
- package/dist/org/invite-member-dialog.js.map +1 -0
- package/dist/org/team-management.d.ts +14 -0
- package/dist/org/team-management.d.ts.map +1 -0
- package/dist/org/team-management.js +142 -0
- package/dist/org/team-management.js.map +1 -0
- package/dist/org/types.d.ts +33 -0
- package/dist/org/types.d.ts.map +1 -0
- package/dist/org/types.js +3 -0
- package/dist/org/types.js.map +1 -0
- package/dist/profile/profile-hero.js +1 -1
- package/dist/profile/profile-hero.js.map +1 -1
- package/package.json +5 -1
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
export type ConfirmationDialogTone = "danger" | "warning" | "info";
|
|
3
|
+
export interface ConfirmationDialogProps {
|
|
4
|
+
/** Whether the dialog is open. */
|
|
5
|
+
open: boolean;
|
|
6
|
+
/** Called when the dialog should close (backdrop click, cancel, etc.). */
|
|
7
|
+
onClose: () => void;
|
|
8
|
+
/** Called when the user confirms. Return a promise to keep the button in loading state. */
|
|
9
|
+
onConfirm: () => void | Promise<void>;
|
|
10
|
+
/** Title text shown below the icon. */
|
|
11
|
+
title: string;
|
|
12
|
+
/** Description text shown below the title. */
|
|
13
|
+
description?: string;
|
|
14
|
+
/** Optional warning/info banner text shown in a tinted box. */
|
|
15
|
+
warning?: string;
|
|
16
|
+
/** Visual tone — controls icon & confirm button color. @default "danger" */
|
|
17
|
+
tone?: ConfirmationDialogTone;
|
|
18
|
+
/** Icon rendered inside the circular header. Falls back to a built-in icon per tone. */
|
|
19
|
+
icon?: React.ReactNode;
|
|
20
|
+
/** Label for the confirm button. @default "Confirm" */
|
|
21
|
+
confirmLabel?: string;
|
|
22
|
+
/** Label for the cancel button. @default "Cancel" */
|
|
23
|
+
cancelLabel?: string;
|
|
24
|
+
/** External pending state (e.g. from a mutation hook). */
|
|
25
|
+
isPending?: boolean;
|
|
26
|
+
/** Optional children rendered between warning and actions (e.g. extra form fields). */
|
|
27
|
+
children?: React.ReactNode;
|
|
28
|
+
}
|
|
29
|
+
export declare function ConfirmationDialog({ open, onClose, onConfirm, title, description, warning, tone, icon, confirmLabel, cancelLabel, isPending: externalPending, children, }: ConfirmationDialogProps): import("react/jsx-runtime").JSX.Element;
|
|
30
|
+
//# sourceMappingURL=confirmation-dialog.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"confirmation-dialog.d.ts","sourceRoot":"","sources":["../../src/components/confirmation-dialog.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAQ/B,MAAM,MAAM,sBAAsB,GAAG,QAAQ,GAAG,SAAS,GAAG,MAAM,CAAC;AAEnE,MAAM,WAAW,uBAAuB;IACtC,kCAAkC;IAClC,IAAI,EAAE,OAAO,CAAC;IACd,0EAA0E;IAC1E,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,2FAA2F;IAC3F,SAAS,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEtC,uCAAuC;IACvC,KAAK,EAAE,MAAM,CAAC;IACd,8CAA8C;IAC9C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,+DAA+D;IAC/D,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,4EAA4E;IAC5E,IAAI,CAAC,EAAE,sBAAsB,CAAC;IAC9B,wFAAwF;IACxF,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,uDAAuD;IACvD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,qDAAqD;IACrD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,0DAA0D;IAC1D,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,uFAAuF;IACvF,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AA8FD,wBAAgB,kBAAkB,CAAC,EACjC,IAAI,EACJ,OAAO,EACP,SAAS,EACT,KAAK,EACL,WAAW,EACX,OAAO,EACP,IAAe,EACf,IAAI,EACJ,YAAwB,EACxB,WAAsB,EACtB,SAAS,EAAE,eAAuB,EAClC,QAAQ,GACT,EAAE,uBAAuB,2CAuEzB"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import * as React from "react";
|
|
3
|
+
import { Dialog, DialogTitle, DialogDescription, DialogBody, DialogActions } from "./dialog";
|
|
4
|
+
import { Button } from "./button";
|
|
5
|
+
// ---------------------------------------------------------------------------
|
|
6
|
+
// Built-in SVG icons (no heroicons peer dep required)
|
|
7
|
+
// ---------------------------------------------------------------------------
|
|
8
|
+
function ExclamationTriangleSvg(props) {
|
|
9
|
+
return (_jsx("svg", { xmlns: "http://www.w3.org/2000/svg", fill: "none", viewBox: "0 0 24 24", strokeWidth: 1.5, stroke: "currentColor", "aria-hidden": "true", ...props, children: _jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", d: "M12 9v3.75m-9.303 3.376c-.866 1.5.217 3.374 1.948 3.374h14.71c1.73 0 2.813-1.874 1.948-3.374L13.949 3.378c-.866-1.5-3.032-1.5-3.898 0L2.697 16.126ZM12 15.75h.007v.008H12v-.008Z" }) }));
|
|
10
|
+
}
|
|
11
|
+
function InformationCircleSvg(props) {
|
|
12
|
+
return (_jsx("svg", { xmlns: "http://www.w3.org/2000/svg", fill: "none", viewBox: "0 0 24 24", strokeWidth: 1.5, stroke: "currentColor", "aria-hidden": "true", ...props, children: _jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", d: "m11.25 11.25.041-.02a.75.75 0 0 1 1.063.852l-.708 2.836a.75.75 0 0 0 1.063.853l.041-.021M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Zm-9-3.75h.008v.008H12V8.25Z" }) }));
|
|
13
|
+
}
|
|
14
|
+
const toneConfigs = {
|
|
15
|
+
danger: {
|
|
16
|
+
iconBg: "bg-red-500/10 dark:bg-red-500/20",
|
|
17
|
+
iconColor: "text-red-600 dark:text-red-400",
|
|
18
|
+
warningBorder: "border-amber-200 dark:border-amber-500/30",
|
|
19
|
+
warningBg: "bg-amber-50 dark:bg-amber-500/10",
|
|
20
|
+
warningText: "text-amber-800 dark:text-amber-200",
|
|
21
|
+
buttonColor: "red",
|
|
22
|
+
defaultIcon: _jsx(ExclamationTriangleSvg, { className: "size-6" }),
|
|
23
|
+
},
|
|
24
|
+
warning: {
|
|
25
|
+
iconBg: "bg-amber-500/10 dark:bg-amber-500/20",
|
|
26
|
+
iconColor: "text-amber-600 dark:text-amber-400",
|
|
27
|
+
warningBorder: "border-amber-200 dark:border-amber-500/30",
|
|
28
|
+
warningBg: "bg-amber-50 dark:bg-amber-500/10",
|
|
29
|
+
warningText: "text-amber-800 dark:text-amber-200",
|
|
30
|
+
buttonColor: "amber",
|
|
31
|
+
defaultIcon: _jsx(ExclamationTriangleSvg, { className: "size-6" }),
|
|
32
|
+
},
|
|
33
|
+
info: {
|
|
34
|
+
iconBg: "bg-blue-500/10 dark:bg-blue-500/20",
|
|
35
|
+
iconColor: "text-blue-600 dark:text-blue-400",
|
|
36
|
+
warningBorder: "border-blue-200 dark:border-blue-500/30",
|
|
37
|
+
warningBg: "bg-blue-50 dark:bg-blue-500/10",
|
|
38
|
+
warningText: "text-blue-800 dark:text-blue-200",
|
|
39
|
+
buttonColor: "blue",
|
|
40
|
+
defaultIcon: _jsx(InformationCircleSvg, { className: "size-6" }),
|
|
41
|
+
},
|
|
42
|
+
};
|
|
43
|
+
// ---------------------------------------------------------------------------
|
|
44
|
+
// Component
|
|
45
|
+
// ---------------------------------------------------------------------------
|
|
46
|
+
export function ConfirmationDialog({ open, onClose, onConfirm, title, description, warning, tone = "danger", icon, confirmLabel = "Confirm", cancelLabel = "Cancel", isPending: externalPending = false, children, }) {
|
|
47
|
+
const [submitting, setSubmitting] = React.useState(false);
|
|
48
|
+
const isPending = externalPending || submitting;
|
|
49
|
+
const config = toneConfigs[tone];
|
|
50
|
+
const handleConfirm = async () => {
|
|
51
|
+
setSubmitting(true);
|
|
52
|
+
try {
|
|
53
|
+
await onConfirm();
|
|
54
|
+
onClose();
|
|
55
|
+
}
|
|
56
|
+
catch {
|
|
57
|
+
// Let the consumer handle the error (toast, inline, etc.)
|
|
58
|
+
}
|
|
59
|
+
finally {
|
|
60
|
+
setSubmitting(false);
|
|
61
|
+
}
|
|
62
|
+
};
|
|
63
|
+
// Reset submitting state when dialog closes
|
|
64
|
+
React.useEffect(() => {
|
|
65
|
+
if (!open)
|
|
66
|
+
setSubmitting(false);
|
|
67
|
+
}, [open]);
|
|
68
|
+
return (_jsxs(Dialog, { open: open, onClose: onClose, size: "sm", children: [_jsx("div", { className: "flex justify-center", children: _jsx("div", { className: `flex size-12 items-center justify-center rounded-full ${config.iconBg} ${config.iconColor}`, children: icon ?? config.defaultIcon }) }), _jsx(DialogTitle, { className: "mt-4 text-center", children: title }), description && (_jsx(DialogDescription, { className: "text-center", children: description })), (warning || children) && (_jsxs(DialogBody, { children: [warning && (_jsx("div", { className: `rounded-lg border p-3 text-sm ${config.warningBorder} ${config.warningBg} ${config.warningText}`, children: warning })), children] })), _jsxs(DialogActions, { children: [_jsx(Button, { plain: true, onClick: onClose, disabled: isPending, children: cancelLabel }), _jsx(Button, { color: config.buttonColor, onClick: handleConfirm, disabled: isPending, children: isPending ? "…" : confirmLabel })] })] }));
|
|
69
|
+
}
|
|
70
|
+
//# sourceMappingURL=confirmation-dialog.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"confirmation-dialog.js","sourceRoot":"","sources":["../../src/components/confirmation-dialog.tsx"],"names":[],"mappings":"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"}
|
|
@@ -34,6 +34,8 @@ export interface KanbanBoardProps<TItem = unknown> {
|
|
|
34
34
|
getItemColumn?: (item: TItem) => string;
|
|
35
35
|
/** Called when a drag completes on a valid target */
|
|
36
36
|
onDragEnd?: (itemId: string, fromColumn: string, toColumn: string) => void | Promise<void>;
|
|
37
|
+
/** Called when an item is reordered within the same column. targetItemId is the item it was dropped on/near. */
|
|
38
|
+
onReorder?: (itemId: string, columnId: string, targetItemId: string | null) => void | Promise<void>;
|
|
37
39
|
/** Return true if moving from one column to another is allowed */
|
|
38
40
|
isValidTransition?: (fromColumn: string, toColumn: string) => boolean;
|
|
39
41
|
/** Render a custom overlay while dragging */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kanban-board.d.ts","sourceRoot":"","sources":["../../src/components/kanban-board.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AAKf,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,kEAAkE;IAClE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,wDAAwD;IACxD,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,4DAA4D;IAC5D,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,+CAA+C;IAC/C,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,6DAA6D;IAC7D,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,mCAAmC;IACnC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,8CAA8C;IAC9C,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,gBAAgB,CAAC,KAAK,GAAG,OAAO;IAC/C,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,6CAA6C;IAC7C,iBAAiB,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,SAAS,CAAC;IACnD,SAAS,CAAC,EAAE,MAAM,CAAC;IAInB,8EAA8E;IAC9E,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,iEAAiE;IACjE,KAAK,CAAC,EAAE,KAAK,EAAE,CAAC;IAChB,uCAAuC;IACvC,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,KAAK,MAAM,CAAC;IACpC,gDAAgD;IAChD,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,KAAK,MAAM,CAAC;IACxC,qDAAqD;IACrD,SAAS,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3F,kEAAkE;IAClE,iBAAiB,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC;IACtE,6CAA6C;IAC7C,iBAAiB,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,KAAK,SAAS,CAAC;IAI/C,uFAAuF;IACvF,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IAC1C,qFAAqF;IACrF,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IAIxC,6DAA6D;IAC7D,UAAU,CAAC,EAAE,QAAQ,GAAG,MAAM,CAAC;IAC/B,oDAAoD;IACpD,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,qCAAqC;IACrC,iBAAiB,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IAI/C,8DAA8D;IAC9D,eAAe,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,cAAc,KAAK,MAAM,CAAC,CAAC;IACjF,gEAAgE;IAChE,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAE7B;;;;;;OAMG;IACH,YAAY,CAAC,EAAE,CACb,MAAM,EAAE,YAAY,EACpB,KAAK,EAAE,SAAS,EAChB,QAAQ,EAAE,cAAc,EACxB,YAAY,EAAE,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,KAAK,IAAI,KAC5C,SAAS,CAAC;CAChB;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,OAAO,CAAC;IAChB,aAAa,EAAE,OAAO,CAAC;IACvB,eAAe,EAAE,OAAO,CAAC;IACzB,UAAU,EAAE,OAAO,CAAC;CACrB;AASD,wBAAgB,WAAW,CAAC,KAAK,GAAG,OAAO,EAAE,KAAK,EAAE,gBAAgB,CAAC,KAAK,CAAC,2CAE1E;AA2BD,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,YAAY,CAAC;IACrB,QAAQ,EAAE,SAAS,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,wBAAgB,iBAAiB,CAAC,EAChC,MAAM,EACN,QAAQ,EACR,SAAS,EACT,aAAa,GACd,EAAE,sBAAsB,2CAgExB"}
|
|
1
|
+
{"version":3,"file":"kanban-board.d.ts","sourceRoot":"","sources":["../../src/components/kanban-board.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kanban-board.js","sourceRoot":"","sources":["../../src/components/kanban-board.tsx"],"names":[],"mappings":";AAGA,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"kanban-board.js","sourceRoot":"","sources":["../../src/components/kanban-board.tsx"],"names":[],"mappings":";AAGA,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AA+FlC,gFAAgF;AAChF,iFAAiF;AACjF,iFAAiF;AACjF,4CAA4C;AAE5C,iFAAiF;AAEjF,MAAM,UAAU,WAAW,CAAkB,KAA8B;IACzE,OAAO,KAAC,iBAAiB,OAAK,KAAK,GAAI,CAAC;AAC1C,CAAC;AAED,gFAAgF;AAEhF,SAAS,iBAAiB,CAAQ,EAChC,OAAO,EACP,iBAAiB,EACjB,SAAS,GACe;IACxB,OAAO,CACL,cACE,SAAS,EAAE,EAAE,CACX,sDAAsD,EACtD,SAAS,CACV,YAEA,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CACpB,KAAC,iBAAiB,IAAc,MAAM,EAAE,GAAG,EAAE,aAAa,EAAE,SAAS,YAClE,iBAAiB,CAAC,GAAG,CAAC,EAAE,CAAC,IADJ,GAAG,CAAC,EAAE,CAEV,CACrB,CAAC,GACE,CACP,CAAC;AACJ,CAAC;AAWD,MAAM,UAAU,iBAAiB,CAAC,EAChC,MAAM,EACN,QAAQ,EACR,SAAS,EACT,aAAa,GACU;IACvB,OAAO,CACL,eACE,SAAS,EAAE,EAAE,CACX,gGAAgG,EAChG,MAAM,CAAC,qBAAqB,EAC5B,SAAS,CACV,aAGD,eACE,SAAS,EAAE,EAAE,CACX,0DAA0D,EAC1D,MAAM,CAAC,eAAe,CACvB,aAGA,MAAM,CAAC,IAAI,IAAI,CACd,cACE,SAAS,EAAE,EAAE,CACX,oDAAoD,EACpD,MAAM,CAAC,aAAa,CACrB,YAEA,MAAM,CAAC,IAAI,GACR,CACP,EAGA,CAAC,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,WAAW,IAAI,CACrC,cAAK,SAAS,EAAE,EAAE,CAAC,8BAA8B,EAAE,MAAM,CAAC,WAAW,CAAC,GAAI,CAC3E,EAED,eAAK,SAAS,EAAC,gBAAgB,aAC7B,aAAI,SAAS,EAAC,yCAAyC,YACpD,MAAM,CAAC,KAAK,GACV,EACJ,MAAM,CAAC,QAAQ,IAAI,CAClB,YAAG,SAAS,EAAC,+BAA+B,YAAE,MAAM,CAAC,QAAQ,GAAK,CACnE,IACG,EAEN,eACE,SAAS,EAAE,EAAE,CACX,6FAA6F,EAC7F,MAAM,CAAC,cAAc,CACtB,YAEA,MAAM,CAAC,KAAK,GACR,IACH,EAGN,cAAK,SAAS,EAAE,EAAE,CAAC,wDAAwD,EAAE,aAAa,CAAC,YACxF,MAAM,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CACpB,YAAG,SAAS,EAAC,gDAAgD,YAC1D,MAAM,CAAC,SAAS,IAAI,UAAU,GAC7B,CACL,CAAC,CAAC,CAAC,CACF,QAAQ,CACT,GACG,IACF,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -3,6 +3,6 @@
|
|
|
3
3
|
* to avoid bundling @dnd-kit when DnD is not needed.
|
|
4
4
|
*/
|
|
5
5
|
import { type KanbanBoardProps } from "./kanban-board";
|
|
6
|
-
declare function KanbanDndBoard<TItem = unknown>({ columns, renderColumnCards, className, items, getItemId, getItemColumn, onDragEnd, onDragStartRaw, onDragEndRaw, isValidTransition, renderDragOverlay, renderColumn, columnClassName, columnBodyClassName, }: KanbanBoardProps<TItem>): import("react/jsx-runtime").JSX.Element;
|
|
6
|
+
declare function KanbanDndBoard<TItem = unknown>({ columns, renderColumnCards, className, items, getItemId, getItemColumn, onDragEnd, onReorder, onDragStartRaw, onDragEndRaw, isValidTransition, renderDragOverlay, renderColumn, columnClassName, columnBodyClassName, }: KanbanBoardProps<TItem>): import("react/jsx-runtime").JSX.Element;
|
|
7
7
|
export default KanbanDndBoard;
|
|
8
8
|
//# sourceMappingURL=kanban-dnd-board.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kanban-dnd-board.d.ts","sourceRoot":"","sources":["../../src/components/kanban-dnd-board.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAUH,OAAO,EAAqB,KAAK,gBAAgB,EAAuB,MAAM,gBAAgB,CAAC;AAI/F,iBAAS,cAAc,CAAC,KAAK,GAAG,OAAO,EAAE,EACvC,OAAO,EACP,iBAAiB,EACjB,SAAS,EACT,KAAK,EACL,SAAS,EACT,aAAa,EACb,SAAS,EACT,cAAc,EACd,YAAY,EACZ,iBAAiB,EACjB,iBAAiB,EACjB,YAAY,EACZ,eAAe,EACf,mBAAmB,GACpB,EAAE,gBAAgB,CAAC,KAAK,CAAC,
|
|
1
|
+
{"version":3,"file":"kanban-dnd-board.d.ts","sourceRoot":"","sources":["../../src/components/kanban-dnd-board.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAUH,OAAO,EAAqB,KAAK,gBAAgB,EAAuB,MAAM,gBAAgB,CAAC;AAI/F,iBAAS,cAAc,CAAC,KAAK,GAAG,OAAO,EAAE,EACvC,OAAO,EACP,iBAAiB,EACjB,SAAS,EACT,KAAK,EACL,SAAS,EACT,aAAa,EACb,SAAS,EACT,SAAS,EACT,cAAc,EACd,YAAY,EACZ,iBAAiB,EACjB,iBAAiB,EACjB,YAAY,EACZ,eAAe,EACf,mBAAmB,GACpB,EAAE,gBAAgB,CAAC,KAAK,CAAC,2CAoHzB;AAsFD,eAAe,cAAc,CAAC"}
|
|
@@ -8,7 +8,7 @@ import { DragDropProvider, DragOverlay, useDragOperation, useDroppable, } from "
|
|
|
8
8
|
import { cn } from "../lib/utils";
|
|
9
9
|
import { KanbanColumnShell } from "./kanban-board";
|
|
10
10
|
// ─── DnD Board ───────────────────────────────────────────────────────────────
|
|
11
|
-
function KanbanDndBoard({ columns, renderColumnCards, className, items, getItemId, getItemColumn, onDragEnd, onDragStartRaw, onDragEndRaw, isValidTransition, renderDragOverlay, renderColumn, columnClassName, columnBodyClassName, }) {
|
|
11
|
+
function KanbanDndBoard({ columns, renderColumnCards, className, items, getItemId, getItemColumn, onDragEnd, onReorder, onDragStartRaw, onDragEndRaw, isValidTransition, renderDragOverlay, renderColumn, columnClassName, columnBodyClassName, }) {
|
|
12
12
|
const [dragSourceColumn, setDragSourceColumn] = useState(null);
|
|
13
13
|
const handleDragStart = useCallback((event) => {
|
|
14
14
|
onDragStartRaw?.(event);
|
|
@@ -56,12 +56,18 @@ function KanbanDndBoard({ columns, renderColumnCards, className, items, getItemI
|
|
|
56
56
|
}
|
|
57
57
|
if (!sourceColumnId || !sourceItemId)
|
|
58
58
|
return;
|
|
59
|
-
if (sourceColumnId === targetColumnId)
|
|
59
|
+
if (sourceColumnId === targetColumnId) {
|
|
60
|
+
// Same-column reorder
|
|
61
|
+
const targetItemId = target.data?.itemId ?? null;
|
|
62
|
+
if (targetItemId !== sourceItemId) {
|
|
63
|
+
onReorder?.(sourceItemId, sourceColumnId, targetItemId);
|
|
64
|
+
}
|
|
60
65
|
return;
|
|
66
|
+
}
|
|
61
67
|
if (isValidTransition && !isValidTransition(sourceColumnId, targetColumnId))
|
|
62
68
|
return;
|
|
63
69
|
onDragEnd?.(sourceItemId, sourceColumnId, targetColumnId);
|
|
64
|
-
}, [dragSourceColumn, items, getItemId, getItemColumn, isValidTransition, onDragEnd, onDragEndRaw]);
|
|
70
|
+
}, [dragSourceColumn, items, getItemId, getItemColumn, isValidTransition, onDragEnd, onReorder, onDragEndRaw]);
|
|
65
71
|
return (_jsxs(DragDropProvider, { onDragStart: handleDragStart, onDragEnd: handleDragEnd, children: [_jsx("div", { className: cn("grid grid-cols-1 gap-4 md:grid-cols-2 xl:grid-cols-4", className), children: columns.map((col) => {
|
|
66
72
|
const isValid = dragSourceColumn !== null &&
|
|
67
73
|
(isValidTransition
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kanban-dnd-board.js","sourceRoot":"","sources":["../../src/components/kanban-dnd-board.tsx"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"kanban-dnd-board.js","sourceRoot":"","sources":["../../src/components/kanban-dnd-board.tsx"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -14,6 +14,7 @@ export * from "./components/checkbox";
|
|
|
14
14
|
export * from "./components/combobox";
|
|
15
15
|
export * from "./components/command";
|
|
16
16
|
export * from "./components/description-list";
|
|
17
|
+
export * from "./components/confirmation-dialog";
|
|
17
18
|
export * from "./components/dialog";
|
|
18
19
|
export * from "./components/divider";
|
|
19
20
|
export * from "./components/drawer";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -16,6 +16,7 @@ export * from "./components/checkbox";
|
|
|
16
16
|
export * from "./components/combobox";
|
|
17
17
|
export * from "./components/command";
|
|
18
18
|
export * from "./components/description-list";
|
|
19
|
+
export * from "./components/confirmation-dialog";
|
|
19
20
|
export * from "./components/dialog";
|
|
20
21
|
export * from "./components/divider";
|
|
21
22
|
export * from "./components/drawer";
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export { TeamManagement } from "./team-management";
|
|
2
|
+
export type { TeamManagementProps } from "./team-management";
|
|
3
|
+
export { InviteMemberDialog } from "./invite-member-dialog";
|
|
4
|
+
export type { InviteMemberDialogProps } from "./invite-member-dialog";
|
|
5
|
+
export type { TeamMember, PendingInvite, SubscriptionInfo, TeamManagementCallbacks, TranslationFn, } from "./types";
|
|
6
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/org/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,YAAY,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAE7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,YAAY,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AAEtE,YAAY,EACV,UAAU,EACV,aAAa,EACb,gBAAgB,EAChB,uBAAuB,EACvB,aAAa,GACd,MAAM,SAAS,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/org/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAGnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { TranslationFn } from "./types";
|
|
2
|
+
export interface InviteMemberDialogProps {
|
|
3
|
+
open: boolean;
|
|
4
|
+
onClose: () => void;
|
|
5
|
+
/** Should call the API and return a result. Throw to show error. */
|
|
6
|
+
onInvite: (email: string) => Promise<{
|
|
7
|
+
message?: string;
|
|
8
|
+
}>;
|
|
9
|
+
isPending?: boolean;
|
|
10
|
+
t?: TranslationFn;
|
|
11
|
+
}
|
|
12
|
+
export declare function InviteMemberDialog({ open, onClose, onInvite, isPending: externalPending, t, }: InviteMemberDialogProps): import("react/jsx-runtime").JSX.Element;
|
|
13
|
+
//# sourceMappingURL=invite-member-dialog.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"invite-member-dialog.d.ts","sourceRoot":"","sources":["../../src/org/invite-member-dialog.tsx"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AA8B7C,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,oEAAoE;IACpE,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC;QAAE,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC3D,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,CAAC,CAAC,EAAE,aAAa,CAAC;CACnB;AAYD,wBAAgB,kBAAkB,CAAC,EACjC,IAAI,EACJ,OAAO,EACP,QAAQ,EACR,SAAS,EAAE,eAAuB,EAClC,CAAY,GACb,EAAE,uBAAuB,2CAsGzB"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import * as React from "react";
|
|
3
|
+
import { Dialog, DialogTitle, DialogDescription, DialogBody, DialogActions, } from "../components/dialog";
|
|
4
|
+
import { Button } from "../components/button";
|
|
5
|
+
import { Input } from "../components/input";
|
|
6
|
+
// ---------------------------------------------------------------------------
|
|
7
|
+
// Built-in SVG icon
|
|
8
|
+
// ---------------------------------------------------------------------------
|
|
9
|
+
function UserPlusSvg(props) {
|
|
10
|
+
return (_jsx("svg", { xmlns: "http://www.w3.org/2000/svg", fill: "none", viewBox: "0 0 24 24", strokeWidth: 1.5, stroke: "currentColor", "aria-hidden": "true", ...props, children: _jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", d: "M18 7.5v3m0 0v3m0-3h3m-3 0h-3m-2.25-4.125a3.375 3.375 0 1 1-6.75 0 3.375 3.375 0 0 1 6.75 0ZM3 19.235v-.11a6.375 6.375 0 0 1 12.75 0v.109A12.318 12.318 0 0 1 9.374 21c-2.331 0-4.512-.645-6.374-1.766Z" }) }));
|
|
11
|
+
}
|
|
12
|
+
// ---------------------------------------------------------------------------
|
|
13
|
+
// Default translation
|
|
14
|
+
// ---------------------------------------------------------------------------
|
|
15
|
+
const defaultT = (_key, fallback) => fallback ?? _key;
|
|
16
|
+
// ---------------------------------------------------------------------------
|
|
17
|
+
// Component
|
|
18
|
+
// ---------------------------------------------------------------------------
|
|
19
|
+
export function InviteMemberDialog({ open, onClose, onInvite, isPending: externalPending = false, t = defaultT, }) {
|
|
20
|
+
const [email, setEmail] = React.useState("");
|
|
21
|
+
const [error, setError] = React.useState(null);
|
|
22
|
+
const [notice, setNotice] = React.useState(null);
|
|
23
|
+
const [submitting, setSubmitting] = React.useState(false);
|
|
24
|
+
const isPending = externalPending || submitting;
|
|
25
|
+
const canSubmit = email.trim().length > 0 && email.includes("@");
|
|
26
|
+
React.useEffect(() => {
|
|
27
|
+
if (!open) {
|
|
28
|
+
setEmail("");
|
|
29
|
+
setError(null);
|
|
30
|
+
setNotice(null);
|
|
31
|
+
setSubmitting(false);
|
|
32
|
+
}
|
|
33
|
+
}, [open]);
|
|
34
|
+
const handleSubmit = async () => {
|
|
35
|
+
if (!canSubmit)
|
|
36
|
+
return;
|
|
37
|
+
setError(null);
|
|
38
|
+
setNotice(null);
|
|
39
|
+
setSubmitting(true);
|
|
40
|
+
try {
|
|
41
|
+
const result = await onInvite(email.trim());
|
|
42
|
+
setNotice(result.message ??
|
|
43
|
+
t("invite.sent", `Invite sent to ${email.trim()}`));
|
|
44
|
+
setTimeout(() => onClose(), 700);
|
|
45
|
+
}
|
|
46
|
+
catch (err) {
|
|
47
|
+
setError(err instanceof Error
|
|
48
|
+
? err.message
|
|
49
|
+
: t("invite.error", "Could not send invite."));
|
|
50
|
+
}
|
|
51
|
+
finally {
|
|
52
|
+
setSubmitting(false);
|
|
53
|
+
}
|
|
54
|
+
};
|
|
55
|
+
return (_jsxs(Dialog, { open: open, onClose: onClose, size: "sm", children: [_jsx("div", { className: "flex justify-center", children: _jsx("div", { className: "flex size-12 items-center justify-center rounded-full bg-primary/10 dark:bg-primary/20", children: _jsx(UserPlusSvg, { className: "size-6 text-primary dark:text-primary-foreground/90" }) }) }), _jsx(DialogTitle, { className: "mt-4 text-center", children: t("invite.title", "Invite a team member") }), _jsx(DialogDescription, { className: "text-center", children: t("invite.description", "Send an organisation invite by email.") }), _jsxs(DialogBody, { className: "space-y-4", children: [_jsxs("div", { children: [_jsx("label", { className: "mb-2 block text-sm font-medium text-zinc-900 dark:text-zinc-100", children: t("invite.emailLabel", "Email") }), _jsx(Input, { type: "email", value: email, onChange: (e) => setEmail(e.target.value), placeholder: "teammate@company.com", onKeyDown: (e) => {
|
|
56
|
+
if (e.key === "Enter" && canSubmit && !isPending)
|
|
57
|
+
handleSubmit();
|
|
58
|
+
} })] }), error && (_jsx("div", { className: "rounded-lg border border-red-200 bg-red-50 px-3 py-2 text-sm text-red-800 dark:border-red-500/30 dark:bg-red-500/10 dark:text-red-200", children: error })), notice && (_jsx("div", { className: "rounded-lg border border-emerald-200 bg-emerald-50 px-3 py-2 text-sm text-emerald-800 dark:border-emerald-500/30 dark:bg-emerald-500/10 dark:text-emerald-200", children: notice }))] }), _jsxs(DialogActions, { children: [_jsx(Button, { plain: true, onClick: onClose, disabled: isPending, children: t("cancel", "Cancel") }), _jsx(Button, { color: "brand", onClick: handleSubmit, disabled: isPending || !canSubmit, children: isPending
|
|
59
|
+
? t("invite.sending", "Sending...")
|
|
60
|
+
: t("invite.send", "Send invite") })] })] }));
|
|
61
|
+
}
|
|
62
|
+
//# sourceMappingURL=invite-member-dialog.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"invite-member-dialog.js","sourceRoot":"","sources":["../../src/org/invite-member-dialog.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EACL,MAAM,EACN,WAAW,EACX,iBAAiB,EACjB,UAAU,EACV,aAAa,GACd,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAG5C,8EAA8E;AAC9E,oBAAoB;AACpB,8EAA8E;AAE9E,SAAS,WAAW,CAAC,KAAoC;IACvD,OAAO,CACL,cACE,KAAK,EAAC,4BAA4B,EAClC,IAAI,EAAC,MAAM,EACX,OAAO,EAAC,WAAW,EACnB,WAAW,EAAE,GAAG,EAChB,MAAM,EAAC,cAAc,iBACT,MAAM,KACd,KAAK,YAET,eACE,aAAa,EAAC,OAAO,EACrB,cAAc,EAAC,OAAO,EACtB,CAAC,EAAC,yMAAyM,GAC3M,GACE,CACP,CAAC;AACJ,CAAC;AAeD,8EAA8E;AAC9E,sBAAsB;AACtB,8EAA8E;AAE9E,MAAM,QAAQ,GAAkB,CAAC,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC,QAAQ,IAAI,IAAI,CAAC;AAErE,8EAA8E;AAC9E,YAAY;AACZ,8EAA8E;AAE9E,MAAM,UAAU,kBAAkB,CAAC,EACjC,IAAI,EACJ,OAAO,EACP,QAAQ,EACR,SAAS,EAAE,eAAe,GAAG,KAAK,EAClC,CAAC,GAAG,QAAQ,GACY;IACxB,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IAC7C,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAgB,IAAI,CAAC,CAAC;IAC9D,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAgB,IAAI,CAAC,CAAC;IAChE,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAE1D,MAAM,SAAS,GAAG,eAAe,IAAI,UAAU,CAAC;IAChD,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;IAEjE,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,QAAQ,CAAC,EAAE,CAAC,CAAC;YACb,QAAQ,CAAC,IAAI,CAAC,CAAC;YACf,SAAS,CAAC,IAAI,CAAC,CAAC;YAChB,aAAa,CAAC,KAAK,CAAC,CAAC;QACvB,CAAC;IACH,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IAEX,MAAM,YAAY,GAAG,KAAK,IAAI,EAAE;QAC9B,IAAI,CAAC,SAAS;YAAE,OAAO;QACvB,QAAQ,CAAC,IAAI,CAAC,CAAC;QACf,SAAS,CAAC,IAAI,CAAC,CAAC;QAChB,aAAa,CAAC,IAAI,CAAC,CAAC;QAEpB,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;YAC5C,SAAS,CACP,MAAM,CAAC,OAAO;gBACZ,CAAC,CAAC,aAAa,EAAE,kBAAkB,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC,CACrD,CAAC;YACF,UAAU,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,EAAE,GAAG,CAAC,CAAC;QACnC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,QAAQ,CACN,GAAG,YAAY,KAAK;gBAClB,CAAC,CAAC,GAAG,CAAC,OAAO;gBACb,CAAC,CAAC,CAAC,CAAC,cAAc,EAAE,wBAAwB,CAAC,CAChD,CAAC;QACJ,CAAC;gBAAS,CAAC;YACT,aAAa,CAAC,KAAK,CAAC,CAAC;QACvB,CAAC;IACH,CAAC,CAAC;IAEF,OAAO,CACL,MAAC,MAAM,IAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAC,IAAI,aAE7C,cAAK,SAAS,EAAC,qBAAqB,YAClC,cAAK,SAAS,EAAC,wFAAwF,YACrG,KAAC,WAAW,IAAC,SAAS,EAAC,qDAAqD,GAAG,GAC3E,GACF,EAEN,KAAC,WAAW,IAAC,SAAS,EAAC,kBAAkB,YACtC,CAAC,CAAC,cAAc,EAAE,sBAAsB,CAAC,GAC9B,EACd,KAAC,iBAAiB,IAAC,SAAS,EAAC,aAAa,YACvC,CAAC,CAAC,oBAAoB,EAAE,uCAAuC,CAAC,GAC/C,EAEpB,MAAC,UAAU,IAAC,SAAS,EAAC,WAAW,aAC/B,0BACE,gBAAO,SAAS,EAAC,iEAAiE,YAC/E,CAAC,CAAC,mBAAmB,EAAE,OAAO,CAAC,GAC1B,EACR,KAAC,KAAK,IACJ,IAAI,EAAC,OAAO,EACZ,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EACzC,WAAW,EAAC,sBAAsB,EAClC,SAAS,EAAE,CAAC,CAAC,EAAE,EAAE;oCACf,IAAI,CAAC,CAAC,GAAG,KAAK,OAAO,IAAI,SAAS,IAAI,CAAC,SAAS;wCAAE,YAAY,EAAE,CAAC;gCACnE,CAAC,GACD,IACE,EAEL,KAAK,IAAI,CACR,cAAK,SAAS,EAAC,uIAAuI,YACnJ,KAAK,GACF,CACP,EACA,MAAM,IAAI,CACT,cAAK,SAAS,EAAC,+JAA+J,YAC3K,MAAM,GACH,CACP,IACU,EAEb,MAAC,aAAa,eACZ,KAAC,MAAM,IAAC,KAAK,QAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,YAChD,CAAC,CAAC,QAAQ,EAAE,QAAQ,CAAC,GACf,EACT,KAAC,MAAM,IACL,KAAK,EAAC,OAAO,EACb,OAAO,EAAE,YAAY,EACrB,QAAQ,EAAE,SAAS,IAAI,CAAC,SAAS,YAEhC,SAAS;4BACR,CAAC,CAAC,CAAC,CAAC,gBAAgB,EAAE,YAAY,CAAC;4BACnC,CAAC,CAAC,CAAC,CAAC,aAAa,EAAE,aAAa,CAAC,GAC5B,IACK,IACT,CACV,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { TeamMember, PendingInvite, SubscriptionInfo, TeamManagementCallbacks, TranslationFn } from "./types";
|
|
2
|
+
export interface TeamManagementProps {
|
|
3
|
+
members: TeamMember[];
|
|
4
|
+
pendingInvites: PendingInvite[];
|
|
5
|
+
subscription?: SubscriptionInfo;
|
|
6
|
+
currentUserId: string;
|
|
7
|
+
isOwner: boolean;
|
|
8
|
+
isMembersLoading?: boolean;
|
|
9
|
+
isInvitesLoading?: boolean;
|
|
10
|
+
callbacks: TeamManagementCallbacks;
|
|
11
|
+
t?: TranslationFn;
|
|
12
|
+
}
|
|
13
|
+
export declare function TeamManagement({ members, pendingInvites, subscription, currentUserId, isOwner, isMembersLoading, isInvitesLoading, callbacks, t, }: TeamManagementProps): import("react/jsx-runtime").JSX.Element;
|
|
14
|
+
//# sourceMappingURL=team-management.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"team-management.d.ts","sourceRoot":"","sources":["../../src/org/team-management.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EACV,UAAU,EACV,aAAa,EACb,gBAAgB,EAChB,uBAAuB,EACvB,aAAa,EACd,MAAM,SAAS,CAAC;AAgGjB,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,UAAU,EAAE,CAAC;IACtB,cAAc,EAAE,aAAa,EAAE,CAAC;IAChC,YAAY,CAAC,EAAE,gBAAgB,CAAC;IAChC,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,OAAO,CAAC;IACjB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,SAAS,EAAE,uBAAuB,CAAC;IACnC,CAAC,CAAC,EAAE,aAAa,CAAC;CACnB;AAMD,wBAAgB,cAAc,CAAC,EAC7B,OAAO,EACP,cAAc,EACd,YAAY,EACZ,aAAa,EACb,OAAO,EACP,gBAAwB,EACxB,gBAAwB,EACxB,SAAS,EACT,CAAY,GACb,EAAE,mBAAmB,2CAuQrB"}
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
+
import * as React from "react";
|
|
3
|
+
import { Badge } from "../components/badge";
|
|
4
|
+
import { Button } from "../components/button";
|
|
5
|
+
import { ConfirmationDialog } from "../components/confirmation-dialog";
|
|
6
|
+
import { InviteMemberDialog } from "./invite-member-dialog";
|
|
7
|
+
// ---------------------------------------------------------------------------
|
|
8
|
+
// Built-in SVG icons (no heroicons peer dep)
|
|
9
|
+
// ---------------------------------------------------------------------------
|
|
10
|
+
function UserGroupSvg(props) {
|
|
11
|
+
return (_jsx("svg", { xmlns: "http://www.w3.org/2000/svg", fill: "none", viewBox: "0 0 24 24", strokeWidth: 1.5, stroke: "currentColor", "aria-hidden": "true", ...props, children: _jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", d: "M18 18.72a9.094 9.094 0 0 0 3.741-.479 3 3 0 0 0-4.682-2.72m.94 3.198.001.031c0 .225-.012.447-.037.666A11.944 11.944 0 0 1 12 21c-2.17 0-4.207-.576-5.963-1.584A6.062 6.062 0 0 1 6 18.719m12 0a5.971 5.971 0 0 0-.941-3.197m0 0A5.995 5.995 0 0 0 12 12.75a5.995 5.995 0 0 0-5.058 2.772m0 0a3 3 0 0 0-4.681 2.72 8.986 8.986 0 0 0 3.74.477m.94-3.197a5.971 5.971 0 0 0-.94 3.197M15 6.75a3 3 0 1 1-6 0 3 3 0 0 1 6 0Zm6 3a2.25 2.25 0 1 1-4.5 0 2.25 2.25 0 0 1 4.5 0Zm-13.5 0a2.25 2.25 0 1 1-4.5 0 2.25 2.25 0 0 1 4.5 0Z" }) }));
|
|
12
|
+
}
|
|
13
|
+
function EnvelopeSvg(props) {
|
|
14
|
+
return (_jsx("svg", { xmlns: "http://www.w3.org/2000/svg", fill: "none", viewBox: "0 0 24 24", strokeWidth: 1.5, stroke: "currentColor", "aria-hidden": "true", ...props, children: _jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", d: "M21.75 6.75v10.5a2.25 2.25 0 0 1-2.25 2.25h-15a2.25 2.25 0 0 1-2.25-2.25V6.75m19.5 0A2.25 2.25 0 0 0 19.5 4.5h-15a2.25 2.25 0 0 0-2.25 2.25m19.5 0v.243a2.25 2.25 0 0 1-1.07 1.916l-7.5 4.615a2.25 2.25 0 0 1-2.36 0L3.32 8.91a2.25 2.25 0 0 1-1.07-1.916V6.75" }) }));
|
|
15
|
+
}
|
|
16
|
+
function UserPlusSvg(props) {
|
|
17
|
+
return (_jsx("svg", { xmlns: "http://www.w3.org/2000/svg", fill: "none", viewBox: "0 0 24 24", strokeWidth: 1.5, stroke: "currentColor", "aria-hidden": "true", ...props, children: _jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", d: "M18 7.5v3m0 0v3m0-3h3m-3 0h-3m-2.25-4.125a3.375 3.375 0 1 1-6.75 0 3.375 3.375 0 0 1 6.75 0ZM3 19.235v-.11a6.375 6.375 0 0 1 12.75 0v.109A12.318 12.318 0 0 1 9.374 21c-2.331 0-4.512-.645-6.374-1.766Z" }) }));
|
|
18
|
+
}
|
|
19
|
+
function ShieldCheckSvg(props) {
|
|
20
|
+
return (_jsx("svg", { xmlns: "http://www.w3.org/2000/svg", fill: "none", viewBox: "0 0 24 24", strokeWidth: 1.5, stroke: "currentColor", "aria-hidden": "true", ...props, children: _jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", d: "M9 12.75 11.25 15 15 9.75m-3-7.036A11.959 11.959 0 0 1 3.598 6 11.99 11.99 0 0 0 3 9.749c0 5.592 3.824 10.29 9 11.623 5.176-1.332 9-6.03 9-11.622 0-1.31-.21-2.571-.598-3.751h-.152c-3.196 0-6.1-1.248-8.25-3.285Z" }) }));
|
|
21
|
+
}
|
|
22
|
+
function TrashSvg(props) {
|
|
23
|
+
return (_jsx("svg", { xmlns: "http://www.w3.org/2000/svg", fill: "none", viewBox: "0 0 24 24", strokeWidth: 1.5, stroke: "currentColor", "aria-hidden": "true", ...props, children: _jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", d: "m14.74 9-.346 9m-4.788 0L9.26 9m9.968-3.21c.342.052.682.107 1.022.166m-1.022-.165L18.16 19.673a2.25 2.25 0 0 1-2.244 2.077H8.084a2.25 2.25 0 0 1-2.244-2.077L4.772 5.79m14.456 0a48.108 48.108 0 0 0-3.478-.397m-12 .562c.34-.059.68-.114 1.022-.165m0 0a48.11 48.11 0 0 1 3.478-.397m7.5 0v-.916c0-1.18-.91-2.164-2.09-2.201a51.964 51.964 0 0 0-3.32 0c-1.18.037-2.09 1.022-2.09 2.201v.916m7.5 0a48.667 48.667 0 0 0-7.5 0" }) }));
|
|
24
|
+
}
|
|
25
|
+
function ArrowsRightLeftSvg(props) {
|
|
26
|
+
return (_jsx("svg", { xmlns: "http://www.w3.org/2000/svg", fill: "none", viewBox: "0 0 24 24", strokeWidth: 1.5, stroke: "currentColor", "aria-hidden": "true", ...props, children: _jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", d: "M7.5 21 3 16.5m0 0L7.5 12M3 16.5h13.5m0-13.5L21 7.5m0 0L16.5 12M21 7.5H7.5" }) }));
|
|
27
|
+
}
|
|
28
|
+
// ---------------------------------------------------------------------------
|
|
29
|
+
// Helpers
|
|
30
|
+
// ---------------------------------------------------------------------------
|
|
31
|
+
const defaultT = (_key, fallback) => fallback ?? _key;
|
|
32
|
+
function formatDate(dateString) {
|
|
33
|
+
if (!dateString)
|
|
34
|
+
return "";
|
|
35
|
+
try {
|
|
36
|
+
return new Date(dateString).toLocaleDateString(undefined, {
|
|
37
|
+
year: "numeric",
|
|
38
|
+
month: "short",
|
|
39
|
+
day: "numeric",
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
catch {
|
|
43
|
+
return dateString;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
function prettifyTier(tier) {
|
|
47
|
+
if (!tier)
|
|
48
|
+
return "Unknown";
|
|
49
|
+
return tier
|
|
50
|
+
.replace("SUBSCRIPTION_TIER_", "")
|
|
51
|
+
.toLowerCase()
|
|
52
|
+
.replace(/^\w/, (c) => c.toUpperCase());
|
|
53
|
+
}
|
|
54
|
+
function tierBadgeColor(tier) {
|
|
55
|
+
if (tier?.includes("ENTERPRISE"))
|
|
56
|
+
return "purple";
|
|
57
|
+
if (tier?.includes("STANDARD"))
|
|
58
|
+
return "blue";
|
|
59
|
+
if (tier?.includes("FREE"))
|
|
60
|
+
return "green";
|
|
61
|
+
return "zinc";
|
|
62
|
+
}
|
|
63
|
+
function getMemberDisplayName(member) {
|
|
64
|
+
return member.name || member.email || member.userId || member.membershipId;
|
|
65
|
+
}
|
|
66
|
+
// ---------------------------------------------------------------------------
|
|
67
|
+
// Component
|
|
68
|
+
// ---------------------------------------------------------------------------
|
|
69
|
+
export function TeamManagement({ members, pendingInvites, subscription, currentUserId, isOwner, isMembersLoading = false, isInvitesLoading = false, callbacks, t = defaultT, }) {
|
|
70
|
+
const [inviteOpen, setInviteOpen] = React.useState(false);
|
|
71
|
+
// Confirmation dialog state
|
|
72
|
+
const [confirmState, setConfirmState] = React.useState(null);
|
|
73
|
+
const handleConfirm = async () => {
|
|
74
|
+
if (!confirmState)
|
|
75
|
+
return;
|
|
76
|
+
switch (confirmState.type) {
|
|
77
|
+
case "remove":
|
|
78
|
+
return callbacks.onRemoveMember(confirmState.id);
|
|
79
|
+
case "transfer":
|
|
80
|
+
return callbacks.onTransferOwnership(confirmState.id);
|
|
81
|
+
case "revoke":
|
|
82
|
+
return callbacks.onRevokeInvite(confirmState.id);
|
|
83
|
+
}
|
|
84
|
+
};
|
|
85
|
+
const confirmConfig = confirmState
|
|
86
|
+
? {
|
|
87
|
+
remove: {
|
|
88
|
+
title: t("team.removeTitle", "Remove member"),
|
|
89
|
+
description: t("team.removeDesc", `Remove ${confirmState.name} from the organisation?`, { name: confirmState.name }),
|
|
90
|
+
warning: t("team.removeWarning", "They will lose access immediately."),
|
|
91
|
+
confirmLabel: t("team.remove", "Remove member"),
|
|
92
|
+
tone: "danger",
|
|
93
|
+
},
|
|
94
|
+
transfer: {
|
|
95
|
+
title: t("team.transferTitle", "Transfer ownership"),
|
|
96
|
+
description: t("team.transferDesc", `Transfer ownership to ${confirmState.name}?`, { name: confirmState.name }),
|
|
97
|
+
warning: t("team.transferWarning", "You will be demoted to member. This cannot be undone."),
|
|
98
|
+
confirmLabel: t("team.transfer", "Transfer ownership"),
|
|
99
|
+
tone: "danger",
|
|
100
|
+
},
|
|
101
|
+
revoke: {
|
|
102
|
+
title: t("team.revokeTitle", "Revoke invite"),
|
|
103
|
+
description: t("team.revokeDesc", `Revoke the pending invite for ${confirmState.name}?`, { name: confirmState.name }),
|
|
104
|
+
confirmLabel: t("team.revoke", "Revoke"),
|
|
105
|
+
tone: "warning",
|
|
106
|
+
},
|
|
107
|
+
}[confirmState.type]
|
|
108
|
+
: null;
|
|
109
|
+
const seatsUsed = subscription?.seatsUsed ?? members.length;
|
|
110
|
+
const maxSeats = subscription?.maxSeats ?? 0;
|
|
111
|
+
const seatsRemaining = subscription?.seatsRemaining ?? Math.max(0, maxSeats - seatsUsed);
|
|
112
|
+
const seatPct = maxSeats > 0 ? Math.min(100, Math.round((seatsUsed / maxSeats) * 100)) : 0;
|
|
113
|
+
return (_jsxs("div", { className: "space-y-8", children: [_jsxs("div", { className: "grid gap-4 sm:grid-cols-2", children: [_jsx(StatCard, { icon: _jsx(UserGroupSvg, { className: "size-5" }), value: isMembersLoading ? "—" : members.length, label: t("team.activeMembers", "Active members"), tone: "emerald" }), _jsx(StatCard, { icon: _jsx(EnvelopeSvg, { className: "size-5" }), value: isInvitesLoading ? "—" : pendingInvites.length, label: t("team.pendingInvites", "Pending invites"), tone: "amber" })] }), subscription?.tier && (_jsxs("div", { className: "rounded-2xl border border-border/60 bg-card p-5", children: [_jsxs("div", { className: "flex items-center gap-2", children: [_jsx(ShieldCheckSvg, { className: "size-5 text-muted-foreground" }), _jsx("span", { className: "text-sm font-semibold text-foreground", children: t("team.subscription", "Subscription") }), _jsx(Badge, { color: tierBadgeColor(subscription.tier), children: prettifyTier(subscription.tier) })] }), maxSeats > 0 && (_jsxs("div", { className: "mt-4", children: [_jsxs("div", { className: "flex items-baseline justify-between text-sm", children: [_jsx("span", { className: "text-muted-foreground", children: t("team.seatsUsed", `${seatsUsed} of ${maxSeats} seats used`, { used: seatsUsed, max: maxSeats }) }), _jsxs("span", { className: "text-xs text-muted-foreground", children: [seatsRemaining, " ", t("team.remaining", "remaining")] })] }), _jsx("div", { className: "mt-2 h-2 overflow-hidden rounded-full bg-muted", children: _jsx("div", { className: "h-full rounded-full bg-primary transition-all", style: { width: `${seatPct}%` } }) })] }))] })), _jsxs("section", { children: [_jsxs("div", { className: "flex items-center justify-between", children: [_jsx("h2", { className: "text-sm/6 font-semibold text-foreground", children: t("team.activeMembers", "Active members") }), isOwner && (_jsxs(Button, { color: "brand", onClick: () => setInviteOpen(true), children: [_jsx(UserPlusSvg, { className: "size-4" }), t("team.invite", "Invite member")] }))] }), _jsx("div", { className: "mt-3 space-y-2", children: isMembersLoading ? (_jsx(_Fragment, { children: [1, 2].map((i) => (_jsx("div", { className: "h-[72px] animate-pulse rounded-xl border border-border/60 bg-card" }, i))) })) : members.length > 0 ? (members.map((m) => {
|
|
114
|
+
const name = getMemberDisplayName(m);
|
|
115
|
+
const isMe = m.userId === currentUserId;
|
|
116
|
+
const isRoleOwner = m.role === "owner";
|
|
117
|
+
const joined = formatDate(m.acceptedAt ?? m.createdAt);
|
|
118
|
+
return (_jsxs("div", { className: "group flex items-center justify-between gap-4 rounded-xl border border-border/60 bg-card p-4 transition-colors hover:bg-accent/20", children: [_jsxs("div", { className: "flex items-center gap-3 min-w-0", children: [_jsx("div", { className: "flex size-10 shrink-0 items-center justify-center rounded-full bg-primary/10 text-sm font-semibold text-primary dark:bg-primary/20 dark:text-primary-foreground/90", children: (name[0] ?? "?").toUpperCase() }), _jsxs("div", { className: "min-w-0", children: [_jsxs("div", { className: "flex items-center gap-2", children: [_jsxs("p", { className: "truncate text-sm/6 font-medium text-foreground", children: [name, isMe && (_jsxs("span", { className: "ml-1 text-xs text-muted-foreground", children: ["(", t("team.you", "you"), ")"] }))] }), _jsx(Badge, { color: isRoleOwner ? "amber" : "zinc", children: isRoleOwner ? t("team.owner", "Owner") : t("team.member", "Member") })] }), _jsxs("div", { className: "flex items-center gap-3 text-xs text-muted-foreground", children: [m.email && _jsx("span", { className: "truncate", children: m.email }), joined && _jsxs("span", { children: [t("team.joined", "Joined"), " ", joined] })] })] })] }), isOwner && !isMe && (_jsxs("div", { className: "flex shrink-0 items-center gap-1 opacity-0 transition-opacity group-hover:opacity-100", children: [_jsx(Button, { plain: true, onClick: () => setConfirmState({ type: "transfer", id: m.membershipId, name }), "aria-label": t("team.transferOwnership", "Transfer ownership"), children: _jsx(ArrowsRightLeftSvg, { className: "size-4" }) }), _jsx(Button, { plain: true, onClick: () => setConfirmState({ type: "remove", id: m.membershipId, name }), "aria-label": t("team.removeMember", "Remove member"), children: _jsx(TrashSvg, { className: "size-4 text-red-500" }) })] }))] }, m.membershipId));
|
|
119
|
+
})) : (_jsx(EmptyRow, { text: t("team.noMembers", "No active members yet.") })) })] }), _jsxs("section", { children: [_jsx("h2", { className: "text-sm/6 font-semibold text-foreground", children: t("team.pendingInvites", "Pending invites") }), _jsx("div", { className: "mt-3 space-y-2", children: isInvitesLoading ? (_jsx("div", { className: "h-[72px] animate-pulse rounded-xl border border-dashed border-amber-300/50 bg-amber-50/20 dark:border-amber-500/15 dark:bg-amber-500/5" })) : pendingInvites.length > 0 ? (pendingInvites.map((inv) => {
|
|
120
|
+
const email = inv.email ?? inv.membershipId;
|
|
121
|
+
const sent = formatDate(inv.invitedAt ?? inv.createdAt);
|
|
122
|
+
return (_jsxs("div", { className: "group flex items-center justify-between gap-4 rounded-xl border border-dashed border-amber-300/60 bg-amber-50/30 p-4 transition-colors hover:bg-amber-50/50 dark:border-amber-500/20 dark:bg-amber-500/5 dark:hover:bg-amber-500/10", children: [_jsxs("div", { className: "flex items-center gap-3 min-w-0", children: [_jsx("div", { className: "flex size-10 shrink-0 items-center justify-center rounded-full bg-amber-100 dark:bg-amber-500/20", children: _jsx(EnvelopeSvg, { className: "size-5 text-amber-600 dark:text-amber-400" }) }), _jsxs("div", { className: "min-w-0", children: [_jsx("p", { className: "truncate text-sm/6 font-medium text-foreground", children: email }), sent && (_jsxs("span", { className: "text-xs text-muted-foreground", children: [t("team.sent", "Sent:"), " ", sent] }))] })] }), isOwner && (_jsx(Button, { plain: true, onClick: () => setConfirmState({ type: "revoke", id: inv.membershipId, name: email }), className: "shrink-0 text-xs opacity-0 transition-opacity group-hover:opacity-100", children: t("team.revoke", "Revoke") }))] }, inv.membershipId));
|
|
123
|
+
})) : (_jsx(EmptyRow, { text: t("team.noInvites", "No pending invites.") })) })] }), _jsx(InviteMemberDialog, { open: inviteOpen, onClose: () => setInviteOpen(false), onInvite: callbacks.onInvite, t: t }), confirmConfig && (_jsx(ConfirmationDialog, { open: !!confirmState, onClose: () => setConfirmState(null), onConfirm: handleConfirm, title: confirmConfig.title, description: confirmConfig.description, warning: confirmConfig.warning, tone: confirmConfig.tone, confirmLabel: confirmConfig.confirmLabel, cancelLabel: t("cancel", "Cancel") }))] }));
|
|
124
|
+
}
|
|
125
|
+
const toneCls = {
|
|
126
|
+
emerald: {
|
|
127
|
+
icon: "text-emerald-600 dark:text-emerald-400",
|
|
128
|
+
iconBg: "bg-emerald-500/10 dark:bg-emerald-500/20",
|
|
129
|
+
},
|
|
130
|
+
amber: {
|
|
131
|
+
icon: "text-amber-600 dark:text-amber-400",
|
|
132
|
+
iconBg: "bg-amber-500/10 dark:bg-amber-500/20",
|
|
133
|
+
},
|
|
134
|
+
};
|
|
135
|
+
function StatCard({ icon, value, label, tone }) {
|
|
136
|
+
const c = toneCls[tone];
|
|
137
|
+
return (_jsxs("div", { className: "flex h-full items-start justify-between rounded-2xl border border-border/60 bg-card p-5 transition-all duration-200 hover:-translate-y-0.5 hover:shadow-md", children: [_jsxs("div", { className: "grid gap-1.5", children: [_jsx("p", { className: "text-xs font-semibold uppercase tracking-[0.14em] text-muted-foreground", children: label }), _jsx("p", { className: "text-2xl font-bold tabular-nums tracking-tight text-foreground", children: value })] }), _jsx("div", { className: `shrink-0 rounded-xl p-2.5 ${c.icon} ${c.iconBg}`, children: icon })] }));
|
|
138
|
+
}
|
|
139
|
+
function EmptyRow({ text }) {
|
|
140
|
+
return (_jsx("div", { className: "flex flex-col items-center gap-2 rounded-2xl border border-dashed border-border px-4 py-8 text-center", children: _jsx("p", { className: "text-sm font-medium text-muted-foreground", children: text }) }));
|
|
141
|
+
}
|
|
142
|
+
//# sourceMappingURL=team-management.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"team-management.js","sourceRoot":"","sources":["../../src/org/team-management.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/** Shared types for the organisation team management UI. */
|
|
2
|
+
export interface TeamMember {
|
|
3
|
+
membershipId: string;
|
|
4
|
+
userId: string;
|
|
5
|
+
role: string;
|
|
6
|
+
name?: string;
|
|
7
|
+
email?: string;
|
|
8
|
+
acceptedAt?: string;
|
|
9
|
+
createdAt?: string;
|
|
10
|
+
}
|
|
11
|
+
export interface PendingInvite {
|
|
12
|
+
membershipId: string;
|
|
13
|
+
email?: string;
|
|
14
|
+
invitedAt?: string;
|
|
15
|
+
expiresAt?: string;
|
|
16
|
+
createdAt?: string;
|
|
17
|
+
}
|
|
18
|
+
export interface SubscriptionInfo {
|
|
19
|
+
tier?: string;
|
|
20
|
+
seatsUsed?: number;
|
|
21
|
+
maxSeats?: number;
|
|
22
|
+
seatsRemaining?: number;
|
|
23
|
+
}
|
|
24
|
+
export interface TeamManagementCallbacks {
|
|
25
|
+
onInvite: (email: string) => Promise<{
|
|
26
|
+
message?: string;
|
|
27
|
+
}>;
|
|
28
|
+
onRemoveMember: (membershipId: string) => Promise<void>;
|
|
29
|
+
onTransferOwnership: (membershipId: string) => Promise<void>;
|
|
30
|
+
onRevokeInvite: (membershipId: string) => Promise<void>;
|
|
31
|
+
}
|
|
32
|
+
export type TranslationFn = (key: string, fallback?: string, opts?: Record<string, unknown>) => string;
|
|
33
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/org/types.ts"],"names":[],"mappings":"AAAA,4DAA4D;AAE5D,MAAM,WAAW,UAAU;IACzB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,aAAa;IAC5B,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,uBAAuB;IACtC,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC;QAAE,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC3D,cAAc,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACxD,mBAAmB,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7D,cAAc,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACzD;AAED,MAAM,MAAM,aAAa,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,MAAM,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/org/types.ts"],"names":[],"mappings":"AAAA,4DAA4D"}
|
|
@@ -14,6 +14,6 @@ function getInitials(name) {
|
|
|
14
14
|
.toUpperCase();
|
|
15
15
|
}
|
|
16
16
|
export function ProfileHero({ bannerUrl, avatarUrl, name, subtitle, verified, badges, className, bannerAction, avatarAction, }) {
|
|
17
|
-
return (_jsxs("div", { className: cn("relative", className), children: [_jsxs("div", { className: "relative h-[120px] overflow-hidden rounded-t-2xl sm:h-[160px] md:h-[200px]", children: [bannerUrl ? (_jsx("img", { src: bannerUrl, alt: "", className: "size-full object-cover" })) : (_jsx("div", { className: "size-full bg-linear-to-br from-primary/80 via-primary to-primary/60" })), badges && badges.length > 0 && (_jsx("div", { className: "absolute right-3 top-3 flex gap-2", children: badges.map((badge) => (_jsx("span", { className: cn("rounded-full border px-2.5 py-0.5 text-[11px] font-semibold backdrop-blur-xs", badgeStyles[badge.variant]), children: badge.label }, badge.label))) })), bannerAction] }), _jsx("div", { className: "relative px-5 sm:px-6", children: _jsx("div", { className: "-mt-8 sm:-mt-10", children: _jsxs("div", { className: "relative inline-block size-16 shrink-0 sm:size-20", children: [_jsx("div", { className: "size-full overflow-hidden rounded-xl border-[3px] border-background bg-background shadow-xs", children: avatarUrl ? (_jsx("img", { src: avatarUrl, alt: name, className: "size-full object-cover" })) : (_jsx("div", { className: "flex size-full items-center justify-center bg-muted text-base font-bold text-muted-foreground sm:text-lg", children: getInitials(name) })) }), avatarAction] }) }) }), _jsxs("div", { className: "px-5 pb-2 pt-2 sm:px-6", children: [_jsxs("div", { className: "flex items-center gap-1.5", children: [_jsx("h1", { className: "truncate text-xl font-bold font-display tracking-tight text-foreground sm:text-2xl", children: name }), verified && (_jsx("svg", { className: "size-5 shrink-0 text-blue-500 sm:size-6", viewBox: "0 0 20 20", fill: "currentColor", children: _jsx("path", { fillRule: "evenodd", d: "M10 18a8 8 0 100-16 8 8 0 000 16zm3.857-9.809a.75.75 0 00-1.214-.882l-3.483 4.79-1.88-1.88a.75.75 0 10-1.06 1.061l2.5 2.5a.75.75 0 001.137-.089l4-5.5z", clipRule: "evenodd" }) }))] }), subtitle && (_jsx("p", { className: "truncate text-xs text-muted-foreground sm:text-sm/6", children: subtitle }))] })] }));
|
|
17
|
+
return (_jsxs("div", { className: cn("relative", className), children: [_jsxs("div", { className: "relative h-[120px] overflow-hidden rounded-t-2xl sm:h-[160px] md:h-[200px]", children: [bannerUrl ? (_jsx("img", { src: bannerUrl, alt: "", className: "size-full object-cover" })) : (_jsx("div", { className: "size-full bg-linear-to-br from-primary/80 via-primary to-primary/60" })), badges && badges.length > 0 && (_jsx("div", { className: "absolute right-3 top-3 flex gap-2", children: badges.map((badge) => (_jsx("span", { className: cn("rounded-full border px-2.5 py-0.5 text-[11px] font-semibold backdrop-blur-xs", badgeStyles[badge.variant]), children: badge.label }, badge.label))) })), bannerAction] }), _jsx("div", { className: "pointer-events-none relative px-5 sm:px-6", children: _jsx("div", { className: "-mt-8 sm:-mt-10", children: _jsxs("div", { className: "pointer-events-auto relative inline-block size-16 shrink-0 sm:size-20", children: [_jsx("div", { className: "size-full overflow-hidden rounded-xl border-[3px] border-background bg-background shadow-xs", children: avatarUrl ? (_jsx("img", { src: avatarUrl, alt: name, className: "size-full object-cover" })) : (_jsx("div", { className: "flex size-full items-center justify-center bg-muted text-base font-bold text-muted-foreground sm:text-lg", children: getInitials(name) })) }), avatarAction] }) }) }), _jsxs("div", { className: "px-5 pb-2 pt-2 sm:px-6", children: [_jsxs("div", { className: "flex items-center gap-1.5", children: [_jsx("h1", { className: "truncate text-xl font-bold font-display tracking-tight text-foreground sm:text-2xl", children: name }), verified && (_jsx("svg", { className: "size-5 shrink-0 text-blue-500 sm:size-6", viewBox: "0 0 20 20", fill: "currentColor", children: _jsx("path", { fillRule: "evenodd", d: "M10 18a8 8 0 100-16 8 8 0 000 16zm3.857-9.809a.75.75 0 00-1.214-.882l-3.483 4.79-1.88-1.88a.75.75 0 10-1.06 1.061l2.5 2.5a.75.75 0 001.137-.089l4-5.5z", clipRule: "evenodd" }) }))] }), subtitle && (_jsx("p", { className: "truncate text-xs text-muted-foreground sm:text-sm/6", children: subtitle }))] })] }));
|
|
18
18
|
}
|
|
19
19
|
//# sourceMappingURL=profile-hero.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"profile-hero.js","sourceRoot":"","sources":["../../src/profile/profile-hero.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAqBlC,MAAM,WAAW,GAAgD;IAC/D,WAAW,EAAE,oDAAoD;IACjE,OAAO,EAAE,0DAA0D;IACnE,OAAO,EAAE,wCAAwC;CAClD,CAAC;AAEF,SAAS,WAAW,CAAC,IAAY;IAC/B,OAAO,IAAI;SACR,KAAK,CAAC,KAAK,CAAC;SACZ,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;SACX,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;SAChB,IAAI,CAAC,EAAE,CAAC;SACR,WAAW,EAAE,CAAC;AACnB,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,EAC1B,SAAS,EACT,SAAS,EACT,IAAI,EACJ,QAAQ,EACR,QAAQ,EACR,MAAM,EACN,SAAS,EACT,YAAY,EACZ,YAAY,GACK;IACjB,OAAO,CACL,eAAK,SAAS,EAAE,EAAE,CAAC,UAAU,EAAE,SAAS,CAAC,aAEvC,eAAK,SAAS,EAAC,4EAA4E,aACxF,SAAS,CAAC,CAAC,CAAC,CACX,cAAK,GAAG,EAAE,SAAS,EAAE,GAAG,EAAC,EAAE,EAAC,SAAS,EAAC,wBAAwB,GAAG,CAClE,CAAC,CAAC,CAAC,CACF,cAAK,SAAS,EAAC,qEAAqE,GAAG,CACxF,EACA,MAAM,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,CAC9B,cAAK,SAAS,EAAC,mCAAmC,YAC/C,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CACrB,eAEE,SAAS,EAAE,EAAE,CACX,8EAA8E,EAC9E,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,CAC3B,YAEA,KAAK,CAAC,KAAK,IANP,KAAK,CAAC,KAAK,CAOX,CACR,CAAC,GACE,CACP,EACA,YAAY,IACT,EAGN,cAAK,SAAS,EAAC,
|
|
1
|
+
{"version":3,"file":"profile-hero.js","sourceRoot":"","sources":["../../src/profile/profile-hero.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAqBlC,MAAM,WAAW,GAAgD;IAC/D,WAAW,EAAE,oDAAoD;IACjE,OAAO,EAAE,0DAA0D;IACnE,OAAO,EAAE,wCAAwC;CAClD,CAAC;AAEF,SAAS,WAAW,CAAC,IAAY;IAC/B,OAAO,IAAI;SACR,KAAK,CAAC,KAAK,CAAC;SACZ,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;SACX,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;SAChB,IAAI,CAAC,EAAE,CAAC;SACR,WAAW,EAAE,CAAC;AACnB,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,EAC1B,SAAS,EACT,SAAS,EACT,IAAI,EACJ,QAAQ,EACR,QAAQ,EACR,MAAM,EACN,SAAS,EACT,YAAY,EACZ,YAAY,GACK;IACjB,OAAO,CACL,eAAK,SAAS,EAAE,EAAE,CAAC,UAAU,EAAE,SAAS,CAAC,aAEvC,eAAK,SAAS,EAAC,4EAA4E,aACxF,SAAS,CAAC,CAAC,CAAC,CACX,cAAK,GAAG,EAAE,SAAS,EAAE,GAAG,EAAC,EAAE,EAAC,SAAS,EAAC,wBAAwB,GAAG,CAClE,CAAC,CAAC,CAAC,CACF,cAAK,SAAS,EAAC,qEAAqE,GAAG,CACxF,EACA,MAAM,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,CAC9B,cAAK,SAAS,EAAC,mCAAmC,YAC/C,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CACrB,eAEE,SAAS,EAAE,EAAE,CACX,8EAA8E,EAC9E,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,CAC3B,YAEA,KAAK,CAAC,KAAK,IANP,KAAK,CAAC,KAAK,CAOX,CACR,CAAC,GACE,CACP,EACA,YAAY,IACT,EAGN,cAAK,SAAS,EAAC,2CAA2C,YACxD,cAAK,SAAS,EAAC,iBAAiB,YAC9B,eAAK,SAAS,EAAC,uEAAuE,aACpF,cAAK,SAAS,EAAC,6FAA6F,YACzG,SAAS,CAAC,CAAC,CAAC,CACX,cAAK,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,IAAI,EAAE,SAAS,EAAC,wBAAwB,GAAG,CACtE,CAAC,CAAC,CAAC,CACF,cAAK,SAAS,EAAC,0GAA0G,YACtH,WAAW,CAAC,IAAI,CAAC,GACd,CACP,GACG,EACL,YAAY,IACT,GACF,GACF,EAGN,eAAK,SAAS,EAAC,wBAAwB,aACrC,eAAK,SAAS,EAAC,2BAA2B,aACxC,aAAI,SAAS,EAAC,oFAAoF,YAC/F,IAAI,GACF,EACJ,QAAQ,IAAI,CACX,cACE,SAAS,EAAC,yCAAyC,EACnD,OAAO,EAAC,WAAW,EACnB,IAAI,EAAC,cAAc,YAEnB,eACE,QAAQ,EAAC,SAAS,EAClB,CAAC,EAAC,wJAAwJ,EAC1J,QAAQ,EAAC,SAAS,GAClB,GACE,CACP,IACG,EACL,QAAQ,IAAI,CACX,YAAG,SAAS,EAAC,qDAAqD,YAC/D,QAAQ,GACP,CACL,IACG,IACF,CACP,CAAC;AACJ,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cellarnode/ui",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.8.1",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"private": false,
|
|
6
6
|
"description": "Shared UI components, theme tokens, and chat/offer primitives for CellarNode dashboards.",
|
|
@@ -65,6 +65,10 @@
|
|
|
65
65
|
"./notifications": {
|
|
66
66
|
"types": "./dist/notifications/index.d.ts",
|
|
67
67
|
"default": "./dist/notifications/index.js"
|
|
68
|
+
},
|
|
69
|
+
"./org": {
|
|
70
|
+
"types": "./dist/org/index.d.ts",
|
|
71
|
+
"default": "./dist/org/index.js"
|
|
68
72
|
}
|
|
69
73
|
},
|
|
70
74
|
"files": [
|