@ncino/styles 9.0.0-preview.6 → 9.0.0-preview.7

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.
@@ -0,0 +1,71 @@
1
+ import { gatorTypography } from '../utils/themeConfig';
2
+
3
+ export const MUIGatorButtonOverrides = {
4
+ MuiButton: {
5
+ defaultProps: {
6
+ disableRipple: true,
7
+ },
8
+
9
+ styleOverrides: {
10
+ root: {
11
+ textTransform: 'none',
12
+ fontWeight: gatorTypography.fontWeight.semiBold,
13
+ '&.Mui-focusVisible': {
14
+ boxShadow: 'none',
15
+ outline: '2px solid var(--color-border-focus)',
16
+ outlineOffset: '2px'
17
+ },
18
+ '&:hover': {
19
+ boxShadow: 'var(--shadow-2-card-raised)',
20
+ },
21
+ },
22
+ sizeLarge: {
23
+ padding: '12px 24px',
24
+ fontSize: 'var(--font-size-body-1)',
25
+ lineHeight: 'var(--line-height-body-1)',
26
+ },
27
+ sizeMedium: {
28
+ padding: '8px 16px',
29
+ fontSize: 'var(--font-size-body-2)',
30
+ lineHeight: 'var(--line-height-body-2)',
31
+ },
32
+ sizeSmall: {
33
+ padding: '4px 12px',
34
+ fontSize: 'var(--font-size-body-3)',
35
+ lineHeight: 'var(--line-height-body-3)',
36
+ },
37
+ contained: {
38
+ boxShadow: 'none',
39
+ },
40
+ outlinedPrimary: {
41
+ borderColor: 'var(--color-border-brand)',
42
+ },
43
+
44
+ colorNeutral: {
45
+ backgroundColor: 'var(--color-surface-neutral)',
46
+ },
47
+ text: {
48
+ color: 'var(--color-text-brand)',
49
+ textDecoration: 'underline',
50
+ textDecorationColor: 'var(--color-underline-primary)',
51
+ textUnderlineOffset: '4px',
52
+ '&:hover': {
53
+ boxShadow: 'none',
54
+ textDecoration: 'underline',
55
+ textDecorationColor: 'var(--color-underline-brand)',
56
+ backgroundColor: 'transparent',
57
+ },
58
+ },
59
+ loading: {
60
+ textDecoration: 'none',
61
+ }
62
+ },
63
+ },
64
+ };
65
+
66
+ declare module '@mui/material/Button' {
67
+ interface ButtonPropsColorOverrides {
68
+ ai: true;
69
+ neutral: true;
70
+ }
71
+ }
@@ -0,0 +1,202 @@
1
+ /**
2
+ * Gator Design System - MUI Card Component Overrides
3
+ *
4
+ * Maps Gator Card design specifications to MUI Card and Paper components.
5
+ * Supports elevation, outlined variants, and proper spacing/styling.
6
+ */
7
+ export const MUIGatorCardOverrides = {
8
+ MuiCard: {
9
+ defaultProps: {
10
+ elevation: 0,
11
+ },
12
+ styleOverrides: {
13
+ root: {
14
+ borderRadius: 'var(--border-radius-x-large)',
15
+ backgroundColor: 'var(--color-surface-primary)',
16
+ overflow: 'visible',
17
+ position: 'relative',
18
+ },
19
+ },
20
+ },
21
+ MuiCardHeader: {
22
+ styleOverrides: {
23
+ root: {
24
+ padding: 'var(--spacing-8)',
25
+ display: 'flex',
26
+ gap: 'var(--spacing-10)',
27
+ },
28
+ title: {
29
+ fontFamily: 'var(--font-family-headings)',
30
+ fontSize: 'var(--font-size-heading-3)',
31
+ lineHeight: 'var(--line-height-heading-3)',
32
+ fontWeight: 'var(--font-weight-semi-bold)',
33
+ color: 'var(--color-text-primary)',
34
+ },
35
+ subheader: {
36
+ fontFamily: 'var(--font-family-body)',
37
+ fontSize: 'var(--font-size-body-2)',
38
+ lineHeight: 'var(--line-height-body-2)',
39
+ fontWeight: 'var(--font-weight-regular)',
40
+ color: 'var(--color-text-secondary)',
41
+ marginTop: '0',
42
+ },
43
+ },
44
+ },
45
+ MuiCardContent: {
46
+ styleOverrides: {
47
+ root: {
48
+ padding: 'var(--spacing-8) var(--spacing-8) var(--spacing-10) var(--spacing-8)',
49
+ fontSize: 'var(--font-size-body-2)',
50
+ color: 'var(--color-text-primary)',
51
+ '&:last-child': {
52
+ paddingBottom: 'var(--spacing-10)',
53
+ },
54
+ },
55
+ },
56
+ },
57
+ MuiCardActions: {
58
+ styleOverrides: {
59
+ root: {
60
+ padding: 'var(--spacing-8)',
61
+ backgroundColor: 'var(--color-surface-secondary)',
62
+ borderRadius: '0 0 var(--border-radius-x-large) var(--border-radius-x-large)',
63
+ },
64
+ },
65
+ },
66
+ MuiCardActionArea: {
67
+ defaultProps: {
68
+ disableRipple: true,
69
+ disableTouchRipple: true,
70
+ },
71
+ styleOverrides: {
72
+ root: {
73
+ '&.Mui-focusVisible': {
74
+ outline: '2px solid var(--color-border-focus)',
75
+ background: 'var(--color-surface-primary)'
76
+ },
77
+ '&[data-active]': {
78
+ border: '1px solid var(--color-border-brand)',
79
+ },
80
+ '&:hover': {
81
+ background: 'var(--color-surface-primary)',
82
+ boxShadow: 'var(--shadow-4-modal)',
83
+ },
84
+ '&:active': {
85
+ backgroundColor: 'var(--color-surface-brand)',
86
+ },
87
+ },
88
+ focusHighlight: {
89
+ display: 'none',
90
+ },
91
+ },
92
+ },
93
+ MuiCardMedia: {
94
+ styleOverrides: {
95
+ root: {
96
+ borderRadius: 'var(--border-radius-x-large)',
97
+ padding: 'var(--spacing-3)',
98
+ },
99
+ },
100
+ },
101
+ MuiPaper: {
102
+ defaultProps: {
103
+ elevation: 0,
104
+ },
105
+ styleOverrides: {
106
+ root: {
107
+ backgroundImage: 'none',
108
+ },
109
+ rounded: {
110
+ borderRadius: 'var(--border-radius-x-large)',
111
+ },
112
+ elevation0: {
113
+ boxShadow: 'none',
114
+ },
115
+ elevation1: {
116
+ boxShadow: 'var(--shadow-1-card)',
117
+ },
118
+ elevation2: {
119
+ boxShadow: 'var(--shadow-2-card-raised)',
120
+ },
121
+ elevation3: {
122
+ boxShadow: 'var(--shadow-3-dropdown)',
123
+ },
124
+ elevation4: {
125
+ boxShadow: 'var(--shadow-4-modal)',
126
+ },
127
+ outlined: {
128
+ border: '1px solid var(--color-border-tertiary)',
129
+ borderRadius: 'var(--border-radius-x-large)',
130
+ },
131
+ 'small-left': {
132
+ display: 'flex',
133
+ alignItems: 'center',
134
+ height: '100%',
135
+ width: '100%',
136
+ 'img': {
137
+ width: '96px',
138
+ height: '96px',
139
+ objectFit: 'cover',
140
+ objectPosition: 'center',
141
+ display: 'block',
142
+ margin: 'var(--spacing-3)',
143
+ padding: 0,
144
+ borderRadius: 'var(--border-radius-large)',
145
+ },
146
+ },
147
+ 'small-right': {
148
+ display: 'flex',
149
+ justifyContent: 'space-between',
150
+ alignItems: 'center',
151
+ height: '100%',
152
+ width: '100%',
153
+ 'img': {
154
+ width: '96px',
155
+ height: '96px',
156
+ objectFit: 'cover',
157
+ objectPosition: 'center',
158
+ display: 'block',
159
+ margin: 'var(--spacing-3)',
160
+ padding: 0,
161
+ borderRadius: 'var(--border-radius-large)',
162
+ },
163
+ },
164
+ 'full-image': {
165
+ width: '100%',
166
+ position: 'relative',
167
+ 'img': {
168
+ padding: 0,
169
+ width: '100%',
170
+ height: 'auto',
171
+ objectFit: 'cover',
172
+ objectPosition: 'center',
173
+ display: 'block',
174
+ borderRadius: 'var(--border-radius-large)',
175
+ },
176
+ '& .MuiCardHeader-root': {
177
+ position: 'absolute',
178
+ bottom: 0,
179
+ left: 0,
180
+ right: 0,
181
+ padding: 'var(--spacing-8) var(--spacing-10)',
182
+ background: 'linear-gradient(180deg, var(--color-surface-alpha-neutral-subtle, rgba(4, 4, 4, 0.00)) 0%, var(--color-surface-inverse, rgba(31, 31, 31, 0.60)) 100%);',
183
+ backdropFilter: 'blur(8px)',
184
+ zIndex: 2,
185
+ borderRadius: '0 0 var(--border-radius-large) var(--border-radius-large)',
186
+ '& .MuiCardHeader-title, & .MuiCardHeader-subheader': {
187
+ color: 'var(--color-text-inverse)',
188
+ },
189
+ },
190
+ },
191
+ },
192
+ },
193
+ };
194
+
195
+ declare module '@mui/material/Paper' {
196
+ interface PaperPropsVariantOverrides {
197
+ elevated: true;
198
+ 'small-left': true;
199
+ 'small-right': true;
200
+ 'full-image': true;
201
+ }
202
+ }
@@ -0,0 +1,73 @@
1
+ export const MUIGatorCheckboxOverrides = {
2
+ MuiCheckbox: {
3
+ defaultProps: {
4
+ disableRipple: true,
5
+ },
6
+ styleOverrides: {
7
+ root: {
8
+ padding: '3px',
9
+
10
+ // Default unchecked state
11
+ '&:not(.Mui-checked):not(.MuiCheckbox-indeterminate)': {
12
+ color: 'var(--color-border-primary)',
13
+ 'svg': {
14
+ display: 'none',
15
+ },
16
+ '::before': {
17
+ content: '""',
18
+ display: 'block',
19
+ width: '10px',
20
+ height: '10px',
21
+ transform: 'scale(1.8)',
22
+ outline: '1px solid currentColor',
23
+ outlineOffset: '-1px',
24
+ borderRadius: '2px',
25
+ margin: '7px',
26
+ backgroundColor: 'var(--color-surface-primary)',
27
+ },
28
+
29
+ '&:hover::before': {
30
+ color: 'var(--color-feedback-brand-secondary)',
31
+ backgroundColor: 'var(--color-surface-brand)',
32
+ },
33
+ },
34
+
35
+ // Checked & Indeterminate states
36
+ '&.Mui-checked, &.MuiCheckbox-indeterminate': {
37
+ color: 'var(--color-feedback-brand)',
38
+
39
+ '&:hover': {
40
+ color: 'var(--color-feedback-brand-secondary)',
41
+ },
42
+ },
43
+
44
+ // Focus state
45
+ '&.Mui-focusVisible': {
46
+ outline: '3px solid var(--color-border-focus)',
47
+ outlineOffset: '-3px',
48
+ borderRadius: '8px',
49
+ },
50
+
51
+ // Disabled state
52
+ '&.Mui-disabled': {
53
+ color: 'var(--color-border-disabled) !important',
54
+ '::before': {
55
+ backgroundColor: 'var(--color-surface-secondary) !important',
56
+ },
57
+ },
58
+
59
+ // Error state
60
+ '.Mui-error &': {
61
+ color: 'var(--color-feedback-error) !important',
62
+ '&:hover svg': {
63
+ color: 'var(--color-feedback-error-secondary) !important',
64
+ },
65
+ '&:hover::before': {
66
+ backgroundColor: 'var(--color-surface-error) !important',
67
+ color: 'var(--color-feedback-error) !important',
68
+ },
69
+ },
70
+ },
71
+ },
72
+ },
73
+ };
@@ -0,0 +1,270 @@
1
+ import { gatorTypography } from '../utils/themeConfig';
2
+ import HighlightOffIcon from '@mui/icons-material/HighlightOff';
3
+ import React from 'react';
4
+
5
+ export const MUIGatorChipOverrides = {
6
+ MuiChip: {
7
+ defaultProps: {
8
+ variant: 'outlined',
9
+ deleteIcon: React.createElement(HighlightOffIcon),
10
+ },
11
+ styleOverrides: {
12
+ root: {
13
+ fontFamily: gatorTypography.fontFamily.body,
14
+ fontWeight: gatorTypography.fontWeight.regular,
15
+ borderRadius: 'var(--border-radius-circle)',
16
+ padding: 0,
17
+ gap: '4px',
18
+
19
+ '&.Mui-disabled': {
20
+ 'opacity': 1,
21
+ 'backgroundColor': 'var(--color-surface-disabled)',
22
+ 'color': 'var(--color-text-disabled)',
23
+ 'borderColor': 'var(--color-border-disabled)'
24
+ }
25
+ },
26
+
27
+ // Size variants
28
+ sizeSmall: {
29
+ height: '26px',
30
+ fontSize: 'var(--font-size-body-3)',
31
+ lineHeight: 'var(--line-height-body-3)',
32
+ padding: 'var(--spacing-2)',
33
+
34
+ '& .MuiChip-icon': {
35
+ fontSize: '16px',
36
+ },
37
+ },
38
+
39
+ sizeMedium: {
40
+ height: '30px',
41
+ fontSize: 'var(--font-size-body-2)',
42
+ lineHeight: 'var(--line-height-body-2)',
43
+ padding: 'var(--spacing-2)',
44
+
45
+ '& .MuiChip-icon': {
46
+ fontSize: '18px',
47
+ }
48
+ },
49
+
50
+ // Outlined variant (NGC hideBorder=false) - WITH border
51
+ outlined: {
52
+ backgroundColor: 'var(--color-surface-secondary)',
53
+ border: '1px solid var(--color-border-tertiary)',
54
+
55
+ '&:hover': {
56
+ backgroundColor: 'var(--color-surface-neutral)',
57
+ },
58
+
59
+ '&:focus': {
60
+ backgroundColor: 'var(--color-surface-tertiary)',
61
+ },
62
+ },
63
+
64
+ // Clickable state
65
+ clickable: {
66
+ cursor: 'pointer',
67
+ userSelect: 'none',
68
+
69
+ '&:hover': {
70
+ backgroundColor: 'var(--color-surface-neutral-secondary)',
71
+ },
72
+
73
+ '&:active': {
74
+ backgroundColor: 'var(--color-surface-neutral-tertiary)',
75
+ boxShadow: 'none',
76
+ },
77
+ },
78
+
79
+ clickableColorPrimary: {
80
+ '&:hover': {
81
+ backgroundColor: 'var(--color-surface-brand-secondary)',
82
+ },
83
+ },
84
+
85
+ // Deletable state
86
+ deletable: {
87
+ '&:focus': {
88
+ backgroundColor: 'var(--color-surface-neutral-secondary)',
89
+ },
90
+ },
91
+
92
+ // Color variants - Primary/Brand
93
+ colorPrimary: {
94
+ backgroundColor: 'var(--color-surface-secondary)',
95
+ color: 'var(--color-text-primary)',
96
+
97
+ '&:hover': {
98
+ backgroundColor: 'var(--color-surface-tertiary)',
99
+ },
100
+ },
101
+
102
+ outlinedPrimary: {
103
+ backgroundColor: 'var(--color-surface-brand)',
104
+ color: 'var(--color-text-primary)',
105
+ borderColor: 'var(--color-border-brand-tertiary)',
106
+
107
+ '&:hover': {
108
+ backgroundColor: 'var(--color-surface-brand-secondary)',
109
+ borderColor: 'var(--color-border-brand-tertiary)',
110
+ },
111
+ },
112
+
113
+ // Color variants - Success
114
+ colorSuccess: {
115
+ backgroundColor: 'var(--color-surface-success)',
116
+ color: 'var(--color-text-primary)',
117
+
118
+ '&:hover': {
119
+ backgroundColor: 'var(--color-surface-success-secondary)',
120
+ },
121
+ },
122
+
123
+ outlinedSuccess: {
124
+ backgroundColor: 'var(--color-surface-success)',
125
+ color: 'var(--color-text-primary)',
126
+ borderColor: 'var(--color-border-success)',
127
+
128
+ '&:hover': {
129
+ backgroundColor: 'var(--color-surface-success-secondary)',
130
+ borderColor: 'var(--color-border-success-secondary)',
131
+ },
132
+ },
133
+
134
+ // Color variants - Error
135
+ colorError: {
136
+ backgroundColor: 'var(--color-surface-error)',
137
+ color: 'var(--color-text-primary)',
138
+
139
+ '&:hover': {
140
+ backgroundColor: 'var(--color-surface-error-secondary)',
141
+ },
142
+ },
143
+
144
+ outlinedError: {
145
+ backgroundColor: 'var(--color-surface-error)',
146
+ color: 'var(--color-text-primary)',
147
+ borderColor: 'var(--color-border-error)',
148
+
149
+ '&:hover': {
150
+ backgroundColor: 'var(--color-surface-error-secondary)',
151
+ borderColor: 'var(--color-border-error-secondary)',
152
+ },
153
+ },
154
+
155
+ // Color variants - Warning
156
+ colorWarning: {
157
+ backgroundColor: 'var(--color-surface-warning)',
158
+ color: 'var(--color-text-primary)',
159
+
160
+ '&:hover': {
161
+ backgroundColor: 'var(--color-surface-warning-secondary)',
162
+ },
163
+ },
164
+
165
+ outlinedWarning: {
166
+ backgroundColor: 'var(--color-surface-warning)',
167
+ color: 'var(--color-text-primary)',
168
+ borderColor: 'var(--color-border-warning)',
169
+
170
+ '&:hover': {
171
+ backgroundColor: 'var(--color-surface-warning-secondary)',
172
+ borderColor: 'var(--color-border-warning-secondary)',
173
+ },
174
+ },
175
+
176
+ // Color variants - Info (using secondary/neutral colors)
177
+ colorInfo: {
178
+ backgroundColor: 'var(--color-surface-brand)',
179
+ color: 'var(--color-text-primary)',
180
+
181
+ '&:hover': {
182
+ backgroundColor: 'var(--color-surface-brand-secondary)',
183
+ },
184
+ },
185
+
186
+ outlinedInfo: {
187
+ backgroundColor: 'var(--color-surface-brand)',
188
+ color: 'var(--color-text-primary)',
189
+ borderColor: 'var(--color-border-brand-tertiary)',
190
+
191
+ '&:hover': {
192
+ backgroundColor: 'var(--color-surface-brand-secondary)',
193
+ borderColor: 'var(--color-border-brand-tertiary)',
194
+ },
195
+ },
196
+
197
+ // Color variants - AI
198
+ colorAi: {
199
+ background: 'radial-gradient(135.16% 99.24% at 113.24% 116.21%, var(--color-surface-warning-secondary, #F5B77F) 0%, rgba(245, 183, 127, 0.00) 100%), radial-gradient(76.31% 76.31% at 50% 50%, var(--color-surface-purple-secondary, #E5CCFF) 0%, rgba(229, 204, 255, 0.00) 100%), radial-gradient(122.16% 126.39% at 8.91% 12.38%, var(--color-surface-aqua-secondary, #A2DBF0) 0%, rgba(162, 219, 240, 0.00) 100%), var(--color-surface-purple, #F6EEFF)',
200
+ color: 'var(--color-text-primary)',
201
+
202
+ '&:hover': {
203
+ background: 'var(--color-surface-purple-secondary)',
204
+ },
205
+ },
206
+
207
+ outlinedAi: {
208
+ background: 'radial-gradient(135.16% 99.24% at 113.24% 116.21%, var(--color-surface-warning-secondary, #F5B77F) 0%, rgba(245, 183, 127, 0.00) 100%), radial-gradient(76.31% 76.31% at 50% 50%, var(--color-surface-purple-secondary, #E5CCFF) 0%, rgba(229, 204, 255, 0.00) 100%), radial-gradient(122.16% 126.39% at 8.91% 12.38%, var(--color-surface-aqua-secondary, #A2DBF0) 0%, rgba(162, 219, 240, 0.00) 100%), var(--color-surface-purple, #F6EEFF)',
209
+ color: 'var(--color-text-primary)',
210
+ borderColor: 'var(--color-border-purple)',
211
+
212
+ '&:hover': {
213
+ background: 'var(--color-surface-purple-secondary)',
214
+ },
215
+ },
216
+
217
+ // Icon styling
218
+ icon: {
219
+ color: 'inherit',
220
+ margin: 0,
221
+ },
222
+
223
+ // Delete icon styling
224
+ deleteIcon: {
225
+ color: 'var(--color-icon-primary)',
226
+
227
+ '&:hover': {
228
+ color: 'var(--color-icon-secondary)',
229
+ },
230
+ },
231
+
232
+ deleteIconSmall: {
233
+ fontSize: '16px',
234
+ },
235
+
236
+ deleteIconMedium: {
237
+ fontSize: '17px',
238
+ },
239
+
240
+ // Avatar styling
241
+ avatar: {
242
+ margin: 0,
243
+ color: 'var(--color-text-brand)',
244
+ },
245
+
246
+ avatarSmall: {
247
+ width: '18px',
248
+ height: '18px',
249
+ fontSize: 'var(--font-size-body-3)',
250
+ },
251
+
252
+ avatarMedium: {
253
+ width: '22px',
254
+ height: '22px',
255
+ fontSize: 'var(--font-size-body-3)',
256
+ },
257
+
258
+ // Label styling
259
+ label: {
260
+ padding: '0 4px',
261
+ },
262
+ },
263
+ },
264
+ };
265
+
266
+ declare module '@mui/material/Chip' {
267
+ interface ChipPropsColorOverrides {
268
+ ai: true;
269
+ }
270
+ }
@@ -0,0 +1,62 @@
1
+ export const MUIGatorDialogOverrides = {
2
+ MuiDialog: {
3
+ defaultProps: {
4
+ fullWidth: true,
5
+ },
6
+ styleOverrides: {
7
+ paper: {
8
+ background: 'var(--color-surface-primary)',
9
+ },
10
+ paperFullScreen: {
11
+ '.MuiDialogTitle-root': {
12
+ textAlign: 'center',
13
+ },
14
+ '.MuiDialogActions-root': {
15
+ background: 'var(--color-surface-secondary)',
16
+ padding: 'var(--spacing-10)',
17
+ justifyContent: 'center',
18
+ }
19
+ }
20
+ },
21
+ },
22
+
23
+ MuiDialogTitle: {
24
+ styleOverrides: {
25
+ root: {
26
+ background: 'var(--color-surface-secondary)',
27
+ fontSize: 'var(--font-size-heading-3)',
28
+ lineHeight: 'var(--line-height-heading-3)',
29
+ padding: 'var(--spacing-8)',
30
+ },
31
+ },
32
+ },
33
+
34
+ MuiDialogContent: {
35
+ styleOverrides: {
36
+ root: {
37
+ // important necessary to override title adding a padding-top
38
+ padding: 'var(--spacing-8) var(--spacing-8) var(--spacing-10) var(--spacing-8) !important',
39
+ fontSize: 'var(--font-size-body-2)',
40
+ lineHeight: 'var(--line-height-body-2)',
41
+ },
42
+ },
43
+ },
44
+
45
+ MuiDialogActions: {
46
+ styleOverrides: {
47
+ root: ({ theme }) => ({
48
+ padding: 'var(--spacing-10)',
49
+ // Vertical on mobile
50
+ [theme.breakpoints.down('sm')]: {
51
+ flexDirection: 'column',
52
+ gap: '8px',
53
+
54
+ '& > *': {
55
+ width: '100%',
56
+ margin: '0 !important',
57
+ }
58
+ },
59
+ }),
60
+ },
61
+ }
62
+ };