ikoncomponents 1.3.3 → 1.3.4

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
  }
@@ -0,0 +1,21 @@
1
+ import * as React from "react";
2
+ export type Option = {
3
+ value: string;
4
+ label: string;
5
+ disabled?: boolean;
6
+ };
7
+ type CustomComboboxInputProps = {
8
+ formControl: any;
9
+ name: string;
10
+ label?: string | React.ReactNode;
11
+ options: Option[];
12
+ placeholder?: string;
13
+ emptyMessage?: string;
14
+ onValueChange?: (value: string) => void;
15
+ className?: string;
16
+ addNewPlaceholder?: string;
17
+ formDescription?: string;
18
+ disabled?: boolean;
19
+ };
20
+ export declare function CustomComboboxInput({ formControl, name, label, options, placeholder, emptyMessage, onValueChange, className, addNewPlaceholder, formDescription, disabled, }: CustomComboboxInputProps): import("react/jsx-runtime").JSX.Element;
21
+ export {};
@@ -0,0 +1,85 @@
1
+ "use client";
2
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import * as React from "react";
4
+ import { Check, ChevronsUpDown, Plus } from "lucide-react";
5
+ import { FormControl, FormDescription, FormField, FormItem, FormLabel, FormMessage } from "../../shadcn/form";
6
+ import { cn } from "../../utils/cn";
7
+ import { Button } from "../../shadcn/button";
8
+ import { Command, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList } from "../../shadcn/command";
9
+ import { Popover, PopoverContent, PopoverTrigger } from "../../shadcn/popover";
10
+ import { Input } from "../../shadcn/input";
11
+ export function CustomComboboxInput({ formControl, name, label, options, placeholder = "Select an option", emptyMessage = "No options found.", onValueChange, className, addNewPlaceholder = "Add custom value...", formDescription, disabled, }) {
12
+ const [open, setOpen] = React.useState(false);
13
+ const [searchValue, setSearchValue] = React.useState("");
14
+ const [items, setItems] = React.useState(options);
15
+ const [isAddingNew, setIsAddingNew] = React.useState(false);
16
+ const [newValue, setNewValue] = React.useState("");
17
+ React.useEffect(() => {
18
+ setItems(options);
19
+ }, [options]);
20
+ return (_jsx(FormField, { control: formControl, name: name, render: ({ field }) => {
21
+ const selectedItem = items.find((item) => item.value === field.value);
22
+ const handleAddNewItem = () => {
23
+ const trimmedValue = newValue.trim();
24
+ if (!trimmedValue)
25
+ return;
26
+ if (items.some((item) => item.value === trimmedValue)) {
27
+ const existingItem = items.find(i => i.value === trimmedValue);
28
+ if (existingItem) {
29
+ field.onChange(existingItem.value);
30
+ onValueChange === null || onValueChange === void 0 ? void 0 : onValueChange(existingItem.value);
31
+ setNewValue("");
32
+ setIsAddingNew(false);
33
+ setOpen(false);
34
+ setSearchValue("");
35
+ }
36
+ return;
37
+ }
38
+ const newOption = {
39
+ value: trimmedValue,
40
+ label: trimmedValue,
41
+ disabled: true,
42
+ };
43
+ setItems((prev) => [...prev, newOption]);
44
+ field.onChange(trimmedValue);
45
+ onValueChange === null || onValueChange === void 0 ? void 0 : onValueChange(trimmedValue);
46
+ setNewValue("");
47
+ setIsAddingNew(false);
48
+ setOpen(false);
49
+ setSearchValue("");
50
+ };
51
+ return (_jsxs(FormItem, { className: cn(className), children: [label && (_jsxs(_Fragment, { children: [_jsx(FormLabel, { children: label }), _jsx("br", {})] })), _jsxs(Popover, { open: open, onOpenChange: (isOpen) => {
52
+ setOpen(isOpen);
53
+ if (!isOpen) {
54
+ setSearchValue("");
55
+ setIsAddingNew(false);
56
+ setNewValue("");
57
+ }
58
+ }, children: [_jsx(PopoverTrigger, { asChild: true, children: _jsx(FormControl, { children: _jsxs(Button, { variant: "outline", role: "combobox", "aria-expanded": open, className: cn("w-full justify-between", !field.value && "text-foreground/50", className), disabled: disabled || field.disabled, children: [_jsx("span", { className: "line-clamp-1 text-left", children: field.value
59
+ ? selectedItem
60
+ ? selectedItem.label
61
+ : field.value
62
+ : placeholder }), _jsx(ChevronsUpDown, { className: "ml-2 h-4 w-4 shrink-0 opacity-50" })] }) }) }), _jsx(PopoverContent, { className: "p-0 w-[--radix-popover-trigger-width]", align: "start", children: _jsxs(Command, { shouldFilter: true, children: [_jsx(CommandInput, { placeholder: "Search...", value: searchValue, onValueChange: setSearchValue }), _jsxs(CommandList, { children: [_jsx(CommandEmpty, { children: searchValue && items.length > 0 ? "No results found." : emptyMessage }), _jsx(CommandGroup, { children: items
63
+ .filter(item => item.label.toLowerCase().includes(searchValue.toLowerCase()) || item.value.toLowerCase().includes(searchValue.toLowerCase()))
64
+ .map((item) => (_jsxs(CommandItem, { value: item.value, onSelect: (currentValue) => {
65
+ field.onChange(currentValue);
66
+ onValueChange === null || onValueChange === void 0 ? void 0 : onValueChange(currentValue);
67
+ setOpen(false);
68
+ setSearchValue("");
69
+ }, className: "cursor-pointer", disabled: item === null || item === void 0 ? void 0 : item.disabled, children: [_jsx(Check, { className: cn("mr-2 h-4 w-4", field.value === item.value
70
+ ? "opacity-100"
71
+ : "opacity-0") }), item.label] }, item.value))) })] }), _jsx("div", { className: "border-t p-2", children: isAddingNew ? (_jsxs("div", { className: "flex items-center gap-2", children: [_jsx(Input, { placeholder: addNewPlaceholder, value: newValue, onChange: (e) => setNewValue(e.target.value), onKeyDown: (e) => {
72
+ if (e.key === "Enter") {
73
+ e.preventDefault();
74
+ handleAddNewItem();
75
+ }
76
+ if (e.key === "Escape") {
77
+ setIsAddingNew(false);
78
+ setNewValue("");
79
+ }
80
+ }, autoFocus: true, className: "h-8" }), _jsx(Button, { size: "sm", variant: "ghost", onClick: () => {
81
+ setIsAddingNew(false);
82
+ setNewValue("");
83
+ }, className: "h-8", children: "Cancel" }), _jsx(Button, { size: "sm", variant: "default", onClick: handleAddNewItem, className: "h-8", disabled: !newValue.trim() || items.some(item => item.value === newValue.trim()), children: "Add" })] })) : (_jsxs(Button, { variant: "outline", className: "w-full justify-start", onClick: () => setIsAddingNew(true), children: [_jsx(Plus, { className: "mr-2 h-4 w-4" }), "Add new option"] })) })] }) })] }), formDescription && (_jsx(FormDescription, { children: formDescription })), _jsx(FormMessage, {})] }));
84
+ } }));
85
+ }
@@ -51,8 +51,8 @@ export function FileUploader({ label = "Upload File", isDrag = false, onFileSele
51
51
  if (file)
52
52
  handleFile(file);
53
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"}
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
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
57
  // ----- SIMPLE UPLOAD BOX -----
58
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" })] }))] }));
@@ -90,12 +90,12 @@ const NewImageFormComponent = ({ open, setOpen, onImageSubmit, }) => {
90
90
  const getImagePreview = (state) => {
91
91
  const imgSource = croppedImage && activeState === state ? croppedImage : prevImages[state];
92
92
  // const imgSource = prevImages[state];
93
- return imgSource ? (_jsx("div", { className: `
93
+ return imgSource ? (_jsx("div", { className: `
94
94
  ${state === "first"
95
95
  ? "relative w-3/5 h-[200px] bg-slate-400"
96
96
  : state === "second"
97
97
  ? "relative w-1/2 h-[220px] bg-slate-400"
98
- : "relative w-1/3 h-[120px] bg-slate-400"}`, children: _jsx(Image, { src: imgSource || "", alt: `Preview ${state}`, layout: "fill", objectFit: "70vh" }) })) : (_jsx("div", { className: `
98
+ : "relative w-1/3 h-[120px] bg-slate-400"}`, children: _jsx(Image, { src: imgSource || "", alt: `Preview ${state}`, layout: "fill", objectFit: "70vh" }) })) : (_jsx("div", { className: `
99
99
  ${state === "first"
100
100
  ? "relative w-3/5 h-[200px] bg-slate-400"
101
101
  : state === "second"
@@ -12,23 +12,11 @@ export interface Account {
12
12
  export interface Software {
13
13
  softwareId: string;
14
14
  softwareName: string;
15
- displayName: string;
16
- softwareDescription: string;
17
- softwareVersion: string;
18
- softwareOwner: string;
19
- softwareDeveloper: string;
20
- softwareManager: string;
21
- softwareVisibility: "PUBLIC" | "PRIVATE";
22
- softwareStatus: string;
23
- repoName: string;
24
- active: boolean;
25
- price: number;
26
- currency: string | null;
27
- logoResourceId: string | null;
28
- icon: string | null;
29
- link: string | null;
30
- category: string | null;
31
- videoResources: any[];
15
+ url: string;
16
+ icon: string;
17
+ visible: boolean;
18
+ defaultSoftware: boolean;
19
+ order: number;
32
20
  }
33
21
  export interface User {
34
22
  userId: string;
@@ -1,7 +1,7 @@
1
1
  "use client";
2
2
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
3
  import * as React from 'react';
4
- import { Check, CircleUserRound, Clock, FolderCode, Heart, Home, LogOut, Settings } from 'lucide-react';
4
+ import { Check, CircleUserRound, FolderCode, Home, LogOut, Settings } from 'lucide-react';
5
5
  import { Button } from '../../shadcn/button';
6
6
  import { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from '../../shadcn/tooltip';
7
7
  import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuSeparator, DropdownMenuTrigger } from '../../shadcn/dropdown-menu';
@@ -65,7 +65,7 @@ export const MainSidebar = ({ baseUrl }) => {
65
65
  const fetchSubscribedSoftwares = async () => {
66
66
  try {
67
67
  const accessToken = await getValidAccessToken();
68
- const response = await axios.get(`${baseUrl}/platform/software/accessible/account`, {
68
+ const response = await axios.get(`${baseUrl}/platform/software/accessible/user`, {
69
69
  headers: {
70
70
  Authorization: `Bearer ${accessToken}`,
71
71
  },
@@ -85,8 +85,8 @@ export const MainSidebar = ({ baseUrl }) => {
85
85
  }, 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-1", children: _jsxs(Tooltip, { children: [_jsx(TooltipTrigger, { asChild: true, className: 'h-8 w-8', children: _jsx(Button, { variant: "ghost", size: "icon", className: "h-10 w-10", asChild: true, children: _jsxs(Link, { href: "/home", children: [_jsx(Home, { className: "h-8 w-8" }), _jsx("span", { className: "sr-only", children: "Home" })] }) }) }), _jsx(TooltipContent, { side: "right", sideOffset: 5, children: "Home" })] }, "home") }), _jsx("nav", { className: "flex flex-col gap-1 flex-1", children: softwares.map((software) => {
86
86
  var _a, _b;
87
87
  const hasIcon = Boolean(software.icon && software.icon.trim() !== "");
88
- return (_jsxs(Tooltip, { children: [_jsx(TooltipTrigger, { asChild: true, className: "h-8 w-8", children: _jsx(Button, { variant: "ghost", size: "icon", className: "h-10 w-10", asChild: true, children: _jsxs(Link, { href: (_a = software.link) !== null && _a !== void 0 ? _a : "#", children: [hasIcon ? (_jsx(Icon, { name: toPascalCase((_b = software.icon) !== null && _b !== void 0 ? _b : ''), className: "h-8 w-8" })) : (_jsx(FolderCode, { className: "h-8 w-8" })), _jsx("span", { className: "sr-only", children: software.softwareName })] }) }) }), _jsx(TooltipContent, { side: "right", sideOffset: 5, children: software.softwareName })] }, software.softwareName));
89
- }) }), _jsxs(Tooltip, { children: [_jsx(TooltipTrigger, { asChild: true, className: 'h-8 w-8', children: _jsx(Button, { variant: "ghost", size: "icon", className: "h-10 w-10", asChild: true, children: _jsxs(Link, { href: "/last-visited", children: [_jsx(Clock, { className: "h-8 w-8" }), _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-8 w-8', children: _jsx(Button, { variant: "ghost", size: "icon", className: "h-10 w-10", asChild: true, children: _jsxs(Link, { href: "/favourites", children: [_jsx(Heart, { className: "h-8 w-8" }), _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-8 w-8', children: _jsx(Button, { variant: "ghost", className: "h-10 w-10", asChild: true, children: _jsxs(Link, { href: "/settings", children: [_jsx(Settings, { className: "h-8 w-8" }), _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", 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 () => {
88
+ return (_jsxs(Tooltip, { children: [_jsx(TooltipTrigger, { asChild: true, className: "h-8 w-8", children: _jsx(Button, { variant: "ghost", size: "icon", className: "h-10 w-10", asChild: true, children: _jsxs(Link, { href: (_a = software.url) !== null && _a !== void 0 ? _a : "#", children: [hasIcon ? (_jsx(Icon, { name: toPascalCase((_b = software.icon) !== null && _b !== void 0 ? _b : ''), className: "h-8 w-8" })) : (_jsx(FolderCode, { className: "h-8 w-8" })), _jsx("span", { className: "sr-only", children: software.softwareName })] }) }) }), _jsx(TooltipContent, { side: "right", sideOffset: 5, children: software.softwareName })] }, software.softwareName));
89
+ }) }), _jsxs(Tooltip, { children: [_jsx(TooltipTrigger, { asChild: true, className: 'h-8 w-8', children: _jsx(Button, { variant: "ghost", className: "h-10 w-10", asChild: true, children: _jsxs(Link, { href: "/settings", children: [_jsx(Settings, { className: "h-8 w-8" }), _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", 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 () => {
90
90
  await clearAllCookieSession();
91
91
  redirect("/login.html");
92
92
  }, 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);
@@ -30,7 +30,7 @@ export function ThemeToggleBtn() {
30
30
  const applySavedColors = useCallback(() => {
31
31
  const primaryColor = localStorage.getItem("primary") || '#0f172b';
32
32
  const secondaryColor = localStorage.getItem("secondary") || '#1b2336';
33
- const tertiaryColor = localStorage.getItem("tertiary") || '#010416';
33
+ const tertiaryColor = localStorage.getItem("tertiary") || '#1f3aba';
34
34
  const pChartColor = localStorage.getItem("primaryChart") || '#00bc7d';
35
35
  const sChartColor = localStorage.getItem("secondaryChart") || '#fd9a00';
36
36
  const tChartColor = localStorage.getItem("tertiaryChart") || '#ad46ff';
package/dist/index.d.ts CHANGED
@@ -74,7 +74,7 @@ export { PhoneInput } from "./ikoncomponents/phone-input";
74
74
  export { SearchInput } from "./ikoncomponents/search-input";
75
75
  export { SheetComponent } from "./ikoncomponents/sheet";
76
76
  export { SimpleWidget } from "./ikoncomponents/simple-widget";
77
- export { CustomTabs } from "./ikoncomponents/tabs";
77
+ export { Tabs } from "./ikoncomponents/tabs";
78
78
  export type { TabArray, TabProps } from "./ikoncomponents/tabs/type";
79
79
  export { ThemeToggleBtn } from "./ikoncomponents/theme-toggle-btn";
80
80
  export { TitleProgress } from "./ikoncomponents/title-progress";
@@ -125,12 +125,13 @@ export type { CropperImgProps as NewCropperImgProps } from "./ikoncomponents/ima
125
125
  export { NewImageForm } from "./ikoncomponents/image-cropper-upload/components/newImageUploadForm";
126
126
  export type { ImageFormProps } from "./ikoncomponents/image-cropper-upload/components/newImageUploadForm";
127
127
  export { WorkInProgress } from "./ikoncomponents/work-in-progress";
128
+ export { CustomComboboxInput } from "./ikoncomponents/custom-combo-dropdown";
128
129
  export { ThemeProvider } from "./utils/theme-provider";
129
130
  export { RadiusProvider, useRadius } from "./utils/border-radius-provider";
130
131
  export { FontProvider, useFont } from "./utils/font-provider";
131
132
  export { cn } from "./utils/cn";
132
133
  export type { CookieSessionOptionsProps } from "./utils/session/cookieSession";
133
134
  export { setCookieSession, getCookieSession, clearCookieSession, clearAllCookieSession, } from "./utils/session/cookieSession";
134
- export { getValidAccessToken, decodeAccessToken, logOut, refreshAccessToken } from "./utils/token-management";
135
+ export { getValidAccessToken, refreshAccessToken, decodeAccessToken, logOut, } from "./utils/token-management";
135
136
  export type { TokenResponse } from "./utils/token-management/types";
136
137
  export { useIsMobile } from "./hooks/use-mobile";
package/dist/index.js CHANGED
@@ -68,7 +68,7 @@ export { PhoneInput } from "./ikoncomponents/phone-input";
68
68
  export { SearchInput } from "./ikoncomponents/search-input";
69
69
  export { SheetComponent } from "./ikoncomponents/sheet";
70
70
  export { SimpleWidget } from "./ikoncomponents/simple-widget";
71
- export { CustomTabs } from "./ikoncomponents/tabs";
71
+ export { Tabs } from "./ikoncomponents/tabs";
72
72
  export { ThemeToggleBtn } from "./ikoncomponents/theme-toggle-btn";
73
73
  export { TitleProgress } from "./ikoncomponents/title-progress";
74
74
  export { TooltipComponent } from "./ikoncomponents/tooltip";
@@ -105,10 +105,11 @@ export { CropperForm } from "./ikoncomponents/image-cropper-upload/cropper-form"
105
105
  export { NewCropperImg } from "./ikoncomponents/image-cropper-upload/components/newCropper";
106
106
  export { NewImageForm } from "./ikoncomponents/image-cropper-upload/components/newImageUploadForm";
107
107
  export { WorkInProgress } from "./ikoncomponents/work-in-progress";
108
+ export { CustomComboboxInput } from "./ikoncomponents/custom-combo-dropdown";
108
109
  export { ThemeProvider } from "./utils/theme-provider";
109
110
  export { RadiusProvider, useRadius } from "./utils/border-radius-provider";
110
111
  export { FontProvider, useFont } from "./utils/font-provider";
111
112
  export { cn } from "./utils/cn";
112
113
  export { setCookieSession, getCookieSession, clearCookieSession, clearAllCookieSession, } from "./utils/session/cookieSession";
113
- export { getValidAccessToken, decodeAccessToken, logOut, refreshAccessToken } from "./utils/token-management";
114
+ export { getValidAccessToken, refreshAccessToken, decodeAccessToken, logOut, } from "./utils/token-management";
114
115
  export { useIsMobile } from "./hooks/use-mobile";
package/dist/styles.css CHANGED
@@ -4937,9 +4937,9 @@
4937
4937
  --secondary-foreground: oklch(0.985 0 0);
4938
4938
  --muted: oklch(0.269 0 0);
4939
4939
  --muted-foreground: oklch(0.708 0 0);
4940
- --accent: #1f3aba;
4940
+ --accent: oklch(0.488 0.243 264.376);
4941
4941
  --accent-foreground: oklch(0.985 0 0);
4942
- --calender-foreground: #1f3aba;
4942
+ --calender-foreground: oklch(0.488 0.243 264.376);
4943
4943
  --destructive: #f43f5e;
4944
4944
  --border: #494f5e;
4945
4945
  --input: oklch(1 0 0 / 15%);
@@ -4983,9 +4983,9 @@
4983
4983
  .custom-buttons {
4984
4984
  font-size: 14px;
4985
4985
  }
4986
- .rbc-date-cell.rbc-now,
4987
- .rbc-time-slot.rbc-now,
4988
- .rbc-show-more,
4986
+ .rbc-date-cell.rbc-now,
4987
+ .rbc-time-slot.rbc-now,
4988
+ .rbc-show-more,
4989
4989
  .rbc-header {
4990
4990
  font-weight: normal !important;
4991
4991
  }
@@ -5031,13 +5031,13 @@
5031
5031
  .rbc-h-full {
5032
5032
  height: 100%;
5033
5033
  }
5034
- .rbc-calendar *,
5035
- .rbc-calendar *:before,
5034
+ .rbc-calendar *,
5035
+ .rbc-calendar *:before,
5036
5036
  .rbc-calendar *:after {
5037
5037
  -webkit-box-sizing: inherit;
5038
5038
  box-sizing: inherit;
5039
5039
  }
5040
- .rbc-abs-full,
5040
+ .rbc-abs-full,
5041
5041
  .rbc-row-bg {
5042
5042
  overflow: hidden;
5043
5043
  position: absolute;
@@ -5046,9 +5046,9 @@
5046
5046
  right: 0;
5047
5047
  bottom: 0;
5048
5048
  }
5049
- .rbc-ellipsis,
5050
- .rbc-show-more,
5051
- .rbc-row-segment .rbc-event-content,
5049
+ .rbc-ellipsis,
5050
+ .rbc-show-more,
5051
+ .rbc-row-segment .rbc-event-content,
5052
5052
  .rbc-event-label {
5053
5053
  display: block;
5054
5054
  overflow: hidden;
@@ -5080,16 +5080,16 @@
5080
5080
  min-height: 0;
5081
5081
  border-bottom: 1px solid hsl(var(--border));
5082
5082
  }
5083
- .rbc-header + .rbc-header {
5083
+ .rbc-header+.rbc-header {
5084
5084
  border-left: 1px solid hsl(var(--border));
5085
5085
  }
5086
- .rbc-rtl .rbc-header + .rbc-header {
5086
+ .rbc-rtl .rbc-header+.rbc-header {
5087
5087
  border-left-width: 0;
5088
5088
  border-right: 1px solid hsl(var(--border));
5089
5089
  }
5090
- .rbc-header > a,
5091
- .rbc-header > a:active,
5092
- .rbc-header > a:visited {
5090
+ .rbc-header>a,
5091
+ .rbc-header>a:active,
5092
+ .rbc-header>a:visited {
5093
5093
  color: inherit;
5094
5094
  text-decoration: none;
5095
5095
  }
@@ -5129,8 +5129,7 @@
5129
5129
  -ms-overflow-style: none;
5130
5130
  scrollbar-width: none;
5131
5131
  }
5132
- .rbc-row-content-scrollable
5133
- .rbc-row-content-scroll-container::-webkit-scrollbar {
5132
+ .rbc-row-content-scrollable .rbc-row-content-scroll-container::-webkit-scrollbar {
5134
5133
  display: none;
5135
5134
  }
5136
5135
  .rbc-today {
@@ -5173,7 +5172,7 @@
5173
5172
  line-height: normal;
5174
5173
  white-space: nowrap;
5175
5174
  }
5176
- .rbc-toolbar button:active,
5175
+ .rbc-toolbar button:active,
5177
5176
  .rbc-toolbar button.rbc-active {
5178
5177
  background-image: none;
5179
5178
  -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
@@ -5181,9 +5180,9 @@
5181
5180
  background-color: #e6e6e6;
5182
5181
  border-color: #adadad;
5183
5182
  }
5184
- .rbc-toolbar button:active:hover,
5185
- .rbc-toolbar button:active:focus,
5186
- .rbc-toolbar button.rbc-active:hover,
5183
+ .rbc-toolbar button:active:hover,
5184
+ .rbc-toolbar button:active:focus,
5185
+ .rbc-toolbar button.rbc-active:hover,
5187
5186
  .rbc-toolbar button.rbc-active:focus {
5188
5187
  color: #373a3c;
5189
5188
  background-color: #d4d4d4;
@@ -5203,36 +5202,36 @@
5203
5202
  display: inline-block;
5204
5203
  white-space: nowrap;
5205
5204
  }
5206
- .rbc-btn-group > button:first-child:not(:last-child) {
5205
+ .rbc-btn-group>button:first-child:not(:last-child) {
5207
5206
  border-top-right-radius: 0;
5208
5207
  border-bottom-right-radius: 0;
5209
5208
  }
5210
- .rbc-btn-group > button:last-child:not(:first-child) {
5209
+ .rbc-btn-group>button:last-child:not(:first-child) {
5211
5210
  border-top-left-radius: 0;
5212
5211
  border-bottom-left-radius: 0;
5213
5212
  }
5214
- .rbc-rtl .rbc-btn-group > button:first-child:not(:last-child) {
5213
+ .rbc-rtl .rbc-btn-group>button:first-child:not(:last-child) {
5215
5214
  border-radius: 4px;
5216
5215
  border-top-left-radius: 0;
5217
5216
  border-bottom-left-radius: 0;
5218
5217
  }
5219
- .rbc-rtl .rbc-btn-group > button:last-child:not(:first-child) {
5218
+ .rbc-rtl .rbc-btn-group>button:last-child:not(:first-child) {
5220
5219
  border-radius: 4px;
5221
5220
  border-top-right-radius: 0;
5222
5221
  border-bottom-right-radius: 0;
5223
5222
  }
5224
- .rbc-btn-group > button:not(:first-child):not(:last-child) {
5223
+ .rbc-btn-group>button:not(:first-child):not(:last-child) {
5225
5224
  border-radius: 0;
5226
5225
  }
5227
- .rbc-btn-group button + button {
5226
+ .rbc-btn-group button+button {
5228
5227
  margin-left: -1px;
5229
5228
  }
5230
- .rbc-rtl .rbc-btn-group button + button {
5229
+ .rbc-rtl .rbc-btn-group button+button {
5231
5230
  margin-left: 0;
5232
5231
  margin-right: -1px;
5233
5232
  }
5234
- .rbc-btn-group + .rbc-btn-group,
5235
- .rbc-btn-group + button {
5233
+ .rbc-btn-group+.rbc-btn-group,
5234
+ .rbc-btn-group+button {
5236
5235
  margin-left: 10px;
5237
5236
  }
5238
5237
  @media (max-width: 767px) {
@@ -5243,7 +5242,7 @@
5243
5242
  flex-direction: column;
5244
5243
  }
5245
5244
  }
5246
- .rbc-event,
5245
+ .rbc-event,
5247
5246
  .rbc-day-slot .rbc-background-event {
5248
5247
  border: none;
5249
5248
  -webkit-box-sizing: border-box;
@@ -5259,17 +5258,17 @@
5259
5258
  width: 100%;
5260
5259
  text-align: left;
5261
5260
  }
5262
- .rbc-slot-selecting .rbc-event,
5263
- .rbc-slot-selecting .rbc-day-slot .rbc-background-event,
5261
+ .rbc-slot-selecting .rbc-event,
5262
+ .rbc-slot-selecting .rbc-day-slot .rbc-background-event,
5264
5263
  .rbc-day-slot .rbc-slot-selecting .rbc-background-event {
5265
5264
  cursor: inherit;
5266
5265
  pointer-events: none;
5267
5266
  }
5268
- .rbc-event.rbc-selected,
5267
+ .rbc-event.rbc-selected,
5269
5268
  .rbc-day-slot .rbc-selected.rbc-background-event {
5270
5269
  background-color: #265985;
5271
5270
  }
5272
- .rbc-event:focus,
5271
+ .rbc-event:focus,
5273
5272
  .rbc-day-slot .rbc-background-event:focus {
5274
5273
  outline: 5px auto #3b99fc;
5275
5274
  }
@@ -5321,7 +5320,7 @@
5321
5320
  line-height: normal;
5322
5321
  color: hsl(var(--input));
5323
5322
  }
5324
- .rbc-show-more:hover,
5323
+ .rbc-show-more:hover,
5325
5324
  .rbc-show-more:focus {
5326
5325
  color: #265985;
5327
5326
  }
@@ -5371,7 +5370,7 @@
5371
5370
  overflow: hidden;
5372
5371
  height: 100%;
5373
5372
  }
5374
- .rbc-month-row + .rbc-month-row {
5373
+ .rbc-month-row+.rbc-month-row {
5375
5374
  border-top: 1px solid hsl(var(--border));
5376
5375
  }
5377
5376
  .rbc-date-cell {
@@ -5385,9 +5384,9 @@
5385
5384
  .rbc-date-cell.rbc-now {
5386
5385
  font-weight: bold;
5387
5386
  }
5388
- .rbc-date-cell > a,
5389
- .rbc-date-cell > a:active,
5390
- .rbc-date-cell > a:visited {
5387
+ .rbc-date-cell>a,
5388
+ .rbc-date-cell>a:active,
5389
+ .rbc-date-cell>a:visited {
5391
5390
  color: inherit;
5392
5391
  text-decoration: none;
5393
5392
  }
@@ -5410,10 +5409,10 @@
5410
5409
  -ms-flex: 1 0 0%;
5411
5410
  flex: 1 0 0%;
5412
5411
  }
5413
- .rbc-day-bg + .rbc-day-bg {
5412
+ .rbc-day-bg+.rbc-day-bg {
5414
5413
  border-left: 1px solid hsl(var(--border));
5415
5414
  }
5416
- .rbc-rtl .rbc-day-bg + .rbc-day-bg {
5415
+ .rbc-rtl .rbc-day-bg+.rbc-day-bg {
5417
5416
  border-left-width: 0;
5418
5417
  border-right: 1px solid hsl(var(--border));
5419
5418
  }
@@ -5426,7 +5425,7 @@
5426
5425
  box-shadow: 0 5px 15px rgba(0, 0, 0, 0.25);
5427
5426
  padding: 10px;
5428
5427
  }
5429
- .rbc-overlay > * + * {
5428
+ .rbc-overlay>*+* {
5430
5429
  margin-top: 1px;
5431
5430
  }
5432
5431
  .rbc-overlay-header {
@@ -5453,7 +5452,7 @@
5453
5452
  border-spacing: 0;
5454
5453
  border-collapse: collapse;
5455
5454
  }
5456
- .rbc-agenda-view table.rbc-agenda-table tbody > tr > td {
5455
+ .rbc-agenda-view table.rbc-agenda-table tbody>tr>td {
5457
5456
  padding: 5px 10px;
5458
5457
  vertical-align: top;
5459
5458
  }
@@ -5462,22 +5461,22 @@
5462
5461
  padding-right: 15px;
5463
5462
  text-transform: lowercase;
5464
5463
  }
5465
- .rbc-agenda-view table.rbc-agenda-table tbody > tr > td + td {
5464
+ .rbc-agenda-view table.rbc-agenda-table tbody>tr>td+td {
5466
5465
  border-left: 1px solid hsl(var(--border));
5467
5466
  }
5468
- .rbc-rtl .rbc-agenda-view table.rbc-agenda-table tbody > tr > td + td {
5467
+ .rbc-rtl .rbc-agenda-view table.rbc-agenda-table tbody>tr>td+td {
5469
5468
  border-left-width: 0;
5470
5469
  border-right: 1px solid hsl(var(--border));
5471
5470
  }
5472
- .rbc-agenda-view table.rbc-agenda-table tbody > tr + tr {
5471
+ .rbc-agenda-view table.rbc-agenda-table tbody>tr+tr {
5473
5472
  border-top: 1px solid hsl(var(--border));
5474
5473
  }
5475
- .rbc-agenda-view table.rbc-agenda-table thead > tr > th {
5474
+ .rbc-agenda-view table.rbc-agenda-table thead>tr>th {
5476
5475
  padding: 3px 5px;
5477
5476
  text-align: left;
5478
5477
  border-bottom: 1px solid hsl(var(--border));
5479
5478
  }
5480
- .rbc-rtl .rbc-agenda-view table.rbc-agenda-table thead > tr > th {
5479
+ .rbc-rtl .rbc-agenda-view table.rbc-agenda-table thead>tr>th {
5481
5480
  text-align: right;
5482
5481
  }
5483
5482
  .rbc-agenda-time-cell {
@@ -5489,7 +5488,7 @@
5489
5488
  .rbc-agenda-time-cell .rbc-continues-prior:before {
5490
5489
  content: "« ";
5491
5490
  }
5492
- .rbc-agenda-date-cell,
5491
+ .rbc-agenda-date-cell,
5493
5492
  .rbc-agenda-time-cell {
5494
5493
  white-space: nowrap;
5495
5494
  }
@@ -5522,7 +5521,7 @@
5522
5521
  -ms-flex-flow: column nowrap;
5523
5522
  flex-flow: column nowrap;
5524
5523
  }
5525
- .rbc-time-gutter,
5524
+ .rbc-time-gutter,
5526
5525
  .rbc-header-gutter {
5527
5526
  -webkit-box-flex: 0;
5528
5527
  -ms-flex: none;
@@ -5546,7 +5545,7 @@
5546
5545
  left: 10px;
5547
5546
  right: 0;
5548
5547
  }
5549
- .rbc-day-slot .rbc-event,
5548
+ .rbc-day-slot .rbc-event,
5550
5549
  .rbc-day-slot .rbc-background-event {
5551
5550
  border: 1px solid #265985;
5552
5551
  display: -webkit-box;
@@ -5587,7 +5586,7 @@
5587
5586
  .rbc-day-slot .rbc-time-slot {
5588
5587
  border-top: 1px solid hsl(var(--border));
5589
5588
  }
5590
- .rbc-time-view-resources .rbc-time-gutter,
5589
+ .rbc-time-view-resources .rbc-time-gutter,
5591
5590
  .rbc-time-view-resources .rbc-time-header-gutter {
5592
5591
  position: sticky;
5593
5592
  left: 0;
@@ -5613,7 +5612,7 @@
5613
5612
  .rbc-time-view-resources .rbc-day-slot {
5614
5613
  min-width: 140px;
5615
5614
  }
5616
- .rbc-time-view-resources .rbc-header,
5615
+ .rbc-time-view-resources .rbc-header,
5617
5616
  .rbc-time-view-resources .rbc-day-bg {
5618
5617
  width: 140px;
5619
5618
  -webkit-box-flex: 1;
@@ -5622,7 +5621,7 @@
5622
5621
  -ms-flex-preferred-size: 0 px;
5623
5622
  flex-basis: 0 px;
5624
5623
  }
5625
- .rbc-time-header-content + .rbc-time-header-content {
5624
+ .rbc-time-header-content+.rbc-time-header-content {
5626
5625
  margin-left: -1px;
5627
5626
  }
5628
5627
  .rbc-time-slot {
@@ -5674,7 +5673,7 @@
5674
5673
  height: 100%;
5675
5674
  position: relative;
5676
5675
  }
5677
- .rbc-time-view .rbc-allday-cell + .rbc-allday-cell {
5676
+ .rbc-time-view .rbc-allday-cell+.rbc-allday-cell {
5678
5677
  border-left: 1px solid hsl(var(--border));
5679
5678
  }
5680
5679
  .rbc-time-view .rbc-allday-events {
@@ -5705,10 +5704,10 @@
5705
5704
  border-right-width: 0;
5706
5705
  border-left: 1px solid hsl(var(--border));
5707
5706
  }
5708
- .rbc-time-header > .rbc-row:first-child {
5707
+ .rbc-time-header>.rbc-row:first-child {
5709
5708
  border-bottom: 1px solid hsl(var(--border));
5710
5709
  }
5711
- .rbc-time-header > .rbc-row.rbc-row-resource {
5710
+ .rbc-time-header>.rbc-row.rbc-row-resource {
5712
5711
  border-bottom: 1px solid hsl(var(--border));
5713
5712
  }
5714
5713
  .rbc-time-header-cell-single-day {
@@ -5732,7 +5731,7 @@
5732
5731
  border-left-width: 0;
5733
5732
  border-right: 1px solid hsl(var(--border));
5734
5733
  }
5735
- .rbc-time-header-content > .rbc-row.rbc-row-resource {
5734
+ .rbc-time-header-content>.rbc-row.rbc-row-resource {
5736
5735
  border-bottom: 1px solid hsl(var(--border));
5737
5736
  -ms-flex-negative: 0;
5738
5737
  flex-shrink: 0;
@@ -5752,19 +5751,19 @@
5752
5751
  overflow-y: auto;
5753
5752
  position: relative;
5754
5753
  }
5755
- .rbc-time-content > .rbc-time-gutter {
5754
+ .rbc-time-content>.rbc-time-gutter {
5756
5755
  -webkit-box-flex: 0;
5757
5756
  -ms-flex: none;
5758
5757
  flex: none;
5759
5758
  }
5760
- .rbc-time-content > * + * > * {
5759
+ .rbc-time-content>*+*>* {
5761
5760
  border-left: 1px solid hsl(var(--border));
5762
5761
  }
5763
- .rbc-rtl .rbc-time-content > * + * > * {
5762
+ .rbc-rtl .rbc-time-content>*+*>* {
5764
5763
  border-left-width: 0;
5765
5764
  border-right: 1px solid hsl(var(--border));
5766
5765
  }
5767
- .rbc-time-content > .rbc-day-slot {
5766
+ .rbc-time-content>.rbc-day-slot {
5768
5767
  width: 100%;
5769
5768
  -moz-user-select: none;
5770
5769
  -ms-user-select: none;
@@ -6164,4 +6163,4 @@
6164
6163
  --tw-exit-translate-y: 0;
6165
6164
  }
6166
6165
  }
6167
- }
6166
+ }
package/package.json CHANGED
@@ -1,103 +1,103 @@
1
- {
2
- "name": "ikoncomponents",
3
- "version": "1.3.3",
4
- "main": "dist/index.js",
5
- "types": "dist/index.d.ts",
6
- "css": "dist/styles.css",
7
- "files": [
8
- "dist"
9
- ],
10
- "scripts": {
11
- "build": "npm run build:js && npm run build:css",
12
- "build:js": "tsc -p tsconfig.json",
13
- "build:css": "postcss src/styles.css -o dist/styles.css --config postcss.config.mjs --minify",
14
- "clean": "rimraf dist",
15
- "prepublishOnly": "npm run build"
16
- },
17
- "dependencies": {
18
- "@radix-ui/react-accordion": "^1.2.12",
19
- "@radix-ui/react-alert-dialog": "^1.1.15",
20
- "@radix-ui/react-aspect-ratio": "^1.1.7",
21
- "@radix-ui/react-avatar": "^1.1.10",
22
- "@radix-ui/react-checkbox": "^1.3.3",
23
- "@radix-ui/react-dialog": "^1.1.15",
24
- "@radix-ui/react-dropdown-menu": "^2.1.16",
25
- "@radix-ui/react-hover-card": "^1.1.15",
26
- "@radix-ui/react-icons": "^1.3.0",
27
- "@radix-ui/react-label": "^2.1.7",
28
- "@radix-ui/react-navigation-menu": "^1.2.14",
29
- "@radix-ui/react-popover": "^1.1.15",
30
- "@radix-ui/react-progress": "^1.1.7",
31
- "@radix-ui/react-radio-group": "^1.3.8",
32
- "@radix-ui/react-scroll-area": "^1.2.10",
33
- "@radix-ui/react-select": "^2.2.6",
34
- "@radix-ui/react-separator": "^1.1.7",
35
- "@radix-ui/react-slider": "^1.3.6",
36
- "@radix-ui/react-slot": "^1.2.3",
37
- "@radix-ui/react-switch": "^1.2.6",
38
- "@radix-ui/react-tabs": "^1.1.13",
39
- "@radix-ui/react-toggle": "^1.1.10",
40
- "@radix-ui/react-toggle-group": "^1.1.11",
41
- "@radix-ui/react-tooltip": "^1.2.8",
42
- "@tanstack/react-table": "^8.21.3",
43
- "axios": "^1.13.1",
44
- "class-variance-authority": "^0.7.1",
45
- "clsx": "^2.1.1",
46
- "cmdk": "^1.1.1",
47
- "countries-list": "^3.1.1",
48
- "country-flag-icons": "^1.5.21",
49
- "crypto-js": "^4.2.0",
50
- "date-fns": "^4.1.0",
51
- "echarts": "^6.0.0",
52
- "eslint": "^9",
53
- "framer-motion": "^12.23.22",
54
- "input-otp": "^1.4.2",
55
- "jwt-decode": "^4.0.0",
56
- "lucide-react": "^0.552.0",
57
- "motion": "^12.23.22",
58
- "next": "16.0.0",
59
- "next-themes": "^0.4.6",
60
- "react": "^18.2.0",
61
- "react-big-calendar": "^1.19.4",
62
- "react-cropper": "^2.3.3",
63
- "react-day-picker": "^9.9.0",
64
- "react-dom": "^18.2.0",
65
- "react-hook-form": "^7.64.0",
66
- "shadcn": "^3.5.0",
67
- "sonner": "^2.0.7",
68
- "tailwind-merge": "^3.3.1",
69
- "tailwindcss-animate": "^1.0.7",
70
- "uuid": "^13.0.0",
71
- "vaul": "^1.1.2",
72
- "zxcvbn": "^4.4.2"
73
- },
74
- "devDependencies": {
75
- "@tailwindcss/postcss": "^4",
76
- "@types/crypto-js": "^4.2.2",
77
- "@types/node": "^20",
78
- "@types/react": "^19",
79
- "@types/react-big-calendar": "^1.16.3",
80
- "@types/react-dom": "^19",
81
- "@types/zxcvbn": "^4.4.5",
82
- "autoprefixer": "^10.4.21",
83
- "eslint": "^9",
84
- "eslint-config-next": "16.0.0",
85
- "next": "^14.0.0",
86
- "postcss": "^8.5.6",
87
- "postcss-cli": "^11.0.1",
88
- "postcss-import": "^16.1.1",
89
- "postcss-preset-env": "^10.4.0",
90
- "rimraf": "^6.0.1",
91
- "tailwindcss": "^4",
92
- "tw-animate-css": "^1.4.0",
93
- "typescript": "^5"
94
- },
95
- "peerDependencies": {
96
- "clsx": "^2.1.1",
97
- "next": "16.0.0",
98
- "next-themes": "^0.4.6",
99
- "react": "^18.2.0",
100
- "react-dom": "^18.2.0",
101
- "tailwind-merge": "^3.3.1"
102
- }
103
- }
1
+ {
2
+ "name": "ikoncomponents",
3
+ "version": "1.3.4",
4
+ "main": "dist/index.js",
5
+ "types": "dist/index.d.ts",
6
+ "css": "dist/styles.css",
7
+ "files": [
8
+ "dist"
9
+ ],
10
+ "scripts": {
11
+ "build": "npm run build:js && npm run build:css",
12
+ "build:js": "tsc -p tsconfig.json",
13
+ "build:css": "postcss src/styles.css -o dist/styles.css --config postcss.config.mjs --minify",
14
+ "clean": "rimraf dist",
15
+ "prepublishOnly": "npm run build"
16
+ },
17
+ "dependencies": {
18
+ "@radix-ui/react-accordion": "^1.2.12",
19
+ "@radix-ui/react-alert-dialog": "^1.1.15",
20
+ "@radix-ui/react-aspect-ratio": "^1.1.7",
21
+ "@radix-ui/react-avatar": "^1.1.10",
22
+ "@radix-ui/react-checkbox": "^1.3.3",
23
+ "@radix-ui/react-dialog": "^1.1.15",
24
+ "@radix-ui/react-dropdown-menu": "^2.1.16",
25
+ "@radix-ui/react-hover-card": "^1.1.15",
26
+ "@radix-ui/react-icons": "^1.3.0",
27
+ "@radix-ui/react-label": "^2.1.7",
28
+ "@radix-ui/react-navigation-menu": "^1.2.14",
29
+ "@radix-ui/react-popover": "^1.1.15",
30
+ "@radix-ui/react-progress": "^1.1.7",
31
+ "@radix-ui/react-radio-group": "^1.3.8",
32
+ "@radix-ui/react-scroll-area": "^1.2.10",
33
+ "@radix-ui/react-select": "^2.2.6",
34
+ "@radix-ui/react-separator": "^1.1.7",
35
+ "@radix-ui/react-slider": "^1.3.6",
36
+ "@radix-ui/react-slot": "^1.2.3",
37
+ "@radix-ui/react-switch": "^1.2.6",
38
+ "@radix-ui/react-tabs": "^1.1.13",
39
+ "@radix-ui/react-toggle": "^1.1.10",
40
+ "@radix-ui/react-toggle-group": "^1.1.11",
41
+ "@radix-ui/react-tooltip": "^1.2.8",
42
+ "@tanstack/react-table": "^8.21.3",
43
+ "axios": "^1.13.1",
44
+ "class-variance-authority": "^0.7.1",
45
+ "clsx": "^2.1.1",
46
+ "cmdk": "^1.1.1",
47
+ "countries-list": "^3.1.1",
48
+ "country-flag-icons": "^1.5.21",
49
+ "crypto-js": "^4.2.0",
50
+ "date-fns": "^4.1.0",
51
+ "echarts": "^6.0.0",
52
+ "eslint": "^9",
53
+ "framer-motion": "^12.23.22",
54
+ "input-otp": "^1.4.2",
55
+ "jwt-decode": "^4.0.0",
56
+ "lucide-react": "^0.552.0",
57
+ "motion": "^12.23.22",
58
+ "next": "16.0.0",
59
+ "next-themes": "^0.4.6",
60
+ "react": "^18.2.0",
61
+ "react-big-calendar": "^1.19.4",
62
+ "react-cropper": "^2.3.3",
63
+ "react-day-picker": "^9.9.0",
64
+ "react-dom": "^18.2.0",
65
+ "react-hook-form": "^7.64.0",
66
+ "shadcn": "^3.5.0",
67
+ "sonner": "^2.0.7",
68
+ "tailwind-merge": "^3.3.1",
69
+ "tailwindcss-animate": "^1.0.7",
70
+ "uuid": "^13.0.0",
71
+ "vaul": "^1.1.2",
72
+ "zxcvbn": "^4.4.2"
73
+ },
74
+ "devDependencies": {
75
+ "@tailwindcss/postcss": "^4",
76
+ "@types/crypto-js": "^4.2.2",
77
+ "@types/node": "^20",
78
+ "@types/react": "^19",
79
+ "@types/react-big-calendar": "^1.16.3",
80
+ "@types/react-dom": "^19",
81
+ "@types/zxcvbn": "^4.4.5",
82
+ "autoprefixer": "^10.4.21",
83
+ "eslint": "^9",
84
+ "eslint-config-next": "16.0.0",
85
+ "next": "^14.0.0",
86
+ "postcss": "^8.5.6",
87
+ "postcss-cli": "^11.0.1",
88
+ "postcss-import": "^16.1.1",
89
+ "postcss-preset-env": "^10.4.0",
90
+ "rimraf": "^6.0.1",
91
+ "tailwindcss": "^4",
92
+ "tw-animate-css": "^1.4.0",
93
+ "typescript": "^5"
94
+ },
95
+ "peerDependencies": {
96
+ "clsx": "^2.1.1",
97
+ "next": "16.0.0",
98
+ "next-themes": "^0.4.6",
99
+ "react": "^18.2.0",
100
+ "react-dom": "^18.2.0",
101
+ "tailwind-merge": "^3.3.1"
102
+ }
103
+ }