@turk.net/mui 3.0.7 → 3.0.8

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,500 @@
1
+ # OneHub Component Glossary
2
+
3
+ > **Purpose:** Exhaustive catalog of ALL usable Material UI components with their valid prop combinations. Any component or prop combination NOT listed here has NO theme override and MUST NOT be used.
4
+ >
5
+ > **Format:** RFC 2119 keywords (MUST, MUST NOT, ONLY).
6
+
7
+ ---
8
+
9
+ ## Button
10
+
11
+ **Import:** `import { Button } from '@mui/material'`
12
+
13
+ | Prop | Valid Values |
14
+ |------|-------------|
15
+ | `variant` | `contained`, `outlined`, `text` |
16
+ | `size` | `extra-small`, `small`, `medium`, `large`, `extra-large` |
17
+ | `color` | `primary`, `secondary`, `error` |
18
+ | `disabled` | `boolean` |
19
+ | `fullWidth` | `boolean` |
20
+ | `startIcon` | `ReactNode` |
21
+ | `endIcon` | `ReactNode` |
22
+
23
+ **Default props:** `disableElevation: true`
24
+
25
+ ### ButtonGroup
26
+
27
+ **Import:** `import { ButtonGroup } from '@mui/material'`
28
+
29
+ | Prop | Valid Values |
30
+ |------|-------------|
31
+ | `variant` | `contained`, `outlined`, `text` |
32
+ | `size` | `small`, `medium`, `large` |
33
+ | `color` | `primary`, `secondary`, `error` |
34
+
35
+ ---
36
+
37
+ ## TextField
38
+
39
+ **Import:** `import { TextField } from '@mui/material'`
40
+
41
+ | Prop | Valid Values |
42
+ |------|-------------|
43
+ | `variant` | `outlined`, `filled`, `standard` |
44
+ | `size` | `small`, `medium`, `large` |
45
+ | `color` | `neutral`, `brand`, `danger` |
46
+ | `disabled` | `boolean` |
47
+ | `error` | `boolean` |
48
+ | `fullWidth` | `boolean` |
49
+ | `label` | `string` |
50
+ | `helperText` | `string` |
51
+ | `multiline` | `boolean` |
52
+ | `rows` | `number` |
53
+ | `InputProps` | `InputProps` (startAdornment, endAdornment) |
54
+
55
+ ### InputLabel
56
+
57
+ **Import:** `import { InputLabel } from '@mui/material'`
58
+
59
+ | Prop | Valid Values |
60
+ |------|-------------|
61
+ | `size` | `small`, `medium`, `larger` |
62
+
63
+ ### FormHelperText
64
+
65
+ **Import:** `import { FormHelperText } from '@mui/material'`
66
+
67
+ Standard MUI FormHelperText. Typography: `text.xs.regular`.
68
+
69
+ ---
70
+
71
+ ## Select
72
+
73
+ **Import:** `import { Select } from '@mui/material'`
74
+
75
+ | Prop | Valid Values |
76
+ |------|-------------|
77
+ | `variant` | `outlined`, `filled`, `standard` |
78
+ | `size` | `small`, `medium`, `large` |
79
+ | `color` | `neutral`, `brand`, `danger` |
80
+ | `fullWidth` | `boolean` |
81
+
82
+ ### MenuItem
83
+
84
+ **Import:** `import { MenuItem } from '@mui/material'`
85
+
86
+ Standard MUI MenuItem. Typography: `text.sm.regular` to `text.md.regular`.
87
+
88
+ ---
89
+
90
+ ## Autocomplete
91
+
92
+ **Import:** `import { Autocomplete } from '@mui/material'`
93
+
94
+ | Prop | Valid Values |
95
+ |------|-------------|
96
+ | `size` | `small`, `medium` |
97
+ | `color` | `neutral`, `brand`, `danger` |
98
+ | `options` | `T[]` |
99
+ | `renderInput` | `(params) => ReactNode` |
100
+ | `renderOption` | `(props, option) => ReactNode` (custom render by theme) |
101
+
102
+ ---
103
+
104
+ ## Checkbox
105
+
106
+ **Import:** `import { Checkbox } from '@mui/material'`
107
+
108
+ | Prop | Valid Values |
109
+ |------|-------------|
110
+ | `size` | `small`, `medium` |
111
+ | `color` | `primary`, `error` |
112
+ | `checked` | `boolean` |
113
+ | `indeterminate` | `boolean` |
114
+ | `disabled` | `boolean` |
115
+
116
+ **Note:** `size="large"` is DISABLED in type overrides.
117
+
118
+ ---
119
+
120
+ ## Radio
121
+
122
+ **Import:** `import { Radio } from '@mui/material'`
123
+
124
+ | Prop | Valid Values |
125
+ |------|-------------|
126
+ | `size` | `small`, `medium` |
127
+ | `color` | `primary`, `error` |
128
+ | `checked` | `boolean` |
129
+ | `disabled` | `boolean` |
130
+
131
+ ### RadioGroup
132
+
133
+ **Import:** `import { RadioGroup } from '@mui/material'`
134
+
135
+ Standard MUI RadioGroup. Wraps Radio components.
136
+
137
+ ---
138
+
139
+ ## Switch
140
+
141
+ **Import:** `import { Switch } from '@mui/material'`
142
+
143
+ | Prop | Valid Values |
144
+ |------|-------------|
145
+ | `size` | `small`, `medium` |
146
+ | `color` | `primary`, `error` |
147
+ | `checked` | `boolean` |
148
+ | `disabled` | `boolean` |
149
+
150
+ ---
151
+
152
+ ## Chip
153
+
154
+ **Import:** `import { Chip } from '@mui/material'`
155
+
156
+ | Prop | Valid Values |
157
+ |------|-------------|
158
+ | `variant` | `filled`, `tint`, `outline`, `ghost` |
159
+ | `size` | `small`, `medium` |
160
+ | `color` | `primary`, `secondary`, `error` |
161
+ | `label` | `string` |
162
+ | `icon` | `ReactNode` |
163
+ | `onDelete` | `() => void` |
164
+ | `clickable` | `boolean` |
165
+
166
+ **Note:** `size="large"` is available via type augmentation. `variant` values are custom (different from MUI default).
167
+
168
+ **Typography:**
169
+ - `small`: `text.xs.medium` (12px, 500)
170
+ - `medium`: `text.sm.medium` (14px, 500)
171
+
172
+ ---
173
+
174
+ ## Badge
175
+
176
+ **Import:** `import { Badge } from '@mui/material'`
177
+
178
+ | Prop | Valid Values |
179
+ |------|-------------|
180
+ | `size` | `dot`, `extra-small`, `small`, `medium`, `large`, `extra-large` |
181
+ | `color` | `default`, `brand`, `success`, `danger`, `severewarning`, `warning`, `important` |
182
+ | `badgeContent` | `ReactNode` |
183
+ | `invisible` | `boolean` |
184
+ | `variant` | `standard`, `dot` |
185
+
186
+ **Note:** MUI default `primary`, `secondary`, `error` colors are DISABLED for Badge. Use `brand`, `danger` instead.
187
+
188
+ ---
189
+
190
+ ## Avatar
191
+
192
+ **Import:** `import { Avatar } from '@mui/material'`
193
+
194
+ | Prop | Valid Values |
195
+ |------|-------------|
196
+ | `size` | `dot`, `extra-small`, `small`, `medium`, `large`, `extra-large` |
197
+ | `src` | `string` |
198
+ | `alt` | `string` |
199
+
200
+ ### AvatarGroup
201
+
202
+ **Import:** `import { AvatarGroup } from '@mui/material'`
203
+
204
+ Standard MUI AvatarGroup.
205
+
206
+ ---
207
+
208
+ ## Typography
209
+
210
+ **Import:** `import { Typography } from '@mui/material'`
211
+
212
+ | Prop | Valid Values |
213
+ |------|-------------|
214
+ | `variant` | See typography variants below |
215
+
216
+ ### Display Variants
217
+
218
+ ```
219
+ display.xl2.{regular|medium|semibold|bold} → 72px / 90px
220
+ display.xl.{regular|medium|semibold|bold} → 60px / 72px
221
+ display.lg.{regular|medium|semibold|bold} → 48px / 60px
222
+ display.md.{regular|medium|semibold|bold} → 36px / 38px
223
+ display.sm.{regular|medium|semibold|bold} → 30px / 38px
224
+ display.xs.{regular|medium|semibold|bold} → 24px / 32px
225
+ ```
226
+
227
+ ### Text Variants
228
+
229
+ ```
230
+ text.xl.{regular|medium|semibold|bold} → 20px / 30px
231
+ text.lg.{regular|medium|semibold|bold} → 18px / 28px
232
+ text.md.{regular|medium|semibold|bold} → 16px / 28px
233
+ text.sm.{regular|medium|semibold|bold} → 14px / 20px
234
+ text.xs.{regular|medium|semibold|bold} → 12px / 18px
235
+ ```
236
+
237
+ **MUST NOT use:** `h1`-`h6`, `body1`, `body2`, `subtitle1`, `subtitle2`, `caption`, `button` — these are DISABLED.
238
+
239
+ ---
240
+
241
+ ## Paper
242
+
243
+ **Import:** `import { Paper } from '@mui/material'`
244
+
245
+ | Prop | Valid Values |
246
+ |------|-------------|
247
+ | `elevation` | `0` – `24` |
248
+ | `variant` | `elevation`, `outlined` |
249
+ | `square` | `boolean` |
250
+
251
+ **Default border radius:** `8px` (`theme.shape.borderRadius`).
252
+ **Default border:** `1px solid var(--neutral-stroke-3-rest)`.
253
+
254
+ ---
255
+
256
+ ## Card
257
+
258
+ **Import:** `import { Card } from '@mui/material'`
259
+
260
+ Standard MUI Card. Uses Paper styling.
261
+
262
+ **Sub-components:** `CardContent`, `CardHeader`, `CardActions`, `CardMedia`.
263
+
264
+ ---
265
+
266
+ ## Dialog
267
+
268
+ **Import:** `import { Dialog } from '@mui/material'`
269
+
270
+ Standard MUI Dialog.
271
+
272
+ **Sub-components:**
273
+ - `DialogTitle` — Typography: `text.lg.medium`
274
+ - `DialogContent` + `DialogContentText` — Typography: `text.md.regular`
275
+ - `DialogActions` — Contains Button components
276
+
277
+ **Default props:** Paper uses `theme.shadows[6]` (28px blur).
278
+
279
+ ---
280
+
281
+ ## Menu
282
+
283
+ **Import:** `import { Menu } from '@mui/material'`
284
+
285
+ | Prop | Valid Values |
286
+ |------|-------------|
287
+ | `anchorEl` | `HTMLElement | null` |
288
+ | `open` | `boolean` |
289
+ | `onClose` | `() => void` |
290
+
291
+ **MenuList** and **MenuItem** are standard sub-components.
292
+
293
+ ---
294
+
295
+ ## List
296
+
297
+ **Import:** `import { List } from '@mui/material'`
298
+
299
+ | Prop | Valid Values |
300
+ |------|-------------|
301
+ | `dense` | `boolean` |
302
+
303
+ ### Sub-components
304
+
305
+ | Component | Typography |
306
+ |-----------|-----------|
307
+ | `ListItem` | — |
308
+ | `ListItemButton` | — |
309
+ | `ListItemText` | `text.sm.regular` (primary), `text.xs.regular` (secondary) |
310
+ | `ListItemIcon` | 24px icon |
311
+
312
+ ---
313
+
314
+ ## Table
315
+
316
+ **Import:** `import { Table } from '@mui/material'`
317
+
318
+ | Prop | Valid Values |
319
+ |------|-------------|
320
+ | `size` | `small`, `medium` |
321
+
322
+ ### Sub-components
323
+
324
+ | Component | Typography |
325
+ |-----------|-----------|
326
+ | `TableHead` | — |
327
+ | `TableBody` | — |
328
+ | `TableRow` | — |
329
+ | `TableCell` | `text.sm.regular` |
330
+
331
+ **Table header:** `text.xs.semibold` or `text.sm.semibold`.
332
+
333
+ **Note:** For OneHub-specific data tables (task lists, customer lists), custom styled Box-based tables from Figma patterns are preferred over MUI Table. See `COMPONENT_MAP.md#table-data-grid`.
334
+
335
+ ---
336
+
337
+ ## Alert
338
+
339
+ **Import:** `import { Alert } from '@mui/material'`
340
+
341
+ | Prop | Valid Values |
342
+ |------|-------------|
343
+ | `severity` | `success`, `warning`, `error`, `info` |
344
+ | `variant` | `standard`, `outlined`, `filled` |
345
+ | `onClose` | `() => void` |
346
+
347
+ **Typography:** `text.sm.regular` to `text.md.regular`.
348
+
349
+ ---
350
+
351
+ ## Snackbar
352
+
353
+ **Import:** `import { Snackbar } from '@mui/material'`
354
+
355
+ Standard MUI Snackbar. Typically wraps an Alert component.
356
+
357
+ ```typescript
358
+ <Snackbar open={open} autoHideDuration={6000} onClose={handleClose}>
359
+ <Alert severity="success" onClose={handleClose}>Message</Alert>
360
+ </Snackbar>
361
+ ```
362
+
363
+ ---
364
+
365
+ ## Tooltip
366
+
367
+ **Import:** `import { Tooltip } from '@mui/material'`
368
+
369
+ Standard MUI Tooltip. Styling handled by theme overrides.
370
+
371
+ ---
372
+
373
+ ## Slider
374
+
375
+ **Import:** `import { Slider } from '@mui/material'`
376
+
377
+ | Prop | Valid Values |
378
+ |------|-------------|
379
+ | `size` | `small`, `medium` |
380
+ | `color` | `primary`, `error` |
381
+
382
+ ---
383
+
384
+ ## Pagination
385
+
386
+ **Import:** `import { Pagination } from '@mui/material'`
387
+
388
+ | Prop | Valid Values |
389
+ |------|-------------|
390
+ | `size` | `small`, `medium` |
391
+ | `color` | `primary` |
392
+
393
+ ### PaginationItem
394
+
395
+ **Import:** `import { PaginationItem } from '@mui/material'`
396
+
397
+ | Prop | Valid Values |
398
+ |------|-------------|
399
+ | `size` | `small`, `medium` |
400
+ | `color` | `primary` |
401
+
402
+ ---
403
+
404
+ ## Tabs
405
+
406
+ **Import:** `import { Tabs } from '@mui/material'`
407
+
408
+ Standard MUI Tabs. Styling handled by theme overrides.
409
+
410
+ ### Tab
411
+
412
+ **Import:** `import { Tab } from '@mui/material'`
413
+
414
+ Standard MUI Tab. Active text: `text.sm.semibold`, `brand.foreground[1].rest`.
415
+
416
+ ---
417
+
418
+ ## Link
419
+
420
+ **Import:** `import { Link } from '@mui/material'`
421
+
422
+ | Prop | Valid Values |
423
+ |------|-------------|
424
+ | `href` | `string` |
425
+ | `underline` | `none`, `hover`, `always` |
426
+
427
+ **Color:** `brand.foreground.compound.rest`.
428
+
429
+ ---
430
+
431
+ ## FormControl / FormLabel / FormControlLabel
432
+
433
+ **Import:** `import { FormControl, FormLabel, FormControlLabel } from '@mui/material'`
434
+
435
+ Standard MUI form components. Used to wrap Checkbox, Radio, Switch.
436
+
437
+ ---
438
+
439
+ ## CssBaseline
440
+
441
+ **Import:** `import { CssBaseline } from '@mui/material'`
442
+
443
+ Standard MUI CssBaseline. Includes custom scrollbar styles from theme.
444
+
445
+ ---
446
+
447
+ ## DatePicker
448
+
449
+ **Import:** `import { DatePicker } from '@mui/x-date-pickers'`
450
+
451
+ Uses `dayjs` adapter. Styling handled by theme overrides.
452
+
453
+ ---
454
+
455
+ ## InputBase / OutlinedInput / FilledInput / Input
456
+
457
+ **Import:** from `@mui/material`
458
+
459
+ These are base input components used internally by TextField and Select. Direct usage is rare but supported:
460
+
461
+ | Component | Valid Sizes |
462
+ |-----------|------------|
463
+ | `InputBase` | `small`, `medium` |
464
+ | `OutlinedInput` | `small`, `medium` |
465
+ | `FilledInput` | `small`, `medium` |
466
+ | `Input` | `small`, `medium` |
467
+
468
+ ---
469
+
470
+ ## Components with NO Theme Override (MUST NOT Use)
471
+
472
+ These MUI components have no theme customization and MUST NOT be used:
473
+
474
+ | Component | Alternative |
475
+ |-----------|------------|
476
+ | `ToggleButton` / `ToggleButtonGroup` | Use `Chip` or `Button` group |
477
+ | `Rating` | Not applicable |
478
+ | `SpeedDial` | Custom solution |
479
+ | `BottomNavigation` | Custom solution |
480
+ | `MobileStepper` | Custom solution |
481
+ | `ImageList` | CSS Grid/Flex |
482
+ | `Timeline` | Custom component |
483
+ | `Accordion` | Custom component |
484
+ | `Breadcrumbs` | Custom component |
485
+ | `Drawer` | Use `WithSidebarLayout` |
486
+ | `AppBar` | Use `TabBasedLayout.AppBar` |
487
+
488
+ ---
489
+
490
+ ## Quick Validation Checklist
491
+
492
+ When writing a component, verify:
493
+
494
+ - [ ] Component is in this glossary? If not → STOP, do not use it.
495
+ - [ ] All props (variant, size, color) match valid values?
496
+ - [ ] Typography variant is NOT an MUI default (h1-h6, body1, etc.)?
497
+ - [ ] Colors use CSS custom properties or theme.vars.palette?
498
+ - [ ] Spacing uses theme.spacing(n)?
499
+ - [ ] No inline styles?
500
+ - [ ] No custom component duplicating MUI functionality?