@okta/odyssey-react-mui 1.0.2 → 1.1.1

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 (204) hide show
  1. package/CHANGELOG.md +32 -0
  2. package/README.md +1 -1
  3. package/dist/Autocomplete.js +9 -3
  4. package/dist/Autocomplete.js.map +1 -1
  5. package/dist/Banner.js +3 -1
  6. package/dist/Banner.js.map +1 -1
  7. package/dist/Box.js +8 -4
  8. package/dist/Box.js.map +1 -1
  9. package/dist/Button.js +3 -1
  10. package/dist/Button.js.map +1 -1
  11. package/dist/Callout.js +2 -0
  12. package/dist/Callout.js.map +1 -1
  13. package/dist/Checkbox.js +6 -2
  14. package/dist/Checkbox.js.map +1 -1
  15. package/dist/CheckboxGroup.js +5 -7
  16. package/dist/CheckboxGroup.js.map +1 -1
  17. package/dist/CircularProgress.js +2 -0
  18. package/dist/CircularProgress.js.map +1 -1
  19. package/dist/Dialog.js +2 -0
  20. package/dist/Dialog.js.map +1 -1
  21. package/dist/Field.js.map +1 -1
  22. package/dist/FieldError.js +2 -0
  23. package/dist/FieldError.js.map +1 -1
  24. package/dist/FieldHint.js +2 -0
  25. package/dist/FieldHint.js.map +1 -1
  26. package/dist/FieldLabel.js +3 -1
  27. package/dist/FieldLabel.js.map +1 -1
  28. package/dist/Fieldset.js +3 -1
  29. package/dist/Fieldset.js.map +1 -1
  30. package/dist/Form.js +5 -3
  31. package/dist/Form.js.map +1 -1
  32. package/dist/Link.js +3 -1
  33. package/dist/Link.js.map +1 -1
  34. package/dist/MenuButton.js +8 -2
  35. package/dist/MenuButton.js.map +1 -1
  36. package/dist/MenuItem.js +6 -2
  37. package/dist/MenuItem.js.map +1 -1
  38. package/dist/NativeSelect.js +3 -1
  39. package/dist/NativeSelect.js.map +1 -1
  40. package/dist/OdysseyI18n.js +2 -0
  41. package/dist/OdysseyI18n.js.map +1 -1
  42. package/dist/OdysseyProvider.js +7 -4
  43. package/dist/OdysseyProvider.js.map +1 -1
  44. package/dist/OdysseyThemeProvider.js +3 -6
  45. package/dist/OdysseyThemeProvider.js.map +1 -1
  46. package/dist/OdysseyTranslationProvider.types.js +1 -1
  47. package/dist/OdysseyTranslationProvider.types.js.map +1 -1
  48. package/dist/PasswordField.js +9 -8
  49. package/dist/PasswordField.js.map +1 -1
  50. package/dist/Radio.js +2 -0
  51. package/dist/Radio.js.map +1 -1
  52. package/dist/RadioGroup.js +5 -2
  53. package/dist/RadioGroup.js.map +1 -1
  54. package/dist/SearchField.js +11 -10
  55. package/dist/SearchField.js.map +1 -1
  56. package/dist/Select.js +8 -5
  57. package/dist/Select.js.map +1 -1
  58. package/dist/SeleniumProps.js +2 -0
  59. package/dist/SeleniumProps.js.map +1 -0
  60. package/dist/Status.js +4 -2
  61. package/dist/Status.js.map +1 -1
  62. package/dist/Tabs.js +11 -4
  63. package/dist/Tabs.js.map +1 -1
  64. package/dist/Tag.js +4 -2
  65. package/dist/Tag.js.map +1 -1
  66. package/dist/TagList.js +3 -1
  67. package/dist/TagList.js.map +1 -1
  68. package/dist/TextField.js +6 -2
  69. package/dist/TextField.js.map +1 -1
  70. package/dist/Toast.js +2 -0
  71. package/dist/Toast.js.map +1 -1
  72. package/dist/Tooltip.js +2 -0
  73. package/dist/Tooltip.js.map +1 -1
  74. package/dist/Typography.js +71 -37
  75. package/dist/Typography.js.map +1 -1
  76. package/dist/labs/DatePicker.js +4 -2
  77. package/dist/labs/DatePicker.js.map +1 -1
  78. package/dist/labs/PaginatedTable.js +6 -4
  79. package/dist/labs/PaginatedTable.js.map +1 -1
  80. package/dist/labs/StaticTable.js +9 -4
  81. package/dist/labs/StaticTable.js.map +1 -1
  82. package/dist/src/Autocomplete.d.ts +7 -2
  83. package/dist/src/Autocomplete.d.ts.map +1 -1
  84. package/dist/src/Banner.d.ts +3 -2
  85. package/dist/src/Banner.d.ts.map +1 -1
  86. package/dist/src/Box.d.ts +9 -2
  87. package/dist/src/Box.d.ts.map +1 -1
  88. package/dist/src/Button.d.ts +3 -2
  89. package/dist/src/Button.d.ts.map +1 -1
  90. package/dist/src/Callout.d.ts +3 -2
  91. package/dist/src/Callout.d.ts.map +1 -1
  92. package/dist/src/Checkbox.d.ts +8 -3
  93. package/dist/src/Checkbox.d.ts.map +1 -1
  94. package/dist/src/CheckboxGroup.d.ts +3 -6
  95. package/dist/src/CheckboxGroup.d.ts.map +1 -1
  96. package/dist/src/CircularProgress.d.ts +3 -2
  97. package/dist/src/CircularProgress.d.ts.map +1 -1
  98. package/dist/src/Dialog.d.ts +3 -2
  99. package/dist/src/Dialog.d.ts.map +1 -1
  100. package/dist/src/Field.d.ts +2 -1
  101. package/dist/src/Field.d.ts.map +1 -1
  102. package/dist/src/FieldError.d.ts +3 -2
  103. package/dist/src/FieldError.d.ts.map +1 -1
  104. package/dist/src/FieldHint.d.ts +3 -2
  105. package/dist/src/FieldHint.d.ts.map +1 -1
  106. package/dist/src/FieldLabel.d.ts +3 -2
  107. package/dist/src/FieldLabel.d.ts.map +1 -1
  108. package/dist/src/Fieldset.d.ts +3 -2
  109. package/dist/src/Fieldset.d.ts.map +1 -1
  110. package/dist/src/Form.d.ts +3 -2
  111. package/dist/src/Form.d.ts.map +1 -1
  112. package/dist/src/Link.d.ts +3 -2
  113. package/dist/src/Link.d.ts.map +1 -1
  114. package/dist/src/MenuButton.d.ts +12 -3
  115. package/dist/src/MenuButton.d.ts.map +1 -1
  116. package/dist/src/MenuItem.d.ts +5 -4
  117. package/dist/src/MenuItem.d.ts.map +1 -1
  118. package/dist/src/NativeSelect.d.ts +56 -2
  119. package/dist/src/NativeSelect.d.ts.map +1 -1
  120. package/dist/src/OdysseyI18n.d.ts +15 -0
  121. package/dist/src/OdysseyI18n.d.ts.map +1 -1
  122. package/dist/src/OdysseyProvider.d.ts.map +1 -1
  123. package/dist/src/OdysseyThemeProvider.d.ts.map +1 -1
  124. package/dist/src/OdysseyTranslationProvider.types.d.ts +1 -1
  125. package/dist/src/OdysseyTranslationProvider.types.d.ts.map +1 -1
  126. package/dist/src/PasswordField.d.ts +70 -2
  127. package/dist/src/PasswordField.d.ts.map +1 -1
  128. package/dist/src/Radio.d.ts +3 -2
  129. package/dist/src/Radio.d.ts.map +1 -1
  130. package/dist/src/RadioGroup.d.ts +8 -3
  131. package/dist/src/RadioGroup.d.ts.map +1 -1
  132. package/dist/src/SearchField.d.ts +58 -2
  133. package/dist/src/SearchField.d.ts.map +1 -1
  134. package/dist/src/Select.d.ts +60 -2
  135. package/dist/src/Select.d.ts.map +1 -1
  136. package/dist/src/SeleniumProps.d.ts +20 -0
  137. package/dist/src/SeleniumProps.d.ts.map +1 -0
  138. package/dist/src/Status.d.ts +3 -2
  139. package/dist/src/Status.d.ts.map +1 -1
  140. package/dist/src/Tabs.d.ts +9 -3
  141. package/dist/src/Tabs.d.ts.map +1 -1
  142. package/dist/src/Tag.d.ts +3 -2
  143. package/dist/src/Tag.d.ts.map +1 -1
  144. package/dist/src/TagList.d.ts +3 -2
  145. package/dist/src/TagList.d.ts.map +1 -1
  146. package/dist/src/TextField.d.ts +86 -2
  147. package/dist/src/TextField.d.ts.map +1 -1
  148. package/dist/src/Toast.d.ts +3 -2
  149. package/dist/src/Toast.d.ts.map +1 -1
  150. package/dist/src/Tooltip.d.ts +3 -2
  151. package/dist/src/Tooltip.d.ts.map +1 -1
  152. package/dist/src/Typography.d.ts +14 -45
  153. package/dist/src/Typography.d.ts.map +1 -1
  154. package/dist/src/labs/DatePicker.d.ts +5 -1
  155. package/dist/src/labs/DatePicker.d.ts.map +1 -1
  156. package/dist/src/labs/PaginatedTable.d.ts.map +1 -1
  157. package/dist/src/labs/StaticTable.d.ts.map +1 -1
  158. package/dist/src/theme/components.d.ts.map +1 -1
  159. package/dist/theme/components.js +38 -10
  160. package/dist/theme/components.js.map +1 -1
  161. package/dist/tsconfig.production.tsbuildinfo +1 -1
  162. package/package.json +6 -5
  163. package/src/Autocomplete.tsx +13 -2
  164. package/src/Banner.tsx +11 -2
  165. package/src/Box.tsx +11 -5
  166. package/src/Button.tsx +6 -1
  167. package/src/Callout.tsx +5 -3
  168. package/src/Checkbox.tsx +14 -4
  169. package/src/CheckboxGroup.tsx +6 -10
  170. package/src/CircularProgress.tsx +5 -1
  171. package/src/Dialog.tsx +5 -2
  172. package/src/Field.tsx +2 -0
  173. package/src/FieldError.tsx +5 -3
  174. package/src/FieldHint.tsx +9 -3
  175. package/src/FieldLabel.tsx +5 -3
  176. package/src/Fieldset.tsx +4 -1
  177. package/src/Form.tsx +7 -4
  178. package/src/Link.tsx +18 -3
  179. package/src/MenuButton.tsx +33 -4
  180. package/src/MenuItem.tsx +11 -6
  181. package/src/NativeSelect.tsx +7 -2
  182. package/src/OdysseyI18n.ts +2 -0
  183. package/src/OdysseyProvider.tsx +9 -6
  184. package/src/OdysseyThemeProvider.tsx +4 -6
  185. package/src/OdysseyTranslationProvider.types.ts +1 -0
  186. package/src/PasswordField.tsx +18 -10
  187. package/src/Radio.tsx +5 -1
  188. package/src/RadioGroup.tsx +12 -4
  189. package/src/SearchField.tsx +23 -15
  190. package/src/Select.tsx +16 -6
  191. package/src/SeleniumProps.ts +20 -0
  192. package/src/Status.tsx +15 -3
  193. package/src/Tabs.tsx +18 -4
  194. package/src/Tag.tsx +12 -3
  195. package/src/TagList.tsx +4 -2
  196. package/src/TextField.tsx +14 -2
  197. package/src/Toast.tsx +4 -1
  198. package/src/Tooltip.tsx +4 -1
  199. package/src/Typography.tsx +76 -28
  200. package/src/labs/DatePicker.tsx +15 -7
  201. package/src/labs/PaginatedTable.tsx +12 -3
  202. package/src/labs/README.md +2 -2
  203. package/src/labs/StaticTable.tsx +13 -3
  204. package/src/theme/components.tsx +43 -9
