Initial commit: Crypto trader application

This commit is contained in:
2025-12-25 20:20:40 -05:00
commit 07a04c1bb8
47895 changed files with 2042266 additions and 0 deletions

View File

@@ -0,0 +1,17 @@
import * as React from 'react';
import { DistributiveOmit, OverridableTypeMap } from '@mui/types';
/**
* A component whose root component can be controlled explicitly with a generic type parameter.
* Adjusts valid props based on the type of `RootComponent`.
*
* @template TypeMap The interface the defines the props and a default root element of the component.
*/
export type PolymorphicComponent<TypeMap extends OverridableTypeMap> = {
<RootComponent extends React.ElementType = TypeMap['defaultComponent']>(props: PolymorphicProps<TypeMap, RootComponent>): React.JSX.Element | null;
propTypes?: any;
displayName?: string | undefined;
};
/**
* Own props of the component augmented with props of the root component.
*/
export type PolymorphicProps<TypeMap extends OverridableTypeMap, RootComponent extends React.ElementType> = TypeMap['props'] & DistributiveOmit<React.ComponentPropsWithRef<RootComponent>, keyof TypeMap['props']>;

View File

@@ -0,0 +1 @@
export {};

View File

@@ -0,0 +1,3 @@
type ItemComparer<Item> = (a: Item, b: Item) => boolean;
declare function areArraysEqual<Item>(array1: ReadonlyArray<Item>, array2: ReadonlyArray<Item>, itemComparer?: ItemComparer<Item>): boolean;
export default areArraysEqual;

View File

@@ -0,0 +1,4 @@
function areArraysEqual(array1, array2, itemComparer = (a, b) => a === b) {
return array1.length === array2.length && array1.every((value, index) => itemComparer(value, array2[index]));
}
export default areArraysEqual;

View File

@@ -0,0 +1,3 @@
import capitalize from '@mui/utils/capitalize';
export default capitalize;

View File

@@ -0,0 +1,2 @@
import capitalize from '@mui/utils/capitalize';
export default capitalize;

View File

@@ -0,0 +1,3 @@
import createChainedFunction from '@mui/utils/createChainedFunction';
export default createChainedFunction;

View File

@@ -0,0 +1,2 @@
import createChainedFunction from '@mui/utils/createChainedFunction';
export default createChainedFunction;

View File

@@ -0,0 +1,3 @@
import SvgIcon from '@mui/material/SvgIcon';
export default function createSvgIcon(path: React.ReactNode, displayName: string): typeof SvgIcon;

View File

@@ -0,0 +1,27 @@
'use client';
import _extends from "@babel/runtime/helpers/esm/extends";
import * as React from 'react';
import SvgIcon from '../SvgIcon';
/**
* Private module reserved for @mui packages.
*/
import { jsx as _jsx } from "react/jsx-runtime";
export default function createSvgIcon(path, displayName) {
function Component(props, ref) {
return /*#__PURE__*/_jsx(SvgIcon, _extends({
"data-testid": `${displayName}Icon`,
ref: ref
}, props, {
children: path
}));
}
if (process.env.NODE_ENV !== 'production') {
// Need to set `displayName` on the inner component for React.memo.
// React prior to 16.14 ignores `displayName` on the wrapper.
Component.displayName = `${displayName}Icon`;
}
Component.muiName = SvgIcon.muiName;
return /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(Component));
}

View File

@@ -0,0 +1,3 @@
import debounce from '@mui/utils/debounce';
export default debounce;

View File

@@ -0,0 +1,2 @@
import debounce from '@mui/utils/debounce';
export default debounce;

View File

@@ -0,0 +1,3 @@
import deprecatedPropType from '@mui/utils/deprecatedPropType';
export default deprecatedPropType;

View File

@@ -0,0 +1,2 @@
import deprecatedPropType from '@mui/utils/deprecatedPropType';
export default deprecatedPropType;

View File

