@okta/odyssey-react-mui 1.0.2 → 1.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/CHANGELOG.md +54 -0
- package/README.md +1 -1
- package/dist/Autocomplete.js +20 -3
- package/dist/Autocomplete.js.map +1 -1
- package/dist/Banner.js +3 -1
- package/dist/Banner.js.map +1 -1
- package/dist/Box.js +8 -4
- package/dist/Box.js.map +1 -1
- package/dist/Button.js +3 -1
- package/dist/Button.js.map +1 -1
- package/dist/Callout.js +2 -0
- package/dist/Callout.js.map +1 -1
- package/dist/Checkbox.js +6 -2
- package/dist/Checkbox.js.map +1 -1
- package/dist/CheckboxGroup.js +5 -7
- package/dist/CheckboxGroup.js.map +1 -1
- package/dist/CircularProgress.js +2 -0
- package/dist/CircularProgress.js.map +1 -1
- package/dist/Dialog.js +2 -0
- package/dist/Dialog.js.map +1 -1
- package/dist/Field.js.map +1 -1
- package/dist/FieldError.js +2 -0
- package/dist/FieldError.js.map +1 -1
- package/dist/FieldHint.js +2 -0
- package/dist/FieldHint.js.map +1 -1
- package/dist/FieldLabel.js +3 -1
- package/dist/FieldLabel.js.map +1 -1
- package/dist/Fieldset.js +3 -1
- package/dist/Fieldset.js.map +1 -1
- package/dist/Form.js +5 -3
- package/dist/Form.js.map +1 -1
- package/dist/Link.js +3 -1
- package/dist/Link.js.map +1 -1
- package/dist/MenuButton.js +8 -2
- package/dist/MenuButton.js.map +1 -1
- package/dist/MenuItem.js +6 -2
- package/dist/MenuItem.js.map +1 -1
- package/dist/NativeSelect.js +3 -1
- package/dist/NativeSelect.js.map +1 -1
- package/dist/OdysseyCacheProvider.js +4 -1
- package/dist/OdysseyCacheProvider.js.map +1 -1
- package/dist/OdysseyProvider.js +12 -5
- package/dist/OdysseyProvider.js.map +1 -1
- package/dist/OdysseyThemeProvider.js +8 -7
- package/dist/OdysseyThemeProvider.js.map +1 -1
- package/dist/OdysseyTranslationProvider.js +1 -1
- package/dist/OdysseyTranslationProvider.js.map +1 -1
- package/dist/OdysseyTranslationProvider.types.js +1 -1
- package/dist/OdysseyTranslationProvider.types.js.map +1 -1
- package/dist/PasswordField.js +18 -9
- package/dist/PasswordField.js.map +1 -1
- package/dist/Radio.js +2 -0
- package/dist/Radio.js.map +1 -1
- package/dist/RadioGroup.js +5 -2
- package/dist/RadioGroup.js.map +1 -1
- package/dist/SearchField.js +11 -10
- package/dist/SearchField.js.map +1 -1
- package/dist/Select.js +39 -35
- package/dist/Select.js.map +1 -1
- package/dist/SeleniumProps.js +2 -0
- package/dist/SeleniumProps.js.map +1 -0
- package/dist/Status.js +4 -2
- package/dist/Status.js.map +1 -1
- package/dist/Tabs.js +11 -4
- package/dist/Tabs.js.map +1 -1
- package/dist/Tag.js +4 -2
- package/dist/Tag.js.map +1 -1
- package/dist/TagList.js +3 -1
- package/dist/TagList.js.map +1 -1
- package/dist/TextField.js +6 -2
- package/dist/TextField.js.map +1 -1
- package/dist/Toast.js +2 -0
- package/dist/Toast.js.map +1 -1
- package/dist/Tooltip.js +2 -0
- package/dist/Tooltip.js.map +1 -1
- package/dist/Typography.js +71 -59
- package/dist/Typography.js.map +1 -1
- package/dist/createShadowDom.js +26 -0
- package/dist/createShadowDom.js.map +1 -0
- package/dist/{OdysseyI18n.js → i18n.js} +5 -2
- package/dist/i18n.js.map +1 -0
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/labs/DatePicker.js +4 -2
- package/dist/labs/DatePicker.js.map +1 -1
- package/dist/labs/PaginatedTable.js +6 -4
- package/dist/labs/PaginatedTable.js.map +1 -1
- package/dist/labs/StaticTable.js +9 -4
- package/dist/labs/StaticTable.js.map +1 -1
- package/dist/labs/datePickerTheme.js +4 -2
- package/dist/labs/datePickerTheme.js.map +1 -1
- package/dist/properties/ts/odyssey-react-mui.js +2 -0
- package/dist/properties/ts/odyssey-react-mui.js.map +1 -1
- package/dist/src/Autocomplete.d.ts +29 -4
- package/dist/src/Autocomplete.d.ts.map +1 -1
- package/dist/src/Banner.d.ts +3 -2
- package/dist/src/Banner.d.ts.map +1 -1
- package/dist/src/Box.d.ts +9 -2
- package/dist/src/Box.d.ts.map +1 -1
- package/dist/src/Button.d.ts +3 -2
- package/dist/src/Button.d.ts.map +1 -1
- package/dist/src/Callout.d.ts +3 -2
- package/dist/src/Callout.d.ts.map +1 -1
- package/dist/src/Checkbox.d.ts +8 -3
- package/dist/src/Checkbox.d.ts.map +1 -1
- package/dist/src/CheckboxGroup.d.ts +3 -6
- package/dist/src/CheckboxGroup.d.ts.map +1 -1
- package/dist/src/CircularProgress.d.ts +3 -2
- package/dist/src/CircularProgress.d.ts.map +1 -1
- package/dist/src/Dialog.d.ts +3 -2
- package/dist/src/Dialog.d.ts.map +1 -1
- package/dist/src/Field.d.ts +2 -1
- package/dist/src/Field.d.ts.map +1 -1
- package/dist/src/FieldError.d.ts +3 -2
- package/dist/src/FieldError.d.ts.map +1 -1
- package/dist/src/FieldHint.d.ts +3 -2
- package/dist/src/FieldHint.d.ts.map +1 -1
- package/dist/src/FieldLabel.d.ts +3 -2
- package/dist/src/FieldLabel.d.ts.map +1 -1
- package/dist/src/Fieldset.d.ts +3 -2
- package/dist/src/Fieldset.d.ts.map +1 -1
- package/dist/src/Form.d.ts +3 -2
- package/dist/src/Form.d.ts.map +1 -1
- package/dist/src/Link.d.ts +3 -2
- package/dist/src/Link.d.ts.map +1 -1
- package/dist/src/MenuButton.d.ts +12 -3
- package/dist/src/MenuButton.d.ts.map +1 -1
- package/dist/src/MenuItem.d.ts +5 -4
- package/dist/src/MenuItem.d.ts.map +1 -1
- package/dist/src/NativeSelect.d.ts +56 -2
- package/dist/src/NativeSelect.d.ts.map +1 -1
- package/dist/src/OdysseyCacheProvider.d.ts +6 -1
- package/dist/src/OdysseyCacheProvider.d.ts.map +1 -1
- package/dist/src/OdysseyProvider.d.ts +1 -1
- package/dist/src/OdysseyProvider.d.ts.map +1 -1
- package/dist/src/OdysseyThemeProvider.d.ts +2 -1
- package/dist/src/OdysseyThemeProvider.d.ts.map +1 -1
- package/dist/src/OdysseyTranslationProvider.d.ts +1 -1
- package/dist/src/OdysseyTranslationProvider.d.ts.map +1 -1
- package/dist/src/OdysseyTranslationProvider.types.d.ts +1 -1
- package/dist/src/OdysseyTranslationProvider.types.d.ts.map +1 -1
- package/dist/src/PasswordField.d.ts +78 -2
- package/dist/src/PasswordField.d.ts.map +1 -1
- package/dist/src/Radio.d.ts +3 -2
- package/dist/src/Radio.d.ts.map +1 -1
- package/dist/src/RadioGroup.d.ts +8 -3
- package/dist/src/RadioGroup.d.ts.map +1 -1
- package/dist/src/SearchField.d.ts +58 -2
- package/dist/src/SearchField.d.ts.map +1 -1
- package/dist/src/Select.d.ts +7 -2
- package/dist/src/Select.d.ts.map +1 -1
- package/dist/src/SeleniumProps.d.ts +20 -0
- package/dist/src/SeleniumProps.d.ts.map +1 -0
- package/dist/src/Status.d.ts +3 -2
- package/dist/src/Status.d.ts.map +1 -1
- package/dist/src/Tabs.d.ts +9 -3
- package/dist/src/Tabs.d.ts.map +1 -1
- package/dist/src/Tag.d.ts +3 -2
- package/dist/src/Tag.d.ts.map +1 -1
- package/dist/src/TagList.d.ts +3 -2
- package/dist/src/TagList.d.ts.map +1 -1
- package/dist/src/TextField.d.ts +86 -2
- package/dist/src/TextField.d.ts.map +1 -1
- package/dist/src/Toast.d.ts +3 -2
- package/dist/src/Toast.d.ts.map +1 -1
- package/dist/src/Tooltip.d.ts +3 -2
- package/dist/src/Tooltip.d.ts.map +1 -1
- package/dist/src/Typography.d.ts +14 -49
- package/dist/src/Typography.d.ts.map +1 -1
- package/dist/src/createShadowDom.d.ts +16 -0
- package/dist/src/createShadowDom.d.ts.map +1 -0
- package/dist/src/{OdysseyI18n.d.ts → i18n.d.ts} +20 -2
- package/dist/src/i18n.d.ts.map +1 -0
- package/dist/src/index.d.ts +1 -0
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/labs/DatePicker.d.ts +5 -1
- package/dist/src/labs/DatePicker.d.ts.map +1 -1
- package/dist/src/labs/PaginatedTable.d.ts.map +1 -1
- package/dist/src/labs/StaticTable.d.ts.map +1 -1
- package/dist/src/properties/ts/odyssey-react-mui.d.ts +2 -0
- package/dist/src/properties/ts/odyssey-react-mui.d.ts.map +1 -1
- package/dist/src/theme/components.d.ts +4 -1
- package/dist/src/theme/components.d.ts.map +1 -1
- package/dist/src/theme/createOdysseyMuiTheme.d.ts +23 -0
- package/dist/src/theme/createOdysseyMuiTheme.d.ts.map +1 -0
- package/dist/src/theme/mixins.d.ts +3 -1
- package/dist/src/theme/mixins.d.ts.map +1 -1
- package/dist/src/theme/palette.d.ts +3 -1
- package/dist/src/theme/palette.d.ts.map +1 -1
- package/dist/src/theme/shape.d.ts +3 -1
- package/dist/src/theme/shape.d.ts.map +1 -1
- package/dist/src/theme/spacing.d.ts +3 -1
- package/dist/src/theme/spacing.d.ts.map +1 -1
- package/dist/src/theme/theme.d.ts +1 -8
- package/dist/src/theme/theme.d.ts.map +1 -1
- package/dist/src/theme/typography.d.ts +3 -1
- package/dist/src/theme/typography.d.ts.map +1 -1
- package/dist/theme/components.js +118 -73
- package/dist/theme/components.js.map +1 -1
- package/dist/theme/createOdysseyMuiTheme.js +51 -0
- package/dist/theme/createOdysseyMuiTheme.js.map +1 -0
- package/dist/theme/mixins.js +4 -1
- package/dist/theme/mixins.js.map +1 -1
- package/dist/theme/palette.js +4 -1
- package/dist/theme/palette.js.map +1 -1
- package/dist/theme/shape.js +4 -1
- package/dist/theme/shape.js.map +1 -1
- package/dist/theme/spacing.js +4 -1
- package/dist/theme/spacing.js.map +1 -1
- package/dist/theme/theme.js +1 -20
- package/dist/theme/theme.js.map +1 -1
- package/dist/theme/typography.js +4 -1
- package/dist/theme/typography.js.map +1 -1
- package/dist/tsconfig.production.tsbuildinfo +1 -1
- package/package.json +7 -6
- package/src/Autocomplete.tsx +56 -4
- package/src/Banner.tsx +11 -2
- package/src/Box.tsx +11 -5
- package/src/Button.tsx +6 -1
- package/src/Callout.tsx +5 -3
- package/src/Checkbox.tsx +14 -4
- package/src/CheckboxGroup.tsx +6 -10
- package/src/CircularProgress.tsx +5 -1
- package/src/Dialog.tsx +5 -2
- package/src/Field.tsx +2 -0
- package/src/FieldError.tsx +5 -3
- package/src/FieldHint.tsx +9 -3
- package/src/FieldLabel.tsx +5 -3
- package/src/Fieldset.tsx +4 -1
- package/src/Form.tsx +7 -4
- package/src/Link.tsx +18 -3
- package/src/MenuButton.tsx +33 -4
- package/src/MenuItem.tsx +11 -6
- package/src/NativeSelect.tsx +7 -2
- package/src/OdysseyCacheProvider.tsx +9 -1
- package/src/OdysseyProvider.tsx +18 -8
- package/src/OdysseyThemeProvider.tsx +12 -8
- package/src/OdysseyTranslationProvider.test.tsx +2 -2
- package/src/OdysseyTranslationProvider.tsx +1 -1
- package/src/OdysseyTranslationProvider.types.ts +1 -0
- package/src/PasswordField.tsx +37 -13
- package/src/Radio.tsx +5 -1
- package/src/RadioGroup.tsx +12 -4
- package/src/SearchField.tsx +23 -15
- package/src/Select.tsx +154 -149
- package/src/SeleniumProps.ts +20 -0
- package/src/Status.tsx +15 -3
- package/src/Tabs.tsx +18 -4
- package/src/Tag.tsx +12 -3
- package/src/TagList.tsx +4 -2
- package/src/TextField.tsx +14 -2
- package/src/Toast.tsx +4 -1
- package/src/Tooltip.tsx +4 -1
- package/src/Typography.tsx +76 -54
- package/src/createShadowDom.ts +46 -0
- package/src/{OdysseyI18n.ts → i18n.ts} +4 -2
- package/src/index.ts +1 -0
- package/src/labs/DatePicker.tsx +15 -7
- package/src/labs/PaginatedTable.tsx +12 -3
- package/src/labs/README.md +2 -2
- package/src/labs/StaticTable.tsx +13 -3
- package/src/labs/datePickerTheme.tsx +2 -2
- package/src/properties/odyssey-react-mui.properties +2 -0
- package/src/properties/ts/odyssey-react-mui.ts +1 -1
- package/src/theme/components.tsx +69 -18
- package/src/theme/createOdysseyMuiTheme.ts +47 -0
- package/src/theme/mixins.ts +5 -1
- package/src/theme/palette.ts +5 -3
- package/src/theme/shape.ts +5 -1
- package/src/theme/spacing.ts +5 -3
- package/src/theme/theme.ts +1 -26
- package/src/theme/typography.ts +5 -3
- package/dist/OdysseyI18n.js.map +0 -1
- package/dist/src/OdysseyI18n.d.ts.map +0 -1
package/src/labs/StaticTable.tsx
CHANGED
|
@@ -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
|
|
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={
|
|
125
|
+
state={modifiedState}
|
|
116
126
|
/>
|
|
117
127
|
);
|
|
118
128
|
};
|
|
@@ -19,11 +19,11 @@ import {
|
|
|
19
19
|
} from "../icons.generated";
|
|
20
20
|
import { createOdysseyMuiTheme } from "../theme";
|
|
21
21
|
import { ThemeOptions } from "@mui/material";
|
|
22
|
-
import * as
|
|
22
|
+
import * as odysseyTokens from "@okta/odyssey-design-tokens";
|
|
23
23
|
|
|
24
24
|
const popupSpacingValue = 5;
|
|
25
25
|
|
|
26
|
-
const odysseyTheme = createOdysseyMuiTheme(
|
|
26
|
+
const odysseyTheme = createOdysseyMuiTheme({ odysseyTokens });
|
|
27
27
|
|
|
28
28
|
type ThemeStyles = ({
|
|
29
29
|
theme,
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
fielderror.screenreader.text = Error
|
|
2
2
|
fieldlabel.optional.text = Optional
|
|
3
3
|
fieldlabel.required.text = Required
|
|
4
|
+
passwordfield.icon.label.show = Show password
|
|
5
|
+
passwordfield.icon.label.hide = Hide password
|
|
4
6
|
severity.error = error
|
|
5
7
|
severity.info = info
|
|
6
8
|
severity.success = success
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export const translation = {"fielderror.screenreader.text":"Error","fieldlabel.optional.text":"Optional","fieldlabel.required.text":"Required","severity.error":"error","severity.info":"info","severity.success":"success","severity.warning":"warning","table.error":"Error loading data.","table.fetchedrows.text":"Fetched {{totalRows}} row","table.fetchedrows.text_plural":"Fetched {{totalRows}} total rows","table.rows.text":"{{totalRows}} row","table.rows.text_plural":"{{totalRows}} rows","toast.close.text":"close"};
|
|
1
|
+
export const translation = {"fielderror.screenreader.text":"Error","fieldlabel.optional.text":"Optional","fieldlabel.required.text":"Required","passwordfield.icon.label.show":"Show password","passwordfield.icon.label.hide":"Hide password","severity.error":"error","severity.info":"info","severity.success":"success","severity.warning":"warning","table.error":"Error loading data.","table.fetchedrows.text":"Fetched {{totalRows}} row","table.fetchedrows.text_plural":"Fetched {{totalRows}} total rows","table.rows.text":"{{totalRows}} row","table.rows.text_plural":"{{totalRows}} rows","toast.close.text":"close"};
|
package/src/theme/components.tsx
CHANGED
|
@@ -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";
|
|
@@ -50,9 +51,13 @@ import {
|
|
|
50
51
|
import { DesignTokens } from "./theme";
|
|
51
52
|
import { CSSProperties } from "react";
|
|
52
53
|
|
|
53
|
-
export const components = (
|
|
54
|
-
odysseyTokens
|
|
55
|
-
|
|
54
|
+
export const components = ({
|
|
55
|
+
odysseyTokens,
|
|
56
|
+
shadowRootElement,
|
|
57
|
+
}: {
|
|
58
|
+
odysseyTokens: DesignTokens;
|
|
59
|
+
shadowRootElement?: HTMLDivElement;
|
|
60
|
+
}): ThemeOptions["components"] => {
|
|
56
61
|
return {
|
|
57
62
|
MuiAlert: {
|
|
58
63
|
defaultProps: {
|
|
@@ -269,15 +274,39 @@ export const components = (
|
|
|
269
274
|
paddingBlock: odysseyTokens.Spacing2,
|
|
270
275
|
paddingInline: odysseyTokens.Spacing2,
|
|
271
276
|
borderRadius: odysseyTokens.BorderRadiusMain,
|
|
277
|
+
|
|
278
|
+
[`& .${autocompleteClasses.option}`]: {
|
|
279
|
+
minHeight: "unset",
|
|
280
|
+
paddingBlock: odysseyTokens.Spacing3,
|
|
281
|
+
paddingInline: odysseyTokens.Spacing4,
|
|
282
|
+
borderRadius: odysseyTokens.BorderRadiusTight,
|
|
283
|
+
|
|
284
|
+
[`&:hover`]: {
|
|
285
|
+
backgroundColor: odysseyTokens.HueNeutral100,
|
|
286
|
+
},
|
|
287
|
+
|
|
288
|
+
[`&.${autocompleteClasses.focused}`]: {
|
|
289
|
+
backgroundColor: odysseyTokens.HueNeutral100,
|
|
290
|
+
},
|
|
291
|
+
|
|
292
|
+
[`&[aria-selected="true"]`]: {
|
|
293
|
+
backgroundColor: "transparent",
|
|
294
|
+
color: odysseyTokens.TypographyColorAction,
|
|
295
|
+
|
|
296
|
+
[`&:hover`]: {
|
|
297
|
+
backgroundColor: odysseyTokens.PalettePrimaryLighter,
|
|
298
|
+
},
|
|
299
|
+
|
|
300
|
+
[`&.${autocompleteClasses.focused}`]: {
|
|
301
|
+
backgroundColor: odysseyTokens.PalettePrimaryLighter,
|
|
302
|
+
},
|
|
303
|
+
},
|
|
304
|
+
},
|
|
272
305
|
},
|
|
273
306
|
loading: {
|
|
274
307
|
paddingBlock: odysseyTokens.Spacing3,
|
|
275
308
|
paddingInline: odysseyTokens.Spacing4,
|
|
276
309
|
},
|
|
277
|
-
option: {
|
|
278
|
-
paddingBlock: odysseyTokens.Spacing3,
|
|
279
|
-
borderRadius: odysseyTokens.BorderRadiusTight,
|
|
280
|
-
},
|
|
281
310
|
popupIndicator: {
|
|
282
311
|
padding: odysseyTokens.Spacing1,
|
|
283
312
|
marginRight: "unset",
|
|
@@ -1149,8 +1178,8 @@ export const components = (
|
|
|
1149
1178
|
root: {
|
|
1150
1179
|
flexWrap: "wrap",
|
|
1151
1180
|
gap: odysseyTokens.Spacing2,
|
|
1152
|
-
paddingBlockStart: odysseyTokens.
|
|
1153
|
-
paddingBlockEnd: odysseyTokens.
|
|
1181
|
+
paddingBlockStart: odysseyTokens.Spacing5,
|
|
1182
|
+
paddingBlockEnd: odysseyTokens.Spacing5,
|
|
1154
1183
|
paddingInline: odysseyTokens.Spacing6,
|
|
1155
1184
|
|
|
1156
1185
|
"& > .${ buttonClasses.root }": {
|
|
@@ -1327,6 +1356,13 @@ export const components = (
|
|
|
1327
1356
|
},
|
|
1328
1357
|
},
|
|
1329
1358
|
},
|
|
1359
|
+
MuiIconButton: {
|
|
1360
|
+
styleOverrides: {
|
|
1361
|
+
root: {
|
|
1362
|
+
padding: odysseyTokens.Spacing1,
|
|
1363
|
+
},
|
|
1364
|
+
},
|
|
1365
|
+
},
|
|
1330
1366
|
MuiInput: {
|
|
1331
1367
|
defaultProps: {
|
|
1332
1368
|
disableUnderline: true,
|
|
@@ -1364,7 +1400,6 @@ export const components = (
|
|
|
1364
1400
|
MuiInputBase: {
|
|
1365
1401
|
defaultProps: {
|
|
1366
1402
|
minRows: 3,
|
|
1367
|
-
required: true,
|
|
1368
1403
|
},
|
|
1369
1404
|
styleOverrides: {
|
|
1370
1405
|
root: ({ ownerState, theme }) => ({
|
|
@@ -1570,6 +1605,14 @@ export const components = (
|
|
|
1570
1605
|
},
|
|
1571
1606
|
},
|
|
1572
1607
|
},
|
|
1608
|
+
MuiListItemIcon: {
|
|
1609
|
+
styleOverrides: {
|
|
1610
|
+
root: {
|
|
1611
|
+
minWidth: "unset",
|
|
1612
|
+
color: "inherit",
|
|
1613
|
+
},
|
|
1614
|
+
},
|
|
1615
|
+
},
|
|
1573
1616
|
MuiListSubheader: {
|
|
1574
1617
|
styleOverrides: {
|
|
1575
1618
|
root: {
|
|
@@ -1598,6 +1641,7 @@ export const components = (
|
|
|
1598
1641
|
gap: odysseyTokens.Spacing2,
|
|
1599
1642
|
minHeight: "unset",
|
|
1600
1643
|
paddingBlock: odysseyTokens.Spacing3,
|
|
1644
|
+
paddingInline: odysseyTokens.Spacing4,
|
|
1601
1645
|
borderRadius: odysseyTokens.BorderRadiusTight,
|
|
1602
1646
|
|
|
1603
1647
|
[`& .${formControlLabelClasses.root}`]: {
|
|
@@ -1614,6 +1658,10 @@ export const components = (
|
|
|
1614
1658
|
},
|
|
1615
1659
|
},
|
|
1616
1660
|
|
|
1661
|
+
[`:focus-visible`]: {
|
|
1662
|
+
backgroundColor: odysseyTokens.HueNeutral100,
|
|
1663
|
+
},
|
|
1664
|
+
|
|
1617
1665
|
[`&.${menuItemClasses.root}-destructive`]: {
|
|
1618
1666
|
color: odysseyTokens.TypographyColorDanger,
|
|
1619
1667
|
},
|
|
@@ -1658,12 +1706,9 @@ export const components = (
|
|
|
1658
1706
|
}),
|
|
1659
1707
|
},
|
|
1660
1708
|
},
|
|
1661
|
-
|
|
1662
|
-
|
|
1663
|
-
|
|
1664
|
-
minWidth: "unset",
|
|
1665
|
-
color: "inherit",
|
|
1666
|
-
},
|
|
1709
|
+
MuiModal: {
|
|
1710
|
+
defaultProps: {
|
|
1711
|
+
container: shadowRootElement,
|
|
1667
1712
|
},
|
|
1668
1713
|
},
|
|
1669
1714
|
MuiNativeSelect: {
|
|
@@ -1684,6 +1729,9 @@ export const components = (
|
|
|
1684
1729
|
},
|
|
1685
1730
|
},
|
|
1686
1731
|
MuiPopover: {
|
|
1732
|
+
defaultProps: {
|
|
1733
|
+
container: shadowRootElement,
|
|
1734
|
+
},
|
|
1687
1735
|
styleOverrides: {
|
|
1688
1736
|
paper: {
|
|
1689
1737
|
marginBlockStart: odysseyTokens.Spacing1,
|
|
@@ -1693,6 +1741,11 @@ export const components = (
|
|
|
1693
1741
|
},
|
|
1694
1742
|
},
|
|
1695
1743
|
},
|
|
1744
|
+
MuiPopper: {
|
|
1745
|
+
defaultProps: {
|
|
1746
|
+
container: shadowRootElement,
|
|
1747
|
+
},
|
|
1748
|
+
},
|
|
1696
1749
|
MuiRadio: {
|
|
1697
1750
|
defaultProps: {
|
|
1698
1751
|
size: "small",
|
|
@@ -2241,8 +2294,6 @@ export const components = (
|
|
|
2241
2294
|
},
|
|
2242
2295
|
MuiTypography: {
|
|
2243
2296
|
defaultProps: {
|
|
2244
|
-
fontFamily:
|
|
2245
|
-
"'Inter', '-apple-system', 'BlinkMacSystemFont', 'Segoe UI', 'Roboto', 'Oxygen-Sans', 'Ubuntu', 'Cantarell', 'Helvetica Neue', 'Noto Sans Arabic', sans-serif",
|
|
2246
2297
|
variantMapping: {
|
|
2247
2298
|
h1: "h1",
|
|
2248
2299
|
h2: "h2",
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* Copyright (c) 2023-present, Okta, Inc. and/or its affiliates. All rights reserved.
|
|
3
|
+
* The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the "License.")
|
|
4
|
+
*
|
|
5
|
+
* You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.
|
|
6
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
7
|
+
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
|
8
|
+
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
9
|
+
*
|
|
10
|
+
* See the License for the specific language governing permissions and limitations under the License.
|
|
11
|
+
*/
|
|
12
|
+
|
|
13
|
+
import { createTheme } from "@mui/material/styles";
|
|
14
|
+
import * as Tokens from "@okta/odyssey-design-tokens";
|
|
15
|
+
|
|
16
|
+
import { components } from "./components";
|
|
17
|
+
import { mixins } from "./mixins";
|
|
18
|
+
import { palette } from "./palette";
|
|
19
|
+
import { shape } from "./shape";
|
|
20
|
+
import { spacing } from "./spacing";
|
|
21
|
+
import { typography } from "./typography";
|
|
22
|
+
import "./components.types";
|
|
23
|
+
import "./mixins.types";
|
|
24
|
+
import "./palette.types";
|
|
25
|
+
import "./typography.types";
|
|
26
|
+
|
|
27
|
+
export type DesignTokens = typeof Tokens;
|
|
28
|
+
export type DesignTokensOverride = Partial<typeof Tokens>;
|
|
29
|
+
|
|
30
|
+
export const createOdysseyMuiTheme = ({
|
|
31
|
+
odysseyTokens,
|
|
32
|
+
shadowRootElement,
|
|
33
|
+
}: {
|
|
34
|
+
odysseyTokens: DesignTokens;
|
|
35
|
+
shadowRootElement?: HTMLDivElement;
|
|
36
|
+
}) =>
|
|
37
|
+
createTheme({
|
|
38
|
+
components: components({
|
|
39
|
+
odysseyTokens,
|
|
40
|
+
shadowRootElement,
|
|
41
|
+
}),
|
|
42
|
+
mixins: mixins({ odysseyTokens }),
|
|
43
|
+
palette: palette({ odysseyTokens }),
|
|
44
|
+
shape: shape({ odysseyTokens }),
|
|
45
|
+
spacing: spacing({ odysseyTokens }),
|
|
46
|
+
typography: typography({ odysseyTokens }),
|
|
47
|
+
});
|
package/src/theme/mixins.ts
CHANGED
|
@@ -14,7 +14,11 @@ import type { ThemeOptions } from "@mui/material";
|
|
|
14
14
|
|
|
15
15
|
import { DesignTokens } from "./theme";
|
|
16
16
|
|
|
17
|
-
export const mixins = (
|
|
17
|
+
export const mixins = ({
|
|
18
|
+
odysseyTokens,
|
|
19
|
+
}: {
|
|
20
|
+
odysseyTokens: DesignTokens;
|
|
21
|
+
}): ThemeOptions["mixins"] => {
|
|
18
22
|
return {
|
|
19
23
|
maxWidth: odysseyTokens.TypographyLineLengthMax,
|
|
20
24
|
borderRadius: odysseyTokens.BorderRadiusMain,
|
package/src/theme/palette.ts
CHANGED
|
@@ -14,9 +14,11 @@ import type { ThemeOptions } from "@mui/material";
|
|
|
14
14
|
|
|
15
15
|
import { DesignTokens } from "./theme";
|
|
16
16
|
|
|
17
|
-
export const palette = (
|
|
18
|
-
odysseyTokens
|
|
19
|
-
|
|
17
|
+
export const palette = ({
|
|
18
|
+
odysseyTokens,
|
|
19
|
+
}: {
|
|
20
|
+
odysseyTokens: DesignTokens;
|
|
21
|
+
}): ThemeOptions["palette"] => {
|
|
20
22
|
return {
|
|
21
23
|
mode: "light",
|
|
22
24
|
common: {
|
package/src/theme/shape.ts
CHANGED
|
@@ -14,7 +14,11 @@ import type { ThemeOptions } from "@mui/material";
|
|
|
14
14
|
|
|
15
15
|
import { DesignTokens } from "./theme";
|
|
16
16
|
|
|
17
|
-
export const shape = (
|
|
17
|
+
export const shape = ({
|
|
18
|
+
odysseyTokens,
|
|
19
|
+
}: {
|
|
20
|
+
odysseyTokens: DesignTokens;
|
|
21
|
+
}): ThemeOptions["shape"] => {
|
|
18
22
|
// Strip units from BorderRadiusBase to accommodate MUI's typing
|
|
19
23
|
const NumericalBorderRadiusBase =
|
|
20
24
|
typeof odysseyTokens.BorderRadiusMain === "string"
|
package/src/theme/spacing.ts
CHANGED
|
@@ -14,9 +14,11 @@ import type { ThemeOptions } from "@mui/material";
|
|
|
14
14
|
|
|
15
15
|
import type { DesignTokens } from "./theme";
|
|
16
16
|
|
|
17
|
-
export const spacing = (
|
|
18
|
-
odysseyTokens
|
|
19
|
-
|
|
17
|
+
export const spacing = ({
|
|
18
|
+
odysseyTokens,
|
|
19
|
+
}: {
|
|
20
|
+
odysseyTokens: DesignTokens;
|
|
21
|
+
}): ThemeOptions["spacing"] => {
|
|
20
22
|
return [
|
|
21
23
|
odysseyTokens.Spacing0,
|
|
22
24
|
odysseyTokens.Spacing1,
|
package/src/theme/theme.ts
CHANGED
|
@@ -10,29 +10,4 @@
|
|
|
10
10
|
* See the License for the specific language governing permissions and limitations under the License.
|
|
11
11
|
*/
|
|
12
12
|
|
|
13
|
-
|
|
14
|
-
import * as Tokens from "@okta/odyssey-design-tokens";
|
|
15
|
-
|
|
16
|
-
import { components } from "./components";
|
|
17
|
-
import { mixins } from "./mixins";
|
|
18
|
-
import { palette } from "./palette";
|
|
19
|
-
import { shape } from "./shape";
|
|
20
|
-
import { spacing } from "./spacing";
|
|
21
|
-
import { typography } from "./typography";
|
|
22
|
-
import "./components.types";
|
|
23
|
-
import "./mixins.types";
|
|
24
|
-
import "./palette.types";
|
|
25
|
-
import "./typography.types";
|
|
26
|
-
|
|
27
|
-
export type DesignTokens = typeof Tokens;
|
|
28
|
-
export type DesignTokensOverride = Partial<typeof Tokens>;
|
|
29
|
-
|
|
30
|
-
export const createOdysseyMuiTheme = (odysseyTokens: DesignTokens) =>
|
|
31
|
-
createTheme({
|
|
32
|
-
components: components(odysseyTokens),
|
|
33
|
-
mixins: mixins(odysseyTokens),
|
|
34
|
-
palette: palette(odysseyTokens),
|
|
35
|
-
shape: shape(odysseyTokens),
|
|
36
|
-
spacing: spacing(odysseyTokens),
|
|
37
|
-
typography: typography(odysseyTokens),
|
|
38
|
-
});
|
|
13
|
+
export * from "./createOdysseyMuiTheme";
|
package/src/theme/typography.ts
CHANGED
|
@@ -14,9 +14,11 @@ import type { ThemeOptions } from "@mui/material";
|
|
|
14
14
|
|
|
15
15
|
import { DesignTokens } from "./theme";
|
|
16
16
|
|
|
17
|
-
export const typography = (
|
|
18
|
-
odysseyTokens
|
|
19
|
-
|
|
17
|
+
export const typography = ({
|
|
18
|
+
odysseyTokens,
|
|
19
|
+
}: {
|
|
20
|
+
odysseyTokens: DesignTokens;
|
|
21
|
+
}): ThemeOptions["typography"] => {
|
|
20
22
|
return {
|
|
21
23
|
htmlFontSize: 16,
|
|
22
24
|
fontFamily: odysseyTokens.TypographyFamilyBody,
|
package/dist/OdysseyI18n.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"OdysseyI18n.js","names":["i18n","initReactI18next","translation","cs","da","de","el","en","es","fi","fr","hu","id","it","ja","ko","ms","nb","nlNL","okPL","okSK","pl","ptBR","ro","ru","sv","th","tr","uk","zhCN","znTW","supportedLanguages","defaultLNG","defaultNS","resources","nl_NL","ok_PL","ok_SK","pt_BR","zh_CN","zh_TW","use","init","ns","fallbackLng","supportedLngs","load","keySeparator","interpolation","escapeValue","skipOnVariables","react","useSuspense","bindI18nStore","Object","entries","forEach","_ref","locale","property","addResourceBundle"],"sources":["../src/OdysseyI18n.ts"],"sourcesContent":["/*!\n * Copyright (c) 2023-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport i18n from \"i18next\";\nimport { initReactI18next } from \"react-i18next\";\n\nimport { translation as cs } from \"./properties/ts/odyssey-react-mui_cs\";\nimport { translation as da } from \"./properties/ts/odyssey-react-mui_da\";\nimport { translation as de } from \"./properties/ts/odyssey-react-mui_de\";\nimport { translation as el } from \"./properties/ts/odyssey-react-mui_el\";\nimport { translation as en } from \"./properties/ts/odyssey-react-mui\";\nimport { translation as es } from \"./properties/ts/odyssey-react-mui_es\";\nimport { translation as fi } from \"./properties/ts/odyssey-react-mui_fi\";\nimport { translation as fr } from \"./properties/ts/odyssey-react-mui_fr\";\nimport { translation as hu } from \"./properties/ts/odyssey-react-mui_hu\";\nimport { translation as id } from \"./properties/ts/odyssey-react-mui_id\";\nimport { translation as it } from \"./properties/ts/odyssey-react-mui_it\";\nimport { translation as ja } from \"./properties/ts/odyssey-react-mui_ja\";\nimport { translation as ko } from \"./properties/ts/odyssey-react-mui_ko\";\nimport { translation as ms } from \"./properties/ts/odyssey-react-mui_ms\";\nimport { translation as nb } from \"./properties/ts/odyssey-react-mui_nb\";\nimport { translation as nlNL } from \"./properties/ts/odyssey-react-mui_nl_NL\";\nimport { translation as okPL } from \"./properties/ts/odyssey-react-mui_ok_PL\";\nimport { translation as okSK } from \"./properties/ts/odyssey-react-mui_ok_SK\";\nimport { translation as pl } from \"./properties/ts/odyssey-react-mui_pl\";\nimport { translation as ptBR } from \"./properties/ts/odyssey-react-mui_pt_BR\";\nimport { translation as ro } from \"./properties/ts/odyssey-react-mui_ro\";\nimport { translation as ru } from \"./properties/ts/odyssey-react-mui_ru\";\nimport { translation as sv } from \"./properties/ts/odyssey-react-mui_sv\";\nimport { translation as th } from \"./properties/ts/odyssey-react-mui_th\";\nimport { translation as tr } from \"./properties/ts/odyssey-react-mui_tr\";\nimport { translation as uk } from \"./properties/ts/odyssey-react-mui_uk\";\nimport { translation as zhCN } from \"./properties/ts/odyssey-react-mui_zh_CN\";\nimport { translation as znTW } from \"./properties/ts/odyssey-react-mui_zh_TW\";\n\nimport {\n SupportedLanguages,\n supportedLanguages,\n} from \"./OdysseyTranslationProvider.types\";\n\nexport const defaultLNG: SupportedLanguages = \"en\";\nexport const defaultNS = \"translations\";\nexport const resources = {\n cs,\n da,\n de,\n el,\n en,\n es,\n fi,\n fr,\n hu,\n id,\n it,\n ja,\n ko,\n ms,\n nb,\n nl_NL: nlNL,\n ok_PL: okPL,\n ok_SK: okSK,\n pl,\n pt_BR: ptBR,\n ro,\n ru,\n sv,\n th,\n tr,\n uk,\n zh_CN: zhCN,\n zh_TW: znTW,\n};\n\ni18n.use(initReactI18next).init({\n defaultNS,\n ns: [defaultNS],\n fallbackLng: defaultLNG,\n supportedLngs: supportedLanguages,\n load: \"currentOnly\",\n keySeparator: false,\n interpolation: {\n escapeValue: false, // react already safe from xss\n skipOnVariables: false, // to handle translations that use nesting\n },\n react: {\n useSuspense: false,\n bindI18nStore: \"added\",\n },\n});\n\nObject.entries(resources).forEach(([locale, property]) => {\n i18n.addResourceBundle(locale, defaultNS, property);\n});\n\n// eslint-disable-next-line import/no-default-export\nexport default i18n;\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,OAAOA,IAAI,MAAM,SAAS;AAC1B,SAASC,gBAAgB,QAAQ,eAAe;AAAC,SAExCC,WAAW,IAAIC,EAAE;AAAA,SACjBD,WAAW,IAAIE,EAAE;AAAA,SACjBF,WAAW,IAAIG,EAAE;AAAA,SACjBH,WAAW,IAAII,EAAE;AAAA,SACjBJ,WAAW,IAAIK,EAAE;AAAA,SACjBL,WAAW,IAAIM,EAAE;AAAA,SACjBN,WAAW,IAAIO,EAAE;AAAA,SACjBP,WAAW,IAAIQ,EAAE;AAAA,SACjBR,WAAW,IAAIS,EAAE;AAAA,SACjBT,WAAW,IAAIU,EAAE;AAAA,SACjBV,WAAW,IAAIW,EAAE;AAAA,SACjBX,WAAW,IAAIY,EAAE;AAAA,SACjBZ,WAAW,IAAIa,EAAE;AAAA,SACjBb,WAAW,IAAIc,EAAE;AAAA,SACjBd,WAAW,IAAIe,EAAE;AAAA,SACjBf,WAAW,IAAIgB,IAAI;AAAA,SACnBhB,WAAW,IAAIiB,IAAI;AAAA,SACnBjB,WAAW,IAAIkB,IAAI;AAAA,SACnBlB,WAAW,IAAImB,EAAE;AAAA,SACjBnB,WAAW,IAAIoB,IAAI;AAAA,SACnBpB,WAAW,IAAIqB,EAAE;AAAA,SACjBrB,WAAW,IAAIsB,EAAE;AAAA,SACjBtB,WAAW,IAAIuB,EAAE;AAAA,SACjBvB,WAAW,IAAIwB,EAAE;AAAA,SACjBxB,WAAW,IAAIyB,EAAE;AAAA,SACjBzB,WAAW,IAAI0B,EAAE;AAAA,SACjB1B,WAAW,IAAI2B,IAAI;AAAA,SACnB3B,WAAW,IAAI4B,IAAI;AAAA,SAI1BC,kBAAkB;AAGpB,OAAO,MAAMC,UAA8B,GAAG,IAAI;AAClD,OAAO,MAAMC,SAAS,GAAG,cAAc;AACvC,OAAO,MAAMC,SAAS,GAAG;EACvB/B,EAAE;EACFC,EAAE;EACFC,EAAE;EACFC,EAAE;EACFC,EAAE;EACFC,EAAE;EACFC,EAAE;EACFC,EAAE;EACFC,EAAE;EACFC,EAAE;EACFC,EAAE;EACFC,EAAE;EACFC,EAAE;EACFC,EAAE;EACFC,EAAE;EACFkB,KAAK,EAAEjB,IAAI;EACXkB,KAAK,EAAEjB,IAAI;EACXkB,KAAK,EAAEjB,IAAI;EACXC,EAAE;EACFiB,KAAK,EAAEhB,IAAI;EACXC,EAAE;EACFC,EAAE;EACFC,EAAE;EACFC,EAAE;EACFC,EAAE;EACFC,EAAE;EACFW,KAAK,EAAEV,IAAI;EACXW,KAAK,EAAEV;AACT,CAAC;AAED9B,IAAI,CAACyC,GAAG,CAACxC,gBAAgB,CAAC,CAACyC,IAAI,CAAC;EAC9BT,SAAS;EACTU,EAAE,EAAE,CAACV,SAAS,CAAC;EACfW,WAAW,EAAEZ,UAAU;EACvBa,aAAa,EAAEd,kBAAkB;EACjCe,IAAI,EAAE,aAAa;EACnBC,YAAY,EAAE,KAAK;EACnBC,aAAa,EAAE;IACbC,WAAW,EAAE,KAAK;IAClBC,eAAe,EAAE;EACnB,CAAC;EACDC,KAAK,EAAE;IACLC,WAAW,EAAE,KAAK;IAClBC,aAAa,EAAE;EACjB;AACF,CAAC,CAAC;AAEFC,MAAM,CAACC,OAAO,CAACrB,SAAS,CAAC,CAACsB,OAAO,CAACC,IAAA,IAAwB;EAAA,IAAvB,CAACC,MAAM,EAAEC,QAAQ,CAAC,GAAAF,IAAA;EACnDzD,IAAI,CAAC4D,iBAAiB,CAACF,MAAM,EAAEzB,SAAS,EAAE0B,QAAQ,CAAC;AACrD,CAAC,CAAC;AAGF,eAAe3D,IAAI"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"OdysseyI18n.d.ts","sourceRoot":"","sources":["../../src/OdysseyI18n.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,IAAI,MAAM,SAAS,CAAC;AAgC3B,OAAO,EACL,kBAAkB,EAEnB,MAAM,oCAAoC,CAAC;AAE5C,eAAO,MAAM,UAAU,EAAE,kBAAyB,CAAC;AACnD,eAAO,MAAM,SAAS,iBAAiB,CAAC;AACxC,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6BrB,CAAC;AAwBF,eAAe,IAAI,CAAC"}
|