@a5it/sync-ui 0.1.26 → 0.1.27
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/data-table/cells/text-cell.d.ts +19 -1
- package/dist/components/data-table/cells/text-cell.d.ts.map +1 -1
- package/dist/components/data-table/cells/text-cell.js +51 -3
- package/dist/components/data-table/cells/text-cell.js.map +1 -1
- package/dist/components/data-table/index.d.ts +5 -2
- package/dist/components/data-table/index.d.ts.map +1 -1
- package/dist/components/data-table/index.js +2 -1
- package/dist/components/data-table/index.js.map +1 -1
- package/package.json +1 -1
- package/dist/components/data-table/cells/editable-cell.d.ts +0 -24
- package/dist/components/data-table/cells/editable-cell.d.ts.map +0 -1
- package/dist/components/data-table/cells/editable-cell.js +0 -57
- package/dist/components/data-table/cells/editable-cell.js.map +0 -1
|
@@ -1,8 +1,26 @@
|
|
|
1
1
|
export type DataTableTextCellProps = {
|
|
2
|
+
/** The cell text value. */
|
|
2
3
|
text: string;
|
|
4
|
+
/** Container className override. */
|
|
3
5
|
className?: string;
|
|
6
|
+
/** Text className override for display mode. */
|
|
4
7
|
textClassName?: string;
|
|
8
|
+
/** Whether long text should be truncated with ellipsis. Default true. */
|
|
5
9
|
truncate?: boolean;
|
|
10
|
+
/** When true the cell becomes click-to-edit. Default false. */
|
|
11
|
+
editable?: boolean;
|
|
12
|
+
/** Called when the user commits the edit (Enter or blur). Receives the raw string. */
|
|
13
|
+
onEditComplete?: (value: string) => void;
|
|
14
|
+
/** Input type — controls keyboard behavior & validation. Default "text". */
|
|
15
|
+
inputType?: "text" | "number";
|
|
16
|
+
/** Optional formatting function for display mode (e.g. formatCurrency). */
|
|
17
|
+
formatDisplay?: (value: string) => string;
|
|
18
|
+
/** Optional suffix shown after the value in display mode (e.g. "%"). */
|
|
19
|
+
suffix?: string;
|
|
20
|
+
/** Optional prefix shown before the value in display mode (e.g. "$"). */
|
|
21
|
+
prefix?: string;
|
|
22
|
+
/** Input className override for edit mode. */
|
|
23
|
+
inputClassName?: string;
|
|
6
24
|
};
|
|
7
|
-
export declare function DataTableTextCell({ text, className, textClassName, truncate, }: DataTableTextCellProps): import("react/jsx-runtime").JSX.Element;
|
|
25
|
+
export declare function DataTableTextCell({ text, className, textClassName, truncate, editable, onEditComplete, inputType, formatDisplay, suffix, prefix, inputClassName, }: DataTableTextCellProps): import("react/jsx-runtime").JSX.Element;
|
|
8
26
|
//# sourceMappingURL=text-cell.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"text-cell.d.ts","sourceRoot":"","sources":["../../../../src/components/data-table/cells/text-cell.tsx"],"names":[],"mappings":"AAMA,MAAM,MAAM,sBAAsB,GAAG;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"text-cell.d.ts","sourceRoot":"","sources":["../../../../src/components/data-table/cells/text-cell.tsx"],"names":[],"mappings":"AAMA,MAAM,MAAM,sBAAsB,GAAG;IACnC,2BAA2B;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,oCAAoC;IACpC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gDAAgD;IAChD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,yEAAyE;IACzE,QAAQ,CAAC,EAAE,OAAO,CAAC;IAGnB,+DAA+D;IAC/D,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,sFAAsF;IACtF,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,4EAA4E;IAC5E,SAAS,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAC;IAC9B,2EAA2E;IAC3E,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IAC1C,wEAAwE;IACxE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,yEAAyE;IACzE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,8CAA8C;IAC9C,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF,wBAAgB,iBAAiB,CAAC,EAChC,IAAI,EACJ,SAAS,EACT,aAAa,EACb,QAAe,EACf,QAAgB,EAChB,cAAc,EACd,SAAkB,EAClB,aAAa,EACb,MAAM,EACN,MAAM,EACN,cAAc,GACf,EAAE,sBAAsB,2CAsGxB"}
|
|
@@ -1,7 +1,55 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import * as React from "react";
|
|
3
4
|
import { cn } from "../../../lib/utils";
|
|
4
|
-
export function DataTableTextCell({ text, className, textClassName, truncate = true, }) {
|
|
5
|
-
|
|
5
|
+
export function DataTableTextCell({ text, className, textClassName, truncate = true, editable = false, onEditComplete, inputType = "text", formatDisplay, suffix, prefix, inputClassName, }) {
|
|
6
|
+
const [isEditing, setIsEditing] = React.useState(false);
|
|
7
|
+
const [editValue, setEditValue] = React.useState(text);
|
|
8
|
+
const inputRef = React.useRef(null);
|
|
9
|
+
// Sync internal draft whenever the external value changes while NOT editing.
|
|
10
|
+
React.useEffect(() => {
|
|
11
|
+
if (!isEditing) {
|
|
12
|
+
setEditValue(text);
|
|
13
|
+
}
|
|
14
|
+
}, [text, isEditing]);
|
|
15
|
+
// Auto-focus & select all when entering edit mode.
|
|
16
|
+
React.useEffect(() => {
|
|
17
|
+
if (isEditing && inputRef.current) {
|
|
18
|
+
inputRef.current.focus();
|
|
19
|
+
inputRef.current.select();
|
|
20
|
+
}
|
|
21
|
+
}, [isEditing]);
|
|
22
|
+
const handleClick = (e) => {
|
|
23
|
+
if (!editable || isEditing)
|
|
24
|
+
return;
|
|
25
|
+
e.stopPropagation();
|
|
26
|
+
setEditValue(text);
|
|
27
|
+
setIsEditing(true);
|
|
28
|
+
};
|
|
29
|
+
const commit = () => {
|
|
30
|
+
setIsEditing(false);
|
|
31
|
+
onEditComplete?.(editValue);
|
|
32
|
+
};
|
|
33
|
+
const cancel = () => {
|
|
34
|
+
setIsEditing(false);
|
|
35
|
+
setEditValue(text);
|
|
36
|
+
};
|
|
37
|
+
const handleKeyDown = (e) => {
|
|
38
|
+
if (e.key === "Enter") {
|
|
39
|
+
e.preventDefault();
|
|
40
|
+
commit();
|
|
41
|
+
}
|
|
42
|
+
else if (e.key === "Escape") {
|
|
43
|
+
e.preventDefault();
|
|
44
|
+
cancel();
|
|
45
|
+
}
|
|
46
|
+
};
|
|
47
|
+
// ── Edit mode ─────────────────────────────────────────────────
|
|
48
|
+
if (editable && isEditing) {
|
|
49
|
+
return (_jsx("div", { className: cn("flex min-w-0 items-center -m-[7px]", className), onClick: (e) => e.stopPropagation(), children: _jsx("input", { ref: inputRef, type: inputType, value: editValue, onChange: (e) => setEditValue(e.target.value), onBlur: commit, onKeyDown: handleKeyDown, className: cn("w-full rounded-[4px] border border-[#e6e6e6] bg-white px-[6px] py-[5px] text-[14px] leading-4 font-semibold text-[#1a1a1a] outline-none", "focus:border-[var(--primary,#0091ff)]", "transition-colors duration-100", inputClassName) }) }));
|
|
50
|
+
}
|
|
51
|
+
// ── Display mode ──────────────────────────────────────────────
|
|
52
|
+
const displayText = formatDisplay ? formatDisplay(text) : text;
|
|
53
|
+
return (_jsxs("div", { className: cn("flex min-w-0 items-center", editable && "cursor-text gap-1", className), title: editable ? "Click to edit" : truncate ? text : undefined, onClick: handleClick, children: [prefix && (_jsx("span", { className: "text-[14px] leading-4 text-[#666666]", children: prefix })), _jsx("span", { className: cn("text-[14px] font-semibold text-[#1a1a1a]", truncate && "min-w-0 flex-1 truncate", textClassName), children: displayText }), suffix && (_jsx("span", { className: "text-[14px] leading-4 text-[#666666]", children: suffix }))] }));
|
|
6
54
|
}
|
|
7
55
|
//# sourceMappingURL=text-cell.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"text-cell.js","sourceRoot":"","sources":["../../../../src/components/data-table/cells/text-cell.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;
|
|
1
|
+
{"version":3,"file":"text-cell.js","sourceRoot":"","sources":["../../../../src/components/data-table/cells/text-cell.tsx"],"names":[],"mappings":"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"}
|
|
@@ -18,11 +18,14 @@ export { DataTableActionDelete } from "./actions/action-delete";
|
|
|
18
18
|
export { DataTableCheckbox } from "./cells/table-checkbox";
|
|
19
19
|
export { DataTableRecordIdCell } from "./cells/record-id-cell";
|
|
20
20
|
export { DataTableTextCell } from "./cells/text-cell";
|
|
21
|
+
export type { DataTableTextCellProps } from "./cells/text-cell";
|
|
21
22
|
export { DataTableStatusPill } from "./cells/status-pill";
|
|
22
23
|
export { DataTablePaymentPill } from "./cells/payment-pill";
|
|
23
24
|
export { DataTableDateTimeCell } from "./cells/date-time-cell";
|
|
24
|
-
|
|
25
|
-
export
|
|
25
|
+
/** @deprecated Use `DataTableTextCell` with `editable` prop instead. */
|
|
26
|
+
export { DataTableTextCell as DataTableEditableCell } from "./cells/text-cell";
|
|
27
|
+
/** @deprecated Use `DataTableTextCellProps` instead. */
|
|
28
|
+
export type { DataTableTextCellProps as DataTableEditableCellProps } from "./cells/text-cell";
|
|
26
29
|
export type { PaymentLabel } from "./cells/payment-pill";
|
|
27
30
|
export { createSelectionColumn, DATA_TABLE_SELECTION_COLUMN_ID, } from "./columns/selection";
|
|
28
31
|
export { DataTablePagination, DataTablePaginationInfo, DataTablePaginationLimits, DataTablePaginationLinks, DataTablePaginationActions, } from "./pagination/pagination";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/data-table/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC7D,YAAY,EACV,mBAAmB,EACnB,mBAAmB,EACnB,YAAY,EACZ,kBAAkB,EAClB,kBAAkB,EAClB,cAAc,EACd,gBAAgB,EAChB,sBAAsB,EACtB,sBAAsB,EACtB,kBAAkB,EAClB,gBAAgB,GACjB,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC5D,YAAY,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAExE,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAEzC,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAExD,OAAO,EACL,aAAa,EACb,iBAAiB,EACjB,oBAAoB,EACpB,oBAAoB,GACrB,MAAM,QAAQ,CAAC;AAEhB,OAAO,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AAC9E,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,YAAY,EACV,iBAAiB,EACjB,YAAY,IAAI,qBAAqB,EACrC,mBAAmB,IAAI,4BAA4B,GACpD,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEjD,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAEhE,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/data-table/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC7D,YAAY,EACV,mBAAmB,EACnB,mBAAmB,EACnB,YAAY,EACZ,kBAAkB,EAClB,kBAAkB,EAClB,cAAc,EACd,gBAAgB,EAChB,sBAAsB,EACtB,sBAAsB,EACtB,kBAAkB,EAClB,gBAAgB,GACjB,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC5D,YAAY,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAExE,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAEzC,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAExD,OAAO,EACL,aAAa,EACb,iBAAiB,EACjB,oBAAoB,EACpB,oBAAoB,GACrB,MAAM,QAAQ,CAAC;AAEhB,OAAO,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AAC9E,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,YAAY,EACV,iBAAiB,EACjB,YAAY,IAAI,qBAAqB,EACrC,mBAAmB,IAAI,4BAA4B,GACpD,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEjD,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAEhE,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,YAAY,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAChE,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,wEAAwE;AACxE,OAAO,EAAE,iBAAiB,IAAI,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAC/E,wDAAwD;AACxD,YAAY,EAAE,sBAAsB,IAAI,0BAA0B,EAAE,MAAM,mBAAmB,CAAC;AAC9F,YAAY,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEzD,OAAO,EACL,qBAAqB,EACrB,8BAA8B,GAC/B,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACL,mBAAmB,EACnB,uBAAuB,EACvB,yBAAyB,EACzB,wBAAwB,EACxB,0BAA0B,GAC3B,MAAM,yBAAyB,CAAC"}
|
|
@@ -19,7 +19,8 @@ export { DataTableTextCell } from "./cells/text-cell";
|
|
|
19
19
|
export { DataTableStatusPill } from "./cells/status-pill";
|
|
20
20
|
export { DataTablePaymentPill } from "./cells/payment-pill";
|
|
21
21
|
export { DataTableDateTimeCell } from "./cells/date-time-cell";
|
|
22
|
-
|
|
22
|
+
/** @deprecated Use `DataTableTextCell` with `editable` prop instead. */
|
|
23
|
+
export { DataTableTextCell as DataTableEditableCell } from "./cells/text-cell";
|
|
23
24
|
export { createSelectionColumn, DATA_TABLE_SELECTION_COLUMN_ID, } from "./columns/selection";
|
|
24
25
|
export { DataTablePagination, DataTablePaginationInfo, DataTablePaginationLimits, DataTablePaginationLinks, DataTablePaginationActions, } from "./pagination/pagination";
|
|
25
26
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/data-table/index.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAe7D,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAG5D,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAEzC,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAExD,OAAO,EACL,aAAa,EACb,iBAAiB,EACjB,oBAAoB,EACpB,oBAAoB,GACrB,MAAM,QAAQ,CAAC;AAEhB,OAAO,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AAC9E,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAM5D,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEjD,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAEhE,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/data-table/index.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAe7D,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAG5D,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAEzC,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAExD,OAAO,EACL,aAAa,EACb,iBAAiB,EACjB,oBAAoB,EACpB,oBAAoB,GACrB,MAAM,QAAQ,CAAC;AAEhB,OAAO,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AAC9E,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAM5D,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEjD,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAEhE,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAEtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,wEAAwE;AACxE,OAAO,EAAE,iBAAiB,IAAI,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAK/E,OAAO,EACL,qBAAqB,EACrB,8BAA8B,GAC/B,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACL,mBAAmB,EACnB,uBAAuB,EACvB,yBAAyB,EACzB,wBAAwB,EACxB,0BAA0B,GAC3B,MAAM,yBAAyB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
export type DataTableEditableCellProps = {
|
|
2
|
-
/** The current cell value. */
|
|
3
|
-
value: string | number;
|
|
4
|
-
/** Called when the user presses Enter to commit the edit. Receives the raw string value. */
|
|
5
|
-
onEditComplete: (value: string) => void;
|
|
6
|
-
/** Input type — controls keyboard behavior & validation. Default "text". */
|
|
7
|
-
type?: "text" | "number";
|
|
8
|
-
/** Optional formatting function for display mode (e.g. formatCurrency). */
|
|
9
|
-
formatDisplay?: (value: string | number) => string;
|
|
10
|
-
/** Optional suffix shown after the value in display mode (e.g. "%"). */
|
|
11
|
-
suffix?: string;
|
|
12
|
-
/** Optional prefix shown before the value in display mode (e.g. "$"). */
|
|
13
|
-
prefix?: string;
|
|
14
|
-
/** Container className override. */
|
|
15
|
-
className?: string;
|
|
16
|
-
/** Text className override for display mode. */
|
|
17
|
-
textClassName?: string;
|
|
18
|
-
/** Input className override for edit mode. */
|
|
19
|
-
inputClassName?: string;
|
|
20
|
-
/** Whether the cell is editable. Default true. */
|
|
21
|
-
editable?: boolean;
|
|
22
|
-
};
|
|
23
|
-
export declare function DataTableEditableCell({ value, onEditComplete, type, formatDisplay, suffix, prefix, className, textClassName, inputClassName, editable, }: DataTableEditableCellProps): import("react/jsx-runtime").JSX.Element;
|
|
24
|
-
//# sourceMappingURL=editable-cell.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"editable-cell.d.ts","sourceRoot":"","sources":["../../../../src/components/data-table/cells/editable-cell.tsx"],"names":[],"mappings":"AAMA,MAAM,MAAM,0BAA0B,GAAG;IACvC,8BAA8B;IAC9B,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,4FAA4F;IAC5F,cAAc,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,4EAA4E;IAC5E,IAAI,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAC;IACzB,2EAA2E;IAC3E,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,KAAK,MAAM,CAAC;IACnD,wEAAwE;IACxE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,yEAAyE;IACzE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,oCAAoC;IACpC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gDAAgD;IAChD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,8CAA8C;IAC9C,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,kDAAkD;IAClD,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,wBAAgB,qBAAqB,CAAC,EACpC,KAAK,EACL,cAAc,EACd,IAAa,EACb,aAAa,EACb,MAAM,EACN,MAAM,EACN,SAAS,EACT,aAAa,EACb,cAAc,EACd,QAAe,GAChB,EAAE,0BAA0B,2CA0G5B"}
|
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
-
import * as React from "react";
|
|
4
|
-
import { cn } from "../../../lib/utils";
|
|
5
|
-
export function DataTableEditableCell({ value, onEditComplete, type = "text", formatDisplay, suffix, prefix, className, textClassName, inputClassName, editable = true, }) {
|
|
6
|
-
const [isEditing, setIsEditing] = React.useState(false);
|
|
7
|
-
const [editValue, setEditValue] = React.useState(String(value));
|
|
8
|
-
const inputRef = React.useRef(null);
|
|
9
|
-
// Sync internal draft whenever the external value changes while NOT editing.
|
|
10
|
-
React.useEffect(() => {
|
|
11
|
-
if (!isEditing) {
|
|
12
|
-
setEditValue(String(value));
|
|
13
|
-
}
|
|
14
|
-
}, [value, isEditing]);
|
|
15
|
-
// Auto-focus & select all when entering edit mode.
|
|
16
|
-
React.useEffect(() => {
|
|
17
|
-
if (isEditing && inputRef.current) {
|
|
18
|
-
inputRef.current.focus();
|
|
19
|
-
inputRef.current.select();
|
|
20
|
-
}
|
|
21
|
-
}, [isEditing]);
|
|
22
|
-
const handleClick = (e) => {
|
|
23
|
-
if (!editable || isEditing)
|
|
24
|
-
return;
|
|
25
|
-
e.stopPropagation();
|
|
26
|
-
setEditValue(String(value));
|
|
27
|
-
setIsEditing(true);
|
|
28
|
-
};
|
|
29
|
-
const commit = () => {
|
|
30
|
-
setIsEditing(false);
|
|
31
|
-
onEditComplete(editValue);
|
|
32
|
-
};
|
|
33
|
-
const cancel = () => {
|
|
34
|
-
setIsEditing(false);
|
|
35
|
-
setEditValue(String(value));
|
|
36
|
-
};
|
|
37
|
-
const handleKeyDown = (e) => {
|
|
38
|
-
if (e.key === "Enter") {
|
|
39
|
-
e.preventDefault();
|
|
40
|
-
commit();
|
|
41
|
-
}
|
|
42
|
-
else if (e.key === "Escape") {
|
|
43
|
-
e.preventDefault();
|
|
44
|
-
cancel();
|
|
45
|
-
}
|
|
46
|
-
};
|
|
47
|
-
// ── Display mode ──────────────────────────────────────────────
|
|
48
|
-
if (!isEditing) {
|
|
49
|
-
const displayText = formatDisplay
|
|
50
|
-
? formatDisplay(value)
|
|
51
|
-
: String(value);
|
|
52
|
-
return (_jsxs("div", { className: cn("flex min-w-0 items-center gap-1", editable && "cursor-text", className), onClick: handleClick, children: [prefix && (_jsx("span", { className: "text-[14px] leading-4 text-[#666666]", children: prefix })), _jsx("span", { className: cn("text-[14px] leading-4 font-semibold text-[#1a1a1a] min-w-0 flex-1 truncate", textClassName), children: displayText }), suffix && (_jsx("span", { className: "text-[14px] leading-4 text-[#666666]", children: suffix }))] }));
|
|
53
|
-
}
|
|
54
|
-
// ── Edit mode ─────────────────────────────────────────────────
|
|
55
|
-
return (_jsx("div", { className: cn("flex min-w-0 items-center -m-[7px]", className), onClick: (e) => e.stopPropagation(), children: _jsx("input", { ref: inputRef, type: type, value: editValue, onChange: (e) => setEditValue(e.target.value), onBlur: commit, onKeyDown: handleKeyDown, className: cn("w-full rounded-[4px] border border-[#e6e6e6] bg-white px-[6px] py-[5px] text-[14px] leading-4 font-semibold text-[#1a1a1a] outline-none", "focus:border-[var(--primary,#0091ff)]", "transition-colors duration-100", inputClassName) }) }));
|
|
56
|
-
}
|
|
57
|
-
//# sourceMappingURL=editable-cell.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"editable-cell.js","sourceRoot":"","sources":["../../../../src/components/data-table/cells/editable-cell.tsx"],"names":[],"mappings":"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"}
|