@zentauri-ui/zentauri-components 2.1.7 → 2.1.9
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/README.md +8 -5
- package/cli/props.json +350 -3
- package/cli/registry.json +11 -0
- package/dist/{chunk-DBNGLT5U.mjs → chunk-3HBC34NF.mjs} +4 -4
- package/dist/{chunk-DBNGLT5U.mjs.map → chunk-3HBC34NF.mjs.map} +1 -1
- package/dist/{chunk-FUCW5GPE.mjs → chunk-3RC5IG6O.mjs} +55 -8
- package/dist/chunk-3RC5IG6O.mjs.map +1 -0
- package/dist/chunk-4SLVTSHM.js +241 -0
- package/dist/chunk-4SLVTSHM.js.map +1 -0
- package/dist/{chunk-TJ2EWPER.js → chunk-4TPE5DEG.js} +63 -7
- package/dist/chunk-4TPE5DEG.js.map +1 -0
- package/dist/{chunk-G7FVHZRB.js → chunk-7CZDJTPD.js} +12 -12
- package/dist/{chunk-G7FVHZRB.js.map → chunk-7CZDJTPD.js.map} +1 -1
- package/dist/{chunk-5ELR6MIN.js → chunk-7DGPRPWM.js} +6 -6
- package/dist/{chunk-5ELR6MIN.js.map → chunk-7DGPRPWM.js.map} +1 -1
- package/dist/chunk-GP3FUS2H.mjs +26 -0
- package/dist/chunk-GP3FUS2H.mjs.map +1 -0
- package/dist/chunk-IHDM7AHY.mjs +233 -0
- package/dist/chunk-IHDM7AHY.mjs.map +1 -0
- package/dist/chunk-MWG7LHAK.js +19 -0
- package/dist/{chunk-5FU57ZVQ.js.map → chunk-MWG7LHAK.js.map} +1 -1
- package/dist/{chunk-7UXPXCKV.mjs → chunk-OLT7P7JO.mjs} +3 -3
- package/dist/{chunk-7UXPXCKV.mjs.map → chunk-OLT7P7JO.mjs.map} +1 -1
- package/dist/chunk-PAISX7YL.js +38 -0
- package/dist/chunk-PAISX7YL.js.map +1 -0
- package/dist/{chunk-KVSRUAXP.mjs → chunk-VN7FE5RR.mjs} +3 -3
- package/dist/{chunk-KVSRUAXP.mjs.map → chunk-VN7FE5RR.mjs.map} +1 -1
- package/dist/design-system/code-diff.d.ts +18 -0
- package/dist/design-system/code-diff.d.ts.map +1 -0
- package/dist/design-system/facade.js +8 -7
- package/dist/design-system/facade.js.map +1 -1
- package/dist/design-system/facade.mjs +7 -6
- package/dist/design-system/facade.mjs.map +1 -1
- package/dist/design-system/index.d.ts +2 -0
- package/dist/design-system/index.d.ts.map +1 -1
- package/dist/design-system/split-button.d.ts +25 -0
- package/dist/design-system/split-button.d.ts.map +1 -0
- package/dist/ui/buttons/animated.js +10 -9
- package/dist/ui/buttons/animated.js.map +1 -1
- package/dist/ui/buttons/animated.mjs +8 -7
- package/dist/ui/buttons/animated.mjs.map +1 -1
- package/dist/ui/buttons.js +11 -10
- package/dist/ui/buttons.mjs +9 -8
- package/dist/ui/code-diff/code-diff-base.d.ts +6 -0
- package/dist/ui/code-diff/code-diff-base.d.ts.map +1 -0
- package/dist/ui/code-diff/code-diff.d.ts +6 -0
- package/dist/ui/code-diff/code-diff.d.ts.map +1 -0
- package/dist/ui/code-diff/index.d.ts +4 -0
- package/dist/ui/code-diff/index.d.ts.map +1 -0
- package/dist/ui/code-diff/types.d.ts +26 -0
- package/dist/ui/code-diff/types.d.ts.map +1 -0
- package/dist/ui/code-diff/variants.d.ts +11 -0
- package/dist/ui/code-diff/variants.d.ts.map +1 -0
- package/dist/ui/code-diff.js +302 -0
- package/dist/ui/code-diff.js.map +1 -0
- package/dist/ui/code-diff.mjs +297 -0
- package/dist/ui/code-diff.mjs.map +1 -0
- package/dist/ui/data-table.js +22 -21
- package/dist/ui/data-table.js.map +1 -1
- package/dist/ui/data-table.mjs +12 -11
- package/dist/ui/data-table.mjs.map +1 -1
- package/dist/ui/dropdown/dropdown.d.ts +1 -1
- package/dist/ui/dropdown/dropdown.d.ts.map +1 -1
- package/dist/ui/dropdown/types.d.ts +2 -2
- package/dist/ui/dropdown/types.d.ts.map +1 -1
- package/dist/ui/dropdown.js +31 -231
- package/dist/ui/dropdown.js.map +1 -1
- package/dist/ui/dropdown.mjs +4 -229
- package/dist/ui/dropdown.mjs.map +1 -1
- package/dist/ui/dynamic-stepper.js +20 -19
- package/dist/ui/dynamic-stepper.js.map +1 -1
- package/dist/ui/dynamic-stepper.mjs +9 -8
- package/dist/ui/dynamic-stepper.mjs.map +1 -1
- package/dist/ui/pagination.js +12 -11
- package/dist/ui/pagination.mjs +9 -8
- package/dist/ui/split-button/index.d.ts +4 -0
- package/dist/ui/split-button/index.d.ts.map +1 -0
- package/dist/ui/split-button/split-button-base.d.ts +6 -0
- package/dist/ui/split-button/split-button-base.d.ts.map +1 -0
- package/dist/ui/split-button/split-button.d.ts +6 -0
- package/dist/ui/split-button/split-button.d.ts.map +1 -0
- package/dist/ui/split-button/types.d.ts +30 -0
- package/dist/ui/split-button/types.d.ts.map +1 -0
- package/dist/ui/split-button/variants.d.ts +16 -0
- package/dist/ui/split-button/variants.d.ts.map +1 -0
- package/dist/ui/split-button.js +288 -0
- package/dist/ui/split-button.js.map +1 -0
- package/dist/ui/split-button.mjs +279 -0
- package/dist/ui/split-button.mjs.map +1 -0
- package/package.json +4 -1
- package/src/design-system/code-diff.ts +37 -0
- package/src/design-system/index.ts +2 -0
- package/src/design-system/split-button.ts +38 -0
- package/src/ui/code-diff/code-diff-base.tsx +284 -0
- package/src/ui/code-diff/code-diff.test.tsx +50 -0
- package/src/ui/code-diff/code-diff.tsx +8 -0
- package/src/ui/code-diff/index.ts +15 -0
- package/src/ui/code-diff/types.ts +31 -0
- package/src/ui/code-diff/variants.ts +49 -0
- package/src/ui/dropdown/dropdown.tsx +7 -3
- package/src/ui/dropdown/types.ts +2 -2
- package/src/ui/split-button/index.ts +19 -0
- package/src/ui/split-button/split-button-base.tsx +232 -0
- package/src/ui/split-button/split-button.test.tsx +208 -0
- package/src/ui/split-button/split-button.tsx +9 -0
- package/src/ui/split-button/types.ts +46 -0
- package/src/ui/split-button/variants.ts +46 -0
- package/dist/chunk-5FU57ZVQ.js +0 -19
- package/dist/chunk-FUCW5GPE.mjs.map +0 -1
- package/dist/chunk-TJ2EWPER.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/ui/code-diff/variants.ts","../../src/ui/code-diff/code-diff-base.tsx","../../src/ui/code-diff/code-diff.tsx"],"names":["cva","zuiCodeDiffBase","zuiCodeDiffAppearances","zuiCodeDiffSizes","zuiCodeDiffLineNumberBase","zuiCodeDiffLineAdded","zuiCodeDiffLineRemoved","zuiCodeDiffLineUnchanged","zuiCodeDiffLineContentBase","diffLines","jsx","jsxs","useMemo","cn"],"mappings":"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","file":"code-diff.js","sourcesContent":["import { cva } from \"class-variance-authority\";\n\nimport {\n zuiCodeDiffAppearances,\n zuiCodeDiffBase,\n zuiCodeDiffLineAdded,\n zuiCodeDiffLineContentBase,\n zuiCodeDiffLineNumberBase,\n zuiCodeDiffLineRemoved,\n zuiCodeDiffLineUnchanged,\n zuiCodeDiffSizes,\n} from \"../../design-system/code-diff\";\n\nexport const codeDiffVariants = cva(zuiCodeDiffBase, {\n variants: {\n appearance: zuiCodeDiffAppearances,\n size: zuiCodeDiffSizes,\n },\n defaultVariants: {\n appearance: \"default\",\n size: \"md\",\n },\n});\n\nexport const codeDiffLineNumberVariants = cva(zuiCodeDiffLineNumberBase, {\n variants: {\n type: {\n added: zuiCodeDiffLineAdded,\n removed: zuiCodeDiffLineRemoved,\n unchanged: zuiCodeDiffLineUnchanged,\n },\n },\n defaultVariants: {\n type: \"unchanged\",\n },\n});\n\nexport const codeDiffLineContentVariants = cva(zuiCodeDiffLineContentBase, {\n variants: {\n type: {\n added: zuiCodeDiffLineAdded,\n removed: zuiCodeDiffLineRemoved,\n unchanged: zuiCodeDiffLineUnchanged,\n },\n },\n defaultVariants: {\n type: \"unchanged\",\n },\n});\n","\"use client\";\n\nimport { diffLines } from \"diff\";\nimport { useMemo } from \"react\";\n\nimport { cn } from \"../../lib/utils\";\n\nimport type { CodeDiffBaseProps, DiffLine } from \"./types\";\nimport {\n codeDiffLineContentVariants,\n codeDiffLineNumberVariants,\n codeDiffVariants,\n} from \"./variants\";\n\nfunction computeDiff(oldCode: string, newCode: string): DiffLine[] {\n const changes = diffLines(oldCode, newCode);\n const lines: DiffLine[] = [];\n let oldLineNum = 1;\n let newLineNum = 1;\n\n for (const change of changes) {\n const changeLines = change.value.replace(/\\n$/, \"\").split(\"\\n\");\n for (const content of changeLines) {\n if (change.added) {\n lines.push({\n type: \"added\",\n content,\n oldLineNumber: null,\n newLineNumber: newLineNum++,\n });\n } else if (change.removed) {\n lines.push({\n type: \"removed\",\n content,\n oldLineNumber: oldLineNum++,\n newLineNumber: null,\n });\n } else {\n lines.push({\n type: \"unchanged\",\n content,\n oldLineNumber: oldLineNum++,\n newLineNumber: newLineNum++,\n });\n }\n }\n }\n return lines;\n}\n\ninterface SplitRow {\n oldLine: DiffLine | null;\n newLine: DiffLine | null;\n}\n\nfunction toSplitRows(lines: DiffLine[]): SplitRow[] {\n const rows: SplitRow[] = [];\n let i = 0;\n\n while (i < lines.length) {\n const current = lines[i]!;\n\n if (current.type === \"unchanged\") {\n rows.push({ oldLine: current, newLine: current });\n i++;\n } else if (current.type === \"removed\") {\n const removedBlock: DiffLine[] = [];\n while (i < lines.length && lines[i]!.type === \"removed\") {\n removedBlock.push(lines[i]!);\n i++;\n }\n const addedBlock: DiffLine[] = [];\n while (i < lines.length && lines[i]!.type === \"added\") {\n addedBlock.push(lines[i]!);\n i++;\n }\n const maxLen = Math.max(removedBlock.length, addedBlock.length);\n for (let j = 0; j < maxLen; j++) {\n rows.push({\n oldLine: j < removedBlock.length ? removedBlock[j]! : null,\n newLine: j < addedBlock.length ? addedBlock[j]! : null,\n });\n }\n } else if (current.type === \"added\") {\n const addedBlock: DiffLine[] = [];\n while (i < lines.length && lines[i]!.type === \"added\") {\n addedBlock.push(lines[i]!);\n i++;\n }\n for (const added of addedBlock) {\n rows.push({ oldLine: null, newLine: added });\n }\n } else {\n i++;\n }\n }\n return rows;\n}\n\nfunction LineNumberCell({\n lineNumber,\n type,\n showLineNumbers,\n}: {\n lineNumber: number | null;\n type: DiffLine[\"type\"];\n showLineNumbers: boolean;\n}) {\n return (\n <td\n className={codeDiffLineNumberVariants({ type })}\n style={{ width: showLineNumbers ? \"4.5rem\" : \"2rem\" }}\n >\n {showLineNumbers && lineNumber !== null ? lineNumber : \"\"}\n </td>\n );\n}\n\nfunction LineContentCell({\n line,\n type,\n showGutterMarkers,\n}: {\n line: string;\n type: DiffLine[\"type\"];\n showGutterMarkers: boolean;\n}) {\n return (\n <td className={codeDiffLineContentVariants({ type })}>\n {showGutterMarkers ? (\n <span className=\"inline-block w-4 select-none text-center\">\n {type === \"added\" ? \"+\" : type === \"removed\" ? \"-\" : \" \"}\n </span>\n ) : null}\n <span>{line || \" \"}</span>\n </td>\n );\n}\n\nfunction UnifiedView({\n lines,\n showLineNumbers,\n showGutterMarkers,\n}: {\n lines: DiffLine[];\n showLineNumbers: boolean;\n showGutterMarkers: boolean;\n}) {\n return (\n <table className=\"w-full border-collapse table-fixed\">\n <tbody>\n {lines.map((line, idx) => (\n <tr key={idx}>\n <LineNumberCell\n lineNumber={line.oldLineNumber}\n type={line.type}\n showLineNumbers={showLineNumbers}\n />\n <LineNumberCell\n lineNumber={line.newLineNumber}\n type={line.type}\n showLineNumbers={showLineNumbers}\n />\n <LineContentCell\n line={line.content}\n type={line.type}\n showGutterMarkers={showGutterMarkers}\n />\n </tr>\n ))}\n </tbody>\n </table>\n );\n}\n\nfunction SplitView({\n lines,\n showLineNumbers,\n showGutterMarkers,\n}: {\n lines: DiffLine[];\n showLineNumbers: boolean;\n showGutterMarkers: boolean;\n}) {\n const rows = toSplitRows(lines);\n\n return (\n <table className=\"w-full border-collapse table-fixed\">\n <colgroup>\n <col style={{ width: showLineNumbers ? \"4.5rem\" : \"2rem\" }} />\n <col />\n <col style={{ width: showLineNumbers ? \"4.5rem\" : \"2rem\" }} />\n <col />\n </colgroup>\n <tbody>\n {rows.map((row, idx) => (\n <tr key={idx}>\n <LineNumberCell\n lineNumber={row.oldLine?.oldLineNumber ?? null}\n type={row.oldLine?.type ?? \"unchanged\"}\n showLineNumbers={showLineNumbers}\n />\n <LineContentCell\n line={row.oldLine?.content ?? \"\"}\n type={row.oldLine?.type ?? \"unchanged\"}\n showGutterMarkers={showGutterMarkers}\n />\n <LineNumberCell\n lineNumber={row.newLine?.newLineNumber ?? null}\n type={row.newLine?.type ?? \"unchanged\"}\n showLineNumbers={showLineNumbers}\n />\n <LineContentCell\n line={row.newLine?.content ?? \"\"}\n type={row.newLine?.type ?? \"unchanged\"}\n showGutterMarkers={showGutterMarkers}\n />\n </tr>\n ))}\n </tbody>\n </table>\n );\n}\n\nexport function CodeDiffBase({\n className,\n appearance,\n size,\n oldCode,\n newCode,\n viewType = \"unified\",\n showLineNumbers = true,\n showGutterMarkers = true,\n oldTitle = \"Old\",\n newTitle = \"New\",\n ref,\n as: Wrapper = \"div\",\n ...rest\n}: CodeDiffBaseProps) {\n const lines = useMemo(\n () => computeDiff(oldCode ?? \"\", newCode ?? \"\"),\n [oldCode, newCode],\n );\n const hasChanges = lines.some(\n (l) => l.type === \"added\" || l.type === \"removed\",\n );\n\n return (\n <Wrapper\n ref={ref}\n data-slot=\"code-diff\"\n className={cn(codeDiffVariants({ appearance, size }), className)}\n {...rest}\n >\n {hasChanges ? (\n <div className=\"sticky top-0 flex items-center justify-between border-b border-[color:var(--zui-code-diff-border,var(--zui-border,#0000001a))] dark:border-[color:var(--zui-code-diff-border-dark,var(--zui-border-dark,#ffffff1a))] bg-[var(--zui-code-diff-header-bg,var(--zui-surface-muted,oklch(92.9%_0.013_255.508)))] dark:bg-[var(--zui-code-diff-header-bg-dark,var(--zui-surface-muted-dark,oklch(27.9%_0.041_260.031)))] px-4 py-2\">\n <span className=\"text-xs font-medium\">\n {lines.filter((l) => l.type === \"added\").length} additions{\" \"}\n <span className=\"mx-1\">•</span>{\" \"}\n {lines.filter((l) => l.type === \"removed\").length} deletions\n </span>\n <span className=\"text-xs text-[color:var(--zui-code-diff-header-fg,var(--zui-fg-muted,oklch(55.2%_0.046_257.417)))] dark:text-[color:var(--zui-code-diff-header-fg-dark,var(--zui-fg-muted-dark,oklch(70.8%_0.015_256.243)))]\">\n {oldTitle} → {newTitle}\n </span>\n </div>\n ) : null}\n {viewType === \"split\" ? (\n <SplitView\n lines={lines}\n showLineNumbers={showLineNumbers}\n showGutterMarkers={showGutterMarkers}\n />\n ) : (\n <UnifiedView\n lines={lines}\n showLineNumbers={showLineNumbers}\n showGutterMarkers={showGutterMarkers}\n />\n )}\n </Wrapper>\n );\n}\n\nCodeDiffBase.displayName = \"CodeDiff\";\n","import { CodeDiffBase } from \"./code-diff-base\";\nimport type { CodeDiffProps } from \"./types\";\n\nexport function CodeDiff(props: CodeDiffProps) {\n return <CodeDiffBase {...props} />;\n}\n\nCodeDiff.displayName = \"CodeDiff\";\n"]}
|
|
@@ -0,0 +1,297 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { zuiCodeDiffBase, zuiCodeDiffSizes, zuiCodeDiffAppearances, zuiCodeDiffLineNumberBase, zuiCodeDiffLineUnchanged, zuiCodeDiffLineRemoved, zuiCodeDiffLineAdded, zuiCodeDiffLineContentBase } from '../chunk-GP3FUS2H.mjs';
|
|
3
|
+
import { cn } from '../chunk-4D54YOL6.mjs';
|
|
4
|
+
import '../chunk-J5LGTIGS.mjs';
|
|
5
|
+
import { diffLines } from 'diff';
|
|
6
|
+
import { useMemo } from 'react';
|
|
7
|
+
import { cva } from 'class-variance-authority';
|
|
8
|
+
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
9
|
+
|
|
10
|
+
var codeDiffVariants = cva(zuiCodeDiffBase, {
|
|
11
|
+
variants: {
|
|
12
|
+
appearance: zuiCodeDiffAppearances,
|
|
13
|
+
size: zuiCodeDiffSizes
|
|
14
|
+
},
|
|
15
|
+
defaultVariants: {
|
|
16
|
+
appearance: "default",
|
|
17
|
+
size: "md"
|
|
18
|
+
}
|
|
19
|
+
});
|
|
20
|
+
var codeDiffLineNumberVariants = cva(zuiCodeDiffLineNumberBase, {
|
|
21
|
+
variants: {
|
|
22
|
+
type: {
|
|
23
|
+
added: zuiCodeDiffLineAdded,
|
|
24
|
+
removed: zuiCodeDiffLineRemoved,
|
|
25
|
+
unchanged: zuiCodeDiffLineUnchanged
|
|
26
|
+
}
|
|
27
|
+
},
|
|
28
|
+
defaultVariants: {
|
|
29
|
+
type: "unchanged"
|
|
30
|
+
}
|
|
31
|
+
});
|
|
32
|
+
var codeDiffLineContentVariants = cva(zuiCodeDiffLineContentBase, {
|
|
33
|
+
variants: {
|
|
34
|
+
type: {
|
|
35
|
+
added: zuiCodeDiffLineAdded,
|
|
36
|
+
removed: zuiCodeDiffLineRemoved,
|
|
37
|
+
unchanged: zuiCodeDiffLineUnchanged
|
|
38
|
+
}
|
|
39
|
+
},
|
|
40
|
+
defaultVariants: {
|
|
41
|
+
type: "unchanged"
|
|
42
|
+
}
|
|
43
|
+
});
|
|
44
|
+
function computeDiff(oldCode, newCode) {
|
|
45
|
+
const changes = diffLines(oldCode, newCode);
|
|
46
|
+
const lines = [];
|
|
47
|
+
let oldLineNum = 1;
|
|
48
|
+
let newLineNum = 1;
|
|
49
|
+
for (const change of changes) {
|
|
50
|
+
const changeLines = change.value.replace(/\n$/, "").split("\n");
|
|
51
|
+
for (const content of changeLines) {
|
|
52
|
+
if (change.added) {
|
|
53
|
+
lines.push({
|
|
54
|
+
type: "added",
|
|
55
|
+
content,
|
|
56
|
+
oldLineNumber: null,
|
|
57
|
+
newLineNumber: newLineNum++
|
|
58
|
+
});
|
|
59
|
+
} else if (change.removed) {
|
|
60
|
+
lines.push({
|
|
61
|
+
type: "removed",
|
|
62
|
+
content,
|
|
63
|
+
oldLineNumber: oldLineNum++,
|
|
64
|
+
newLineNumber: null
|
|
65
|
+
});
|
|
66
|
+
} else {
|
|
67
|
+
lines.push({
|
|
68
|
+
type: "unchanged",
|
|
69
|
+
content,
|
|
70
|
+
oldLineNumber: oldLineNum++,
|
|
71
|
+
newLineNumber: newLineNum++
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
return lines;
|
|
77
|
+
}
|
|
78
|
+
function toSplitRows(lines) {
|
|
79
|
+
const rows = [];
|
|
80
|
+
let i = 0;
|
|
81
|
+
while (i < lines.length) {
|
|
82
|
+
const current = lines[i];
|
|
83
|
+
if (current.type === "unchanged") {
|
|
84
|
+
rows.push({ oldLine: current, newLine: current });
|
|
85
|
+
i++;
|
|
86
|
+
} else if (current.type === "removed") {
|
|
87
|
+
const removedBlock = [];
|
|
88
|
+
while (i < lines.length && lines[i].type === "removed") {
|
|
89
|
+
removedBlock.push(lines[i]);
|
|
90
|
+
i++;
|
|
91
|
+
}
|
|
92
|
+
const addedBlock = [];
|
|
93
|
+
while (i < lines.length && lines[i].type === "added") {
|
|
94
|
+
addedBlock.push(lines[i]);
|
|
95
|
+
i++;
|
|
96
|
+
}
|
|
97
|
+
const maxLen = Math.max(removedBlock.length, addedBlock.length);
|
|
98
|
+
for (let j = 0; j < maxLen; j++) {
|
|
99
|
+
rows.push({
|
|
100
|
+
oldLine: j < removedBlock.length ? removedBlock[j] : null,
|
|
101
|
+
newLine: j < addedBlock.length ? addedBlock[j] : null
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
} else if (current.type === "added") {
|
|
105
|
+
const addedBlock = [];
|
|
106
|
+
while (i < lines.length && lines[i].type === "added") {
|
|
107
|
+
addedBlock.push(lines[i]);
|
|
108
|
+
i++;
|
|
109
|
+
}
|
|
110
|
+
for (const added of addedBlock) {
|
|
111
|
+
rows.push({ oldLine: null, newLine: added });
|
|
112
|
+
}
|
|
113
|
+
} else {
|
|
114
|
+
i++;
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
return rows;
|
|
118
|
+
}
|
|
119
|
+
function LineNumberCell({
|
|
120
|
+
lineNumber,
|
|
121
|
+
type,
|
|
122
|
+
showLineNumbers
|
|
123
|
+
}) {
|
|
124
|
+
return /* @__PURE__ */ jsx(
|
|
125
|
+
"td",
|
|
126
|
+
{
|
|
127
|
+
className: codeDiffLineNumberVariants({ type }),
|
|
128
|
+
style: { width: showLineNumbers ? "4.5rem" : "2rem" },
|
|
129
|
+
children: showLineNumbers && lineNumber !== null ? lineNumber : ""
|
|
130
|
+
}
|
|
131
|
+
);
|
|
132
|
+
}
|
|
133
|
+
function LineContentCell({
|
|
134
|
+
line,
|
|
135
|
+
type,
|
|
136
|
+
showGutterMarkers
|
|
137
|
+
}) {
|
|
138
|
+
return /* @__PURE__ */ jsxs("td", { className: codeDiffLineContentVariants({ type }), children: [
|
|
139
|
+
showGutterMarkers ? /* @__PURE__ */ jsx("span", { className: "inline-block w-4 select-none text-center", children: type === "added" ? "+" : type === "removed" ? "-" : " " }) : null,
|
|
140
|
+
/* @__PURE__ */ jsx("span", { children: line || " " })
|
|
141
|
+
] });
|
|
142
|
+
}
|
|
143
|
+
function UnifiedView({
|
|
144
|
+
lines,
|
|
145
|
+
showLineNumbers,
|
|
146
|
+
showGutterMarkers
|
|
147
|
+
}) {
|
|
148
|
+
return /* @__PURE__ */ jsx("table", { className: "w-full border-collapse table-fixed", children: /* @__PURE__ */ jsx("tbody", { children: lines.map((line, idx) => /* @__PURE__ */ jsxs("tr", { children: [
|
|
149
|
+
/* @__PURE__ */ jsx(
|
|
150
|
+
LineNumberCell,
|
|
151
|
+
{
|
|
152
|
+
lineNumber: line.oldLineNumber,
|
|
153
|
+
type: line.type,
|
|
154
|
+
showLineNumbers
|
|
155
|
+
}
|
|
156
|
+
),
|
|
157
|
+
/* @__PURE__ */ jsx(
|
|
158
|
+
LineNumberCell,
|
|
159
|
+
{
|
|
160
|
+
lineNumber: line.newLineNumber,
|
|
161
|
+
type: line.type,
|
|
162
|
+
showLineNumbers
|
|
163
|
+
}
|
|
164
|
+
),
|
|
165
|
+
/* @__PURE__ */ jsx(
|
|
166
|
+
LineContentCell,
|
|
167
|
+
{
|
|
168
|
+
line: line.content,
|
|
169
|
+
type: line.type,
|
|
170
|
+
showGutterMarkers
|
|
171
|
+
}
|
|
172
|
+
)
|
|
173
|
+
] }, idx)) }) });
|
|
174
|
+
}
|
|
175
|
+
function SplitView({
|
|
176
|
+
lines,
|
|
177
|
+
showLineNumbers,
|
|
178
|
+
showGutterMarkers
|
|
179
|
+
}) {
|
|
180
|
+
const rows = toSplitRows(lines);
|
|
181
|
+
return /* @__PURE__ */ jsxs("table", { className: "w-full border-collapse table-fixed", children: [
|
|
182
|
+
/* @__PURE__ */ jsxs("colgroup", { children: [
|
|
183
|
+
/* @__PURE__ */ jsx("col", { style: { width: showLineNumbers ? "4.5rem" : "2rem" } }),
|
|
184
|
+
/* @__PURE__ */ jsx("col", {}),
|
|
185
|
+
/* @__PURE__ */ jsx("col", { style: { width: showLineNumbers ? "4.5rem" : "2rem" } }),
|
|
186
|
+
/* @__PURE__ */ jsx("col", {})
|
|
187
|
+
] }),
|
|
188
|
+
/* @__PURE__ */ jsx("tbody", { children: rows.map((row, idx) => /* @__PURE__ */ jsxs("tr", { children: [
|
|
189
|
+
/* @__PURE__ */ jsx(
|
|
190
|
+
LineNumberCell,
|
|
191
|
+
{
|
|
192
|
+
lineNumber: row.oldLine?.oldLineNumber ?? null,
|
|
193
|
+
type: row.oldLine?.type ?? "unchanged",
|
|
194
|
+
showLineNumbers
|
|
195
|
+
}
|
|
196
|
+
),
|
|
197
|
+
/* @__PURE__ */ jsx(
|
|
198
|
+
LineContentCell,
|
|
199
|
+
{
|
|
200
|
+
line: row.oldLine?.content ?? "",
|
|
201
|
+
type: row.oldLine?.type ?? "unchanged",
|
|
202
|
+
showGutterMarkers
|
|
203
|
+
}
|
|
204
|
+
),
|
|
205
|
+
/* @__PURE__ */ jsx(
|
|
206
|
+
LineNumberCell,
|
|
207
|
+
{
|
|
208
|
+
lineNumber: row.newLine?.newLineNumber ?? null,
|
|
209
|
+
type: row.newLine?.type ?? "unchanged",
|
|
210
|
+
showLineNumbers
|
|
211
|
+
}
|
|
212
|
+
),
|
|
213
|
+
/* @__PURE__ */ jsx(
|
|
214
|
+
LineContentCell,
|
|
215
|
+
{
|
|
216
|
+
line: row.newLine?.content ?? "",
|
|
217
|
+
type: row.newLine?.type ?? "unchanged",
|
|
218
|
+
showGutterMarkers
|
|
219
|
+
}
|
|
220
|
+
)
|
|
221
|
+
] }, idx)) })
|
|
222
|
+
] });
|
|
223
|
+
}
|
|
224
|
+
function CodeDiffBase({
|
|
225
|
+
className,
|
|
226
|
+
appearance,
|
|
227
|
+
size,
|
|
228
|
+
oldCode,
|
|
229
|
+
newCode,
|
|
230
|
+
viewType = "unified",
|
|
231
|
+
showLineNumbers = true,
|
|
232
|
+
showGutterMarkers = true,
|
|
233
|
+
oldTitle = "Old",
|
|
234
|
+
newTitle = "New",
|
|
235
|
+
ref,
|
|
236
|
+
as: Wrapper = "div",
|
|
237
|
+
...rest
|
|
238
|
+
}) {
|
|
239
|
+
const lines = useMemo(
|
|
240
|
+
() => computeDiff(oldCode ?? "", newCode ?? ""),
|
|
241
|
+
[oldCode, newCode]
|
|
242
|
+
);
|
|
243
|
+
const hasChanges = lines.some(
|
|
244
|
+
(l) => l.type === "added" || l.type === "removed"
|
|
245
|
+
);
|
|
246
|
+
return /* @__PURE__ */ jsxs(
|
|
247
|
+
Wrapper,
|
|
248
|
+
{
|
|
249
|
+
ref,
|
|
250
|
+
"data-slot": "code-diff",
|
|
251
|
+
className: cn(codeDiffVariants({ appearance, size }), className),
|
|
252
|
+
...rest,
|
|
253
|
+
children: [
|
|
254
|
+
hasChanges ? /* @__PURE__ */ jsxs("div", { className: "sticky top-0 flex items-center justify-between border-b border-[color:var(--zui-code-diff-border,var(--zui-border,#0000001a))] dark:border-[color:var(--zui-code-diff-border-dark,var(--zui-border-dark,#ffffff1a))] bg-[var(--zui-code-diff-header-bg,var(--zui-surface-muted,oklch(92.9%_0.013_255.508)))] dark:bg-[var(--zui-code-diff-header-bg-dark,var(--zui-surface-muted-dark,oklch(27.9%_0.041_260.031)))] px-4 py-2", children: [
|
|
255
|
+
/* @__PURE__ */ jsxs("span", { className: "text-xs font-medium", children: [
|
|
256
|
+
lines.filter((l) => l.type === "added").length,
|
|
257
|
+
" additions",
|
|
258
|
+
" ",
|
|
259
|
+
/* @__PURE__ */ jsx("span", { className: "mx-1", children: "\u2022" }),
|
|
260
|
+
" ",
|
|
261
|
+
lines.filter((l) => l.type === "removed").length,
|
|
262
|
+
" deletions"
|
|
263
|
+
] }),
|
|
264
|
+
/* @__PURE__ */ jsxs("span", { className: "text-xs text-[color:var(--zui-code-diff-header-fg,var(--zui-fg-muted,oklch(55.2%_0.046_257.417)))] dark:text-[color:var(--zui-code-diff-header-fg-dark,var(--zui-fg-muted-dark,oklch(70.8%_0.015_256.243)))]", children: [
|
|
265
|
+
oldTitle,
|
|
266
|
+
" \u2192 ",
|
|
267
|
+
newTitle
|
|
268
|
+
] })
|
|
269
|
+
] }) : null,
|
|
270
|
+
viewType === "split" ? /* @__PURE__ */ jsx(
|
|
271
|
+
SplitView,
|
|
272
|
+
{
|
|
273
|
+
lines,
|
|
274
|
+
showLineNumbers,
|
|
275
|
+
showGutterMarkers
|
|
276
|
+
}
|
|
277
|
+
) : /* @__PURE__ */ jsx(
|
|
278
|
+
UnifiedView,
|
|
279
|
+
{
|
|
280
|
+
lines,
|
|
281
|
+
showLineNumbers,
|
|
282
|
+
showGutterMarkers
|
|
283
|
+
}
|
|
284
|
+
)
|
|
285
|
+
]
|
|
286
|
+
}
|
|
287
|
+
);
|
|
288
|
+
}
|
|
289
|
+
CodeDiffBase.displayName = "CodeDiff";
|
|
290
|
+
function CodeDiff(props) {
|
|
291
|
+
return /* @__PURE__ */ jsx(CodeDiffBase, { ...props });
|
|
292
|
+
}
|
|
293
|
+
CodeDiff.displayName = "CodeDiff";
|
|
294
|
+
|
|
295
|
+
export { CodeDiff, codeDiffLineContentVariants, codeDiffLineNumberVariants, codeDiffVariants };
|
|
296
|
+
//# sourceMappingURL=code-diff.mjs.map
|
|
297
|
+
//# sourceMappingURL=code-diff.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/ui/code-diff/variants.ts","../../src/ui/code-diff/code-diff-base.tsx","../../src/ui/code-diff/code-diff.tsx"],"names":["jsx"],"mappings":"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","file":"code-diff.mjs","sourcesContent":["import { cva } from \"class-variance-authority\";\n\nimport {\n zuiCodeDiffAppearances,\n zuiCodeDiffBase,\n zuiCodeDiffLineAdded,\n zuiCodeDiffLineContentBase,\n zuiCodeDiffLineNumberBase,\n zuiCodeDiffLineRemoved,\n zuiCodeDiffLineUnchanged,\n zuiCodeDiffSizes,\n} from \"../../design-system/code-diff\";\n\nexport const codeDiffVariants = cva(zuiCodeDiffBase, {\n variants: {\n appearance: zuiCodeDiffAppearances,\n size: zuiCodeDiffSizes,\n },\n defaultVariants: {\n appearance: \"default\",\n size: \"md\",\n },\n});\n\nexport const codeDiffLineNumberVariants = cva(zuiCodeDiffLineNumberBase, {\n variants: {\n type: {\n added: zuiCodeDiffLineAdded,\n removed: zuiCodeDiffLineRemoved,\n unchanged: zuiCodeDiffLineUnchanged,\n },\n },\n defaultVariants: {\n type: \"unchanged\",\n },\n});\n\nexport const codeDiffLineContentVariants = cva(zuiCodeDiffLineContentBase, {\n variants: {\n type: {\n added: zuiCodeDiffLineAdded,\n removed: zuiCodeDiffLineRemoved,\n unchanged: zuiCodeDiffLineUnchanged,\n },\n },\n defaultVariants: {\n type: \"unchanged\",\n },\n});\n","\"use client\";\n\nimport { diffLines } from \"diff\";\nimport { useMemo } from \"react\";\n\nimport { cn } from \"../../lib/utils\";\n\nimport type { CodeDiffBaseProps, DiffLine } from \"./types\";\nimport {\n codeDiffLineContentVariants,\n codeDiffLineNumberVariants,\n codeDiffVariants,\n} from \"./variants\";\n\nfunction computeDiff(oldCode: string, newCode: string): DiffLine[] {\n const changes = diffLines(oldCode, newCode);\n const lines: DiffLine[] = [];\n let oldLineNum = 1;\n let newLineNum = 1;\n\n for (const change of changes) {\n const changeLines = change.value.replace(/\\n$/, \"\").split(\"\\n\");\n for (const content of changeLines) {\n if (change.added) {\n lines.push({\n type: \"added\",\n content,\n oldLineNumber: null,\n newLineNumber: newLineNum++,\n });\n } else if (change.removed) {\n lines.push({\n type: \"removed\",\n content,\n oldLineNumber: oldLineNum++,\n newLineNumber: null,\n });\n } else {\n lines.push({\n type: \"unchanged\",\n content,\n oldLineNumber: oldLineNum++,\n newLineNumber: newLineNum++,\n });\n }\n }\n }\n return lines;\n}\n\ninterface SplitRow {\n oldLine: DiffLine | null;\n newLine: DiffLine | null;\n}\n\nfunction toSplitRows(lines: DiffLine[]): SplitRow[] {\n const rows: SplitRow[] = [];\n let i = 0;\n\n while (i < lines.length) {\n const current = lines[i]!;\n\n if (current.type === \"unchanged\") {\n rows.push({ oldLine: current, newLine: current });\n i++;\n } else if (current.type === \"removed\") {\n const removedBlock: DiffLine[] = [];\n while (i < lines.length && lines[i]!.type === \"removed\") {\n removedBlock.push(lines[i]!);\n i++;\n }\n const addedBlock: DiffLine[] = [];\n while (i < lines.length && lines[i]!.type === \"added\") {\n addedBlock.push(lines[i]!);\n i++;\n }\n const maxLen = Math.max(removedBlock.length, addedBlock.length);\n for (let j = 0; j < maxLen; j++) {\n rows.push({\n oldLine: j < removedBlock.length ? removedBlock[j]! : null,\n newLine: j < addedBlock.length ? addedBlock[j]! : null,\n });\n }\n } else if (current.type === \"added\") {\n const addedBlock: DiffLine[] = [];\n while (i < lines.length && lines[i]!.type === \"added\") {\n addedBlock.push(lines[i]!);\n i++;\n }\n for (const added of addedBlock) {\n rows.push({ oldLine: null, newLine: added });\n }\n } else {\n i++;\n }\n }\n return rows;\n}\n\nfunction LineNumberCell({\n lineNumber,\n type,\n showLineNumbers,\n}: {\n lineNumber: number | null;\n type: DiffLine[\"type\"];\n showLineNumbers: boolean;\n}) {\n return (\n <td\n className={codeDiffLineNumberVariants({ type })}\n style={{ width: showLineNumbers ? \"4.5rem\" : \"2rem\" }}\n >\n {showLineNumbers && lineNumber !== null ? lineNumber : \"\"}\n </td>\n );\n}\n\nfunction LineContentCell({\n line,\n type,\n showGutterMarkers,\n}: {\n line: string;\n type: DiffLine[\"type\"];\n showGutterMarkers: boolean;\n}) {\n return (\n <td className={codeDiffLineContentVariants({ type })}>\n {showGutterMarkers ? (\n <span className=\"inline-block w-4 select-none text-center\">\n {type === \"added\" ? \"+\" : type === \"removed\" ? \"-\" : \" \"}\n </span>\n ) : null}\n <span>{line || \" \"}</span>\n </td>\n );\n}\n\nfunction UnifiedView({\n lines,\n showLineNumbers,\n showGutterMarkers,\n}: {\n lines: DiffLine[];\n showLineNumbers: boolean;\n showGutterMarkers: boolean;\n}) {\n return (\n <table className=\"w-full border-collapse table-fixed\">\n <tbody>\n {lines.map((line, idx) => (\n <tr key={idx}>\n <LineNumberCell\n lineNumber={line.oldLineNumber}\n type={line.type}\n showLineNumbers={showLineNumbers}\n />\n <LineNumberCell\n lineNumber={line.newLineNumber}\n type={line.type}\n showLineNumbers={showLineNumbers}\n />\n <LineContentCell\n line={line.content}\n type={line.type}\n showGutterMarkers={showGutterMarkers}\n />\n </tr>\n ))}\n </tbody>\n </table>\n );\n}\n\nfunction SplitView({\n lines,\n showLineNumbers,\n showGutterMarkers,\n}: {\n lines: DiffLine[];\n showLineNumbers: boolean;\n showGutterMarkers: boolean;\n}) {\n const rows = toSplitRows(lines);\n\n return (\n <table className=\"w-full border-collapse table-fixed\">\n <colgroup>\n <col style={{ width: showLineNumbers ? \"4.5rem\" : \"2rem\" }} />\n <col />\n <col style={{ width: showLineNumbers ? \"4.5rem\" : \"2rem\" }} />\n <col />\n </colgroup>\n <tbody>\n {rows.map((row, idx) => (\n <tr key={idx}>\n <LineNumberCell\n lineNumber={row.oldLine?.oldLineNumber ?? null}\n type={row.oldLine?.type ?? \"unchanged\"}\n showLineNumbers={showLineNumbers}\n />\n <LineContentCell\n line={row.oldLine?.content ?? \"\"}\n type={row.oldLine?.type ?? \"unchanged\"}\n showGutterMarkers={showGutterMarkers}\n />\n <LineNumberCell\n lineNumber={row.newLine?.newLineNumber ?? null}\n type={row.newLine?.type ?? \"unchanged\"}\n showLineNumbers={showLineNumbers}\n />\n <LineContentCell\n line={row.newLine?.content ?? \"\"}\n type={row.newLine?.type ?? \"unchanged\"}\n showGutterMarkers={showGutterMarkers}\n />\n </tr>\n ))}\n </tbody>\n </table>\n );\n}\n\nexport function CodeDiffBase({\n className,\n appearance,\n size,\n oldCode,\n newCode,\n viewType = \"unified\",\n showLineNumbers = true,\n showGutterMarkers = true,\n oldTitle = \"Old\",\n newTitle = \"New\",\n ref,\n as: Wrapper = \"div\",\n ...rest\n}: CodeDiffBaseProps) {\n const lines = useMemo(\n () => computeDiff(oldCode ?? \"\", newCode ?? \"\"),\n [oldCode, newCode],\n );\n const hasChanges = lines.some(\n (l) => l.type === \"added\" || l.type === \"removed\",\n );\n\n return (\n <Wrapper\n ref={ref}\n data-slot=\"code-diff\"\n className={cn(codeDiffVariants({ appearance, size }), className)}\n {...rest}\n >\n {hasChanges ? (\n <div className=\"sticky top-0 flex items-center justify-between border-b border-[color:var(--zui-code-diff-border,var(--zui-border,#0000001a))] dark:border-[color:var(--zui-code-diff-border-dark,var(--zui-border-dark,#ffffff1a))] bg-[var(--zui-code-diff-header-bg,var(--zui-surface-muted,oklch(92.9%_0.013_255.508)))] dark:bg-[var(--zui-code-diff-header-bg-dark,var(--zui-surface-muted-dark,oklch(27.9%_0.041_260.031)))] px-4 py-2\">\n <span className=\"text-xs font-medium\">\n {lines.filter((l) => l.type === \"added\").length} additions{\" \"}\n <span className=\"mx-1\">•</span>{\" \"}\n {lines.filter((l) => l.type === \"removed\").length} deletions\n </span>\n <span className=\"text-xs text-[color:var(--zui-code-diff-header-fg,var(--zui-fg-muted,oklch(55.2%_0.046_257.417)))] dark:text-[color:var(--zui-code-diff-header-fg-dark,var(--zui-fg-muted-dark,oklch(70.8%_0.015_256.243)))]\">\n {oldTitle} → {newTitle}\n </span>\n </div>\n ) : null}\n {viewType === \"split\" ? (\n <SplitView\n lines={lines}\n showLineNumbers={showLineNumbers}\n showGutterMarkers={showGutterMarkers}\n />\n ) : (\n <UnifiedView\n lines={lines}\n showLineNumbers={showLineNumbers}\n showGutterMarkers={showGutterMarkers}\n />\n )}\n </Wrapper>\n );\n}\n\nCodeDiffBase.displayName = \"CodeDiff\";\n","import { CodeDiffBase } from \"./code-diff-base\";\nimport type { CodeDiffProps } from \"./types\";\n\nexport function CodeDiff(props: CodeDiffProps) {\n return <CodeDiffBase {...props} />;\n}\n\nCodeDiff.displayName = \"CodeDiff\";\n"]}
|
package/dist/ui/data-table.js
CHANGED
|
@@ -1,47 +1,49 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
'use strict';
|
|
3
3
|
|
|
4
|
-
var chunkOYAJG2BO_js = require('../chunk-OYAJG2BO.js');
|
|
5
4
|
var chunkHMDH4BQJ_js = require('../chunk-HMDH4BQJ.js');
|
|
6
5
|
var chunkI7EBE7BD_js = require('../chunk-I7EBE7BD.js');
|
|
6
|
+
var chunkOYAJG2BO_js = require('../chunk-OYAJG2BO.js');
|
|
7
7
|
require('../chunk-74SKXGTM.js');
|
|
8
8
|
var chunkKQZWTTY2_js = require('../chunk-KQZWTTY2.js');
|
|
9
|
-
var chunkG7FVHZRB_js = require('../chunk-G7FVHZRB.js');
|
|
10
|
-
var chunk2VUMVDR3_js = require('../chunk-2VUMVDR3.js');
|
|
11
9
|
var chunkPTU5ZAYX_js = require('../chunk-PTU5ZAYX.js');
|
|
12
10
|
require('../chunk-SCOIRBML.js');
|
|
11
|
+
var chunk7CZDJTPD_js = require('../chunk-7CZDJTPD.js');
|
|
12
|
+
var chunk2VUMVDR3_js = require('../chunk-2VUMVDR3.js');
|
|
13
13
|
require('../chunk-XR3J46TZ.js');
|
|
14
|
-
var
|
|
15
|
-
require('../chunk-
|
|
14
|
+
var chunk7DGPRPWM_js = require('../chunk-7DGPRPWM.js');
|
|
15
|
+
require('../chunk-MWG7LHAK.js');
|
|
16
16
|
var chunkT7PIKDUZ_js = require('../chunk-T7PIKDUZ.js');
|
|
17
17
|
require('../chunk-KOIXQXZB.js');
|
|
18
|
-
var
|
|
18
|
+
var chunk4TPE5DEG_js = require('../chunk-4TPE5DEG.js');
|
|
19
19
|
require('../chunk-FBUY6K6S.js');
|
|
20
|
+
require('../chunk-KWBGLH7G.js');
|
|
21
|
+
require('../chunk-OH5VOGNW.js');
|
|
20
22
|
require('../chunk-Y7BU5RC4.js');
|
|
21
23
|
require('../chunk-NDF3HORF.js');
|
|
22
24
|
require('../chunk-USLNTKVQ.js');
|
|
23
25
|
require('../chunk-D7ATXPVI.js');
|
|
24
26
|
require('../chunk-IEHY6KNM.js');
|
|
25
27
|
require('../chunk-3MK7CWEX.js');
|
|
28
|
+
require('../chunk-CJCOURVM.js');
|
|
26
29
|
require('../chunk-22FJROCI.js');
|
|
27
30
|
require('../chunk-UJXFD4SK.js');
|
|
28
31
|
require('../chunk-3EJCQXGV.js');
|
|
29
32
|
require('../chunk-6KVTKYTB.js');
|
|
30
33
|
require('../chunk-L7W4NRK6.js');
|
|
31
|
-
require('../chunk-
|
|
32
|
-
require('../chunk-OH5VOGNW.js');
|
|
34
|
+
require('../chunk-A7MU6SFI.js');
|
|
33
35
|
require('../chunk-WGN2CBG6.js');
|
|
34
36
|
require('../chunk-SRSRY5K2.js');
|
|
35
37
|
require('../chunk-UG3GF2BD.js');
|
|
36
38
|
require('../chunk-BZTAA3MK.js');
|
|
37
39
|
require('../chunk-PZ25OHJE.js');
|
|
38
40
|
require('../chunk-HOOZYA4N.js');
|
|
39
|
-
require('../chunk-
|
|
41
|
+
require('../chunk-7DVECOO7.js');
|
|
40
42
|
require('../chunk-KJMW7S5X.js');
|
|
41
43
|
require('../chunk-3CYJQ6KF.js');
|
|
42
44
|
require('../chunk-3453DQNL.js');
|
|
43
45
|
require('../chunk-DYSXCJGL.js');
|
|
44
|
-
require('../chunk-
|
|
46
|
+
require('../chunk-PAISX7YL.js');
|
|
45
47
|
require('../chunk-NYO3W5GY.js');
|
|
46
48
|
require('../chunk-HNRCPZCK.js');
|
|
47
49
|
require('../chunk-J2SUGU3X.js');
|
|
@@ -49,7 +51,6 @@ require('../chunk-J5NTJVKX.js');
|
|
|
49
51
|
require('../chunk-UQQHB3OI.js');
|
|
50
52
|
require('../chunk-BBM4BKSN.js');
|
|
51
53
|
require('../chunk-Y5JAQEBF.js');
|
|
52
|
-
require('../chunk-7DVECOO7.js');
|
|
53
54
|
require('../chunk-YPYPWALR.js');
|
|
54
55
|
require('../chunk-PP3L6M62.js');
|
|
55
56
|
require('../chunk-BJDT7P2I.js');
|
|
@@ -63,14 +64,14 @@ var react = require('react');
|
|
|
63
64
|
var classVarianceAuthority = require('class-variance-authority');
|
|
64
65
|
var jsxRuntime = require('react/jsx-runtime');
|
|
65
66
|
|
|
66
|
-
var dataTableRootVariants = classVarianceAuthority.cva(
|
|
67
|
-
var dataTableToolbarVariants = classVarianceAuthority.cva(
|
|
68
|
-
var dataTableToolbarGroupVariants = classVarianceAuthority.cva(
|
|
69
|
-
var dataTableColumnPanelVariants = classVarianceAuthority.cva(
|
|
70
|
-
var dataTableStatusVariants = classVarianceAuthority.cva(
|
|
71
|
-
var dataTableStateCellVariants = classVarianceAuthority.cva(
|
|
67
|
+
var dataTableRootVariants = classVarianceAuthority.cva(chunk4TPE5DEG_js.zuiDataTableRootBase);
|
|
68
|
+
var dataTableToolbarVariants = classVarianceAuthority.cva(chunk4TPE5DEG_js.zuiDataTableToolbarBase);
|
|
69
|
+
var dataTableToolbarGroupVariants = classVarianceAuthority.cva(chunk4TPE5DEG_js.zuiDataTableToolbarGroupBase);
|
|
70
|
+
var dataTableColumnPanelVariants = classVarianceAuthority.cva(chunk4TPE5DEG_js.zuiDataTableColumnPanelBase);
|
|
71
|
+
var dataTableStatusVariants = classVarianceAuthority.cva(chunk4TPE5DEG_js.zuiDataTableStatusBase);
|
|
72
|
+
var dataTableStateCellVariants = classVarianceAuthority.cva(chunk4TPE5DEG_js.zuiDataTableStateCellBase);
|
|
72
73
|
var dataTableVirtualScrollVariants = classVarianceAuthority.cva(
|
|
73
|
-
|
|
74
|
+
chunk4TPE5DEG_js.zuiDataTableVirtualScrollBase
|
|
74
75
|
);
|
|
75
76
|
var defaultLoadingContent = "Loading data";
|
|
76
77
|
var defaultEmptyContent = "No results found";
|
|
@@ -493,7 +494,7 @@ function DataTableBase(props) {
|
|
|
493
494
|
className: dataTableToolbarGroupVariants(),
|
|
494
495
|
children: [
|
|
495
496
|
bulkActions.map((action, index) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
496
|
-
|
|
497
|
+
chunk7DGPRPWM_js.Button,
|
|
497
498
|
{
|
|
498
499
|
type: "button",
|
|
499
500
|
appearance: "outline",
|
|
@@ -506,7 +507,7 @@ function DataTableBase(props) {
|
|
|
506
507
|
)),
|
|
507
508
|
enableColumnVisibility ? /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "relative", children: [
|
|
508
509
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
509
|
-
|
|
510
|
+
chunk7DGPRPWM_js.Button,
|
|
510
511
|
{
|
|
511
512
|
type: "button",
|
|
512
513
|
appearance: "outline",
|
|
@@ -583,7 +584,7 @@ function DataTableBase(props) {
|
|
|
583
584
|
sortedData.length
|
|
584
585
|
] }) : null,
|
|
585
586
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
586
|
-
|
|
587
|
+
chunk7CZDJTPD_js.Pagination,
|
|
587
588
|
{
|
|
588
589
|
appearance: resolvedPaginationAppearance,
|
|
589
590
|
size: resolvedSize,
|