diff --git a/.mise.toml b/.mise.toml index 7d4afb460..b49796d69 100644 --- a/.mise.toml +++ b/.mise.toml @@ -38,11 +38,11 @@ run = "yarn clean-all" [tasks.ops] description = "Start ops frontend development server" -run = "cd apps/private/ops && yarn start" +run = "yarn start ops" [tasks.ops-minikube] description = "Start ops frontend connected to minikube" -run = "cd apps/private/ops && yarn start:minikube" +run = "VITE_PROXY_TARGET=http://app.minikube.local yarn start ops" [tasks.gql-codegen] description = "Generate GraphQL code" diff --git a/package.json b/package.json index 8408d55cb..a854f268b 100644 --- a/package.json +++ b/package.json @@ -26,6 +26,7 @@ "lint:fix": "turbo run lint:fix", "package:checks": "turbo run package:checks", "release": "turbo build && changeset publish", + "start:minikube": "VITE_PROXY_TARGET=http://app.minikube.local yarn start", "start:prod": "VITE_PROXY_TARGET=https://app.lightspark.com yarn start", "preview": "turbo run preview", "start": "./start.sh", diff --git a/packages/core/src/utils/currency.ts b/packages/core/src/utils/currency.ts index 12e3c88f5..f7160e608 100644 --- a/packages/core/src/utils/currency.ts +++ b/packages/core/src/utils/currency.ts @@ -921,6 +921,7 @@ export function formatCurrencyStr( CurrencyUnit.EUR, CurrencyUnit.GBP, CurrencyUnit.INR, + CurrencyUnit.BRL, ] as string[]; /* centCurrencies are always provided in the smallest unit, e.g. cents for USD. These should be * divided by 100 for proper display format: */ diff --git a/packages/ui/src/components/Table/Table.tsx b/packages/ui/src/components/Table/Table.tsx index 441b8c60a..436218a7d 100644 --- a/packages/ui/src/components/Table/Table.tsx +++ b/packages/ui/src/components/Table/Table.tsx @@ -117,7 +117,7 @@ export type TableProps> = { loading?: boolean; onClickRow?: ( row: Row, - ) => { link?: string; to?: NewRoutesType; params: RouteParams } | void; + ) => { link?: string; to?: NewRoutesType; params?: RouteParams } | void; emptyState?: ReactNode; clipboardCallbacks?: Parameters[0] | undefined; rowHoverEffect?: "border" | "background" | "none" | undefined; diff --git a/packages/ui/src/components/TextInput.tsx b/packages/ui/src/components/TextInput.tsx index 2faa10d8e..9e5eadbb9 100644 --- a/packages/ui/src/components/TextInput.tsx +++ b/packages/ui/src/components/TextInput.tsx @@ -161,6 +161,7 @@ export type TextInputProps = { width?: "full" | "short" | undefined; paddingX?: number; paddingY?: number; + subTextPaddingX?: number | undefined; marginTop?: number | undefined; // Outline that appears outside/offset when the input is focused activeOutline?: boolean; @@ -425,6 +426,7 @@ export function TextInput(textInputProps: TextInputProps) { tooltipId={hintTooltipId} hideNonErrorsIfBlurred={props.hideNonErrorsIfBlurred} focused={focused} + subTextPaddingX={props.subTextPaddingX} /> {props.hintTooltip ? ( diff --git a/packages/ui/src/hooks/useFields.tsx b/packages/ui/src/hooks/useFields.tsx index b8d4ce6ac..db9b67552 100644 --- a/packages/ui/src/hooks/useFields.tsx +++ b/packages/ui/src/hooks/useFields.tsx @@ -3,7 +3,7 @@ import { diff } from "deep-object-diff"; import { isObject } from "lodash-es"; import { useCallback, useEffect, useMemo, useRef, useState } from "react"; -type ValidatorFn = ( +export type ValidatorFn = ( value: string, fields?: Fields, // eslint-disable-line @typescript-eslint/no-explicit-any ) => string | false; diff --git a/packages/ui/src/icons/central/CookieCute.tsx b/packages/ui/src/icons/central/CookieCute.tsx new file mode 100644 index 000000000..c8ef4446b --- /dev/null +++ b/packages/ui/src/icons/central/CookieCute.tsx @@ -0,0 +1,213 @@ +import { type PathProps } from "../types.js"; + +export function CookieCute({ + strokeWidth = "0.512942", + strokeLinecap = "round", + strokeLinejoin = "round", +}: PathProps) { + return ( + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ); +} diff --git a/packages/ui/src/icons/central/index.tsx b/packages/ui/src/icons/central/index.tsx index 8a169994d..830e5b014 100644 --- a/packages/ui/src/icons/central/index.tsx +++ b/packages/ui/src/icons/central/index.tsx @@ -52,6 +52,7 @@ export { CircleX as CentralCircleX } from "./CircleX.js"; export { Clipboard2 as CentralClipboard2 } from "./Clipboard2.js"; export { Clock as CentralClock } from "./Clock.js"; export { Contacts as CentralContacts } from "./Contacts.js"; +export { CookieCute as CentralCookieCute } from "./CookieCute.js"; export { CrossLarge as CentralCrossLarge } from "./CrossLarge.js"; export { CrossSmall as CentralCrossSmall } from "./CrossSmall.js"; export { CryptoWallet as CentralCryptoWallet } from "./CryptoWallet.js"; diff --git a/packages/ui/src/styles/fields.tsx b/packages/ui/src/styles/fields.tsx index e438c76ee..8d2e282d0 100644 --- a/packages/ui/src/styles/fields.tsx +++ b/packages/ui/src/styles/fields.tsx @@ -273,6 +273,7 @@ export function InputSubtext({ tooltipId, hideNonErrorsIfBlurred = false, focused = false, + subTextPaddingX, }: { text?: string | ToReactNodesArgs | undefined; content?: ReactNode | undefined; @@ -281,6 +282,7 @@ export function InputSubtext({ tooltipId?: string | undefined; hideNonErrorsIfBlurred?: boolean | undefined; focused?: boolean | undefined; + subTextPaddingX?: number | undefined; }) { const timeoutRef = useRef | null>(null); const [subtext, setSubtext] = useState(text); @@ -308,6 +310,7 @@ export function InputSubtext({ hasSuccess={hasSuccess} cursorPointer={Boolean(tooltipId)} usingContent={content !== undefined} + subTextPaddingX={subTextPaddingX} > {tooltipId ? ( @@ -344,6 +347,7 @@ export const StyledInputSubtext = styled.div<{ visible: boolean; cursorPointer: boolean; usingContent?: boolean; + subTextPaddingX?: number | undefined; }>` margin-top: ${({ visible }) => (visible ? "8px" : "0px")}; margin-left: ${({ visible, usingContent }) => @@ -359,6 +363,13 @@ export const StyledInputSubtext = styled.div<{ color: ${({ hasError, hasSuccess, theme }) => hasError ? theme.danger : hasSuccess ? theme.success : theme.text}; cursor: ${({ cursorPointer }) => (cursorPointer ? "pointer" : "auto")}; + ${({ subTextPaddingX }) => + subTextPaddingX + ? ` + padding-left: ${subTextPaddingX}px; + padding-right: ${subTextPaddingX}px; + ` + : ""}; `; export const labelStyle = ({ diff --git a/packages/ui/src/styles/themes.tsx b/packages/ui/src/styles/themes.tsx index d2516c323..8b34de430 100644 --- a/packages/ui/src/styles/themes.tsx +++ b/packages/ui/src/styles/themes.tsx @@ -736,7 +736,7 @@ const bridgeDarkTheme = extend(darkTheme, { const nageBaseSettings = { secondary: colors["gray-500"], - tertiary: colors["gray-400"], + tertiary: colors.gray6, mcNeutral: colors.grayBlue43, success: colors.green37, typography: getTypography(TypographyGroup.Nage, {