ikoncomponents 1.2.8 → 1.2.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,7 +1,7 @@
1
1
  "use client";
2
2
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
3
  import { AlignJustify } from "lucide-react";
4
- import { CustomTabs } from "../tabs";
4
+ import { Tabs } from "../tabs";
5
5
  import { NoDataComponent } from "../no-data";
6
6
  import { UploadTab } from "../upload-tab";
7
7
  import { SheetComponent } from "../sheet";
@@ -19,5 +19,5 @@ export function ActivitySheet({ activityLogs = [] }) {
19
19
  tabContent: _jsx(UploadTab, {})
20
20
  }
21
21
  ];
22
- return (_jsx(SheetComponent, { buttonText: "", buttonIcon: _jsx(AlignJustify, {}), sheetTitle: "", sheetContent: _jsx(CustomTabs, { tabArray: tabArray, tabListClass: '' }), closeButton: true }));
22
+ return (_jsx(SheetComponent, { buttonText: "", buttonIcon: _jsx(AlignJustify, {}), sheetTitle: "", sheetContent: _jsx(Tabs, { tabArray: tabArray, tabListClass: '' }), closeButton: true }));
23
23
  }
@@ -6,9 +6,10 @@ import "react-big-calendar/lib/css/react-big-calendar.css";
6
6
  import { useState } from "react";
7
7
  import BigCalenderToolbar from "./big-calender-toolbar";
8
8
  import BigCalenderEvent from "./big-calender-event";
9
+ import { enUS } from 'date-fns/locale';
9
10
  // Localization settings
10
11
  const locales = {
11
- "en-US": require("date-fns/locale/en-US"),
12
+ "en-US": enUS,
12
13
  };