@@ -82,7 +82,7 @@ const PaginatedTable = <TData extends DefaultMaterialReactTableData>({
82
82
  const [globalFilter, setGlobalFilter] = useState<string>();
83
83
 
84
84
  useEffect(() => {
85
- if (globalFilter) {
85
+ if (globalFilter !== undefined) {
86
86
  onGlobalFilterChange?.(globalFilter);
87
87
  }
88
88
  }, [globalFilter, onGlobalFilterChange]);
@@ -194,14 +194,23 @@ const PaginatedTable = <TData extends DefaultMaterialReactTableData>({
194
194
 
195
195
  const modifiedState = useMemo(
196
196
  () => ({
197
- ...state,
198
197
  pagination: {
199
198
  pageIndex: pagination.pageIndex,
200
199
  pageSize: pagination.pageSize,
201
200
  },
202
201
  rowSelection,
202
+ globalFilter,
203
+ columnFilters,
204
+ ...state,
203
205
  }),
204
- [pagination.pageIndex, pagination.pageSize, rowSelection, state]
206
+ [
207
+ pagination.pageIndex,
208
+ pagination.pageSize,
209
+ rowSelection,
210
+ globalFilter,
211
+ columnFilters,
212
+ state,
213
+ ]
205
214
  );
206
215
 
207
216
  const muiToolbarAlertBannerProps: AlertProps = useMemo(
@@ -20,10 +20,10 @@ This project follows semantic versioning conventions:
20
20
 
21
21
  ## Getting Started
22
22
 
23
- Install the package and peer dependencies:
23
+ To use Odyssey Labs, import as:
24
24
 
25
25
  ```sh
26
- yarn add @okta/odyssey-react-mui @okta/odyssey-react-labs @emotion/react
26
+ import from "@okta/odyssey-react-mui/labs"
27
27
  ```
28
28
 
29
29
  ## Components
@@ -20,6 +20,7 @@ import {
20
20
  memo,
21
21
  useCallback,
22
22
  useEffect,
23
+ useMemo,
23
24
  useRef,
24
25
  useState,
25
26
  } from "react";
@@ -65,11 +66,20 @@ const StaticTable = <TData extends DefaultMaterialReactTableData>({
65
66
  const [globalFilter, setGlobalFilter] = useState<string>();
66
67
 
67
68
  useEffect(() => {
68
- if (globalFilter) {
69
+ if (globalFilter !== undefined) {
69
70
  onGlobalFilterChange?.(globalFilter);
70
71
  }
71
72
  }, [globalFilter, onGlobalFilterChange]);
72
73
 
74
+ const modifiedState = useMemo(
75
+ () => ({
76
+ globalFilter,
77
+ columnFilters,
78
+ ...state,
79
+ }),
80
+ [globalFilter, columnFilters, state]
81
+ );
82
+
73
83
  const renderTopToolbarCustomActions = useCallback<
74
84
  Exclude<
75
85
  MaterialReactTableProps<TData>["renderTopToolbarCustomActions"],
@@ -95,7 +105,7 @@ const StaticTable = <TData extends DefaultMaterialReactTableData>({
95
105
  data={data}
96
106
  enableBottomToolbar={false}
97
107
  enablePagination={false}
98
- enableRowVirtualization={data.length > 50}
108
+ enableRowVirtualization
99
109
  enableSorting={false}
100
110
  getRowId={getRowId}
101
111
  initialState={initialState}
@@ -112,7 +122,7 @@ const StaticTable = <TData extends DefaultMaterialReactTableData>({
112
122
  renderTopToolbarCustomActions={renderTopToolbarCustomActions}
113
123
  rowVirtualizerInstanceRef={rowVirtualizerInstanceRef}
114
124
  rowVirtualizerProps={{ overscan: 4 }}
115
- state={state}
125
+ state={modifiedState}
116
126
  />
117
127
  );
118
128
  };
@@ -13,6 +13,7 @@
13
13
  import { ThemeOptions } from "@mui/material";
14
14
  import type {} from "@mui/lab/themeAugmentation";
15
15
  import { alertTitleClasses } from "@mui/material/AlertTitle";
16
+ import { autocompleteClasses } from "@mui/material/Autocomplete";
16
17
  import { buttonClasses } from "@mui/material/Button";
17
18
  import { checkboxClasses } from "@mui/material/Checkbox";
18
19
  import { chipClasses } from "@mui/material/Chip";
@@ -269,15 +270,39 @@ export const components = (
269
270
  paddingBlock: odysseyTokens.Spacing2,
270
271
  paddingInline: odysseyTokens.Spacing2,
271
272
  borderRadius: odysseyTokens.BorderRadiusMain,
273
+
274
+ [`& .${autocompleteClasses.option}`]: {
275
+ minHeight: "unset",
276
+ paddingBlock: odysseyTokens.Spacing3,
277
+ paddingInline: odysseyTokens.Spacing4,
278
+ borderRadius: odysseyTokens.BorderRadiusTight,
279
+
280
+ [`&:hover`]: {
281
+ backgroundColor: odysseyTokens.HueNeutral100,
282
+ },
283
+
284
+ [`&.${autocompleteClasses.focused}`]: {
285
+ backgroundColor: odysseyTokens.HueNeutral100,
286
+ },
287
+
288
+ [`&[aria-selected="true"]`]: {
289
+ backgroundColor: "transparent",
290
+ color: odysseyTokens.TypographyColorAction,
291
+
292
+ [`&:hover`]: {
293
+ backgroundColor: odysseyTokens.PalettePrimaryLighter,
294
+ },
295
+
296
+ [`&.${autocompleteClasses.focused}`]: {
297
+ backgroundColor: odysseyTokens.PalettePrimaryLighter,
298
+ },
299
+ },
300
+ },
272
301
  },
273
302
  loading: {
274
303
  paddingBlock: odysseyTokens.Spacing3,
275
304
  paddingInline: odysseyTokens.Spacing4,
276
305
  },
277
- option: {
278
- paddingBlock: odysseyTokens.Spacing3,
279
- borderRadius: odysseyTokens.BorderRadiusTight,
280
- },
281
306
  popupIndicator: {
282
307
  padding: odysseyTokens.Spacing1,
283
308
  marginRight: "unset",
@@ -1149,8 +1174,8 @@ export const components = (
1149
1174
  root: {
1150
1175
  flexWrap: "wrap",
1151
1176
  gap: odysseyTokens.Spacing2,
1152
- paddingBlockStart: odysseyTokens.Spacing6,
1153
- paddingBlockEnd: odysseyTokens.Spacing6,
1177
+ paddingBlockStart: odysseyTokens.Spacing5,
1178
+ paddingBlockEnd: odysseyTokens.Spacing5,
1154
1179
  paddingInline: odysseyTokens.Spacing6,
1155
1180
 
1156
1181
  "& > .${ buttonClasses.root }": {
@@ -1327,6 +1352,13 @@ export const components = (
1327
1352
  },
1328
1353
  },
1329
1354
  },
1355
+ MuiIconButton: {
1356
+ styleOverrides: {
1357
+ root: {
1358
+ padding: odysseyTokens.Spacing1,
1359
+ },
1360
+ },
1361
+ },
1330
1362
  MuiInput: {
1331
1363
  defaultProps: {
1332
1364
  disableUnderline: true,
@@ -1364,7 +1396,6 @@ export const components = (
1364
1396
  MuiInputBase: {
1365
1397
  defaultProps: {
1366
1398
  minRows: 3,
1367
- required: true,
1368
1399
  },
1369
1400
  styleOverrides: {
1370
1401
  root: ({ ownerState, theme }) => ({
@@ -1598,6 +1629,7 @@ export const components = (
1598
1629
  gap: odysseyTokens.Spacing2,
1599
1630
  minHeight: "unset",
1600
1631
  paddingBlock: odysseyTokens.Spacing3,
1632
+ paddingInline: odysseyTokens.Spacing4,
1601
1633
  borderRadius: odysseyTokens.BorderRadiusTight,
1602
1634
 
1603
1635
  [`& .${formControlLabelClasses.root}`]: {
@@ -1614,6 +1646,10 @@ export const components = (
1614
1646
  },
1615
1647
  },
1616
1648
 
1649
+ [`:focus-visible`]: {
1650
+ backgroundColor: odysseyTokens.HueNeutral100,
1651
+ },
1652
+
1617
1653
  [`&.${menuItemClasses.root}-destructive`]: {
1618
1654
  color: odysseyTokens.TypographyColorDanger,
1619
1655
  },
@@ -2241,8 +2277,6 @@ export const components = (
2241
2277
  },
2242
2278
  MuiTypography: {
2243
2279
  defaultProps: {
2244
- fontFamily:
2245
- "'Inter', '-apple-system', 'BlinkMacSystemFont', 'Segoe UI', 'Roboto', 'Oxygen-Sans', 'Ubuntu', 'Cantarell', 'Helvetica Neue', 'Noto Sans Arabic', sans-serif",
2246
2280
  variantMapping: {
2247
2281
  h1: "h1",
2248
2282
  h2: "h2",