@zimyo/ui 1.2.1 → 1.4.0
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/dist/Accordion/index.esm.js +5 -218
- package/dist/Accordion/index.js +5 -225
- package/dist/Badge/index.d.ts +29 -0
- package/dist/Badge/index.esm.js +1 -0
- package/dist/Badge/index.js +1 -0
- package/dist/Button/index.esm.js +1 -13
- package/dist/Button/index.js +1 -18
- package/dist/Card/index.esm.js +1 -36
- package/dist/Card/index.js +1 -38
- package/dist/DatePicker/index.d.ts +38 -0
- package/dist/DatePicker/index.esm.js +27 -0
- package/dist/DatePicker/index.js +27 -0
- package/dist/DateRangePicker/index.d.ts +27 -0
- package/dist/DateRangePicker/index.esm.js +27 -0
- package/dist/DateRangePicker/index.js +27 -0
- package/dist/Input/index.d.ts +18 -0
- package/dist/Input/index.esm.js +26 -0
- package/dist/Input/index.js +26 -0
- package/dist/Modal/index.d.ts +11 -9
- package/dist/Modal/index.esm.js +5 -123
- package/dist/Modal/index.js +5 -128
- package/dist/Notice/index.d.ts +19 -0
- package/dist/Notice/index.esm.js +26 -0
- package/dist/Notice/index.js +26 -0
- package/dist/Popover/index.esm.js +1 -22
- package/dist/Popover/index.js +1 -27
- package/dist/RadioGroup/index.esm.js +1 -91
- package/dist/RadioGroup/index.js +1 -96
- package/dist/Select/index.d.ts +15 -13
- package/dist/Select/index.esm.js +5 -173
- package/dist/Select/index.js +5 -178
- package/dist/Switch/index.esm.js +1 -9
- package/dist/Switch/index.js +1 -14
- package/dist/Tabs/index.esm.js +1 -202
- package/dist/Tabs/index.js +1 -207
- package/dist/Typography/index.esm.js +1 -57
- package/dist/Typography/index.js +1 -66
- package/dist/index.d.ts +169 -54
- package/dist/index.esm.js +5 -746
- package/dist/index.js +5 -770
- package/dist/theme/index.esm.js +1 -234
- package/dist/theme/index.js +1 -239
- package/package.json +44 -8
- package/dist/TextInput/index.d.ts +0 -18
- package/dist/TextInput/index.esm.js +0 -33
- package/dist/TextInput/index.js +0 -38
package/dist/Tabs/index.esm.js
CHANGED
|
@@ -1,202 +1 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { useTheme, Box, Tab, Tabs as Tabs$1, alpha } from '@mui/material';
|
|
3
|
-
|
|
4
|
-
// Custom Tab Component
|
|
5
|
-
const CustomTab = React.forwardRef(({ badge, sx, label, ...props }, ref) => {
|
|
6
|
-
const theme = useTheme();
|
|
7
|
-
const tabLabel = badge ? React.createElement(Box, { sx: { display: 'flex', alignItems: 'center', gap: 1 } }, label, React.createElement(Box, {
|
|
8
|
-
component: 'span',
|
|
9
|
-
sx: {
|
|
10
|
-
backgroundColor: theme.palette.error.main,
|
|
11
|
-
color: theme.palette.error.contrastText,
|
|
12
|
-
borderRadius: '10px',
|
|
13
|
-
padding: '2px 6px',
|
|
14
|
-
fontSize: '0.75rem',
|
|
15
|
-
fontWeight: 600,
|
|
16
|
-
minWidth: '18px',
|
|
17
|
-
height: '18px',
|
|
18
|
-
display: 'flex',
|
|
19
|
-
alignItems: 'center',
|
|
20
|
-
justifyContent: 'center',
|
|
21
|
-
lineHeight: 1,
|
|
22
|
-
}
|
|
23
|
-
}, badge)) : label;
|
|
24
|
-
return React.createElement(Tab, {
|
|
25
|
-
ref,
|
|
26
|
-
sx: {
|
|
27
|
-
position: 'relative',
|
|
28
|
-
...sx,
|
|
29
|
-
},
|
|
30
|
-
label: tabLabel,
|
|
31
|
-
...props
|
|
32
|
-
});
|
|
33
|
-
});
|
|
34
|
-
CustomTab.displayName = 'CustomTab';
|
|
35
|
-
// Main Tabs Component
|
|
36
|
-
const Tabs = React.forwardRef(({ items, value, onChange, variant = 'standard', orientation = 'horizontal', styleVariant = 'default', size = 'medium', centered = false, allowScrollButtonsMobile = false, scrollButtons = 'auto', sx = {}, tabSx = {}, iconPosition = 'start', indicatorColor = 'primary', textColor = 'primary', ...props }, ref) => {
|
|
37
|
-
const theme = useTheme();
|
|
38
|
-
// Get size-based styling
|
|
39
|
-
const getSizeStyles = () => {
|
|
40
|
-
switch (size) {
|
|
41
|
-
case 'small':
|
|
42
|
-
return {
|
|
43
|
-
minHeight: 36,
|
|
44
|
-
fontSize: '0.875rem',
|
|
45
|
-
padding: '6px 12px',
|
|
46
|
-
};
|
|
47
|
-
case 'large':
|
|
48
|
-
return {
|
|
49
|
-
minHeight: 56,
|
|
50
|
-
fontSize: '1rem',
|
|
51
|
-
padding: '12px 24px',
|
|
52
|
-
};
|
|
53
|
-
default:
|
|
54
|
-
return {
|
|
55
|
-
minHeight: 48,
|
|
56
|
-
fontSize: '0.9375rem',
|
|
57
|
-
padding: '8px 16px',
|
|
58
|
-
};
|
|
59
|
-
}
|
|
60
|
-
};
|
|
61
|
-
// Get style variant specific styling
|
|
62
|
-
const getStyleVariantStyles = () => {
|
|
63
|
-
const baseStyles = getSizeStyles();
|
|
64
|
-
switch (styleVariant) {
|
|
65
|
-
case 'filled':
|
|
66
|
-
return {
|
|
67
|
-
'& .MuiTab-root': {
|
|
68
|
-
...baseStyles,
|
|
69
|
-
backgroundColor: alpha(theme.palette.action.hover, 0.08),
|
|
70
|
-
borderRadius: theme.shape.borderRadius,
|
|
71
|
-
margin: '0 4px',
|
|
72
|
-
border: 'none',
|
|
73
|
-
'&.Mui-selected': {
|
|
74
|
-
backgroundColor: theme.palette.primary.main,
|
|
75
|
-
color: theme.palette.primary.contrastText,
|
|
76
|
-
},
|
|
77
|
-
'&:hover': {
|
|
78
|
-
backgroundColor: alpha(theme.palette.action.hover, 0.12),
|
|
79
|
-
},
|
|
80
|
-
},
|
|
81
|
-
'& .MuiTabs-indicator': {
|
|
82
|
-
display: 'none',
|
|
83
|
-
},
|
|
84
|
-
};
|
|
85
|
-
case 'outlined':
|
|
86
|
-
return {
|
|
87
|
-
'& .MuiTab-root': {
|
|
88
|
-
...baseStyles,
|
|
89
|
-
border: `1px solid ${alpha(theme.palette.divider, 0.5)}`,
|
|
90
|
-
borderRadius: theme.shape.borderRadius,
|
|
91
|
-
margin: '0 2px',
|
|
92
|
-
'&.Mui-selected': {
|
|
93
|
-
borderColor: theme.palette.primary.main,
|
|
94
|
-
backgroundColor: alpha(theme.palette.primary.main, 0.08),
|
|
95
|
-
color: theme.palette.primary.main,
|
|
96
|
-
},
|
|
97
|
-
'&:hover': {
|
|
98
|
-
borderColor: alpha(theme.palette.primary.main, 0.5),
|
|
99
|
-
},
|
|
100
|
-
},
|
|
101
|
-
'& .MuiTabs-indicator': {
|
|
102
|
-
display: 'none',
|
|
103
|
-
},
|
|
104
|
-
};
|
|
105
|
-
case 'pills':
|
|
106
|
-
return {
|
|
107
|
-
'& .MuiTab-root': {
|
|
108
|
-
...baseStyles,
|
|
109
|
-
borderRadius: 25,
|
|
110
|
-
margin: '0 4px',
|
|
111
|
-
backgroundColor: 'transparent',
|
|
112
|
-
border: `1px solid transparent`,
|
|
113
|
-
'&.Mui-selected': {
|
|
114
|
-
backgroundColor: theme.palette.primary.main,
|
|
115
|
-
color: theme.palette.primary.contrastText,
|
|
116
|
-
},
|
|
117
|
-
'&:hover': {
|
|
118
|
-
backgroundColor: alpha(theme.palette.action.hover, 0.08),
|
|
119
|
-
},
|
|
120
|
-
},
|
|
121
|
-
'& .MuiTabs-indicator': {
|
|
122
|
-
display: 'none',
|
|
123
|
-
},
|
|
124
|
-
};
|
|
125
|
-
case 'underlined':
|
|
126
|
-
return {
|
|
127
|
-
'& .MuiTab-root': {
|
|
128
|
-
...baseStyles,
|
|
129
|
-
borderBottom: `2px solid transparent`,
|
|
130
|
-
'&.Mui-selected': {
|
|
131
|
-
borderBottomColor: theme.palette.primary.main,
|
|
132
|
-
},
|
|
133
|
-
},
|
|
134
|
-
'& .MuiTabs-indicator': {
|
|
135
|
-
display: 'none',
|
|
136
|
-
},
|
|
137
|
-
};
|
|
138
|
-
default:
|
|
139
|
-
return {
|
|
140
|
-
'& .MuiTab-root': {
|
|
141
|
-
...baseStyles,
|
|
142
|
-
},
|
|
143
|
-
};
|
|
144
|
-
}
|
|
145
|
-
};
|
|
146
|
-
return React.createElement(Box, { ref }, React.createElement(Tabs$1, {
|
|
147
|
-
value,
|
|
148
|
-
onChange,
|
|
149
|
-
variant,
|
|
150
|
-
orientation,
|
|
151
|
-
centered,
|
|
152
|
-
allowScrollButtonsMobile,
|
|
153
|
-
scrollButtons,
|
|
154
|
-
indicatorColor,
|
|
155
|
-
textColor,
|
|
156
|
-
sx: {
|
|
157
|
-
...getStyleVariantStyles(),
|
|
158
|
-
'& .MuiTab-root': {
|
|
159
|
-
textTransform: 'none',
|
|
160
|
-
fontWeight: 500,
|
|
161
|
-
letterSpacing: '0.5px',
|
|
162
|
-
transition: 'all 0.2s ease-in-out',
|
|
163
|
-
...getStyleVariantStyles()['& .MuiTab-root'],
|
|
164
|
-
...tabSx,
|
|
165
|
-
},
|
|
166
|
-
...sx,
|
|
167
|
-
},
|
|
168
|
-
...props,
|
|
169
|
-
}, ...items.map((item) => {
|
|
170
|
-
// Create the label content based on icon position
|
|
171
|
-
let labelContent;
|
|
172
|
-
if (item.icon) {
|
|
173
|
-
switch (iconPosition) {
|
|
174
|
-
case 'end':
|
|
175
|
-
labelContent = React.createElement(Box, { sx: { display: 'flex', alignItems: 'center', gap: 1, flexDirection: 'row-reverse' } }, item.icon, item.label);
|
|
176
|
-
break;
|
|
177
|
-
case 'top':
|
|
178
|
-
labelContent = React.createElement(Box, { sx: { display: 'flex', alignItems: 'center', gap: 0.5, flexDirection: 'column' } }, item.icon, item.label);
|
|
179
|
-
break;
|
|
180
|
-
case 'bottom':
|
|
181
|
-
labelContent = React.createElement(Box, { sx: { display: 'flex', alignItems: 'center', gap: 0.5, flexDirection: 'column-reverse' } }, item.icon, item.label);
|
|
182
|
-
break;
|
|
183
|
-
default: // 'start'
|
|
184
|
-
labelContent = React.createElement(Box, { sx: { display: 'flex', alignItems: 'center', gap: 1 } }, item.icon, item.label);
|
|
185
|
-
break;
|
|
186
|
-
}
|
|
187
|
-
}
|
|
188
|
-
else {
|
|
189
|
-
labelContent = item.label;
|
|
190
|
-
}
|
|
191
|
-
return React.createElement(CustomTab, {
|
|
192
|
-
key: item.value,
|
|
193
|
-
value: item.value,
|
|
194
|
-
disabled: item.disabled,
|
|
195
|
-
badge: item.badge,
|
|
196
|
-
label: labelContent,
|
|
197
|
-
});
|
|
198
|
-
})));
|
|
199
|
-
});
|
|
200
|
-
Tabs.displayName = 'Tabs';
|
|
201
|
-
|
|
202
|
-
export { Tabs, Tabs as default };
|
|
1
|
+
import e from"react";import{useTheme as r,Box as t,Tab as a,Tabs as o,alpha as i}from"@mui/material";const n=e.forwardRef(({badge:o,sx:i,label:n,...l},s)=>{const d=r(),c=o?e.createElement(t,{sx:{display:"flex",alignItems:"center",gap:1}},n,e.createElement(t,{component:"span",sx:{backgroundColor:d.palette.error.main,color:d.palette.error.contrastText,borderRadius:"10px",padding:"2px 6px",fontSize:"0.75rem",fontWeight:600,minWidth:"18px",height:"18px",display:"flex",alignItems:"center",justifyContent:"center",lineHeight:1}},o)):n;return e.createElement(a,{ref:s,sx:{position:"relative",...i},label:c,...l})});n.displayName="CustomTab";const l=e.forwardRef(({items:a,value:l,onChange:s,variant:d="standard",orientation:c="horizontal",styleVariant:p="default",size:m="medium",centered:u=!1,allowScrollButtonsMobile:b=!1,scrollButtons:x="auto",sx:g={},tabSx:f={},iconPosition:y="start",indicatorColor:h="primary",textColor:C="primary",...T},v)=>{const M=r(),k=()=>{const e=(()=>{switch(m){case"small":return{minHeight:36,fontSize:"0.875rem",padding:"6px 12px"};case"large":return{minHeight:56,fontSize:"1rem",padding:"12px 24px"};default:return{minHeight:48,fontSize:"0.9375rem",padding:"8px 16px"}}})();switch(p){case"filled":return{"& .MuiTab-root":{...e,backgroundColor:i(M.palette.action.hover,.08),borderRadius:M.shape.borderRadius,margin:"0 4px",border:"none","&.Mui-selected":{backgroundColor:M.palette.primary.main,color:M.palette.primary.contrastText},"&:hover":{backgroundColor:i(M.palette.action.hover,.12)}},"& .MuiTabs-indicator":{display:"none"}};case"outlined":return{"& .MuiTab-root":{...e,border:`1px solid ${i(M.palette.divider,.5)}`,borderRadius:M.shape.borderRadius,margin:"0 2px","&.Mui-selected":{borderColor:M.palette.primary.main,backgroundColor:i(M.palette.primary.main,.08),color:M.palette.primary.main},"&:hover":{borderColor:i(M.palette.primary.main,.5)}},"& .MuiTabs-indicator":{display:"none"}};case"pills":return{"& .MuiTab-root":{...e,borderRadius:25,margin:"0 4px",backgroundColor:"transparent",border:"1px solid transparent","&.Mui-selected":{backgroundColor:M.palette.primary.main,color:M.palette.primary.contrastText},"&:hover":{backgroundColor:i(M.palette.action.hover,.08)}},"& .MuiTabs-indicator":{display:"none"}};case"underlined":return{"& .MuiTab-root":{...e,borderBottom:"2px solid transparent","&.Mui-selected":{borderBottomColor:M.palette.primary.main}},"& .MuiTabs-indicator":{display:"none"}};default:return{"& .MuiTab-root":{...e}}}};return e.createElement(t,{ref:v},e.createElement(o,{value:l,onChange:s,variant:d,orientation:c,centered:u,allowScrollButtonsMobile:b,scrollButtons:x,indicatorColor:h,textColor:C,sx:{...k(),"& .MuiTab-root":{textTransform:"none",fontWeight:500,letterSpacing:"0.5px",transition:"all 0.2s ease-in-out",...k()["& .MuiTab-root"],...f},...g},...T},...a.map(r=>{let a;if(r.icon)switch(y){case"end":a=e.createElement(t,{sx:{display:"flex",alignItems:"center",gap:1,flexDirection:"row-reverse"}},r.icon,r.label);break;case"top":a=e.createElement(t,{sx:{display:"flex",alignItems:"center",gap:.5,flexDirection:"column"}},r.icon,r.label);break;case"bottom":a=e.createElement(t,{sx:{display:"flex",alignItems:"center",gap:.5,flexDirection:"column-reverse"}},r.icon,r.label);break;default:a=e.createElement(t,{sx:{display:"flex",alignItems:"center",gap:1}},r.icon,r.label)}else a=r.label;return e.createElement(n,{key:r.value,value:r.value,disabled:r.disabled,badge:r.badge,label:a})})))});l.displayName="Tabs";export{l as Tabs,l as default};
|
package/dist/Tabs/index.js
CHANGED
|
@@ -1,207 +1 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
-
|
|
5
|
-
var React = require('react');
|
|
6
|
-
var material = require('@mui/material');
|
|
7
|
-
|
|
8
|
-
// Custom Tab Component
|
|
9
|
-
const CustomTab = React.forwardRef(({ badge, sx, label, ...props }, ref) => {
|
|
10
|
-
const theme = material.useTheme();
|
|
11
|
-
const tabLabel = badge ? React.createElement(material.Box, { sx: { display: 'flex', alignItems: 'center', gap: 1 } }, label, React.createElement(material.Box, {
|
|
12
|
-
component: 'span',
|
|
13
|
-
sx: {
|
|
14
|
-
backgroundColor: theme.palette.error.main,
|
|
15
|
-
color: theme.palette.error.contrastText,
|
|
16
|
-
borderRadius: '10px',
|
|
17
|
-
padding: '2px 6px',
|
|
18
|
-
fontSize: '0.75rem',
|
|
19
|
-
fontWeight: 600,
|
|
20
|
-
minWidth: '18px',
|
|
21
|
-
height: '18px',
|
|
22
|
-
display: 'flex',
|
|
23
|
-
alignItems: 'center',
|
|
24
|
-
justifyContent: 'center',
|
|
25
|
-
lineHeight: 1,
|
|
26
|
-
}
|
|
27
|
-
}, badge)) : label;
|
|
28
|
-
return React.createElement(material.Tab, {
|
|
29
|
-
ref,
|
|
30
|
-
sx: {
|
|
31
|
-
position: 'relative',
|
|
32
|
-
...sx,
|
|
33
|
-
},
|
|
34
|
-
label: tabLabel,
|
|
35
|
-
...props
|
|
36
|
-
});
|
|
37
|
-
});
|
|
38
|
-
CustomTab.displayName = 'CustomTab';
|
|
39
|
-
// Main Tabs Component
|
|
40
|
-
const Tabs = React.forwardRef(({ items, value, onChange, variant = 'standard', orientation = 'horizontal', styleVariant = 'default', size = 'medium', centered = false, allowScrollButtonsMobile = false, scrollButtons = 'auto', sx = {}, tabSx = {}, iconPosition = 'start', indicatorColor = 'primary', textColor = 'primary', ...props }, ref) => {
|
|
41
|
-
const theme = material.useTheme();
|
|
42
|
-
// Get size-based styling
|
|
43
|
-
const getSizeStyles = () => {
|
|
44
|
-
switch (size) {
|
|
45
|
-
case 'small':
|
|
46
|
-
return {
|
|
47
|
-
minHeight: 36,
|
|
48
|
-
fontSize: '0.875rem',
|
|
49
|
-
padding: '6px 12px',
|
|
50
|
-
};
|
|
51
|
-
case 'large':
|
|
52
|
-
return {
|
|
53
|
-
minHeight: 56,
|
|
54
|
-
fontSize: '1rem',
|
|
55
|
-
padding: '12px 24px',
|
|
56
|
-
};
|
|
57
|
-
default:
|
|
58
|
-
return {
|
|
59
|
-
minHeight: 48,
|
|
60
|
-
fontSize: '0.9375rem',
|
|
61
|
-
padding: '8px 16px',
|
|
62
|
-
};
|
|
63
|
-
}
|
|
64
|
-
};
|
|
65
|
-
// Get style variant specific styling
|
|
66
|
-
const getStyleVariantStyles = () => {
|
|
67
|
-
const baseStyles = getSizeStyles();
|
|
68
|
-
switch (styleVariant) {
|
|
69
|
-
case 'filled':
|
|
70
|
-
return {
|
|
71
|
-
'& .MuiTab-root': {
|
|
72
|
-
...baseStyles,
|
|
73
|
-
backgroundColor: material.alpha(theme.palette.action.hover, 0.08),
|
|
74
|
-
borderRadius: theme.shape.borderRadius,
|
|
75
|
-
margin: '0 4px',
|
|
76
|
-
border: 'none',
|
|
77
|
-
'&.Mui-selected': {
|
|
78
|
-
backgroundColor: theme.palette.primary.main,
|
|
79
|
-
color: theme.palette.primary.contrastText,
|
|
80
|
-
},
|
|
81
|
-
'&:hover': {
|
|
82
|
-
backgroundColor: material.alpha(theme.palette.action.hover, 0.12),
|
|
83
|
-
},
|
|
84
|
-
},
|
|
85
|
-
'& .MuiTabs-indicator': {
|
|
86
|
-
display: 'none',
|
|
87
|
-
},
|
|
88
|
-
};
|
|
89
|
-
case 'outlined':
|
|
90
|
-
return {
|
|
91
|
-
'& .MuiTab-root': {
|
|
92
|
-
...baseStyles,
|
|
93
|
-
border: `1px solid ${material.alpha(theme.palette.divider, 0.5)}`,
|
|
94
|
-
borderRadius: theme.shape.borderRadius,
|
|
95
|
-
margin: '0 2px',
|
|
96
|
-
'&.Mui-selected': {
|
|
97
|
-
borderColor: theme.palette.primary.main,
|
|
98
|
-
backgroundColor: material.alpha(theme.palette.primary.main, 0.08),
|
|
99
|
-
color: theme.palette.primary.main,
|
|
100
|
-
},
|
|
101
|
-
'&:hover': {
|
|
102
|
-
borderColor: material.alpha(theme.palette.primary.main, 0.5),
|
|
103
|
-
},
|
|
104
|
-
},
|
|
105
|
-
'& .MuiTabs-indicator': {
|
|
106
|
-
display: 'none',
|
|
107
|
-
},
|
|
108
|
-
};
|
|
109
|
-
case 'pills':
|
|
110
|
-
return {
|
|
111
|
-
'& .MuiTab-root': {
|
|
112
|
-
...baseStyles,
|
|
113
|
-
borderRadius: 25,
|
|
114
|
-
margin: '0 4px',
|
|
115
|
-
backgroundColor: 'transparent',
|
|
116
|
-
border: `1px solid transparent`,
|
|
117
|
-
'&.Mui-selected': {
|
|
118
|
-
backgroundColor: theme.palette.primary.main,
|
|
119
|
-
color: theme.palette.primary.contrastText,
|
|
120
|
-
},
|
|
121
|
-
'&:hover': {
|
|
122
|
-
backgroundColor: material.alpha(theme.palette.action.hover, 0.08),
|
|
123
|
-
},
|
|
124
|
-
},
|
|
125
|
-
'& .MuiTabs-indicator': {
|
|
126
|
-
display: 'none',
|
|
127
|
-
},
|
|
128
|
-
};
|
|
129
|
-
case 'underlined':
|
|
130
|
-
return {
|
|
131
|
-
'& .MuiTab-root': {
|
|
132
|
-
...baseStyles,
|
|
133
|
-
borderBottom: `2px solid transparent`,
|
|
134
|
-
'&.Mui-selected': {
|
|
135
|
-
borderBottomColor: theme.palette.primary.main,
|
|
136
|
-
},
|
|
137
|
-
},
|
|
138
|
-
'& .MuiTabs-indicator': {
|
|
139
|
-
display: 'none',
|
|
140
|
-
},
|
|
141
|
-
};
|
|
142
|
-
default:
|
|
143
|
-
return {
|
|
144
|
-
'& .MuiTab-root': {
|
|
145
|
-
...baseStyles,
|
|
146
|
-
},
|
|
147
|
-
};
|
|
148
|
-
}
|
|
149
|
-
};
|
|
150
|
-
return React.createElement(material.Box, { ref }, React.createElement(material.Tabs, {
|
|
151
|
-
value,
|
|
152
|
-
onChange,
|
|
153
|
-
variant,
|
|
154
|
-
orientation,
|
|
155
|
-
centered,
|
|
156
|
-
allowScrollButtonsMobile,
|
|
157
|
-
scrollButtons,
|
|
158
|
-
indicatorColor,
|
|
159
|
-
textColor,
|
|
160
|
-
sx: {
|
|
161
|
-
...getStyleVariantStyles(),
|
|
162
|
-
'& .MuiTab-root': {
|
|
163
|
-
textTransform: 'none',
|
|
164
|
-
fontWeight: 500,
|
|
165
|
-
letterSpacing: '0.5px',
|
|
166
|
-
transition: 'all 0.2s ease-in-out',
|
|
167
|
-
...getStyleVariantStyles()['& .MuiTab-root'],
|
|
168
|
-
...tabSx,
|
|
169
|
-
},
|
|
170
|
-
...sx,
|
|
171
|
-
},
|
|
172
|
-
...props,
|
|
173
|
-
}, ...items.map((item) => {
|
|
174
|
-
// Create the label content based on icon position
|
|
175
|
-
let labelContent;
|
|
176
|
-
if (item.icon) {
|
|
177
|
-
switch (iconPosition) {
|
|
178
|
-
case 'end':
|
|
179
|
-
labelContent = React.createElement(material.Box, { sx: { display: 'flex', alignItems: 'center', gap: 1, flexDirection: 'row-reverse' } }, item.icon, item.label);
|
|
180
|
-
break;
|
|
181
|
-
case 'top':
|
|
182
|
-
labelContent = React.createElement(material.Box, { sx: { display: 'flex', alignItems: 'center', gap: 0.5, flexDirection: 'column' } }, item.icon, item.label);
|
|
183
|
-
break;
|
|
184
|
-
case 'bottom':
|
|
185
|
-
labelContent = React.createElement(material.Box, { sx: { display: 'flex', alignItems: 'center', gap: 0.5, flexDirection: 'column-reverse' } }, item.icon, item.label);
|
|
186
|
-
break;
|
|
187
|
-
default: // 'start'
|
|
188
|
-
labelContent = React.createElement(material.Box, { sx: { display: 'flex', alignItems: 'center', gap: 1 } }, item.icon, item.label);
|
|
189
|
-
break;
|
|
190
|
-
}
|
|
191
|
-
}
|
|
192
|
-
else {
|
|
193
|
-
labelContent = item.label;
|
|
194
|
-
}
|
|
195
|
-
return React.createElement(CustomTab, {
|
|
196
|
-
key: item.value,
|
|
197
|
-
value: item.value,
|
|
198
|
-
disabled: item.disabled,
|
|
199
|
-
badge: item.badge,
|
|
200
|
-
label: labelContent,
|
|
201
|
-
});
|
|
202
|
-
})));
|
|
203
|
-
});
|
|
204
|
-
Tabs.displayName = 'Tabs';
|
|
205
|
-
|
|
206
|
-
exports.Tabs = Tabs;
|
|
207
|
-
exports.default = Tabs;
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),a=require("@mui/material");const r=e.forwardRef(({badge:r,sx:t,label:o,...i},n)=>{const l=a.useTheme(),s=r?e.createElement(a.Box,{sx:{display:"flex",alignItems:"center",gap:1}},o,e.createElement(a.Box,{component:"span",sx:{backgroundColor:l.palette.error.main,color:l.palette.error.contrastText,borderRadius:"10px",padding:"2px 6px",fontSize:"0.75rem",fontWeight:600,minWidth:"18px",height:"18px",display:"flex",alignItems:"center",justifyContent:"center",lineHeight:1}},r)):o;return e.createElement(a.Tab,{ref:n,sx:{position:"relative",...t},label:s,...i})});r.displayName="CustomTab";const t=e.forwardRef(({items:t,value:o,onChange:i,variant:n="standard",orientation:l="horizontal",styleVariant:s="default",size:d="medium",centered:p=!1,allowScrollButtonsMobile:c=!1,scrollButtons:u="auto",sx:m={},tabSx:b={},iconPosition:x="start",indicatorColor:g="primary",textColor:f="primary",...h},y)=>{const T=a.useTheme(),v=()=>{const e=(()=>{switch(d){case"small":return{minHeight:36,fontSize:"0.875rem",padding:"6px 12px"};case"large":return{minHeight:56,fontSize:"1rem",padding:"12px 24px"};default:return{minHeight:48,fontSize:"0.9375rem",padding:"8px 16px"}}})();switch(s){case"filled":return{"& .MuiTab-root":{...e,backgroundColor:a.alpha(T.palette.action.hover,.08),borderRadius:T.shape.borderRadius,margin:"0 4px",border:"none","&.Mui-selected":{backgroundColor:T.palette.primary.main,color:T.palette.primary.contrastText},"&:hover":{backgroundColor:a.alpha(T.palette.action.hover,.12)}},"& .MuiTabs-indicator":{display:"none"}};case"outlined":return{"& .MuiTab-root":{...e,border:`1px solid ${a.alpha(T.palette.divider,.5)}`,borderRadius:T.shape.borderRadius,margin:"0 2px","&.Mui-selected":{borderColor:T.palette.primary.main,backgroundColor:a.alpha(T.palette.primary.main,.08),color:T.palette.primary.main},"&:hover":{borderColor:a.alpha(T.palette.primary.main,.5)}},"& .MuiTabs-indicator":{display:"none"}};case"pills":return{"& .MuiTab-root":{...e,borderRadius:25,margin:"0 4px",backgroundColor:"transparent",border:"1px solid transparent","&.Mui-selected":{backgroundColor:T.palette.primary.main,color:T.palette.primary.contrastText},"&:hover":{backgroundColor:a.alpha(T.palette.action.hover,.08)}},"& .MuiTabs-indicator":{display:"none"}};case"underlined":return{"& .MuiTab-root":{...e,borderBottom:"2px solid transparent","&.Mui-selected":{borderBottomColor:T.palette.primary.main}},"& .MuiTabs-indicator":{display:"none"}};default:return{"& .MuiTab-root":{...e}}}};return e.createElement(a.Box,{ref:y},e.createElement(a.Tabs,{value:o,onChange:i,variant:n,orientation:l,centered:p,allowScrollButtonsMobile:c,scrollButtons:u,indicatorColor:g,textColor:f,sx:{...v(),"& .MuiTab-root":{textTransform:"none",fontWeight:500,letterSpacing:"0.5px",transition:"all 0.2s ease-in-out",...v()["& .MuiTab-root"],...b},...m},...h},...t.map(t=>{let o;if(t.icon)switch(x){case"end":o=e.createElement(a.Box,{sx:{display:"flex",alignItems:"center",gap:1,flexDirection:"row-reverse"}},t.icon,t.label);break;case"top":o=e.createElement(a.Box,{sx:{display:"flex",alignItems:"center",gap:.5,flexDirection:"column"}},t.icon,t.label);break;case"bottom":o=e.createElement(a.Box,{sx:{display:"flex",alignItems:"center",gap:.5,flexDirection:"column-reverse"}},t.icon,t.label);break;default:o=e.createElement(a.Box,{sx:{display:"flex",alignItems:"center",gap:1}},t.icon,t.label)}else o=t.label;return e.createElement(r,{key:t.value,value:t.value,disabled:t.disabled,badge:t.badge,label:o})})))});t.displayName="Tabs",exports.Tabs=t,exports.default=t;
|
|
@@ -1,57 +1 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { Typography, Box } from '@mui/material';
|
|
3
|
-
|
|
4
|
-
const Heading = ({ level = 1, ...props }) => {
|
|
5
|
-
const variant = `h${level}`;
|
|
6
|
-
return (jsx(Typography, { variant: variant, component: props.component || `h${level}`, fontWeight: 600, gutterBottom: true, ...props }));
|
|
7
|
-
};
|
|
8
|
-
|
|
9
|
-
const Text = ({ size = 'md', ...props }) => {
|
|
10
|
-
const variantMap = {
|
|
11
|
-
sm: 'body2',
|
|
12
|
-
md: 'body1',
|
|
13
|
-
lg: 'subtitle1',
|
|
14
|
-
};
|
|
15
|
-
return (jsx(Typography, { variant: variantMap[size], component: props.component || 'p', ...props }));
|
|
16
|
-
};
|
|
17
|
-
|
|
18
|
-
const Lead = (props) => {
|
|
19
|
-
return (jsx(Typography, { variant: "subtitle1", component: props.component || 'p', fontWeight: 400, color: "text.secondary", ...props }));
|
|
20
|
-
};
|
|
21
|
-
|
|
22
|
-
const Muted = (props) => {
|
|
23
|
-
return (jsx(Typography, { variant: "body2", component: props.component || 'span', color: "text.disabled", ...props }));
|
|
24
|
-
};
|
|
25
|
-
|
|
26
|
-
const Strong = (props) => {
|
|
27
|
-
return (jsx(Typography, { component: props.component || 'strong', fontWeight: 500, display: "inline", ...props }));
|
|
28
|
-
};
|
|
29
|
-
|
|
30
|
-
const Caption = (props) => {
|
|
31
|
-
return (jsx(Typography, { variant: "caption", color: "text.secondary", component: props.component || 'span', ...props }));
|
|
32
|
-
};
|
|
33
|
-
|
|
34
|
-
const Blockquote = (props) => {
|
|
35
|
-
return (jsx(Typography, { component: "blockquote", sx: {
|
|
36
|
-
borderLeft: '4px solid',
|
|
37
|
-
borderColor: 'divider',
|
|
38
|
-
pl: 2,
|
|
39
|
-
color: 'text.secondary',
|
|
40
|
-
fontStyle: 'italic',
|
|
41
|
-
}, ...props }));
|
|
42
|
-
};
|
|
43
|
-
|
|
44
|
-
const Code = ({ children, sx }) => {
|
|
45
|
-
return (jsx(Box, { component: "code", sx: {
|
|
46
|
-
fontFamily: 'monospace',
|
|
47
|
-
backgroundColor: 'grey.100',
|
|
48
|
-
color: 'primary.main',
|
|
49
|
-
px: 0.5,
|
|
50
|
-
py: 0.25,
|
|
51
|
-
borderRadius: 1,
|
|
52
|
-
fontSize: '0.875rem',
|
|
53
|
-
...sx,
|
|
54
|
-
}, children: children }));
|
|
55
|
-
};
|
|
56
|
-
|
|
57
|
-
export { Blockquote, Caption, Code, Heading, Lead, Muted, Strong, Text };
|
|
1
|
+
import{jsx as o}from"react/jsx-runtime";import{Typography as t,Box as n}from"@mui/material";const e=({level:n=1,...e})=>o(t,{variant:`h${n}`,component:e.component||`h${n}`,fontWeight:600,gutterBottom:!0,...e}),r=({size:n="md",...e})=>o(t,{variant:{sm:"body2",md:"body1",lg:"subtitle1"}[n],component:e.component||"p",...e}),i=n=>o(t,{variant:"subtitle1",component:n.component||"p",fontWeight:400,color:"text.secondary",...n}),c=n=>o(t,{variant:"body2",component:n.component||"span",color:"text.disabled",...n}),m=n=>o(t,{component:n.component||"strong",fontWeight:500,display:"inline",...n}),p=n=>o(t,{variant:"caption",color:"text.secondary",component:n.component||"span",...n}),a=n=>o(t,{component:"blockquote",sx:{borderLeft:"4px solid",borderColor:"divider",pl:2,color:"text.secondary",fontStyle:"italic"},...n}),l=({children:t,sx:e})=>o(n,{component:"code",sx:{fontFamily:"monospace",backgroundColor:"grey.100",color:"primary.main",px:.5,py:.25,borderRadius:1,fontSize:"0.875rem",...e},children:t});export{a as Blockquote,p as Caption,l as Code,e as Heading,i as Lead,c as Muted,m as Strong,r as Text};
|
package/dist/Typography/index.js
CHANGED
|
@@ -1,66 +1 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
var jsxRuntime = require('react/jsx-runtime');
|
|
4
|
-
var material = require('@mui/material');
|
|
5
|
-
|
|
6
|
-
const Heading = ({ level = 1, ...props }) => {
|
|
7
|
-
const variant = `h${level}`;
|
|
8
|
-
return (jsxRuntime.jsx(material.Typography, { variant: variant, component: props.component || `h${level}`, fontWeight: 600, gutterBottom: true, ...props }));
|
|
9
|
-
};
|
|
10
|
-
|
|
11
|
-
const Text = ({ size = 'md', ...props }) => {
|
|
12
|
-
const variantMap = {
|
|
13
|
-
sm: 'body2',
|
|
14
|
-
md: 'body1',
|
|
15
|
-
lg: 'subtitle1',
|
|
16
|
-
};
|
|
17
|
-
return (jsxRuntime.jsx(material.Typography, { variant: variantMap[size], component: props.component || 'p', ...props }));
|
|
18
|
-
};
|
|
19
|
-
|
|
20
|
-
const Lead = (props) => {
|
|
21
|
-
return (jsxRuntime.jsx(material.Typography, { variant: "subtitle1", component: props.component || 'p', fontWeight: 400, color: "text.secondary", ...props }));
|
|
22
|
-
};
|
|
23
|
-
|
|
24
|
-
const Muted = (props) => {
|
|
25
|
-
return (jsxRuntime.jsx(material.Typography, { variant: "body2", component: props.component || 'span', color: "text.disabled", ...props }));
|
|
26
|
-
};
|
|
27
|
-
|
|
28
|
-
const Strong = (props) => {
|
|
29
|
-
return (jsxRuntime.jsx(material.Typography, { component: props.component || 'strong', fontWeight: 500, display: "inline", ...props }));
|
|
30
|
-
};
|
|
31
|
-
|
|
32
|
-
const Caption = (props) => {
|
|
33
|
-
return (jsxRuntime.jsx(material.Typography, { variant: "caption", color: "text.secondary", component: props.component || 'span', ...props }));
|
|
34
|
-
};
|
|
35
|
-
|
|
36
|
-
const Blockquote = (props) => {
|
|
37
|
-
return (jsxRuntime.jsx(material.Typography, { component: "blockquote", sx: {
|
|
38
|
-
borderLeft: '4px solid',
|
|
39
|
-
borderColor: 'divider',
|
|
40
|
-
pl: 2,
|
|
41
|
-
color: 'text.secondary',
|
|
42
|
-
fontStyle: 'italic',
|
|
43
|
-
}, ...props }));
|
|
44
|
-
};
|
|
45
|
-
|
|
46
|
-
const Code = ({ children, sx }) => {
|
|
47
|
-
return (jsxRuntime.jsx(material.Box, { component: "code", sx: {
|
|
48
|
-
fontFamily: 'monospace',
|
|
49
|
-
backgroundColor: 'grey.100',
|
|
50
|
-
color: 'primary.main',
|
|
51
|
-
px: 0.5,
|
|
52
|
-
py: 0.25,
|
|
53
|
-
borderRadius: 1,
|
|
54
|
-
fontSize: '0.875rem',
|
|
55
|
-
...sx,
|
|
56
|
-
}, children: children }));
|
|
57
|
-
};
|
|
58
|
-
|
|
59
|
-
exports.Blockquote = Blockquote;
|
|
60
|
-
exports.Caption = Caption;
|
|
61
|
-
exports.Code = Code;
|
|
62
|
-
exports.Heading = Heading;
|
|
63
|
-
exports.Lead = Lead;
|
|
64
|
-
exports.Muted = Muted;
|
|
65
|
-
exports.Strong = Strong;
|
|
66
|
-
exports.Text = Text;
|
|
1
|
+
"use strict";var o=require("react/jsx-runtime"),t=require("@mui/material");exports.Blockquote=e=>o.jsx(t.Typography,{component:"blockquote",sx:{borderLeft:"4px solid",borderColor:"divider",pl:2,color:"text.secondary",fontStyle:"italic"},...e}),exports.Caption=e=>o.jsx(t.Typography,{variant:"caption",color:"text.secondary",component:e.component||"span",...e}),exports.Code=({children:e,sx:n})=>o.jsx(t.Box,{component:"code",sx:{fontFamily:"monospace",backgroundColor:"grey.100",color:"primary.main",px:.5,py:.25,borderRadius:1,fontSize:"0.875rem",...n},children:e}),exports.Heading=({level:e=1,...n})=>{const r=`h${e}`;return o.jsx(t.Typography,{variant:r,component:n.component||`h${e}`,fontWeight:600,gutterBottom:!0,...n})},exports.Lead=e=>o.jsx(t.Typography,{variant:"subtitle1",component:e.component||"p",fontWeight:400,color:"text.secondary",...e}),exports.Muted=e=>o.jsx(t.Typography,{variant:"body2",component:e.component||"span",color:"text.disabled",...e}),exports.Strong=e=>o.jsx(t.Typography,{component:e.component||"strong",fontWeight:500,display:"inline",...e}),exports.Text=({size:e="md",...n})=>o.jsx(t.Typography,{variant:{sm:"body2",md:"body1",lg:"subtitle1"}[e],component:n.component||"p",...n});
|