ikoncomponents 1.6.4 → 1.6.6
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 +36 -36
- package/dist/ikoncomponents/assistant-ui/Assistant.d.ts +16 -2
- package/dist/ikoncomponents/assistant-ui/Assistant.js +297 -11
- package/dist/ikoncomponents/assistant-ui/agent-dropdown.d.ts +24 -0
- package/dist/ikoncomponents/assistant-ui/agent-dropdown.js +16 -0
- package/dist/ikoncomponents/assistant-ui/agentTextChatTransport.d.ts +2 -0
- package/dist/ikoncomponents/assistant-ui/agentTextChatTransport.js +12 -2
- package/dist/ikoncomponents/assistant-ui/thread.d.ts +5 -0
- package/dist/ikoncomponents/assistant-ui/thread.js +12 -6
- package/dist/ikoncomponents/main-layout/RefreshContext.js +1 -0
- package/dist/ikoncomponents/main-layout/footer.js +1 -0
- package/dist/ikoncomponents/main-layout/header.js +1 -0
- package/dist/ikoncomponents/main-layout/index.js +1 -0
- package/dist/ikoncomponents/reload-component/index.d.ts +6 -0
- package/dist/ikoncomponents/reload-component/index.js +8 -0
- package/dist/ikoncomponents/table/DataTable/index.d.ts +2 -0
- package/dist/ikoncomponents/table/DataTable/index.js +9 -0
- package/dist/ikoncomponents/table/DataTablePageSize/index.d.ts +1 -0
- package/dist/ikoncomponents/table/DataTablePageSize/index.js +16 -0
- package/dist/ikoncomponents/table/DataTablePagination/index.d.ts +6 -0
- package/dist/ikoncomponents/table/DataTablePagination/index.js +14 -0
- package/dist/ikoncomponents/table/DataTableSearch/index.d.ts +1 -0
- package/dist/ikoncomponents/table/DataTableSearch/index.js +27 -0
- package/dist/ikoncomponents/table/component/DataTable.d.ts +14 -0
- package/dist/ikoncomponents/table/component/DataTable.js +10 -0
- package/dist/ikoncomponents/table/component/DataTablePageSize.d.ts +1 -0
- package/dist/ikoncomponents/table/component/DataTablePageSize.js +16 -0
- package/dist/ikoncomponents/table/component/DataTablePagination.d.ts +6 -0
- package/dist/ikoncomponents/table/component/DataTablePagination.js +14 -0
- package/dist/ikoncomponents/table/component/DataTableSearch.d.ts +1 -0
- package/dist/ikoncomponents/table/component/DataTableSearch.js +27 -0
- package/dist/ikoncomponents/table/index.d.ts +2 -0
- package/dist/ikoncomponents/table/index.js +12 -0
- package/dist/ikoncomponents/table/type.d.ts +24 -0
- package/dist/ikoncomponents/table/type.js +1 -0
- package/dist/index.d.ts +4 -2
- package/dist/index.js +3 -1
- package/dist/styles.css +162 -1
- package/dist/utils/api/loginService/index.js +2 -1
- package/package.json +23 -14
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { useRouter, usePathname, useSearchParams } from "next/navigation";
|
|
4
|
+
export function DataTablePageSize() {
|
|
5
|
+
const router = useRouter();
|
|
6
|
+
const pathname = usePathname();
|
|
7
|
+
const searchParams = useSearchParams();
|
|
8
|
+
const currentSize = searchParams.get("size") || "10";
|
|
9
|
+
const handleSizeChange = (e) => {
|
|
10
|
+
const params = new URLSearchParams(searchParams.toString());
|
|
11
|
+
params.set("size", e.target.value);
|
|
12
|
+
params.set("page", "1");
|
|
13
|
+
router.push(`${pathname}?${params.toString()}`);
|
|
14
|
+
};
|
|
15
|
+
return (_jsxs("div", { className: "flex items-center gap-2", children: [_jsx("span", { className: "text-sm text-muted-foreground", children: "Rows per page:" }), _jsxs("select", { className: "h-9 rounded-md border border-border bg-background text-foreground px-2 py-1 text-sm focus:outline-none focus:ring-2 focus:ring-primary", value: currentSize, onChange: handleSizeChange, children: [_jsx("option", { value: "10", children: "10" }), _jsx("option", { value: "20", children: "20" }), _jsx("option", { value: "50", children: "50" }), _jsx("option", { value: "100", children: "100" })] })] }));
|
|
16
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { useRouter, usePathname, useSearchParams } from "next/navigation";
|
|
4
|
+
export function DataTablePagination({ totalPages, currentPage }) {
|
|
5
|
+
const router = useRouter();
|
|
6
|
+
const pathname = usePathname();
|
|
7
|
+
const searchParams = useSearchParams();
|
|
8
|
+
const handlePageChange = (newPage) => {
|
|
9
|
+
const params = new URLSearchParams(searchParams.toString());
|
|
10
|
+
params.set("page", newPage.toString());
|
|
11
|
+
router.push(`${pathname}?${params.toString()}`);
|
|
12
|
+
};
|
|
13
|
+
return (_jsxs("div", { className: "flex items-center space-x-2", children: [_jsx("button", { onClick: () => handlePageChange(currentPage - 1), disabled: currentPage <= 1, className: "h-9 px-3 py-1 text-sm font-medium border border-border rounded-md bg-background text-foreground hover:bg-muted disabled:opacity-50 disabled:cursor-not-allowed transition-colors", children: "Previous" }), _jsxs("span", { className: "text-sm text-muted-foreground px-2", children: ["Page ", _jsx("span", { className: "font-semibold", children: currentPage }), " of", " ", _jsx("span", { className: "font-semibold", children: Math.max(totalPages, 1) })] }), _jsx("button", { onClick: () => handlePageChange(currentPage + 1), disabled: currentPage >= totalPages, className: "h-9 px-3 py-1 text-sm font-medium border border-border rounded-md bg-background text-foreground hover:bg-muted disabled:opacity-50 disabled:cursor-not-allowed transition-colors", children: "Next" })] }));
|
|
14
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function DataTableSearch(): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { useRouter, usePathname, useSearchParams } from "next/navigation";
|
|
4
|
+
import { useState, useEffect } from "react";
|
|
5
|
+
import { useDebounce } from "use-debounce";
|
|
6
|
+
import { Search } from "lucide-react";
|
|
7
|
+
export function DataTableSearch() {
|
|
8
|
+
const router = useRouter();
|
|
9
|
+
const pathname = usePathname();
|
|
10
|
+
const searchParams = useSearchParams();
|
|
11
|
+
const [searchTerm, setSearchTerm] = useState(searchParams.get("search") || "");
|
|
12
|
+
const [debouncedSearch] = useDebounce(searchTerm, 500);
|
|
13
|
+
useEffect(() => {
|
|
14
|
+
const params = new URLSearchParams(searchParams.toString());
|
|
15
|
+
if (debouncedSearch) {
|
|
16
|
+
params.set("search", debouncedSearch);
|
|
17
|
+
}
|
|
18
|
+
else {
|
|
19
|
+
params.delete("search");
|
|
20
|
+
}
|
|
21
|
+
if (params.get("search") !== searchParams.get("search")) {
|
|
22
|
+
params.set("page", "1");
|
|
23
|
+
router.push(`${pathname}?${params.toString()}`);
|
|
24
|
+
}
|
|
25
|
+
}, [debouncedSearch, pathname, router, searchParams]);
|
|
26
|
+
return (_jsxs("div", { className: "relative w-full max-w-sm", children: [_jsx(Search, { className: "absolute left-2.5 top-1/2 -translate-y-1/2 h-4 w-4 text-muted-foreground" }), _jsx("input", { type: "text", placeholder: "Search ...", value: searchTerm, onChange: (e) => setSearchTerm(e.target.value), className: "flex h-9 w-full rounded-md border border-border bg-transparent pl-9 pr-3 py-1 text-sm shadow-sm transition-colors text-foreground placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-primary" })] }));
|
|
27
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
export interface ColumnDef<T> {
|
|
3
|
+
header: string | (() => React.ReactNode);
|
|
4
|
+
accessorKey?: keyof T;
|
|
5
|
+
cell?: (row: T) => React.ReactNode;
|
|
6
|
+
}
|
|
7
|
+
interface DataTableProps<T> {
|
|
8
|
+
data: T[];
|
|
9
|
+
columns: ColumnDef<T>[];
|
|
10
|
+
keyExtractor: (row: T) => string | number;
|
|
11
|
+
onRowClick?: (row: T) => void;
|
|
12
|
+
}
|
|
13
|
+
export declare function DataTable<T>({ data, columns, keyExtractor, onRowClick }: DataTableProps<T>): import("react/jsx-runtime").JSX.Element;
|
|
14
|
+
export {};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { TableHeader, TableRow, TableHead, TableBody, TableCell } from "@/shadcn/table";
|
|
3
|
+
import { Table } from "lucide-react";
|
|
4
|
+
export function DataTable({ data, columns, keyExtractor, onRowClick }) {
|
|
5
|
+
return (_jsx("div", { className: "rounded-md border bg-background shadow-sm overflow-hidden", children: _jsxs(Table, { children: [_jsx(TableHeader, { children: _jsx(TableRow, { className: "bg-muted border-b border-border", children: columns.map((col, index) => (_jsx(TableHead, { className: "font-semibold text-muted-foreground", children: typeof col.header === "function" ? col.header() : col.header }, index))) }) }), _jsx(TableBody, { children: data && data.length > 0 ? (data.map((row) => (_jsx(TableRow, { onClick: () => onRowClick && onRowClick(row), className: `hover:bg-muted/50 transition-colors border-b border-border ${onRowClick ? "cursor-pointer" : ""}`, children: columns.map((col, colIndex) => (_jsx(TableCell, { className: colIndex === 0 ? "font-medium" : "", children: col.cell
|
|
6
|
+
? col.cell(row)
|
|
7
|
+
: col.accessorKey
|
|
8
|
+
? String(row[col.accessorKey] || "N/A")
|
|
9
|
+
: null }, colIndex))) }, keyExtractor(onRowClick ? row : row))))) : (_jsx(TableRow, { children: _jsx(TableCell, { colSpan: columns.length, className: "h-24 text-center text-muted-foreground", children: "No records found." }) })) })] }) }));
|
|
10
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function DataTablePageSize(): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { useRouter, usePathname, useSearchParams } from "next/navigation";
|
|
4
|
+
export function DataTablePageSize() {
|
|
5
|
+
const router = useRouter();
|
|
6
|
+
const pathname = usePathname();
|
|
7
|
+
const searchParams = useSearchParams();
|
|
8
|
+
const currentSize = searchParams.get("size") || "10";
|
|
9
|
+
const handleSizeChange = (e) => {
|
|
10
|
+
const params = new URLSearchParams(searchParams.toString());
|
|
11
|
+
params.set("size", e.target.value);
|
|
12
|
+
params.set("page", "1");
|
|
13
|
+
router.push(`${pathname}?${params.toString()}`);
|
|
14
|
+
};
|
|
15
|
+
return (_jsxs("div", { className: "flex items-center gap-2", children: [_jsx("span", { className: "text-sm text-muted-foreground", children: "Rows per page:" }), _jsxs("select", { className: "h-9 rounded-md border border-border bg-background text-foreground px-2 py-1 text-sm focus:outline-none focus:ring-2 focus:ring-primary", value: currentSize, onChange: handleSizeChange, children: [_jsx("option", { value: "10", children: "10" }), _jsx("option", { value: "20", children: "20" }), _jsx("option", { value: "50", children: "50" }), _jsx("option", { value: "100", children: "100" })] })] }));
|
|
16
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { useRouter, usePathname, useSearchParams } from "next/navigation";
|
|
4
|
+
export function DataTablePagination({ totalPages, currentPage }) {
|
|
5
|
+
const router = useRouter();
|
|
6
|
+
const pathname = usePathname();
|
|
7
|
+
const searchParams = useSearchParams();
|
|
8
|
+
const handlePageChange = (newPage) => {
|
|
9
|
+
const params = new URLSearchParams(searchParams.toString());
|
|
10
|
+
params.set("page", newPage.toString());
|
|
11
|
+
router.push(`${pathname}?${params.toString()}`);
|
|
12
|
+
};
|
|
13
|
+
return (_jsxs("div", { className: "flex items-center space-x-2", children: [_jsx("button", { onClick: () => handlePageChange(currentPage - 1), disabled: currentPage <= 1, className: "h-9 px-3 py-1 text-sm font-medium border border-border rounded-md bg-background text-foreground hover:bg-muted disabled:opacity-50 disabled:cursor-not-allowed transition-colors", children: "Previous" }), _jsxs("span", { className: "text-sm text-muted-foreground px-2", children: ["Page ", _jsx("span", { className: "font-semibold", children: currentPage }), " of", " ", _jsx("span", { className: "font-semibold", children: Math.max(totalPages, 1) })] }), _jsx("button", { onClick: () => handlePageChange(currentPage + 1), disabled: currentPage >= totalPages, className: "h-9 px-3 py-1 text-sm font-medium border border-border rounded-md bg-background text-foreground hover:bg-muted disabled:opacity-50 disabled:cursor-not-allowed transition-colors", children: "Next" })] }));
|
|
14
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function DataTableSearch(): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { useRouter, usePathname, useSearchParams } from "next/navigation";
|
|
4
|
+
import { useState, useEffect } from "react";
|
|
5
|
+
import { useDebounce } from "use-debounce";
|
|
6
|
+
import { Search } from "lucide-react";
|
|
7
|
+
export function DataTableSearch() {
|
|
8
|
+
const router = useRouter();
|
|
9
|
+
const pathname = usePathname();
|
|
10
|
+
const searchParams = useSearchParams();
|
|
11
|
+
const [searchTerm, setSearchTerm] = useState(searchParams.get("search") || "");
|
|
12
|
+
const [debouncedSearch] = useDebounce(searchTerm, 500);
|
|
13
|
+
useEffect(() => {
|
|
14
|
+
const params = new URLSearchParams(searchParams.toString());
|
|
15
|
+
if (debouncedSearch) {
|
|
16
|
+
params.set("search", debouncedSearch);
|
|
17
|
+
}
|
|
18
|
+
else {
|
|
19
|
+
params.delete("search");
|
|
20
|
+
}
|
|
21
|
+
if (params.get("search") !== searchParams.get("search")) {
|
|
22
|
+
params.set("page", "1");
|
|
23
|
+
router.push(`${pathname}?${params.toString()}`);
|
|
24
|
+
}
|
|
25
|
+
}, [debouncedSearch, pathname, router, searchParams]);
|
|
26
|
+
return (_jsxs("div", { className: "relative w-full max-w-sm", children: [_jsx(Search, { className: "absolute left-2.5 top-1/2 -translate-y-1/2 h-4 w-4 text-muted-foreground" }), _jsx("input", { type: "text", placeholder: "Search ...", value: searchTerm, onChange: (e) => setSearchTerm(e.target.value), className: "flex h-9 w-full rounded-md border border-border bg-transparent pl-9 pr-3 py-1 text-sm shadow-sm transition-colors text-foreground placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-primary" })] }));
|
|
27
|
+
}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import { DataTableLayoutProps } from "./type";
|
|
2
|
+
export declare function DataTableLayout<T>({ data, columns, keyExtractor, totalPages, currentPage, filterComponent, actionNode, onRowClick, gridComponent, isLoading, onReload, }: DataTableLayoutProps<T>): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useState } from "react";
|
|
3
|
+
import { LayoutGrid, List } from "lucide-react";
|
|
4
|
+
import { Reload } from "../reload-component";
|
|
5
|
+
import { DataTable } from "./DataTable";
|
|
6
|
+
import { DataTableSearch } from "./DataTableSearch";
|
|
7
|
+
import { DataTablePagination } from "./DataTablePagination";
|
|
8
|
+
import { DataTablePageSize } from "./DataTablePageSize";
|
|
9
|
+
export function DataTableLayout({ data, columns, keyExtractor, totalPages, currentPage, filterComponent, actionNode, onRowClick, gridComponent, isLoading = false, onReload, }) {
|
|
10
|
+
const [viewMode, setViewMode] = useState("list");
|
|
11
|
+
return (_jsxs("div", { className: "space-y-6", children: [_jsxs("div", { className: "flex flex-col sm:flex-row items-center justify-between gap-4 mb-2", children: [_jsxs("div", { className: "flex items-center gap-2", children: [_jsx(DataTableSearch, {}), filterComponent && filterComponent] }), _jsxs("div", { className: "flex items-center gap-2", children: [actionNode && actionNode, _jsxs("div", { className: "flex items-center border border-border rounded-md bg-background overflow-hidden h-9", children: [_jsx("button", { onClick: () => setViewMode("list"), className: `px-2.5 h-full flex items-center justify-center transition-colors ${viewMode === "list" ? "bg-muted text-foreground" : "text-muted-foreground hover:bg-muted/50"}`, title: "List View", children: _jsx(List, { className: "w-4 h-4" }) }), _jsx("button", { onClick: () => setViewMode("grid"), className: `px-2.5 h-full flex items-center justify-center transition-colors ${viewMode === "grid" ? "bg-muted text-foreground" : "text-muted-foreground hover:bg-muted/50"}`, title: "Grid View", children: _jsx(LayoutGrid, { className: "w-4 h-4" }) })] })] })] }), _jsxs("div", { className: "relative min-h-[300px]", children: [_jsx(Reload, { isLoading: isLoading, onReload: onReload || (() => window.location.reload()) }), _jsx("div", { className: `transition-all duration-300 ${isLoading ? 'opacity-50 pointer-events-none' : ''}`, children: viewMode === "list" ? (_jsx(DataTable, { data: data, columns: columns, keyExtractor: keyExtractor, onRowClick: onRowClick })) : ((gridComponent ? gridComponent(data) : (_jsx("div", { className: "p-12 text-center text-muted-foreground border border-border border-dashed rounded-md bg-muted/20", children: "Grid view not implemented for this component yet." })))) })] }), _jsxs("div", { className: "flex flex-col sm:flex-row items-center justify-between gap-4 pt-4 border-t border-border mt-4", children: [_jsx(DataTablePageSize, {}), _jsx(DataTablePagination, { totalPages: totalPages, currentPage: currentPage })] })] }));
|
|
12
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
export interface DataTableLayoutProps<T> {
|
|
2
|
+
data: T[];
|
|
3
|
+
columns: ColumnDef<T>[];
|
|
4
|
+
keyExtractor: (row: T) => string | number;
|
|
5
|
+
totalPages: number;
|
|
6
|
+
currentPage: number;
|
|
7
|
+
filterComponent?: React.ReactNode;
|
|
8
|
+
actionNode?: React.ReactNode;
|
|
9
|
+
onRowClick?: (row: T) => void;
|
|
10
|
+
gridComponent?: (data: T[]) => React.ReactNode;
|
|
11
|
+
isLoading?: boolean;
|
|
12
|
+
onReload?: () => void;
|
|
13
|
+
}
|
|
14
|
+
export interface ColumnDef<T> {
|
|
15
|
+
header: string | (() => React.ReactNode);
|
|
16
|
+
accessorKey?: keyof T;
|
|
17
|
+
cell?: (row: T) => React.ReactNode;
|
|
18
|
+
}
|
|
19
|
+
export interface DataTableProps<T> {
|
|
20
|
+
data: T[];
|
|
21
|
+
columns: ColumnDef<T>[];
|
|
22
|
+
keyExtractor: (row: T) => string | number;
|
|
23
|
+
onRowClick?: (row: T) => void;
|
|
24
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
package/dist/index.d.ts
CHANGED
|
@@ -60,6 +60,9 @@ export { DataTableToolbar } from "./ikoncomponents/data-table/datatable-toolbar"
|
|
|
60
60
|
export { getDataTableColumnTitle } from "./ikoncomponents/data-table/function";
|
|
61
61
|
export { DataTable } from "./ikoncomponents/data-table";
|
|
62
62
|
export type { DataTableProps, DTColumnsProps, DTExtraParamsProps, DTActionMenuProps, DataTableViewOptionsProps, DTToolBarProps, DataTableFilterProps, DataTableFacetedFilterProps, DataTablePaginationProps, DragDropHeaderProp, } from "./ikoncomponents/data-table/type";
|
|
63
|
+
export { DataTableLayout } from "./ikoncomponents/table";
|
|
64
|
+
export type { DataTableLayoutProps, ColumnDef } from "./ikoncomponents/table/type";
|
|
65
|
+
export { Reload } from "./ikoncomponents/reload-component";
|
|
63
66
|
export { EChart } from "./ikoncomponents/e-chart";
|
|
64
67
|
export { FileInput } from "./ikoncomponents/file-input";
|
|
65
68
|
export { GlowingEffect } from "./ikoncomponents/glowing-effect";
|
|
@@ -126,6 +129,7 @@ export { NewImageForm } from "./ikoncomponents/image-cropper-upload/components/n
|
|
|
126
129
|
export type { ImageFormProps } from "./ikoncomponents/image-cropper-upload/components/newImageUploadForm";
|
|
127
130
|
export { WorkInProgress } from "./ikoncomponents/work-in-progress";
|
|
128
131
|
export { CustomComboboxInput } from "./ikoncomponents/custom-combo-dropdown";
|
|
132
|
+
export { AssistantComponent } from "./ikoncomponents/assistant-ui/Assistant";
|
|
129
133
|
export { ThemeProvider } from "./utils/theme-provider";
|
|
130
134
|
export { RadiusProvider, useRadius } from "./utils/border-radius-provider";
|
|
131
135
|
export { FontProvider, useFont } from "./utils/font-provider";
|
|
@@ -136,5 +140,3 @@ export { getValidAccessToken, refreshAccessToken, decodeAccessToken, logOut } fr
|
|
|
136
140
|
export type { TokenResponse } from "./utils/token-management/types";
|
|
137
141
|
export { useIsMobile } from "./hooks/use-mobile";
|
|
138
142
|
export { useRefresh } from "./ikoncomponents/main-layout/RefreshContext";
|
|
139
|
-
export { AssistantComponent } from "./ikoncomponents/assistant-ui/Assistant";
|
|
140
|
-
export type { UserData } from "./utils/userType";
|
package/dist/index.js
CHANGED
|
@@ -55,6 +55,8 @@ export { DataTablePagination } from "./ikoncomponents/data-table/datatable-pagin
|
|
|
55
55
|
export { DataTableToolbar } from "./ikoncomponents/data-table/datatable-toolbar";
|
|
56
56
|
export { getDataTableColumnTitle } from "./ikoncomponents/data-table/function";
|
|
57
57
|
export { DataTable } from "./ikoncomponents/data-table";
|
|
58
|
+
export { DataTableLayout } from "./ikoncomponents/table";
|
|
59
|
+
export { Reload } from "./ikoncomponents/reload-component";
|
|
58
60
|
export { EChart } from "./ikoncomponents/e-chart";
|
|
59
61
|
export { FileInput } from "./ikoncomponents/file-input";
|
|
60
62
|
export { GlowingEffect } from "./ikoncomponents/glowing-effect";
|
|
@@ -106,6 +108,7 @@ export { NewCropperImg } from "./ikoncomponents/image-cropper-upload/components/
|
|
|
106
108
|
export { NewImageForm } from "./ikoncomponents/image-cropper-upload/components/newImageUploadForm";
|
|
107
109
|
export { WorkInProgress } from "./ikoncomponents/work-in-progress";
|
|
108
110
|
export { CustomComboboxInput } from "./ikoncomponents/custom-combo-dropdown";
|
|
111
|
+
export { AssistantComponent } from "./ikoncomponents/assistant-ui/Assistant";
|
|
109
112
|
export { ThemeProvider } from "./utils/theme-provider";
|
|
110
113
|
export { RadiusProvider, useRadius } from "./utils/border-radius-provider";
|
|
111
114
|
export { FontProvider, useFont } from "./utils/font-provider";
|
|
@@ -114,4 +117,3 @@ export { setCookieSession, getCookieSession, clearCookieSession, clearAllCookieS
|
|
|
114
117
|
export { getValidAccessToken, refreshAccessToken, decodeAccessToken, logOut } from "./utils/token-management";
|
|
115
118
|
export { useIsMobile } from "./hooks/use-mobile";
|
|
116
119
|
export { useRefresh } from "./ikoncomponents/main-layout/RefreshContext";
|
|
117
|
-
export { AssistantComponent } from "./ikoncomponents/assistant-ui/Assistant";
|
package/dist/styles.css
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! tailwindcss v4.1.
|
|
1
|
+
/*! tailwindcss v4.1.18 | MIT License | https://tailwindcss.com */
|
|
2
2
|
@layer properties;
|
|
3
3
|
@layer theme, base, components, utilities;
|
|
4
4
|
@layer theme {
|
|
@@ -59,11 +59,14 @@
|
|
|
59
59
|
--tracking-widest: 0.1em;
|
|
60
60
|
--leading-relaxed: 1.625;
|
|
61
61
|
--radius-xs: 0.125rem;
|
|
62
|
+
--radius-2xl: 1rem;
|
|
62
63
|
--radius-3xl: 1.5rem;
|
|
63
64
|
--ease-out: cubic-bezier(0, 0, 0.2, 1);
|
|
64
65
|
--ease-in-out: cubic-bezier(0.4, 0, 0.2, 1);
|
|
65
66
|
--animate-spin: spin 1s linear infinite;
|
|
66
67
|
--animate-pulse: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
|
|
68
|
+
--blur-md: 12px;
|
|
69
|
+
--blur-xl: 24px;
|
|
67
70
|
--default-transition-duration: 150ms;
|
|
68
71
|
--default-transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
|
|
69
72
|
--default-font-family: var(--font-geist-sans);
|
|
@@ -330,6 +333,9 @@
|
|
|
330
333
|
.left-2 {
|
|
331
334
|
left: calc(var(--spacing) * 2);
|
|
332
335
|
}
|
|
336
|
+
.left-2\.5 {
|
|
337
|
+
left: calc(var(--spacing) * 2.5);
|
|
338
|
+
}
|
|
333
339
|
.left-\[50\%\] {
|
|
334
340
|
left: 50%;
|
|
335
341
|
}
|
|
@@ -767,6 +773,9 @@
|
|
|
767
773
|
.min-h-\[60px\] {
|
|
768
774
|
min-height: 60px;
|
|
769
775
|
}
|
|
776
|
+
.min-h-\[300px\] {
|
|
777
|
+
min-height: 300px;
|
|
778
|
+
}
|
|
770
779
|
.min-h-screen {
|
|
771
780
|
min-height: 100vh;
|
|
772
781
|
}
|
|
@@ -956,6 +965,9 @@
|
|
|
956
965
|
.min-w-\[8rem\] {
|
|
957
966
|
min-width: 8rem;
|
|
958
967
|
}
|
|
968
|
+
.min-w-\[200px\] {
|
|
969
|
+
min-width: 200px;
|
|
970
|
+
}
|
|
959
971
|
.min-w-\[var\(--radix-popover-trigger-width\)\] {
|
|
960
972
|
min-width: var(--radix-popover-trigger-width);
|
|
961
973
|
}
|
|
@@ -1210,6 +1222,13 @@
|
|
|
1210
1222
|
margin-block-end: calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-y-reverse)));
|
|
1211
1223
|
}
|
|
1212
1224
|
}
|
|
1225
|
+
.space-y-6 {
|
|
1226
|
+
:where(& > :not(:last-child)) {
|
|
1227
|
+
--tw-space-y-reverse: 0;
|
|
1228
|
+
margin-block-start: calc(calc(var(--spacing) * 6) * var(--tw-space-y-reverse));
|
|
1229
|
+
margin-block-end: calc(calc(var(--spacing) * 6) * calc(1 - var(--tw-space-y-reverse)));
|
|
1230
|
+
}
|
|
1231
|
+
}
|
|
1213
1232
|
.space-x-1 {
|
|
1214
1233
|
:where(& > :not(:last-child)) {
|
|
1215
1234
|
--tw-space-x-reverse: 0;
|
|
@@ -1274,6 +1293,9 @@
|
|
|
1274
1293
|
.rounded {
|
|
1275
1294
|
border-radius: 0.25rem;
|
|
1276
1295
|
}
|
|
1296
|
+
.rounded-2xl {
|
|
1297
|
+
border-radius: var(--radius-2xl);
|
|
1298
|
+
}
|
|
1277
1299
|
.rounded-3xl {
|
|
1278
1300
|
border-radius: var(--radius-3xl);
|
|
1279
1301
|
}
|
|
@@ -1435,6 +1457,12 @@
|
|
|
1435
1457
|
.border-border {
|
|
1436
1458
|
border-color: var(--border);
|
|
1437
1459
|
}
|
|
1460
|
+
.border-border\/50 {
|
|
1461
|
+
border-color: var(--border);
|
|
1462
|
+
@supports (color: color-mix(in lab, red, red)) {
|
|
1463
|
+
border-color: color-mix(in oklab, var(--border) 50%, transparent);
|
|
1464
|
+
}
|
|
1465
|
+
}
|
|
1438
1466
|
.border-destructive {
|
|
1439
1467
|
border-color: var(--destructive);
|
|
1440
1468
|
}
|
|
@@ -1543,6 +1571,18 @@
|
|
|
1543
1571
|
.bg-background {
|
|
1544
1572
|
background-color: var(--background);
|
|
1545
1573
|
}
|
|
1574
|
+
.bg-background\/60 {
|
|
1575
|
+
background-color: var(--background);
|
|
1576
|
+
@supports (color: color-mix(in lab, red, red)) {
|
|
1577
|
+
background-color: color-mix(in oklab, var(--background) 60%, transparent);
|
|
1578
|
+
}
|
|
1579
|
+
}
|
|
1580
|
+
.bg-background\/80 {
|
|
1581
|
+
background-color: var(--background);
|
|
1582
|
+
@supports (color: color-mix(in lab, red, red)) {
|
|
1583
|
+
background-color: color-mix(in oklab, var(--background) 80%, transparent);
|
|
1584
|
+
}
|
|
1585
|
+
}
|
|
1546
1586
|
.bg-black {
|
|
1547
1587
|
background-color: var(--color-black);
|
|
1548
1588
|
}
|
|
@@ -1591,6 +1631,12 @@
|
|
|
1591
1631
|
background-color: color-mix(in oklab, var(--muted-foreground) 15%, transparent);
|
|
1592
1632
|
}
|
|
1593
1633
|
}
|
|
1634
|
+
.bg-muted\/20 {
|
|
1635
|
+
background-color: var(--muted);
|
|
1636
|
+
@supports (color: color-mix(in lab, red, red)) {
|
|
1637
|
+
background-color: color-mix(in oklab, var(--muted) 20%, transparent);
|
|
1638
|
+
}
|
|
1639
|
+
}
|
|
1594
1640
|
.bg-muted\/30 {
|
|
1595
1641
|
background-color: var(--muted);
|
|
1596
1642
|
@supports (color: color-mix(in lab, red, red)) {
|
|
@@ -1678,6 +1724,9 @@
|
|
|
1678
1724
|
.p-6 {
|
|
1679
1725
|
padding: calc(var(--spacing) * 6);
|
|
1680
1726
|
}
|
|
1727
|
+
.p-12 {
|
|
1728
|
+
padding: calc(var(--spacing) * 12);
|
|
1729
|
+
}
|
|
1681
1730
|
.p-\[3px\] {
|
|
1682
1731
|
padding: 3px;
|
|
1683
1732
|
}
|
|
@@ -1780,6 +1829,9 @@
|
|
|
1780
1829
|
.pr-2\.5 {
|
|
1781
1830
|
padding-right: calc(var(--spacing) * 2.5);
|
|
1782
1831
|
}
|
|
1832
|
+
.pr-3 {
|
|
1833
|
+
padding-right: calc(var(--spacing) * 3);
|
|
1834
|
+
}
|
|
1783
1835
|
.pr-8 {
|
|
1784
1836
|
padding-right: calc(var(--spacing) * 8);
|
|
1785
1837
|
}
|
|
@@ -1810,6 +1862,9 @@
|
|
|
1810
1862
|
.pl-8 {
|
|
1811
1863
|
padding-left: calc(var(--spacing) * 8);
|
|
1812
1864
|
}
|
|
1865
|
+
.pl-9 {
|
|
1866
|
+
padding-left: calc(var(--spacing) * 9);
|
|
1867
|
+
}
|
|
1813
1868
|
.text-center {
|
|
1814
1869
|
text-align: center;
|
|
1815
1870
|
}
|
|
@@ -2113,6 +2168,10 @@
|
|
|
2113
2168
|
--tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 1px 2px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1));
|
|
2114
2169
|
box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
|
|
2115
2170
|
}
|
|
2171
|
+
.shadow-xl {
|
|
2172
|
+
--tw-shadow: 0 20px 25px -5px var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 8px 10px -6px var(--tw-shadow-color, rgb(0 0 0 / 0.1));
|
|
2173
|
+
box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
|
|
2174
|
+
}
|
|
2116
2175
|
.shadow-xs {
|
|
2117
2176
|
--tw-shadow: 0 1px 2px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.05));
|
|
2118
2177
|
box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
|
|
@@ -2163,6 +2222,16 @@
|
|
|
2163
2222
|
.filter {
|
|
2164
2223
|
filter: var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,);
|
|
2165
2224
|
}
|
|
2225
|
+
.backdrop-blur-md {
|
|
2226
|
+
--tw-backdrop-blur: blur(var(--blur-md));
|
|
2227
|
+
-webkit-backdrop-filter: var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);
|
|
2228
|
+
backdrop-filter: var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);
|
|
2229
|
+
}
|
|
2230
|
+
.backdrop-blur-xl {
|
|
2231
|
+
--tw-backdrop-blur: blur(var(--blur-xl));
|
|
2232
|
+
-webkit-backdrop-filter: var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);
|
|
2233
|
+
backdrop-filter: var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);
|
|
2234
|
+
}
|
|
2166
2235
|
.transition {
|
|
2167
2236
|
transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to, opacity, box-shadow, transform, translate, scale, rotate, filter, -webkit-backdrop-filter, backdrop-filter, display, content-visibility, overlay, pointer-events;
|
|
2168
2237
|
transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
|
|
@@ -2286,6 +2355,9 @@
|
|
|
2286
2355
|
.slide-in-from-bottom-1 {
|
|
2287
2356
|
--tw-enter-translate-y: calc(1*var(--spacing));
|
|
2288
2357
|
}
|
|
2358
|
+
.zoom-in {
|
|
2359
|
+
--tw-enter-scale: 0;
|
|
2360
|
+
}
|
|
2289
2361
|
.group-focus-within\/menu-item\:opacity-100 {
|
|
2290
2362
|
&:is(:where(.group\/menu-item):focus-within *) {
|
|
2291
2363
|
opacity: 100%;
|
|
@@ -2811,6 +2883,16 @@
|
|
|
2811
2883
|
display: none;
|
|
2812
2884
|
}
|
|
2813
2885
|
}
|
|
2886
|
+
.hover\:scale-110 {
|
|
2887
|
+
&:hover {
|
|
2888
|
+
@media (hover: hover) {
|
|
2889
|
+
--tw-scale-x: 110%;
|
|
2890
|
+
--tw-scale-y: 110%;
|
|
2891
|
+
--tw-scale-z: 110%;
|
|
2892
|
+
scale: var(--tw-scale-x) var(--tw-scale-y);
|
|
2893
|
+
}
|
|
2894
|
+
}
|
|
2895
|
+
}
|
|
2814
2896
|
.hover\:border-primary {
|
|
2815
2897
|
&:hover {
|
|
2816
2898
|
@media (hover: hover) {
|
|
@@ -2930,6 +3012,16 @@
|
|
|
2930
3012
|
}
|
|
2931
3013
|
}
|
|
2932
3014
|
}
|
|
3015
|
+
.hover\:bg-primary\/20 {
|
|
3016
|
+
&:hover {
|
|
3017
|
+
@media (hover: hover) {
|
|
3018
|
+
background-color: var(--primary);
|
|
3019
|
+
@supports (color: color-mix(in lab, red, red)) {
|
|
3020
|
+
background-color: color-mix(in oklab, var(--primary) 20%, transparent);
|
|
3021
|
+
}
|
|
3022
|
+
}
|
|
3023
|
+
}
|
|
3024
|
+
}
|
|
2933
3025
|
.hover\:bg-primary\/75 {
|
|
2934
3026
|
&:hover {
|
|
2935
3027
|
@media (hover: hover) {
|
|
@@ -3132,6 +3224,11 @@
|
|
|
3132
3224
|
box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
|
|
3133
3225
|
}
|
|
3134
3226
|
}
|
|
3227
|
+
.focus\:ring-primary {
|
|
3228
|
+
&:focus {
|
|
3229
|
+
--tw-ring-color: var(--primary);
|
|
3230
|
+
}
|
|
3231
|
+
}
|
|
3135
3232
|
.focus\:ring-ring {
|
|
3136
3233
|
&:focus {
|
|
3137
3234
|
--tw-ring-color: var(--ring);
|
|
@@ -3153,6 +3250,12 @@
|
|
|
3153
3250
|
}
|
|
3154
3251
|
}
|
|
3155
3252
|
}
|
|
3253
|
+
.focus\:outline-none {
|
|
3254
|
+
&:focus {
|
|
3255
|
+
--tw-outline-style: none;
|
|
3256
|
+
outline-style: none;
|
|
3257
|
+
}
|
|
3258
|
+
}
|
|
3156
3259
|
.focus-visible\:z-10 {
|
|
3157
3260
|
&:focus-visible {
|
|
3158
3261
|
z-index: 10;
|
|
@@ -3206,6 +3309,11 @@
|
|
|
3206
3309
|
}
|
|
3207
3310
|
}
|
|
3208
3311
|
}
|
|
3312
|
+
.focus-visible\:ring-primary {
|
|
3313
|
+
&:focus-visible {
|
|
3314
|
+
--tw-ring-color: var(--primary);
|
|
3315
|
+
}
|
|
3316
|
+
}
|
|
3209
3317
|
.focus-visible\:ring-ring {
|
|
3210
3318
|
&:focus-visible {
|
|
3211
3319
|
--tw-ring-color: var(--ring);
|
|
@@ -3246,6 +3354,14 @@
|
|
|
3246
3354
|
outline-style: none;
|
|
3247
3355
|
}
|
|
3248
3356
|
}
|
|
3357
|
+
.active\:scale-95 {
|
|
3358
|
+
&:active {
|
|
3359
|
+
--tw-scale-x: 95%;
|
|
3360
|
+
--tw-scale-y: 95%;
|
|
3361
|
+
--tw-scale-z: 95%;
|
|
3362
|
+
scale: var(--tw-scale-x) var(--tw-scale-y);
|
|
3363
|
+
}
|
|
3364
|
+
}
|
|
3249
3365
|
.active\:bg-sidebar-accent {
|
|
3250
3366
|
&:active {
|
|
3251
3367
|
background-color: var(--sidebar-accent);
|
|
@@ -6725,6 +6841,42 @@
|
|
|
6725
6841
|
syntax: "*";
|
|
6726
6842
|
inherits: false;
|
|
6727
6843
|
}
|
|
6844
|
+
@property --tw-backdrop-blur {
|
|
6845
|
+
syntax: "*";
|
|
6846
|
+
inherits: false;
|
|
6847
|
+
}
|
|
6848
|
+
@property --tw-backdrop-brightness {
|
|
6849
|
+
syntax: "*";
|
|
6850
|
+
inherits: false;
|
|
6851
|
+
}
|
|
6852
|
+
@property --tw-backdrop-contrast {
|
|
6853
|
+
syntax: "*";
|
|
6854
|
+
inherits: false;
|
|
6855
|
+
}
|
|
6856
|
+
@property --tw-backdrop-grayscale {
|
|
6857
|
+
syntax: "*";
|
|
6858
|
+
inherits: false;
|
|
6859
|
+
}
|
|
6860
|
+
@property --tw-backdrop-hue-rotate {
|
|
6861
|
+
syntax: "*";
|
|
6862
|
+
inherits: false;
|
|
6863
|
+
}
|
|
6864
|
+
@property --tw-backdrop-invert {
|
|
6865
|
+
syntax: "*";
|
|
6866
|
+
inherits: false;
|
|
6867
|
+
}
|
|
6868
|
+
@property --tw-backdrop-opacity {
|
|
6869
|
+
syntax: "*";
|
|
6870
|
+
inherits: false;
|
|
6871
|
+
}
|
|
6872
|
+
@property --tw-backdrop-saturate {
|
|
6873
|
+
syntax: "*";
|
|
6874
|
+
inherits: false;
|
|
6875
|
+
}
|
|
6876
|
+
@property --tw-backdrop-sepia {
|
|
6877
|
+
syntax: "*";
|
|
6878
|
+
inherits: false;
|
|
6879
|
+
}
|
|
6728
6880
|
@property --tw-duration {
|
|
6729
6881
|
syntax: "*";
|
|
6730
6882
|
inherits: false;
|
|
@@ -6841,6 +6993,15 @@
|
|
|
6841
6993
|
--tw-drop-shadow-color: initial;
|
|
6842
6994
|
--tw-drop-shadow-alpha: 100%;
|
|
6843
6995
|
--tw-drop-shadow-size: initial;
|
|
6996
|
+
--tw-backdrop-blur: initial;
|
|
6997
|
+
--tw-backdrop-brightness: initial;
|
|
6998
|
+
--tw-backdrop-contrast: initial;
|
|
6999
|
+
--tw-backdrop-grayscale: initial;
|
|
7000
|
+
--tw-backdrop-hue-rotate: initial;
|
|
7001
|
+
--tw-backdrop-invert: initial;
|
|
7002
|
+
--tw-backdrop-opacity: initial;
|
|
7003
|
+
--tw-backdrop-saturate: initial;
|
|
7004
|
+
--tw-backdrop-sepia: initial;
|
|
6844
7005
|
--tw-duration: initial;
|
|
6845
7006
|
--tw-ease: initial;
|
|
6846
7007
|
--tw-content: "";
|
|
@@ -67,6 +67,7 @@ export const updateUserProfile = async ({ userName, userPassword, userPhone, use
|
|
|
67
67
|
operation: "updateUserProfile",
|
|
68
68
|
arguments_: [userName, userPassword, userPhone, userEmail, userThumbnail],
|
|
69
69
|
});
|
|
70
|
-
revalidateTag("profile");
|
|
70
|
+
// revalidateTag("profile");
|
|
71
|
+
revalidateTag("profile", "default");
|
|
71
72
|
return result.data;
|
|
72
73
|
};
|