13
14
  const localizer = dateFnsLocalizer({
14
15
  format,
@@ -0,0 +1,15 @@
1
+ export interface FileUploaderProps {
2
+ label?: string;
3
+ isDrag?: boolean;
4
+ onFileSelect: (fileObj: any) => Promise<any> | void;
5
+ }
6
+ export declare const convertFileToObject: (file: File) => Promise<{
7
+ message: string;
8
+ fileName: string;
9
+ size: number;
10
+ type: string;
11
+ lastModified: number;
12
+ base64: string;
13
+ }>;
14
+ export declare function FileUploader({ label, isDrag, onFileSelect, }: FileUploaderProps): import("react/jsx-runtime").JSX.Element;
15
+ export declare function getImageFromObject(obj: any): string;
@@ -0,0 +1,69 @@
1
+ "use client";
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { useState } from "react";
4
+ import { UploadCloud, FileUp } from "lucide-react";
5
+ // --- Helper: Convert File to Object with Base64 ---
6
+ export const convertFileToObject = async (file) => {
7
+ const arrayBuffer = await file.arrayBuffer();
8
+ const base64 = btoa(String.fromCharCode(...new Uint8Array(arrayBuffer)));
9
+ return {
10
+ message: "File processed successfully",
11
+ fileName: file.name,
12
+ size: file.size,
13
+ type: file.type,
14
+ lastModified: file.lastModified,
15
+ base64: base64,
16
+ };
17
+ };
18
+ export function FileUploader({ label = "Upload File", isDrag = false, onFileSelect, }) {
19
+ const [isDragging, setIsDragging] = useState(false);
20
+ const handleFile = async (file) => {
21
+ if (!file)
22
+ return;
23
+ const fileObj = await convertFileToObject(file); // convert to object
24
+ await onFileSelect(fileObj); // pass object to parent
25
+ };
26
+ // ---- DRAG HANDLERS ----
27
+ const handleDrop = (e) => {
28
+ var _a;
29
+ if (!isDrag)
30
+ return;
31
+ e.preventDefault();
32
+ setIsDragging(false);
33
+ const file = (_a = e.dataTransfer.files) === null || _a === void 0 ? void 0 : _a[0];
34
+ if (file)
35
+ handleFile(file);
36
+ };
37
+ const handleDragOver = (e) => {
38
+ if (!isDrag)
39
+ return;
40
+ e.preventDefault();
41
+ setIsDragging(true);
42
+ };
43
+ const handleDragLeave = () => {
44
+ if (!isDrag)
45
+ return;
46
+ setIsDragging(false);
47
+ };
48
+ const handleInputChange = (e) => {
49
+ var _a;
50
+ const file = (_a = e.target.files) === null || _a === void 0 ? void 0 : _a[0];
51
+ if (file)
52
+ handleFile(file);
53
+ };
54
+ return (_jsxs("div", { className: "flex flex-col gap-2 w-full", children: [_jsx("label", { className: "text-sm font-medium", children: label }), _jsx("input", { type: "file", id: "fileInput", className: "hidden", onChange: handleInputChange }), isDrag ? (_jsx("div", { className: `border-2 border-dashed rounded-lg p-6 text-center cursor-pointer transition
55
+ ${isDragging ? "border-blue-600 bg-blue-50" : "border-gray-300"}
56
+ `, onDragOver: handleDragOver, onDragLeave: handleDragLeave, onDrop: handleDrop, onClick: () => { var _a; return (_a = document.getElementById("fileInput")) === null || _a === void 0 ? void 0 : _a.click(); }, children: _jsxs("div", { className: "flex flex-col items-center gap-3", children: [_jsx(UploadCloud, { className: "w-10 h-10 text-blue-600" }), _jsxs("p", { className: "text-gray-600", children: ["Drag & drop your file here or", " ", _jsx("span", { className: "text-blue-600 underline", children: "browse" })] })] }) })) : (
57
+ // ----- SIMPLE UPLOAD BOX -----
58
+ _jsxs("div", { className: "border rounded-lg p-4 flex flex-col items-center gap-2 cursor-pointer text-center", onClick: () => { var _a; return (_a = document.getElementById("fileInput")) === null || _a === void 0 ? void 0 : _a.click(); }, children: [_jsx(FileUp, { className: "w-8 h-8 text-blue-600" }), _jsx("span", { className: "text-blue-600 underline", children: "Browse File" })] }))] }));
59
+ }
60
+ // --- Helper Function: Recreate Image from File Object ---
61
+ export function getImageFromObject(obj) {
62
+ const byteCharacters = atob(obj.base64);
63
+ const byteNumbers = new Array(byteCharacters.length)
64
+ .fill(0)
65
+ .map((_, i) => byteCharacters.charCodeAt(i));
66
+ const byteArray = new Uint8Array(byteNumbers);
67
+ const blob = new Blob([byteArray], { type: obj.type });
68
+ return URL.createObjectURL(blob); // usable in <img src="..." />
69
+ }
@@ -3,12 +3,12 @@ import { AppBreadcrumb } from "../app-breadcrumb";
3
3
  import { ThemeToggleBtn } from "../theme-toggle-btn";
4
4
  import { Separator } from "../../shadcn/separator";
5
5
  import { SidebarTrigger } from "../../shadcn/sidebar";
6
- import { LayoutGrid, Play } from "lucide-react";
7
- import { IconButton, IconTextButton } from "../buttons";
6
+ import { Bell, LayoutGrid, Play } from "lucide-react";
7
+ import { IconButton, IconButtonWithTooltip, IconTextButton } from "../buttons";
8
8
  import { useSidebarNav } from "./SidebarNavContext";
9
9
  export function Header() {
10
10
  const { navItems } = useSidebarNav();
11
11
  return (_jsx("header", { className: "ml-12 flex h-12 border-b shrink-0 items-center gap-2 transition-[width,height] ease-linear group-has-data-[collapsible=icon]/sidebar-wrapper:h-12", children: _jsxs("div", { className: "flex items-center justify-between gap-2 px-4 w-full", children: [_jsxs("div", { className: "flex items-center gap-2", children: [(!navItems || navItems.length === 0) ? _jsx("div", {}) : _jsx(SidebarTrigger, { className: "-ml-1" }), (!navItems || navItems.length === 0) ?
12
12
  _jsx("div", {}) :
13
- _jsx(Separator, { orientation: "vertical", className: "mr-2 data-[orientation=vertical]:h-4" }), _jsx(AppBreadcrumb, {})] }), _jsxs("div", { className: "ml-auto flex gap-4", children: [_jsx(ThemeToggleBtn, {}), _jsxs(IconTextButton, { variant: "default", children: [_jsx(Play, {}), "App Store"] }), _jsx(IconButton, { children: _jsx(LayoutGrid, {}) })] })] }) }));
13
+ _jsx(Separator, { orientation: "vertical", className: "mr-2 data-[orientation=vertical]:h-4" }), _jsx(AppBreadcrumb, {})] }), _jsxs("div", { className: "ml-auto flex gap-4", children: [_jsx(IconButtonWithTooltip, { tooltipContent: "Notifications", children: _jsx(Bell, {}) }), _jsx(ThemeToggleBtn, {}), _jsxs(IconTextButton, { variant: "default", children: [_jsx(Play, {}), "App Store"] }), _jsx(IconButton, { children: _jsx(LayoutGrid, {}) })] })] }) }));
14
14
  }
