comparison x/static/js/7902.f48e3002.chunk.js.map @ 127:fbabf7498471 draft

planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/jbrowse2 commit 116b1a4bbd62251ad552306df2dc8aa8f46c6721
author fubar
date Mon, 07 Oct 2024 02:11:55 +0000
parents 49f3d3878413
children
comparison
equal deleted inserted replaced
126:fd0fc6fdc7c5 127:fbabf7498471
1 {"version":3,"file":"static/js/7902.f48e3002.chunk.js","mappings":"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","sources":["../../../node_modules/@mui/icons-material/esm/InfoOutlined.js","../../../plugins/data-management/src/PluginStoreWidget/components/InstalledPlugin.tsx","../../../plugins/data-management/src/PluginStoreWidget/components/InstalledPluginsList.tsx","../../../node_modules/@mui/icons-material/esm/Person.js","../../../plugins/data-management/src/PluginStoreWidget/components/PluginCard.tsx","../../../plugins/data-management/src/PluginStoreWidget/components/PluginStoreWidget.tsx","../../../plugins/data-management/src/PluginStoreWidget/components/util.ts","../../../node_modules/@mui/icons-material/esm/Check.js","../../../node_modules/@mui/icons-material/esm/ExpandMore.js","../../../node_modules/@mui/icons-material/esm/Lock.js","../../../node_modules/@mui/material/AccordionSummary/accordionSummaryClasses.js","../../../node_modules/@mui/material/AccordionSummary/AccordionSummary.js","../../../node_modules/@mui/material/Card/Card.js","../../../node_modules/@mui/material/Card/cardClasses.js","../../../node_modules/@mui/material/CardActions/CardActions.js","../../../node_modules/@mui/material/CardActions/cardActionsClasses.js","../../../node_modules/@mui/material/CardContent/CardContent.js","../../../node_modules/@mui/material/CardContent/cardContentClasses.js","../../../node_modules/@mui/material/Link/getTextDecoration.js","../../../node_modules/@mui/material/Link/Link.js","../../../node_modules/@mui/material/Link/linkClasses.js","../../../node_modules/@mui/material/ListItem/ListItem.js","../../../node_modules/@mui/material/ListItem/listItemClasses.js","../../../node_modules/@mui/material/ListItemButton/listItemButtonClasses.js","../../../node_modules/@mui/material/ListItemSecondaryAction/ListItemSecondaryAction.js","../../../node_modules/@mui/material/ListItemSecondaryAction/listItemSecondaryActionClasses.js"],"sourcesContent":["\"use client\";\n\nimport createSvgIcon from './utils/createSvgIcon';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon( /*#__PURE__*/_jsx(\"path\", {\n d: \"M11 7h2v2h-2zm0 4h2v6h-2zm1-9C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2m0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8\"\n}), 'InfoOutlined');","import React, { Suspense, lazy, useState } from 'react'\nimport { observer } from 'mobx-react'\nimport { IconButton, ListItem, Tooltip, Typography } from '@mui/material'\nimport { makeStyles } from 'tss-react/mui'\n\nimport CloseIcon from '@mui/icons-material/Close'\nimport LockIcon from '@mui/icons-material/Lock'\n\nimport { getEnv, getSession } from '@jbrowse/core/util'\nimport {\n BasePlugin,\n isSessionWithSessionPlugins,\n} from '@jbrowse/core/util/types'\n\n// locals\nimport { PluginStoreModel } from '../model'\n\n// lazies\nconst DeletePluginDialog = lazy(() => import('./DeletePluginDialog'))\n\nconst useStyles = makeStyles()(() => ({\n lockedPluginTooltip: {\n marginRight: '0.5rem',\n },\n}))\n\nfunction LockedPlugin() {\n const { classes } = useStyles()\n return (\n <Tooltip\n className={classes.lockedPluginTooltip}\n title=\"This plugin was installed by an administrator, you cannot remove it.\"\n >\n <LockIcon />\n </Tooltip>\n )\n}\n\nconst InstalledPlugin = observer(function ({\n plugin,\n model,\n}: {\n plugin: BasePlugin\n model: PluginStoreModel\n}) {\n const [dialogPlugin, setDialogPlugin] = useState<string>()\n const { pluginManager } = getEnv(model)\n const session = getSession(model)\n const { jbrowse, adminMode } = session\n const isSessionPlugin = isSessionWithSessionPlugins(session)\n ? session.sessionPlugins.some(\n p => pluginManager.pluginMetadata[plugin.name]?.url === p.url,\n )\n : false\n\n return (\n <>\n {dialogPlugin ? (\n <Suspense fallback={null}>\n <DeletePluginDialog\n plugin={dialogPlugin}\n onClose={name => {\n if (name) {\n const pluginMetadata = pluginManager.pluginMetadata[plugin.name]\n\n if (adminMode) {\n jbrowse.removePlugin(pluginMetadata)\n } else if (isSessionWithSessionPlugins(session)) {\n session.removeSessionPlugin(pluginMetadata)\n }\n }\n setDialogPlugin(undefined)\n }}\n />\n </Suspense>\n ) : null}\n <ListItem key={plugin.name}>\n {adminMode || isSessionPlugin ? (\n <IconButton\n data-testid={`removePlugin-${plugin.name}`}\n onClick={() => {\n setDialogPlugin(plugin.name)\n }}\n >\n <CloseIcon />\n </IconButton>\n ) : (\n <LockedPlugin />\n )}\n <Typography>{plugin.name}</Typography>\n </ListItem>\n </>\n )\n})\n\nexport default InstalledPlugin\n","import React from 'react'\nimport { observer } from 'mobx-react'\nimport { List, Typography } from '@mui/material'\nimport PluginManager from '@jbrowse/core/PluginManager'\n\n// locals\nimport { PluginStoreModel } from '../model'\nimport InstalledPlugin from './InstalledPlugin'\n\nconst InstalledPluginsList = observer(function InstalledPluginsList({\n pluginManager,\n model,\n}: {\n pluginManager: PluginManager\n model: PluginStoreModel\n}) {\n const { plugins } = pluginManager\n const { filterText } = model\n\n const externalPlugins = plugins.filter(\n p => !pluginManager.pluginMetadata[p.name]?.isCore,\n )\n\n return (\n <List>\n {externalPlugins.length > 0 ? (\n externalPlugins\n .filter(p => p.name.toLowerCase().includes(filterText.toLowerCase()))\n .map(p => <InstalledPlugin key={p.name} plugin={p} model={model} />)\n ) : (\n <Typography>No plugins currently installed</Typography>\n )}\n </List>\n )\n})\n\nexport default InstalledPluginsList\n","\"use client\";\n\nimport createSvgIcon from './utils/createSvgIcon';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon( /*#__PURE__*/_jsx(\"path\", {\n d: \"M12 12c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4m0 2c-2.67 0-8 1.34-8 4v2h16v-2c0-2.66-5.33-4-8-4\"\n}), 'Person');","import React, { useState } from 'react'\nimport { observer } from 'mobx-react'\nimport { getParent } from 'mobx-state-tree'\nimport { getSession, getEnv } from '@jbrowse/core/util'\nimport {\n JBrowsePlugin,\n isSessionWithSessionPlugins,\n} from '@jbrowse/core/util/types'\nimport {\n Card,\n CardActions,\n CardContent,\n Button,\n Link,\n Typography,\n} from '@mui/material'\nimport { makeStyles } from 'tss-react/mui'\n\n// icons\nimport PersonIcon from '@mui/icons-material/Person'\nimport AddIcon from '@mui/icons-material/Add'\nimport CheckIcon from '@mui/icons-material/Check'\n\n// locals\nimport { PluginStoreModel } from '../model'\n\nconst useStyles = makeStyles()({\n card: {\n margin: '0.5em',\n },\n icon: {\n marginLeft: '0.5em',\n marginRight: '0.5em',\n },\n bold: {\n fontWeight: 600,\n },\n dataField: {\n display: 'flex',\n alignItems: 'center',\n },\n})\n\nconst PluginCard = observer(function PluginCard({\n plugin,\n model,\n adminMode,\n}: {\n plugin: JBrowsePlugin\n model: PluginStoreModel\n adminMode: boolean\n}) {\n const { classes } = useStyles()\n const session = getSession(model)\n const { pluginManager } = getEnv(model)\n const { runtimePluginDefinitions } = pluginManager\n // @ts-expect-error\n const isInstalled = runtimePluginDefinitions.some(d => d.url === plugin.url)\n const [tempDisabled, setTempDisabled] = useState(false)\n const disableButton = isInstalled || tempDisabled\n\n const rootModel = getParent<any>(model, 3)\n const { jbrowse } = rootModel\n\n return (\n <Card variant=\"outlined\" key={plugin.name} className={classes.card}>\n <CardContent>\n <Typography variant=\"h5\">\n <Link\n href={`${plugin.location}#readme`}\n target=\"_blank\"\n rel=\"noopener\"\n >\n {plugin.name}\n </Link>\n </Typography>\n <div className={classes.dataField}>\n <PersonIcon style={{ marginRight: '0.5em' }} />\n <Typography>{plugin.authors.join(', ')}</Typography>\n </div>\n <Typography className={classes.bold}>Description:</Typography>\n <Typography>{plugin.description}</Typography>\n </CardContent>\n <CardActions>\n <Button\n variant=\"contained\"\n disabled={disableButton}\n startIcon={isInstalled ? <CheckIcon /> : <AddIcon />}\n onClick={() => {\n if (adminMode) {\n jbrowse.addPlugin({ name: plugin.name, url: plugin.url })\n } else if (isSessionWithSessionPlugins(session)) {\n session.addSessionPlugin(plugin)\n }\n setTempDisabled(true)\n }}\n >\n {isInstalled ? 'Installed' : 'Install'}\n </Button>\n </CardActions>\n </Card>\n )\n})\n\nexport default PluginCard\n","import React, { useState, lazy, Suspense } from 'react'\nimport {\n Accordion,\n AccordionSummary,\n Button,\n IconButton,\n InputAdornment,\n TextField,\n Typography,\n} from '@mui/material'\nimport { makeStyles } from 'tss-react/mui'\nimport { observer } from 'mobx-react'\nimport { getEnv } from 'mobx-state-tree'\nimport { LoadingEllipses } from '@jbrowse/core/ui'\nimport { getSession, isElectron } from '@jbrowse/core/util'\n\n// icons\nimport ExpandMoreIcon from '@mui/icons-material/ExpandMore'\nimport ClearIcon from '@mui/icons-material/Clear'\nimport InfoOutlinedIcon from '@mui/icons-material/InfoOutlined'\n\n// locals\nimport InstalledPluginsList from './InstalledPluginsList'\nimport PluginCard from './PluginCard'\nimport { PluginStoreModel } from '../model'\nimport { useFetchPlugins } from './util'\n\n// lazies\nconst AddCustomPluginDialog = lazy(() => import('./AddCustomPluginDialog'))\n\nconst useStyles = makeStyles()(theme => ({\n expandIcon: {\n color: theme.palette.tertiary.contrastText,\n },\n adminBadge: {\n borderRadius: 3,\n backgroundColor: theme.palette.quaternary.main,\n padding: '1em',\n display: 'flex',\n alignContent: 'center',\n },\n customPluginButton: {\n margin: '1em auto',\n display: 'flex',\n },\n}))\n\nconst PluginStoreWidget = observer(function ({\n model,\n}: {\n model: PluginStoreModel\n}) {\n const { classes } = useStyles()\n const { plugins, error } = useFetchPlugins()\n const [open, setOpen] = useState(false)\n const { adminMode } = getSession(model)\n const { pluginManager } = getEnv(model)\n\n return (\n <div>\n {adminMode && (\n <>\n {!isElectron && (\n <div className={classes.adminBadge}>\n <InfoOutlinedIcon style={{ marginRight: '0.3em' }} />\n <Typography>\n You are using the <code>admin-server</code>. Any changes you\n make will be saved to your configuration file. You also have the\n ability to add custom plugins that are not in the store.\n </Typography>\n </div>\n )}\n <Button\n className={classes.customPluginButton}\n variant=\"contained\"\n onClick={() => {\n setOpen(true)\n }}\n >\n Add custom plugin\n </Button>\n {open ? (\n <Suspense fallback={null}>\n <AddCustomPluginDialog\n onClose={() => {\n setOpen(false)\n }}\n model={model}\n />\n </Suspense>\n ) : null}\n </>\n )}\n <TextField\n label=\"Filter plugins\"\n value={model.filterText}\n onChange={event => {\n model.setFilterText(event.target.value)\n }}\n fullWidth\n InputProps={{\n endAdornment: (\n <InputAdornment position=\"end\">\n <IconButton\n onClick={() => {\n model.clearFilterText()\n }}\n >\n <ClearIcon />\n </IconButton>\n </InputAdornment>\n ),\n }}\n />\n <Accordion defaultExpanded>\n <AccordionSummary\n expandIcon={<ExpandMoreIcon className={classes.expandIcon} />}\n >\n <Typography variant=\"h5\">Installed plugins</Typography>\n </AccordionSummary>\n <div style={{ margin: '1em' }}>\n <InstalledPluginsList pluginManager={pluginManager} model={model} />\n </div>\n </Accordion>\n <Accordion defaultExpanded>\n <AccordionSummary\n expandIcon={<ExpandMoreIcon className={classes.expandIcon} />}\n >\n <Typography variant=\"h5\">Available plugins</Typography>\n </AccordionSummary>\n {error ? (\n <Typography color=\"error\">{`${error}`}</Typography>\n ) : plugins ? (\n plugins\n .filter(plugin => {\n // If plugin only has cjsUrl, don't display outside desktop\n return (\n !(isElectron && plugin.cjsUrl) &&\n plugin.name\n .toLowerCase()\n .includes(model.filterText.toLowerCase())\n )\n })\n .map(plugin => (\n <PluginCard\n key={plugin.name}\n plugin={plugin}\n model={model}\n adminMode={!!adminMode}\n />\n ))\n ) : (\n <LoadingEllipses />\n )}\n </Accordion>\n </div>\n )\n})\n\nexport default PluginStoreWidget\n","import { useState, useEffect } from 'react'\n\nimport { JBrowsePlugin } from '@jbrowse/core/util/types'\n\nexport function useFetchPlugins() {\n const [plugins, setPlugins] = useState<JBrowsePlugin[]>()\n const [error, setError] = useState<unknown>()\n useEffect(() => {\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n ;(async () => {\n try {\n const res = await fetch('https://jbrowse.org/plugin-store/plugins.json')\n if (!res.ok) {\n const err = await res.text()\n throw new Error(`HTTP ${res.status} fetching plugins: ${err}`)\n }\n const array = await res.json()\n setPlugins(array.plugins)\n } catch (e) {\n console.error(e)\n setError(e)\n }\n })()\n }, [])\n return { plugins, error }\n}\n","\"use client\";\n\nimport createSvgIcon from './utils/createSvgIcon';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon( /*#__PURE__*/_jsx(\"path\", {\n d: \"M9 16.17 4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z\"\n}), 'Check');","\"use client\";\n\nimport createSvgIcon from './utils/createSvgIcon';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon( /*#__PURE__*/_jsx(\"path\", {\n d: \"M16.59 8.59 12 13.17 7.41 8.59 6 10l6 6 6-6z\"\n}), 'ExpandMore');","\"use client\";\n\nimport createSvgIcon from './utils/createSvgIcon';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon( /*#__PURE__*/_jsx(\"path\", {\n d: \"M18 8h-1V6c0-2.76-2.24-5-5-5S7 3.24 7 6v2H6c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V10c0-1.1-.9-2-2-2m-6 9c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2m3.1-9H8.9V6c0-1.71 1.39-3.1 3.1-3.1s3.1 1.39 3.1 3.1z\"\n}), 'Lock');","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function getAccordionSummaryUtilityClass(slot) {\n return generateUtilityClass('MuiAccordionSummary', slot);\n}\nconst accordionSummaryClasses = generateUtilityClasses('MuiAccordionSummary', ['root', 'expanded', 'focusVisible', 'disabled', 'gutters', 'contentGutters', 'content', 'expandIconWrapper']);\nexport default accordionSummaryClasses;","'use client';\n\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport composeClasses from '@mui/utils/composeClasses';\nimport { styled } from \"../zero-styled/index.js\";\nimport memoTheme from \"../utils/memoTheme.js\";\nimport { useDefaultProps } from \"../DefaultPropsProvider/index.js\";\nimport ButtonBase from \"../ButtonBase/index.js\";\nimport AccordionContext from \"../Accordion/AccordionContext.js\";\nimport accordionSummaryClasses, { getAccordionSummaryUtilityClass } from \"./accordionSummaryClasses.js\";\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n expanded,\n disabled,\n disableGutters\n } = ownerState;\n const slots = {\n root: ['root', expanded && 'expanded', disabled && 'disabled', !disableGutters && 'gutters'],\n focusVisible: ['focusVisible'],\n content: ['content', expanded && 'expanded', !disableGutters && 'contentGutters'],\n expandIconWrapper: ['expandIconWrapper', expanded && 'expanded']\n };\n return composeClasses(slots, getAccordionSummaryUtilityClass, classes);\n};\nconst AccordionSummaryRoot = styled(ButtonBase, {\n name: 'MuiAccordionSummary',\n slot: 'Root',\n overridesResolver: (props, styles) => styles.root\n})(memoTheme(({\n theme\n}) => {\n const transition = {\n duration: theme.transitions.duration.shortest\n };\n return {\n display: 'flex',\n minHeight: 48,\n padding: theme.spacing(0, 2),\n transition: theme.transitions.create(['min-height', 'background-color'], transition),\n [`&.${accordionSummaryClasses.focusVisible}`]: {\n backgroundColor: (theme.vars || theme).palette.action.focus\n },\n [`&.${accordionSummaryClasses.disabled}`]: {\n opacity: (theme.vars || theme).palette.action.disabledOpacity\n },\n [`&:hover:not(.${accordionSummaryClasses.disabled})`]: {\n cursor: 'pointer'\n },\n variants: [{\n props: props => !props.disableGutters,\n style: {\n [`&.${accordionSummaryClasses.expanded}`]: {\n minHeight: 64\n }\n }\n }]\n };\n}));\nconst AccordionSummaryContent = styled('div', {\n name: 'MuiAccordionSummary',\n slot: 'Content',\n overridesResolver: (props, styles) => styles.content\n})(memoTheme(({\n theme\n}) => ({\n display: 'flex',\n flexGrow: 1,\n margin: '12px 0',\n variants: [{\n props: props => !props.disableGutters,\n style: {\n transition: theme.transitions.create(['margin'], {\n duration: theme.transitions.duration.shortest\n }),\n [`&.${accordionSummaryClasses.expanded}`]: {\n margin: '20px 0'\n }\n }\n }]\n})));\nconst AccordionSummaryExpandIconWrapper = styled('div', {\n name: 'MuiAccordionSummary',\n slot: 'ExpandIconWrapper',\n overridesResolver: (props, styles) => styles.expandIconWrapper\n})(memoTheme(({\n theme\n}) => ({\n display: 'flex',\n color: (theme.vars || theme).palette.action.active,\n transform: 'rotate(0deg)',\n transition: theme.transitions.create('transform', {\n duration: theme.transitions.duration.shortest\n }),\n [`&.${accordionSummaryClasses.expanded}`]: {\n transform: 'rotate(180deg)'\n }\n})));\nconst AccordionSummary = /*#__PURE__*/React.forwardRef(function AccordionSummary(inProps, ref) {\n const props = useDefaultProps({\n props: inProps,\n name: 'MuiAccordionSummary'\n });\n const {\n children,\n className,\n expandIcon,\n focusVisibleClassName,\n onClick,\n ...other\n } = props;\n const {\n disabled = false,\n disableGutters,\n expanded,\n toggle\n } = React.useContext(AccordionContext);\n const handleChange = event => {\n if (toggle) {\n toggle(event);\n }\n if (onClick) {\n onClick(event);\n }\n };\n const ownerState = {\n ...props,\n expanded,\n disabled,\n disableGutters\n };\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsxs(AccordionSummaryRoot, {\n focusRipple: false,\n disableRipple: true,\n disabled: disabled,\n component: \"div\",\n \"aria-expanded\": expanded,\n className: clsx(classes.root, className),\n focusVisibleClassName: clsx(classes.focusVisible, focusVisibleClassName),\n onClick: handleChange,\n ref: ref,\n ownerState: ownerState,\n ...other,\n children: [/*#__PURE__*/_jsx(AccordionSummaryContent, {\n className: classes.content,\n ownerState: ownerState,\n children: children\n }), expandIcon && /*#__PURE__*/_jsx(AccordionSummaryExpandIconWrapper, {\n className: classes.expandIconWrapper,\n ownerState: ownerState,\n children: expandIcon\n })]\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? AccordionSummary.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * The icon to display as the expand indicator.\n */\n expandIcon: PropTypes.node,\n /**\n * This prop can help identify which element has keyboard focus.\n * The class name will be applied when the element gains the focus through keyboard interaction.\n * It's a polyfill for the [CSS :focus-visible selector](https://drafts.csswg.org/selectors-4/#the-focus-visible-pseudo).\n * The rationale for using this feature [is explained here](https://github.com/WICG/focus-visible/blob/HEAD/explainer.md).\n * A [polyfill can be used](https://github.com/WICG/focus-visible) to apply a `focus-visible` class to other components\n * if needed.\n */\n focusVisibleClassName: PropTypes.string,\n /**\n * @ignore\n */\n onClick: PropTypes.func,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])\n} : void 0;\nexport default AccordionSummary;","'use client';\n\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport chainPropTypes from '@mui/utils/chainPropTypes';\nimport composeClasses from '@mui/utils/composeClasses';\nimport { styled } from \"../zero-styled/index.js\";\nimport { useDefaultProps } from \"../DefaultPropsProvider/index.js\";\nimport Paper from \"../Paper/index.js\";\nimport { getCardUtilityClass } from \"./cardClasses.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes\n } = ownerState;\n const slots = {\n root: ['root']\n };\n return composeClasses(slots, getCardUtilityClass, classes);\n};\nconst CardRoot = styled(Paper, {\n name: 'MuiCard',\n slot: 'Root',\n overridesResolver: (props, styles) => styles.root\n})({\n overflow: 'hidden'\n});\nconst Card = /*#__PURE__*/React.forwardRef(function Card(inProps, ref) {\n const props = useDefaultProps({\n props: inProps,\n name: 'MuiCard'\n });\n const {\n className,\n raised = false,\n ...other\n } = props;\n const ownerState = {\n ...props,\n raised\n };\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsx(CardRoot, {\n className: clsx(classes.root, className),\n elevation: raised ? 8 : undefined,\n ref: ref,\n ownerState: ownerState,\n ...other\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? Card.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * If `true`, the card will use raised styling.\n * @default false\n */\n raised: chainPropTypes(PropTypes.bool, props => {\n if (props.raised && props.variant === 'outlined') {\n return new Error('MUI: Combining `raised={true}` with `variant=\"outlined\"` has no effect.');\n }\n return null;\n }),\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])\n} : void 0;\nexport default Card;","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function getCardUtilityClass(slot) {\n return generateUtilityClass('MuiCard', slot);\n}\nconst cardClasses = generateUtilityClasses('MuiCard', ['root']);\nexport default cardClasses;","'use client';\n\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport composeClasses from '@mui/utils/composeClasses';\nimport { styled } from \"../zero-styled/index.js\";\nimport { useDefaultProps } from \"../DefaultPropsProvider/index.js\";\nimport { getCardActionsUtilityClass } from \"./cardActionsClasses.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n disableSpacing\n } = ownerState;\n const slots = {\n root: ['root', !disableSpacing && 'spacing']\n };\n return composeClasses(slots, getCardActionsUtilityClass, classes);\n};\nconst CardActionsRoot = styled('div', {\n name: 'MuiCardActions',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, !ownerState.disableSpacing && styles.spacing];\n }\n})({\n display: 'flex',\n alignItems: 'center',\n padding: 8,\n variants: [{\n props: {\n disableSpacing: false\n },\n style: {\n '& > :not(style) ~ :not(style)': {\n marginLeft: 8\n }\n }\n }]\n});\nconst CardActions = /*#__PURE__*/React.forwardRef(function CardActions(inProps, ref) {\n const props = useDefaultProps({\n props: inProps,\n name: 'MuiCardActions'\n });\n const {\n disableSpacing = false,\n className,\n ...other\n } = props;\n const ownerState = {\n ...props,\n disableSpacing\n };\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsx(CardActionsRoot, {\n className: clsx(classes.root, className),\n ownerState: ownerState,\n ref: ref,\n ...other\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? CardActions.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * If `true`, the actions do not have additional margin.\n * @default false\n */\n disableSpacing: PropTypes.bool,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])\n} : void 0;\nexport default CardActions;","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function getCardActionsUtilityClass(slot) {\n return generateUtilityClass('MuiCardActions', slot);\n}\nconst cardActionsClasses = generateUtilityClasses('MuiCardActions', ['root', 'spacing']);\nexport default cardActionsClasses;","'use client';\n\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport composeClasses from '@mui/utils/composeClasses';\nimport { styled } from \"../zero-styled/index.js\";\nimport { useDefaultProps } from \"../DefaultPropsProvider/index.js\";\nimport { getCardContentUtilityClass } from \"./cardContentClasses.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes\n } = ownerState;\n const slots = {\n root: ['root']\n };\n return composeClasses(slots, getCardContentUtilityClass, classes);\n};\nconst CardContentRoot = styled('div', {\n name: 'MuiCardContent',\n slot: 'Root',\n overridesResolver: (props, styles) => styles.root\n})({\n padding: 16,\n '&:last-child': {\n paddingBottom: 24\n }\n});\nconst CardContent = /*#__PURE__*/React.forwardRef(function CardContent(inProps, ref) {\n const props = useDefaultProps({\n props: inProps,\n name: 'MuiCardContent'\n });\n const {\n className,\n component = 'div',\n ...other\n } = props;\n const ownerState = {\n ...props,\n component\n };\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsx(CardContentRoot, {\n as: component,\n className: clsx(classes.root, className),\n ownerState: ownerState,\n ref: ref,\n ...other\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? CardContent.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: PropTypes.elementType,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])\n} : void 0;\nexport default CardContent;","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function getCardContentUtilityClass(slot) {\n return generateUtilityClass('MuiCardContent', slot);\n}\nconst cardContentClasses = generateUtilityClasses('MuiCardContent', ['root']);\nexport default cardContentClasses;","import { getPath } from '@mui/system/style';\nimport { alpha } from '@mui/system/colorManipulator';\nconst getTextDecoration = ({\n theme,\n ownerState\n}) => {\n const transformedColor = ownerState.color;\n const color = getPath(theme, `palette.${transformedColor}`, false) || ownerState.color;\n const channelColor = getPath(theme, `palette.${transformedColor}Channel`);\n if ('vars' in theme && channelColor) {\n return `rgba(${channelColor} / 0.4)`;\n }\n return alpha(color, 0.4);\n};\nexport default getTextDecoration;","'use client';\n\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { alpha } from '@mui/system/colorManipulator';\nimport elementTypeAcceptingRef from '@mui/utils/elementTypeAcceptingRef';\nimport composeClasses from '@mui/utils/composeClasses';\nimport isFocusVisible from '@mui/utils/isFocusVisible';\nimport capitalize from \"../utils/capitalize.js\";\nimport { styled, useTheme } from \"../zero-styled/index.js\";\nimport memoTheme from \"../utils/memoTheme.js\";\nimport createSimplePaletteValueFilter from \"../utils/createSimplePaletteValueFilter.js\";\nimport { useDefaultProps } from \"../DefaultPropsProvider/index.js\";\nimport Typography from \"../Typography/index.js\";\nimport linkClasses, { getLinkUtilityClass } from \"./linkClasses.js\";\nimport getTextDecoration from \"./getTextDecoration.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst v6Colors = {\n primary: true,\n secondary: true,\n error: true,\n info: true,\n success: true,\n warning: true,\n textPrimary: true,\n textSecondary: true,\n textDisabled: true\n};\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n component,\n focusVisible,\n underline\n } = ownerState;\n const slots = {\n root: ['root', `underline${capitalize(underline)}`, component === 'button' && 'button', focusVisible && 'focusVisible']\n };\n return composeClasses(slots, getLinkUtilityClass, classes);\n};\nconst LinkRoot = styled(Typography, {\n name: 'MuiLink',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, styles[`underline${capitalize(ownerState.underline)}`], ownerState.component === 'button' && styles.button];\n }\n})(memoTheme(({\n theme\n}) => {\n return {\n variants: [{\n props: {\n underline: 'none'\n },\n style: {\n textDecoration: 'none'\n }\n }, {\n props: {\n underline: 'hover'\n },\n style: {\n textDecoration: 'none',\n '&:hover': {\n textDecoration: 'underline'\n }\n }\n }, {\n props: {\n underline: 'always'\n },\n style: {\n textDecoration: 'underline',\n '&:hover': {\n textDecorationColor: 'inherit'\n }\n }\n }, {\n props: ({\n underline,\n ownerState\n }) => underline === 'always' && ownerState.color !== 'inherit',\n style: {\n textDecorationColor: 'var(--Link-underlineColor)'\n }\n }, ...Object.entries(theme.palette).filter(createSimplePaletteValueFilter()).map(([color]) => ({\n props: {\n underline: 'always',\n color\n },\n style: {\n '--Link-underlineColor': theme.vars ? `rgba(${theme.vars.palette[color].mainChannel} / 0.4)` : alpha(theme.palette[color].main, 0.4)\n }\n })), {\n props: {\n underline: 'always',\n color: 'textPrimary'\n },\n style: {\n '--Link-underlineColor': theme.vars ? `rgba(${theme.vars.palette.text.primaryChannel} / 0.4)` : alpha(theme.palette.text.primary, 0.4)\n }\n }, {\n props: {\n underline: 'always',\n color: 'textSecondary'\n },\n style: {\n '--Link-underlineColor': theme.vars ? `rgba(${theme.vars.palette.text.secondaryChannel} / 0.4)` : alpha(theme.palette.text.secondary, 0.4)\n }\n }, {\n props: {\n underline: 'always',\n color: 'textDisabled'\n },\n style: {\n '--Link-underlineColor': (theme.vars || theme).palette.text.disabled\n }\n }, {\n props: {\n component: 'button'\n },\n style: {\n position: 'relative',\n WebkitTapHighlightColor: 'transparent',\n backgroundColor: 'transparent',\n // Reset default value\n // We disable the focus ring for mouse, touch and keyboard users.\n outline: 0,\n border: 0,\n margin: 0,\n // Remove the margin in Safari\n borderRadius: 0,\n padding: 0,\n // Remove the padding in Firefox\n cursor: 'pointer',\n userSelect: 'none',\n verticalAlign: 'middle',\n MozAppearance: 'none',\n // Reset\n WebkitAppearance: 'none',\n // Reset\n '&::-moz-focus-inner': {\n borderStyle: 'none' // Remove Firefox dotted outline.\n },\n [`&.${linkClasses.focusVisible}`]: {\n outline: 'auto'\n }\n }\n }]\n };\n}));\nconst Link = /*#__PURE__*/React.forwardRef(function Link(inProps, ref) {\n const props = useDefaultProps({\n props: inProps,\n name: 'MuiLink'\n });\n const theme = useTheme();\n const {\n className,\n color = 'primary',\n component = 'a',\n onBlur,\n onFocus,\n TypographyClasses,\n underline = 'always',\n variant = 'inherit',\n sx,\n ...other\n } = props;\n const [focusVisible, setFocusVisible] = React.useState(false);\n const handleBlur = event => {\n if (!isFocusVisible(event.target)) {\n setFocusVisible(false);\n }\n if (onBlur) {\n onBlur(event);\n }\n };\n const handleFocus = event => {\n if (isFocusVisible(event.target)) {\n setFocusVisible(true);\n }\n if (onFocus) {\n onFocus(event);\n }\n };\n const ownerState = {\n ...props,\n color,\n component,\n focusVisible,\n underline,\n variant\n };\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsx(LinkRoot, {\n color: color,\n className: clsx(classes.root, className),\n classes: TypographyClasses,\n component: component,\n onBlur: handleBlur,\n onFocus: handleFocus,\n ref: ref,\n ownerState: ownerState,\n variant: variant,\n ...other,\n sx: [...(v6Colors[color] === undefined ? [{\n color\n }] : []), ...(Array.isArray(sx) ? sx : [sx])],\n style: {\n ...other.style,\n ...(underline === 'always' && color !== 'inherit' && !v6Colors[color] && {\n '--Link-underlineColor': getTextDecoration({\n theme,\n ownerState\n })\n })\n }\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? Link.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * The color of the link.\n * @default 'primary'\n */\n color: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['primary', 'secondary', 'success', 'error', 'info', 'warning', 'textPrimary', 'textSecondary', 'textDisabled']), PropTypes.string]),\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: elementTypeAcceptingRef,\n /**\n * @ignore\n */\n onBlur: PropTypes.func,\n /**\n * @ignore\n */\n onFocus: PropTypes.func,\n /**\n * @ignore\n */\n style: PropTypes.object,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n /**\n * `classes` prop applied to the [`Typography`](https://mui.com/material-ui/api/typography/) element.\n */\n TypographyClasses: PropTypes.object,\n /**\n * Controls when the link should have an underline.\n * @default 'always'\n */\n underline: PropTypes.oneOf(['always', 'hover', 'none']),\n /**\n * Applies the theme typography styles.\n * @default 'inherit'\n */\n variant: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['body1', 'body2', 'button', 'caption', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'inherit', 'overline', 'subtitle1', 'subtitle2']), PropTypes.string])\n} : void 0;\nexport default Link;","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function getLinkUtilityClass(slot) {\n return generateUtilityClass('MuiLink', slot);\n}\nconst linkClasses = generateUtilityClasses('MuiLink', ['root', 'underlineNone', 'underlineHover', 'underlineAlways', 'button', 'focusVisible']);\nexport default linkClasses;","'use client';\n\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport composeClasses from '@mui/utils/composeClasses';\nimport elementTypeAcceptingRef from '@mui/utils/elementTypeAcceptingRef';\nimport chainPropTypes from '@mui/utils/chainPropTypes';\nimport isHostComponent from \"../utils/isHostComponent.js\";\nimport { styled } from \"../zero-styled/index.js\";\nimport memoTheme from \"../utils/memoTheme.js\";\nimport { useDefaultProps } from \"../DefaultPropsProvider/index.js\";\nimport isMuiElement from \"../utils/isMuiElement.js\";\nimport useForkRef from \"../utils/useForkRef.js\";\nimport ListContext from \"../List/ListContext.js\";\nimport { getListItemUtilityClass } from \"./listItemClasses.js\";\nimport { listItemButtonClasses } from \"../ListItemButton/index.js\";\nimport ListItemSecondaryAction from \"../ListItemSecondaryAction/index.js\";\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nexport const overridesResolver = (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, ownerState.dense && styles.dense, ownerState.alignItems === 'flex-start' && styles.alignItemsFlexStart, ownerState.divider && styles.divider, !ownerState.disableGutters && styles.gutters, !ownerState.disablePadding && styles.padding, ownerState.hasSecondaryAction && styles.secondaryAction];\n};\nconst useUtilityClasses = ownerState => {\n const {\n alignItems,\n classes,\n dense,\n disableGutters,\n disablePadding,\n divider,\n hasSecondaryAction\n } = ownerState;\n const slots = {\n root: ['root', dense && 'dense', !disableGutters && 'gutters', !disablePadding && 'padding', divider && 'divider', alignItems === 'flex-start' && 'alignItemsFlexStart', hasSecondaryAction && 'secondaryAction'],\n container: ['container']\n };\n return composeClasses(slots, getListItemUtilityClass, classes);\n};\nexport const ListItemRoot = styled('div', {\n name: 'MuiListItem',\n slot: 'Root',\n overridesResolver\n})(memoTheme(({\n theme\n}) => ({\n display: 'flex',\n justifyContent: 'flex-start',\n alignItems: 'center',\n position: 'relative',\n textDecoration: 'none',\n width: '100%',\n boxSizing: 'border-box',\n textAlign: 'left',\n variants: [{\n props: ({\n ownerState\n }) => !ownerState.disablePadding,\n style: {\n paddingTop: 8,\n paddingBottom: 8\n }\n }, {\n props: ({\n ownerState\n }) => !ownerState.disablePadding && ownerState.dense,\n style: {\n paddingTop: 4,\n paddingBottom: 4\n }\n }, {\n props: ({\n ownerState\n }) => !ownerState.disablePadding && !ownerState.disableGutters,\n style: {\n paddingLeft: 16,\n paddingRight: 16\n }\n }, {\n props: ({\n ownerState\n }) => !ownerState.disablePadding && !!ownerState.secondaryAction,\n style: {\n // Add some space to avoid collision as `ListItemSecondaryAction`\n // is absolutely positioned.\n paddingRight: 48\n }\n }, {\n props: ({\n ownerState\n }) => !!ownerState.secondaryAction,\n style: {\n [`& > .${listItemButtonClasses.root}`]: {\n paddingRight: 48\n }\n }\n }, {\n props: {\n alignItems: 'flex-start'\n },\n style: {\n alignItems: 'flex-start'\n }\n }, {\n props: ({\n ownerState\n }) => ownerState.divider,\n style: {\n borderBottom: `1px solid ${(theme.vars || theme).palette.divider}`,\n backgroundClip: 'padding-box'\n }\n }, {\n props: ({\n ownerState\n }) => ownerState.button,\n style: {\n transition: theme.transitions.create('background-color', {\n duration: theme.transitions.duration.shortest\n }),\n '&:hover': {\n textDecoration: 'none',\n backgroundColor: (theme.vars || theme).palette.action.hover,\n // Reset on touch devices, it doesn't add specificity\n '@media (hover: none)': {\n backgroundColor: 'transparent'\n }\n }\n }\n }, {\n props: ({\n ownerState\n }) => ownerState.hasSecondaryAction,\n style: {\n // Add some space to avoid collision as `ListItemSecondaryAction`\n // is absolutely positioned.\n paddingRight: 48\n }\n }]\n})));\nconst ListItemContainer = styled('li', {\n name: 'MuiListItem',\n slot: 'Container',\n overridesResolver: (props, styles) => styles.container\n})({\n position: 'relative'\n});\n\n/**\n * Uses an additional container component if `ListItemSecondaryAction` is the last child.\n */\nconst ListItem = /*#__PURE__*/React.forwardRef(function ListItem(inProps, ref) {\n const props = useDefaultProps({\n props: inProps,\n name: 'MuiListItem'\n });\n const {\n alignItems = 'center',\n children: childrenProp,\n className,\n component: componentProp,\n components = {},\n componentsProps = {},\n ContainerComponent = 'li',\n ContainerProps: {\n className: ContainerClassName,\n ...ContainerProps\n } = {},\n dense = false,\n disableGutters = false,\n disablePadding = false,\n divider = false,\n secondaryAction,\n slotProps = {},\n slots = {},\n ...other\n } = props;\n const context = React.useContext(ListContext);\n const childContext = React.useMemo(() => ({\n dense: dense || context.dense || false,\n alignItems,\n disableGutters\n }), [alignItems, context.dense, dense, disableGutters]);\n const listItemRef = React.useRef(null);\n const children = React.Children.toArray(childrenProp);\n\n // v4 implementation, deprecated in v6, will be removed in v7\n const hasSecondaryAction = children.length && isMuiElement(children[children.length - 1], ['ListItemSecondaryAction']);\n const ownerState = {\n ...props,\n alignItems,\n dense: childContext.dense,\n disableGutters,\n disablePadding,\n divider,\n hasSecondaryAction\n };\n const classes = useUtilityClasses(ownerState);\n const handleRef = useForkRef(listItemRef, ref);\n const Root = slots.root || components.Root || ListItemRoot;\n const rootProps = slotProps.root || componentsProps.root || {};\n const componentProps = {\n className: clsx(classes.root, rootProps.className, className),\n ...other\n };\n let Component = componentProp || 'li';\n\n // v4 implementation, deprecated in v6, will be removed in v7\n if (hasSecondaryAction) {\n // Use div by default.\n Component = !componentProps.component && !componentProp ? 'div' : Component;\n\n // Avoid nesting of li > li.\n if (ContainerComponent === 'li') {\n if (Component === 'li') {\n Component = 'div';\n } else if (componentProps.component === 'li') {\n componentProps.component = 'div';\n }\n }\n return /*#__PURE__*/_jsx(ListContext.Provider, {\n value: childContext,\n children: /*#__PURE__*/_jsxs(ListItemContainer, {\n as: ContainerComponent,\n className: clsx(classes.container, ContainerClassName),\n ref: handleRef,\n ownerState: ownerState,\n ...ContainerProps,\n children: [/*#__PURE__*/_jsx(Root, {\n ...rootProps,\n ...(!isHostComponent(Root) && {\n as: Component,\n ownerState: {\n ...ownerState,\n ...rootProps.ownerState\n }\n }),\n ...componentProps,\n children: children\n }), children.pop()]\n })\n });\n }\n return /*#__PURE__*/_jsx(ListContext.Provider, {\n value: childContext,\n children: /*#__PURE__*/_jsxs(Root, {\n ...rootProps,\n as: Component,\n ref: handleRef,\n ...(!isHostComponent(Root) && {\n ownerState: {\n ...ownerState,\n ...rootProps.ownerState\n }\n }),\n ...componentProps,\n children: [children, secondaryAction && /*#__PURE__*/_jsx(ListItemSecondaryAction, {\n children: secondaryAction\n })]\n })\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? ListItem.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * Defines the `align-items` style property.\n * @default 'center'\n */\n alignItems: PropTypes.oneOf(['center', 'flex-start']),\n /**\n * The content of the component if a `ListItemSecondaryAction` is used it must\n * be the last child.\n */\n children: chainPropTypes(PropTypes.node, props => {\n const children = React.Children.toArray(props.children);\n\n // React.Children.toArray(props.children).findLastIndex(isListItemSecondaryAction)\n let secondaryActionIndex = -1;\n for (let i = children.length - 1; i >= 0; i -= 1) {\n const child = children[i];\n if (isMuiElement(child, ['ListItemSecondaryAction'])) {\n secondaryActionIndex = i;\n break;\n }\n }\n\n // is ListItemSecondaryAction the last child of ListItem\n if (secondaryActionIndex !== -1 && secondaryActionIndex !== children.length - 1) {\n return new Error('MUI: You used an element after ListItemSecondaryAction. ' + 'For ListItem to detect that it has a secondary action ' + 'you must pass it as the last child to ListItem.');\n }\n return null;\n }),\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: PropTypes.elementType,\n /**\n * The components used for each slot inside.\n *\n * @deprecated Use the `slots` prop instead. This prop will be removed in v7. See [Migrating from deprecated APIs](https://mui.com/material-ui/migration/migrating-from-deprecated-apis/) for more details.\n * @default {}\n */\n components: PropTypes.shape({\n Root: PropTypes.elementType\n }),\n /**\n * The extra props for the slot components.\n * You can override the existing props or add new ones.\n *\n * @deprecated Use the `slotProps` prop instead. This prop will be removed in v7. See [Migrating from deprecated APIs](https://mui.com/material-ui/migration/migrating-from-deprecated-apis/) for more details.\n * @default {}\n */\n componentsProps: PropTypes.shape({\n root: PropTypes.object\n }),\n /**\n * The container component used when a `ListItemSecondaryAction` is the last child.\n * @default 'li'\n * @deprecated Use the `component` or `slots.root` prop instead. This prop will be removed in v7. See [Migrating from deprecated APIs](https://mui.com/material-ui/migration/migrating-from-deprecated-apis/) for more details.\n */\n ContainerComponent: elementTypeAcceptingRef,\n /**\n * Props applied to the container component if used.\n * @default {}\n * @deprecated Use the `slotProps.root` prop instead. This prop will be removed in v7. See [Migrating from deprecated APIs](https://mui.com/material-ui/migration/migrating-from-deprecated-apis/) for more details.\n */\n ContainerProps: PropTypes.object,\n /**\n * If `true`, compact vertical padding designed for keyboard and mouse input is used.\n * The prop defaults to the value inherited from the parent List component.\n * @default false\n */\n dense: PropTypes.bool,\n /**\n * If `true`, the left and right padding is removed.\n * @default false\n */\n disableGutters: PropTypes.bool,\n /**\n * If `true`, all padding is removed.\n * @default false\n */\n disablePadding: PropTypes.bool,\n /**\n * If `true`, a 1px light border is added to the bottom of the list item.\n * @default false\n */\n divider: PropTypes.bool,\n /**\n * The element to display at the end of ListItem.\n */\n secondaryAction: PropTypes.node,\n /**\n * The extra props for the slot components.\n * You can override the existing props or add new ones.\n *\n * @default {}\n */\n slotProps: PropTypes.shape({\n root: PropTypes.object\n }),\n /**\n * The components used for each slot inside.\n *\n * @default {}\n */\n slots: PropTypes.shape({\n root: PropTypes.elementType\n }),\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])\n} : void 0;\nexport default ListItem;","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function getListItemUtilityClass(slot) {\n return generateUtilityClass('MuiListItem', slot);\n}\nconst listItemClasses = generateUtilityClasses('MuiListItem', ['root', 'container', 'dense', 'alignItemsFlexStart', 'divider', 'gutters', 'padding', 'secondaryAction']);\nexport default listItemClasses;","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function getListItemButtonUtilityClass(slot) {\n return generateUtilityClass('MuiListItemButton', slot);\n}\nconst listItemButtonClasses = generateUtilityClasses('MuiListItemButton', ['root', 'focusVisible', 'dense', 'alignItemsFlexStart', 'disabled', 'divider', 'gutters', 'selected']);\nexport default listItemButtonClasses;","'use client';\n\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport composeClasses from '@mui/utils/composeClasses';\nimport { styled } from \"../zero-styled/index.js\";\nimport { useDefaultProps } from \"../DefaultPropsProvider/index.js\";\nimport ListContext from \"../List/ListContext.js\";\nimport { getListItemSecondaryActionClassesUtilityClass } from \"./listItemSecondaryActionClasses.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n disableGutters,\n classes\n } = ownerState;\n const slots = {\n root: ['root', disableGutters && 'disableGutters']\n };\n return composeClasses(slots, getListItemSecondaryActionClassesUtilityClass, classes);\n};\nconst ListItemSecondaryActionRoot = styled('div', {\n name: 'MuiListItemSecondaryAction',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, ownerState.disableGutters && styles.disableGutters];\n }\n})({\n position: 'absolute',\n right: 16,\n top: '50%',\n transform: 'translateY(-50%)',\n variants: [{\n props: ({\n ownerState\n }) => ownerState.disableGutters,\n style: {\n right: 0\n }\n }]\n});\n\n/**\n * Must be used as the last child of ListItem to function properly.\n *\n * @deprecated Use the `secondaryAction` prop in the `ListItem` component instead. This component will be removed in v7. See [Migrating from deprecated APIs](https://mui.com/material-ui/migration/migrating-from-deprecated-apis/) for more details.\n */\nconst ListItemSecondaryAction = /*#__PURE__*/React.forwardRef(function ListItemSecondaryAction(inProps, ref) {\n const props = useDefaultProps({\n props: inProps,\n name: 'MuiListItemSecondaryAction'\n });\n const {\n className,\n ...other\n } = props;\n const context = React.useContext(ListContext);\n const ownerState = {\n ...props,\n disableGutters: context.disableGutters\n };\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsx(ListItemSecondaryActionRoot, {\n className: clsx(classes.root, className),\n ownerState: ownerState,\n ref: ref,\n ...other\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? ListItemSecondaryAction.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * The content of the component, normally an `IconButton` or selection control.\n */\n children: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])\n} : void 0;\nListItemSecondaryAction.muiName = 'ListItemSecondaryAction';\nexport default ListItemSecondaryAction;","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function getListItemSecondaryActionClassesUtilityClass(slot) {\n return generateUtilityClass('MuiListItemSecondaryAction', slot);\n}\nconst listItemSecondaryActionClasses = generateUtilityClasses('MuiListItemSecondaryAction', ['root', 'disableGutters']);\nexport default listItemSecondaryActionClasses;"],"names":["createSvgIcon","d","DeletePluginDialog","lazy","useStyles","makeStyles","lockedPluginTooltip","marginRight","LockedPlugin","classes","React","Tooltip","className","title","LockIcon","observer","plugin","model","dialogPlugin","setDialogPlugin","useState","pluginManager","getEnv","session","getSession","jbrowse","adminMode","isSessionPlugin","isSessionWithSessionPlugins","sessionPlugins","some","p","pluginMetadata","name","url","Suspense","fallback","onClose","removePlugin","removeSessionPlugin","undefined","ListItem","key","IconButton","onClick","CloseIcon","Typography","plugins","filterText","externalPlugins","filter","isCore","List","length","toLowerCase","includes","map","InstalledPlugin","card","margin","icon","marginLeft","bold","fontWeight","dataField","display","alignItems","runtimePluginDefinitions","isInstalled","tempDisabled","setTempDisabled","disableButton","rootModel","getParent","Card","variant","CardContent","Link","href","location","target","rel","PersonIcon","style","authors","join","description","CardActions","Button","disabled","startIcon","CheckIcon","AddIcon","addPlugin","addSessionPlugin","AddCustomPluginDialog","theme","expandIcon","color","palette","tertiary","contrastText","adminBadge","borderRadius","backgroundColor","quaternary","main","padding","alignContent","customPluginButton","error","setPlugins","setError","useEffect","res","fetch","ok","err","text","Error","status","array","json","e","console","useFetchPlugins","open","setOpen","isElectron","InfoOutlinedIcon","TextField","label","value","onChange","event","setFilterText","fullWidth","InputProps","endAdornment","InputAdornment","position","clearFilterText","ClearIcon","Accordion","defaultExpanded","AccordionSummary","ExpandMoreIcon","InstalledPluginsList","cjsUrl","PluginCard","LoadingEllipses","getAccordionSummaryUtilityClass","slot","generateUtilityClass","generateUtilityClasses","AccordionSummaryRoot","styled","ButtonBase","overridesResolver","props","styles","root","memoTheme","transition","duration","transitions","shortest","minHeight","spacing","create","focusVisible","vars","action","focus","opacity","disabledOpacity","cursor","variants","disableGutters","expanded","AccordionSummaryContent","content","flexGrow","AccordionSummaryExpandIconWrapper","expandIconWrapper","active","transform","inProps","ref","children","focusVisibleClassName","other","toggle","AccordionContext","A","ownerState","slots","composeClasses","useUtilityClasses","focusRipple","disableRipple","component","clsx","CardRoot","overflow","raised","elevation","getCardUtilityClass","CardActionsRoot","disableSpacing","getCardActionsUtilityClass","CardContentRoot","paddingBottom","as","getCardContentUtilityClass","transformedColor","channelColor","v6Colors","primary","secondary","info","success","warning","textPrimary","textSecondary","textDisabled","LinkRoot","capitalize","underline","button","textDecoration","textDecorationColor","Object","entries","createSimplePaletteValueFilter","mainChannel","primaryChannel","secondaryChannel","WebkitTapHighlightColor","outline","border","userSelect","verticalAlign","MozAppearance","WebkitAppearance","borderStyle","linkClasses","useTheme","onBlur","onFocus","TypographyClasses","sx","setFocusVisible","isFocusVisible","Array","isArray","getLinkUtilityClass","ListItemRoot","dense","alignItemsFlexStart","divider","gutters","disablePadding","hasSecondaryAction","secondaryAction","justifyContent","width","boxSizing","textAlign","paddingTop","paddingLeft","paddingRight","borderBottom","backgroundClip","hover","ListItemContainer","container","childrenProp","componentProp","components","componentsProps","ContainerComponent","ContainerProps","ContainerClassName","slotProps","context","childContext","listItemRef","toArray","handleRef","Root","rootProps","componentProps","Component","Provider","pop","getListItemUtilityClass","getListItemButtonUtilityClass","ListItemSecondaryActionRoot","right","top","ListItemSecondaryAction","g","muiName","getListItemSecondaryActionClassesUtilityClass"],"sourceRoot":""}