@syuttechnologies/layout 1.0.2 → 1.0.22

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.
Files changed (59) hide show
  1. package/README.md +536 -0
  2. package/assets/logo.png +0 -0
  3. package/dist/components/ChangePasswordModal.d.ts.map +1 -1
  4. package/dist/components/ChangePasswordModal.js +22 -11
  5. package/dist/components/EnterpriseLayout.d.ts.map +1 -1
  6. package/dist/components/EnterpriseLayout.js +1975 -1960
  7. package/dist/components/temp.d.ts +1 -0
  8. package/dist/components/temp.d.ts.map +1 -0
  9. package/dist/components/temp.js +1 -0
  10. package/dist/components/ui/ActionMenu/ActionMenu.d.ts +52 -0
  11. package/dist/components/ui/ActionMenu/ActionMenu.d.ts.map +1 -0
  12. package/dist/components/ui/ActionMenu/ActionMenu.js +116 -0
  13. package/dist/components/ui/ActionMenu/index.d.ts +3 -0
  14. package/dist/components/ui/ActionMenu/index.d.ts.map +1 -0
  15. package/dist/components/ui/ActionMenu/index.js +2 -0
  16. package/dist/components/ui/ModuleHeader/ModuleHeader.d.ts +90 -0
  17. package/dist/components/ui/ModuleHeader/ModuleHeader.d.ts.map +1 -0
  18. package/dist/components/ui/ModuleHeader/ModuleHeader.js +433 -0
  19. package/dist/components/ui/ModuleHeader/index.d.ts +3 -0
  20. package/dist/components/ui/ModuleHeader/index.d.ts.map +1 -0
  21. package/dist/components/ui/ModuleHeader/index.js +1 -0
  22. package/dist/components/ui/SyutGrid/SyutGrid.d.ts +74 -0
  23. package/dist/components/ui/SyutGrid/SyutGrid.d.ts.map +1 -0
  24. package/dist/components/ui/SyutGrid/SyutGrid.js +306 -0
  25. package/dist/components/ui/SyutGrid/index.d.ts +3 -0
  26. package/dist/components/ui/SyutGrid/index.d.ts.map +1 -0
  27. package/dist/components/ui/SyutGrid/index.js +2 -0
  28. package/dist/components/ui/SyutSelect/SyutSelectUnified.d.ts +128 -0
  29. package/dist/components/ui/SyutSelect/SyutSelectUnified.d.ts.map +1 -0
  30. package/dist/components/ui/SyutSelect/SyutSelectUnified.js +679 -0
  31. package/dist/components/ui/SyutSelect/index.d.ts +3 -0
  32. package/dist/components/ui/SyutSelect/index.d.ts.map +1 -0
  33. package/dist/components/ui/SyutSelect/index.js +2 -0
  34. package/dist/icon-collection/icon-systems.d.ts +89 -0
  35. package/dist/icon-collection/icon-systems.d.ts.map +1 -0
  36. package/dist/icon-collection/icon-systems.js +70 -0
  37. package/dist/icon-collection/index.d.ts +4 -0
  38. package/dist/icon-collection/index.d.ts.map +1 -0
  39. package/dist/icon-collection/index.js +8 -0
  40. package/dist/index.d.ts +12 -1
  41. package/dist/index.d.ts.map +1 -1
  42. package/dist/index.js +19 -1
  43. package/package.json +9 -4
  44. package/src/components/ChangePasswordModal.tsx +26 -14
  45. package/src/components/EnterpriseLayout.tsx +4475 -4460
  46. package/src/components/EnterpriseLayout.tsx.bak +4475 -0
  47. package/src/components/temp.tsx +0 -0
  48. package/src/components/ui/ActionMenu/ActionMenu.tsx +222 -0
  49. package/src/components/ui/ActionMenu/index.ts +2 -0
  50. package/src/components/ui/ModuleHeader/ModuleHeader.tsx +722 -0
  51. package/src/components/ui/ModuleHeader/index.ts +9 -0
  52. package/src/components/ui/SyutGrid/SyutGrid.tsx +483 -0
  53. package/src/components/ui/SyutGrid/index.ts +2 -0
  54. package/src/components/ui/SyutSelect/SyutSelectUnified.tsx +1115 -0
  55. package/src/components/ui/SyutSelect/index.ts +3 -0
  56. package/src/icon-collection/icon-systems.tsx +464 -0
  57. package/src/icon-collection/index.ts +13 -0
  58. package/src/index.ts +47 -1
  59. package/tsconfig.tsbuildinfo +1 -1
@@ -0,0 +1,3 @@
1
+ export { SyutSelectUnified, default } from './SyutSelectUnified';
2
+ export type { SyutSelectUnifiedProps, SelectOption } from './SyutSelectUnified';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -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,2 @@
1
+ // Unified Select Component (combines single/multi select with variants)
2
+ export { SyutSelectUnified, default } from './SyutSelectUnified';
@@ -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,4 @@
1
+ export { default } from './icon-systems';
2
+ export { default as IconSystem } from './icon-systems';
3
+ export type { IconProps } from './icon-systems';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -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
- * @prima/layout - Enterprise React Layout Library
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
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;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"}
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
- * @prima/layout - Enterprise React Layout Library
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.2",
4
- "description": "Enterprise React Layout Component",
3
+ "version": "1.0.22",
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.5)',
139
- zIndex: 9998,
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: 'fixed' as const,
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 20px 50px rgba(0, 0, 0, 0.3)',
155
+ boxShadow: '0 25px 50px -12px rgba(0, 0, 0, 0.4)',
149
156
  width: '100%',
150
157
  maxWidth: '440px',
151
- zIndex: 9999,
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.backdrop} onClick={handleClose} />
427
- <div style={styles.modal}>
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