@@ -75,10 +75,10 @@ export const MainSidebar = ({ baseUrl }) => {
75
75
  }, []);
76
76
  return (_jsx(TooltipProvider, { delayDuration: 0, children: _jsxs("aside", { className: "fixed left-0 top-0 z-20 h-screen w-12 border-r border-border bg-sidebar text-sidebar-foreground flex flex-col items-center py-4 ", children: [_jsxs(DropdownMenu, { children: [_jsx(DropdownMenuTrigger, { asChild: true, children: _jsx(Button, { variant: "default", className: "mb-4 h-8 w-8 rounded-lg p-0", disabled: !selectedAccount, children: _jsx("span", { className: "text-base font-medium text-accent-foreground", children: selectedAccount ? getInitials(selectedAccount.accountName) : '...' }) }) }), _jsxs(DropdownMenuContent, { className: "w-55", side: "right", sideOffset: 8, align: "start", children: [_jsx("div", { className: "px-2 py-1.5 text-xs font-semibold text-foreground", children: "Accounts" }), accounts.map((account) => (_jsxs(DropdownMenuItem, { className: "flex items-center justify-between cursor-pointer", onClick: () => {
77
77
  setSelectedAccount(account);
78
- }, children: [_jsxs("div", { className: "flex items-center gap-2", children: [_jsx("div", { className: "h-6 w-6 rounded bg-primary/10 flex items-center justify-center", children: _jsx("span", { className: "text-xs font-medium text-primary", children: getInitials(account.accountName) }) }), _jsx("span", { className: "text-sm", children: account.accountName })] }), (selectedAccount === null || selectedAccount === void 0 ? void 0 : selectedAccount.accountId) === account.accountId && (_jsx(Check, { className: "h-4 w-4 text-primary" }))] }, account.accountId)))] })] }), _jsx("nav", { className: "flex flex-col gap-2", children: _jsxs(Tooltip, { children: [_jsx(TooltipTrigger, { asChild: true, className: 'h-5 w-5', children: _jsx(Button, { variant: "ghost", size: "icon", className: "h-10 w-10", asChild: true, children: _jsxs(Link, { href: "/", children: [_jsx(Home, { className: "h-5 w-5" }), _jsx("span", { className: "sr-only", children: "Home" })] }) }) }), _jsx(TooltipContent, { side: "right", sideOffset: 5, children: "Home" })] }, "home") }), _jsx("nav", { className: "flex flex-col gap-2 flex-1", children: softwares.map((software) => {
78
+ }, children: [_jsxs("div", { className: "flex items-center gap-2", children: [_jsx("div", { className: "h-6 w-6 rounded bg-primary/10 flex items-center justify-center", children: _jsx("span", { className: "text-xs font-medium text-primary", children: getInitials(account.accountName) }) }), _jsx("span", { className: "text-sm", children: account.accountName })] }), (selectedAccount === null || selectedAccount === void 0 ? void 0 : selectedAccount.accountId) === account.accountId && (_jsx(Check, { className: "h-4 w-4 text-primary" }))] }, account.accountId)))] })] }), _jsx("nav", { className: "flex flex-col gap-2", children: _jsxs(Tooltip, { children: [_jsx(TooltipTrigger, { asChild: true, className: 'h-5 w-5', children: _jsx(Button, { variant: "ghost", size: "icon", className: "h-10 w-10", asChild: true, children: _jsxs(Link, { href: "/home", children: [_jsx(Home, { className: "h-5 w-5" }), _jsx("span", { className: "sr-only", children: "Home" })] }) }) }), _jsx(TooltipContent, { side: "right", sideOffset: 5, children: "Home" })] }, "home") }), _jsx("nav", { className: "flex flex-col gap-2 flex-1", children: softwares.map((software) => {
79
79
  const Icon = FolderCode;
80
80
  return (_jsxs(Tooltip, { children: [_jsx(TooltipTrigger, { asChild: true, className: 'h-5 w-5', children: _jsx(Button, { variant: "ghost", size: "icon", className: "h-10 w-10", asChild: true, children: _jsxs("a", { href: software.url, children: [_jsx(Icon, { className: "h-5 w-5" }), _jsx("span", { className: "sr-only", children: software.softwareName })] }) }) }), _jsx(TooltipContent, { side: "right", sideOffset: 5, children: software.softwareName })] }, software.softwareName));
81
- }) }), _jsxs(Tooltip, { children: [_jsx(TooltipTrigger, { asChild: true, className: 'h-5 w-5', children: _jsx(Button, { variant: "ghost", size: "icon", className: "h-10 w-10", asChild: true, children: _jsxs("a", { href: "/last-visited", children: [_jsx(Clock, { className: "h-5 w-5" }), _jsx("span", { className: "sr-only", children: "Last Visited" })] }) }) }), _jsx(TooltipContent, { side: "right", sideOffset: 5, children: "Last Visited" })] }, "last-visited"), _jsxs(Tooltip, { children: [_jsx(TooltipTrigger, { asChild: true, className: 'h-5 w-5', children: _jsx(Button, { variant: "ghost", size: "icon", className: "h-10 w-10", asChild: true, children: _jsxs("a", { href: "/favourites", children: [_jsx(Heart, { className: "h-5 w-5" }), _jsx("span", { className: "sr-only", children: "Favourites" })] }) }) }), _jsx(TooltipContent, { side: "right", sideOffset: 5, children: "Favourites" })] }, "favourites"), _jsxs(Tooltip, { children: [_jsx(TooltipTrigger, { asChild: true, className: 'h-5 w-5', children: _jsx(Button, { variant: "ghost", className: "h-10 w-10", asChild: true, children: _jsxs("a", { href: "/settings", children: [_jsx(Settings, { className: "h-5 w-5" }), _jsx("span", { className: "sr-only", children: "Settings" })] }) }) }), _jsx(TooltipContent, { side: "right", sideOffset: 5, children: "Settings" })] }, "settings"), _jsxs(DropdownMenu, { children: [_jsx(DropdownMenuTrigger, { asChild: true, children: _jsx(Button, { variant: "ghost", size: "icon", className: "h-10 w-10 rounded-full", children: _jsx(CircleUserRound, { className: "h-8 w-8" }) }) }), _jsxs(DropdownMenuContent, { className: "w-55 p-0", side: 'right', sideOffset: 8, children: [_jsxs("div", { className: "flex items-start gap-3 p-4 bg-card", children: [_jsx(CircleUserRound, { className: "h-8 w-8" }), _jsxs("div", { className: "flex flex-col gap-0.5 flex-1 min-w-0", children: [_jsx("p", { className: "text-sm font-bold text-foreground blue-dark:text-muted-foreground truncate", children: user === null || user === void 0 ? void 0 : user.userName }), _jsx("p", { className: "text-xs text-muted-foreground truncate", children: user === null || user === void 0 ? void 0 : user.userEmail }), _jsx("p", { className: "text-sm text-muted-foreground font-semibold", children: selectedAccount === null || selectedAccount === void 0 ? void 0 : selectedAccount.accountName })] })] }), _jsx(DropdownMenuSeparator, { className: "my-0" }), _jsxs(DropdownMenuItem, { onClick: async () => {
81
+ }) }), _jsxs(Tooltip, { children: [_jsx(TooltipTrigger, { asChild: true, className: 'h-5 w-5', children: _jsx(Button, { variant: "ghost", size: "icon", className: "h-10 w-10", asChild: true, children: _jsxs("a", { href: "/ikon-portal/last-visited", children: [_jsx(Clock, { className: "h-5 w-5" }), _jsx("span", { className: "sr-only", children: "Last Visited" })] }) }) }), _jsx(TooltipContent, { side: "right", sideOffset: 5, children: "Last Visited" })] }, "last-visited"), _jsxs(Tooltip, { children: [_jsx(TooltipTrigger, { asChild: true, className: 'h-5 w-5', children: _jsx(Button, { variant: "ghost", size: "icon", className: "h-10 w-10", asChild: true, children: _jsxs("a", { href: "/ikon-portal/favourites", children: [_jsx(Heart, { className: "h-5 w-5" }), _jsx("span", { className: "sr-only", children: "Favourites" })] }) }) }), _jsx(TooltipContent, { side: "right", sideOffset: 5, children: "Favourites" })] }, "favourites"), _jsxs(Tooltip, { children: [_jsx(TooltipTrigger, { asChild: true, className: 'h-5 w-5', children: _jsx(Button, { variant: "ghost", className: "h-10 w-10", asChild: true, children: _jsxs("a", { href: "/ikon-portal/settings", children: [_jsx(Settings, { className: "h-5 w-5" }), _jsx("span", { className: "sr-only", children: "Settings" })] }) }) }), _jsx(TooltipContent, { side: "right", sideOffset: 5, children: "Settings" })] }, "settings"), _jsxs(DropdownMenu, { children: [_jsx(DropdownMenuTrigger, { asChild: true, children: _jsx(Button, { variant: "ghost", size: "icon", className: "h-10 w-10 rounded-full", children: _jsx(CircleUserRound, { className: "h-8 w-8" }) }) }), _jsxs(DropdownMenuContent, { className: "w-55 p-0", side: 'right', sideOffset: 8, children: [_jsxs("div", { className: "flex items-start gap-3 p-4 bg-card", children: [_jsx(CircleUserRound, { className: "h-8 w-8" }), _jsxs("div", { className: "flex flex-col gap-0.5 flex-1 min-w-0", children: [_jsx("p", { className: "text-sm font-bold text-foreground blue-dark:text-muted-foreground truncate", children: user === null || user === void 0 ? void 0 : user.userName }), _jsx("p", { className: "text-xs text-muted-foreground truncate", children: user === null || user === void 0 ? void 0 : user.userEmail }), _jsx("p", { className: "text-sm text-muted-foreground font-semibold", children: selectedAccount === null || selectedAccount === void 0 ? void 0 : selectedAccount.accountName })] })] }), _jsx(DropdownMenuSeparator, { className: "my-0" }), _jsxs(DropdownMenuItem, { onClick: async () => {
82
82
  await clearAllCookieSession();
83
83
  redirect("/login.html");
84
84
  }, className: "flex items-center gap-2 px-4 py-3 cursor-pointer focus:bg-destructive dark:focus:bg-destructive blue-dark:focus:bg-destructive", children: [_jsx(LogOut, { className: "h-4 w-4 text-foreground" }), _jsx("span", { children: "Log out" })] })] })] })] }) }));