@@ -0,0 +1,2 @@
import getScrollbarSize from '@mui/utils/getScrollbarSize';
export default getScrollbarSize;

View File

@@ -0,0 +1,2 @@
import getScrollbarSize from '@mui/utils/getScrollbarSize';
export default getScrollbarSize;

19
frontend/node_modules/@mui/material/utils/index.d.ts generated vendored Normal file
View File

@@ -0,0 +1,19 @@
export { unstable_ClassNameGenerator } from '@mui/utils';
export { default as capitalize } from './capitalize';
export { default as createChainedFunction } from './createChainedFunction';
export { default as createSvgIcon } from './createSvgIcon';
export { default as debounce } from './debounce';
export { default as deprecatedPropType } from './deprecatedPropType';
export { default as isMuiElement } from './isMuiElement';
export { default as ownerDocument } from './ownerDocument';
export { default as ownerWindow } from './ownerWindow';
export { default as requirePropFactory } from './requirePropFactory';
export { default as setRef } from './setRef';
export { default as unstable_useEnhancedEffect } from './useEnhancedEffect';
export { default as unstable_useId } from './useId';
export { default as unsupportedProp } from './unsupportedProp';
export { default as useControlled } from './useControlled';
export { default as useEventCallback } from './useEventCallback';
export { default as useForkRef } from './useForkRef';
export { default as useIsFocusVisible } from './useIsFocusVisible';
export * from './types';

30
frontend/node_modules/@mui/material/utils/index.js generated vendored Normal file
View File

@@ -0,0 +1,30 @@
'use client';
import { unstable_ClassNameGenerator as ClassNameGenerator } from '@mui/utils';
export { default as capitalize } from './capitalize';
export { default as createChainedFunction } from './createChainedFunction';
export { default as createSvgIcon } from './createSvgIcon';
export { default as debounce } from './debounce';
export { default as deprecatedPropType } from './deprecatedPropType';
export { default as isMuiElement } from './isMuiElement';
export { default as ownerDocument } from './ownerDocument';
export { default as ownerWindow } from './ownerWindow';
export { default as requirePropFactory } from './requirePropFactory';
export { default as setRef } from './setRef';
export { default as unstable_useEnhancedEffect } from './useEnhancedEffect';
export { default as unstable_useId } from './useId';
export { default as unsupportedProp } from './unsupportedProp';
export { default as useControlled } from './useControlled';
export { default as useEventCallback } from './useEventCallback';
export { default as useForkRef } from './useForkRef';
export { default as useIsFocusVisible } from './useIsFocusVisible';
// TODO: remove this export once ClassNameGenerator is stable
// eslint-disable-next-line @typescript-eslint/naming-convention
export const unstable_ClassNameGenerator = {
configure: generator => {
if (process.env.NODE_ENV !== 'production') {
console.warn(['MUI: `ClassNameGenerator` import from `@mui/material/utils` is outdated and might cause unexpected issues.', '', "You should use `import { unstable_ClassNameGenerator } from '@mui/material/className'` instead", '', 'The detail of the issue: https://github.com/mui/material-ui/issues/30011#issuecomment-1024993401', '', 'The updated documentation: https://mui.com/guides/classname-generator/'].join('\n'));
}
ClassNameGenerator.configure(generator);
}
};

View File

@@ -0,0 +1,3 @@
import isMuiElement from '@mui/utils/isMuiElement';
export default isMuiElement;

View File

@@ -0,0 +1,2 @@
import isMuiElement from '@mui/utils/isMuiElement';
export default isMuiElement;

View File

@@ -0,0 +1,2 @@
import ownerDocument from '@mui/utils/ownerDocument';
export default ownerDocument;

View File

@@ -0,0 +1,2 @@
import ownerDocument from '@mui/utils/ownerDocument';
export default ownerDocument;

View File

@@ -0,0 +1,2 @@
import ownerWindow from '@mui/utils/ownerWindow';
export default ownerWindow;

