@ncino/styles 9.2.0-preview.3 → 9.2.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/README.md +159 -0
- package/dist/gator/themes/MUIGatorTheme.js +183 -0
- package/dist/gator/themes/components/accordion.js +68 -0
- package/dist/gator/themes/components/alert.js +55 -0
- package/dist/gator/themes/components/autocomplete.js +139 -0
- package/dist/gator/themes/components/avatar.js +49 -0
- package/dist/gator/themes/components/badge.js +53 -0
- package/dist/gator/themes/components/button.js +65 -0
- package/dist/gator/themes/components/card.js +190 -0
- package/dist/gator/themes/components/checkbox.js +69 -0
- package/dist/gator/themes/components/chip.js +220 -0
- package/dist/gator/themes/components/dialog.js +61 -0
- package/dist/gator/themes/components/fab.js +77 -0
- package/dist/gator/themes/components/form-control.js +97 -0
- package/dist/gator/themes/components/radio.js +43 -0
- package/dist/gator/themes/components/select.js +69 -0
- package/dist/gator/themes/components/switch.js +113 -0
- package/dist/gator/themes/components/table.js +178 -0
- package/dist/gator/themes/components/tabs.js +150 -0
- package/dist/gator/themes/components/text-field.js +103 -0
- package/dist/gator/themes/utils/themeConfig.js +155 -0
- package/dist/gator/tokens/primitive-inline.js +4 -0
- package/dist/gator/tokens/primitive.tokens.css.js +4 -0
- package/dist/gator/tokens/semantic-inline.js +4 -0
- package/dist/gator/tokens/semantic.tokens.css.js +4 -0
- package/dist/gator/types/mui-augmentations.js +1 -0
- package/dist/index.js +5 -0
- package/dist/styles.css +1 -0
- package/dist/types/gator/themes/MUIGatorTheme.d.ts +6 -0
- package/dist/types/gator/themes/components/accordion.d.ts +65 -0
- package/dist/types/gator/themes/components/alert.d.ts +51 -0
- package/dist/types/gator/themes/components/autocomplete.d.ts +127 -0
- package/dist/types/gator/themes/components/avatar.d.ts +63 -0
- package/dist/types/gator/themes/components/badge.d.ts +42 -0
- package/dist/types/gator/themes/components/button.d.ts +61 -0
- package/dist/types/gator/themes/components/card.d.ts +193 -0
- package/dist/types/gator/themes/components/checkbox.d.ts +61 -0
- package/dist/types/gator/themes/components/chip.d.ts +201 -0
- package/dist/types/gator/themes/components/dialog.d.ts +58 -0
- package/dist/types/gator/themes/components/fab.d.ts +78 -0
- package/dist/types/gator/themes/components/form-control.d.ts +86 -0
- package/dist/types/gator/themes/components/radio.d.ts +45 -0
- package/dist/types/gator/themes/components/select.d.ts +64 -0
- package/dist/types/gator/themes/components/switch.d.ts +105 -0
- package/dist/types/gator/themes/components/table.d.ts +170 -0
- package/dist/types/gator/themes/components/tabs.d.ts +163 -0
- package/dist/types/gator/themes/components/text-field.d.ts +100 -0
- package/dist/types/gator/themes/utils/themeConfig.d.ts +92 -0
- package/dist/types/gator/tokens/primitive-inline.d.ts +2 -0
- package/dist/types/gator/tokens/semantic-inline.d.ts +2 -0
- package/dist/types/gator/types/mui-augmentations.d.ts +49 -0
- package/dist/types/index.d.ts +6 -0
- package/package.json +50 -10
- package/src/gator/themes/MUIGatorTheme.ts +0 -237
- package/src/gator/themes/components/accordion.ts +0 -67
- package/src/gator/themes/components/alert.ts +0 -53
- package/src/gator/themes/components/autocomplete.ts +0 -156
- package/src/gator/themes/components/avatar.ts +0 -65
- package/src/gator/themes/components/badge.ts +0 -55
- package/src/gator/themes/components/button.ts +0 -74
- package/src/gator/themes/components/card.ts +0 -202
- package/src/gator/themes/components/checkbox.ts +0 -73
- package/src/gator/themes/components/chip.ts +0 -270
- package/src/gator/themes/components/dialog.ts +0 -62
- package/src/gator/themes/components/form-control.ts +0 -103
- package/src/gator/themes/components/radio.ts +0 -53
- package/src/gator/themes/components/select.ts +0 -74
- package/src/gator/themes/components/switch.ts +0 -145
- package/src/gator/themes/components/table.ts +0 -200
- package/src/gator/themes/components/tabs.ts +0 -167
- package/src/gator/themes/components/text-field.ts +0 -100
- package/src/gator/themes/utils/themeConfig.ts +0 -111
- package/src/gator/types/mui-augmentations.d.ts +0 -27
- /package/{src → dist}/gator/_fonts.css +0 -0
- /package/{src → dist}/gator/_gator-grid.css +0 -0
- /package/{src → dist}/gator/_gator-sizing.css +0 -0
- /package/{src → dist}/gator/_gator-typography.css +0 -0
- /package/{src → dist}/gator/fonts/OpenSans-VariableFont.woff2 +0 -0
- /package/{src → dist}/gator/gator-global-styles.css +0 -0
- /package/{src → dist}/gator/tokens/_gator-global-tokens.css +0 -0
- /package/{src → dist}/gator/tokens/primitive.tokens.css +0 -0
- /package/{src → dist}/gator/tokens/semantic.tokens.css +0 -0
package/README.md
ADDED
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
# @ncino/styles
|
|
2
|
+
|
|
3
|
+
nCino's shared web component styling package implementing the Gator Design System. Provides CSS design tokens, global styles, and a comprehensive Material-UI theme configuration with TypeScript support for custom component props.
|
|
4
|
+
|
|
5
|
+
## Installation
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
npm install @ncino/styles
|
|
9
|
+
# or
|
|
10
|
+
pnpm add @ncino/styles
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
## Quick Start
|
|
14
|
+
|
|
15
|
+
```typescript
|
|
16
|
+
// app/layout.tsx (or _app.tsx)
|
|
17
|
+
import '@ncino/styles/gator'; // Global styles
|
|
18
|
+
import { ThemeProvider } from '@mui/material/styles';
|
|
19
|
+
import { gatorMUITheme } from '@ncino/styles/gator/themes/MUIGatorTheme';
|
|
20
|
+
|
|
21
|
+
export default function RootLayout({ children }) {
|
|
22
|
+
return (
|
|
23
|
+
<ThemeProvider theme={gatorMUITheme}>
|
|
24
|
+
{children}
|
|
25
|
+
</ThemeProvider>
|
|
26
|
+
);
|
|
27
|
+
}
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
**That's it!** All MUI components now use the Gator theme, and TypeScript recognizes custom props like `color="ai"` automatically.
|
|
31
|
+
|
|
32
|
+
## What's Included
|
|
33
|
+
|
|
34
|
+
- **Design Tokens**: Primitive and semantic CSS custom properties
|
|
35
|
+
- **Global Styles**: CSS utilities, grid system, typography classes
|
|
36
|
+
- **MUI Theme**: Complete Material-UI theme with component overrides
|
|
37
|
+
- **TypeScript Support**: Type augmentations for custom MUI props
|
|
38
|
+
- **Web Fonts**: Self-hosted Open Sans variable font
|
|
39
|
+
|
|
40
|
+
## Usage
|
|
41
|
+
|
|
42
|
+
### Using MUI Components
|
|
43
|
+
|
|
44
|
+
Material-UI components automatically use the Gator theme:
|
|
45
|
+
|
|
46
|
+
```typescript
|
|
47
|
+
import { Button, TextField, Card, Chip } from '@mui/material';
|
|
48
|
+
|
|
49
|
+
<Button color="primary">Primary</Button>
|
|
50
|
+
<Button color="ai">AI</Button> {/* Custom Gator color */}
|
|
51
|
+
<Button color="neutral">Neutral</Button> {/* Custom Gator color */}
|
|
52
|
+
|
|
53
|
+
<Chip color="ai" label="AI Feature" /> {/* Custom Gator color */}
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
### Using Design Tokens
|
|
57
|
+
|
|
58
|
+
Design tokens are available as CSS custom properties:
|
|
59
|
+
|
|
60
|
+
```css
|
|
61
|
+
.my-component {
|
|
62
|
+
/* Colors */
|
|
63
|
+
color: var(--color-text-primary);
|
|
64
|
+
background-color: var(--color-surface-brand);
|
|
65
|
+
|
|
66
|
+
/* Spacing (0-18 scale) */
|
|
67
|
+
padding: var(--spacing-8); /* 16px */
|
|
68
|
+
margin: var(--spacing-10); /* 24px */
|
|
69
|
+
gap: var(--spacing-5); /* 8px */
|
|
70
|
+
|
|
71
|
+
/* Typography */
|
|
72
|
+
font-size: var(--font-size-body-1);
|
|
73
|
+
font-weight: var(--font-weight-semi-bold);
|
|
74
|
+
|
|
75
|
+
/* Other */
|
|
76
|
+
border-radius: var(--border-radius-medium);
|
|
77
|
+
box-shadow: var(--shadow-2-card-raised);
|
|
78
|
+
}
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
### Grid System
|
|
82
|
+
|
|
83
|
+
```html
|
|
84
|
+
<div class="gator-container">
|
|
85
|
+
<div class="gator-row">
|
|
86
|
+
<div class="gator-col-12 gator-col-md-6 gator-col-lg-4">
|
|
87
|
+
Column 1
|
|
88
|
+
</div>
|
|
89
|
+
<div class="gator-col-12 gator-col-md-6 gator-col-lg-4">
|
|
90
|
+
Column 2
|
|
91
|
+
</div>
|
|
92
|
+
<div class="gator-col-12 gator-col-md-6 gator-col-lg-4">
|
|
93
|
+
Column 3
|
|
94
|
+
</div>
|
|
95
|
+
</div>
|
|
96
|
+
</div>
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
### Individual Token Imports
|
|
100
|
+
|
|
101
|
+
Import specific token sets if needed:
|
|
102
|
+
|
|
103
|
+
```typescript
|
|
104
|
+
import '@ncino/styles/gator/tokens/primitive'; // Base colors, font sizes
|
|
105
|
+
import '@ncino/styles/gator/tokens/semantic'; // Contextual tokens
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
## TypeScript Setup
|
|
109
|
+
|
|
110
|
+
### How It Works
|
|
111
|
+
|
|
112
|
+
TypeScript module augmentations are loaded **project-wide** when you import the theme. You only need to import it once (typically in your app root), and all files get the custom prop types automatically.
|
|
113
|
+
|
|
114
|
+
### Troubleshooting
|
|
115
|
+
|
|
116
|
+
#### Custom props showing TypeScript errors
|
|
117
|
+
|
|
118
|
+
**Most Common Cause:** Dependency version mismatch in monorepos.
|
|
119
|
+
|
|
120
|
+
TypeScript creates separate `@mui/material` instances for different React/@types/react versions. Augmentations only apply when versions match.
|
|
121
|
+
|
|
122
|
+
**Solution:** Ensure consistent versions:
|
|
123
|
+
|
|
124
|
+
```json
|
|
125
|
+
{
|
|
126
|
+
"dependencies": {
|
|
127
|
+
"react": "19.2.4",
|
|
128
|
+
"react-dom": "19.2.4"
|
|
129
|
+
},
|
|
130
|
+
"devDependencies": {
|
|
131
|
+
"@types/react": "^19",
|
|
132
|
+
"@types/react-dom": "^19"
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
After updating:
|
|
138
|
+
1. Run `pnpm install`
|
|
139
|
+
2. Restart TypeScript server (VS Code: Cmd+Shift+P → "TypeScript: Restart TS Server")
|
|
140
|
+
3. Clear caches: `rm -rf .next node_modules/.cache`
|
|
141
|
+
|
|
142
|
+
#### Still not working?
|
|
143
|
+
|
|
144
|
+
- **Verify theme import:** Make sure you're importing `gatorMUITheme` somewhere in your app
|
|
145
|
+
- **Check installation:** Verify `node_modules/@ncino/styles` exists
|
|
146
|
+
- **IDE restart:** Sometimes a full IDE restart is needed
|
|
147
|
+
|
|
148
|
+
## Exports
|
|
149
|
+
|
|
150
|
+
Available import paths:
|
|
151
|
+
|
|
152
|
+
```typescript
|
|
153
|
+
import '@ncino/styles'; // Load augmentations
|
|
154
|
+
import { gatorMUITheme } from '@ncino/styles'; // Theme (default export)
|
|
155
|
+
import '@ncino/styles/gator'; // Global styles CSS
|
|
156
|
+
import { gatorMUITheme } from '@ncino/styles/gator/themes/MUIGatorTheme';
|
|
157
|
+
import '@ncino/styles/gator/tokens/primitive'; // Primitive tokens CSS
|
|
158
|
+
import '@ncino/styles/gator/tokens/semantic'; // Semantic tokens CSS
|
|
159
|
+
```
|
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
import * as a from "./components/accordion.js";
|
|
2
|
+
import * as r from "./components/alert.js";
|
|
3
|
+
import * as s from "./components/autocomplete.js";
|
|
4
|
+
import * as l from "./components/avatar.js";
|
|
5
|
+
import * as m from "./components/badge.js";
|
|
6
|
+
import * as g from "./components/button.js";
|
|
7
|
+
import * as h from "./components/card.js";
|
|
8
|
+
import * as c from "./components/checkbox.js";
|
|
9
|
+
import * as f from "./components/chip.js";
|
|
10
|
+
import * as d from "./components/dialog.js";
|
|
11
|
+
import * as p from "./components/fab.js";
|
|
12
|
+
import * as y from "./components/form-control.js";
|
|
13
|
+
import * as u from "./components/radio.js";
|
|
14
|
+
import * as _ from "./components/select.js";
|
|
15
|
+
import * as b from "./components/switch.js";
|
|
16
|
+
import * as v from "./components/table.js";
|
|
17
|
+
import * as F from "./components/tabs.js";
|
|
18
|
+
import * as W from "./components/text-field.js";
|
|
19
|
+
import { createTheme as S } from "@mui/material/styles";
|
|
20
|
+
/* empty css */
|
|
21
|
+
/* empty css */
|
|
22
|
+
import { gatorShadows as z, gatorBorderRadius as O, gatorSpacing as x, gatorTypography as t, gatorColorValues as e } from "./utils/themeConfig.js";
|
|
23
|
+
const H = /* @__PURE__ */ Object.assign({ "./components/accordion.ts": a, "./components/alert.ts": r, "./components/autocomplete.ts": s, "./components/avatar.ts": l, "./components/badge.ts": m, "./components/button.ts": g, "./components/card.ts": h, "./components/checkbox.ts": c, "./components/chip.ts": f, "./components/dialog.ts": d, "./components/fab.ts": p, "./components/form-control.ts": y, "./components/radio.ts": u, "./components/select.ts": _, "./components/switch.ts": b, "./components/table.ts": v, "./components/tabs.ts": F, "./components/text-field.ts": W }), B = Object.values(H).reduce((n, i) => (Object.keys(i).forEach((o) => {
|
|
24
|
+
o.startsWith("MUIGator") && o.includes("Override") && Object.assign(n, i[o]);
|
|
25
|
+
}), n), {}), k = {
|
|
26
|
+
palette: {
|
|
27
|
+
mode: "light",
|
|
28
|
+
primary: e.brand,
|
|
29
|
+
secondary: e.secondary,
|
|
30
|
+
neutral: {
|
|
31
|
+
main: e.neutral[70],
|
|
32
|
+
light: e.neutral[40],
|
|
33
|
+
dark: e.neutral[80],
|
|
34
|
+
contrastText: "#FFFFFF"
|
|
35
|
+
},
|
|
36
|
+
error: e.error,
|
|
37
|
+
success: e.success,
|
|
38
|
+
warning: e.warning,
|
|
39
|
+
info: e.info,
|
|
40
|
+
ai: e.ai,
|
|
41
|
+
text: e.text,
|
|
42
|
+
background: e.background,
|
|
43
|
+
divider: e.divider,
|
|
44
|
+
action: {
|
|
45
|
+
active: e.neutral[70],
|
|
46
|
+
hover: e.neutral[10],
|
|
47
|
+
selected: e.neutral[20],
|
|
48
|
+
disabled: e.neutral[40],
|
|
49
|
+
disabledBackground: e.neutral[30],
|
|
50
|
+
focus: e.neutral[20],
|
|
51
|
+
hoverOpacity: 0.04,
|
|
52
|
+
selectedOpacity: 0.08,
|
|
53
|
+
disabledOpacity: 0.38,
|
|
54
|
+
focusOpacity: 0.12,
|
|
55
|
+
activatedOpacity: 0.12
|
|
56
|
+
}
|
|
57
|
+
},
|
|
58
|
+
typography: {
|
|
59
|
+
fontFamily: t.fontFamily.body,
|
|
60
|
+
fontWeightLight: t.fontWeight.regular,
|
|
61
|
+
fontWeightRegular: t.fontWeight.regular,
|
|
62
|
+
fontWeightMedium: t.fontWeight.medium,
|
|
63
|
+
fontWeightBold: t.fontWeight.semiBold,
|
|
64
|
+
// Display styles (using CSS variables for dynamic sizing)
|
|
65
|
+
h1: {
|
|
66
|
+
fontFamily: t.fontFamily.headings,
|
|
67
|
+
fontSize: "var(--font-size-display-1)",
|
|
68
|
+
lineHeight: "var(--line-height-display-1)",
|
|
69
|
+
fontWeight: t.fontWeight.bold,
|
|
70
|
+
letterSpacing: "var(--letter-spacing-narrow)"
|
|
71
|
+
},
|
|
72
|
+
h2: {
|
|
73
|
+
fontFamily: t.fontFamily.headings,
|
|
74
|
+
fontSize: "var(--font-size-display-2)",
|
|
75
|
+
lineHeight: "var(--line-height-display-2)",
|
|
76
|
+
fontWeight: t.fontWeight.bold,
|
|
77
|
+
letterSpacing: "var(--letter-spacing-narrow)"
|
|
78
|
+
},
|
|
79
|
+
// Heading styles
|
|
80
|
+
h3: {
|
|
81
|
+
fontFamily: t.fontFamily.headings,
|
|
82
|
+
fontSize: "var(--font-size-heading-1)",
|
|
83
|
+
lineHeight: "var(--line-height-heading-1)",
|
|
84
|
+
fontWeight: t.fontWeight.semiBold,
|
|
85
|
+
letterSpacing: "var(--letter-spacing-default)"
|
|
86
|
+
},
|
|
87
|
+
h4: {
|
|
88
|
+
fontFamily: t.fontFamily.headings,
|
|
89
|
+
fontSize: "var(--font-size-heading-2)",
|
|
90
|
+
lineHeight: "var(--line-height-heading-2)",
|
|
91
|
+
fontWeight: t.fontWeight.semiBold,
|
|
92
|
+
letterSpacing: "var(--letter-spacing-default)"
|
|
93
|
+
},
|
|
94
|
+
h5: {
|
|
95
|
+
fontFamily: t.fontFamily.headings,
|
|
96
|
+
fontSize: "var(--font-size-heading-3)",
|
|
97
|
+
lineHeight: "var(--line-height-heading-3)",
|
|
98
|
+
fontWeight: t.fontWeight.semiBold,
|
|
99
|
+
letterSpacing: "var(--letter-spacing-default)"
|
|
100
|
+
},
|
|
101
|
+
h6: {
|
|
102
|
+
fontFamily: t.fontFamily.headings,
|
|
103
|
+
fontSize: "var(--font-size-heading-4)",
|
|
104
|
+
lineHeight: "var(--line-height-heading-4)",
|
|
105
|
+
fontWeight: t.fontWeight.semiBold,
|
|
106
|
+
letterSpacing: "var(--letter-spacing-default)"
|
|
107
|
+
},
|
|
108
|
+
// Subtitle styles
|
|
109
|
+
subtitle1: {
|
|
110
|
+
fontFamily: t.fontFamily.body,
|
|
111
|
+
fontSize: "var(--font-size-subtitle-1)",
|
|
112
|
+
lineHeight: "var(--line-height-subtitle-1)",
|
|
113
|
+
fontWeight: t.fontWeight.semiBold,
|
|
114
|
+
letterSpacing: "var(--letter-spacing-default)"
|
|
115
|
+
},
|
|
116
|
+
subtitle2: {
|
|
117
|
+
fontFamily: t.fontFamily.body,
|
|
118
|
+
fontSize: "var(--font-size-subtitle-2)",
|
|
119
|
+
lineHeight: "var(--line-height-subtitle-2)",
|
|
120
|
+
fontWeight: t.fontWeight.semiBold,
|
|
121
|
+
letterSpacing: "var(--letter-spacing-default)"
|
|
122
|
+
},
|
|
123
|
+
// Body styles
|
|
124
|
+
body1: {
|
|
125
|
+
fontFamily: t.fontFamily.body,
|
|
126
|
+
fontSize: "var(--font-size-body-1)",
|
|
127
|
+
lineHeight: "var(--line-height-body-1)",
|
|
128
|
+
fontWeight: t.fontWeight.regular,
|
|
129
|
+
letterSpacing: "var(--letter-spacing-default)"
|
|
130
|
+
},
|
|
131
|
+
body2: {
|
|
132
|
+
fontFamily: t.fontFamily.body,
|
|
133
|
+
fontSize: "var(--font-size-body-2)",
|
|
134
|
+
lineHeight: "var(--line-height-body-2)",
|
|
135
|
+
fontWeight: t.fontWeight.regular,
|
|
136
|
+
letterSpacing: "var(--letter-spacing-default)"
|
|
137
|
+
},
|
|
138
|
+
// Button text
|
|
139
|
+
button: {
|
|
140
|
+
fontFamily: t.fontFamily.body,
|
|
141
|
+
fontSize: "var(--font-size-body-2)",
|
|
142
|
+
lineHeight: "var(--line-height-body-2)",
|
|
143
|
+
fontWeight: t.fontWeight.semiBold,
|
|
144
|
+
textTransform: "none",
|
|
145
|
+
letterSpacing: "var(--letter-spacing-default)"
|
|
146
|
+
},
|
|
147
|
+
// Caption and overline
|
|
148
|
+
caption: {
|
|
149
|
+
fontFamily: t.fontFamily.body,
|
|
150
|
+
fontSize: "var(--font-size-body-3)",
|
|
151
|
+
lineHeight: "var(--line-height-body-3)",
|
|
152
|
+
fontWeight: t.fontWeight.regular,
|
|
153
|
+
letterSpacing: "var(--letter-spacing-default)"
|
|
154
|
+
}
|
|
155
|
+
},
|
|
156
|
+
spacing: x,
|
|
157
|
+
shape: {
|
|
158
|
+
borderRadius: O.xsmall
|
|
159
|
+
},
|
|
160
|
+
shadows: z,
|
|
161
|
+
// Component-specific default props
|
|
162
|
+
components: {
|
|
163
|
+
// Component overrides
|
|
164
|
+
...B,
|
|
165
|
+
// Additional component overrides not in separate files
|
|
166
|
+
MuiLink: {
|
|
167
|
+
styleOverrides: {
|
|
168
|
+
root: {
|
|
169
|
+
color: "var(--color-text-brand)",
|
|
170
|
+
textDecorationColor: "var(--color-underline-brand)",
|
|
171
|
+
"&:hover": {
|
|
172
|
+
color: "var(--color-text-brand)",
|
|
173
|
+
textDecorationColor: "var(--color-underline-brand-secondary)"
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
}, C = S(k);
|
|
180
|
+
export {
|
|
181
|
+
C as default,
|
|
182
|
+
C as gatorMUITheme
|
|
183
|
+
};
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
const r = {
|
|
2
|
+
MuiAccordion: {
|
|
3
|
+
defaultProps: {
|
|
4
|
+
disableGutters: !0,
|
|
5
|
+
elevation: 0
|
|
6
|
+
},
|
|
7
|
+
styleOverrides: {
|
|
8
|
+
root: {
|
|
9
|
+
borderRadius: "var(--border-radius-small)",
|
|
10
|
+
"&:not(:last-child)": {
|
|
11
|
+
borderBottom: "1px solid var(--color-border-tertiary)"
|
|
12
|
+
},
|
|
13
|
+
"&:before": {
|
|
14
|
+
display: "none"
|
|
15
|
+
},
|
|
16
|
+
"&.Mui-expanded": {
|
|
17
|
+
"&:before": {
|
|
18
|
+
opacity: 1
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
},
|
|
24
|
+
MuiAccordionSummary: {
|
|
25
|
+
styleOverrides: {
|
|
26
|
+
root: {
|
|
27
|
+
padding: "16px",
|
|
28
|
+
minHeight: "56px",
|
|
29
|
+
transition: "background-color 0.2s ease",
|
|
30
|
+
"&:hover": {
|
|
31
|
+
backgroundColor: "var(--color-surface-hover)"
|
|
32
|
+
},
|
|
33
|
+
"&.Mui-focusVisible": {
|
|
34
|
+
outline: "2px solid var(--color-border-focus)",
|
|
35
|
+
outlineOffset: "-1px"
|
|
36
|
+
},
|
|
37
|
+
"&.Mui-expanded": {
|
|
38
|
+
minHeight: "56px"
|
|
39
|
+
}
|
|
40
|
+
},
|
|
41
|
+
content: {
|
|
42
|
+
margin: "0",
|
|
43
|
+
"&.Mui-expanded": {
|
|
44
|
+
margin: "0"
|
|
45
|
+
}
|
|
46
|
+
},
|
|
47
|
+
expandIconWrapper: {
|
|
48
|
+
color: "var(--color-icon-primary)",
|
|
49
|
+
"&.Mui-expanded": {
|
|
50
|
+
transform: "rotate(180deg)"
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
},
|
|
55
|
+
MuiAccordionDetails: {
|
|
56
|
+
styleOverrides: {
|
|
57
|
+
root: {
|
|
58
|
+
padding: "16px 16px 24px 16px",
|
|
59
|
+
fontSize: "var(--font-size-body-2)",
|
|
60
|
+
lineHeight: "var(--line-height-body-2)",
|
|
61
|
+
color: "var(--color-text-primary)"
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
};
|
|
66
|
+
export {
|
|
67
|
+
r as MUIGatorAccordionOverrides
|
|
68
|
+
};
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { gatorTypography as r } from "../utils/themeConfig.js";
|
|
2
|
+
const a = {
|
|
3
|
+
MuiAlert: {
|
|
4
|
+
styleOverrides: {
|
|
5
|
+
root: {
|
|
6
|
+
borderRadius: "var(--border-radius-x-large)",
|
|
7
|
+
padding: "1.5rem",
|
|
8
|
+
fontSize: "var(--font-size-body-1)",
|
|
9
|
+
border: "1px solid var(--color-border-primary)"
|
|
10
|
+
},
|
|
11
|
+
standardSuccess: {
|
|
12
|
+
backgroundColor: "var(--color-surface-success)",
|
|
13
|
+
color: "var(--color-text-primary)",
|
|
14
|
+
borderColor: "var(--color-border-success)",
|
|
15
|
+
"& .MuiAlert-icon": {
|
|
16
|
+
color: "var(--color-icon-success)"
|
|
17
|
+
}
|
|
18
|
+
},
|
|
19
|
+
standardError: {
|
|
20
|
+
backgroundColor: "var(--color-surface-error)",
|
|
21
|
+
color: "var(--color-text-primary)",
|
|
22
|
+
borderColor: "var(--color-border-error)",
|
|
23
|
+
"& .MuiAlert-icon": {
|
|
24
|
+
color: "var(--color-icon-error)"
|
|
25
|
+
}
|
|
26
|
+
},
|
|
27
|
+
standardWarning: {
|
|
28
|
+
backgroundColor: "var(--color-surface-warning)",
|
|
29
|
+
color: "var(--color-text-primary)",
|
|
30
|
+
borderColor: "var(--color-border-warning)",
|
|
31
|
+
"& .MuiAlert-icon": {
|
|
32
|
+
color: "var(--color-icon-warning)"
|
|
33
|
+
}
|
|
34
|
+
},
|
|
35
|
+
standardInfo: {
|
|
36
|
+
backgroundColor: "var(--color-surface-secondary)",
|
|
37
|
+
color: "var(--color-text-primary)",
|
|
38
|
+
borderColor: "var(--color-border-secondary)",
|
|
39
|
+
"& .MuiAlert-icon": {
|
|
40
|
+
color: "var(--color-icon-primary)"
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
},
|
|
45
|
+
MuiAlertTitle: {
|
|
46
|
+
styleOverrides: {
|
|
47
|
+
root: {
|
|
48
|
+
fontWeight: r.fontWeight.bold
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
};
|
|
53
|
+
export {
|
|
54
|
+
a as MUIGatorAlertOverrides
|
|
55
|
+
};
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
import { gatorTypography as o } from "../utils/themeConfig.js";
|
|
2
|
+
import r from "@mui/icons-material/ExpandMore";
|
|
3
|
+
import a from "react";
|
|
4
|
+
const t = {
|
|
5
|
+
MuiAutocomplete: {
|
|
6
|
+
defaultProps: {
|
|
7
|
+
componentsProps: {
|
|
8
|
+
paper: {
|
|
9
|
+
elevation: 3
|
|
10
|
+
}
|
|
11
|
+
},
|
|
12
|
+
popupIcon: a.createElement(r)
|
|
13
|
+
},
|
|
14
|
+
styleOverrides: {
|
|
15
|
+
root: {
|
|
16
|
+
// Override the input field styling
|
|
17
|
+
"& .MuiInputBase-root": {
|
|
18
|
+
padding: "var(--spacing-7) var(--spacing-8)",
|
|
19
|
+
minHeight: "48px",
|
|
20
|
+
fontFamily: o.fontFamily.body,
|
|
21
|
+
fontSize: "var(--font-size-body-1)",
|
|
22
|
+
lineHeight: "var(--line-height-body-1)"
|
|
23
|
+
},
|
|
24
|
+
"& .MuiAutocomplete-input": {
|
|
25
|
+
padding: "0 !important"
|
|
26
|
+
},
|
|
27
|
+
"& .MuiAutocomplete-endAdornment": {
|
|
28
|
+
right: "var(--spacing-8)"
|
|
29
|
+
},
|
|
30
|
+
"& .MuiAutocomplete-clearIndicator": {
|
|
31
|
+
visibility: "visible",
|
|
32
|
+
marginRight: "var(--spacing-3)",
|
|
33
|
+
color: "var(--color-icon-primary)",
|
|
34
|
+
"&:hover": {
|
|
35
|
+
color: "var(--color-icon-secondary)",
|
|
36
|
+
backgroundColor: "transparent"
|
|
37
|
+
}
|
|
38
|
+
},
|
|
39
|
+
"& .MuiAutocomplete-popupIndicator": {
|
|
40
|
+
color: "var(--color-icon-primary)",
|
|
41
|
+
"&:hover": {
|
|
42
|
+
backgroundColor: "transparent"
|
|
43
|
+
}
|
|
44
|
+
},
|
|
45
|
+
".MuiCircularProgress-root": {
|
|
46
|
+
marginRight: "var(--spacing-8)"
|
|
47
|
+
}
|
|
48
|
+
},
|
|
49
|
+
// Dropdown popup/menu styling
|
|
50
|
+
paper: {
|
|
51
|
+
marginTop: "var(--spacing-3)",
|
|
52
|
+
borderRadius: "var(--border-radius-medium)",
|
|
53
|
+
boxShadow: "var(--shadow-3-dropdown)",
|
|
54
|
+
backgroundColor: "var(--color-surface-primary)"
|
|
55
|
+
},
|
|
56
|
+
// List container
|
|
57
|
+
listbox: {
|
|
58
|
+
padding: "var(--spacing-5) 0",
|
|
59
|
+
maxHeight: "300px",
|
|
60
|
+
fontFamily: o.fontFamily.body,
|
|
61
|
+
fontSize: "var(--font-size-body-1)",
|
|
62
|
+
lineHeight: "var(--line-height-body-1)",
|
|
63
|
+
"& .MuiAutocomplete-option": {
|
|
64
|
+
padding: " var(--spacing-5) var(--spacing-8) var(--spacing-5) var(--spacing-12)",
|
|
65
|
+
minHeight: "40px",
|
|
66
|
+
color: "var(--color-text-primary)",
|
|
67
|
+
"&:hover": {
|
|
68
|
+
backgroundColor: "var(--color-surface-hover)"
|
|
69
|
+
},
|
|
70
|
+
"&.Mui-focused": {
|
|
71
|
+
backgroundColor: "var(--color-surface-hover)"
|
|
72
|
+
},
|
|
73
|
+
'&[aria-selected="true"]': {
|
|
74
|
+
backgroundColor: "var(--color-surface-brand)",
|
|
75
|
+
color: "var(--color-text-primary)",
|
|
76
|
+
fontWeight: o.fontWeight.bold,
|
|
77
|
+
paddingLeft: "var(--spacing-8)",
|
|
78
|
+
"::before": {
|
|
79
|
+
content: '"✓"',
|
|
80
|
+
display: "inline-block",
|
|
81
|
+
marginRight: "var(--spacing-6)",
|
|
82
|
+
color: "var(--color-icon-on-brand)",
|
|
83
|
+
fontWeight: o.fontWeight.regular
|
|
84
|
+
},
|
|
85
|
+
"&:hover": {
|
|
86
|
+
backgroundColor: "var(--color-surface-brand-secondary)"
|
|
87
|
+
},
|
|
88
|
+
"&.Mui-focused": {
|
|
89
|
+
backgroundColor: "var(--color-surface-brand-secondary)"
|
|
90
|
+
}
|
|
91
|
+
},
|
|
92
|
+
'&[aria-disabled="true"]': {
|
|
93
|
+
opacity: 1,
|
|
94
|
+
color: "var(--color-text-disabled)",
|
|
95
|
+
pointerEvents: "none"
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
},
|
|
99
|
+
// No options message
|
|
100
|
+
noOptions: {
|
|
101
|
+
padding: "var(--spacing-5) var(--spacing-8)",
|
|
102
|
+
color: "var(--color-text-secondary)",
|
|
103
|
+
fontFamily: o.fontFamily.body,
|
|
104
|
+
fontSize: "var(--font-size-body-1)",
|
|
105
|
+
lineHeight: "var(--line-height-body-1)"
|
|
106
|
+
},
|
|
107
|
+
// Loading text
|
|
108
|
+
loading: {
|
|
109
|
+
padding: "var(--spacing-5) var(--spacing-8)",
|
|
110
|
+
color: "var(--color-text-secondary)",
|
|
111
|
+
fontFamily: o.fontFamily.body,
|
|
112
|
+
fontSize: "var(--font-size-body-1)",
|
|
113
|
+
lineHeight: "var(--line-height-body-1)"
|
|
114
|
+
},
|
|
115
|
+
// Grouping
|
|
116
|
+
groupLabel: {
|
|
117
|
+
padding: "var(--spacing-5) var(--spacing-8)",
|
|
118
|
+
fontFamily: o.fontFamily.body,
|
|
119
|
+
fontSize: "var(--font-size-body-2)",
|
|
120
|
+
lineHeight: "var(--line-height-body-2)",
|
|
121
|
+
fontWeight: o.fontWeight.semiBold,
|
|
122
|
+
color: "var(--color-text-secondary)",
|
|
123
|
+
top: 0,
|
|
124
|
+
zIndex: 1
|
|
125
|
+
},
|
|
126
|
+
groupUl: {
|
|
127
|
+
padding: 0
|
|
128
|
+
},
|
|
129
|
+
// Chips for multiselect
|
|
130
|
+
tag: {
|
|
131
|
+
margin: "-5px 4px",
|
|
132
|
+
fontSize: "var(--font-size-body-3)"
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
};
|
|
137
|
+
export {
|
|
138
|
+
t as MUIGatorAutocompleteOverrides
|
|
139
|
+
};
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { gatorTypography as r } from "../utils/themeConfig.js";
|
|
2
|
+
const a = {
|
|
3
|
+
MuiAvatar: {
|
|
4
|
+
styleOverrides: {
|
|
5
|
+
root: {
|
|
6
|
+
fontFamily: r.fontFamily.body,
|
|
7
|
+
fontWeight: r.fontWeight.bold,
|
|
8
|
+
fontSize: "var(--font-size-body-1)"
|
|
9
|
+
},
|
|
10
|
+
colorDefault: {
|
|
11
|
+
backgroundColor: "var(--color-surface-brand-tertiary)",
|
|
12
|
+
color: "var(--color-text-brand)"
|
|
13
|
+
}
|
|
14
|
+
},
|
|
15
|
+
variants: [
|
|
16
|
+
{
|
|
17
|
+
props: { variant: "circular" },
|
|
18
|
+
style: {
|
|
19
|
+
borderRadius: "var(--border-radius-circle)"
|
|
20
|
+
}
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
props: { variant: "rounded" },
|
|
24
|
+
style: {
|
|
25
|
+
borderRadius: "var(--border-radius-medium)"
|
|
26
|
+
}
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
props: { variant: "square" },
|
|
30
|
+
style: {
|
|
31
|
+
borderRadius: "var(--border-radius-no-radius)"
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
]
|
|
35
|
+
},
|
|
36
|
+
MuiAvatarGroup: {
|
|
37
|
+
styleOverrides: {
|
|
38
|
+
avatar: {
|
|
39
|
+
border: "2px solid var(--color-background-primary)",
|
|
40
|
+
fontSize: "var(--font-size-body-1)",
|
|
41
|
+
width: 40,
|
|
42
|
+
height: 40
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
};
|
|
47
|
+
export {
|
|
48
|
+
a as MUIGatorAvatarOverrides
|
|
49
|
+
};
|