@@ -1,2 +1,2 @@
1
1
  import { TabProps } from "./type";
2
- export declare function CustomTabs({ children, tabArray, pathName, tabListClass, tabListInnerClass, tabListButtonClass, tabContentClass, headerEndComponent, onTabChange, isSeperatePage, }: TabProps): import("react/jsx-runtime").JSX.Element;
2
+ export declare function Tabs({ children, tabArray, pathName, tabListClass, tabListInnerClass, tabListButtonClass, tabContentClass, headerEndComponent, onTabChange, isSeperatePage, }: TabProps): import("react/jsx-runtime").JSX.Element;
@@ -7,7 +7,7 @@ import { TextButton } from "../buttons";
7
7
  import { Card } from "../../shadcn/card";
8
8
  import { useEffect, useState } from "react";
9
9
  import { useIsMobile } from "../../hooks/use-mobile";
10
- export function CustomTabs({ children, tabArray, pathName, tabListClass = "", tabListInnerClass = "", tabListButtonClass = "", tabContentClass = "", headerEndComponent, onTabChange, isSeperatePage = false, }) {
10
+ export function Tabs({ children, tabArray, pathName, tabListClass = "", tabListInnerClass = "", tabListButtonClass = "", tabContentClass = "", headerEndComponent, onTabChange, isSeperatePage = false, }) {
11
11
  var _a, _b;
12
12
  // const pathName = usePathname();
13
13
  const [itemToDisplay, setItemToDisplay] = useState(5);
package/dist/index.d.ts CHANGED
@@ -52,6 +52,8 @@ export type { ComboBoxInputProps, ComboboxItemProps } from "./ikoncomponents/com
52
52
  export { DataTableColumnFilter } from "./ikoncomponents/data-table/datatable-column-filter";
53
53
  export { DataTableFacetedFilter } from "./ikoncomponents/data-table/datatable-faceted-filter";
54
54
  export { DataTableFilterMenu } from "./ikoncomponents/data-table/datatable-filter-menu";
55
+ export { convertFileToObject, FileUploader, getImageFromObject } from "./ikoncomponents/fileUpload";
56
+ export type { FileUploaderProps } from "./ikoncomponents/fileUpload";
55
57
  export { DataTablePagination } from "./ikoncomponents/data-table/datatable-pagination";
56
58
  export { DataTableToolbar } from "./ikoncomponents/data-table/datatable-toolbar";
57
59
  export { getDataTableColumnTitle } from "./ikoncomponents/data-table/function";
@@ -71,7 +73,7 @@ export { PhoneInput } from "./ikoncomponents/phone-input";
71
73
  export { SearchInput } from "./ikoncomponents/search-input";
72
74
  export { SheetComponent } from "./ikoncomponents/sheet";
73
75
  export { SimpleWidget } from "./ikoncomponents/simple-widget";
74
- export { CustomTabs } from "./ikoncomponents/tabs";
76
+ export { Tabs } from "./ikoncomponents/tabs";
75
77
  export type { TabArray, TabProps } from "./ikoncomponents/tabs/type";
76
78
  export { ThemeToggleBtn } from "./ikoncomponents/theme-toggle-btn";
77
79
  export { TitleProgress } from "./ikoncomponents/title-progress";
package/dist/index.js CHANGED
@@ -49,6 +49,7 @@ export { ComboboxInput } from "./ikoncomponents/combobox-input";
49
49
  export { DataTableColumnFilter } from "./ikoncomponents/data-table/datatable-column-filter";
50
50
  export { DataTableFacetedFilter } from "./ikoncomponents/data-table/datatable-faceted-filter";
51
51
  export { DataTableFilterMenu } from "./ikoncomponents/data-table/datatable-filter-menu";
52
+ export { convertFileToObject, FileUploader, getImageFromObject } from "./ikoncomponents/fileUpload";
52
53
  export { DataTablePagination } from "./ikoncomponents/data-table/datatable-pagination";
53
54
  export { DataTableToolbar } from "./ikoncomponents/data-table/datatable-toolbar";
54
55
  export { getDataTableColumnTitle } from "./ikoncomponents/data-table/function";
@@ -66,7 +67,7 @@ export { PhoneInput } from "./ikoncomponents/phone-input";
66
67
  export { SearchInput } from "./ikoncomponents/search-input";
67
68
  export { SheetComponent } from "./ikoncomponents/sheet";
68
69
  export { SimpleWidget } from "./ikoncomponents/simple-widget";
69
- export { CustomTabs } from "./ikoncomponents/tabs";
70
+ export { Tabs } from "./ikoncomponents/tabs";
70
71
  export { ThemeToggleBtn } from "./ikoncomponents/theme-toggle-btn";
71
72
  export { TitleProgress } from "./ikoncomponents/title-progress";
72
73
  export { TooltipComponent } from "./ikoncomponents/tooltip";
@@ -23,7 +23,7 @@ function TabsList(_a) {
23
23
  }
24
24
  function TabsTrigger(_a) {
25
25
  var { className } = _a, props = __rest(_a, ["className"]);
26
- return (_jsx(TabsPrimitive.Trigger, Object.assign({ "data-slot": "tabs-trigger", className: cn("text-muted-foreground data-[state=active]:bg-background data-[state=active]:text-foreground dark:data-[state=active]:text-foreground focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:outline-ring dark:data-[state=active]:border-input dark:data-[state=active]:bg-input/30 blue-dark:data-[state=active]:border-input blue-dark:data-[state=active]:bg-input/30 dark:text-muted-foreground inline-flex h-[calc(100%-1px)] flex-1 items-center justify-center gap-1.5 rounded-md border border-transparent px-2 py-1 text-sm font-medium whitespace-nowrap transition-[color,box-shadow] focus-visible:ring-[3px] focus-visible:outline-1 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:shadow-sm [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", className) }, props)));
26
+ return (_jsx(TabsPrimitive.Trigger, Object.assign({ "data-slot": "tabs-trigger", className: cn("data-[state=active]:bg-background dark:data-[state=active]:text-foreground focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:outline-ring dark:data-[state=active]:border-input dark:data-[state=active]:bg-input/30 text-foreground dark:text-muted-foreground inline-flex h-[calc(100%-1px)] flex-1 items-center justify-center gap-1.5 rounded-md border border-transparent px-2 py-1 text-sm font-medium whitespace-nowrap transition-[color,box-shadow] focus-visible:ring-[3px] focus-visible:outline-1 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:shadow-sm [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", className) }, props)));
27
27
  }
28
28
  function TabsContent(_a) {
29
29
  var { className } = _a, props = __rest(_a, ["className"]);
@@ -2,7 +2,7 @@
2
2
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
3
  import * as React from "react";
4
4
  import { ChevronDown } from "lucide-react";
5
- import { DropdownMenu, DropdownMenuContent, DropdownMenuTrigger } from "./dropdown-menu";
5
+ import { DropdownMenu, DropdownMenuTrigger, DropdownMenuContent } from "./dropdown-menu";
6
6
  import { Badge } from "./badge";
7
7
  const statusColors = {
8
8
  OUTSTANDING: "bg-[#FFDE721A] text-[#FBB125] border border-[#FBB12533]",
package/dist/styles.css CHANGED
@@ -5,6 +5,7 @@
5
5
  :root, :host {
6
6
  --color-red-500: oklch(63.7% 0.237 25.331);
7
7
  --color-red-800: oklch(44.4% 0.177 26.899);
8
+ --color-blue-50: oklch(97% 0.014 254.604);
8
9
  --color-blue-400: oklch(70.7% 0.165 254.624);
9
10
  --color-blue-500: oklch(62.3% 0.214 259.815);
10
11
  --color-blue-600: oklch(54.6% 0.245 262.881);
@@ -1243,9 +1244,15 @@
1243
1244
  border-color: color-mix(in oklab, var(--color-black) 8%, transparent);
1244
1245
  }
1245
1246
  }
1247
+ .border-blue-600 {
1248
+ border-color: var(--color-blue-600);
1249
+ }
1246
1250
  .border-border {
1247
1251
  border-color: var(--border);
1248
1252
  }
1253
+ .border-gray-300 {
1254
+ border-color: var(--color-gray-300);
1255
+ }
1249
1256
  .border-gray-400 {
1250
1257
  border-color: var(--color-gray-400);
1251
1258
  }
@@ -1339,6 +1346,9 @@
1339
1346
  background-color: color-mix(in oklab, var(--color-black) 50%, transparent);
1340
1347
  }
1341
1348
  }
1349
+ .bg-blue-50 {
1350
+ background-color: var(--color-blue-50);
1351
+ }
1342
1352
  .bg-blue-500 {
1343
1353
  background-color: var(--color-blue-500);
1344
1354
  }
@@ -3355,11 +3365,6 @@
3355
3365
  background-color: var(--background);
3356
3366
  }
