@syuttechnologies/layout 1.0.2 → 1.0.21
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 +536 -0
- package/dist/components/ChangePasswordModal.d.ts.map +1 -1
- package/dist/components/ChangePasswordModal.js +22 -11
- package/dist/components/EnterpriseLayout.d.ts.map +1 -1
- package/dist/components/EnterpriseLayout.js +21 -6
- package/dist/components/ui/ActionMenu/ActionMenu.d.ts +52 -0
- package/dist/components/ui/ActionMenu/ActionMenu.d.ts.map +1 -0
- package/dist/components/ui/ActionMenu/ActionMenu.js +116 -0
- package/dist/components/ui/ActionMenu/index.d.ts +3 -0
- package/dist/components/ui/ActionMenu/index.d.ts.map +1 -0
- package/dist/components/ui/ActionMenu/index.js +2 -0
- package/dist/components/ui/ModuleHeader/ModuleHeader.d.ts +90 -0
- package/dist/components/ui/ModuleHeader/ModuleHeader.d.ts.map +1 -0
- package/dist/components/ui/ModuleHeader/ModuleHeader.js +433 -0
- package/dist/components/ui/ModuleHeader/index.d.ts +3 -0
- package/dist/components/ui/ModuleHeader/index.d.ts.map +1 -0
- package/dist/components/ui/ModuleHeader/index.js +1 -0
- package/dist/components/ui/SyutGrid/SyutGrid.d.ts +74 -0
- package/dist/components/ui/SyutGrid/SyutGrid.d.ts.map +1 -0
- package/dist/components/ui/SyutGrid/SyutGrid.js +306 -0
- package/dist/components/ui/SyutGrid/index.d.ts +3 -0
- package/dist/components/ui/SyutGrid/index.d.ts.map +1 -0
- package/dist/components/ui/SyutGrid/index.js +2 -0
- package/dist/components/ui/SyutSelect/SyutSelectUnified.d.ts +128 -0
- package/dist/components/ui/SyutSelect/SyutSelectUnified.d.ts.map +1 -0
- package/dist/components/ui/SyutSelect/SyutSelectUnified.js +679 -0
- package/dist/components/ui/SyutSelect/index.d.ts +3 -0
- package/dist/components/ui/SyutSelect/index.d.ts.map +1 -0
- package/dist/components/ui/SyutSelect/index.js +2 -0
- package/dist/icon-collection/icon-systems.d.ts +89 -0
- package/dist/icon-collection/icon-systems.d.ts.map +1 -0
- package/dist/icon-collection/icon-systems.js +70 -0
- package/dist/icon-collection/index.d.ts +4 -0
- package/dist/icon-collection/index.d.ts.map +1 -0
- package/dist/icon-collection/index.js +8 -0
- package/dist/index.d.ts +12 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +19 -1
- package/package.json +9 -4
- package/src/components/ChangePasswordModal.tsx +26 -14
- package/src/components/EnterpriseLayout.tsx +23 -8
- package/src/components/ui/ActionMenu/ActionMenu.tsx +222 -0
- package/src/components/ui/ActionMenu/index.ts +2 -0
- package/src/components/ui/ModuleHeader/ModuleHeader.tsx +722 -0
- package/src/components/ui/ModuleHeader/index.ts +9 -0
- package/src/components/ui/SyutGrid/SyutGrid.tsx +483 -0
- package/src/components/ui/SyutGrid/index.ts +2 -0
- package/src/components/ui/SyutSelect/SyutSelectUnified.tsx +1115 -0
- package/src/components/ui/SyutSelect/index.ts +3 -0
- package/src/icon-collection/icon-systems.tsx +464 -0
- package/src/icon-collection/index.ts +13 -0
- package/src/index.ts +47 -1
- package/tsconfig.tsbuildinfo +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/ui/SyutSelect/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AACjE,YAAY,EAAE,sBAAsB,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC"}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ============================================================================
|
|
3
|
+
* ENTERPRISE PROFESSIONAL ICON SYSTEM v3.1 (FIXED)
|
|
4
|
+
* ============================================================================
|
|
5
|
+
*
|
|
6
|
+
* Professional outline icons for enterprise applications
|
|
7
|
+
* Simple, clean, monochrome design similar to industry standards
|
|
8
|
+
*
|
|
9
|
+
* Features:
|
|
10
|
+
* - Outline style (no fills)
|
|
11
|
+
* - Consistent stroke width
|
|
12
|
+
* - Monochrome (inherits color)
|
|
13
|
+
* - Professional appearance
|
|
14
|
+
* - Optimized for 16-20px sizes
|
|
15
|
+
*
|
|
16
|
+
* Usage:
|
|
17
|
+
* import { IconSystem } from '@syuttechnologies/layout';
|
|
18
|
+
* <IconSystem.add size={18} />
|
|
19
|
+
* <IconSystem.edit size={16} color="var(--primary)" />
|
|
20
|
+
*
|
|
21
|
+
* ============================================================================
|
|
22
|
+
*/
|
|
23
|
+
import React from 'react';
|
|
24
|
+
export interface IconProps {
|
|
25
|
+
size?: number;
|
|
26
|
+
color?: string;
|
|
27
|
+
strokeWidth?: number;
|
|
28
|
+
className?: string;
|
|
29
|
+
style?: React.CSSProperties;
|
|
30
|
+
onClick?: (event: React.MouseEvent<SVGSVGElement>) => void;
|
|
31
|
+
}
|
|
32
|
+
declare const IconSystem: {
|
|
33
|
+
home: ({ size, color, strokeWidth, ...props }: IconProps) => import("react/jsx-runtime").JSX.Element;
|
|
34
|
+
menu: ({ size, color, strokeWidth, ...props }: IconProps) => import("react/jsx-runtime").JSX.Element;
|
|
35
|
+
dashboard: ({ size, color, strokeWidth, ...props }: IconProps) => import("react/jsx-runtime").JSX.Element;
|
|
36
|
+
list: ({ size, color, strokeWidth, ...props }: IconProps) => import("react/jsx-runtime").JSX.Element;
|
|
37
|
+
grid: ({ size, color, strokeWidth, ...props }: IconProps) => import("react/jsx-runtime").JSX.Element;
|
|
38
|
+
add: ({ size, color, strokeWidth, ...props }: IconProps) => import("react/jsx-runtime").JSX.Element;
|
|
39
|
+
edit: ({ size, color, strokeWidth, ...props }: IconProps) => import("react/jsx-runtime").JSX.Element;
|
|
40
|
+
trash: ({ size, color, strokeWidth, ...props }: IconProps) => import("react/jsx-runtime").JSX.Element;
|
|
41
|
+
save: ({ size, color, strokeWidth, ...props }: IconProps) => import("react/jsx-runtime").JSX.Element;
|
|
42
|
+
cancel: ({ size, color, strokeWidth, ...props }: IconProps) => import("react/jsx-runtime").JSX.Element;
|
|
43
|
+
x: ({ size, color, strokeWidth, ...props }: IconProps) => import("react/jsx-runtime").JSX.Element;
|
|
44
|
+
search: ({ size, color, strokeWidth, ...props }: IconProps) => import("react/jsx-runtime").JSX.Element;
|
|
45
|
+
filter: ({ size, color, strokeWidth, ...props }: IconProps) => import("react/jsx-runtime").JSX.Element;
|
|
46
|
+
refresh: ({ size, color, strokeWidth, ...props }: IconProps) => import("react/jsx-runtime").JSX.Element;
|
|
47
|
+
exportIcon: ({ size, color, strokeWidth, ...props }: IconProps) => import("react/jsx-runtime").JSX.Element;
|
|
48
|
+
importIcon: ({ size, color, strokeWidth, ...props }: IconProps) => import("react/jsx-runtime").JSX.Element;
|
|
49
|
+
download: ({ size, color, strokeWidth, ...props }: IconProps) => import("react/jsx-runtime").JSX.Element;
|
|
50
|
+
upload: ({ size, color, strokeWidth, ...props }: IconProps) => import("react/jsx-runtime").JSX.Element;
|
|
51
|
+
print: ({ size, color, strokeWidth, ...props }: IconProps) => import("react/jsx-runtime").JSX.Element;
|
|
52
|
+
file: ({ size, color, strokeWidth, ...props }: IconProps) => import("react/jsx-runtime").JSX.Element;
|
|
53
|
+
folder: ({ size, color, strokeWidth, ...props }: IconProps) => import("react/jsx-runtime").JSX.Element;
|
|
54
|
+
copy: ({ size, color, strokeWidth, ...props }: IconProps) => import("react/jsx-runtime").JSX.Element;
|
|
55
|
+
chevronLeft: ({ size, color, strokeWidth, ...props }: IconProps) => import("react/jsx-runtime").JSX.Element;
|
|
56
|
+
chevronRight: ({ size, color, strokeWidth, ...props }: IconProps) => import("react/jsx-runtime").JSX.Element;
|
|
57
|
+
chevronUp: ({ size, color, strokeWidth, ...props }: IconProps) => import("react/jsx-runtime").JSX.Element;
|
|
58
|
+
chevronDown: ({ size, color, strokeWidth, ...props }: IconProps) => import("react/jsx-runtime").JSX.Element;
|
|
59
|
+
arrowLeft: ({ size, color, strokeWidth, ...props }: IconProps) => import("react/jsx-runtime").JSX.Element;
|
|
60
|
+
arrowRight: ({ size, color, strokeWidth, ...props }: IconProps) => import("react/jsx-runtime").JSX.Element;
|
|
61
|
+
check: ({ size, color, strokeWidth, ...props }: IconProps) => import("react/jsx-runtime").JSX.Element;
|
|
62
|
+
checkCircle: ({ size, color, strokeWidth, ...props }: IconProps) => import("react/jsx-runtime").JSX.Element;
|
|
63
|
+
xCircle: ({ size, color, strokeWidth, ...props }: IconProps) => import("react/jsx-runtime").JSX.Element;
|
|
64
|
+
alert: ({ size, color, strokeWidth, ...props }: IconProps) => import("react/jsx-runtime").JSX.Element;
|
|
65
|
+
warning: ({ size, color, strokeWidth, ...props }: IconProps) => import("react/jsx-runtime").JSX.Element;
|
|
66
|
+
info: ({ size, color, strokeWidth, ...props }: IconProps) => import("react/jsx-runtime").JSX.Element;
|
|
67
|
+
eye: ({ size, color, strokeWidth, ...props }: IconProps) => import("react/jsx-runtime").JSX.Element;
|
|
68
|
+
eyeOff: ({ size, color, strokeWidth, ...props }: IconProps) => import("react/jsx-runtime").JSX.Element;
|
|
69
|
+
user: ({ size, color, strokeWidth, ...props }: IconProps) => import("react/jsx-runtime").JSX.Element;
|
|
70
|
+
users: ({ size, color, strokeWidth, ...props }: IconProps) => import("react/jsx-runtime").JSX.Element;
|
|
71
|
+
settings: ({ size, color, strokeWidth, ...props }: IconProps) => import("react/jsx-runtime").JSX.Element;
|
|
72
|
+
moreVertical: ({ size, color, strokeWidth, ...props }: IconProps) => import("react/jsx-runtime").JSX.Element;
|
|
73
|
+
moreHorizontal: ({ size, color, strokeWidth, ...props }: IconProps) => import("react/jsx-runtime").JSX.Element;
|
|
74
|
+
mail: ({ size, color, strokeWidth, ...props }: IconProps) => import("react/jsx-runtime").JSX.Element;
|
|
75
|
+
message: ({ size, color, strokeWidth, ...props }: IconProps) => import("react/jsx-runtime").JSX.Element;
|
|
76
|
+
bell: ({ size, color, strokeWidth, ...props }: IconProps) => import("react/jsx-runtime").JSX.Element;
|
|
77
|
+
lock: ({ size, color, strokeWidth, ...props }: IconProps) => import("react/jsx-runtime").JSX.Element;
|
|
78
|
+
unlock: ({ size, color, strokeWidth, ...props }: IconProps) => import("react/jsx-runtime").JSX.Element;
|
|
79
|
+
calendar: ({ size, color, strokeWidth, ...props }: IconProps) => import("react/jsx-runtime").JSX.Element;
|
|
80
|
+
clock: ({ size, color, strokeWidth, ...props }: IconProps) => import("react/jsx-runtime").JSX.Element;
|
|
81
|
+
chart: ({ size, color, strokeWidth, ...props }: IconProps) => import("react/jsx-runtime").JSX.Element;
|
|
82
|
+
trendingUp: ({ size, color, strokeWidth, ...props }: IconProps) => import("react/jsx-runtime").JSX.Element;
|
|
83
|
+
trendingDown: ({ size, color, strokeWidth, ...props }: IconProps) => import("react/jsx-runtime").JSX.Element;
|
|
84
|
+
dollarSign: ({ size, color, strokeWidth, ...props }: IconProps) => import("react/jsx-runtime").JSX.Element;
|
|
85
|
+
tag: ({ size, color, strokeWidth, ...props }: IconProps) => import("react/jsx-runtime").JSX.Element;
|
|
86
|
+
link: ({ size, color, strokeWidth, ...props }: IconProps) => import("react/jsx-runtime").JSX.Element;
|
|
87
|
+
};
|
|
88
|
+
export default IconSystem;
|
|
89
|
+
//# sourceMappingURL=icon-systems.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"icon-systems.d.ts","sourceRoot":"","sources":["../../src/icon-collection/icon-systems.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,MAAM,WAAW,SAAS;IACxB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IAC5B,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK,IAAI,CAAC;CAC5D;AAED,QAAA,MAAM,UAAU;mDAI2D,SAAS;mDAOT,SAAS;wDAQJ,SAAS;mDASd,SAAS;mDAWT,SAAS;kDAWV,SAAS;mDAOR,SAAS;oDAOR,SAAS;mDASV,SAAS;qDAQP,SAAS;gDAQd,SAAS;qDASJ,SAAS;qDAOT,SAAS;sDAMR,SAAS;yDAUN,SAAS;yDAQT,SAAS;uDAQX,SAAS;qDAQX,SAAS;oDAQV,SAAS;mDAUV,SAAS;qDAOP,SAAS;mDAMX,SAAS;0DASF,SAAS;2DAMR,SAAS;wDAMZ,SAAS;0DAMP,SAAS;wDAMX,SAAS;yDAOR,SAAS;oDASd,SAAS;0DAMH,SAAS;sDAOb,SAAS;oDAQX,SAAS;sDAQP,SAAS;mDAQZ,SAAS;kDAUV,SAAS;qDAON,SAAS;mDASX,SAAS;oDAOR,SAAS;uDASN,SAAS;2DAQL,SAAS;6DAQP,SAAS;mDAUnB,SAAS;sDAON,SAAS;mDAMZ,SAAS;mDAST,SAAS;qDAOP,SAAS;uDAOP,SAAS;oDASZ,SAAS;oDAST,SAAS;yDAQJ,SAAS;2DAOP,SAAS;yDAOX,SAAS;kDAOhB,SAAS;mDAOR,SAAS;CAOnF,CAAC;AAEF,eAAe,UAAU,CAAC"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
const IconSystem = {
|
|
3
|
+
// ========== NAVIGATION ICONS ==========
|
|
4
|
+
home: ({ size = 18, color = 'currentColor', strokeWidth = 2, ...props }) => (_jsxs("svg", { width: size, height: size, viewBox: "0 0 24 24", fill: "none", stroke: color, strokeWidth: strokeWidth, strokeLinecap: "round", strokeLinejoin: "round", ...props, children: [_jsx("path", { d: "m3 9 9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z" }), _jsx("polyline", { points: "9 22 9 12 15 12 15 22" })] })),
|
|
5
|
+
menu: ({ size = 18, color = 'currentColor', strokeWidth = 2, ...props }) => (_jsxs("svg", { width: size, height: size, viewBox: "0 0 24 24", fill: "none", stroke: color, strokeWidth: strokeWidth, strokeLinecap: "round", strokeLinejoin: "round", ...props, children: [_jsx("line", { x1: "3", y1: "12", x2: "21", y2: "12" }), _jsx("line", { x1: "3", y1: "6", x2: "21", y2: "6" }), _jsx("line", { x1: "3", y1: "18", x2: "21", y2: "18" })] })),
|
|
6
|
+
dashboard: ({ size = 18, color = 'currentColor', strokeWidth = 2, ...props }) => (_jsxs("svg", { width: size, height: size, viewBox: "0 0 24 24", fill: "none", stroke: color, strokeWidth: strokeWidth, strokeLinecap: "round", strokeLinejoin: "round", ...props, children: [_jsx("rect", { x: "3", y: "3", width: "7", height: "7" }), _jsx("rect", { x: "14", y: "3", width: "7", height: "7" }), _jsx("rect", { x: "14", y: "14", width: "7", height: "7" }), _jsx("rect", { x: "3", y: "14", width: "7", height: "7" })] })),
|
|
7
|
+
list: ({ size = 18, color = 'currentColor', strokeWidth = 2, ...props }) => (_jsxs("svg", { width: size, height: size, viewBox: "0 0 24 24", fill: "none", stroke: color, strokeWidth: strokeWidth, strokeLinecap: "round", strokeLinejoin: "round", ...props, children: [_jsx("line", { x1: "8", y1: "6", x2: "21", y2: "6" }), _jsx("line", { x1: "8", y1: "12", x2: "21", y2: "12" }), _jsx("line", { x1: "8", y1: "18", x2: "21", y2: "18" }), _jsx("line", { x1: "3", y1: "6", x2: "3.01", y2: "6" }), _jsx("line", { x1: "3", y1: "12", x2: "3.01", y2: "12" }), _jsx("line", { x1: "3", y1: "18", x2: "3.01", y2: "18" })] })),
|
|
8
|
+
grid: ({ size = 18, color = 'currentColor', strokeWidth = 2, ...props }) => (_jsxs("svg", { width: size, height: size, viewBox: "0 0 24 24", fill: "none", stroke: color, strokeWidth: strokeWidth, strokeLinecap: "round", strokeLinejoin: "round", ...props, children: [_jsx("rect", { x: "3", y: "3", width: "7", height: "7" }), _jsx("rect", { x: "14", y: "3", width: "7", height: "7" }), _jsx("rect", { x: "14", y: "14", width: "7", height: "7" }), _jsx("rect", { x: "3", y: "14", width: "7", height: "7" })] })),
|
|
9
|
+
// ========== PRIMARY ACTIONS ==========
|
|
10
|
+
add: ({ size = 18, color = 'currentColor', strokeWidth = 2, ...props }) => (_jsxs("svg", { width: size, height: size, viewBox: "0 0 24 24", fill: "none", stroke: color, strokeWidth: strokeWidth, strokeLinecap: "round", strokeLinejoin: "round", ...props, children: [_jsx("line", { x1: "12", y1: "5", x2: "12", y2: "19" }), _jsx("line", { x1: "5", y1: "12", x2: "19", y2: "12" })] })),
|
|
11
|
+
edit: ({ size = 18, color = 'currentColor', strokeWidth = 2, ...props }) => (_jsxs("svg", { width: size, height: size, viewBox: "0 0 24 24", fill: "none", stroke: color, strokeWidth: strokeWidth, strokeLinecap: "round", strokeLinejoin: "round", ...props, children: [_jsx("path", { d: "M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7" }), _jsx("path", { d: "M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z" })] })),
|
|
12
|
+
trash: ({ size = 18, color = 'currentColor', strokeWidth = 2, ...props }) => (_jsxs("svg", { width: size, height: size, viewBox: "0 0 24 24", fill: "none", stroke: color, strokeWidth: strokeWidth, strokeLinecap: "round", strokeLinejoin: "round", ...props, children: [_jsx("polyline", { points: "3 6 5 6 21 6" }), _jsx("path", { d: "M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6m3 0V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2" }), _jsx("line", { x1: "10", y1: "11", x2: "10", y2: "17" }), _jsx("line", { x1: "14", y1: "11", x2: "14", y2: "17" })] })),
|
|
13
|
+
save: ({ size = 18, color = 'currentColor', strokeWidth = 2, ...props }) => (_jsxs("svg", { width: size, height: size, viewBox: "0 0 24 24", fill: "none", stroke: color, strokeWidth: strokeWidth, strokeLinecap: "round", strokeLinejoin: "round", ...props, children: [_jsx("path", { d: "M19 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h11l5 5v11a2 2 0 0 1-2 2z" }), _jsx("polyline", { points: "17 21 17 13 7 13 7 21" }), _jsx("polyline", { points: "7 3 7 8 15 8" })] })),
|
|
14
|
+
cancel: ({ size = 18, color = 'currentColor', strokeWidth = 2, ...props }) => (_jsxs("svg", { width: size, height: size, viewBox: "0 0 24 24", fill: "none", stroke: color, strokeWidth: strokeWidth, strokeLinecap: "round", strokeLinejoin: "round", ...props, children: [_jsx("circle", { cx: "12", cy: "12", r: "10" }), _jsx("line", { x1: "15", y1: "9", x2: "9", y2: "15" }), _jsx("line", { x1: "9", y1: "9", x2: "15", y2: "15" })] })),
|
|
15
|
+
x: ({ size = 18, color = 'currentColor', strokeWidth = 2, ...props }) => (_jsxs("svg", { width: size, height: size, viewBox: "0 0 24 24", fill: "none", stroke: color, strokeWidth: strokeWidth, strokeLinecap: "round", strokeLinejoin: "round", ...props, children: [_jsx("line", { x1: "18", y1: "6", x2: "6", y2: "18" }), _jsx("line", { x1: "6", y1: "6", x2: "18", y2: "18" })] })),
|
|
16
|
+
// ========== SEARCH & FILTER ==========
|
|
17
|
+
search: ({ size = 18, color = 'currentColor', strokeWidth = 2, ...props }) => (_jsxs("svg", { width: size, height: size, viewBox: "0 0 24 24", fill: "none", stroke: color, strokeWidth: strokeWidth, strokeLinecap: "round", strokeLinejoin: "round", ...props, children: [_jsx("circle", { cx: "11", cy: "11", r: "8" }), _jsx("path", { d: "m21 21-4.35-4.35" })] })),
|
|
18
|
+
filter: ({ size = 18, color = 'currentColor', strokeWidth = 2, ...props }) => (_jsx("svg", { width: size, height: size, viewBox: "0 0 24 24", fill: "none", stroke: color, strokeWidth: strokeWidth, strokeLinecap: "round", strokeLinejoin: "round", ...props, children: _jsx("polygon", { points: "22 3 2 3 10 12.46 10 19 14 21 14 12.46 22 3" }) })),
|
|
19
|
+
refresh: ({ size = 18, color = 'currentColor', strokeWidth = 2, ...props }) => (_jsxs("svg", { width: size, height: size, viewBox: "0 0 24 24", fill: "none", stroke: color, strokeWidth: strokeWidth, strokeLinecap: "round", strokeLinejoin: "round", ...props, children: [_jsx("polyline", { points: "23 4 23 10 17 10" }), _jsx("polyline", { points: "1 20 1 14 7 14" }), _jsx("path", { d: "M3.51 9a9 9 0 0 1 14.85-3.36L23 10M1 14l4.64 4.36A9 9 0 0 0 20.49 15" })] })),
|
|
20
|
+
// ========== DATA OPERATIONS ==========
|
|
21
|
+
exportIcon: ({ size = 18, color = 'currentColor', strokeWidth = 2, ...props }) => (_jsxs("svg", { width: size, height: size, viewBox: "0 0 24 24", fill: "none", stroke: color, strokeWidth: strokeWidth, strokeLinecap: "round", strokeLinejoin: "round", ...props, children: [_jsx("path", { d: "M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4" }), _jsx("polyline", { points: "7 10 12 15 17 10" }), _jsx("line", { x1: "12", y1: "15", x2: "12", y2: "3" })] })),
|
|
22
|
+
importIcon: ({ size = 18, color = 'currentColor', strokeWidth = 2, ...props }) => (_jsxs("svg", { width: size, height: size, viewBox: "0 0 24 24", fill: "none", stroke: color, strokeWidth: strokeWidth, strokeLinecap: "round", strokeLinejoin: "round", ...props, children: [_jsx("path", { d: "M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4" }), _jsx("polyline", { points: "17 8 12 3 7 8" }), _jsx("line", { x1: "12", y1: "3", x2: "12", y2: "15" })] })),
|
|
23
|
+
download: ({ size = 18, color = 'currentColor', strokeWidth = 2, ...props }) => (_jsxs("svg", { width: size, height: size, viewBox: "0 0 24 24", fill: "none", stroke: color, strokeWidth: strokeWidth, strokeLinecap: "round", strokeLinejoin: "round", ...props, children: [_jsx("path", { d: "M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4" }), _jsx("polyline", { points: "7 10 12 15 17 10" }), _jsx("line", { x1: "12", y1: "15", x2: "12", y2: "3" })] })),
|
|
24
|
+
upload: ({ size = 18, color = 'currentColor', strokeWidth = 2, ...props }) => (_jsxs("svg", { width: size, height: size, viewBox: "0 0 24 24", fill: "none", stroke: color, strokeWidth: strokeWidth, strokeLinecap: "round", strokeLinejoin: "round", ...props, children: [_jsx("path", { d: "M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4" }), _jsx("polyline", { points: "17 8 12 3 7 8" }), _jsx("line", { x1: "12", y1: "3", x2: "12", y2: "15" })] })),
|
|
25
|
+
print: ({ size = 18, color = 'currentColor', strokeWidth = 2, ...props }) => (_jsxs("svg", { width: size, height: size, viewBox: "0 0 24 24", fill: "none", stroke: color, strokeWidth: strokeWidth, strokeLinecap: "round", strokeLinejoin: "round", ...props, children: [_jsx("polyline", { points: "6 9 6 2 18 2 18 9" }), _jsx("path", { d: "M6 18H4a2 2 0 0 1-2-2v-5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-2" }), _jsx("rect", { x: "6", y: "14", width: "12", height: "8" })] })),
|
|
26
|
+
// ========== FILE OPERATIONS ==========
|
|
27
|
+
file: ({ size = 18, color = 'currentColor', strokeWidth = 2, ...props }) => (_jsxs("svg", { width: size, height: size, viewBox: "0 0 24 24", fill: "none", stroke: color, strokeWidth: strokeWidth, strokeLinecap: "round", strokeLinejoin: "round", ...props, children: [_jsx("path", { d: "M13 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V9z" }), _jsx("polyline", { points: "13 2 13 9 20 9" })] })),
|
|
28
|
+
folder: ({ size = 18, color = 'currentColor', strokeWidth = 2, ...props }) => (_jsx("svg", { width: size, height: size, viewBox: "0 0 24 24", fill: "none", stroke: color, strokeWidth: strokeWidth, strokeLinecap: "round", strokeLinejoin: "round", ...props, children: _jsx("path", { d: "M22 19a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h5l2 3h9a2 2 0 0 1 2 2z" }) })),
|
|
29
|
+
copy: ({ size = 18, color = 'currentColor', strokeWidth = 2, ...props }) => (_jsxs("svg", { width: size, height: size, viewBox: "0 0 24 24", fill: "none", stroke: color, strokeWidth: strokeWidth, strokeLinecap: "round", strokeLinejoin: "round", ...props, children: [_jsx("rect", { x: "9", y: "9", width: "13", height: "13", rx: "2", ry: "2" }), _jsx("path", { d: "M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1" })] })),
|
|
30
|
+
// ========== NAVIGATION ARROWS ==========
|
|
31
|
+
chevronLeft: ({ size = 18, color = 'currentColor', strokeWidth = 2, ...props }) => (_jsx("svg", { width: size, height: size, viewBox: "0 0 24 24", fill: "none", stroke: color, strokeWidth: strokeWidth, strokeLinecap: "round", strokeLinejoin: "round", ...props, children: _jsx("polyline", { points: "15 18 9 12 15 6" }) })),
|
|
32
|
+
chevronRight: ({ size = 18, color = 'currentColor', strokeWidth = 2, ...props }) => (_jsx("svg", { width: size, height: size, viewBox: "0 0 24 24", fill: "none", stroke: color, strokeWidth: strokeWidth, strokeLinecap: "round", strokeLinejoin: "round", ...props, children: _jsx("polyline", { points: "9 18 15 12 9 6" }) })),
|
|
33
|
+
chevronUp: ({ size = 18, color = 'currentColor', strokeWidth = 2, ...props }) => (_jsx("svg", { width: size, height: size, viewBox: "0 0 24 24", fill: "none", stroke: color, strokeWidth: strokeWidth, strokeLinecap: "round", strokeLinejoin: "round", ...props, children: _jsx("polyline", { points: "18 15 12 9 6 15" }) })),
|
|
34
|
+
chevronDown: ({ size = 18, color = 'currentColor', strokeWidth = 2, ...props }) => (_jsx("svg", { width: size, height: size, viewBox: "0 0 24 24", fill: "none", stroke: color, strokeWidth: strokeWidth, strokeLinecap: "round", strokeLinejoin: "round", ...props, children: _jsx("polyline", { points: "6 9 12 15 18 9" }) })),
|
|
35
|
+
arrowLeft: ({ size = 18, color = 'currentColor', strokeWidth = 2, ...props }) => (_jsxs("svg", { width: size, height: size, viewBox: "0 0 24 24", fill: "none", stroke: color, strokeWidth: strokeWidth, strokeLinecap: "round", strokeLinejoin: "round", ...props, children: [_jsx("line", { x1: "19", y1: "12", x2: "5", y2: "12" }), _jsx("polyline", { points: "12 19 5 12 12 5" })] })),
|
|
36
|
+
arrowRight: ({ size = 18, color = 'currentColor', strokeWidth = 2, ...props }) => (_jsxs("svg", { width: size, height: size, viewBox: "0 0 24 24", fill: "none", stroke: color, strokeWidth: strokeWidth, strokeLinecap: "round", strokeLinejoin: "round", ...props, children: [_jsx("line", { x1: "5", y1: "12", x2: "19", y2: "12" }), _jsx("polyline", { points: "12 5 19 12 12 19" })] })),
|
|
37
|
+
// ========== STATUS ICONS ==========
|
|
38
|
+
check: ({ size = 18, color = 'currentColor', strokeWidth = 2, ...props }) => (_jsx("svg", { width: size, height: size, viewBox: "0 0 24 24", fill: "none", stroke: color, strokeWidth: strokeWidth, strokeLinecap: "round", strokeLinejoin: "round", ...props, children: _jsx("polyline", { points: "20 6 9 17 4 12" }) })),
|
|
39
|
+
checkCircle: ({ size = 18, color = 'currentColor', strokeWidth = 2, ...props }) => (_jsxs("svg", { width: size, height: size, viewBox: "0 0 24 24", fill: "none", stroke: color, strokeWidth: strokeWidth, strokeLinecap: "round", strokeLinejoin: "round", ...props, children: [_jsx("path", { d: "M22 11.08V12a10 10 0 1 1-5.93-9.14" }), _jsx("polyline", { points: "22 4 12 14.01 9 11.01" })] })),
|
|
40
|
+
xCircle: ({ size = 18, color = 'currentColor', strokeWidth = 2, ...props }) => (_jsxs("svg", { width: size, height: size, viewBox: "0 0 24 24", fill: "none", stroke: color, strokeWidth: strokeWidth, strokeLinecap: "round", strokeLinejoin: "round", ...props, children: [_jsx("circle", { cx: "12", cy: "12", r: "10" }), _jsx("line", { x1: "15", y1: "9", x2: "9", y2: "15" }), _jsx("line", { x1: "9", y1: "9", x2: "15", y2: "15" })] })),
|
|
41
|
+
alert: ({ size = 18, color = 'currentColor', strokeWidth = 2, ...props }) => (_jsxs("svg", { width: size, height: size, viewBox: "0 0 24 24", fill: "none", stroke: color, strokeWidth: strokeWidth, strokeLinecap: "round", strokeLinejoin: "round", ...props, children: [_jsx("path", { d: "m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3Z" }), _jsx("line", { x1: "12", y1: "9", x2: "12", y2: "13" }), _jsx("line", { x1: "12", y1: "17", x2: "12.01", y2: "17" })] })),
|
|
42
|
+
warning: ({ size = 18, color = 'currentColor', strokeWidth = 2, ...props }) => (_jsxs("svg", { width: size, height: size, viewBox: "0 0 24 24", fill: "none", stroke: color, strokeWidth: strokeWidth, strokeLinecap: "round", strokeLinejoin: "round", ...props, children: [_jsx("path", { d: "m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3Z" }), _jsx("line", { x1: "12", y1: "9", x2: "12", y2: "13" }), _jsx("line", { x1: "12", y1: "17", x2: "12.01", y2: "17" })] })),
|
|
43
|
+
info: ({ size = 18, color = 'currentColor', strokeWidth = 2, ...props }) => (_jsxs("svg", { width: size, height: size, viewBox: "0 0 24 24", fill: "none", stroke: color, strokeWidth: strokeWidth, strokeLinecap: "round", strokeLinejoin: "round", ...props, children: [_jsx("circle", { cx: "12", cy: "12", r: "10" }), _jsx("line", { x1: "12", y1: "16", x2: "12", y2: "12" }), _jsx("line", { x1: "12", y1: "8", x2: "12.01", y2: "8" })] })),
|
|
44
|
+
// ========== VIEW & VISIBILITY ==========
|
|
45
|
+
eye: ({ size = 18, color = 'currentColor', strokeWidth = 2, ...props }) => (_jsxs("svg", { width: size, height: size, viewBox: "0 0 24 24", fill: "none", stroke: color, strokeWidth: strokeWidth, strokeLinecap: "round", strokeLinejoin: "round", ...props, children: [_jsx("path", { d: "M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z" }), _jsx("circle", { cx: "12", cy: "12", r: "3" })] })),
|
|
46
|
+
eyeOff: ({ size = 18, color = 'currentColor', strokeWidth = 2, ...props }) => (_jsxs("svg", { width: size, height: size, viewBox: "0 0 24 24", fill: "none", stroke: color, strokeWidth: strokeWidth, strokeLinecap: "round", strokeLinejoin: "round", ...props, children: [_jsx("path", { d: "M17.94 17.94A10.07 10.07 0 0 1 12 20c-7 0-11-8-11-8a18.45 18.45 0 0 1 5.06-5.94M9.9 4.24A9.12 9.12 0 0 1 12 4c7 0 11 8 11 8a18.5 18.5 0 0 1-2.16 3.19m-6.72-1.07a3 3 0 1 1-4.24-4.24" }), _jsx("line", { x1: "1", y1: "1", x2: "23", y2: "23" })] })),
|
|
47
|
+
// ========== USER & PEOPLE ==========
|
|
48
|
+
user: ({ size = 18, color = 'currentColor', strokeWidth = 2, ...props }) => (_jsxs("svg", { width: size, height: size, viewBox: "0 0 24 24", fill: "none", stroke: color, strokeWidth: strokeWidth, strokeLinecap: "round", strokeLinejoin: "round", ...props, children: [_jsx("path", { d: "M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2" }), _jsx("circle", { cx: "12", cy: "7", r: "4" })] })),
|
|
49
|
+
users: ({ size = 18, color = 'currentColor', strokeWidth = 2, ...props }) => (_jsxs("svg", { width: size, height: size, viewBox: "0 0 24 24", fill: "none", stroke: color, strokeWidth: strokeWidth, strokeLinecap: "round", strokeLinejoin: "round", ...props, children: [_jsx("path", { d: "M17 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2" }), _jsx("circle", { cx: "9", cy: "7", r: "4" }), _jsx("path", { d: "M23 21v-2a4 4 0 0 0-3-3.87" }), _jsx("path", { d: "M16 3.13a4 4 0 0 1 0 7.75" })] })),
|
|
50
|
+
settings: ({ size = 18, color = 'currentColor', strokeWidth = 2, ...props }) => (_jsxs("svg", { width: size, height: size, viewBox: "0 0 24 24", fill: "none", stroke: color, strokeWidth: strokeWidth, strokeLinecap: "round", strokeLinejoin: "round", ...props, children: [_jsx("circle", { cx: "12", cy: "12", r: "3" }), _jsx("path", { d: "M12 1v6m0 6v6m-7-7h6m6 0h6m-6-7L9.879 5.121M5.121 9.879 8 12.828M12 21l7.071-7.071M15.172 8l4.95-4.95" }), _jsx("path", { d: "M19.071 19.071 15.172 16m-7.071 0-4.95 4.95M8.828 8 3.88 3.05" })] })),
|
|
51
|
+
moreVertical: ({ size = 18, color = 'currentColor', strokeWidth = 2, ...props }) => (_jsxs("svg", { width: size, height: size, viewBox: "0 0 24 24", fill: color, stroke: "none", strokeWidth: strokeWidth, strokeLinecap: "round", strokeLinejoin: "round", ...props, children: [_jsx("circle", { cx: "12", cy: "12", r: "2" }), _jsx("circle", { cx: "12", cy: "5", r: "2" }), _jsx("circle", { cx: "12", cy: "19", r: "2" })] })),
|
|
52
|
+
moreHorizontal: ({ size = 18, color = 'currentColor', strokeWidth = 2, ...props }) => (_jsxs("svg", { width: size, height: size, viewBox: "0 0 24 24", fill: color, stroke: "none", strokeWidth: strokeWidth, strokeLinecap: "round", strokeLinejoin: "round", ...props, children: [_jsx("circle", { cx: "12", cy: "12", r: "2" }), _jsx("circle", { cx: "19", cy: "12", r: "2" }), _jsx("circle", { cx: "5", cy: "12", r: "2" })] })),
|
|
53
|
+
// ========== COMMUNICATION ==========
|
|
54
|
+
mail: ({ size = 18, color = 'currentColor', strokeWidth = 2, ...props }) => (_jsxs("svg", { width: size, height: size, viewBox: "0 0 24 24", fill: "none", stroke: color, strokeWidth: strokeWidth, strokeLinecap: "round", strokeLinejoin: "round", ...props, children: [_jsx("path", { d: "M4 4h16c1.1 0 2 .9 2 2v12c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2V6c0-1.1.9-2 2-2z" }), _jsx("polyline", { points: "22,6 12,13 2,6" })] })),
|
|
55
|
+
message: ({ size = 18, color = 'currentColor', strokeWidth = 2, ...props }) => (_jsx("svg", { width: size, height: size, viewBox: "0 0 24 24", fill: "none", stroke: color, strokeWidth: strokeWidth, strokeLinecap: "round", strokeLinejoin: "round", ...props, children: _jsx("path", { d: "M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z" }) })),
|
|
56
|
+
bell: ({ size = 18, color = 'currentColor', strokeWidth = 2, ...props }) => (_jsxs("svg", { width: size, height: size, viewBox: "0 0 24 24", fill: "none", stroke: color, strokeWidth: strokeWidth, strokeLinecap: "round", strokeLinejoin: "round", ...props, children: [_jsx("path", { d: "M18 8A6 6 0 0 0 6 8c0 7-3 9-3 9h18s-3-2-3-9" }), _jsx("path", { d: "M13.73 21a2 2 0 0 1-3.46 0" })] })),
|
|
57
|
+
// ========== SECURITY ==========
|
|
58
|
+
lock: ({ size = 18, color = 'currentColor', strokeWidth = 2, ...props }) => (_jsxs("svg", { width: size, height: size, viewBox: "0 0 24 24", fill: "none", stroke: color, strokeWidth: strokeWidth, strokeLinecap: "round", strokeLinejoin: "round", ...props, children: [_jsx("rect", { x: "3", y: "11", width: "18", height: "11", rx: "2", ry: "2" }), _jsx("path", { d: "M7 11V7a5 5 0 0 1 10 0v4" })] })),
|
|
59
|
+
unlock: ({ size = 18, color = 'currentColor', strokeWidth = 2, ...props }) => (_jsxs("svg", { width: size, height: size, viewBox: "0 0 24 24", fill: "none", stroke: color, strokeWidth: strokeWidth, strokeLinecap: "round", strokeLinejoin: "round", ...props, children: [_jsx("rect", { x: "3", y: "11", width: "18", height: "11", rx: "2", ry: "2" }), _jsx("path", { d: "M7 11V7a5 5 0 0 1 9.9-1" })] })),
|
|
60
|
+
calendar: ({ size = 18, color = 'currentColor', strokeWidth = 2, ...props }) => (_jsxs("svg", { width: size, height: size, viewBox: "0 0 24 24", fill: "none", stroke: color, strokeWidth: strokeWidth, strokeLinecap: "round", strokeLinejoin: "round", ...props, children: [_jsx("rect", { x: "3", y: "4", width: "18", height: "18", rx: "2", ry: "2" }), _jsx("line", { x1: "16", y1: "2", x2: "16", y2: "6" }), _jsx("line", { x1: "8", y1: "2", x2: "8", y2: "6" }), _jsx("line", { x1: "3", y1: "10", x2: "21", y2: "10" })] })),
|
|
61
|
+
clock: ({ size = 18, color = 'currentColor', strokeWidth = 2, ...props }) => (_jsxs("svg", { width: size, height: size, viewBox: "0 0 24 24", fill: "none", stroke: color, strokeWidth: strokeWidth, strokeLinecap: "round", strokeLinejoin: "round", ...props, children: [_jsx("circle", { cx: "12", cy: "12", r: "10" }), _jsx("polyline", { points: "12 6 12 12 16 14" })] })),
|
|
62
|
+
// ========== BUSINESS & ANALYTICS ==========
|
|
63
|
+
chart: ({ size = 18, color = 'currentColor', strokeWidth = 2, ...props }) => (_jsxs("svg", { width: size, height: size, viewBox: "0 0 24 24", fill: "none", stroke: color, strokeWidth: strokeWidth, strokeLinecap: "round", strokeLinejoin: "round", ...props, children: [_jsx("line", { x1: "18", y1: "20", x2: "18", y2: "10" }), _jsx("line", { x1: "12", y1: "20", x2: "12", y2: "4" }), _jsx("line", { x1: "6", y1: "20", x2: "6", y2: "14" })] })),
|
|
64
|
+
trendingUp: ({ size = 18, color = 'currentColor', strokeWidth = 2, ...props }) => (_jsxs("svg", { width: size, height: size, viewBox: "0 0 24 24", fill: "none", stroke: color, strokeWidth: strokeWidth, strokeLinecap: "round", strokeLinejoin: "round", ...props, children: [_jsx("polyline", { points: "23 6 13.5 15.5 8.5 10.5 1 18" }), _jsx("polyline", { points: "17 6 23 6 23 12" })] })),
|
|
65
|
+
trendingDown: ({ size = 18, color = 'currentColor', strokeWidth = 2, ...props }) => (_jsxs("svg", { width: size, height: size, viewBox: "0 0 24 24", fill: "none", stroke: color, strokeWidth: strokeWidth, strokeLinecap: "round", strokeLinejoin: "round", ...props, children: [_jsx("polyline", { points: "23 18 13.5 8.5 8.5 13.5 1 6" }), _jsx("polyline", { points: "17 18 23 18 23 12" })] })),
|
|
66
|
+
dollarSign: ({ size = 18, color = 'currentColor', strokeWidth = 2, ...props }) => (_jsxs("svg", { width: size, height: size, viewBox: "0 0 24 24", fill: "none", stroke: color, strokeWidth: strokeWidth, strokeLinecap: "round", strokeLinejoin: "round", ...props, children: [_jsx("line", { x1: "12", y1: "1", x2: "12", y2: "23" }), _jsx("path", { d: "M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6" })] })),
|
|
67
|
+
tag: ({ size = 18, color = 'currentColor', strokeWidth = 2, ...props }) => (_jsxs("svg", { width: size, height: size, viewBox: "0 0 24 24", fill: "none", stroke: color, strokeWidth: strokeWidth, strokeLinecap: "round", strokeLinejoin: "round", ...props, children: [_jsx("path", { d: "M20.59 13.41l-7.17 7.17a2 2 0 0 1-2.83 0L2 12V2h10l8.59 8.59a2 2 0 0 1 0 2.82z" }), _jsx("line", { x1: "7", y1: "7", x2: "7.01", y2: "7" })] })),
|
|
68
|
+
link: ({ size = 18, color = 'currentColor', strokeWidth = 2, ...props }) => (_jsxs("svg", { width: size, height: size, viewBox: "0 0 24 24", fill: "none", stroke: color, strokeWidth: strokeWidth, strokeLinecap: "round", strokeLinejoin: "round", ...props, children: [_jsx("path", { d: "M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71" }), _jsx("path", { d: "M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71" })] })),
|
|
69
|
+
};
|
|
70
|
+
export default IconSystem;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/icon-collection/index.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAGzC,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAGvD,YAAY,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
// ============================================================================
|
|
2
|
+
// ICON SYSTEM BARREL EXPORTS
|
|
3
|
+
// ============================================================================
|
|
4
|
+
// Centralized export point for the icon system
|
|
5
|
+
// Default export (recommended usage)
|
|
6
|
+
export { default } from './icon-systems';
|
|
7
|
+
// Named export (alternative usage)
|
|
8
|
+
export { default as IconSystem } from './icon-systems';
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @
|
|
2
|
+
* @syuttechnologies/layout - Enterprise React Layout Library
|
|
3
3
|
*
|
|
4
4
|
* A comprehensive layout system for React applications featuring:
|
|
5
5
|
* - Enterprise-grade sidebar navigation with multi-level menus
|
|
@@ -8,9 +8,20 @@
|
|
|
8
8
|
* - Notification system
|
|
9
9
|
* - Responsive design
|
|
10
10
|
* - Change password modal
|
|
11
|
+
* - Data Grid Component (SyutGrid)
|
|
12
|
+
* - Select Component (SyutSelect)
|
|
13
|
+
* - Icon System
|
|
14
|
+
* - Action Menu
|
|
11
15
|
*/
|
|
12
16
|
export { EnterpriseLayout, type EnterpriseLayoutProps, type ComponentRegistry, type LogoConfig, type Colors, type BrandingConfig, type LayoutConfig, type FooterConfig, type UserConfig, type NavigationItem, type NavigationSection, type CompactModeItem, type ToolbarAction, type ModuleConfig, type ModulesConfig, type HooksConfig, type EnterpriseLayoutConfig, type TabData, type IconSystemType, type StoredModuleConfig, } from './components/EnterpriseLayout';
|
|
13
17
|
export { default } from './components/EnterpriseLayout';
|
|
14
18
|
export { ChangePasswordModal, type ChangePasswordModalProps, type ChangePasswordData, type PasswordValidationRules, } from './components/ChangePasswordModal';
|
|
15
19
|
export { notificationService, type NotificationType, type NotificationPayload, type Notification, } from './services/notificationService';
|
|
20
|
+
export { default as IconSystem } from './icon-collection/icon-systems';
|
|
21
|
+
export type { IconProps } from './icon-collection/icon-systems';
|
|
22
|
+
export { ActionMenu, type ActionMenuProps, type ActionMenuItem, type ProcessedActionMenuItem, } from './components/ui/ActionMenu';
|
|
23
|
+
export { SyutGrid, type SyutGridProps, type SyutGridColumn, } from './components/ui/SyutGrid';
|
|
24
|
+
export { SyutSelectUnified, SyutSelectUnified as SyutSelect, // Alias for convenience
|
|
25
|
+
type SyutSelectUnifiedProps, type SelectOption, } from './components/ui/SyutSelect';
|
|
26
|
+
export { ModuleHeader, type ModuleHeaderProps, type ActionButton, type ViewModeOption, type SearchConfig, type ViewModeConfig, type FilterConfig, } from './components/ui/ModuleHeader';
|
|
16
27
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAGH,OAAO,EACL,gBAAgB,EAChB,KAAK,qBAAqB,EAC1B,KAAK,iBAAiB,EACtB,KAAK,UAAU,EACf,KAAK,MAAM,EACX,KAAK,cAAc,EACnB,KAAK,YAAY,EACjB,KAAK,YAAY,EACjB,KAAK,UAAU,EACf,KAAK,cAAc,EACnB,KAAK,iBAAiB,EACtB,KAAK,eAAe,EACpB,KAAK,aAAa,EAClB,KAAK,YAAY,EACjB,KAAK,aAAa,EAClB,KAAK,WAAW,EAChB,KAAK,sBAAsB,EAC3B,KAAK,OAAO,EACZ,KAAK,cAAc,EACnB,KAAK,kBAAkB,GACxB,MAAM,+BAA+B,CAAC;AAEvC,OAAO,EAAE,OAAO,EAAE,MAAM,+BAA+B,CAAC;AAGxD,OAAO,EACL,mBAAmB,EACnB,KAAK,wBAAwB,EAC7B,KAAK,kBAAkB,EACvB,KAAK,uBAAuB,GAC7B,MAAM,kCAAkC,CAAC;AAG1C,OAAO,EACL,mBAAmB,EACnB,KAAK,gBAAgB,EACrB,KAAK,mBAAmB,EACxB,KAAK,YAAY,GAClB,MAAM,gCAAgC,CAAC;AAOxC,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,gCAAgC,CAAC;AACvE,YAAY,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAGhE,OAAO,EACL,UAAU,EACV,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,KAAK,uBAAuB,GAC7B,MAAM,4BAA4B,CAAC;AAGpC,OAAO,EACL,QAAQ,EACR,KAAK,aAAa,EAClB,KAAK,cAAc,GACpB,MAAM,0BAA0B,CAAC;AAGlC,OAAO,EACL,iBAAiB,EACjB,iBAAiB,IAAI,UAAU,EAAE,wBAAwB;AACzD,KAAK,sBAAsB,EAC3B,KAAK,YAAY,GAClB,MAAM,4BAA4B,CAAC;AAGpC,OAAO,EACL,YAAY,EACZ,KAAK,iBAAiB,EACtB,KAAK,YAAY,EACjB,KAAK,cAAc,EACnB,KAAK,YAAY,EACjB,KAAK,cAAc,EACnB,KAAK,YAAY,GAClB,MAAM,8BAA8B,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @
|
|
2
|
+
* @syuttechnologies/layout - Enterprise React Layout Library
|
|
3
3
|
*
|
|
4
4
|
* A comprehensive layout system for React applications featuring:
|
|
5
5
|
* - Enterprise-grade sidebar navigation with multi-level menus
|
|
@@ -8,6 +8,10 @@
|
|
|
8
8
|
* - Notification system
|
|
9
9
|
* - Responsive design
|
|
10
10
|
* - Change password modal
|
|
11
|
+
* - Data Grid Component (SyutGrid)
|
|
12
|
+
* - Select Component (SyutSelect)
|
|
13
|
+
* - Icon System
|
|
14
|
+
* - Action Menu
|
|
11
15
|
*/
|
|
12
16
|
// Main Layout Component
|
|
13
17
|
export { EnterpriseLayout, } from './components/EnterpriseLayout';
|
|
@@ -16,3 +20,17 @@ export { default } from './components/EnterpriseLayout';
|
|
|
16
20
|
export { ChangePasswordModal, } from './components/ChangePasswordModal';
|
|
17
21
|
// Notification Service
|
|
18
22
|
export { notificationService, } from './services/notificationService';
|
|
23
|
+
// ============================================================================
|
|
24
|
+
// UI COMPONENTS
|
|
25
|
+
// ============================================================================
|
|
26
|
+
// Icon System
|
|
27
|
+
export { default as IconSystem } from './icon-collection/icon-systems';
|
|
28
|
+
// Action Menu Component
|
|
29
|
+
export { ActionMenu, } from './components/ui/ActionMenu';
|
|
30
|
+
// SyutGrid - Data Grid Component
|
|
31
|
+
export { SyutGrid, } from './components/ui/SyutGrid';
|
|
32
|
+
// SyutSelect - Unified Select Component
|
|
33
|
+
export { SyutSelectUnified, SyutSelectUnified as SyutSelect, // Alias for convenience
|
|
34
|
+
} from './components/ui/SyutSelect';
|
|
35
|
+
// ModuleHeader - Reusable Header Component for Master Screens
|
|
36
|
+
export { ModuleHeader, } from './components/ui/ModuleHeader';
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@syuttechnologies/layout",
|
|
3
|
-
"version": "1.0.
|
|
4
|
-
"description": "Enterprise React Layout Component",
|
|
3
|
+
"version": "1.0.21",
|
|
4
|
+
"description": "Enterprise React Layout Component with UI Components",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
7
7
|
"scripts": {
|
|
@@ -10,7 +10,9 @@
|
|
|
10
10
|
},
|
|
11
11
|
"peerDependencies": {
|
|
12
12
|
"react": "^18.0.0 || ^19.0.0",
|
|
13
|
-
"react-dom": "^18.0.0 || ^19.0.0"
|
|
13
|
+
"react-dom": "^18.0.0 || ^19.0.0",
|
|
14
|
+
"@tanstack/react-table": "^8.0.0",
|
|
15
|
+
"react-select": "^5.0.0"
|
|
14
16
|
},
|
|
15
17
|
"devDependencies": {
|
|
16
18
|
"@types/react": "^19.0.0",
|
|
@@ -21,7 +23,10 @@
|
|
|
21
23
|
"react",
|
|
22
24
|
"layout",
|
|
23
25
|
"enterprise",
|
|
24
|
-
"dashboard"
|
|
26
|
+
"dashboard",
|
|
27
|
+
"grid",
|
|
28
|
+
"select",
|
|
29
|
+
"ui-components"
|
|
25
30
|
],
|
|
26
31
|
"license": "MIT"
|
|
27
32
|
}
|
|
@@ -135,21 +135,27 @@ const styles = {
|
|
|
135
135
|
backdrop: {
|
|
136
136
|
position: 'fixed' as const,
|
|
137
137
|
inset: 0,
|
|
138
|
-
backgroundColor: 'rgba(0, 0, 0, 0.
|
|
139
|
-
|
|
138
|
+
backgroundColor: 'rgba(0, 0, 0, 0.6)',
|
|
139
|
+
backdropFilter: 'blur(4px)',
|
|
140
|
+
zIndex: 10040,
|
|
141
|
+
overflowY: 'auto' as const,
|
|
142
|
+
overflowX: 'hidden' as const,
|
|
143
|
+
},
|
|
144
|
+
scrollWrapper: {
|
|
145
|
+
minHeight: '100%',
|
|
146
|
+
display: 'flex',
|
|
147
|
+
alignItems: 'center',
|
|
148
|
+
justifyContent: 'center',
|
|
149
|
+
padding: '2rem 1rem',
|
|
140
150
|
},
|
|
141
151
|
modal: {
|
|
142
|
-
position: '
|
|
143
|
-
top: '50%',
|
|
144
|
-
left: '50%',
|
|
145
|
-
transform: 'translate(-50%, -50%)',
|
|
152
|
+
position: 'relative' as const,
|
|
146
153
|
backgroundColor: 'white',
|
|
147
154
|
borderRadius: '12px',
|
|
148
|
-
boxShadow: '0
|
|
155
|
+
boxShadow: '0 25px 50px -12px rgba(0, 0, 0, 0.4)',
|
|
149
156
|
width: '100%',
|
|
150
157
|
maxWidth: '440px',
|
|
151
|
-
zIndex:
|
|
152
|
-
overflow: 'hidden',
|
|
158
|
+
zIndex: 10050,
|
|
153
159
|
},
|
|
154
160
|
header: {
|
|
155
161
|
display: 'flex',
|
|
@@ -158,6 +164,7 @@ const styles = {
|
|
|
158
164
|
padding: '1.25rem 1.5rem',
|
|
159
165
|
borderBottom: '1px solid #e2e8f0',
|
|
160
166
|
background: 'linear-gradient(135deg, #667eea 0%, #764ba2 100%)',
|
|
167
|
+
borderRadius: '12px 12px 0 0',
|
|
161
168
|
},
|
|
162
169
|
headerTitle: {
|
|
163
170
|
display: 'flex',
|
|
@@ -182,6 +189,9 @@ const styles = {
|
|
|
182
189
|
},
|
|
183
190
|
content: {
|
|
184
191
|
padding: '1.5rem',
|
|
192
|
+
overflowY: 'auto' as const,
|
|
193
|
+
flex: 1,
|
|
194
|
+
minHeight: 0,
|
|
185
195
|
},
|
|
186
196
|
formGroup: {
|
|
187
197
|
marginBottom: '1.25rem',
|
|
@@ -283,6 +293,7 @@ const styles = {
|
|
|
283
293
|
padding: '1rem 1.5rem',
|
|
284
294
|
borderTop: '1px solid #e2e8f0',
|
|
285
295
|
backgroundColor: '#f8fafc',
|
|
296
|
+
flexShrink: 0,
|
|
286
297
|
},
|
|
287
298
|
button: {
|
|
288
299
|
padding: '0.625rem 1.25rem',
|
|
@@ -422,9 +433,9 @@ export const ChangePasswordModal: React.FC<ChangePasswordModalProps> = ({
|
|
|
422
433
|
const loading = isSubmitting || externalLoading;
|
|
423
434
|
|
|
424
435
|
return (
|
|
425
|
-
|
|
426
|
-
<div style={styles.
|
|
427
|
-
|
|
436
|
+
<div style={styles.backdrop} onClick={handleClose}>
|
|
437
|
+
<div style={styles.scrollWrapper}>
|
|
438
|
+
<div style={styles.modal} onClick={(e) => e.stopPropagation()}>
|
|
428
439
|
<div style={styles.header}>
|
|
429
440
|
<h2 style={styles.headerTitle}>
|
|
430
441
|
<LockIcon />
|
|
@@ -435,7 +446,7 @@ export const ChangePasswordModal: React.FC<ChangePasswordModalProps> = ({
|
|
|
435
446
|
</button>
|
|
436
447
|
</div>
|
|
437
448
|
|
|
438
|
-
<form onSubmit={handleSubmit}>
|
|
449
|
+
<form onSubmit={handleSubmit} style={{ display: 'flex', flexDirection: 'column', flex: 1, minHeight: 0 }}>
|
|
439
450
|
<div style={styles.content}>
|
|
440
451
|
{getFieldError('general') && (
|
|
441
452
|
<div style={{ padding: '0.75rem', backgroundColor: '#fef2f2', border: '1px solid #fecaca', borderRadius: '8px', marginBottom: '1rem', color: '#dc2626', fontSize: '0.875rem' }}>
|
|
@@ -537,8 +548,9 @@ export const ChangePasswordModal: React.FC<ChangePasswordModalProps> = ({
|
|
|
537
548
|
</button>
|
|
538
549
|
</div>
|
|
539
550
|
</form>
|
|
551
|
+
</div>
|
|
540
552
|
</div>
|
|
541
|
-
|
|
553
|
+
</div>
|
|
542
554
|
);
|
|
543
555
|
};
|
|
544
556
|
|
|
@@ -331,9 +331,6 @@ export const EnterpriseLayout: React.FC<EnterpriseLayoutProps> = ({
|
|
|
331
331
|
setDynamicNavigation(parsedNavigation);
|
|
332
332
|
// Update expanded sections for the new navigation
|
|
333
333
|
setExpandedSections(new Set(parsedNavigation.map((n: NavigationSection) => n.section)));
|
|
334
|
-
setExpandedOverviewSections(
|
|
335
|
-
new Set(parsedNavigation.filter((sec: NavigationSection) => sec.section !== "Dashboard").map((sec: NavigationSection) => sec.section))
|
|
336
|
-
);
|
|
337
334
|
}
|
|
338
335
|
} catch (error) {
|
|
339
336
|
console.error('Failed to parse navigation menu from localStorage:', error);
|
|
@@ -367,6 +364,23 @@ export const EnterpriseLayout: React.FC<EnterpriseLayoutProps> = ({
|
|
|
367
364
|
}
|
|
368
365
|
}, []);
|
|
369
366
|
|
|
367
|
+
// Sync dynamicModules when config.modules prop changes (if no localStorage override)
|
|
368
|
+
useEffect(() => {
|
|
369
|
+
const storedModules = localStorage.getItem('MODULES_CONFIG');
|
|
370
|
+
if (!storedModules && config.modules) {
|
|
371
|
+
setDynamicModules(config.modules);
|
|
372
|
+
}
|
|
373
|
+
}, [config.modules]);
|
|
374
|
+
|
|
375
|
+
// Sync dynamicNavigation when config.navigation prop changes (if no localStorage override)
|
|
376
|
+
useEffect(() => {
|
|
377
|
+
const storedNavigation = localStorage.getItem('NAVIGATION_MENU');
|
|
378
|
+
if (!storedNavigation && config.navigation) {
|
|
379
|
+
setDynamicNavigation(config.navigation);
|
|
380
|
+
setExpandedSections(new Set(config.navigation.map((n: NavigationSection) => n.section)));
|
|
381
|
+
}
|
|
382
|
+
}, [config.navigation]);
|
|
383
|
+
|
|
370
384
|
// User preference for auto-collapse (configurable)
|
|
371
385
|
const [autoCollapseEnabled, setAutoCollapseEnabled] = useState<boolean>(
|
|
372
386
|
config.layout.autoCollapseSidebar
|
|
@@ -374,7 +388,7 @@ export const EnterpriseLayout: React.FC<EnterpriseLayoutProps> = ({
|
|
|
374
388
|
|
|
375
389
|
// Overview tab section management
|
|
376
390
|
const [expandedOverviewSections, setExpandedOverviewSections] = useState<Set<string>>(
|
|
377
|
-
new Set(
|
|
391
|
+
new Set()
|
|
378
392
|
);
|
|
379
393
|
|
|
380
394
|
// React 18 Concurrent Features
|
|
@@ -1539,7 +1553,7 @@ export const EnterpriseLayout: React.FC<EnterpriseLayoutProps> = ({
|
|
|
1539
1553
|
|
|
1540
1554
|
.tab-content-area {
|
|
1541
1555
|
flex: 1;
|
|
1542
|
-
overflow:
|
|
1556
|
+
overflow: auto;
|
|
1543
1557
|
width: 100%;
|
|
1544
1558
|
height: 100%;
|
|
1545
1559
|
min-height: 0;
|
|
@@ -1551,7 +1565,7 @@ export const EnterpriseLayout: React.FC<EnterpriseLayoutProps> = ({
|
|
|
1551
1565
|
display: none;
|
|
1552
1566
|
width: 100%;
|
|
1553
1567
|
height: 100%;
|
|
1554
|
-
overflow:
|
|
1568
|
+
overflow: auto;
|
|
1555
1569
|
box-sizing: border-box;
|
|
1556
1570
|
}
|
|
1557
1571
|
|
|
@@ -1837,6 +1851,7 @@ export const EnterpriseLayout: React.FC<EnterpriseLayoutProps> = ({
|
|
|
1837
1851
|
cursor: pointer;
|
|
1838
1852
|
transition: all 0.3s ease;
|
|
1839
1853
|
flex-shrink: 0;
|
|
1854
|
+
z-index: 10002;
|
|
1840
1855
|
}
|
|
1841
1856
|
|
|
1842
1857
|
.persona-control:hover {
|
|
@@ -1877,7 +1892,7 @@ export const EnterpriseLayout: React.FC<EnterpriseLayoutProps> = ({
|
|
|
1877
1892
|
border-radius: 1rem;
|
|
1878
1893
|
box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12);
|
|
1879
1894
|
padding: 1rem;
|
|
1880
|
-
z-index:
|
|
1895
|
+
z-index: 10001;
|
|
1881
1896
|
margin-top: 0.5rem;
|
|
1882
1897
|
opacity: 0;
|
|
1883
1898
|
visibility: hidden;
|
|
@@ -3483,7 +3498,7 @@ export const EnterpriseLayout: React.FC<EnterpriseLayoutProps> = ({
|
|
|
3483
3498
|
<div className="persona-control-item">
|
|
3484
3499
|
<div className="persona-control-label">
|
|
3485
3500
|
<IconSystem.settings />
|
|
3486
|
-
Dark Mode
|
|
3501
|
+
Dark Mode-7
|
|
3487
3502
|
</div>
|
|
3488
3503
|
<div
|
|
3489
3504
|
className={`theme-switch ${darkMode ? "active" : ""}`}
|