udp-react-enterprise-component-library 25.18.1-beta.51 → 25.18.1-beta.52
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/dist/{AuthProvider-V_6y6_xj.js → AuthProvider-C8qG0V63.js} +2 -2
- package/dist/{AuthProvider-V_6y6_xj.js.map → AuthProvider-C8qG0V63.js.map} +1 -1
- package/dist/{Shell-DunAQ9XC.js → Shell-B6Qxi2hZ.js} +2 -2
- package/dist/{Shell-DunAQ9XC.js.map → Shell-B6Qxi2hZ.js.map} +1 -1
- package/dist/{TenantProvider-B_fwoUi4.js → TenantProvider-CCrrxyiD.js} +4 -3
- package/dist/TenantProvider-CCrrxyiD.js.map +1 -0
- package/dist/{UdpAppProvider-D7D0F8VO.js → UdpAppProvider-BuJv7P-y.js} +3 -3
- package/dist/{UdpAppProvider-D7D0F8VO.js.map → UdpAppProvider-BuJv7P-y.js.map} +1 -1
- package/dist/{auth-Bq7vHax4.js → auth-DZmqyrT1.js} +2 -2
- package/dist/{auth-Bq7vHax4.js.map → auth-DZmqyrT1.js.map} +1 -1
- package/dist/index.js +7 -7
- package/dist/{profile-hGhjTafH.js → profile-BA_cbWI8.js} +3 -3
- package/dist/{profile-hGhjTafH.js.map → profile-BA_cbWI8.js.map} +1 -1
- package/dist/providers/index.js +1 -1
- package/dist/shell/index.js +1 -1
- package/dist/shell/ui/profile/index.js +1 -1
- package/dist/tenantStore-CFYu7ndZ.js.map +1 -1
- package/dist/{theme-Bb8h8tjE.js → theme-_CEHumbt.js} +3 -3
- package/dist/theme-_CEHumbt.js.map +1 -0
- package/dist/types/src/maintenanceEngine/tableBrowser/TableColumnDefs.d.ts +1 -1
- package/dist/types/src/maintenanceEngine/tableBrowser/TableColumnDefs.d.ts.map +1 -1
- package/dist/types/src/stores/tenantStore.d.ts +1 -0
- package/dist/types/src/stores/tenantStore.d.ts.map +1 -1
- package/dist/types/src/udp/utilities/useDateStringColumnDef.d.ts +1 -1
- package/dist/types/src/utilities/tenant/TenantProvider.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/dist/utilities/auth/index.js +3 -3
- package/dist/utilities/tenant/index.js +1 -1
- package/dist/utilities/theme/index.js +1 -1
- package/export-map.json +1 -1
- package/package.json +1 -1
- package/dist/TenantProvider-B_fwoUi4.js.map +0 -1
- package/dist/theme-Bb8h8tjE.js.map +0 -1
|
@@ -2,8 +2,8 @@ import { a as acquireAccessToken, c as useLogoutAction, d as getLoginRequest, f
|
|
|
2
2
|
import { n as UserContext, r as UserDispatchContext, t as useUser } from "../../useUser-wpHGo6jU.js";
|
|
3
3
|
import { t as useIsUnityAuthenticated } from "../../useIsUnityAuthenticated-Cc_l9meR.js";
|
|
4
4
|
import { n as useCurrentPageReturnTo, r as useIsAuthed, t as useAuthedUser } from "../../useAuthedUser-Bhr7Yhlg.js";
|
|
5
|
-
import { a as useUserActions, i as useLocalUserActions } from "../../TenantProvider-
|
|
6
|
-
import { n as createUser, t as AuthProvider } from "../../AuthProvider-
|
|
7
|
-
import { n as useSingleLogout, r as AuthProviderWrapper, t as useAccessToken } from "../../auth-
|
|
5
|
+
import { a as useUserActions, i as useLocalUserActions } from "../../TenantProvider-CCrrxyiD.js";
|
|
6
|
+
import { n as createUser, t as AuthProvider } from "../../AuthProvider-C8qG0V63.js";
|
|
7
|
+
import { n as useSingleLogout, r as AuthProviderWrapper, t as useAccessToken } from "../../auth-DZmqyrT1.js";
|
|
8
8
|
|
|
9
9
|
export { AuthProvider, AuthProviderWrapper, UserContext, UserDispatchContext, acquireAccessToken, createUser, getApiAccessScope, getLoginRequest, getSignInAuthProvider, getTokenRequest, initSignInAuthProvider, loginRedirect, useAccessToken, useAuthedUser, useCurrentPageReturnTo, useIsAuthed, useIsUnityAuthenticated, useLocalUserActions, useLoginAction, useLogoutAction, useSingleLogout, useUser, useUserActions, whitelistedPaths };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { t as TenantContext } from "../../tenantContext-BpVIZ4sz.js";
|
|
2
2
|
import { t as useTenant } from "../../useTenant-CGaZEBEJ.js";
|
|
3
|
-
import { n as TenantAccessDialog, r as TenantSelect, t as TenantProvider } from "../../TenantProvider-
|
|
3
|
+
import { n as TenantAccessDialog, r as TenantSelect, t as TenantProvider } from "../../TenantProvider-CCrrxyiD.js";
|
|
4
4
|
|
|
5
5
|
export { TenantAccessDialog, TenantContext, TenantProvider, TenantSelect, useTenant };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { n as corporateColorsHint, r as productCategoryColors, t as corporateColors } from "../../brand-BkTzWyBS.js";
|
|
2
|
-
import { n as ThemeProvider, r as useSystemColor, t as useTheme } from "../../theme-
|
|
2
|
+
import { n as ThemeProvider, r as useSystemColor, t as useTheme } from "../../theme-_CEHumbt.js";
|
|
3
3
|
|
|
4
4
|
export { ThemeProvider, corporateColors, corporateColorsHint, productCategoryColors, useSystemColor, useTheme };
|
package/export-map.json
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "udp-react-enterprise-component-library",
|
|
3
|
-
"version": "25.18.1-beta.
|
|
3
|
+
"version": "25.18.1-beta.52",
|
|
4
4
|
"description": "React-based UI component library implementing Fluent UI design for Univerus internal projects",
|
|
5
5
|
"author": "Univerus",
|
|
6
6
|
"license": "MIT",
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"TenantProvider-B_fwoUi4.js","names":["TenantAccessDialog: React.FC<TenantAccessDialogProps>"],"sources":["../src/utilities/auth/users.js","../src/utilities/tenant/TenantSelect.tsx","../src/utilities/tenant/TenantAccessDialog.tsx","../src/utilities/tenant/TenantProvider.jsx"],"sourcesContent":["import { useContext, useCallback } from 'react';\nimport { UserDispatchContext } from './internal';\n\nexport function useUserActions() {\n const dispatch = useContext(UserDispatchContext);\n const setUser = useCallback(\n (user) => {\n dispatch({ type: 'SET_USER', user });\n },\n [dispatch]\n );\n\n const changeTenant = useCallback(\n (tenantId) => {\n dispatch({ type: 'CHANGE_TENANT', tenantId });\n },\n [dispatch]\n );\n\n return { setUser, changeTenant };\n}\n\nexport function useLocalUserActions() {\n const dispatch = useContext(UserDispatchContext);\n const setUser = useCallback(\n (user) => {\n dispatch({ type: 'SET_USER', user });\n },\n [dispatch]\n );\n\n const setAccessToken = useCallback(\n (accessToken) => {\n dispatch({ type: 'SET_ACCESS_TOKEN', accessToken });\n },\n [dispatch]\n );\n\n return { setUser, setAccessToken };\n}\n","import React, { forwardRef, useMemo, useCallback } from 'react';\nimport { Autocomplete, AutocompleteChangeReason } from '@material-ui/lab';\nimport { TextField, TextFieldProps } from '@material-ui/core';\nimport { Tenant } from '../types';\n\ninterface TenantSelectProps {\n tenants?: Tenant[] | null;\n value: Tenant | null;\n onTenantChange?: (tenant: Tenant) => void;\n id?: string;\n label?: string;\n className?: string;\n disableClearable?: boolean;\n textFieldProps?: TextFieldProps;\n recordIdPrefix?: string;\n}\n\nconst sanitizeRecordId = (tenantName: string) =>\n tenantName.replace(/\\s+/g, '');\n\nexport const TenantSelect = forwardRef<HTMLDivElement, TenantSelectProps>(\n (props, ref) => {\n const {\n tenants,\n value,\n onTenantChange,\n id = 'tenant-select',\n label = 'Current Tenant',\n className,\n disableClearable = true,\n textFieldProps,\n recordIdPrefix = 'udpRecord-TenantSelect'\n } = props;\n\n const options = useMemo(() => tenants ?? [], [tenants]);\n\n const handleChange = useCallback(\n (\n event: React.ChangeEvent<object>,\n newValue: Tenant | null,\n reason: AutocompleteChangeReason\n ) => {\n if (reason !== 'select-option' || !newValue) {\n return;\n }\n onTenantChange?.(newValue);\n },\n [onTenantChange]\n );\n\n return (\n <Autocomplete\n ref={ref}\n className={className}\n id={id}\n value={value}\n options={options}\n disableClearable={disableClearable}\n getOptionSelected={(option, selected) =>\n option?.tenantId === selected?.tenantId\n }\n getOptionLabel={(option) => option?.tenantName ?? ''}\n onChange={handleChange}\n renderInput={(params) => (\n <TextField\n {...params}\n label={label}\n variant='standard'\n {...textFieldProps}\n />\n )}\n renderOption={(option) => (\n <li\n style={{ width: '100%', height: '100%' }}\n // @ts-expect-error udpRecordId is used for automation tagging\n udprecordid={`${recordIdPrefix}-${sanitizeRecordId(\n option?.tenantName ?? ''\n )}`}\n >\n {option?.tenantName ?? ''}\n </li>\n )}\n />\n );\n }\n);\n\nTenantSelect.displayName = 'TenantSelect';\n","import React from 'react';\nimport { FluentDialog } from '../../UI/feedback/FluentDialog';\nimport { TenantSelect } from './TenantSelect';\nimport { Tenant } from '../types';\n\ninterface TenantAccessDialogProps {\n open: boolean;\n tenants: Tenant[];\n currentTenant: Tenant | null;\n onTenantChange: (tenant: Tenant) => void;\n productName?: string | null;\n}\n\nexport const TenantAccessDialog: React.FC<TenantAccessDialogProps> = ({\n tenants,\n onTenantChange,\n productName\n}) => {\n const message = productName\n ? `Your current tenant does not have access to ${productName}. Please select another tenant to continue.`\n : 'Your current tenant does not have access to this application. Please select another tenant to continue.';\n\n return (\n <FluentDialog\n open={true}\n title='Tenant Access Required'\n message={message}\n buttonOneHidden={true}\n buttonTwoHidden={true}\n disableEscapeKeyDown\n disableBackdropClick\n >\n <TenantSelect\n tenants={tenants}\n value={null}\n onTenantChange={onTenantChange}\n label='Available Tenants'\n id='tenant-access-dialog-select'\n disableClearable={false}\n recordIdPrefix='udpRecord-TenantAccessDialog'\n />\n </FluentDialog>\n );\n};\n","import React, { useCallback, useMemo, useEffect } from 'react';\nimport { useUser } from '../auth/useUser';\nimport { useAxiosGet } from '../useAxiosGet';\nimport { TenantContext } from './tenantContext';\nimport { ConfigService } from '../../configService';\nimport { FluentDialog } from '../../UI/feedback/FluentDialog';\nimport { useAccount } from '@azure/msal-react';\nimport { MenuProvider } from '../menus/MenuProvider';\nimport { TenantAccessDialog } from './TenantAccessDialog';\nimport { storeTenant } from '../storage/UnitySessionStorage';\nimport { useUserActions } from '../auth/users';\nimport { TenantTypeEnums, UnityProducts } from '../../enums/unitySystemEnums';\nimport { useTenantStore } from '../../stores/tenantStore'; // <-- Imported for the sync hook\n\n/**\n * A hook to sync the derived active tenant with the Zustand store.\n * This is the \"necessary evil\" to keep the store updated.\n */\nconst useTenantStoreSync = (activeTenant) => {\n const {\n currentTenant: storeTenantValue,\n setCurrentTenant,\n } = useTenantStore((state) => ({\n currentTenant: state.currentTenant,\n setCurrentTenant: state.setCurrentTenant,\n }));\n\n // This effect syncs our correct activeTenant to the Zustand store.\n // This fixes the \"side-effect in render\" bug from the original code.\n useEffect(() => {\n if (\n activeTenant &&\n (storeTenantValue?.tenantId !== activeTenant.tenantId ||\n storeTenantValue?.name !== activeTenant.tenantName ||\n storeTenantValue?.tenantType !== activeTenant.tenantType)\n ) {\n setCurrentTenant({\n tenantId: activeTenant.tenantId,\n name: activeTenant.tenantName,\n tenantType: activeTenant.tenantType,\n });\n }\n }, [activeTenant, storeTenantValue, setCurrentTenant]);\n};\n\n/**\n * This hook fetches all data and derives the correct tenant state.\n * It is pure and has no knowledge of Zustand.\n */\nconst useTenantData = (id, user) => {\n // --- Data Fetching ---\n const [{ data: tenants }, refetchTenantsList] = useAxiosGet(\n ConfigService.securityV1ApiUrl,\n `users/${id ?? ''}/unitytenants`,\n {},\n !id\n );\n\n const [{ data: products }] = useAxiosGet(\n ConfigService.tenantV1ApiUrl,\n `products`,\n {},\n !id\n );\n\n // --- State Derivation ---\n const unityProductIdString = ConfigService.config.UNITY_PRODUCT_ID;\n const unityProductId = unityProductIdString\n ? Number(unityProductIdString)\n : null;\n const shouldFilterByProduct =\n typeof unityProductId === 'number' && !Number.isNaN(unityProductId) && unityProductId !== UnityProducts.Unity;\n\n const filteredTenantsList = useMemo(() => {\n if (!Array.isArray(tenants)) {\n return null;\n }\n if (!shouldFilterByProduct || unityProductId === null) {\n return tenants;\n }\n return tenants.filter((tenant) =>\n tenant?.products?.find(\n (product) => product?.productId === unityProductId\n )\n );\n }, [tenants, shouldFilterByProduct, unityProductId]);\n\n // This is the correctly derived tenant\n const activeTenant =\n user?.currentTenantId && Array.isArray(tenants)\n ? tenants.find((tenant) => tenant.tenantId === user.currentTenantId) ??\n null\n : null;\n\n // This is derived from the correct tenant\n const isProductTenant =\n activeTenant?.tenantType === TenantTypeEnums.Product;\n\n // --- Dialog Logic & Derived Flags ---\n const unityProductName = useMemo(() => {\n if (!shouldFilterByProduct || unityProductId === null) {\n return null;\n }\n if (!Array.isArray(products)) {\n return null;\n }\n return (\n products.find(\n (product) => product?.productId === unityProductId\n )?.name ?? null\n );\n }, [products, shouldFilterByProduct, unityProductId]);\n\n const userHasLoaded = user?.statusCode === 200;\n\n const noTenantsAvailable =\n Array.isArray(tenants) && tenants.length === 0 && userHasLoaded;\n\n const hasFilteredTenants =\n Array.isArray(filteredTenantsList) && filteredTenantsList.length > 0;\n\n const currentTenantAllowed = !shouldFilterByProduct\n ? true\n : filteredTenantsList?.some(\n (tenant) => tenant.tenantId === user?.currentTenantId\n ) ?? false;\n\n const zeroTenantAccess =\n userHasLoaded &&\n shouldFilterByProduct &&\n Array.isArray(filteredTenantsList) &&\n filteredTenantsList.length === 0;\n\n const shouldShowTenantMismatchDialog =\n userHasLoaded &&\n shouldFilterByProduct &&\n hasFilteredTenants &&\n !currentTenantAllowed &&\n unityProductId !== UnityProducts.Unity;\n\n const allowedTenants = useMemo(\n () => (Array.isArray(filteredTenantsList) ? filteredTenantsList : []),\n [filteredTenantsList]\n );\n\n const selectedTenantForDialog = currentTenantAllowed\n ? activeTenant\n : allowedTenants[0] ?? null;\n\n // Return everything the Provider needs\n return {\n tenantsList: tenants ?? null,\n filteredTenantsList,\n activeTenant, // The correct tenant\n isProductTenant, // Derived from the correct tenant\n refresh: refetchTenantsList,\n noTenantsAvailable,\n zeroTenantAccess,\n shouldShowTenantMismatchDialog,\n allowedTenants,\n selectedTenantForDialog,\n unityProductName,\n };\n};\n\n\nexport const TenantProvider = ({ children }) => {\n const user = useUser();\n const activeAccount = useAccount();\n const id = user?.id;\n const { changeTenant } = useUserActions();\n\n // Call the main data hook to get the correct state\n const {\n tenantsList,\n filteredTenantsList,\n activeTenant, // This is the correct value\n isProductTenant,\n refresh,\n noTenantsAvailable,\n zeroTenantAccess,\n shouldShowTenantMismatchDialog,\n allowedTenants,\n selectedTenantForDialog,\n unityProductName,\n } = useTenantData(id, user);\n\n useTenantStoreSync(activeTenant);\n\n // Callback for changing the tenant (triggers API call)\n const handleTenantChange = useCallback(\n (tenant) => {\n if (!tenant) return;\n storeTenant(tenant.tenantId);\n changeTenant(tenant.tenantId); // This will cause `user` to update, re-running the hooks.\n },\n [changeTenant]\n );\n\n // Render blocking dialog if user has no access\n if (noTenantsAvailable || zeroTenantAccess) {\n return (\n <FluentDialog\n title='No Access'\n message='Your user does not have access to any tenants. Please contact your support team.'\n open={true}\n buttonOneHidden={true}\n buttonTwoHidden={true}\n />\n );\n }\n if (shouldShowTenantMismatchDialog) {\n return (\n\n <TenantAccessDialog\n open={true}\n tenants={allowedTenants}\n currentTenant={selectedTenantForDialog}\n onTenantChange={handleTenantChange}\n productName={unityProductName}\n />\n );\n }\n\n // Provide the correct values to the Context\n return (\n <TenantContext.Provider\n value={{\n tenantsList,\n filteredTenantsList,\n activeTenant,\n isProductTenant,\n refresh,\n }}\n >\n <MenuProvider>\n {children}\n </MenuProvider>\n </TenantContext.Provider>\n );\n};\n"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"theme-Bb8h8tjE.js","names":[],"sources":["../src/utilities/theme/systemColors.js","../src/utilities/theme/theme.jsx"],"sourcesContent":["import { useState } from 'react'\n\nexport const useSystemColor = () => {\n const [color] = useState({\n info: 'rgb(15, 98, 254)',\n error: 'rgb(218, 30, 40)',\n warning: 'rgb(255, 131, 43)',\n success: 'rgb(36, 161, 72)'\n })\n\n return [color]\n}\n","import React, { useCallback, useMemo, useState } from 'react';\nimport { CssBaseline, lighten } from '@material-ui/core';\nimport {default as MuiThemeProvider } from '@material-ui/styles/esm/ThemeProvider';\nimport { createTheme } from '@material-ui/core/styles';\nimport { verticalPrimary, verticalSecondary } from '../style/verticalStyles';\nimport { useTypeScale } from '../style/verticalStyles';\nimport { greyScale } from '../style/verticalStyles';\nimport { useTenant } from '../tenant/useTenant';\n/**\n * Custom MUI theme provider\n */\nexport const ThemeProvider = ({ children }) => {\n const [\n h1,\n h2,\n h3,\n h4,\n h5,\n h6,\n body1,\n body2,\n subtitle1,\n subtitle2,\n subtitle3,\n button,\n caption,\n caption2,\n overline\n ] = useTypeScale();\n const [mode, setMode] = useState('light');\n const tenant = useTenant();\n const activeTenant = tenant?.activeTenant ?? null;\n const tenantTheme = activeTenant?.theme ?? null;\n const isThemeInitialized = Boolean(activeTenant?.tenantId);\n const resolvedTheme = (tenantTheme ?? '').toLowerCase();\n\n const getThemeData = useCallback(() => {\n return { mode, currentTheme: tenantTheme ?? '' };\n }, [mode, tenantTheme]);\n\n\n\n const theme = useMemo(() => {\n\n const { augmentColor } = createTheme().palette;\n\n const primary = verticalPrimary(resolvedTheme);\n const secondary = verticalSecondary(resolvedTheme);\n\n const coreTheme = createTheme({\n palette: {\n type: mode,\n primary: {\n main: primary,\n light: lighten(primary, 0.8)\n },\n secondary: {\n main: secondary\n },\n appBar: augmentColor({\n main: '#021b38'\n }),\n background: {\n default: greyScale(mode),\n footer: '#021b38'\n }\n },\n dimensions: {\n drawerWidth: 200\n },\n typography: {\n fontFamily: [\n // Webfont\n // System font stack\n // '-apple-system',\n // 'BlinkMacSystemFont',\n 'Segoe UI',\n 'Roboto',\n 'Noto',\n 'Helvetica Neue',\n 'Helvetica',\n 'Ubuntu',\n 'Arial',\n 'sans-serif',\n 'Apple Color Emoji',\n 'Segoe UI Emoji',\n 'Segoe UI Symbol'\n ]\n .map((item) => (item.includes(' ') ? `\"${item}\"` : item))\n .join(', ')\n },\n mixins: {\n // toolbar: {\n // minHeight: 48,\n // padding: 0\n // }\n },\n props: {\n MuiTextField: {\n margin: 'normal',\n variant: 'filled',\n fullWidth: true\n }\n }\n });\n\n const fullTheme = createTheme({\n ...coreTheme,\n overrides: {\n MuiCssBaseline: {\n '@global': {\n '*::-webkit-scrollbar': {\n height: 8,\n width: 8,\n backgroundColor: '#fff'\n },\n '*::-webkit-scrollbar-track': {\n backgroundColor: '#fff'\n },\n '*::-webkit-scrollbar-track:hover': {\n backgroundColor: '#f4f4f4'\n },\n '*::-webkit-scrollbar-thumb': {\n backgroundColor: '#babac0',\n borderRadius: 16,\n border: '2px solid #fff'\n },\n '*::-webkit-scrollbar-thumb:hover': {\n backgroundColor: '#a0a0a5',\n border: '2px solid #f4f4f4'\n }\n }\n },\n MuiTypography: {\n h1: {\n fontSize: h1.size,\n fontWeight: h1.weight,\n lineHeight: h1.lineHeight,\n letterSpacing: h1.letterSpacing\n },\n h2: {\n fontSize: h2.size,\n fontWeight: h2.weight,\n lineHeight: h2.lineHeight,\n letterSpacing: h2.letterSpacing\n },\n h3: {\n fontSize: h3.size,\n fontWeight: h3.weight,\n lineHeight: h3.lineHeight,\n letterSpacing: h3.letterSpacing\n },\n h4: {\n fontSize: h4.size,\n fontWeight: h4.weight,\n lineHeight: h4.lineHeight,\n letterSpacing: h4.letterSpacing\n },\n\n h5: {\n fontSize: h5.size,\n fontWeight: h5.weight,\n lineHeight: h5.lineHeight,\n letterSpacing: h5.letterSpacing\n },\n h6: {\n fontSize: h6.size,\n fontWeight: h6.weight,\n lineHeight: h6.lineHeight,\n letterSpacing: h6.letterSpacing\n },\n subtitle1: {\n fontSize: subtitle1.size,\n fontWeight: subtitle1.weight,\n lineHeight: subtitle1.lineHeight,\n letterSpacing: subtitle1.letterSpacing\n },\n subtitle2: {\n fontSize: subtitle2.size,\n fontWeight: subtitle2.weight,\n lineHeight: subtitle2.lineHeight,\n letterSpacing: subtitle2.letterSpacing\n },\n subtitle3: {\n fontSize: subtitle3.size,\n fontWeight: subtitle3.weight,\n lineHeight: subtitle3.lineHeight,\n letterSpacing: subtitle3.letterSpacing\n },\n body1: {\n fontSize: body1.size,\n fontWeight: body1.weight,\n lineHeight: body1.lineHeight,\n letterSpacing: body1.letterSpacing\n },\n body2: {\n fontSize: body2.size,\n fontWeight: body2.weight,\n lineHeight: body2.lineHeight,\n letterSpacing: body2.letterSpacing\n },\n button: {\n fontSize: button.size,\n fontWeight: button.weight,\n lineHeight: button.lineHeight,\n letterSpacing: button.letterSpacing\n },\n caption: {\n fontSize: caption.size,\n fontWeight: caption.weight,\n lineHeight: caption.lineHeight,\n letterSpacing: caption.letterSpacing\n },\n caption2: {\n fontSize: caption2.size,\n fontWeight: caption2.weight,\n lineHeight: caption2.lineHeight,\n letterSpacing: caption2.letterSpacing\n },\n overline: {\n fontSize: overline.size,\n fontWeight: overline.weight,\n lineHeight: overline.lineHeight,\n letterSpacing: overline.letterSpacing\n }\n }\n }\n });\n return {\n ...fullTheme,\n isInitialized: isThemeInitialized,\n setMode,\n getThemeData\n };\n }, [\n body1.letterSpacing,\n body1.lineHeight,\n body1.size,\n body1.weight,\n body2.letterSpacing,\n body2.lineHeight,\n body2.size,\n body2.weight,\n button.letterSpacing,\n button.lineHeight,\n button.size,\n button.weight,\n caption.letterSpacing,\n caption.lineHeight,\n caption.size,\n caption.weight,\n caption2.letterSpacing,\n caption2.lineHeight,\n caption2.size,\n caption2.weight,\n h1.letterSpacing,\n h1.lineHeight,\n h1.size,\n h1.weight,\n h2.letterSpacing,\n h2.lineHeight,\n h2.size,\n h2.weight,\n h3.letterSpacing,\n h3.lineHeight,\n h3.size,\n h3.weight,\n h4.letterSpacing,\n h4.lineHeight,\n h4.size,\n h4.weight,\n h5.letterSpacing,\n h5.lineHeight,\n h5.size,\n h5.weight,\n h6.letterSpacing,\n h6.lineHeight,\n h6.size,\n h6.weight,\n overline.letterSpacing,\n overline.lineHeight,\n overline.size,\n overline.weight,\n subtitle1.letterSpacing,\n subtitle1.lineHeight,\n subtitle1.size,\n subtitle1.weight,\n subtitle2.letterSpacing,\n subtitle2.lineHeight,\n subtitle2.size,\n subtitle2.weight,\n subtitle3.letterSpacing,\n subtitle3.lineHeight,\n subtitle3.size,\n subtitle3.weight,\n isThemeInitialized,\n mode,\n getThemeData,\n resolvedTheme\n ]);\n\n return (\n <MuiThemeProvider theme={theme}>\n <CssBaseline />\n {children}\n </MuiThemeProvider>\n );\n};\n"],"mappings":"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nB,YAAY,SAAS;OACrB,YAAY,SAAS;OACrB,eAAe,SAAS;OACzB;MACD,UAAU;OACR,UAAU,SAAS;OACnB,YAAY,SAAS;OACrB,YAAY,SAAS;OACrB,eAAe,SAAS;OACzB;MACF;KACF;IACF,CAAC;GAGA,eAAe;GACf;GACA;GACD;IACA;EACD,MAAM;EACN,MAAM;EACN,MAAM;EACN,MAAM;EACN,MAAM;EACN,MAAM;EACN,MAAM;EACN,MAAM;EACN,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,QAAQ;EACR,QAAQ;EACR,QAAQ;EACR,QAAQ;EACR,SAAS;EACT,SAAS;EACT,SAAS;EACT,SAAS;EACT,GAAG;EACH,GAAG;EACH,GAAG;EACH,GAAG;EACH,GAAG;EACH,GAAG;EACH,GAAG;EACH,GAAG;EACH,GAAG;EACH,GAAG;EACH,GAAG;EACH,GAAG;EACH,GAAG;EACH,GAAG;EACH,GAAG;EACH,GAAG;EACH,GAAG;EACH,GAAG;EACH,GAAG;EACH,GAAG;EACH,GAAG;EACH,GAAG;EACH,GAAG;EACH,GAAG;EACH,SAAS;EACT,SAAS;EACT,SAAS;EACT,SAAS;EACT,UAAU;EACV,UAAU;EACV,UAAU;EACV,UAAU;EACV,UAAU;EACV,UAAU;EACV,UAAU;EACV,UAAU;EACV,UAAU;EACV,UAAU;EACV,UAAU;EACV,UAAU;EACV;EACA;EACA;EACA;EACD,CAAC;AAEF,QACE,oCAAC,oBAAwB,SACvB,oCAAC,kBAAc,EACd,SACgB"}
|