{
  "version": 3,
  "sources": ["../../src/modules/wallet/components/MaxAccounts/MaxAccountsTableRow.tsx", "../../src/modules/wallet/components/MaxAccounts/OutOfBoundsSnackBar.tsx", "../../src/modules/wallet/components/SeedPhrase/_shared/SeedPhraseIconButton.tsx", "../../src/modules/wallet/components/SeedPhrase/DefaultSeedPhrase.tsx", "../../src/modules/wallet/components/SeedPhrase/dialog/components/DialogActionButtons.tsx", "../../src/modules/wallet/contexts/SeedPhrase/Context.ts", "../../src/modules/wallet/contexts/SeedPhrase/Provider.tsx", "../../src/modules/wallet/contexts/SeedPhrase/use.ts", "../../src/modules/wallet/contexts/Wallet/Context.ts", "../../src/modules/wallet/contexts/Wallet/Provider.tsx", "../../src/modules/wallet/contexts/Wallet/use.ts", "../../src/modules/wallet/components/SeedPhrase/dialog/components/fields/NewPhraseTextField.tsx", "../../src/modules/wallet/components/SeedPhrase/dialog/components/fields/validation-messages/colorParser.ts", "../../src/modules/wallet/components/SeedPhrase/dialog/components/fields/validation-messages/InvalidPhrase.tsx", "../../src/modules/wallet/components/SeedPhrase/dialog/components/fields/validation-messages/PhraseHeaderBox.tsx", "../../src/modules/wallet/components/SeedPhrase/dialog/components/fields/PhraseDialogActions.tsx", "../../src/modules/wallet/components/SeedPhrase/dialog/components/fields/SavedPhraseTextField.tsx", "../../src/modules/wallet/components/SeedPhrase/dialog/components/OverwriteWarning.tsx", "../../src/modules/wallet/components/SeedPhrase/dialog/SeedPhraseDialog.tsx", "../../src/modules/wallet/components/SeedPhrase/settings/SeedPhraseTableRow.tsx", "../../src/modules/wallet/components/WalletAccountDetails/WalletAccountDetails.tsx", "../../src/modules/wallet/hooks/useAccount.ts", "../../src/modules/wallet/hooks/useWallet.ts", "../../src/modules/wallet/hooks/useWallets.ts", "../../src/modules/wallet/hooks/useWrapperAccount.ts", "../../src/modules/wallet/components/WalletAccountSelect/Select.tsx", "../../src/modules/wallet/components/WalletAccountSelect/RenderedMenuItem.tsx", "../../src/modules/wallet/components/WalletAccountSelect/SelectBar.tsx"],
  "sourcesContent": ["import { ButtonEx } from '@ariestools/sdk-react/button'\nimport type { TableRowProps } from '@mui/material'\nimport {\n  ButtonGroup, TableCell, TableRow, Typography,\n} from '@mui/material'\nimport React, { useState } from 'react'\n\nimport { OutOfBoundsSnackBar } from './OutOfBoundsSnackBar.tsx'\n\n/**\n * Props for {@link MaxAccountsTableRow}.\n * @public\n */\nexport interface MaxAccountsTableRow extends TableRowProps {\n  activeAccountIndex?: number\n  changeMaxAccounts?: (maxAccounts: number) => void\n  maxAccounts?: number\n}\n\n/**\n * Settings table row for increasing or decreasing the maximum account count.\n * @public\n */\nexport const MaxAccountsTableRow: React.FC<MaxAccountsTableRow> = ({\n  activeAccountIndex, changeMaxAccounts, maxAccounts,\n}) => {\n  const [desiredMaximumAccounts, setDesiredMaximumAccounts] = useState<number | undefined>()\n  const [showSnackBar, setShowSnackBar] = useState(false)\n\n  const handleChangeMaxAccounts = (change: 'increase' | 'decrease') => {\n    if (maxAccounts !== undefined && activeAccountIndex !== undefined) {\n      switch (change) {\n        case 'decrease': {\n          const desiredMaximumAccounts = maxAccounts - 1\n          const validMaximumAccounts = desiredMaximumAccounts > 0\n          const maxAccountsWithinRange = activeAccountIndex + 1 <= desiredMaximumAccounts\n          if (validMaximumAccounts && maxAccountsWithinRange) {\n            changeMaxAccounts?.(desiredMaximumAccounts)\n          }\n          if (!maxAccountsWithinRange) setShowSnackBar(true)\n          setDesiredMaximumAccounts(desiredMaximumAccounts)\n          return\n        }\n        case 'increase': {\n          changeMaxAccounts?.(maxAccounts + 1)\n          return\n        }\n        default: {\n          console.error(change, 'is not a recognized value')\n        }\n      }\n    } else {\n      throw new Error('Max Accounts is unset and needs a default')\n    }\n  }\n\n  return (\n    <TableRow>\n      <TableCell>Maximum Accounts</TableCell>\n      <TableCell align=\"center\">\n        <Typography variant=\"caption\">{maxAccounts}</Typography>\n      </TableCell>\n      <TableCell align=\"center\">\n        <ButtonGroup>\n          <ButtonEx onClick={() => handleChangeMaxAccounts('decrease')} variant=\"contained\" size=\"small\">\n            -\n          </ButtonEx>\n          <ButtonEx onClick={() => handleChangeMaxAccounts('increase')} variant=\"contained\" size=\"small\">\n            +\n          </ButtonEx>\n        </ButtonGroup>\n        <OutOfBoundsSnackBar\n          desiredMaximumAccounts={desiredMaximumAccounts}\n          activeAccountIndex={activeAccountIndex}\n          setShowSnackBar={setShowSnackBar}\n          showSnackBar={showSnackBar}\n        />\n      </TableCell>\n    </TableRow>\n  )\n}\n", "import type { SnackbarProps } from '@mui/material'\nimport {\n  Alert, AlertTitle, Snackbar,\n} from '@mui/material'\nimport type { Dispatch, SetStateAction } from 'react'\nimport React from 'react'\n\n/**\n * Props for {@link OutOfBoundsSnackBar}.\n * @public\n */\nexport interface OutOfBoundsSnackBarProps extends SnackbarProps {\n  activeAccountIndex?: number\n  desiredMaximumAccounts?: number\n  setShowSnackBar?: Dispatch<SetStateAction<boolean>>\n  showSnackBar?: boolean\n}\n\n/**\n * Snackbar warning when max accounts would exclude the active account index.\n * @public\n */\nexport const OutOfBoundsSnackBar: React.FC<OutOfBoundsSnackBarProps> = ({\n  activeAccountIndex,\n  desiredMaximumAccounts,\n  setShowSnackBar,\n  showSnackBar,\n}) => {\n  return (\n    <Snackbar\n      anchorOrigin={{ horizontal: 'center', vertical: 'top' }}\n      autoHideDuration={5000}\n      onClose={() => setShowSnackBar?.(false)}\n      open={showSnackBar}\n    >\n      <Alert severity=\"error\" onClose={() => setShowSnackBar?.(false)}>\n        <AlertTitle>Maximum Accounts Error</AlertTitle>\n        Your currently selected account number (\n        {activeAccountIndex === undefined ? '' : activeAccountIndex + 1}\n        ) cannot be greater than the desired\n        Maximum Accounts (\n        {desiredMaximumAccounts}\n        ).\n      </Alert>\n    </Snackbar>\n  )\n}\n", "import { HelpOutlined as HelpOutlineIcon } from '@mui/icons-material'\nimport type { IconButtonProps } from '@mui/material'\nimport {\n  Button,\n  Dialog,\n  DialogActions,\n  DialogContent,\n  DialogTitle,\n  IconButton,\n  Link,\n  List,\n  ListItem,\n  Typography,\n} from '@mui/material'\nimport React, { useState } from 'react'\n\n/**\n * Help icon button that explains seed phrase safety and BIP-39 requirements.\n * @internal\n */\nexport const SeedPhraseIconButton: React.FC<IconButtonProps> = (props) => {\n  const [open, setOpen] = useState(false)\n  const onClose = () => setOpen(false)\n  return (\n    <>\n      <IconButton onClick={() => setOpen(true)} {...props}>\n        <HelpOutlineIcon fontSize=\"small\" />\n      </IconButton>\n      <Dialog open={open}>\n        <DialogTitle>Understanding your Seed Phrase</DialogTitle>\n        <DialogContent>\n          <Typography>\n            Your Seed Phrase should adhere to the\n            {' '}\n            <Link target=\"_blank\" href=\"https://github.com/bitcoin/bips/blob/master/bip-0039.mediawiki\">\n              bip39 specification\n            </Link>\n            {' '}\n            and is used to generate accounts which identify your data on the XYO Network.\n          </Typography>\n          <List>\n            <ListItem>Do not share this phrase with anyone.</ListItem>\n            <ListItem>Do not save it to a public computer.</ListItem>\n            <ListItem>Do not use a existing phrase from another wallet (i.e. Metamask).</ListItem>\n            <ListItem>Do not use before copying it down somewhere safe.</ListItem>\n          </List>\n        </DialogContent>\n        <DialogActions>\n          <Button onClick={onClose} variant=\"outlined\">\n            OK\n          </Button>\n        </DialogActions>\n      </Dialog>\n    </>\n  )\n}\n", "import {\n  Alert, AlertTitle, Snackbar,\n} from '@mui/material'\nimport { generateMnemonic } from '@scure/bip39'\nimport { wordlist } from '@scure/bip39/wordlists/english.js'\nimport type { PropsWithChildren } from 'react'\nimport React, { useState } from 'react'\n\n/**\n * Props for {@link DefaultSeedPhrase}.\n * @public\n */\nexport interface DefaultSeedPhraseProps extends PropsWithChildren {\n  changeSeedPhrase?: (seedPhrase: string) => void\n  hideDefaultSeedPhraseMessage?: boolean\n  seedPhrase?: string\n}\n\n/**\n * Generates a default BIP-39 seed phrase when none is stored and notifies the user.\n * @public\n */\nexport const DefaultSeedPhrase: React.FC<DefaultSeedPhraseProps> = ({\n  changeSeedPhrase, children, hideDefaultSeedPhraseMessage, seedPhrase,\n}) => {\n  const [showSnackBar, setShowSnackBar] = useState(false)\n  const [generated, setGenerated] = useState(false)\n  // generate only when the phrase is hydrated and empty ('' is the app-settings\n  // default when nothing is stored); undefined/null means not yet hydrated, and an\n  // existing phrase must never be replaced\n  if (!generated && seedPhrase === '') {\n    setGenerated(true)\n    const mnemonic = generateMnemonic(wordlist, 256)\n    changeSeedPhrase?.(mnemonic)\n    setShowSnackBar(true)\n  }\n\n  return (\n    <>\n      {hideDefaultSeedPhraseMessage\n        ? null\n        : (\n            <Snackbar\n              open={showSnackBar}\n              autoHideDuration={5000}\n              onClose={() => setShowSnackBar(false)}\n              anchorOrigin={{ horizontal: 'center', vertical: 'top' }}\n            >\n              <Alert severity=\"success\">\n                <AlertTitle>Default Seed Phrase Generated</AlertTitle>\n                Go to application settings to save it.\n              </Alert>\n            </Snackbar>\n          )}\n      {children}\n    </>\n  )\n}\n", "import type { DialogActionsProps, DialogProps } from '@mui/material'\nimport { Button, DialogActions } from '@mui/material'\nimport type { MouseEvent } from 'react'\nimport React from 'react'\n\nimport { useSeedPhrase } from '../../../../contexts/index.ts'\n\n/**\n * Props for {@link DialogActionButtons}.\n * @public\n */\nexport interface DialogActionButtonsProps extends DialogActionsProps {\n  onClose?: DialogProps['onClose']\n}\n\n/**\n * Cancel and save actions for the seed phrase dialog.\n * @public\n */\nexport const DialogActionButtons: React.FC<DialogActionButtonsProps> = ({ onClose, ...props }) => {\n  const { handleSave, setPhrase } = useSeedPhrase()\n\n  const wrappedOnClose = (e: MouseEvent<HTMLElement>) => {\n    // clear local copy of phrase when modal closes\n    setPhrase?.('')\n    onClose?.(e, 'escapeKeyDown')\n  }\n\n  return (\n    <DialogActions {...props}>\n      <Button variant=\"outlined\" onClick={wrappedOnClose}>\n        Cancel\n      </Button>\n      <Button type=\"submit\" variant=\"contained\" onClick={handleSave}>\n        Save\n      </Button>\n    </DialogActions>\n  )\n}\n", "import { createContextEx } from '@ariestools/sdk-react/shared'\n\nimport type { SeedPhraseContextState } from './State.ts'\n\n/**\n * React context for seed phrase editing and validation state.\n * @public\n */\nexport const SeedPhraseContext = createContextEx<SeedPhraseContextState>()\n", "import { useResetState } from '@ariestools/sdk-react/hooks'\nimport { generateMnemonic, validateMnemonic } from '@scure/bip39'\nimport { wordlist } from '@scure/bip39/wordlists/english.js'\nimport type { PropsWithChildren } from 'react'\nimport React, {\n  useCallback, useEffect, useMemo, useState,\n} from 'react'\n\nimport { SeedPhraseContext } from './Context.ts'\nimport type { SeedPhraseContextState } from './State.ts'\n\n/**\n * Props for {@link SeedPhraseProvider}.\n * @public\n */\nexport interface SeedPhraseProviderProps extends PropsWithChildren {\n  defaultPhrase?: string\n  handleChangeSeedPhrase?: (phrase: string) => void\n  open?: boolean\n  saveCallback?: () => void\n  seedPhrase?: string\n}\n\nconst validate = (passedPhrase?: string) => {\n  if (!passedPhrase) {\n    return null\n  }\n  return validateMnemonic(passedPhrase, wordlist)\n}\n\n/**\n * Provides seed phrase draft, validation, generate/clear/save handlers to descendants.\n * @public\n */\nexport const SeedPhraseProvider: React.FC<SeedPhraseProviderProps> = ({\n  children,\n  defaultPhrase,\n  handleChangeSeedPhrase,\n  saveCallback,\n  seedPhrase,\n  open,\n}) => {\n  const [phrase, setPhrase] = useResetState<string | undefined>(defaultPhrase)\n  const [overwriteWarning, setOverwriteWarning] = useState(false)\n\n  useEffect(() => {\n    if (seedPhrase || open) {\n      setPhrase?.(seedPhrase ?? '')\n    }\n  }, [seedPhrase, open, setPhrase])\n\n  const handleGenerate = useCallback(() => {\n    const mnemonic = generateMnemonic(wordlist, 256)\n    setPhrase?.(mnemonic)\n    setOverwriteWarning?.(false)\n  }, [setPhrase])\n\n  const handleCancelOverwrite = useCallback(() => {\n    // eslint-disable-next-line react-x/set-state-in-effect\n    setOverwriteWarning(false)\n  }, [setOverwriteWarning])\n\n  const handleClear = useCallback(() => {\n    setPhrase('')\n    setOverwriteWarning(false)\n  }, [setPhrase, setOverwriteWarning])\n\n  const handleSave = useCallback(() => {\n    if (!overwriteWarning && seedPhrase && seedPhrase !== phrase) {\n      setOverwriteWarning?.(true)\n    } else {\n      handleChangeSeedPhrase?.(phrase ?? '')\n      saveCallback?.()\n    }\n  }, [handleChangeSeedPhrase, overwriteWarning, phrase, saveCallback, seedPhrase])\n\n  useEffect(() => {\n    if (!open) {\n      // eslint-disable-next-line react-hooks/set-state-in-effect\n      handleCancelOverwrite()\n    }\n  }, [handleCancelOverwrite, open])\n\n  const validSeedPhrase = useMemo(() => validate?.(seedPhrase), [seedPhrase])\n  const validPhrase = useMemo(() => validate?.(phrase), [phrase])\n\n  const value: SeedPhraseContextState = useMemo(() => ({\n    handleCancelOverwrite,\n    handleChangeSeedPhrase,\n    handleClear,\n    handleGenerate,\n    handleSave,\n    overwriteWarning,\n    phrase,\n    provided: true as const,\n    seedPhrase,\n    setOverwriteWarning,\n    setPhrase,\n    validPhrase,\n    validSeedPhrase,\n    validate,\n  }), [handleCancelOverwrite, handleChangeSeedPhrase, handleClear, handleGenerate, handleSave, overwriteWarning, phrase, seedPhrase, setOverwriteWarning, setPhrase, validPhrase, validSeedPhrase])\n\n  return (\n    <SeedPhraseContext\n      value={value}\n    >\n      {children}\n    </SeedPhraseContext>\n  )\n}\n", "import { useContextEx } from '@ariestools/sdk-react/shared'\n\nimport { SeedPhraseContext } from './Context.ts'\n\n/**\n * Consumes seed phrase context state; throws if the provider is missing.\n * @returns The current seed phrase context state.\n * @public\n */\nexport const useSeedPhrase = () => useContextEx(SeedPhraseContext, 'SeedPhrase', true)\n", "import { createContextEx } from '@ariestools/sdk-react/shared'\n\nimport type { WalletContextState } from './State.ts'\n\n/**\n * React context holding the root wallet and active account selection.\n * @public\n */\nexport const WalletContext = createContextEx<WalletContextState>()\n", "import { useResetState } from '@ariestools/sdk-react/hooks'\nimport { usePromise } from '@ariestools/sdk-react/promise'\nimport type { WalletInstance } from '@xyo-network/sdk'\nimport type { PropsWithChildren } from 'react'\nimport React, { useMemo } from 'react'\n\nimport { WalletContext } from './Context.ts'\nimport type { WalletContextState } from './State.ts'\n\n/**\n * Props for {@link WalletProvider}.\n * @public\n */\nexport interface WalletProviderProps {\n  defaultActiveAccountIndex?: number\n  rootWallet?: WalletInstance | null\n}\n\n/**\n * Provides root wallet and active account index state to descendants.\n * @public\n */\nexport const WalletProvider: React.FC<PropsWithChildren<WalletProviderProps>> = ({\n  children,\n  defaultActiveAccountIndex = 0,\n  rootWallet = null,\n  ...props\n}) => {\n  const [activeAccountIndex, setActiveAccountIndex] = useResetState(defaultActiveAccountIndex)\n\n  const [activeAccount = null] = usePromise(async () => await rootWallet?.derivePath(activeAccountIndex.toString()), [activeAccountIndex, rootWallet])\n\n  const value: WalletContextState = useMemo(() => ({\n    activeAccount,\n    activeAccountIndex,\n    provided: true,\n    rootWallet,\n    setActiveAccountIndex,\n  }), [activeAccount,\n    activeAccountIndex,\n    rootWallet,\n    setActiveAccountIndex])\n\n  return (\n    <WalletContext\n      value={value}\n      {...props}\n    >\n      {children}\n    </WalletContext>\n  )\n}\n", "import { usePromise } from '@ariestools/sdk-react/promise'\nimport { useContextEx, useProvided } from '@ariestools/sdk-react/shared'\nimport type { WalletInstance } from '@xyo-network/sdk'\n\nimport { WalletContext } from './Context.ts'\n\n/**\n * Consumes wallet context state from {@link WalletContext}.\n * @param required - When true, throws if the provider is missing.\n * @returns The current wallet context state.\n * @public\n */\nexport const useWalletContext = (required = true) => {\n  return useContextEx(WalletContext, 'Wallet', required)\n}\n\n/**\n * Returns whether a {@link WalletProvider} is present in the tree.\n * @returns True when wallet context has been provided.\n * @public\n */\nexport const useWalletProvided = () => {\n  return useProvided(WalletContext)\n}\n\n/**\n * Returns the root wallet from wallet context.\n * @param required - When true, throws if the provider is missing.\n * @returns A tuple of the root wallet and error placeholder.\n * @public\n */\nexport const useRootWallet = (required = true): [WalletInstance | null | undefined, Error | undefined] => {\n  const { rootWallet } = useWalletContext(required)\n  return [rootWallet, undefined]\n}\n\n/**\n * Derives a wallet at the given account index from the root wallet context.\n * @param index - Account index path segment to derive.\n * @param required - When true, throws if the provider is missing.\n * @returns A tuple of the derived wallet and error placeholder.\n * @public\n */\nexport const useIndexedWalletFromContext = (index: number, required = true): [WalletInstance | null | undefined, Error | undefined] => {\n  const { rootWallet } = useWalletContext(required)\n  const [wallet] = usePromise(async () => (await rootWallet?.derivePath(index.toString())) ?? rootWallet, [rootWallet, index])\n  return [wallet, undefined]\n}\n\n/**\n * Returns the currently selected account wallet from context.\n * @param required - When true, throws if the provider is missing.\n * @returns A tuple of the selected account wallet and error placeholder.\n * @public\n */\nexport const useSelectedWalletAccount = (required = true): [WalletInstance | null | undefined, Error | undefined] => {\n  const { activeAccountIndex } = useWalletContext(required)\n  // we pass in 0 as default since we can not call the hook optionally,\n  // we resolve this false result by checking whether activeAccountIndex is defined before returning it\n  const [account] = useIndexedWalletFromContext(activeAccountIndex ?? 0, required)\n  return activeAccountIndex === undefined && account === null ? [null, undefined] : [account, undefined]\n}\n", "import type { StandardTextFieldProps } from '@mui/material'\nimport { FormControl, TextField } from '@mui/material'\nimport type { ReactNode } from 'react'\nimport React from 'react'\n\nimport { useSeedPhrase } from '../../../../../contexts/index.ts'\nimport { colorParser, InvalidPhraseTypography } from './validation-messages/index.ts'\n\n/**\n * Props for {@link NewPhraseTextField}.\n * @public\n */\nexport interface NewPhraseTextFieldProps extends StandardTextFieldProps {\n  children?: ReactNode\n  disableColor?: boolean\n}\n\n/**\n * Multiline text field for editing a new seed phrase with BIP-39 validation.\n * @public\n */\nexport const NewPhraseTextField: React.FC<NewPhraseTextFieldProps> = ({\n  children, disableColor, ...props\n}) => {\n  const {\n    phrase, setPhrase, validPhrase,\n  } = useSeedPhrase()\n  return (\n    <FormControl\n      fullWidth\n      size=\"small\"\n      sx={{\n        display: 'flex', flexDirection: 'column', rowGap: 1,\n      }}\n    >\n      {children}\n      <TextField\n        focused\n        error={validPhrase === false}\n        helperText={validPhrase === false ? <InvalidPhraseTypography /> : null}\n        fullWidth\n        maxRows={Number.POSITIVE_INFINITY}\n        multiline\n        onChange={e => setPhrase?.(e.target.value)}\n        value={phrase}\n        {...props}\n        sx={[{ color: disableColor ? undefined : colorParser(validPhrase) }, ...(Array.isArray(props.sx) ? props.sx : [props.sx])]}\n      />\n    </FormControl>\n  )\n}\n", "/**\n * Maps a boolean validation result to a MUI color token.\n * @param conditional - Validation result: true, false, or nullish.\n * @returns `'success'`, `'error'`, or undefined when unset.\n * @public\n */\nexport const colorParser = (conditional?: boolean | null) => {\n  switch (conditional) {\n    case true: {\n      return 'success'\n    }\n    case false: {\n      return 'error'\n    }\n    default: {\n      return\n    }\n  }\n}\n", "import type { TypographyProps } from '@mui/material'\nimport { Link, Typography } from '@mui/material'\nimport React from 'react'\n\n/**\n * Caption typography linking to BIP-39 when a seed phrase is invalid.\n * @public\n */\nexport const InvalidPhraseTypography: React.FC<TypographyProps> = props => (\n  <Typography variant=\"caption\" color=\"error\" {...props}>\n    Invalid seed phrase. See -\n    {' '}\n    <Link target=\"_blank\" href=\"https://github.com/bitcoin/bips/blob/master/bip-0039.mediawiki\">\n      bip39 Proposal\n    </Link>\n  </Typography>\n)\n", "import type { FlexBoxProps } from '@ariestools/sdk-react/flexbox'\nimport { FlexRow } from '@ariestools/sdk-react/flexbox'\nimport { CheckCircleOutlined as CheckCircleOutlineIcon, HighlightOff as HighlightOffIcon } from '@mui/icons-material'\nimport type { PropsWithChildren } from 'react'\nimport React, { useMemo } from 'react'\n\n/**\n * Props for {@link PhraseHeaderBox}.\n * @public\n */\nexport interface PhraseHeaderBoxProps extends FlexBoxProps, PropsWithChildren {\n  conditional?: boolean | null\n}\n\n/**\n * Phrase field header with success or error validation iconography.\n * @public\n */\nexport const PhraseHeaderBox: React.FC<PhraseHeaderBoxProps> = ({\n  children, conditional, ...props\n}) => {\n  const state = useMemo(() => {\n    switch (conditional) {\n      case true: {\n        return 'success'\n      }\n      case false: {\n        return 'error'\n      }\n      default: {\n        return null\n      }\n    }\n  }, [conditional])\n\n  const Icon = useMemo(() => {\n    switch (state) {\n      case 'success': {\n        return (\n          <CheckCircleOutlineIcon\n            sx={{\n              fontSize: 'small',\n              color: 'success',\n            }}\n          />\n        )\n      }\n      case 'error': {\n        return (\n          <HighlightOffIcon\n            sx={{\n              fontSize: 'small',\n              color: 'error',\n            }}\n          />\n        )\n      }\n      default: {\n        return null\n      }\n    }\n  }, [state])\n\n  return (\n    <FlexRow\n      {...props}\n      sx={[{\n        justifyContent: 'start',\n        columnGap: 1,\n      }, ...(Array.isArray(props.sx) ? props.sx : [props.sx])]}\n    >\n      {Icon}\n      {children}\n    </FlexRow>\n  )\n}\n", "import type { DialogActionsProps } from '@mui/material'\nimport { Button, DialogActions } from '@mui/material'\nimport React from 'react'\n\nimport { useSeedPhrase } from '../../../../../contexts/index.ts'\n\n/** Props for {@link PhraseDialogActions}. */\nexport interface PhraseDialogActionsProps extends DialogActionsProps {\n  hideClear?: boolean\n  hideGenerate?: boolean\n}\n\n/**\n * Generate and clear actions for the seed phrase dialog draft.\n * @public\n */\nexport const PhraseDialogActions: React.FC<PhraseDialogActionsProps> = ({\n  hideClear, hideGenerate, ...props\n}) => {\n  const {\n    handleClear, handleGenerate, overwriteWarning,\n  } = useSeedPhrase()\n  return (\n    <DialogActions sx={{ justifyContent: 'center' }} {...props}>\n      {hideGenerate\n        ? null\n        : (\n            <Button disabled={overwriteWarning} variant=\"contained\" onClick={handleGenerate}>\n              Generate\n            </Button>\n          )}\n      {hideClear\n        ? null\n        : (\n            <Button variant=\"outlined\" onClick={handleClear}>\n              Clear\n            </Button>\n\n          )}\n    </DialogActions>\n  )\n}\n", "import { FlexRow } from '@ariestools/sdk-react/flexbox'\nimport { ContentCopy } from '@mui/icons-material'\nimport type { StandardTextFieldProps } from '@mui/material'\nimport {\n  Chip, FormControl, FormLabel, IconButton, TextField,\n  Tooltip,\n  useTheme,\n} from '@mui/material'\nimport React, { useState } from 'react'\n\nimport { useSeedPhrase } from '../../../../../contexts/index.ts'\nimport { InvalidPhraseTypography, PhraseHeaderBox } from './validation-messages/index.ts'\n\n/**\n * Props for {@link SavedPhraseTextField}.\n * @public\n */\nexport interface SavedPhraseTextFieldProps extends StandardTextFieldProps {\n  fullWidth?: boolean\n  showCopyButton?: boolean\n  showPhraseHeader?: boolean\n  visible?: boolean\n}\n\n/**\n * Revealable read-only field for the currently saved seed phrase.\n * @public\n */\nexport const SavedPhraseTextField: React.FC<SavedPhraseTextFieldProps> = ({\n\n  fullWidth, showCopyButton, showPhraseHeader, visible: visibleProp, ...props\n}) => {\n  const { validSeedPhrase, seedPhrase } = useSeedPhrase()\n  const theme = useTheme()\n\n  const [visible, setVisible] = useState(visibleProp)\n\n  const [previousVisibleProp, setPreviousVisibleProp] = useState(visibleProp)\n  if (visibleProp !== previousVisibleProp) {\n    setPreviousVisibleProp(visibleProp)\n    setVisible(visibleProp)\n  }\n\n  const [copied, setCopied] = useState(false)\n  const onCopyPhrase = async () => {\n    if (seedPhrase) {\n      try {\n        await navigator.clipboard.writeText(seedPhrase)\n        setCopied(true)\n        setTimeout(() => setCopied(false), 2000)\n      } catch (e) {\n        console.error('Error copying resolvedSelectedAddress to clipboard', e)\n      }\n    }\n  }\n\n  return (\n    <FormControl\n      fullWidth={fullWidth}\n      size=\"small\"\n      sx={{\n        display: 'flex', flexDirection: 'column', rowGap: 1,\n      }}\n    >\n      <FlexRow sx={{ gap: 0.5 }}>\n        <Chip\n          label=\"Show Seed Phrase\"\n          onClick={() => setVisible(!visible)}\n          // Margin is set to 2px to match the Copy Button size and remove jumping during animation\n          sx={{ alignSelf: 'center', my: '2px' }}\n        />\n        <Tooltip title={copied ? 'Copied!' : 'Copy'}>\n          <IconButton\n            onClick={() => void onCopyPhrase()}\n            sx={{\n              height: visible ? 'auto' : 0,\n              opacity: visible ? 1 : 0,\n              overflow: 'hidden',\n              padding: visible ? theme.spacing(1) : 0,\n              transition: 'all .25s ease-in-out',\n              width: visible ? 'max-content' : 0,\n            }}\n          >\n            <ContentCopy sx={{ fontSize: 'small' }} />\n          </IconButton>\n        </Tooltip>\n      </FlexRow>\n      {visible && showPhraseHeader\n        ? (\n            <FormLabel>\n              <PhraseHeaderBox conditional={validSeedPhrase}>Saved Seed Phrase</PhraseHeaderBox>\n            </FormLabel>\n          )\n        : null}\n      <TextField\n        defaultValue={seedPhrase}\n        disabled\n        error={validSeedPhrase === false}\n        helperText={validSeedPhrase === false ? <InvalidPhraseTypography /> : null}\n        fullWidth\n        maxRows={Number.POSITIVE_INFINITY}\n        multiline\n        slotProps={{\n          input: {\n            style: {\n              height: visible ? 'auto' : '0',\n              overflow: 'hidden',\n              opacity: visible ? 1 : 0,\n              padding: visible ? theme.spacing(1) : 0,\n              transition: 'all .25s ease-in-out',\n            },\n          },\n        }}\n        {...props}\n      />\n    </FormControl>\n  )\n}\n", "import { FlexRow } from '@ariestools/sdk-react/flexbox'\nimport { Alert, Button } from '@mui/material'\nimport React from 'react'\n\nimport { useSeedPhrase } from '../../../../contexts/index.ts'\n\n/**\n * Warning alert confirming overwrite of an existing seed phrase.\n * @public\n */\nexport const OverwriteWarning = () => {\n  const { handleCancelOverwrite, handleSave } = useSeedPhrase()\n  return (\n    <Alert\n      variant=\"outlined\"\n      severity=\"warning\"\n      action={(\n        <FlexRow sx={{ columnGap: 1 }}>\n          <Button\n            variant=\"outlined\"\n            size=\"small\"\n            onClick={handleSave}\n            sx={{ color: 'inherit' }}\n          >\n            Overwrite\n          </Button>\n          <Button\n            variant=\"outlined\"\n            size=\"small\"\n            onClick={handleCancelOverwrite}\n            sx={{ color: 'inherit' }}\n          >\n            Cancel\n          </Button>\n        </FlexRow>\n      )}\n    >\n      Are you sure you want to overwrite existing seed phrase? This action cannot be undone.\n    </Alert>\n  )\n}\n", "import type { DialogProps } from '@mui/material'\nimport {\n  Dialog, DialogContent, DialogTitle, FormLabel,\n} from '@mui/material'\nimport type { ReactNode } from 'react'\nimport React from 'react'\n\nimport { SeedPhraseProvider, useSeedPhrase } from '../../../contexts/index.ts'\nimport { SeedPhraseIconButton } from '../_shared/index.ts'\nimport {\n  DialogActionButtons,\n  NewPhraseTextField,\n  OverwriteWarning,\n  PhraseDialogActions,\n  PhraseHeaderBox,\n  SavedPhraseTextField,\n} from './components/index.ts'\n\n/**\n * Props for {@link SeedPhraseDialog}.\n * @public\n */\nexport interface SeedPhraseDialogProps extends DialogProps {\n  changeSeedPhrase?: (value: string) => void\n  dialogTitle?: ReactNode\n  seedPhrase?: string\n  seedPhraseTextFieldTitle?: ReactNode\n  showCopyButton?: boolean\n}\n\n/**\n * Dialog for viewing and updating a BIP-39 seed phrase, with provider wiring.\n * @public\n */\nexport const SeedPhraseDialog: React.FC<SeedPhraseDialogProps> = ({\n  changeSeedPhrase, dialogTitle = 'Update Your Seed Phrase', seedPhrase, seedPhraseTextFieldTitle = 'New Seed Phrase', ...props\n}) => {\n  return (\n    <SeedPhraseProvider\n      seedPhrase={seedPhrase}\n      handleChangeSeedPhrase={changeSeedPhrase}\n      open={props.open}\n      saveCallback={() => props.onClose?.({}, 'escapeKeyDown')}\n    >\n      <SeedPhraseDialogInner dialogTitle={dialogTitle} seedPhraseTextFieldTitle={seedPhraseTextFieldTitle} {...props} />\n    </SeedPhraseProvider>\n  )\n}\n\n/**\n * Inner seed phrase dialog UI that consumes {@link SeedPhraseContext}.\n * @public\n */\nexport const SeedPhraseDialogInner: React.FC<SeedPhraseDialogProps> = ({\n  dialogTitle, seedPhraseTextFieldTitle, showCopyButton, ...props\n}) => {\n  const {\n    overwriteWarning, seedPhrase, validPhrase,\n  } = useSeedPhrase()\n\n  return (\n    <Dialog\n      aria-labelledby=\"alert-dialog-title\"\n      aria-describedby=\"alert-dialog-description\"\n      fullWidth\n      {...props}\n      sx={[{ maxWidth: 'sm' }, ...(Array.isArray(props.sx) ? props.sx : [props.sx])]}\n    >\n      <DialogTitle\n        id=\"alert-dialog-title\"\n        sx={{\n          alignItems: 'center', display: 'inline-flex', flexDirection: 'row',\n        }}\n      >\n        {dialogTitle}\n        <SeedPhraseIconButton />\n      </DialogTitle>\n      <DialogContent sx={{\n        display: 'flex', flexDirection: 'column', rowGap: 2,\n      }}\n      >\n\n        <NewPhraseTextField>\n          <FormLabel>\n            <PhraseHeaderBox conditional={validPhrase}>{seedPhraseTextFieldTitle}</PhraseHeaderBox>\n          </FormLabel>\n        </NewPhraseTextField>\n        <PhraseDialogActions />\n        {seedPhrase\n          ? <SavedPhraseTextField showCopyButton={showCopyButton} />\n          : null}\n        {overwriteWarning\n          ? <OverwriteWarning />\n          : null}\n      </DialogContent>\n      <DialogActionButtons onClose={props.onClose} />\n    </Dialog>\n  )\n}\n", "import { Cancel as CancelIcon, RadioButtonChecked as RadioButtonCheckedIcon } from '@mui/icons-material'\nimport type { TableRowProps } from '@mui/material'\nimport {\n  Button, ButtonGroup, TableCell, TableRow,\n} from '@mui/material'\nimport React, { useState } from 'react'\n\nimport { SeedPhraseIconButton } from '../_shared/index.ts'\nimport { SeedPhraseDialog } from '../dialog/index.ts'\n\n/**\n * Props for {@link SeedPhraseTableRow}.\n * @public\n */\nexport interface SeedPhraseTableRowProps extends TableRowProps {\n  changeSeedPhrase?: (seedPhrase: string) => void\n  seedPhrase?: string\n}\n\n/**\n * Settings table row showing seed phrase status and an update dialog trigger.\n * @public\n */\nexport const SeedPhraseTableRow: React.FC<SeedPhraseTableRowProps> = ({\n  changeSeedPhrase, seedPhrase, ...props\n}) => {\n  const [open, setOpen] = useState(false)\n\n  const handleOpen = () => {\n    setOpen(true)\n  }\n  return (\n    <TableRow {...props}>\n      <TableCell>\n        Seed Phrase\n        {' '}\n        <SeedPhraseIconButton />\n      </TableCell>\n      <TableCell align=\"center\">\n        {seedPhrase\n          ? <RadioButtonCheckedIcon color=\"success\" />\n          : <CancelIcon color=\"error\" />}\n      </TableCell>\n      <TableCell>\n        <SeedPhraseDialog changeSeedPhrase={changeSeedPhrase} open={open} onClose={() => setOpen(false)} seedPhrase={seedPhrase} />\n        <ButtonGroup fullWidth>\n          <Button variant=\"contained\" size=\"small\" onClick={handleOpen}>\n            Update\n          </Button>\n        </ButtonGroup>\n      </TableCell>\n    </TableRow>\n  )\n}\n", "import { EthAddressWrapper } from '@ariestools/eth-address'\nimport { EthAccountButton } from '@ariestools/sdk-react/crypto'\nimport type { FlexBoxProps } from '@ariestools/sdk-react/flexbox'\nimport { FlexCol, FlexRow } from '@ariestools/sdk-react/flexbox'\nimport { NumberStatus } from '@ariestools/sdk-react/number-status'\nimport type { WalletInstance } from '@xyo-network/sdk'\nimport React from 'react'\n\nimport { useNetwork } from '#network'\n\nimport { useAccount } from '../../hooks/index.ts'\n\n/**\n * Props for {@link WalletAccountDetails}.\n * @public\n */\nexport interface WalletAccountDetailsProps extends FlexBoxProps {\n  account?: WalletInstance\n  exploreUrl?: string\n}\n\n/**\n * Account summary with address button and explore links for tokens, NFTs, and signatures.\n * @public\n */\nexport const WalletAccountDetails: React.FC<WalletAccountDetailsProps> = ({\n  exploreUrl = 'https://explore.xyo.network', account, ...props\n}) => {\n  const [accountToUse] = useAccount({ account })\n  const { network } = useNetwork()\n  const exploreAddressUrl = `${exploreUrl}/recent?account=${accountToUse?.address}&network=${network?.name ?? 'main'}`\n\n  return (\n    <FlexCol {...props}>\n      <EthAccountButton address={EthAddressWrapper.fromString(accountToUse?.address)} />\n      <FlexRow sx={{ gap: 1 }}>\n        <NumberStatus rounded title=\"Tokens\" value={0} to={`${exploreAddressUrl}&schema=network.xyo.account.tokens`} target=\"_blank\" />\n        <NumberStatus rounded title=\"NFTs\" value={0} to={`${exploreAddressUrl}&schema=network.xyo.account.nfts`} target=\"_blank\" />\n        <NumberStatus rounded title=\"Signatures\" value={0} to={`${exploreAddressUrl}&schema=network.xyo.account.signatures`} target=\"_blank\" />\n        <NumberStatus rounded title=\"Signins\" value={0} to={`${exploreAddressUrl}&schema=network.xyo.account.signins`} target=\"_blank\" />\n      </FlexRow>\n    </FlexCol>\n  )\n}\n", "import { usePromise } from '@ariestools/sdk-react/promise'\nimport type { AccountInstance, WalletInstance } from '@xyo-network/sdk'\nimport { useState } from 'react'\n\nimport {\n  useRootWallet, useWalletContext, useWalletProvided,\n} from '../contexts/index.ts'\n\n/**\n * Parameters for {@link useAccount}.\n * @public\n */\nexport interface AccountHookParams {\n  account?: AccountInstance\n  index?: number\n  required?: boolean\n  wallet?: WalletInstance\n}\n\n/**\n * Resolves an account from an explicit account, wallet path, or active wallet context.\n * @param params - Optional account, wallet, index, and required flags.\n * @returns The resolved account (or null when context is empty) and any error.\n * @public\n */\nexport const useAccount = ({\n  wallet, account, index, required = false,\n}: AccountHookParams = {}): [\n  AccountInstance | null | undefined,\n  Error | undefined,\n] => {\n  const walletContextProvided = useWalletProvided()\n  const [validationError, setValidationError] = useState<Error>()\n  if (wallet && account && !validationError) {\n    setValidationError(new Error('useAccount can not have both a wallet and an account in the parameters'))\n  }\n\n  if (index && account && !validationError) {\n    setValidationError(new Error('useAccount can not have both a index and an account in the parameters'))\n  }\n\n  const [error, setError] = useState<Error>()\n  const [rootWallet] = useRootWallet(!wallet && required)\n  const { activeAccountIndex } = useWalletContext(false)\n  const [activeAccount] = usePromise(async () => {\n    try {\n      if (!validationError) {\n        if (wallet) {\n          const path = `${index ?? 0}'\\0`\n          return await wallet?.derivePath?.(path)\n        } else if (rootWallet) {\n          const path = `${index ?? activeAccountIndex ?? 0}'\\/0`\n          return await rootWallet?.derivePath?.(path)\n        }\n      }\n    } catch (ex) {\n      const error = ex as Error\n      console.error(error.message)\n      setError(error)\n    }\n  }, [index, wallet, rootWallet, activeAccountIndex, validationError])\n  if (validationError && !error) {\n    console.error(validationError.message)\n    setError(validationError)\n  }\n\n  return [\n    error\n      ? undefined\n      : (account ?? activeAccount ?? walletContextProvided)\n          ? null\n          : undefined,\n    error,\n  ]\n}\n", "import { usePromise } from '@ariestools/sdk-react/promise'\nimport type { WalletInstance } from '@xyo-network/sdk'\nimport { HDWallet } from '@xyo-network/sdk'\nimport { useState } from 'react'\n\nimport { useSelectedWalletAccount, useWalletContext } from '../contexts/index.ts'\n\n/**\n * Parameters for {@link useWallet}.\n * @public\n */\nexport interface WalletHookParams {\n  mnemonic?: string\n  path?: string\n  required?: boolean\n  seed?: ArrayBufferLike | string\n  wallet?: WalletInstance | null\n}\n\n/**\n * Resolves a wallet from an instance, mnemonic, seed, or wallet context, optionally deriving a path.\n * @param params - Wallet source options and optional derivation path.\n * @returns The resolved wallet (or null when context is empty) and any error.\n * @public\n */\nexport const useWallet = ({\n  mnemonic, wallet, path, required = false, seed,\n}: WalletHookParams = {}): [\n  WalletInstance | null | undefined,\n  Error | undefined,\n] => {\n  const walletContextProvided = useWalletContext(false)\n  const [error, setError] = useState<Error>()\n  const [contextAccount] = useSelectedWalletAccount(!wallet && required)\n  const [activeAccount] = usePromise(async () => {\n    try {\n      const newAccount = await (() => {\n        if (wallet) {\n          return wallet\n        } else if (mnemonic) {\n          return HDWallet.fromPhrase(mnemonic)\n        } else if (seed) {\n          return HDWallet.fromSeed(seed)\n        }\n        return contextAccount\n      })()\n\n      return path ? newAccount?.derivePath?.(path) : (newAccount ?? wallet)\n    } catch (ex) {\n      setError(ex as Error)\n    }\n  }, [mnemonic, contextAccount, seed, path, wallet])\n  return [activeAccount ?? (walletContextProvided ? null : activeAccount), error]\n}\n", "import { usePromise } from '@ariestools/sdk-react/promise'\nimport type { WalletInstance } from '@xyo-network/sdk'\n\nimport { useWalletContext } from '../contexts/index.ts'\nimport { useWallet } from './useWallet.ts'\n\n/**\n * Parameters for {@link useWallets}.\n * @public\n */\nexport interface WalletsHookParams {\n  paths: string[]\n  wallet?: WalletInstance | null\n}\n\n/**\n * Derives wallet instances for each HD path from a wallet or wallet context.\n * @param params - Wallet source and derivation paths.\n * @returns Derived wallets (or null when context is empty) and any error.\n * @public\n */\nexport const useWallets = ({ wallet, paths }: WalletsHookParams): [WalletInstance[] | null | undefined, Error | undefined] => {\n  const walletContextProvided = useWalletContext(false)\n  const [foundWallet] = useWallet({ wallet })\n  const [wallets, error] = usePromise(\n    async () => (foundWallet ? await Promise.all(paths.map(path => foundWallet.derivePath(path))) : undefined),\n    [foundWallet, paths],\n  )\n  return [wallets ?? (walletContextProvided ? null : wallets), error]\n}\n", "import type { UsePromiseState } from '@ariestools/sdk-react/promise'\nimport { usePromise } from '@ariestools/sdk-react/promise'\nimport type { AccountInstance, WalletInstance } from '@xyo-network/sdk'\nimport { HDWallet } from '@xyo-network/sdk'\nimport { Mutex } from 'async-mutex'\n\nlet globalWrapperWallet: WalletInstance | undefined\nconst globalWrapperWalletMutex = new Mutex()\n\n/**\n * Returns the provided account or a shared random HD wallet used as a wrapper account.\n * @param account - Optional account override; when defined, it is returned as-is.\n * @returns The account, error, and promise state from wallet creation.\n * @public\n */\nexport const useWrapperAccount = (\n  account?: AccountInstance | null,\n): [AccountInstance | null | undefined, Error | undefined, UsePromiseState | undefined] => {\n  return usePromise(async () => {\n    return await globalWrapperWalletMutex.runExclusive(async () => {\n      // if we are expecting to receive a wallet or did receive on, return the override account\n      if (account !== undefined) {\n        return account\n      }\n\n      if (globalWrapperWallet) {\n        return globalWrapperWallet\n      }\n\n      try {\n        globalWrapperWallet = await HDWallet.random()\n        console.log(`Global Wrapper Wallet Creation Success: ${globalWrapperWallet.address}`)\n      } catch (ex) {\n        const error = ex as Error\n        console.error(`Global Wrapper Wallet Creation Failed: ${error.message}`)\n      }\n      return globalWrapperWallet\n    })\n  }, [account])\n}\n", "import { SelectEx } from '@ariestools/sdk-react/select'\nimport type { SelectProps } from '@mui/material'\nimport { CircularProgress } from '@mui/material'\nimport React from 'react'\n\nimport type { AddressRenderRowBoxProps } from '#address-render'\n\nimport { useWalletContext } from '../../contexts/index.ts'\nimport { RenderedAccountMenuItem, RenderedAccountRow } from './RenderedMenuItem.tsx'\n\ntype SharedAddressRenderRowBoxProps = Pick<AddressRenderRowBoxProps, 'iconOnly' | 'iconSize' | 'icons' | 'showFavorite'>\n\n/**\n * Props for {@link WalletAccountSelect}.\n * @public\n */\nexport type WalletAccountSelectProps = SharedAddressRenderRowBoxProps\n  & Omit<SelectProps<number>, 'variant'>\n  & Partial<SelectProps<number>> & {\n    addressNames?: Record<string, string | undefined>\n    maxAccounts?: number\n  }\n\nconst arrayRange = (length: number, start = 0) => {\n  return [...Array.from({ length }).keys()].map(x => x + start)\n}\n\n/**\n * Select control for choosing the active HD wallet account index.\n * @public\n */\nexport const WalletAccountSelect: React.FC<WalletAccountSelectProps> = ({\n  addressNames,\n  iconOnly,\n  iconSize = 24,\n  icons,\n  maxAccounts = 1,\n  showFavorite = false,\n  size,\n  variant = 'outlined',\n  ...props\n}) => {\n  const {\n    activeAccountIndex, setActiveAccountIndex, rootWallet,\n  } = useWalletContext()\n  const disabled = !rootWallet || activeAccountIndex === undefined\n\n  return (\n    <>\n      {rootWallet\n        ? (\n            <SelectEx\n              margin=\"dense\"\n              disabled={disabled}\n              renderValue={(selectedAccountIndex) => {\n                // The closed-select display renders outside the Menu/MenuList, so it\n                // must not use a MenuItem (MUI v9 throws `MenuListContext is missing`).\n                return (\n                  <RenderedAccountRow\n                    addressNames={addressNames}\n                    iconOnly={iconOnly}\n                    iconSize={iconSize}\n                    icons={icons}\n                    rootWallet={rootWallet}\n                    selectedAccountIndex={selectedAccountIndex}\n                    showFavorite={showFavorite}\n                  />\n                )\n              }}\n              value={activeAccountIndex === undefined ? '' : activeAccountIndex}\n              onChange={event => setActiveAccountIndex?.(Number.parseInt(`${event.target.value}`))}\n              size={size}\n              variant={variant}\n              {...props}\n            >\n              {rootWallet && arrayRange(maxAccounts).map(index => (\n                <RenderedAccountMenuItem\n                  key={index}\n                  addressNames={addressNames}\n                  iconOnly={iconOnly}\n                  iconSize={iconSize}\n                  icons={icons}\n                  rootWallet={rootWallet}\n                  selectedAccountIndex={index}\n                  showFavorite={showFavorite}\n                />\n              ))}\n            </SelectEx>\n          )\n        : <CircularProgress size={24} />}\n    </>\n  )\n}\n", "import { MenuItem, type MenuItemProps } from '@mui/material'\nimport type { WalletInstance } from '@xyo-network/sdk'\nimport React from 'react'\n\nimport { AddressRenderRowBox } from '#address-render'\n\nimport { useWallet } from '../../hooks/index.ts'\n\n/**\n * Props for {@link RenderedAccountRow}.\n * @public\n */\nexport interface RenderedAccountRowProps {\n  addressNames?: Record<string, string | undefined>\n  iconOnly?: boolean\n  iconSize?: number\n  icons?: boolean\n  rootWallet: WalletInstance\n  selectedAccountIndex?: number\n  showFavorite?: boolean\n}\n\n/**\n * Props for {@link RenderedAccountMenuItem}.\n * @public\n */\nexport interface RenderedAccountMenuItemProps extends MenuItemProps, RenderedAccountRowProps {}\n\n/**\n * Account row content (icon + address/name) with no `MenuItem` wrapper.\n * Safe to render outside a `Menu`/`MenuList` \u2014 e.g. as a `Select`'s\n * `renderValue` display. MUI v9 throws (`MenuListContext is missing`) when a\n * bare `MenuItem` renders outside a menu context, so the closed-display path\n * must use this rather than {@link RenderedAccountMenuItem}.\n * @public\n */\nexport const RenderedAccountRow: React.FC<RenderedAccountRowProps> = ({\n  selectedAccountIndex,\n  rootWallet,\n  addressNames,\n  iconOnly,\n  iconSize,\n  icons,\n  showFavorite,\n}) => {\n  const [selectedAccount] = useWallet({ path: selectedAccountIndex?.toString(), wallet: rootWallet })\n  const customName = selectedAccount ? addressNames?.[selectedAccount.address] : undefined\n  const favorite = !!selectedAccount && selectedAccount.address in (addressNames ?? {})\n  return (\n    <AddressRenderRowBox\n      disableSharedRef={true}\n      address={selectedAccount?.address}\n      iconOnly={iconOnly}\n      iconSize={iconSize}\n      icons={icons}\n      name={customName}\n      favorite={favorite}\n      showFavorite={showFavorite}\n      sx={{ flexGrow: 1 }}\n    />\n  )\n}\n\n/**\n * Menu item wrapping {@link RenderedAccountRow} for open select lists.\n * @public\n */\nexport const RenderedAccountMenuItem: React.FC<RenderedAccountMenuItemProps> = ({\n  selectedAccountIndex,\n  rootWallet,\n  addressNames,\n  iconOnly,\n  iconSize,\n  icons,\n  showFavorite,\n  ...props\n}) => {\n  return (\n    <MenuItem\n      value={selectedAccountIndex}\n      sx={{\n        minHeight: 0, paddingBottom: 0, paddingTop: 0,\n      }}\n      {...props}\n    >\n      <RenderedAccountRow\n        addressNames={addressNames}\n        iconOnly={iconOnly}\n        iconSize={iconSize}\n        icons={icons}\n        rootWallet={rootWallet}\n        selectedAccountIndex={selectedAccountIndex}\n        showFavorite={showFavorite}\n      />\n    </MenuItem>\n  )\n}\n", "import type { FlexBoxProps } from '@ariestools/sdk-react/flexbox'\nimport { FlexCol } from '@ariestools/sdk-react/flexbox'\nimport React from 'react'\n\nimport { WalletAccountSelect } from './Select.tsx'\n\n/**\n * Props for {@link WalletAccountSelectBar}.\n * @public\n */\nexport interface WalletAccountSelectBarProps extends FlexBoxProps {\n  addressNames?: Record<string, string | undefined>\n  iconOnly?: boolean\n  iconSize?: number\n  icons?: boolean\n  maxAccounts?: number\n  showFavorite?: boolean\n  size?: 'small' | 'medium'\n}\n\n/**\n * Full-width bar wrapping {@link WalletAccountSelect} for toolbar layouts.\n * @public\n */\nexport const WalletAccountSelectBar: React.FC<WalletAccountSelectBarProps> = ({\n  addressNames,\n  iconOnly,\n  iconSize,\n  icons,\n  maxAccounts = 1,\n  showFavorite = false,\n  size = 'small',\n  ...props\n}) => {\n  return (\n    <FlexCol\n      {...props}\n      sx={[{ alignItems: 'stretch' }, ...(Array.isArray(props.sx) ? props.sx : [props.sx])]}\n    >\n      <WalletAccountSelect\n        addressNames={addressNames}\n        fullWidth\n        showFavorite={showFavorite}\n        iconSize={iconSize}\n        iconOnly={iconOnly}\n        icons={icons}\n        maxAccounts={maxAccounts}\n        size={size ?? 'small'}\n        variant=\"outlined\"\n      />\n    </FlexCol>\n  )\n}\n"],
  "mappings": "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",
  "names": ["jsx", "jsxs", "desiredMaximumAccounts", "Typography", "useState", "jsx", "jsxs", "Alert", "AlertTitle", "Snackbar", "useState", "Fragment", "jsx", "jsxs", "Button", "DialogActions", "generateMnemonic", "wordlist", "useState", "jsx", "wordlist", "useState", "generateMnemonic", "createContextEx", "useResetState", "useMemo", "jsx", "useResetState", "useMemo", "usePromise", "useContextEx", "useContextEx", "usePromise", "jsx", "jsxs", "DialogActions", "Button", "Link", "Typography", "jsx", "jsxs", "useMemo", "jsx", "jsxs", "jsx", "jsxs", "Button", "DialogActions", "jsx", "jsxs", "DialogActions", "Button", "FlexRow", "FormControl", "IconButton", "TextField", "useState", "jsx", "jsxs", "useState", "FormControl", "FlexRow", "IconButton", "TextField", "FlexRow", "Alert", "Button", "jsx", "jsxs", "Alert", "FlexRow", "Button", "Dialog", "DialogContent", "DialogTitle", "FormLabel", "jsx", "jsxs", "Dialog", "DialogTitle", "DialogContent", "FormLabel", "Button", "ButtonGroup", "TableCell", "TableRow", "useState", "jsx", "jsxs", "useState", "TableRow", "TableCell", "ButtonGroup", "Button", "FlexRow", "usePromise", "useState", "useState", "usePromise", "error", "usePromise", "useState", "useState", "usePromise", "usePromise", "usePromise", "usePromise", "HDWallet", "jsx", "jsxs", "FlexRow", "jsx", "Fragment", "jsx", "FlexCol", "jsx", "FlexCol"]
}