View File

@@ -0,0 +1,2 @@
import ownerWindow from '@mui/utils/ownerWindow';
export default ownerWindow;

View File

@@ -0,0 +1,6 @@
{
"sideEffects": false,
"module": "./index.js",
"main": "../node/utils/index.js",
"types": "./index.d.ts"
}

View File

@@ -0,0 +1,3 @@
import requirePropFactory from '@mui/utils/requirePropFactory';
export default requirePropFactory;

View File

@@ -0,0 +1,2 @@
import requirePropFactory from '@mui/utils/requirePropFactory';
export default requirePropFactory;

View File

@@ -0,0 +1 @@
export { unstable_detectScrollType as detectScrollType, unstable_getNormalizedScrollLeft as getNormalizedScrollLeft } from '@mui/utils';

View File

@@ -0,0 +1,2 @@
import setRef from '@mui/utils/setRef';
export default setRef;

2
frontend/node_modules/@mui/material/utils/setRef.js generated vendored Normal file
View File

@@ -0,0 +1,2 @@
import setRef from '@mui/utils/setRef';
export default setRef;

View File

@@ -0,0 +1,5 @@
import isHostComponent from '@mui/utils/isHostComponent';
const shouldSpreadAdditionalProps = Slot => {
return !Slot || !isHostComponent(Slot);
};
export default shouldSpreadAdditionalProps;

27
frontend/node_modules/@mui/material/utils/types.d.ts generated vendored Normal file
View File

@@ -0,0 +1,27 @@
import { SxProps } from '@mui/system';
import { SlotComponentProps } from '@mui/utils';
export type { EventHandlers, WithOptionalOwnerState, SlotComponentProps, SlotComponentPropsWithSlotState, } from '@mui/utils';
export type SlotCommonProps = {
component?: React.ElementType;
sx?: SxProps;
};
export type SlotProps<TSlotComponent extends React.ElementType, TOverrides, TOwnerState> = SlotComponentProps<TSlotComponent, SlotCommonProps & TOverrides, TOwnerState>;
/**
* Use the keys of `Slots` to make sure that K contains all of the keys
*
* @example CreateSlotsAndSlotProps<{ root: React.ElementType, decorator: React.ElementType }, { root: ..., decorator: ... }>
*/
export type CreateSlotsAndSlotProps<Slots, K extends Record<keyof Slots, any>> = {
/**
* The components used for each slot inside.
* @default {}
*/
slots?: Slots;
/**
* The props used for each slot inside.
* @default {}
*/
slotProps?: {
[P in keyof K]?: K[P];
};
};

1
frontend/node_modules/@mui/material/utils/types.js generated vendored Normal file
View File

@@ -0,0 +1 @@
export {};

View File

@@ -0,0 +1,3 @@
import unsupportedProp from '@mui/utils/unsupportedProp';
export default unsupportedProp;

View File

@@ -0,0 +1,2 @@
import unsupportedProp from '@mui/utils/unsupportedProp';
export default unsupportedProp;

View File

@@ -0,0 +1,3 @@
import useControlled from '@mui/utils/useControlled';
export default useControlled;

View File

@@ -0,0 +1,4 @@
'use client';
import useControlled from '@mui/utils/useControlled';
export default useControlled;

View File

@@ -0,0 +1,3 @@
import useEnhancedEffect from '@mui/utils/useEnhancedEffect';
export default useEnhancedEffect;

View File

@@ -0,0 +1,4 @@
'use client';
import useEnhancedEffect from '@mui/utils/useEnhancedEffect';
export default useEnhancedEffect;

View File

@@ -0,0 +1,3 @@
import useEventCallback from '@mui/utils/useEventCallback';
export default useEventCallback;

View File

@@ -0,0 +1,4 @@
'use client';
import useEventCallback from '@mui/utils/useEventCallback';
export default useEventCallback;

View File

