@sikka/hawa 0.30.4-next → 0.30.6-next
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/accordion/index.js.map +1 -1
- package/dist/accordion/index.mjs.map +1 -1
- package/dist/alert/index.js +1 -1
- package/dist/alert/index.js.map +1 -1
- package/dist/alert/index.mjs +1 -1
- package/dist/alert/index.mjs.map +1 -1
- package/dist/blocks/auth/index.js +1 -1
- package/dist/blocks/auth/index.mjs +1 -1
- package/dist/blocks/index.js +1 -1
- package/dist/blocks/index.mjs +1 -1
- package/dist/{chunk-N4O2A727.mjs → chunk-AZJHCUGR.mjs} +1 -1
- package/dist/elements/index.d.mts +3 -1
- package/dist/elements/index.d.ts +3 -1
- package/dist/elements/index.js +4 -3
- package/dist/elements/index.mjs +4 -3
- package/dist/fileDropzone/index.js +1 -1
- package/dist/fileDropzone/index.js.map +1 -1
- package/dist/fileDropzone/index.mjs +1 -1
- package/dist/fileDropzone/index.mjs.map +1 -1
- package/dist/index.css +0 -8
- package/dist/index.d.mts +3 -1
- package/dist/index.d.ts +3 -1
- package/dist/index.js +4 -3
- package/dist/index.mjs +4 -3
- package/dist/simpleTable/index.d.mts +3 -1
- package/dist/simpleTable/index.d.ts +3 -1
- package/dist/simpleTable/index.js +3 -2
- package/dist/simpleTable/index.js.map +1 -1
- package/dist/simpleTable/index.mjs +3 -2
- package/dist/simpleTable/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
@@ -931,11 +931,13 @@ declare const Slider: React$1.ForwardRefExoticComponent<Omit<SliderPrimitive.Sli
|
|
931
931
|
type SimpleTableProps<DataProps = {}> = {
|
932
932
|
direction?: DirectionType;
|
933
933
|
columns: ColumnDef<DataProps>[];
|
934
|
+
headerless?: boolean;
|
934
935
|
data: DataProps[];
|
935
936
|
condensed?: boolean;
|
936
937
|
isLoading?: boolean;
|
937
938
|
defaultSort?: string;
|
938
939
|
classNames?: string;
|
940
|
+
extra?: React$1.ReactNode;
|
939
941
|
texts?: {
|
940
942
|
searchPlaceholder?: string;
|
941
943
|
noData?: any;
|
@@ -952,7 +954,7 @@ declare module "@tanstack/table-core" {
|
|
952
954
|
hidden?: boolean;
|
953
955
|
}
|
954
956
|
}
|
955
|
-
declare const SimpleTable: <DataProps extends {}>({ columns, data, classNames, ...props }: SimpleTableProps<DataProps>) => React$1.JSX.Element;
|
957
|
+
declare const SimpleTable: <DataProps extends {}>({ columns, data, classNames, headerless, ...props }: SimpleTableProps<DataProps>) => React$1.JSX.Element;
|
956
958
|
|
957
959
|
type SeparatorProps = {
|
958
960
|
className?: string;
|
package/dist/index.js
CHANGED
@@ -2294,7 +2294,7 @@ var Alert = ({
|
|
2294
2294
|
oceanic: ""
|
2295
2295
|
};
|
2296
2296
|
let styleVariant = {
|
2297
|
-
none: "hawa-
|
2297
|
+
none: "hawa-bg-background hawa-border",
|
2298
2298
|
info: "hawa-text-info-foreground hawa-bg-info/90",
|
2299
2299
|
warning: "hawa-text-warning-foreground hawa-bg-warning/90",
|
2300
2300
|
error: "hawa-text-destructive-foreground hawa-bg-destructive/90",
|
@@ -7280,6 +7280,7 @@ var SimpleTable = ({
|
|
7280
7280
|
columns,
|
7281
7281
|
data,
|
7282
7282
|
classNames,
|
7283
|
+
headerless,
|
7283
7284
|
...props
|
7284
7285
|
}) => {
|
7285
7286
|
var _a, _b;
|
@@ -7296,7 +7297,7 @@ var SimpleTable = ({
|
|
7296
7297
|
classNames
|
7297
7298
|
)
|
7298
7299
|
},
|
7299
|
-
props.isLoading ? /* @__PURE__ */ React51.createElement(Skeleton, { className: "h-[130px] w-full" }) : /* @__PURE__ */ React51.createElement("div", { className: "hawa-rounded" }, /* @__PURE__ */ React51.createElement(Table, null, table.getAllColumns().length > 0 && /* @__PURE__ */ React51.createElement(TableHeader, null, table.getHeaderGroups().map((headerGroup) => /* @__PURE__ */ React51.createElement(TableRow, { key: headerGroup.id }, headerGroup.headers.map((header) => {
|
7300
|
+
props.isLoading ? /* @__PURE__ */ React51.createElement(Skeleton, { className: "h-[130px] w-full" }) : /* @__PURE__ */ React51.createElement("div", { className: "hawa-rounded" }, /* @__PURE__ */ React51.createElement(Table, null, !headerless && table.getAllColumns().length > 0 && /* @__PURE__ */ React51.createElement(TableHeader, null, table.getHeaderGroups().map((headerGroup) => /* @__PURE__ */ React51.createElement(TableRow, { key: headerGroup.id }, headerGroup.headers.map((header) => {
|
7300
7301
|
return /* @__PURE__ */ React51.createElement(
|
7301
7302
|
TableHead,
|
7302
7303
|
{
|
@@ -7337,7 +7338,7 @@ var SimpleTable = ({
|
|
7337
7338
|
className: "hawa-h-24 hawa-text-center"
|
7338
7339
|
},
|
7339
7340
|
(_b = props.texts) == null ? void 0 : _b.noData
|
7340
|
-
)))))
|
7341
|
+
)), props.extra)))
|
7341
7342
|
);
|
7342
7343
|
};
|
7343
7344
|
|
package/dist/index.mjs
CHANGED
@@ -2059,7 +2059,7 @@ var Alert = ({
|
|
2059
2059
|
oceanic: ""
|
2060
2060
|
};
|
2061
2061
|
let styleVariant = {
|
2062
|
-
none: "hawa-
|
2062
|
+
none: "hawa-bg-background hawa-border",
|
2063
2063
|
info: "hawa-text-info-foreground hawa-bg-info/90",
|
2064
2064
|
warning: "hawa-text-warning-foreground hawa-bg-warning/90",
|
2065
2065
|
error: "hawa-text-destructive-foreground hawa-bg-destructive/90",
|
@@ -7060,6 +7060,7 @@ var SimpleTable = ({
|
|
7060
7060
|
columns,
|
7061
7061
|
data,
|
7062
7062
|
classNames,
|
7063
|
+
headerless,
|
7063
7064
|
...props
|
7064
7065
|
}) => {
|
7065
7066
|
var _a, _b;
|
@@ -7076,7 +7077,7 @@ var SimpleTable = ({
|
|
7076
7077
|
classNames
|
7077
7078
|
)
|
7078
7079
|
},
|
7079
|
-
props.isLoading ? /* @__PURE__ */ React51.createElement(Skeleton, { className: "h-[130px] w-full" }) : /* @__PURE__ */ React51.createElement("div", { className: "hawa-rounded" }, /* @__PURE__ */ React51.createElement(Table, null, table.getAllColumns().length > 0 && /* @__PURE__ */ React51.createElement(TableHeader, null, table.getHeaderGroups().map((headerGroup) => /* @__PURE__ */ React51.createElement(TableRow, { key: headerGroup.id }, headerGroup.headers.map((header) => {
|
7080
|
+
props.isLoading ? /* @__PURE__ */ React51.createElement(Skeleton, { className: "h-[130px] w-full" }) : /* @__PURE__ */ React51.createElement("div", { className: "hawa-rounded" }, /* @__PURE__ */ React51.createElement(Table, null, !headerless && table.getAllColumns().length > 0 && /* @__PURE__ */ React51.createElement(TableHeader, null, table.getHeaderGroups().map((headerGroup) => /* @__PURE__ */ React51.createElement(TableRow, { key: headerGroup.id }, headerGroup.headers.map((header) => {
|
7080
7081
|
return /* @__PURE__ */ React51.createElement(
|
7081
7082
|
TableHead,
|
7082
7083
|
{
|
@@ -7117,7 +7118,7 @@ var SimpleTable = ({
|
|
7117
7118
|
className: "hawa-h-24 hawa-text-center"
|
7118
7119
|
},
|
7119
7120
|
(_b = props.texts) == null ? void 0 : _b.noData
|
7120
|
-
)))))
|
7121
|
+
)), props.extra)))
|
7121
7122
|
);
|
7122
7123
|
};
|
7123
7124
|
|
@@ -5,11 +5,13 @@ import { D as DirectionType } from '../commonTypes-3k5cNB1s.mjs';
|
|
5
5
|
type SimpleTableProps<DataProps = {}> = {
|
6
6
|
direction?: DirectionType;
|
7
7
|
columns: ColumnDef<DataProps>[];
|
8
|
+
headerless?: boolean;
|
8
9
|
data: DataProps[];
|
9
10
|
condensed?: boolean;
|
10
11
|
isLoading?: boolean;
|
11
12
|
defaultSort?: string;
|
12
13
|
classNames?: string;
|
14
|
+
extra?: React.ReactNode;
|
13
15
|
texts?: {
|
14
16
|
searchPlaceholder?: string;
|
15
17
|
noData?: any;
|
@@ -26,6 +28,6 @@ declare module "@tanstack/table-core" {
|
|
26
28
|
hidden?: boolean;
|
27
29
|
}
|
28
30
|
}
|
29
|
-
declare const SimpleTable: <DataProps extends {}>({ columns, data, classNames, ...props }: SimpleTableProps<DataProps>) => React.JSX.Element;
|
31
|
+
declare const SimpleTable: <DataProps extends {}>({ columns, data, classNames, headerless, ...props }: SimpleTableProps<DataProps>) => React.JSX.Element;
|
30
32
|
|
31
33
|
export { SimpleTable };
|
@@ -5,11 +5,13 @@ import { D as DirectionType } from '../commonTypes-3k5cNB1s.js';
|
|
5
5
|
type SimpleTableProps<DataProps = {}> = {
|
6
6
|
direction?: DirectionType;
|
7
7
|
columns: ColumnDef<DataProps>[];
|
8
|
+
headerless?: boolean;
|
8
9
|
data: DataProps[];
|
9
10
|
condensed?: boolean;
|
10
11
|
isLoading?: boolean;
|
11
12
|
defaultSort?: string;
|
12
13
|
classNames?: string;
|
14
|
+
extra?: React.ReactNode;
|
13
15
|
texts?: {
|
14
16
|
searchPlaceholder?: string;
|
15
17
|
noData?: any;
|
@@ -26,6 +28,6 @@ declare module "@tanstack/table-core" {
|
|
26
28
|
hidden?: boolean;
|
27
29
|
}
|
28
30
|
}
|
29
|
-
declare const SimpleTable: <DataProps extends {}>({ columns, data, classNames, ...props }: SimpleTableProps<DataProps>) => React.JSX.Element;
|
31
|
+
declare const SimpleTable: <DataProps extends {}>({ columns, data, classNames, headerless, ...props }: SimpleTableProps<DataProps>) => React.JSX.Element;
|
30
32
|
|
31
33
|
export { SimpleTable };
|
@@ -196,6 +196,7 @@ var SimpleTable = ({
|
|
196
196
|
columns,
|
197
197
|
data,
|
198
198
|
classNames,
|
199
|
+
headerless,
|
199
200
|
...props
|
200
201
|
}) => {
|
201
202
|
var _a, _b;
|
@@ -212,7 +213,7 @@ var SimpleTable = ({
|
|
212
213
|
classNames
|
213
214
|
)
|
214
215
|
},
|
215
|
-
props.isLoading ? /* @__PURE__ */ React3.createElement(Skeleton, { className: "h-[130px] w-full" }) : /* @__PURE__ */ React3.createElement("div", { className: "hawa-rounded" }, /* @__PURE__ */ React3.createElement(Table, null, table.getAllColumns().length > 0 && /* @__PURE__ */ React3.createElement(TableHeader, null, table.getHeaderGroups().map((headerGroup) => /* @__PURE__ */ React3.createElement(TableRow, { key: headerGroup.id }, headerGroup.headers.map((header) => {
|
216
|
+
props.isLoading ? /* @__PURE__ */ React3.createElement(Skeleton, { className: "h-[130px] w-full" }) : /* @__PURE__ */ React3.createElement("div", { className: "hawa-rounded" }, /* @__PURE__ */ React3.createElement(Table, null, !headerless && table.getAllColumns().length > 0 && /* @__PURE__ */ React3.createElement(TableHeader, null, table.getHeaderGroups().map((headerGroup) => /* @__PURE__ */ React3.createElement(TableRow, { key: headerGroup.id }, headerGroup.headers.map((header) => {
|
216
217
|
return /* @__PURE__ */ React3.createElement(
|
217
218
|
TableHead,
|
218
219
|
{
|
@@ -253,7 +254,7 @@ var SimpleTable = ({
|
|
253
254
|
className: "hawa-h-24 hawa-text-center"
|
254
255
|
},
|
255
256
|
(_b = props.texts) == null ? void 0 : _b.noData
|
256
|
-
)))))
|
257
|
+
)), props.extra)))
|
257
258
|
);
|
258
259
|
};
|
259
260
|
// Annotate the CommonJS export names for ESM import in node:
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["../../elements/simpleTable/index.ts","../../elements/simpleTable/SimpleTable.tsx","../../util/index.ts","../../elements/skeleton/Skeleton.tsx","../../elements/table/Table.tsx"],"sourcesContent":["export * from \"./SimpleTable\";\n","import * as React from \"react\";\n\nimport {\n ColumnDef,\n flexRender,\n getCoreRowModel,\n useReactTable,\n RowData\n} from \"@tanstack/react-table\";\nimport { cn } from \"@util/index\";\n\nimport { DirectionType } from \"@_types/commonTypes\";\n\nimport { Skeleton } from \"../skeleton\";\nimport {\n Table,\n TableBody,\n TableCell,\n TableHead,\n TableHeader,\n TableRow\n} from \"../table\";\n\ntype SimpleTableProps<DataProps = {}> = {\n direction?: DirectionType;\n columns: ColumnDef<DataProps>[];\n data: DataProps[];\n condensed?: boolean;\n isLoading?: boolean;\n defaultSort?: string;\n classNames?: string;\n texts?: {\n searchPlaceholder?: string;\n noData?: any;\n page?: string;\n filter?: string;\n of?: string;\n total?: string;\n };\n};\n\ndeclare module \"@tanstack/table-core\" {\n interface ColumnMeta<TData extends RowData, TValue> {\n padding?: \"condensed\" | \"default\" | \"noPadding\";\n sortable?: boolean;\n hidden?: boolean;\n }\n}\nexport const SimpleTable = <DataProps extends {}>({\n columns,\n data,\n classNames,\n ...props\n}: SimpleTableProps<DataProps>) => {\n const table = useReactTable({\n data,\n columns,\n getCoreRowModel: getCoreRowModel()\n });\n return (\n <div\n className={cn(\n \"hawa-flex hawa-w-full hawa-flex-col hawa-gap-4\",\n classNames\n )}\n >\n {props.isLoading ? (\n <Skeleton className=\"h-[130px] w-full\" />\n ) : (\n <div className=\"hawa-rounded\">\n <Table>\n {table.getAllColumns().length > 0 && (\n <TableHeader>\n {table.getHeaderGroups().map((headerGroup) => (\n <TableRow key={headerGroup.id}>\n {headerGroup.headers.map((header) => {\n return (\n <TableHead\n condensed={props.condensed}\n dir={props.direction}\n key={header.id}\n >\n {header.isPlaceholder\n ? null\n : flexRender(\n header.column.columnDef.header,\n header.getContext()\n )}\n </TableHead>\n );\n })}\n </TableRow>\n ))}\n </TableHeader>\n )}\n <TableBody>\n {table.getRowModel().rows?.length ? (\n table.getRowModel().rows.map((row) => (\n <TableRow\n key={row.id}\n data-state={row.getIsSelected() && \"selected\"}\n >\n {row.getVisibleCells().map((cell) => (\n <TableCell\n dir={props.direction}\n padding={\n props.condensed\n ? \"condensed\"\n : cell.column.columnDef.meta?.padding\n }\n key={cell.id}\n >\n {flexRender(\n cell.column.columnDef.cell,\n cell.getContext()\n )}\n </TableCell>\n ))}\n </TableRow>\n ))\n ) : (\n <TableRow>\n <TableCell\n colSpan={columns.length}\n className=\"hawa-h-24 hawa-text-center\"\n >\n {props.texts?.noData}\n </TableCell>\n </TableRow>\n )}\n </TableBody>\n </Table>\n </div>\n )}\n </div>\n );\n};\n","import { clsx, type ClassValue } from \"clsx\";\nimport { twMerge } from \"tailwind-merge\";\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}\n\ntype Palette = {\n name: string;\n colors: {\n [key: number]: string;\n };\n};\ntype Rgb = {\n r: number;\n g: number;\n b: number;\n};\nfunction hexToRgb(hex: string): Rgb | null {\n const sanitizedHex = hex.replaceAll(\"##\", \"#\");\n const colorParts = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(\n sanitizedHex\n );\n\n if (!colorParts) {\n return null;\n }\n\n const [, r, g, b] = colorParts;\n\n return {\n r: parseInt(r, 16),\n g: parseInt(g, 16),\n b: parseInt(b, 16)\n } as Rgb;\n}\n\nfunction rgbToHex(r: number, g: number, b: number): string {\n const toHex = (c: number) => `0${c.toString(16)}`.slice(-2);\n return `#${toHex(r)}${toHex(g)}${toHex(b)}`;\n}\n\nexport function getTextColor(color: string): \"#FFF\" | \"#333\" {\n const rgbColor = hexToRgb(color);\n\n if (!rgbColor) {\n return \"#333\";\n }\n\n const { r, g, b } = rgbColor;\n const luma = 0.2126 * r + 0.7152 * g + 0.0722 * b;\n\n return luma < 120 ? \"#FFF\" : \"#333\";\n}\n\nfunction lighten(hex: string, intensity: number): string {\n const color = hexToRgb(`#${hex}`);\n\n if (!color) {\n return \"\";\n }\n\n const r = Math.round(color.r + (255 - color.r) * intensity);\n const g = Math.round(color.g + (255 - color.g) * intensity);\n const b = Math.round(color.b + (255 - color.b) * intensity);\n\n return rgbToHex(r, g, b);\n}\n\nfunction darken(hex: string, intensity: number): string {\n const color = hexToRgb(hex);\n\n if (!color) {\n return \"\";\n }\n\n const r = Math.round(color.r * intensity);\n const g = Math.round(color.g * intensity);\n const b = Math.round(color.b * intensity);\n\n return rgbToHex(r, g, b);\n}\nconst parseColor = (color: any) => {\n if (color.startsWith(\"#\")) {\n // Convert hex to RGB\n let r = parseInt(color.slice(1, 3), 16);\n let g = parseInt(color.slice(3, 5), 16);\n let b = parseInt(color.slice(5, 7), 16);\n return [r, g, b];\n } else if (color.startsWith(\"rgb\")) {\n // Extract RGB values from rgb() format\n return color.match(/\\d+/g).map(Number);\n }\n // Default to white if format is unrecognized\n return [255, 255, 255];\n};\nexport const calculateLuminance = (color: any) => {\n const [r, g, b] = parseColor(color)?.map((c: any) => {\n c /= 255;\n return c <= 0.03928 ? c / 12.92 : ((c + 0.055) / 1.055) ** 2.4;\n });\n return 0.2126 * r + 0.7152 * g + 0.0722 * b;\n};\n\nfunction getPallette(baseColor: string): Palette {\n const name = baseColor;\n\n const response: Palette = {\n name,\n colors: {\n 500: `#${baseColor}`.replace(\"##\", \"#\")\n }\n };\n\n const intensityMap: {\n [key: number]: number;\n } = {\n 50: 0.95,\n 100: 0.9,\n 200: 0.75,\n 300: 0.6,\n 400: 0.3,\n 600: 0.9,\n 700: 0.75,\n 800: 0.6,\n 900: 0.49\n };\n\n [50, 100, 200, 300, 400].forEach((level) => {\n response.colors[level] = lighten(baseColor, intensityMap[level]);\n });\n [600, 700, 800, 900].forEach((level) => {\n response.colors[level] = darken(baseColor, intensityMap[level]);\n });\n\n return response as Palette;\n}\n\nexport { getPallette };\n\n// const hexToRgb = (hex) => {\n// let d = hex?.split(\"#\")[1];\n// var aRgbHex = d?.match(/.{1,2}/g);\n// var aRgb = [\n// parseInt(aRgbHex[0], 16),\n// parseInt(aRgbHex[1], 16),\n// parseInt(aRgbHex[2], 16)\n// ];\n// return aRgb;\n// };\n// const getTextColor = (backColor) => {\n// let rgbArray = hexToRgb(backColor);\n// if (rgbArray[0] * 0.299 + rgbArray[1] * 0.587 + rgbArray[2] * 0.114 > 186) {\n// return \"#000000\";\n// } else {\n// return \"#ffffff\";\n// }\n// };\n// const replaceAt = function (string, index, replacement) {\n// // if (replacement == \"\" || replacement == \" \") {\n// // return (\n// // string.substring(0, index) +\n// // string.substring(index + replacement.length )\n// // );\n// // }\n// const replaced = string.substring(0, index) + replacement + string.substring(index + 1)\n// return replaced\n// };\n\n// export { hexToRgb, getTextColor, replaceAt };\n","import React from \"react\";\n\nimport { cn } from \"@util/index\";\n\ninterface SkeletonProps extends React.HTMLAttributes<HTMLDivElement> {\n className?: string;\n animation?: \"none\" | \"pulse\" | \"shimmer\";\n content?: any;\n fade?: \"top\" | \"bottom\" | \"left\" | \"right\";\n}\n\nfunction Skeleton({\n className,\n content,\n animation = \"pulse\",\n fade,\n ...props\n}: SkeletonProps) {\n const animationStyles = {\n none: \"hawa-rounded hawa-bg-muted\",\n pulse: \"hawa-animate-pulse hawa-rounded hawa-bg-muted\",\n shimmer:\n \"hawa-space-y-5 hawa-rounded hawa-bg-muted hawa-p-4 hawa-relative before:hawa-absolute before:hawa-inset-0 before:hawa--translate-x-full before:hawa-animate-[shimmer_2s_infinite] before:hawa-bg-gradient-to-r before:hawa-from-transparent before:hawa-via-gray-300/40 dark:before:hawa-via-white/10 before:hawa-to-transparent hawa-isolate hawa-overflow-hidden before:hawa-border-t before:hawa-border-rose-100/10\"\n };\n const fadeStyle = {\n bottom: \"hawa-mask-fade-bottom\",\n top: \"hawa-mask-fade-top\",\n right: \"hawa-mask-fade-right\",\n left: \"hawa-mask-fade-left \"\n };\n\n return (\n <div\n className={cn(\n animationStyles[animation],\n content &&\n \"hawa-flex hawa-flex-col hawa-items-center hawa-justify-center\",\n fade && fadeStyle[fade],\n className\n )}\n {...props}\n >\n {content && content}\n </div>\n );\n}\n\nexport { Skeleton };\n","import * as React from \"react\";\n\nimport { cn } from \"@util/index\";\n\nconst Table = React.forwardRef<\n HTMLTableElement,\n React.HTMLAttributes<HTMLTableElement>\n>(({ className, ...props }, ref) => (\n <div className=\"hawa-relative hawa-w-full hawa-overflow-auto hawa-rounded hawa-border\">\n <table\n ref={ref}\n className={cn(\"hawa-w-full hawa-caption-bottom hawa-text-sm\", className)}\n {...props}\n />\n </div>\n));\nTable.displayName = \"Table\";\n\nconst TableHeader = React.forwardRef<\n HTMLTableSectionElement,\n React.HTMLAttributes<HTMLTableSectionElement>\n>(({ className, ...props }, ref) => (\n <thead\n ref={ref}\n className={cn(\"[&_tr]:hawa-border-b\", \"hawa-bg-muted/50\", className)}\n {...props}\n />\n));\nTableHeader.displayName = \"TableHeader\";\n\ninterface TableHeadProps extends React.ThHTMLAttributes<HTMLTableCellElement> {\n clickable?: boolean;\n condensed?: boolean;\n}\n\nconst TableHead = React.forwardRef<HTMLTableCellElement, TableHeadProps>(\n ({ className, condensed, clickable, dir, ...props }, ref) => (\n <th\n ref={ref}\n className={cn(\n \"hawa-bg-muted/60 hawa-text-start hawa-align-middle hawa-font-medium hawa-text-muted-foreground dark:hawa-bg-muted/40 [&:has([role=checkbox])]:hawa-pr-0 [&:not(:last-child)&:not(:first-child)]:hawa-border-x\",\n dir === \"rtl\"\n ? \"[&:not(:last-child)]:hawa-border-l\"\n : \"[&:not(:last-child)]:hawa-border-r\",\n condensed ? \"hawa-h-8\" : \"hawa-h-12\",\n clickable ? \"hawa-px-1\" : \"hawa-px-4\", //First and last columns\n clickable\n ? \" [&:not(:last-child)&:not(:first-child)]:hawa-p-1\"\n : \"hawa-px-4\", //Columns in between\n className\n )}\n {...props}\n />\n )\n);\nTableHead.displayName = \"TableHead\";\n\nconst TableBody = React.forwardRef<\n HTMLTableSectionElement,\n React.HTMLAttributes<HTMLTableSectionElement>\n>(({ className, ...props }, ref) => (\n <tbody ref={ref} className={cn(\"hawa-border-none\", className)} {...props} />\n));\nTableBody.displayName = \"TableBody\";\n\nconst TableFooter = React.forwardRef<\n HTMLTableSectionElement,\n React.HTMLAttributes<HTMLTableSectionElement>\n>(({ className, ...props }, ref) => (\n <tfoot\n ref={ref}\n className={cn(\n \"hawa-bg-primary hawa-font-medium hawa-text-primary-foreground\",\n className\n )}\n {...props}\n />\n));\nTableFooter.displayName = \"TableFooter\";\n\nconst TableRow = React.forwardRef<\n HTMLTableRowElement,\n React.HTMLAttributes<HTMLTableRowElement>\n>(({ className, ...props }, ref) => (\n <tr\n ref={ref}\n className={cn(\n \"hawa-bg-background hawa-transition-colors data-[state=selected]:hawa-bg-muted\",\n \"[&:not(:last-child)&:not(:first-child)]:hawa-border-y\",\n \"[&:not(:last-child)]:hawa-border-b\",\n\n className\n )}\n {...props}\n />\n));\nTableRow.displayName = \"TableRow\";\n\ninterface TableCellProps extends React.TdHTMLAttributes<HTMLTableCellElement> {\n condensed?: boolean;\n enablePadding?: boolean;\n padding?: \"condensed\" | \"default\" | \"noPadding\";\n}\n\nconst TableCell = React.forwardRef<HTMLTableCellElement, TableCellProps>(\n ({ className, enablePadding = true, padding = \"default\", ...props }, ref) => {\n let paddingStyles = {\n condensed: \"hawa-p-0 hawa-px-4\",\n default: \"hawa-p-4\",\n noPadding: \"hawa-p-0\"\n };\n\n return (\n <td\n ref={ref}\n className={cn(\n paddingStyles[padding],\n // \"border-x\",\n // enablePadding ? \"hawa-p-4\" : \"hawa-p-0\",\n // props.disablePadding ? \"hawa-p-0\" : \"hawa-p-4\",\n // props.condensed ? \"hawa-p-0 hawa-px-4\" : \"hawa-p-4\",\n \"hawa-align-middle [&:has([role=checkbox])]:hawa-pr-0 \",\n \"[&:not(:last-child)&:not(:first-child)]:hawa-border-x\",\n // \"[&:not(:last-child)]:hawa-border-r\",\n props.dir === \"rtl\"\n ? \"[&:not(:last-child)]:hawa-border-l\"\n : \"[&:not(:last-child)]:hawa-border-r\",\n className\n )}\n {...props}\n />\n );\n }\n);\nTableCell.displayName = \"TableCell\";\n\nconst TableCaption = React.forwardRef<\n HTMLTableCaptionElement,\n React.HTMLAttributes<HTMLTableCaptionElement>\n>(({ className, ...props }, ref) => (\n <caption\n ref={ref}\n className={cn(\n \"hawa-mt-4 hawa-text-sm hawa-text-muted-foreground\",\n className\n )}\n {...props}\n />\n));\nTableCaption.displayName = \"TableCaption\";\n\nexport {\n Table,\n TableHeader,\n TableHead,\n TableBody,\n TableFooter,\n TableRow,\n TableCell,\n TableCaption\n};\n"],"mappings":"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","names":["React","React","React","_a"]}
|
1
|
+
{"version":3,"sources":["../../elements/simpleTable/index.ts","../../elements/simpleTable/SimpleTable.tsx","../../util/index.ts","../../elements/skeleton/Skeleton.tsx","../../elements/table/Table.tsx"],"sourcesContent":["export * from \"./SimpleTable\";\n","import * as React from \"react\";\n\nimport {\n ColumnDef,\n flexRender,\n getCoreRowModel,\n useReactTable,\n RowData\n} from \"@tanstack/react-table\";\nimport { cn } from \"@util/index\";\n\nimport { DirectionType } from \"@_types/commonTypes\";\n\nimport { Skeleton } from \"../skeleton\";\nimport {\n Table,\n TableBody,\n TableCell,\n TableHead,\n TableHeader,\n TableRow\n} from \"../table\";\n\ntype SimpleTableProps<DataProps = {}> = {\n direction?: DirectionType;\n columns: ColumnDef<DataProps>[];\n headerless?: boolean;\n data: DataProps[];\n condensed?: boolean;\n isLoading?: boolean;\n defaultSort?: string;\n classNames?: string;\n extra?: React.ReactNode;\n texts?: {\n searchPlaceholder?: string;\n noData?: any;\n page?: string;\n filter?: string;\n of?: string;\n total?: string;\n };\n};\n\ndeclare module \"@tanstack/table-core\" {\n interface ColumnMeta<TData extends RowData, TValue> {\n padding?: \"condensed\" | \"default\" | \"noPadding\";\n sortable?: boolean;\n hidden?: boolean;\n }\n}\nexport const SimpleTable = <DataProps extends {}>({\n columns,\n data,\n classNames,\n headerless,\n ...props\n}: SimpleTableProps<DataProps>) => {\n const table = useReactTable({\n data,\n columns,\n getCoreRowModel: getCoreRowModel()\n });\n return (\n <div\n className={cn(\n \"hawa-flex hawa-w-full hawa-flex-col hawa-gap-4\",\n classNames\n )}\n >\n {props.isLoading ? (\n <Skeleton className=\"h-[130px] w-full\" />\n ) : (\n <div className=\"hawa-rounded\">\n <Table>\n {!headerless && table.getAllColumns().length > 0 && (\n <TableHeader>\n {table.getHeaderGroups().map((headerGroup) => (\n <TableRow key={headerGroup.id}>\n {headerGroup.headers.map((header) => {\n return (\n <TableHead\n condensed={props.condensed}\n dir={props.direction}\n key={header.id}\n >\n {header.isPlaceholder\n ? null\n : flexRender(\n header.column.columnDef.header,\n header.getContext()\n )}\n </TableHead>\n );\n })}\n </TableRow>\n ))}\n </TableHeader>\n )}\n\n <TableBody>\n {table.getRowModel().rows?.length ? (\n table.getRowModel().rows.map((row) => (\n <TableRow\n key={row.id}\n data-state={row.getIsSelected() && \"selected\"}\n >\n {row.getVisibleCells().map((cell) => (\n <TableCell\n dir={props.direction}\n padding={\n props.condensed\n ? \"condensed\"\n : cell.column.columnDef.meta?.padding\n }\n key={cell.id}\n >\n {flexRender(\n cell.column.columnDef.cell,\n cell.getContext()\n )}\n </TableCell>\n ))}\n </TableRow>\n ))\n ) : (\n <TableRow>\n <TableCell\n colSpan={columns.length}\n className=\"hawa-h-24 hawa-text-center\"\n >\n {props.texts?.noData}\n </TableCell>\n </TableRow>\n )}\n {props.extra}\n </TableBody>\n </Table>\n </div>\n )}\n </div>\n );\n};\n","import { clsx, type ClassValue } from \"clsx\";\nimport { twMerge } from \"tailwind-merge\";\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}\n\ntype Palette = {\n name: string;\n colors: {\n [key: number]: string;\n };\n};\ntype Rgb = {\n r: number;\n g: number;\n b: number;\n};\nfunction hexToRgb(hex: string): Rgb | null {\n const sanitizedHex = hex.replaceAll(\"##\", \"#\");\n const colorParts = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(\n sanitizedHex\n );\n\n if (!colorParts) {\n return null;\n }\n\n const [, r, g, b] = colorParts;\n\n return {\n r: parseInt(r, 16),\n g: parseInt(g, 16),\n b: parseInt(b, 16)\n } as Rgb;\n}\n\nfunction rgbToHex(r: number, g: number, b: number): string {\n const toHex = (c: number) => `0${c.toString(16)}`.slice(-2);\n return `#${toHex(r)}${toHex(g)}${toHex(b)}`;\n}\n\nexport function getTextColor(color: string): \"#FFF\" | \"#333\" {\n const rgbColor = hexToRgb(color);\n\n if (!rgbColor) {\n return \"#333\";\n }\n\n const { r, g, b } = rgbColor;\n const luma = 0.2126 * r + 0.7152 * g + 0.0722 * b;\n\n return luma < 120 ? \"#FFF\" : \"#333\";\n}\n\nfunction lighten(hex: string, intensity: number): string {\n const color = hexToRgb(`#${hex}`);\n\n if (!color) {\n return \"\";\n }\n\n const r = Math.round(color.r + (255 - color.r) * intensity);\n const g = Math.round(color.g + (255 - color.g) * intensity);\n const b = Math.round(color.b + (255 - color.b) * intensity);\n\n return rgbToHex(r, g, b);\n}\n\nfunction darken(hex: string, intensity: number): string {\n const color = hexToRgb(hex);\n\n if (!color) {\n return \"\";\n }\n\n const r = Math.round(color.r * intensity);\n const g = Math.round(color.g * intensity);\n const b = Math.round(color.b * intensity);\n\n return rgbToHex(r, g, b);\n}\nconst parseColor = (color: any) => {\n if (color.startsWith(\"#\")) {\n // Convert hex to RGB\n let r = parseInt(color.slice(1, 3), 16);\n let g = parseInt(color.slice(3, 5), 16);\n let b = parseInt(color.slice(5, 7), 16);\n return [r, g, b];\n } else if (color.startsWith(\"rgb\")) {\n // Extract RGB values from rgb() format\n return color.match(/\\d+/g).map(Number);\n }\n // Default to white if format is unrecognized\n return [255, 255, 255];\n};\nexport const calculateLuminance = (color: any) => {\n const [r, g, b] = parseColor(color)?.map((c: any) => {\n c /= 255;\n return c <= 0.03928 ? c / 12.92 : ((c + 0.055) / 1.055) ** 2.4;\n });\n return 0.2126 * r + 0.7152 * g + 0.0722 * b;\n};\n\nfunction getPallette(baseColor: string): Palette {\n const name = baseColor;\n\n const response: Palette = {\n name,\n colors: {\n 500: `#${baseColor}`.replace(\"##\", \"#\")\n }\n };\n\n const intensityMap: {\n [key: number]: number;\n } = {\n 50: 0.95,\n 100: 0.9,\n 200: 0.75,\n 300: 0.6,\n 400: 0.3,\n 600: 0.9,\n 700: 0.75,\n 800: 0.6,\n 900: 0.49\n };\n\n [50, 100, 200, 300, 400].forEach((level) => {\n response.colors[level] = lighten(baseColor, intensityMap[level]);\n });\n [600, 700, 800, 900].forEach((level) => {\n response.colors[level] = darken(baseColor, intensityMap[level]);\n });\n\n return response as Palette;\n}\n\nexport { getPallette };\n\n// const hexToRgb = (hex) => {\n// let d = hex?.split(\"#\")[1];\n// var aRgbHex = d?.match(/.{1,2}/g);\n// var aRgb = [\n// parseInt(aRgbHex[0], 16),\n// parseInt(aRgbHex[1], 16),\n// parseInt(aRgbHex[2], 16)\n// ];\n// return aRgb;\n// };\n// const getTextColor = (backColor) => {\n// let rgbArray = hexToRgb(backColor);\n// if (rgbArray[0] * 0.299 + rgbArray[1] * 0.587 + rgbArray[2] * 0.114 > 186) {\n// return \"#000000\";\n// } else {\n// return \"#ffffff\";\n// }\n// };\n// const replaceAt = function (string, index, replacement) {\n// // if (replacement == \"\" || replacement == \" \") {\n// // return (\n// // string.substring(0, index) +\n// // string.substring(index + replacement.length )\n// // );\n// // }\n// const replaced = string.substring(0, index) + replacement + string.substring(index + 1)\n// return replaced\n// };\n\n// export { hexToRgb, getTextColor, replaceAt };\n","import React from \"react\";\n\nimport { cn } from \"@util/index\";\n\ninterface SkeletonProps extends React.HTMLAttributes<HTMLDivElement> {\n className?: string;\n animation?: \"none\" | \"pulse\" | \"shimmer\";\n content?: any;\n fade?: \"top\" | \"bottom\" | \"left\" | \"right\";\n}\n\nfunction Skeleton({\n className,\n content,\n animation = \"pulse\",\n fade,\n ...props\n}: SkeletonProps) {\n const animationStyles = {\n none: \"hawa-rounded hawa-bg-muted\",\n pulse: \"hawa-animate-pulse hawa-rounded hawa-bg-muted\",\n shimmer:\n \"hawa-space-y-5 hawa-rounded hawa-bg-muted hawa-p-4 hawa-relative before:hawa-absolute before:hawa-inset-0 before:hawa--translate-x-full before:hawa-animate-[shimmer_2s_infinite] before:hawa-bg-gradient-to-r before:hawa-from-transparent before:hawa-via-gray-300/40 dark:before:hawa-via-white/10 before:hawa-to-transparent hawa-isolate hawa-overflow-hidden before:hawa-border-t before:hawa-border-rose-100/10\"\n };\n const fadeStyle = {\n bottom: \"hawa-mask-fade-bottom\",\n top: \"hawa-mask-fade-top\",\n right: \"hawa-mask-fade-right\",\n left: \"hawa-mask-fade-left \"\n };\n\n return (\n <div\n className={cn(\n animationStyles[animation],\n content &&\n \"hawa-flex hawa-flex-col hawa-items-center hawa-justify-center\",\n fade && fadeStyle[fade],\n className\n )}\n {...props}\n >\n {content && content}\n </div>\n );\n}\n\nexport { Skeleton };\n","import * as React from \"react\";\n\nimport { cn } from \"@util/index\";\n\nconst Table = React.forwardRef<\n HTMLTableElement,\n React.HTMLAttributes<HTMLTableElement>\n>(({ className, ...props }, ref) => (\n <div className=\"hawa-relative hawa-w-full hawa-overflow-auto hawa-rounded hawa-border\">\n <table\n ref={ref}\n className={cn(\"hawa-w-full hawa-caption-bottom hawa-text-sm\", className)}\n {...props}\n />\n </div>\n));\nTable.displayName = \"Table\";\n\nconst TableHeader = React.forwardRef<\n HTMLTableSectionElement,\n React.HTMLAttributes<HTMLTableSectionElement>\n>(({ className, ...props }, ref) => (\n <thead\n ref={ref}\n className={cn(\"[&_tr]:hawa-border-b\", \"hawa-bg-muted/50\", className)}\n {...props}\n />\n));\nTableHeader.displayName = \"TableHeader\";\n\ninterface TableHeadProps extends React.ThHTMLAttributes<HTMLTableCellElement> {\n clickable?: boolean;\n condensed?: boolean;\n}\n\nconst TableHead = React.forwardRef<HTMLTableCellElement, TableHeadProps>(\n ({ className, condensed, clickable, dir, ...props }, ref) => (\n <th\n ref={ref}\n className={cn(\n \"hawa-bg-muted/60 hawa-text-start hawa-align-middle hawa-font-medium hawa-text-muted-foreground dark:hawa-bg-muted/40 [&:has([role=checkbox])]:hawa-pr-0 [&:not(:last-child)&:not(:first-child)]:hawa-border-x\",\n dir === \"rtl\"\n ? \"[&:not(:last-child)]:hawa-border-l\"\n : \"[&:not(:last-child)]:hawa-border-r\",\n condensed ? \"hawa-h-8\" : \"hawa-h-12\",\n clickable ? \"hawa-px-1\" : \"hawa-px-4\", //First and last columns\n clickable\n ? \" [&:not(:last-child)&:not(:first-child)]:hawa-p-1\"\n : \"hawa-px-4\", //Columns in between\n className\n )}\n {...props}\n />\n )\n);\nTableHead.displayName = \"TableHead\";\n\nconst TableBody = React.forwardRef<\n HTMLTableSectionElement,\n React.HTMLAttributes<HTMLTableSectionElement>\n>(({ className, ...props }, ref) => (\n <tbody ref={ref} className={cn(\"hawa-border-none\", className)} {...props} />\n));\nTableBody.displayName = \"TableBody\";\n\nconst TableFooter = React.forwardRef<\n HTMLTableSectionElement,\n React.HTMLAttributes<HTMLTableSectionElement>\n>(({ className, ...props }, ref) => (\n <tfoot\n ref={ref}\n className={cn(\n \"hawa-bg-primary hawa-font-medium hawa-text-primary-foreground\",\n className\n )}\n {...props}\n />\n));\nTableFooter.displayName = \"TableFooter\";\n\nconst TableRow = React.forwardRef<\n HTMLTableRowElement,\n React.HTMLAttributes<HTMLTableRowElement>\n>(({ className, ...props }, ref) => (\n <tr\n ref={ref}\n className={cn(\n \"hawa-bg-background hawa-transition-colors data-[state=selected]:hawa-bg-muted\",\n \"[&:not(:last-child)&:not(:first-child)]:hawa-border-y\",\n \"[&:not(:last-child)]:hawa-border-b\",\n\n className\n )}\n {...props}\n />\n));\nTableRow.displayName = \"TableRow\";\n\ninterface TableCellProps extends React.TdHTMLAttributes<HTMLTableCellElement> {\n condensed?: boolean;\n enablePadding?: boolean;\n padding?: \"condensed\" | \"default\" | \"noPadding\";\n}\n\nconst TableCell = React.forwardRef<HTMLTableCellElement, TableCellProps>(\n ({ className, enablePadding = true, padding = \"default\", ...props }, ref) => {\n let paddingStyles = {\n condensed: \"hawa-p-0 hawa-px-4\",\n default: \"hawa-p-4\",\n noPadding: \"hawa-p-0\"\n };\n\n return (\n <td\n ref={ref}\n className={cn(\n paddingStyles[padding],\n // \"border-x\",\n // enablePadding ? \"hawa-p-4\" : \"hawa-p-0\",\n // props.disablePadding ? \"hawa-p-0\" : \"hawa-p-4\",\n // props.condensed ? \"hawa-p-0 hawa-px-4\" : \"hawa-p-4\",\n \"hawa-align-middle [&:has([role=checkbox])]:hawa-pr-0 \",\n \"[&:not(:last-child)&:not(:first-child)]:hawa-border-x\",\n // \"[&:not(:last-child)]:hawa-border-r\",\n props.dir === \"rtl\"\n ? \"[&:not(:last-child)]:hawa-border-l\"\n : \"[&:not(:last-child)]:hawa-border-r\",\n className\n )}\n {...props}\n />\n );\n }\n);\nTableCell.displayName = \"TableCell\";\n\nconst TableCaption = React.forwardRef<\n HTMLTableCaptionElement,\n React.HTMLAttributes<HTMLTableCaptionElement>\n>(({ className, ...props }, ref) => (\n <caption\n ref={ref}\n className={cn(\n \"hawa-mt-4 hawa-text-sm hawa-text-muted-foreground\",\n className\n )}\n {...props}\n />\n));\nTableCaption.displayName = \"TableCaption\";\n\nexport {\n Table,\n TableHeader,\n TableHead,\n TableBody,\n TableFooter,\n TableRow,\n TableCell,\n TableCaption\n};\n"],"mappings":"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","names":["React","React","React","_a"]}
|
@@ -165,6 +165,7 @@ var SimpleTable = ({
|
|
165
165
|
columns,
|
166
166
|
data,
|
167
167
|
classNames,
|
168
|
+
headerless,
|
168
169
|
...props
|
169
170
|
}) => {
|
170
171
|
var _a, _b;
|
@@ -181,7 +182,7 @@ var SimpleTable = ({
|
|
181
182
|
classNames
|
182
183
|
)
|
183
184
|
},
|
184
|
-
props.isLoading ? /* @__PURE__ */ React3.createElement(Skeleton, { className: "h-[130px] w-full" }) : /* @__PURE__ */ React3.createElement("div", { className: "hawa-rounded" }, /* @__PURE__ */ React3.createElement(Table, null, table.getAllColumns().length > 0 && /* @__PURE__ */ React3.createElement(TableHeader, null, table.getHeaderGroups().map((headerGroup) => /* @__PURE__ */ React3.createElement(TableRow, { key: headerGroup.id }, headerGroup.headers.map((header) => {
|
185
|
+
props.isLoading ? /* @__PURE__ */ React3.createElement(Skeleton, { className: "h-[130px] w-full" }) : /* @__PURE__ */ React3.createElement("div", { className: "hawa-rounded" }, /* @__PURE__ */ React3.createElement(Table, null, !headerless && table.getAllColumns().length > 0 && /* @__PURE__ */ React3.createElement(TableHeader, null, table.getHeaderGroups().map((headerGroup) => /* @__PURE__ */ React3.createElement(TableRow, { key: headerGroup.id }, headerGroup.headers.map((header) => {
|
185
186
|
return /* @__PURE__ */ React3.createElement(
|
186
187
|
TableHead,
|
187
188
|
{
|
@@ -222,7 +223,7 @@ var SimpleTable = ({
|
|
222
223
|
className: "hawa-h-24 hawa-text-center"
|
223
224
|
},
|
224
225
|
(_b = props.texts) == null ? void 0 : _b.noData
|
225
|
-
)))))
|
226
|
+
)), props.extra)))
|
226
227
|
);
|
227
228
|
};
|
228
229
|
export {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["../../elements/simpleTable/SimpleTable.tsx","../../util/index.ts","../../elements/skeleton/Skeleton.tsx","../../elements/table/Table.tsx"],"sourcesContent":["import * as React from \"react\";\n\nimport {\n ColumnDef,\n flexRender,\n getCoreRowModel,\n useReactTable,\n RowData\n} from \"@tanstack/react-table\";\nimport { cn } from \"@util/index\";\n\nimport { DirectionType } from \"@_types/commonTypes\";\n\nimport { Skeleton } from \"../skeleton\";\nimport {\n Table,\n TableBody,\n TableCell,\n TableHead,\n TableHeader,\n TableRow\n} from \"../table\";\n\ntype SimpleTableProps<DataProps = {}> = {\n direction?: DirectionType;\n columns: ColumnDef<DataProps>[];\n data: DataProps[];\n condensed?: boolean;\n isLoading?: boolean;\n defaultSort?: string;\n classNames?: string;\n texts?: {\n searchPlaceholder?: string;\n noData?: any;\n page?: string;\n filter?: string;\n of?: string;\n total?: string;\n };\n};\n\ndeclare module \"@tanstack/table-core\" {\n interface ColumnMeta<TData extends RowData, TValue> {\n padding?: \"condensed\" | \"default\" | \"noPadding\";\n sortable?: boolean;\n hidden?: boolean;\n }\n}\nexport const SimpleTable = <DataProps extends {}>({\n columns,\n data,\n classNames,\n ...props\n}: SimpleTableProps<DataProps>) => {\n const table = useReactTable({\n data,\n columns,\n getCoreRowModel: getCoreRowModel()\n });\n return (\n <div\n className={cn(\n \"hawa-flex hawa-w-full hawa-flex-col hawa-gap-4\",\n classNames\n )}\n >\n {props.isLoading ? (\n <Skeleton className=\"h-[130px] w-full\" />\n ) : (\n <div className=\"hawa-rounded\">\n <Table>\n {table.getAllColumns().length > 0 && (\n <TableHeader>\n {table.getHeaderGroups().map((headerGroup) => (\n <TableRow key={headerGroup.id}>\n {headerGroup.headers.map((header) => {\n return (\n <TableHead\n condensed={props.condensed}\n dir={props.direction}\n key={header.id}\n >\n {header.isPlaceholder\n ? null\n : flexRender(\n header.column.columnDef.header,\n header.getContext()\n )}\n </TableHead>\n );\n })}\n </TableRow>\n ))}\n </TableHeader>\n )}\n <TableBody>\n {table.getRowModel().rows?.length ? (\n table.getRowModel().rows.map((row) => (\n <TableRow\n key={row.id}\n data-state={row.getIsSelected() && \"selected\"}\n >\n {row.getVisibleCells().map((cell) => (\n <TableCell\n dir={props.direction}\n padding={\n props.condensed\n ? \"condensed\"\n : cell.column.columnDef.meta?.padding\n }\n key={cell.id}\n >\n {flexRender(\n cell.column.columnDef.cell,\n cell.getContext()\n )}\n </TableCell>\n ))}\n </TableRow>\n ))\n ) : (\n <TableRow>\n <TableCell\n colSpan={columns.length}\n className=\"hawa-h-24 hawa-text-center\"\n >\n {props.texts?.noData}\n </TableCell>\n </TableRow>\n )}\n </TableBody>\n </Table>\n </div>\n )}\n </div>\n );\n};\n","import { clsx, type ClassValue } from \"clsx\";\nimport { twMerge } from \"tailwind-merge\";\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}\n\ntype Palette = {\n name: string;\n colors: {\n [key: number]: string;\n };\n};\ntype Rgb = {\n r: number;\n g: number;\n b: number;\n};\nfunction hexToRgb(hex: string): Rgb | null {\n const sanitizedHex = hex.replaceAll(\"##\", \"#\");\n const colorParts = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(\n sanitizedHex\n );\n\n if (!colorParts) {\n return null;\n }\n\n const [, r, g, b] = colorParts;\n\n return {\n r: parseInt(r, 16),\n g: parseInt(g, 16),\n b: parseInt(b, 16)\n } as Rgb;\n}\n\nfunction rgbToHex(r: number, g: number, b: number): string {\n const toHex = (c: number) => `0${c.toString(16)}`.slice(-2);\n return `#${toHex(r)}${toHex(g)}${toHex(b)}`;\n}\n\nexport function getTextColor(color: string): \"#FFF\" | \"#333\" {\n const rgbColor = hexToRgb(color);\n\n if (!rgbColor) {\n return \"#333\";\n }\n\n const { r, g, b } = rgbColor;\n const luma = 0.2126 * r + 0.7152 * g + 0.0722 * b;\n\n return luma < 120 ? \"#FFF\" : \"#333\";\n}\n\nfunction lighten(hex: string, intensity: number): string {\n const color = hexToRgb(`#${hex}`);\n\n if (!color) {\n return \"\";\n }\n\n const r = Math.round(color.r + (255 - color.r) * intensity);\n const g = Math.round(color.g + (255 - color.g) * intensity);\n const b = Math.round(color.b + (255 - color.b) * intensity);\n\n return rgbToHex(r, g, b);\n}\n\nfunction darken(hex: string, intensity: number): string {\n const color = hexToRgb(hex);\n\n if (!color) {\n return \"\";\n }\n\n const r = Math.round(color.r * intensity);\n const g = Math.round(color.g * intensity);\n const b = Math.round(color.b * intensity);\n\n return rgbToHex(r, g, b);\n}\nconst parseColor = (color: any) => {\n if (color.startsWith(\"#\")) {\n // Convert hex to RGB\n let r = parseInt(color.slice(1, 3), 16);\n let g = parseInt(color.slice(3, 5), 16);\n let b = parseInt(color.slice(5, 7), 16);\n return [r, g, b];\n } else if (color.startsWith(\"rgb\")) {\n // Extract RGB values from rgb() format\n return color.match(/\\d+/g).map(Number);\n }\n // Default to white if format is unrecognized\n return [255, 255, 255];\n};\nexport const calculateLuminance = (color: any) => {\n const [r, g, b] = parseColor(color)?.map((c: any) => {\n c /= 255;\n return c <= 0.03928 ? c / 12.92 : ((c + 0.055) / 1.055) ** 2.4;\n });\n return 0.2126 * r + 0.7152 * g + 0.0722 * b;\n};\n\nfunction getPallette(baseColor: string): Palette {\n const name = baseColor;\n\n const response: Palette = {\n name,\n colors: {\n 500: `#${baseColor}`.replace(\"##\", \"#\")\n }\n };\n\n const intensityMap: {\n [key: number]: number;\n } = {\n 50: 0.95,\n 100: 0.9,\n 200: 0.75,\n 300: 0.6,\n 400: 0.3,\n 600: 0.9,\n 700: 0.75,\n 800: 0.6,\n 900: 0.49\n };\n\n [50, 100, 200, 300, 400].forEach((level) => {\n response.colors[level] = lighten(baseColor, intensityMap[level]);\n });\n [600, 700, 800, 900].forEach((level) => {\n response.colors[level] = darken(baseColor, intensityMap[level]);\n });\n\n return response as Palette;\n}\n\nexport { getPallette };\n\n// const hexToRgb = (hex) => {\n// let d = hex?.split(\"#\")[1];\n// var aRgbHex = d?.match(/.{1,2}/g);\n// var aRgb = [\n// parseInt(aRgbHex[0], 16),\n// parseInt(aRgbHex[1], 16),\n// parseInt(aRgbHex[2], 16)\n// ];\n// return aRgb;\n// };\n// const getTextColor = (backColor) => {\n// let rgbArray = hexToRgb(backColor);\n// if (rgbArray[0] * 0.299 + rgbArray[1] * 0.587 + rgbArray[2] * 0.114 > 186) {\n// return \"#000000\";\n// } else {\n// return \"#ffffff\";\n// }\n// };\n// const replaceAt = function (string, index, replacement) {\n// // if (replacement == \"\" || replacement == \" \") {\n// // return (\n// // string.substring(0, index) +\n// // string.substring(index + replacement.length )\n// // );\n// // }\n// const replaced = string.substring(0, index) + replacement + string.substring(index + 1)\n// return replaced\n// };\n\n// export { hexToRgb, getTextColor, replaceAt };\n","import React from \"react\";\n\nimport { cn } from \"@util/index\";\n\ninterface SkeletonProps extends React.HTMLAttributes<HTMLDivElement> {\n className?: string;\n animation?: \"none\" | \"pulse\" | \"shimmer\";\n content?: any;\n fade?: \"top\" | \"bottom\" | \"left\" | \"right\";\n}\n\nfunction Skeleton({\n className,\n content,\n animation = \"pulse\",\n fade,\n ...props\n}: SkeletonProps) {\n const animationStyles = {\n none: \"hawa-rounded hawa-bg-muted\",\n pulse: \"hawa-animate-pulse hawa-rounded hawa-bg-muted\",\n shimmer:\n \"hawa-space-y-5 hawa-rounded hawa-bg-muted hawa-p-4 hawa-relative before:hawa-absolute before:hawa-inset-0 before:hawa--translate-x-full before:hawa-animate-[shimmer_2s_infinite] before:hawa-bg-gradient-to-r before:hawa-from-transparent before:hawa-via-gray-300/40 dark:before:hawa-via-white/10 before:hawa-to-transparent hawa-isolate hawa-overflow-hidden before:hawa-border-t before:hawa-border-rose-100/10\"\n };\n const fadeStyle = {\n bottom: \"hawa-mask-fade-bottom\",\n top: \"hawa-mask-fade-top\",\n right: \"hawa-mask-fade-right\",\n left: \"hawa-mask-fade-left \"\n };\n\n return (\n <div\n className={cn(\n animationStyles[animation],\n content &&\n \"hawa-flex hawa-flex-col hawa-items-center hawa-justify-center\",\n fade && fadeStyle[fade],\n className\n )}\n {...props}\n >\n {content && content}\n </div>\n );\n}\n\nexport { Skeleton };\n","import * as React from \"react\";\n\nimport { cn } from \"@util/index\";\n\nconst Table = React.forwardRef<\n HTMLTableElement,\n React.HTMLAttributes<HTMLTableElement>\n>(({ className, ...props }, ref) => (\n <div className=\"hawa-relative hawa-w-full hawa-overflow-auto hawa-rounded hawa-border\">\n <table\n ref={ref}\n className={cn(\"hawa-w-full hawa-caption-bottom hawa-text-sm\", className)}\n {...props}\n />\n </div>\n));\nTable.displayName = \"Table\";\n\nconst TableHeader = React.forwardRef<\n HTMLTableSectionElement,\n React.HTMLAttributes<HTMLTableSectionElement>\n>(({ className, ...props }, ref) => (\n <thead\n ref={ref}\n className={cn(\"[&_tr]:hawa-border-b\", \"hawa-bg-muted/50\", className)}\n {...props}\n />\n));\nTableHeader.displayName = \"TableHeader\";\n\ninterface TableHeadProps extends React.ThHTMLAttributes<HTMLTableCellElement> {\n clickable?: boolean;\n condensed?: boolean;\n}\n\nconst TableHead = React.forwardRef<HTMLTableCellElement, TableHeadProps>(\n ({ className, condensed, clickable, dir, ...props }, ref) => (\n <th\n ref={ref}\n className={cn(\n \"hawa-bg-muted/60 hawa-text-start hawa-align-middle hawa-font-medium hawa-text-muted-foreground dark:hawa-bg-muted/40 [&:has([role=checkbox])]:hawa-pr-0 [&:not(:last-child)&:not(:first-child)]:hawa-border-x\",\n dir === \"rtl\"\n ? \"[&:not(:last-child)]:hawa-border-l\"\n : \"[&:not(:last-child)]:hawa-border-r\",\n condensed ? \"hawa-h-8\" : \"hawa-h-12\",\n clickable ? \"hawa-px-1\" : \"hawa-px-4\", //First and last columns\n clickable\n ? \" [&:not(:last-child)&:not(:first-child)]:hawa-p-1\"\n : \"hawa-px-4\", //Columns in between\n className\n )}\n {...props}\n />\n )\n);\nTableHead.displayName = \"TableHead\";\n\nconst TableBody = React.forwardRef<\n HTMLTableSectionElement,\n React.HTMLAttributes<HTMLTableSectionElement>\n>(({ className, ...props }, ref) => (\n <tbody ref={ref} className={cn(\"hawa-border-none\", className)} {...props} />\n));\nTableBody.displayName = \"TableBody\";\n\nconst TableFooter = React.forwardRef<\n HTMLTableSectionElement,\n React.HTMLAttributes<HTMLTableSectionElement>\n>(({ className, ...props }, ref) => (\n <tfoot\n ref={ref}\n className={cn(\n \"hawa-bg-primary hawa-font-medium hawa-text-primary-foreground\",\n className\n )}\n {...props}\n />\n));\nTableFooter.displayName = \"TableFooter\";\n\nconst TableRow = React.forwardRef<\n HTMLTableRowElement,\n React.HTMLAttributes<HTMLTableRowElement>\n>(({ className, ...props }, ref) => (\n <tr\n ref={ref}\n className={cn(\n \"hawa-bg-background hawa-transition-colors data-[state=selected]:hawa-bg-muted\",\n \"[&:not(:last-child)&:not(:first-child)]:hawa-border-y\",\n \"[&:not(:last-child)]:hawa-border-b\",\n\n className\n )}\n {...props}\n />\n));\nTableRow.displayName = \"TableRow\";\n\ninterface TableCellProps extends React.TdHTMLAttributes<HTMLTableCellElement> {\n condensed?: boolean;\n enablePadding?: boolean;\n padding?: \"condensed\" | \"default\" | \"noPadding\";\n}\n\nconst TableCell = React.forwardRef<HTMLTableCellElement, TableCellProps>(\n ({ className, enablePadding = true, padding = \"default\", ...props }, ref) => {\n let paddingStyles = {\n condensed: \"hawa-p-0 hawa-px-4\",\n default: \"hawa-p-4\",\n noPadding: \"hawa-p-0\"\n };\n\n return (\n <td\n ref={ref}\n className={cn(\n paddingStyles[padding],\n // \"border-x\",\n // enablePadding ? \"hawa-p-4\" : \"hawa-p-0\",\n // props.disablePadding ? \"hawa-p-0\" : \"hawa-p-4\",\n // props.condensed ? \"hawa-p-0 hawa-px-4\" : \"hawa-p-4\",\n \"hawa-align-middle [&:has([role=checkbox])]:hawa-pr-0 \",\n \"[&:not(:last-child)&:not(:first-child)]:hawa-border-x\",\n // \"[&:not(:last-child)]:hawa-border-r\",\n props.dir === \"rtl\"\n ? \"[&:not(:last-child)]:hawa-border-l\"\n : \"[&:not(:last-child)]:hawa-border-r\",\n className\n )}\n {...props}\n />\n );\n }\n);\nTableCell.displayName = \"TableCell\";\n\nconst TableCaption = React.forwardRef<\n HTMLTableCaptionElement,\n React.HTMLAttributes<HTMLTableCaptionElement>\n>(({ className, ...props }, ref) => (\n <caption\n ref={ref}\n className={cn(\n \"hawa-mt-4 hawa-text-sm hawa-text-muted-foreground\",\n className\n )}\n {...props}\n />\n));\nTableCaption.displayName = \"TableCaption\";\n\nexport {\n Table,\n TableHeader,\n TableHead,\n TableBody,\n TableFooter,\n TableRow,\n TableCell,\n TableCaption\n};\n"],"mappings":"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","names":["React","React","_a"]}
|
1
|
+
{"version":3,"sources":["../../elements/simpleTable/SimpleTable.tsx","../../util/index.ts","../../elements/skeleton/Skeleton.tsx","../../elements/table/Table.tsx"],"sourcesContent":["import * as React from \"react\";\n\nimport {\n ColumnDef,\n flexRender,\n getCoreRowModel,\n useReactTable,\n RowData\n} from \"@tanstack/react-table\";\nimport { cn } from \"@util/index\";\n\nimport { DirectionType } from \"@_types/commonTypes\";\n\nimport { Skeleton } from \"../skeleton\";\nimport {\n Table,\n TableBody,\n TableCell,\n TableHead,\n TableHeader,\n TableRow\n} from \"../table\";\n\ntype SimpleTableProps<DataProps = {}> = {\n direction?: DirectionType;\n columns: ColumnDef<DataProps>[];\n headerless?: boolean;\n data: DataProps[];\n condensed?: boolean;\n isLoading?: boolean;\n defaultSort?: string;\n classNames?: string;\n extra?: React.ReactNode;\n texts?: {\n searchPlaceholder?: string;\n noData?: any;\n page?: string;\n filter?: string;\n of?: string;\n total?: string;\n };\n};\n\ndeclare module \"@tanstack/table-core\" {\n interface ColumnMeta<TData extends RowData, TValue> {\n padding?: \"condensed\" | \"default\" | \"noPadding\";\n sortable?: boolean;\n hidden?: boolean;\n }\n}\nexport const SimpleTable = <DataProps extends {}>({\n columns,\n data,\n classNames,\n headerless,\n ...props\n}: SimpleTableProps<DataProps>) => {\n const table = useReactTable({\n data,\n columns,\n getCoreRowModel: getCoreRowModel()\n });\n return (\n <div\n className={cn(\n \"hawa-flex hawa-w-full hawa-flex-col hawa-gap-4\",\n classNames\n )}\n >\n {props.isLoading ? (\n <Skeleton className=\"h-[130px] w-full\" />\n ) : (\n <div className=\"hawa-rounded\">\n <Table>\n {!headerless && table.getAllColumns().length > 0 && (\n <TableHeader>\n {table.getHeaderGroups().map((headerGroup) => (\n <TableRow key={headerGroup.id}>\n {headerGroup.headers.map((header) => {\n return (\n <TableHead\n condensed={props.condensed}\n dir={props.direction}\n key={header.id}\n >\n {header.isPlaceholder\n ? null\n : flexRender(\n header.column.columnDef.header,\n header.getContext()\n )}\n </TableHead>\n );\n })}\n </TableRow>\n ))}\n </TableHeader>\n )}\n\n <TableBody>\n {table.getRowModel().rows?.length ? (\n table.getRowModel().rows.map((row) => (\n <TableRow\n key={row.id}\n data-state={row.getIsSelected() && \"selected\"}\n >\n {row.getVisibleCells().map((cell) => (\n <TableCell\n dir={props.direction}\n padding={\n props.condensed\n ? \"condensed\"\n : cell.column.columnDef.meta?.padding\n }\n key={cell.id}\n >\n {flexRender(\n cell.column.columnDef.cell,\n cell.getContext()\n )}\n </TableCell>\n ))}\n </TableRow>\n ))\n ) : (\n <TableRow>\n <TableCell\n colSpan={columns.length}\n className=\"hawa-h-24 hawa-text-center\"\n >\n {props.texts?.noData}\n </TableCell>\n </TableRow>\n )}\n {props.extra}\n </TableBody>\n </Table>\n </div>\n )}\n </div>\n );\n};\n","import { clsx, type ClassValue } from \"clsx\";\nimport { twMerge } from \"tailwind-merge\";\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}\n\ntype Palette = {\n name: string;\n colors: {\n [key: number]: string;\n };\n};\ntype Rgb = {\n r: number;\n g: number;\n b: number;\n};\nfunction hexToRgb(hex: string): Rgb | null {\n const sanitizedHex = hex.replaceAll(\"##\", \"#\");\n const colorParts = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(\n sanitizedHex\n );\n\n if (!colorParts) {\n return null;\n }\n\n const [, r, g, b] = colorParts;\n\n return {\n r: parseInt(r, 16),\n g: parseInt(g, 16),\n b: parseInt(b, 16)\n } as Rgb;\n}\n\nfunction rgbToHex(r: number, g: number, b: number): string {\n const toHex = (c: number) => `0${c.toString(16)}`.slice(-2);\n return `#${toHex(r)}${toHex(g)}${toHex(b)}`;\n}\n\nexport function getTextColor(color: string): \"#FFF\" | \"#333\" {\n const rgbColor = hexToRgb(color);\n\n if (!rgbColor) {\n return \"#333\";\n }\n\n const { r, g, b } = rgbColor;\n const luma = 0.2126 * r + 0.7152 * g + 0.0722 * b;\n\n return luma < 120 ? \"#FFF\" : \"#333\";\n}\n\nfunction lighten(hex: string, intensity: number): string {\n const color = hexToRgb(`#${hex}`);\n\n if (!color) {\n return \"\";\n }\n\n const r = Math.round(color.r + (255 - color.r) * intensity);\n const g = Math.round(color.g + (255 - color.g) * intensity);\n const b = Math.round(color.b + (255 - color.b) * intensity);\n\n return rgbToHex(r, g, b);\n}\n\nfunction darken(hex: string, intensity: number): string {\n const color = hexToRgb(hex);\n\n if (!color) {\n return \"\";\n }\n\n const r = Math.round(color.r * intensity);\n const g = Math.round(color.g * intensity);\n const b = Math.round(color.b * intensity);\n\n return rgbToHex(r, g, b);\n}\nconst parseColor = (color: any) => {\n if (color.startsWith(\"#\")) {\n // Convert hex to RGB\n let r = parseInt(color.slice(1, 3), 16);\n let g = parseInt(color.slice(3, 5), 16);\n let b = parseInt(color.slice(5, 7), 16);\n return [r, g, b];\n } else if (color.startsWith(\"rgb\")) {\n // Extract RGB values from rgb() format\n return color.match(/\\d+/g).map(Number);\n }\n // Default to white if format is unrecognized\n return [255, 255, 255];\n};\nexport const calculateLuminance = (color: any) => {\n const [r, g, b] = parseColor(color)?.map((c: any) => {\n c /= 255;\n return c <= 0.03928 ? c / 12.92 : ((c + 0.055) / 1.055) ** 2.4;\n });\n return 0.2126 * r + 0.7152 * g + 0.0722 * b;\n};\n\nfunction getPallette(baseColor: string): Palette {\n const name = baseColor;\n\n const response: Palette = {\n name,\n colors: {\n 500: `#${baseColor}`.replace(\"##\", \"#\")\n }\n };\n\n const intensityMap: {\n [key: number]: number;\n } = {\n 50: 0.95,\n 100: 0.9,\n 200: 0.75,\n 300: 0.6,\n 400: 0.3,\n 600: 0.9,\n 700: 0.75,\n 800: 0.6,\n 900: 0.49\n };\n\n [50, 100, 200, 300, 400].forEach((level) => {\n response.colors[level] = lighten(baseColor, intensityMap[level]);\n });\n [600, 700, 800, 900].forEach((level) => {\n response.colors[level] = darken(baseColor, intensityMap[level]);\n });\n\n return response as Palette;\n}\n\nexport { getPallette };\n\n// const hexToRgb = (hex) => {\n// let d = hex?.split(\"#\")[1];\n// var aRgbHex = d?.match(/.{1,2}/g);\n// var aRgb = [\n// parseInt(aRgbHex[0], 16),\n// parseInt(aRgbHex[1], 16),\n// parseInt(aRgbHex[2], 16)\n// ];\n// return aRgb;\n// };\n// const getTextColor = (backColor) => {\n// let rgbArray = hexToRgb(backColor);\n// if (rgbArray[0] * 0.299 + rgbArray[1] * 0.587 + rgbArray[2] * 0.114 > 186) {\n// return \"#000000\";\n// } else {\n// return \"#ffffff\";\n// }\n// };\n// const replaceAt = function (string, index, replacement) {\n// // if (replacement == \"\" || replacement == \" \") {\n// // return (\n// // string.substring(0, index) +\n// // string.substring(index + replacement.length )\n// // );\n// // }\n// const replaced = string.substring(0, index) + replacement + string.substring(index + 1)\n// return replaced\n// };\n\n// export { hexToRgb, getTextColor, replaceAt };\n","import React from \"react\";\n\nimport { cn } from \"@util/index\";\n\ninterface SkeletonProps extends React.HTMLAttributes<HTMLDivElement> {\n className?: string;\n animation?: \"none\" | \"pulse\" | \"shimmer\";\n content?: any;\n fade?: \"top\" | \"bottom\" | \"left\" | \"right\";\n}\n\nfunction Skeleton({\n className,\n content,\n animation = \"pulse\",\n fade,\n ...props\n}: SkeletonProps) {\n const animationStyles = {\n none: \"hawa-rounded hawa-bg-muted\",\n pulse: \"hawa-animate-pulse hawa-rounded hawa-bg-muted\",\n shimmer:\n \"hawa-space-y-5 hawa-rounded hawa-bg-muted hawa-p-4 hawa-relative before:hawa-absolute before:hawa-inset-0 before:hawa--translate-x-full before:hawa-animate-[shimmer_2s_infinite] before:hawa-bg-gradient-to-r before:hawa-from-transparent before:hawa-via-gray-300/40 dark:before:hawa-via-white/10 before:hawa-to-transparent hawa-isolate hawa-overflow-hidden before:hawa-border-t before:hawa-border-rose-100/10\"\n };\n const fadeStyle = {\n bottom: \"hawa-mask-fade-bottom\",\n top: \"hawa-mask-fade-top\",\n right: \"hawa-mask-fade-right\",\n left: \"hawa-mask-fade-left \"\n };\n\n return (\n <div\n className={cn(\n animationStyles[animation],\n content &&\n \"hawa-flex hawa-flex-col hawa-items-center hawa-justify-center\",\n fade && fadeStyle[fade],\n className\n )}\n {...props}\n >\n {content && content}\n </div>\n );\n}\n\nexport { Skeleton };\n","import * as React from \"react\";\n\nimport { cn } from \"@util/index\";\n\nconst Table = React.forwardRef<\n HTMLTableElement,\n React.HTMLAttributes<HTMLTableElement>\n>(({ className, ...props }, ref) => (\n <div className=\"hawa-relative hawa-w-full hawa-overflow-auto hawa-rounded hawa-border\">\n <table\n ref={ref}\n className={cn(\"hawa-w-full hawa-caption-bottom hawa-text-sm\", className)}\n {...props}\n />\n </div>\n));\nTable.displayName = \"Table\";\n\nconst TableHeader = React.forwardRef<\n HTMLTableSectionElement,\n React.HTMLAttributes<HTMLTableSectionElement>\n>(({ className, ...props }, ref) => (\n <thead\n ref={ref}\n className={cn(\"[&_tr]:hawa-border-b\", \"hawa-bg-muted/50\", className)}\n {...props}\n />\n));\nTableHeader.displayName = \"TableHeader\";\n\ninterface TableHeadProps extends React.ThHTMLAttributes<HTMLTableCellElement> {\n clickable?: boolean;\n condensed?: boolean;\n}\n\nconst TableHead = React.forwardRef<HTMLTableCellElement, TableHeadProps>(\n ({ className, condensed, clickable, dir, ...props }, ref) => (\n <th\n ref={ref}\n className={cn(\n \"hawa-bg-muted/60 hawa-text-start hawa-align-middle hawa-font-medium hawa-text-muted-foreground dark:hawa-bg-muted/40 [&:has([role=checkbox])]:hawa-pr-0 [&:not(:last-child)&:not(:first-child)]:hawa-border-x\",\n dir === \"rtl\"\n ? \"[&:not(:last-child)]:hawa-border-l\"\n : \"[&:not(:last-child)]:hawa-border-r\",\n condensed ? \"hawa-h-8\" : \"hawa-h-12\",\n clickable ? \"hawa-px-1\" : \"hawa-px-4\", //First and last columns\n clickable\n ? \" [&:not(:last-child)&:not(:first-child)]:hawa-p-1\"\n : \"hawa-px-4\", //Columns in between\n className\n )}\n {...props}\n />\n )\n);\nTableHead.displayName = \"TableHead\";\n\nconst TableBody = React.forwardRef<\n HTMLTableSectionElement,\n React.HTMLAttributes<HTMLTableSectionElement>\n>(({ className, ...props }, ref) => (\n <tbody ref={ref} className={cn(\"hawa-border-none\", className)} {...props} />\n));\nTableBody.displayName = \"TableBody\";\n\nconst TableFooter = React.forwardRef<\n HTMLTableSectionElement,\n React.HTMLAttributes<HTMLTableSectionElement>\n>(({ className, ...props }, ref) => (\n <tfoot\n ref={ref}\n className={cn(\n \"hawa-bg-primary hawa-font-medium hawa-text-primary-foreground\",\n className\n )}\n {...props}\n />\n));\nTableFooter.displayName = \"TableFooter\";\n\nconst TableRow = React.forwardRef<\n HTMLTableRowElement,\n React.HTMLAttributes<HTMLTableRowElement>\n>(({ className, ...props }, ref) => (\n <tr\n ref={ref}\n className={cn(\n \"hawa-bg-background hawa-transition-colors data-[state=selected]:hawa-bg-muted\",\n \"[&:not(:last-child)&:not(:first-child)]:hawa-border-y\",\n \"[&:not(:last-child)]:hawa-border-b\",\n\n className\n )}\n {...props}\n />\n));\nTableRow.displayName = \"TableRow\";\n\ninterface TableCellProps extends React.TdHTMLAttributes<HTMLTableCellElement> {\n condensed?: boolean;\n enablePadding?: boolean;\n padding?: \"condensed\" | \"default\" | \"noPadding\";\n}\n\nconst TableCell = React.forwardRef<HTMLTableCellElement, TableCellProps>(\n ({ className, enablePadding = true, padding = \"default\", ...props }, ref) => {\n let paddingStyles = {\n condensed: \"hawa-p-0 hawa-px-4\",\n default: \"hawa-p-4\",\n noPadding: \"hawa-p-0\"\n };\n\n return (\n <td\n ref={ref}\n className={cn(\n paddingStyles[padding],\n // \"border-x\",\n // enablePadding ? \"hawa-p-4\" : \"hawa-p-0\",\n // props.disablePadding ? \"hawa-p-0\" : \"hawa-p-4\",\n // props.condensed ? \"hawa-p-0 hawa-px-4\" : \"hawa-p-4\",\n \"hawa-align-middle [&:has([role=checkbox])]:hawa-pr-0 \",\n \"[&:not(:last-child)&:not(:first-child)]:hawa-border-x\",\n // \"[&:not(:last-child)]:hawa-border-r\",\n props.dir === \"rtl\"\n ? \"[&:not(:last-child)]:hawa-border-l\"\n : \"[&:not(:last-child)]:hawa-border-r\",\n className\n )}\n {...props}\n />\n );\n }\n);\nTableCell.displayName = \"TableCell\";\n\nconst TableCaption = React.forwardRef<\n HTMLTableCaptionElement,\n React.HTMLAttributes<HTMLTableCaptionElement>\n>(({ className, ...props }, ref) => (\n <caption\n ref={ref}\n className={cn(\n \"hawa-mt-4 hawa-text-sm hawa-text-muted-foreground\",\n className\n )}\n {...props}\n />\n));\nTableCaption.displayName = \"TableCaption\";\n\nexport {\n Table,\n TableHeader,\n TableHead,\n TableBody,\n TableFooter,\n TableRow,\n TableCell,\n TableCaption\n};\n"],"mappings":"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","names":["React","React","_a"]}
|