3357
3367
  }
3358
- .data-\[state\=active\]\:text-foreground {
3359
- &[data-state="active"] {
3360
- color: var(--foreground);
3361
- }
3362
- }
3363
3368
  .data-\[state\=active\]\:shadow-sm {
3364
3369
  &[data-state="active"] {
3365
3370
  --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));
@@ -4340,23 +4345,6 @@
4340
4345
  }
4341
4346
  }
4342
4347
  }
4343
- .blue-dark\:data-\[state\=active\]\:border-input {
4344
- &:is(.blue-dark *) {
4345
- &[data-state="active"] {
4346
- border-color: var(--input);
4347
- }
4348
- }
4349
- }
4350
- .blue-dark\:data-\[state\=active\]\:bg-input\/30 {
4351
- &:is(.blue-dark *) {
4352
- &[data-state="active"] {
4353
- background-color: var(--input);
4354
- @supports (color: color-mix(in lab, red, red)) {
4355
- background-color: color-mix(in oklab, var(--input) 30%, transparent);
4356
- }
4357
- }
4358
- }
4359
- }
4360
4348
  .\[\&_\[cmdk-group-heading\]\]\:px-2 {
4361
4349
  & [cmdk-group-heading] {
4362
4350
  padding-inline: calc(var(--spacing) * 2);
@@ -4880,8 +4868,8 @@
4880
4868
  --secondary-foreground: oklch(0.985 0 0);
4881
4869
  --muted: oklch(0.269 0 0);
4882
4870
  --muted-foreground: oklch(0.708 0 0);
4883
- --accent: oklch(0.269 0 0);
4884
- --accent-foreground: oklch(0.985 0 0);
4871
+ --accent: oklch(98.511% 0.00011 271.152);
4872
+ --accent-foreground: #050505;
4885
4873
  --calender-foreground: oklch(98.511% 0.00011 271.152);
4886
4874
  --destructive: #f43f5e;
4887
4875
  --border: #454545;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ikoncomponents",
3
- "version": "1.2.8",
3
+ "version": "1.2.9",
4
4
  "main": "dist/index.js",
5
5
  "types": "dist/index.d.ts",
6
6
  "css": "dist/styles.css",