@@ -0,0 +1,3 @@
import useForkRef from '@mui/utils/useForkRef';
export default useForkRef;

View File

@@ -0,0 +1,4 @@
'use client';
import useForkRef from '@mui/utils/useForkRef';
export default useForkRef;

3
frontend/node_modules/@mui/material/utils/useId.d.ts generated vendored Normal file
View File

@@ -0,0 +1,3 @@
import useId from '@mui/utils/useId';
export default useId;

4
frontend/node_modules/@mui/material/utils/useId.js generated vendored Normal file
View File

@@ -0,0 +1,4 @@
'use client';
import useId from '@mui/utils/useId';
export default useId;

View File

@@ -0,0 +1,3 @@
import useIsFocusVisible from '@mui/utils/useIsFocusVisible';
export default useIsFocusVisible;

View File

@@ -0,0 +1,4 @@
'use client';
import useIsFocusVisible from '@mui/utils/useIsFocusVisible';
export default useIsFocusVisible;

84
frontend/node_modules/@mui/material/utils/useSlot.d.ts generated vendored Normal file
View File

@@ -0,0 +1,84 @@
import * as React from 'react';
import { ClassValue } from 'clsx';
export type WithCommonProps<T> = T & {
className?: string;
style?: React.CSSProperties;
ref?: React.Ref<any>;
};
type EventHandlers = Record<string, React.EventHandler<any>>;
type ExtractComponentProps<P> = P extends infer T | ((ownerState: any) => infer T) ? T : never;
/**
* An internal function to create a Material UI slot.
*
* This is an advanced version of Base UI `useSlotProps` because Material UI allows leaf component to be customized via `component` prop
* while Base UI does not need to support leaf component customization.
*
* @param {string} name: name of the slot
* @param {object} parameters
* @returns {[Slot, slotProps]} The slot's React component and the slot's props
*
* Note: the returned slot's props
* - will never contain `component` prop.
* - might contain `as` prop.
*/
export default function useSlot<T extends string, ElementType extends React.ElementType, SlotProps, OwnerState extends {}, ExternalSlotProps extends {
component?: React.ElementType;
ref?: React.Ref<any>;
}, ExternalForwardedProps extends {
component?: React.ElementType;
slots?: {
[k in T]?: React.ElementType;
};
slotProps?: {
[k in T]?: ExternalSlotProps | ((ownerState: OwnerState) => ExternalSlotProps);
};
}, AdditionalProps, SlotOwnerState extends {}>(
/**
* The slot's name. All Material UI components should have `root` slot.
*
* If the name is `root`, the logic behaves differently from other slots,
* e.g. the `externalForwardedProps` are spread to `root` slot but not other slots.
*/
name: T, parameters: (T extends 'root' ? {
ref: React.ForwardedRef<any>;
} : {
ref?: React.ForwardedRef<any>;
}) & {
/**
* The slot's className
*/
className: ClassValue | ClassValue[];
/**
* The slot's default styled-component
*/
elementType: ElementType;
/**
* The component's ownerState
*/
ownerState: OwnerState;
/**
* The `other` props from the consumer. It has to contain `component`, `slots`, and `slotProps`.
* The function will use those props to calculate the final rendered element and the returned props.
*
* If the slot is not `root`, the rest of the `externalForwardedProps` are neglected.
*/
externalForwardedProps: ExternalForwardedProps;
getSlotProps?: (other: EventHandlers) => WithCommonProps<SlotProps>;
additionalProps?: WithCommonProps<AdditionalProps>;
/**
* For overriding the component's ownerState for the slot.
* This is required for some components that need styling via `ownerState`.
*
* It is a function because `slotProps.{slot}` can be a function which has to be resolved first.
*/
getSlotOwnerState?: (mergedProps: AdditionalProps & SlotProps & ExternalSlotProps & ExtractComponentProps<Exclude<Exclude<ExternalForwardedProps['slotProps'], undefined>[T], undefined>>) => SlotOwnerState;
/**
* props forward to `T` only if the `slotProps.*.component` is not provided.
* e.g. Autocomplete's listbox uses Popper + StyledComponent
*/
internalForwardedProps?: any;
}): [ElementType, {
className: string;
ownerState: OwnerState & SlotOwnerState;
} & AdditionalProps & SlotProps & ExternalSlotProps & ExtractComponentProps<Exclude<Exclude<ExternalForwardedProps["slotProps"], undefined>[T], undefined>>];
export {};

