@ncino/styles 9.2.0-preview.2 → 9.2.0-preview.4

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 (82) hide show
  1. package/README.md +159 -0
  2. package/dist/gator/themes/MUIGatorTheme.js +183 -0
  3. package/dist/gator/themes/components/accordion.js +68 -0
  4. package/dist/gator/themes/components/alert.js +55 -0
  5. package/dist/gator/themes/components/autocomplete.js +139 -0
  6. package/dist/gator/themes/components/avatar.js +49 -0
  7. package/dist/gator/themes/components/badge.js +53 -0
  8. package/dist/gator/themes/components/button.js +65 -0
  9. package/dist/gator/themes/components/card.js +190 -0
  10. package/dist/gator/themes/components/checkbox.js +69 -0
  11. package/dist/gator/themes/components/chip.js +220 -0
  12. package/dist/gator/themes/components/dialog.js +61 -0
  13. package/dist/gator/themes/components/fab.js +77 -0
  14. package/dist/gator/themes/components/form-control.js +97 -0
  15. package/dist/gator/themes/components/radio.js +43 -0
  16. package/dist/gator/themes/components/select.js +69 -0
  17. package/dist/gator/themes/components/switch.js +113 -0
  18. package/dist/gator/themes/components/table.js +178 -0
  19. package/dist/gator/themes/components/tabs.js +150 -0
  20. package/dist/gator/themes/components/text-field.js +103 -0
  21. package/dist/gator/themes/utils/themeConfig.js +155 -0
  22. package/dist/gator/tokens/primitive-inline.js +4 -0
  23. package/dist/gator/tokens/primitive.tokens.css.js +4 -0
  24. package/dist/gator/tokens/semantic-inline.js +4 -0
  25. package/dist/gator/tokens/semantic.tokens.css.js +4 -0
  26. package/dist/gator/types/mui-augmentations.js +1 -0
  27. package/dist/index.js +5 -0
  28. package/dist/styles.css +1 -0
  29. package/dist/types/gator/themes/MUIGatorTheme.d.ts +6 -0
  30. package/dist/types/gator/themes/components/accordion.d.ts +65 -0
  31. package/dist/types/gator/themes/components/alert.d.ts +51 -0
  32. package/dist/types/gator/themes/components/autocomplete.d.ts +127 -0
  33. package/dist/types/gator/themes/components/avatar.d.ts +63 -0
  34. package/dist/types/gator/themes/components/badge.d.ts +42 -0
  35. package/dist/types/gator/themes/components/button.d.ts +61 -0
  36. package/dist/types/gator/themes/components/card.d.ts +193 -0
  37. package/dist/types/gator/themes/components/checkbox.d.ts +61 -0
  38. package/dist/types/gator/themes/components/chip.d.ts +201 -0
  39. package/dist/types/gator/themes/components/dialog.d.ts +58 -0
  40. package/dist/types/gator/themes/components/fab.d.ts +78 -0
  41. package/dist/types/gator/themes/components/form-control.d.ts +86 -0
  42. package/dist/types/gator/themes/components/radio.d.ts +45 -0
  43. package/dist/types/gator/themes/components/select.d.ts +64 -0
  44. package/dist/types/gator/themes/components/switch.d.ts +105 -0
  45. package/dist/types/gator/themes/components/table.d.ts +170 -0
  46. package/dist/types/gator/themes/components/tabs.d.ts +163 -0
  47. package/dist/types/gator/themes/components/text-field.d.ts +100 -0
  48. package/dist/types/gator/themes/utils/themeConfig.d.ts +92 -0
  49. package/dist/types/gator/tokens/primitive-inline.d.ts +2 -0
  50. package/dist/types/gator/tokens/semantic-inline.d.ts +2 -0
  51. package/dist/types/gator/types/mui-augmentations.d.ts +49 -0
  52. package/dist/types/index.d.ts +6 -0
  53. package/package.json +50 -10
  54. package/src/gator/themes/MUIGatorTheme.ts +0 -237
  55. package/src/gator/themes/components/accordion.ts +0 -67
  56. package/src/gator/themes/components/alert.ts +0 -53
  57. package/src/gator/themes/components/autocomplete.ts +0 -156
  58. package/src/gator/themes/components/avatar.ts +0 -65
  59. package/src/gator/themes/components/badge.ts +0 -55
  60. package/src/gator/themes/components/button.ts +0 -71
  61. package/src/gator/themes/components/card.ts +0 -202
  62. package/src/gator/themes/components/checkbox.ts +0 -73
  63. package/src/gator/themes/components/chip.ts +0 -270
  64. package/src/gator/themes/components/dialog.ts +0 -62
  65. package/src/gator/themes/components/form-control.ts +0 -103
  66. package/src/gator/themes/components/radio.ts +0 -53
  67. package/src/gator/themes/components/select.ts +0 -74
  68. package/src/gator/themes/components/switch.ts +0 -145
  69. package/src/gator/themes/components/table.ts +0 -200
  70. package/src/gator/themes/components/tabs.ts +0 -167
  71. package/src/gator/themes/components/text-field.ts +0 -100
  72. package/src/gator/themes/utils/themeConfig.ts +0 -111
  73. package/src/gator/types/mui-augmentations.d.ts +0 -27
  74. /package/{src → dist}/gator/_fonts.css +0 -0
  75. /package/{src → dist}/gator/_gator-grid.css +0 -0
  76. /package/{src → dist}/gator/_gator-sizing.css +0 -0
  77. /package/{src → dist}/gator/_gator-typography.css +0 -0
  78. /package/{src → dist}/gator/fonts/OpenSans-VariableFont.woff2 +0 -0
  79. /package/{src → dist}/gator/gator-global-styles.css +0 -0
  80. /package/{src → dist}/gator/tokens/_gator-global-tokens.css +0 -0
  81. /package/{src → dist}/gator/tokens/primitive.tokens.css +0 -0
  82. /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
+ };