84
frontend/node_modules/@mui/material/utils/useSlot.js generated vendored Normal file
View File

@@ -0,0 +1,84 @@
'use client';
import _extends from "@babel/runtime/helpers/esm/extends";
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
const _excluded = ["className", "elementType", "ownerState", "externalForwardedProps", "getSlotOwnerState", "internalForwardedProps"],
_excluded2 = ["component", "slots", "slotProps"],
_excluded3 = ["component"];
import useForkRef from '@mui/utils/useForkRef';
import appendOwnerState from '@mui/utils/appendOwnerState';
import resolveComponentProps from '@mui/utils/resolveComponentProps';
import mergeSlotProps from '@mui/utils/mergeSlotProps';
/**
* An internal function to create a Material UI slot.
*
* This is an advanced version of Base UI `useSlotProps` because Material UI allows leaf component to be customized via `component` prop
* while Base UI does not need to support leaf component customization.
*
* @param {string} name: name of the slot
* @param {object} parameters
* @returns {[Slot, slotProps]} The slot's React component and the slot's props
*
* Note: the returned slot's props
* - will never contain `component` prop.
* - might contain `as` prop.
*/
export default function useSlot(
/**
* The slot's name. All Material UI components should have `root` slot.
*
* If the name is `root`, the logic behaves differently from other slots,
* e.g. the `externalForwardedProps` are spread to `root` slot but not other slots.
*/
name, parameters) {
const {
className,
elementType: initialElementType,
ownerState,
externalForwardedProps,
getSlotOwnerState,
internalForwardedProps
} = parameters,
useSlotPropsParams = _objectWithoutPropertiesLoose(parameters, _excluded);
const {
component: rootComponent,
slots = {
[name]: undefined
},
slotProps = {
[name]: undefined
}
} = externalForwardedProps,
other = _objectWithoutPropertiesLoose(externalForwardedProps, _excluded2);
const elementType = slots[name] || initialElementType;
// `slotProps[name]` can be a callback that receives the component's ownerState.
// `resolvedComponentsProps` is always a plain object.
const resolvedComponentsProps = resolveComponentProps(slotProps[name], ownerState);
const _mergeSlotProps = mergeSlotProps(_extends({
className
}, useSlotPropsParams, {
externalForwardedProps: name === 'root' ? other : undefined,
externalSlotProps: resolvedComponentsProps
})),
{
props: {
component: slotComponent
},
internalRef
} = _mergeSlotProps,
mergedProps = _objectWithoutPropertiesLoose(_mergeSlotProps.props, _excluded3);
const ref = useForkRef(internalRef, resolvedComponentsProps == null ? void 0 : resolvedComponentsProps.ref, parameters.ref);
const slotOwnerState = getSlotOwnerState ? getSlotOwnerState(mergedProps) : {};
const finalOwnerState = _extends({}, ownerState, slotOwnerState);
const LeafComponent = name === 'root' ? slotComponent || rootComponent : slotComponent;
const props = appendOwnerState(elementType, _extends({}, name === 'root' && !rootComponent && !slots[name] && internalForwardedProps, name !== 'root' && !slots[name] && internalForwardedProps, mergedProps, LeafComponent && {
as: LeafComponent
}, {
ref
}), finalOwnerState);
Object.keys(slotOwnerState).forEach(propName => {
delete props[propName];
});
return [elementType, props];
}