@carto/ps-react-ui 5.0.0-widgets.10 → 5.0.0-widgets.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/types/components/basemaps/group-wrapper.d.ts +1 -1
- package/dist/types/widgets/actions/lock-selection/types.d.ts +0 -2
- package/dist/types/widgets/category/style.d.ts +0 -1
- package/dist/types/widgets/error/error.d.ts +1 -1
- package/dist/types/widgets/no-data/no-data.d.ts +1 -1
- package/dist/types/widgets/skeleton-loader/skeleton-loader.d.ts +1 -1
- package/dist/widgets/actions.js +417 -420
- package/dist/widgets/actions.js.map +1 -1
- package/dist/widgets/category.js +238 -279
- package/dist/widgets/category.js.map +1 -1
- package/dist/widgets/wrapper.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"category.js","sources":["../../src/widgets/category/style.ts","../../src/widgets/category/components/category-bar.tsx","../../src/widgets/category/components/category-row-single.tsx","../../src/widgets/category/components/category-row-multi.tsx","../../src/widgets/category/components/category-row-other.tsx","../../src/widgets/category/components/category-legend.tsx","../../src/widgets/category/category-ui.tsx","../../src/widgets/category/skeleton.tsx","../../src/widgets/category/config.ts"],"sourcesContent":["import type { SxProps, Theme } from '@mui/material'\n\nexport const styles = {\n root: {\n display: 'flex',\n flexDirection: 'column',\n position: 'relative',\n overflow: 'auto',\n },\n list: {\n display: 'flex',\n flexDirection: 'column',\n gap: (theme: Theme) => theme.spacing(1),\n },\n row: {\n display: 'flex',\n flexDirection: 'column',\n gap: (theme: Theme) => theme.spacing(0.5),\n pointerEvents: 'none',\n },\n rowClickable: {\n pointerEvents: 'auto',\n // display: 'flex',\n // flexDirection: 'column',\n // gap: (theme: Theme) => theme.spacing(0.5),\n // cursor: 'pointer',\n // borderRadius: 1,\n // padding: (theme: Theme) => theme.spacing(0.5),\n // margin: (theme: Theme) => theme.spacing(-0.5),\n // transition: 'background-color 0.15s ease-in-out',\n // '&:hover': {\n // backgroundColor: (theme: Theme) => theme.palette.action.hover,\n // },\n },\n rowHeader: {\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n },\n rowLabel: {\n typography: 'body2',\n fontWeight: 'medium',\n color: 'text.primary',\n },\n rowValue: {\n typography: 'body2',\n color: 'text.secondary',\n },\n barContainer: {\n display: 'flex',\n flexDirection: 'column',\n },\n bar: {\n height: 4,\n borderRadius: 2,\n backgroundColor: (theme: Theme) => theme.palette.action.disabledBackground,\n overflow: 'hidden',\n position: 'relative',\n transition: 'background-color 0.15s ease-in-out',\n cursor: 'pointer',\n '&:hover': {\n backgroundColor: (theme: Theme) => theme.palette.action.hover,\n\n '& > div': {\n filter: 'brightness(1.2)',\n },\n },\n },\n barFill: {\n height: '100%',\n borderRadius: 2,\n transition: 'width 0.3s ease-in-out, background-color 0.15s ease-in-out',\n },\n barFillMuted: {\n backgroundColor: (theme: Theme) => theme.palette.action.disabled,\n },\n legend: {\n display: 'flex',\n alignItems: 'center',\n gap: (theme: Theme) => theme.spacing(2),\n flexWrap: 'wrap',\n paddingTop: (theme: Theme) => theme.spacing(2),\n position: 'sticky',\n bottom: 0,\n backgroundColor: 'background.paper',\n borderTop: (theme: Theme) => `1px solid ${theme.palette.divider}`,\n marginTop: (theme: Theme) => theme.spacing(2),\n },\n legendItem: {\n display: 'flex',\n alignItems: 'center',\n gap: (theme: Theme) => theme.spacing(1),\n },\n legendDot: {\n width: 8,\n height: 8,\n borderRadius: '50%',\n },\n legendLabel: {\n typography: 'caption',\n color: 'text.secondary',\n textTransform: 'uppercase',\n fontWeight: 'medium',\n },\n multiBarRow: {\n display: 'flex',\n alignItems: 'center',\n gap: (theme: Theme) => theme.spacing(1),\n },\n multiBarValue: {\n typography: 'body2',\n color: 'text.secondary',\n minWidth: 48,\n textAlign: 'right',\n },\n multiBarContainer: {\n flex: 1,\n },\n otherRow: {\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n },\n otherLabel: {\n typography: 'body2',\n fontWeight: 'medium',\n color: 'text.secondary',\n fontStyle: 'italic',\n },\n otherCount: {\n typography: 'body2',\n color: 'text.disabled',\n },\n} satisfies Record<string, SxProps<Theme>>\n","import { Box } from '@mui/material'\nimport { styles } from '../style'\n\nexport interface CategoryBarProps {\n value: number\n maxValue: number\n color: string\n selected?: boolean\n}\n\nexport function CategoryBar({\n value,\n maxValue,\n color,\n selected = true,\n}: CategoryBarProps) {\n const percentage = maxValue > 0 ? (value / maxValue) * 100 : 0\n\n const barFillSx = selected\n ? { ...styles.barFill, width: `${percentage}%`, backgroundColor: color }\n : { ...styles.barFill, ...styles.barFillMuted, width: `${percentage}%` }\n\n return (\n <Box sx={styles.bar}>\n <Box sx={barFillSx} />\n </Box>\n )\n}\n","import { Box, Typography } from '@mui/material'\nimport { styles } from '../style'\nimport { CategoryBar } from './category-bar'\nimport type { CategoryWidgetConfig } from '../types'\n\nexport interface CategoryRowSingleProps {\n name: string\n value: number\n maxValue: number\n color: string\n formatter: NonNullable<CategoryWidgetConfig['formatter']>\n onClick?: CategoryWidgetConfig['onRowClick']\n selected?: boolean\n}\n\nexport function CategoryRowSingle({\n name,\n value,\n maxValue,\n color,\n formatter,\n onClick,\n selected = true,\n}: CategoryRowSingleProps) {\n const handleClick = onClick\n ? () =>\n onClick({\n name,\n })\n : undefined\n const rowStyle = onClick ? styles.rowClickable : styles.row\n\n return (\n <Box sx={rowStyle} onClick={handleClick}>\n <Box sx={styles.rowHeader}>\n <Typography sx={styles.rowLabel}>{name}</Typography>\n <Typography sx={styles.rowValue}>{formatter(value)}</Typography>\n </Box>\n <CategoryBar\n value={value}\n maxValue={maxValue}\n color={color}\n selected={selected}\n />\n </Box>\n )\n}\n","import { Box, Typography } from '@mui/material'\nimport { styles } from '../style'\nimport { CategoryBar } from './category-bar'\nimport type { CategoryWidgetConfig } from '../types'\n\nexport interface CategoryRowMultiProps {\n name: string\n values: number[]\n maxValue: number\n colors: string[]\n formatter: NonNullable<CategoryWidgetConfig['formatter']>\n onClick?: CategoryWidgetConfig['onRowClick']\n selected?: boolean\n}\n\nexport function CategoryRowMulti({\n name,\n values,\n maxValue,\n colors,\n formatter,\n onClick,\n selected = true,\n}: CategoryRowMultiProps) {\n const handleClick = onClick ? () => onClick({ name }) : undefined\n const rowStyle = onClick ? styles.rowClickable : styles.row\n\n return (\n <Box sx={rowStyle} onClick={handleClick}>\n <Typography sx={styles.rowLabel}>{name}</Typography>\n <Box sx={styles.barContainer}>\n {values.map((value, index) => (\n <Box key={`${name}-${value}-${index}`} sx={styles.multiBarRow}>\n <Box sx={styles.multiBarContainer}>\n <CategoryBar\n value={value}\n maxValue={maxValue}\n color={colors[index % colors.length] ?? ''}\n selected={selected}\n />\n </Box>\n <Typography sx={styles.multiBarValue}>\n {formatter(value)}\n </Typography>\n </Box>\n ))}\n </Box>\n </Box>\n )\n}\n","import { Box, Typography } from '@mui/material'\nimport { styles } from '../style'\n\nexport interface CategoryRowOtherProps {\n hiddenCount: number\n otherLabel?: string\n otherCountLabel?: string\n}\n\nexport function CategoryRowOther({\n hiddenCount,\n otherLabel = 'Other',\n otherCountLabel = '{count} more',\n}: CategoryRowOtherProps) {\n const countText = otherCountLabel.replace('{count}', String(hiddenCount))\n\n return (\n <Box sx={styles.otherRow}>\n <Typography sx={styles.otherLabel}>{otherLabel}</Typography>\n <Typography sx={styles.otherCount}>({countText})</Typography>\n </Box>\n )\n}\n","import { Box, Typography } from '@mui/material'\nimport { styles } from '../style'\nimport type { CategorySeriesConfig } from '../types'\n\nexport interface CategoryLegendProps {\n series: CategorySeriesConfig[]\n colors: string[]\n}\n\nexport function CategoryLegend({ series, colors }: CategoryLegendProps) {\n if (series.length === 0) {\n return null\n }\n\n return (\n <Box sx={styles.legend}>\n {series.map((item, index) => (\n <Box key={item.name} sx={styles.legendItem}>\n <Box\n sx={{\n ...styles.legendDot,\n backgroundColor: item.color ?? colors[index % colors.length],\n }}\n />\n <Typography sx={styles.legendLabel}>{item.name}</Typography>\n </Box>\n ))}\n </Box>\n )\n}\n","import { Box, useTheme } from '@mui/material'\nimport { useMemo } from 'react'\nimport { useWidgetStore } from '../stores/widget-store'\nimport { styles } from './style'\nimport type { CategoryUIProps, CategoryWidgetState } from './types'\nimport {\n CategoryRowSingle,\n CategoryRowMulti,\n CategoryRowOther,\n CategoryLegend,\n} from './components'\nimport { useShallow } from 'zustand/shallow'\n\nconst defaultFormatter = (value: number) => value.toString()\n\ninterface GroupedCategoryItem {\n name: string\n values: number[]\n}\n\nexport function CategoryUI({ id }: CategoryUIProps) {\n const theme = useTheme()\n const widget = useWidgetStore(\n useShallow((state) => {\n const widget = state.getWidget<CategoryWidgetState>(id)\n return {\n formatter: widget?.formatter,\n series: widget?.series,\n data: widget?.data,\n maxItems: widget?.maxItems,\n labels: widget?.labels,\n onRowClick: widget?.onRowClick,\n selected: widget?.selected,\n max: widget?.max,\n }\n }),\n )\n\n const formatter = widget?.formatter ?? defaultFormatter\n const series = useMemo(() => widget?.series ?? [], [widget?.series])\n const data = widget?.data\n const maxItems = widget?.maxItems\n const labels = widget?.labels\n const onRowClick = widget?.onRowClick\n const selected = widget?.selected\n const max = widget?.max\n\n const qualitativeColors = useMemo(\n () => Object.values(theme.palette.qualitative.bold),\n [theme.palette.qualitative.bold],\n )\n\n const colors = useMemo((): string[] => {\n if (series.length > 0) {\n return series.map(\n (s, index: number) =>\n s.color ??\n qualitativeColors[index % qualitativeColors.length] ??\n theme.palette.primary.main,\n )\n }\n return [theme.palette.primary.main]\n }, [series, theme.palette.primary.main, qualitativeColors])\n\n // Group data items by name to support multi-series display\n // data is CategoryDataItem[][] where data[seriesIndex] contains items for that series\n const groupedData = useMemo((): GroupedCategoryItem[] => {\n if (!data || data.length === 0) return []\n\n const seriesCount = Math.max(data.length, 1)\n const grouped = new Map<string, number[]>()\n const nameOrder: string[] = []\n\n // Iterate over each series (outer array)\n for (let seriesIndex = 0; seriesIndex < data.length; seriesIndex++) {\n const seriesData = data[seriesIndex]!\n for (const item of seriesData) {\n let values = grouped.get(item.name)\n if (!values) {\n values = new Array<number>(seriesCount).fill(0)\n grouped.set(item.name, values)\n nameOrder.push(item.name)\n }\n values[seriesIndex] = item.value\n }\n }\n\n return nameOrder.map((name) => ({\n name,\n values: grouped.get(name)!,\n }))\n }, [data])\n\n const maxValue = useMemo(() => {\n // If max is explicitly configured, use it\n if (max !== undefined) {\n return max\n }\n\n // Otherwise, calculate from data (existing behavior)\n if (groupedData.length === 0) return 0\n return Math.max(...groupedData.flatMap((item) => item.values))\n }, [max, groupedData])\n\n // Slice data to maxItems and compute hidden count\n const visibleData = useMemo(() => {\n if (maxItems === undefined) {\n return groupedData\n }\n const limit = Math.max(0, maxItems)\n if (limit >= groupedData.length) {\n return groupedData\n }\n return groupedData.slice(0, limit)\n }, [groupedData, maxItems])\n\n const hiddenCount = groupedData.length - visibleData.length\n\n if (groupedData.length === 0) {\n return null\n }\n\n const isMulti = series.length > 1\n\n return (\n <Box sx={styles.root}>\n <Box sx={styles.list}>\n {isMulti\n ? visibleData.map((item) => (\n <CategoryRowMulti\n key={item.name}\n name={item.name}\n values={item.values}\n maxValue={maxValue}\n colors={colors}\n formatter={formatter}\n onClick={onRowClick}\n selected={selected?.(item.name) ?? true}\n />\n ))\n : visibleData.map((item) => (\n <CategoryRowSingle\n key={item.name}\n name={item.name}\n value={item.values[0] ?? 0}\n selected={selected?.(item.name) ?? true}\n maxValue={maxValue}\n color={colors[0] ?? theme.palette.primary.main}\n formatter={formatter}\n onClick={onRowClick}\n />\n ))}\n {hiddenCount > 0 && (\n <CategoryRowOther\n hiddenCount={hiddenCount}\n otherLabel={labels?.other}\n otherCountLabel={labels?.otherCount}\n />\n )}\n </Box>\n {series.length > 0 && <CategoryLegend series={series} colors={colors} />}\n </Box>\n )\n}\n","import { Box, Skeleton } from '@mui/material'\nimport { styles } from './style'\n\nconst widthPatterns = [85, 70, 55, 75, 60]\n\nexport function CategorySkeleton() {\n return (\n <Box sx={styles.list} aria-label='Category skeleton'>\n {Array.from({ length: 5 }).map((_, index) => (\n <Box key={index} sx={styles.row}>\n <Box sx={styles.rowHeader}>\n <Skeleton width={80} height={16} />\n <Skeleton width={40} height={16} />\n </Box>\n <Skeleton\n variant='rectangular'\n height={4}\n sx={{ borderRadius: 2, width: `${widthPatterns[index]}%` }}\n />\n </Box>\n ))}\n </Box>\n )\n}\n","import { downloadToCSV, downloadToPNG, type DownloadItem } from '../actions'\nimport type { ConfigProps } from '../loader/types'\nimport type {\n CategoryWidgetConfig,\n CategoryWidgetData,\n CategorySeriesConfig,\n CategoryLabels,\n} from './types'\n\nexport interface CategoryDownloadConfigProps extends ConfigProps {\n series?: CategorySeriesConfig[]\n}\n\nexport interface CategoryConfigProps {\n data?: CategoryWidgetData\n series?: CategorySeriesConfig[]\n formatter?: (value: number) => string\n maxItems?: number\n labels?: CategoryLabels\n max?: number\n}\n\nexport function categoryDownloadConfig({\n refUI,\n series,\n}: CategoryDownloadConfigProps): DownloadItem<CategoryWidgetData>[] {\n return [\n {\n ...downloadToPNG,\n modifier: () => downloadToPNG.modifier(refUI),\n },\n {\n ...downloadToCSV,\n modifier: async (data) => {\n if (!data?.length || data[0]?.length === 0) {\n return downloadToCSV.modifier([])\n }\n\n // data is CategoryDataItem[][] where data[seriesIndex] contains items for that series\n const seriesCount = data.length\n const grouped = new Map<string, number[]>()\n const nameOrder: string[] = []\n\n // Iterate over each series (outer array)\n for (let seriesIndex = 0; seriesIndex < seriesCount; seriesIndex++) {\n const seriesData = data[seriesIndex]!\n for (const item of seriesData) {\n let values = grouped.get(item.name)\n if (!values) {\n values = new Array<number>(seriesCount).fill(0)\n grouped.set(item.name, values)\n nameOrder.push(item.name)\n }\n values[seriesIndex] = item.value\n }\n }\n\n // Build rows\n const rows = nameOrder.map((name) => [name, ...grouped.get(name)!])\n\n const isMulti = seriesCount > 1\n const headers = isMulti\n ? [\n 'Category',\n ...(series?.map((s: CategorySeriesConfig) => s.name) ??\n Array.from(\n { length: seriesCount },\n (_, i) => `Series ${i + 1}`,\n )),\n ]\n : ['Category', 'Value']\n\n return downloadToCSV.modifier([headers, ...rows])\n },\n },\n ]\n}\n\nexport function categoryConfig(): CategoryWidgetConfig {\n return {\n series: [],\n maxItems: undefined,\n max: undefined,\n }\n}\n"],"names":["styles","root","display","flexDirection","position","overflow","list","gap","theme","spacing","row","pointerEvents","rowClickable","rowHeader","justifyContent","alignItems","rowLabel","typography","fontWeight","color","rowValue","barContainer","bar","height","borderRadius","backgroundColor","palette","action","disabledBackground","transition","cursor","hover","filter","barFill","barFillMuted","disabled","legend","flexWrap","paddingTop","bottom","borderTop","divider","marginTop","legendItem","legendDot","width","legendLabel","textTransform","multiBarRow","multiBarValue","minWidth","textAlign","multiBarContainer","flex","otherRow","otherLabel","fontStyle","otherCount","CategoryBar","t0","$","_c","value","maxValue","selected","t1","undefined","percentage","t2","barFillSx","t3","jsx","Box","CategoryRowSingle","name","formatter","onClick","handleClick","rowStyle","Typography","t4","t5","t6","t7","t8","jsxs","CategoryRowMulti","values","colors","index","length","map","CategoryRowOther","hiddenCount","otherCountLabel","replace","String","countText","CategoryLegend","series","item","defaultFormatter","toString","CategoryUI","id","useTheme","state","widget","getWidget","data","maxItems","labels","onRowClick","max","widget_0","useWidgetStore","useShallow","qualitative","bold","Object","qualitativeColors","bb0","primary","main","s","bb1","Symbol","for","seriesCount","Math","grouped","Map","nameOrder","seriesIndex","seriesData","get","Array","fill","set","push","groupedData","bb2","flatMap","_temp","bb3","limit","slice","visibleData","isMulti","item_1","item_2","t9","other","t10","t11","t12","item_0","widthPatterns","CategorySkeleton","from","_","Skeleton","categoryDownloadConfig","refUI","downloadToPNG","modifier","downloadToCSV","rows","headers","i","categoryConfig"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"category.js","sources":["../../src/widgets/category/style.ts","../../src/widgets/category/components/category-bar.tsx","../../src/widgets/category/components/category-row-single.tsx","../../src/widgets/category/components/category-row-multi.tsx","../../src/widgets/category/components/category-row-other.tsx","../../src/widgets/category/components/category-legend.tsx","../../src/widgets/category/category-ui.tsx","../../src/widgets/category/skeleton.tsx","../../src/widgets/category/config.ts"],"sourcesContent":["import type { SxProps, Theme } from '@mui/material'\n\nexport const styles = {\n root: {\n display: 'flex',\n flexDirection: 'column',\n position: 'relative',\n },\n list: {\n display: 'flex',\n flexDirection: 'column',\n gap: (theme: Theme) => theme.spacing(1),\n },\n row: {\n display: 'flex',\n flexDirection: 'column',\n gap: (theme: Theme) => theme.spacing(0.5),\n pointerEvents: 'none',\n },\n rowClickable: {\n pointerEvents: 'auto',\n // display: 'flex',\n // flexDirection: 'column',\n // gap: (theme: Theme) => theme.spacing(0.5),\n // cursor: 'pointer',\n // borderRadius: 1,\n // padding: (theme: Theme) => theme.spacing(0.5),\n // margin: (theme: Theme) => theme.spacing(-0.5),\n // transition: 'background-color 0.15s ease-in-out',\n // '&:hover': {\n // backgroundColor: (theme: Theme) => theme.palette.action.hover,\n // },\n },\n rowHeader: {\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n },\n rowLabel: {\n typography: 'body2',\n fontWeight: 'medium',\n color: 'text.primary',\n },\n rowValue: {\n typography: 'body2',\n color: 'text.secondary',\n },\n barContainer: {\n display: 'flex',\n flexDirection: 'column',\n },\n bar: {\n height: 4,\n borderRadius: 2,\n backgroundColor: (theme: Theme) => theme.palette.action.disabledBackground,\n overflow: 'hidden',\n position: 'relative',\n transition: 'background-color 0.15s ease-in-out',\n cursor: 'pointer',\n '&:hover': {\n backgroundColor: (theme: Theme) => theme.palette.action.hover,\n\n '& > div': {\n filter: 'brightness(1.2)',\n },\n },\n },\n barFill: {\n height: '100%',\n borderRadius: 2,\n transition: 'width 0.3s ease-in-out, background-color 0.15s ease-in-out',\n },\n barFillMuted: {\n backgroundColor: (theme: Theme) => theme.palette.action.disabled,\n },\n legend: {\n display: 'flex',\n alignItems: 'center',\n gap: (theme: Theme) => theme.spacing(2),\n flexWrap: 'wrap',\n paddingTop: (theme: Theme) => theme.spacing(2),\n position: 'sticky',\n bottom: 0,\n backgroundColor: 'background.paper',\n borderTop: (theme: Theme) => `1px solid ${theme.palette.divider}`,\n marginTop: (theme: Theme) => theme.spacing(2),\n },\n legendItem: {\n display: 'flex',\n alignItems: 'center',\n gap: (theme: Theme) => theme.spacing(1),\n },\n legendDot: {\n width: 8,\n height: 8,\n borderRadius: '50%',\n },\n legendLabel: {\n typography: 'caption',\n color: 'text.secondary',\n textTransform: 'uppercase',\n fontWeight: 'medium',\n },\n multiBarRow: {\n display: 'flex',\n alignItems: 'center',\n gap: (theme: Theme) => theme.spacing(1),\n },\n multiBarValue: {\n typography: 'body2',\n color: 'text.secondary',\n minWidth: 48,\n textAlign: 'right',\n },\n multiBarContainer: {\n flex: 1,\n },\n otherRow: {\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n },\n otherLabel: {\n typography: 'body2',\n fontWeight: 'medium',\n color: 'text.secondary',\n fontStyle: 'italic',\n },\n otherCount: {\n typography: 'body2',\n color: 'text.disabled',\n },\n} satisfies Record<string, SxProps<Theme>>\n","import { Box } from '@mui/material'\nimport { styles } from '../style'\n\nexport interface CategoryBarProps {\n value: number\n maxValue: number\n color: string\n selected?: boolean\n}\n\nexport function CategoryBar({\n value,\n maxValue,\n color,\n selected = true,\n}: CategoryBarProps) {\n const percentage = maxValue > 0 ? (value / maxValue) * 100 : 0\n\n const barFillSx = selected\n ? { ...styles.barFill, width: `${percentage}%`, backgroundColor: color }\n : { ...styles.barFill, ...styles.barFillMuted, width: `${percentage}%` }\n\n return (\n <Box sx={styles.bar}>\n <Box sx={barFillSx} />\n </Box>\n )\n}\n","import { Box, Typography } from '@mui/material'\nimport { styles } from '../style'\nimport { CategoryBar } from './category-bar'\nimport type { CategoryWidgetConfig } from '../types'\n\nexport interface CategoryRowSingleProps {\n name: string\n value: number\n maxValue: number\n color: string\n formatter: NonNullable<CategoryWidgetConfig['formatter']>\n onClick?: CategoryWidgetConfig['onRowClick']\n selected?: boolean\n}\n\nexport function CategoryRowSingle({\n name,\n value,\n maxValue,\n color,\n formatter,\n onClick,\n selected = true,\n}: CategoryRowSingleProps) {\n const handleClick = onClick\n ? () =>\n onClick({\n name,\n })\n : undefined\n const rowStyle = onClick ? styles.rowClickable : styles.row\n\n return (\n <Box sx={rowStyle} onClick={handleClick}>\n <Box sx={styles.rowHeader}>\n <Typography sx={styles.rowLabel}>{name}</Typography>\n <Typography sx={styles.rowValue}>{formatter(value)}</Typography>\n </Box>\n <CategoryBar\n value={value}\n maxValue={maxValue}\n color={color}\n selected={selected}\n />\n </Box>\n )\n}\n","import { Box, Typography } from '@mui/material'\nimport { styles } from '../style'\nimport { CategoryBar } from './category-bar'\nimport type { CategoryWidgetConfig } from '../types'\n\nexport interface CategoryRowMultiProps {\n name: string\n values: number[]\n maxValue: number\n colors: string[]\n formatter: NonNullable<CategoryWidgetConfig['formatter']>\n onClick?: CategoryWidgetConfig['onRowClick']\n selected?: boolean\n}\n\nexport function CategoryRowMulti({\n name,\n values,\n maxValue,\n colors,\n formatter,\n onClick,\n selected = true,\n}: CategoryRowMultiProps) {\n const handleClick = onClick ? () => onClick({ name }) : undefined\n const rowStyle = onClick ? styles.rowClickable : styles.row\n\n return (\n <Box sx={rowStyle} onClick={handleClick}>\n <Typography sx={styles.rowLabel}>{name}</Typography>\n <Box sx={styles.barContainer}>\n {values.map((value, index) => (\n <Box key={`${name}-${value}-${index}`} sx={styles.multiBarRow}>\n <Box sx={styles.multiBarContainer}>\n <CategoryBar\n value={value}\n maxValue={maxValue}\n color={colors[index % colors.length] ?? ''}\n selected={selected}\n />\n </Box>\n <Typography sx={styles.multiBarValue}>\n {formatter(value)}\n </Typography>\n </Box>\n ))}\n </Box>\n </Box>\n )\n}\n","import { Box, Typography } from '@mui/material'\nimport { styles } from '../style'\n\nexport interface CategoryRowOtherProps {\n hiddenCount: number\n otherLabel?: string\n otherCountLabel?: string\n}\n\nexport function CategoryRowOther({\n hiddenCount,\n otherLabel = 'Other',\n otherCountLabel = '{count} more',\n}: CategoryRowOtherProps) {\n const countText = otherCountLabel.replace('{count}', String(hiddenCount))\n\n return (\n <Box sx={styles.otherRow}>\n <Typography sx={styles.otherLabel}>{otherLabel}</Typography>\n <Typography sx={styles.otherCount}>({countText})</Typography>\n </Box>\n )\n}\n","import { Box, Typography } from '@mui/material'\nimport { styles } from '../style'\nimport type { CategorySeriesConfig } from '../types'\n\nexport interface CategoryLegendProps {\n series: CategorySeriesConfig[]\n colors: string[]\n}\n\nexport function CategoryLegend({ series, colors }: CategoryLegendProps) {\n if (series.length === 0) {\n return null\n }\n\n return (\n <Box sx={styles.legend}>\n {series.map((item, index) => (\n <Box key={item.name} sx={styles.legendItem}>\n <Box\n sx={{\n ...styles.legendDot,\n backgroundColor: item.color ?? colors[index % colors.length],\n }}\n />\n <Typography sx={styles.legendLabel}>{item.name}</Typography>\n </Box>\n ))}\n </Box>\n )\n}\n","import { Box, useTheme } from '@mui/material'\nimport { useWidgetStore } from '../stores/widget-store'\nimport { styles } from './style'\nimport type { CategoryUIProps, CategoryWidgetState } from './types'\nimport {\n CategoryRowSingle,\n CategoryRowMulti,\n CategoryRowOther,\n CategoryLegend,\n} from './components'\nimport { useShallow } from 'zustand/shallow'\nimport { useState } from 'react'\n\nconst defaultFormatter = (value: number) => value.toString()\n\nexport function CategoryUI({ id }: CategoryUIProps) {\n const theme = useTheme()\n const widget = useWidgetStore(\n useShallow((state) => {\n const widget = state.getWidget<CategoryWidgetState>(id)\n return {\n formatter: widget?.formatter,\n series: widget?.series,\n data: widget?.data,\n maxItems: widget?.maxItems,\n labels: widget?.labels,\n onRowClick: widget?.onRowClick,\n selected: widget?.selected,\n max: widget?.max,\n }\n }),\n )\n\n const formatter = widget?.formatter ?? defaultFormatter\n const series = widget?.series ?? []\n const data = widget?.data\n const maxItems = widget?.maxItems\n const labels = widget?.labels\n const onRowClick = widget?.onRowClick\n const selected = widget?.selected\n const max = widget?.max\n\n const [maxHeight] = useState<string | number | undefined>(\n maxItems ? 40 * maxItems : undefined,\n )\n\n const qualitativeColors = Object.values(theme.palette.qualitative.bold)\n\n const colors =\n series.length > 0\n ? series.map(\n (s, index: number) =>\n s.color ??\n qualitativeColors[index % qualitativeColors.length] ??\n theme.palette.primary.main,\n )\n : [theme.palette.primary.main]\n\n // Group data items by name to support multi-series display\n // data is CategoryDataItem[][] where data[seriesIndex] contains items for that series\n const groupedData = generateGroupedData({ data })\n\n if (groupedData.length === 0) {\n return null\n }\n\n const maxValue =\n max ?? Math.max(...groupedData.flatMap((item) => item.values))\n\n // Slice data to maxItems and compute hidden count\n const visibleData =\n maxItems !== undefined && maxItems >= 0\n ? groupedData.slice(0, maxItems)\n : groupedData\n\n const hiddenCount = groupedData.length - visibleData.length\n\n const isMulti = series.length > 1\n\n return (\n <Box\n sx={{\n ...styles.root,\n overflow: hiddenCount === 0 ? 'auto' : 'hidden',\n maxHeight,\n }}\n >\n <Box sx={styles.list}>\n {isMulti\n ? visibleData.map((item) => (\n <CategoryRowMulti\n key={item.name}\n name={item.name}\n values={item.values}\n maxValue={maxValue}\n colors={colors}\n formatter={formatter}\n onClick={onRowClick}\n selected={selected?.(item.name) ?? true}\n />\n ))\n : visibleData.map((item) => (\n <CategoryRowSingle\n key={item.name}\n name={item.name}\n value={item.values[0] ?? 0}\n selected={selected?.(item.name) ?? true}\n maxValue={maxValue}\n color={colors[0] ?? theme.palette.primary.main}\n formatter={formatter}\n onClick={onRowClick}\n />\n ))}\n {hiddenCount > 0 && (\n <CategoryRowOther\n hiddenCount={hiddenCount}\n otherLabel={labels?.other}\n otherCountLabel={labels?.otherCount}\n />\n )}\n </Box>\n {series.length > 0 && <CategoryLegend series={series} colors={colors} />}\n </Box>\n )\n}\n\nfunction generateGroupedData({\n data,\n}: {\n data: { name: string; value: number }[][] | undefined\n}) {\n if (!data || data.length === 0) return []\n\n const seriesCount = Math.max(data.length, 1)\n const grouped = new Map<string, number[]>()\n const nameOrder: string[] = []\n\n // Iterate over each series (outer array)\n for (let seriesIndex = 0; seriesIndex < data.length; seriesIndex++) {\n const seriesData = data[seriesIndex]!\n for (const item of seriesData) {\n let values = grouped.get(item.name)\n if (!values) {\n values = new Array<number>(seriesCount).fill(0)\n grouped.set(item.name, values)\n nameOrder.push(item.name)\n }\n values[seriesIndex] = item.value\n }\n }\n\n return nameOrder.map((name) => ({\n name,\n values: grouped.get(name)!,\n }))\n}\n","import { Box, Skeleton } from '@mui/material'\nimport { styles } from './style'\n\nconst widthPatterns = [85, 70, 55, 75, 60]\n\nexport function CategorySkeleton() {\n return (\n <Box sx={styles.list} aria-label='Category skeleton'>\n {Array.from({ length: 5 }).map((_, index) => (\n <Box key={index} sx={styles.row}>\n <Box sx={styles.rowHeader}>\n <Skeleton width={80} height={16} />\n <Skeleton width={40} height={16} />\n </Box>\n <Skeleton\n variant='rectangular'\n height={4}\n sx={{ borderRadius: 2, width: `${widthPatterns[index]}%` }}\n />\n </Box>\n ))}\n </Box>\n )\n}\n","import { downloadToCSV, downloadToPNG, type DownloadItem } from '../actions'\nimport type { ConfigProps } from '../loader/types'\nimport type {\n CategoryWidgetConfig,\n CategoryWidgetData,\n CategorySeriesConfig,\n CategoryLabels,\n} from './types'\n\nexport interface CategoryDownloadConfigProps extends ConfigProps {\n series?: CategorySeriesConfig[]\n}\n\nexport interface CategoryConfigProps {\n data?: CategoryWidgetData\n series?: CategorySeriesConfig[]\n formatter?: (value: number) => string\n maxItems?: number\n labels?: CategoryLabels\n max?: number\n}\n\nexport function categoryDownloadConfig({\n refUI,\n series,\n}: CategoryDownloadConfigProps): DownloadItem<CategoryWidgetData>[] {\n return [\n {\n ...downloadToPNG,\n modifier: () => downloadToPNG.modifier(refUI),\n },\n {\n ...downloadToCSV,\n modifier: async (data) => {\n if (!data?.length || data[0]?.length === 0) {\n return downloadToCSV.modifier([])\n }\n\n // data is CategoryDataItem[][] where data[seriesIndex] contains items for that series\n const seriesCount = data.length\n const grouped = new Map<string, number[]>()\n const nameOrder: string[] = []\n\n // Iterate over each series (outer array)\n for (let seriesIndex = 0; seriesIndex < seriesCount; seriesIndex++) {\n const seriesData = data[seriesIndex]!\n for (const item of seriesData) {\n let values = grouped.get(item.name)\n if (!values) {\n values = new Array<number>(seriesCount).fill(0)\n grouped.set(item.name, values)\n nameOrder.push(item.name)\n }\n values[seriesIndex] = item.value\n }\n }\n\n // Build rows\n const rows = nameOrder.map((name) => [name, ...grouped.get(name)!])\n\n const isMulti = seriesCount > 1\n const headers = isMulti\n ? [\n 'Category',\n ...(series?.map((s: CategorySeriesConfig) => s.name) ??\n Array.from(\n { length: seriesCount },\n (_, i) => `Series ${i + 1}`,\n )),\n ]\n : ['Category', 'Value']\n\n return downloadToCSV.modifier([headers, ...rows])\n },\n },\n ]\n}\n\nexport function categoryConfig(): CategoryWidgetConfig {\n return {\n series: [],\n maxItems: undefined,\n max: undefined,\n }\n}\n"],"names":["styles","root","display","flexDirection","position","list","gap","theme","spacing","row","pointerEvents","rowClickable","rowHeader","justifyContent","alignItems","rowLabel","typography","fontWeight","color","rowValue","barContainer","bar","height","borderRadius","backgroundColor","palette","action","disabledBackground","overflow","transition","cursor","hover","filter","barFill","barFillMuted","disabled","legend","flexWrap","paddingTop","bottom","borderTop","divider","marginTop","legendItem","legendDot","width","legendLabel","textTransform","multiBarRow","multiBarValue","minWidth","textAlign","multiBarContainer","flex","otherRow","otherLabel","fontStyle","otherCount","CategoryBar","t0","$","_c","value","maxValue","selected","t1","undefined","percentage","t2","barFillSx","t3","jsx","Box","CategoryRowSingle","name","formatter","onClick","handleClick","rowStyle","Typography","t4","t5","t6","t7","t8","jsxs","CategoryRowMulti","values","colors","index","length","map","CategoryRowOther","hiddenCount","otherCountLabel","replace","String","countText","CategoryLegend","series","item","defaultFormatter","toString","CategoryUI","id","useTheme","state","widget","getWidget","data","maxItems","labels","onRowClick","max","widget_0","useWidgetStore","useShallow","maxHeight","useState","qualitativeColors","Object","qualitative","bold","s","primary","main","T0","T1","Symbol","for","bb0","groupedData","generateGroupedData","Math","flatMap","_temp","visibleData","slice","isMulti","item_0","item_1","other","t9","seriesCount","grouped","Map","nameOrder","seriesIndex","seriesData","get","Array","fill","set","push","widthPatterns","CategorySkeleton","from","_","Skeleton","categoryDownloadConfig","refUI","downloadToPNG","modifier","downloadToCSV","rows","headers","i","categoryConfig"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wrapper.js","sources":["../../src/widgets/wrapper/styles.ts","../../src/widgets/wrapper/components/actions.tsx","../../src/widgets/wrapper/components/options.tsx","../../src/widgets/wrapper/components/title.tsx","../../src/widgets/wrapper/wrapper-ui.tsx","../../src/widgets/wrapper/wrapper.tsx"],"sourcesContent":["import type { SxProps, Theme } from '@mui/material'\n\nexport const styles = {\n root: {\n '.Mui-disabled .MuiAccordionSummary-expandIconWrapper': {\n display: 'none',\n },\n\n '.widget-wrapper-actions > *': {\n opacity: 1,\n transition: ({ transitions }) =>\n transitions.create('opacity', {\n duration: transitions.duration.standard,\n easing: transitions.easing.easeInOut,\n }),\n\n '@media (hover: hover)': {\n opacity: 0,\n },\n\n '&:has(.active)': {\n opacity: 1,\n },\n },\n '&:hover': {\n '& .widget-wrapper-actions > *': {\n opacity: 1,\n },\n },\n\n '&.collapsed .widget-wrapper-actions > *': {\n opacity: 0,\n pointerEvents: 'none',\n\n '&:has(.active)': {\n opacity: 1,\n },\n },\n },\n summary: {\n minHeight: ({ spacing }) => spacing(7),\n '& .MuiAccordionSummary-content': {\n gap: ({ spacing }) => spacing(0.5),\n paddingInlineEnd: ({ spacing }) => spacing(0.75),\n },\n },\n loading: {\n height: ({ spacing }) => spacing(0.35),\n left: 0,\n position: 'absolute',\n top: 0,\n width: '100%',\n zIndex: 1,\n },\n title: {\n wrapper: {\n flexGrow: 1,\n flexShrink: 1,\n minWidth: 0,\n display: 'flex',\n justifyContent: 'center',\n flexDirection: 'column',\n },\n container: {\n display: 'flex',\n alignItems: 'center',\n flexGrow: 1,\n minHeight: ({ spacing }) => spacing(3),\n },\n text: {\n wordBreak: 'break-word',\n overflow: 'hidden',\n display: '-webkit-box',\n WebkitLineClamp: 2,\n WebkitBoxOrient: 'vertical',\n },\n },\n actions: {\n display: 'flex',\n gap: ({ spacing }) => spacing(0.5),\n alignItems: 'center',\n flexShrink: 0,\n justifyContent: 'flex-end',\n '& > div': {\n pointerEvents: 'auto',\n },\n },\n options: {\n trigger: {\n pointerEvents: 'auto',\n },\n },\n detail: {\n display: 'flex',\n flexDirection: 'column',\n gap: ({ spacing }) => spacing(1),\n paddingTop: ({ spacing }) => spacing(0.5),\n },\n} satisfies Record<string, SxProps<Theme>>\n","import { Box } from '@mui/material'\nimport type { WrapperActionsProps } from '../types'\nimport { styles } from '../styles'\n\nexport function Actions({ actions = [] }: WrapperActionsProps) {\n return (\n <Box sx={styles.actions} className='widget-wrapper-actions'>\n {actions.map((action, index) => {\n // Prefer action.key if present (React elements), else fallback to index\n const key =\n action &&\n typeof action === 'object' &&\n 'key' in action &&\n action.key != null\n ? action.key\n : index\n return (\n <Box\n key={key}\n onClick={(e) => {\n e.stopPropagation()\n }}\n >\n {action}\n </Box>\n )\n })}\n </Box>\n )\n}\n","import { MoreVert } from '@mui/icons-material'\nimport {\n IconButton,\n Menu,\n MenuItem,\n ListItemIcon,\n ListItemText,\n} from '@mui/material'\nimport type { WrapperOptionsProps } from '../types'\nimport { useState } from 'react'\nimport { styles } from '../styles'\n\nexport function Options({ labels, options = [] }: WrapperOptionsProps) {\n const [anchorEl, setAnchorEl] = useState<null | HTMLElement>(null)\n\n const handleOptionAction = (\n e: React.MouseEvent<HTMLElement>,\n option: NonNullable<WrapperOptionsProps['options']>[number],\n ) => {\n e.stopPropagation()\n option.onClick()\n setAnchorEl(null)\n }\n\n return (\n <>\n <IconButton\n sx={styles.options.trigger}\n size='small'\n aria-label={labels?.title ?? 'Options'}\n aria-controls='options-menu'\n aria-haspopup='true'\n onClick={(e) => {\n e.stopPropagation()\n setAnchorEl(e.currentTarget)\n }}\n >\n <MoreVert />\n </IconButton>\n <Menu\n variant='menu'\n elevation={8}\n anchorOrigin={{\n vertical: 'top',\n horizontal: 'right',\n }}\n transformOrigin={{\n vertical: 'top',\n horizontal: 'right',\n }}\n anchorEl={anchorEl}\n open={Boolean(anchorEl)}\n onClose={() => setAnchorEl(null)}\n MenuListProps={{\n sx: {\n paddingBottom: 0,\n },\n }}\n >\n {options.map((option, idx) => (\n <MenuItem\n key={`${option.label}-${idx}`}\n disabled={option.disabled}\n onClick={(e) => handleOptionAction(e, option)}\n >\n {option.icon && <ListItemIcon>{option.icon}</ListItemIcon>}\n <ListItemText>{option.label}</ListItemText>\n </MenuItem>\n ))}\n </Menu>\n </>\n )\n}\n","import { Box, Typography } from '@mui/material'\nimport { styles } from '../styles'\nimport { SmartTooltip } from '../../../components'\nimport type { ReactNode } from 'react'\nimport type { WrapperOptionsProps } from '../types'\n\nexport function Title({\n label,\n children,\n}: {\n children: ReactNode\n label?: NonNullable<WrapperOptionsProps['labels']>['title']\n}) {\n return (\n <SmartTooltip\n title={label ?? (typeof children === 'string' ? children : '')}\n >\n {({ ref }) => (\n <Box sx={styles.title.container}>\n <Typography\n sx={styles.title.text}\n ref={ref}\n variant='subtitle1'\n textTransform='none'\n >\n {children}\n </Typography>\n </Box>\n )}\n </SmartTooltip>\n )\n}\n","import {\n Accordion,\n AccordionDetails,\n AccordionSummary,\n LinearProgress,\n} from '@mui/material'\nimport { styles } from './styles'\nimport { Title } from './components/title'\nimport type { WrapperState, WrapperUIProps } from './types'\nimport { Options } from './components/options'\nimport { Actions } from './components/actions'\nimport { useWidgetStore } from '../stores/widget-store'\nimport { useShallow } from 'zustand/shallow'\n\nexport function WrapperUI({\n children,\n id,\n actions = [],\n sx,\n labels,\n options = [],\n onChangeCollapsed,\n}: WrapperUIProps) {\n const widget = useWidgetStore(\n useShallow((state) => {\n const widget = state.getWidget<WrapperState>(id)\n return {\n title: widget?.title,\n collapsed: widget?.collapsed,\n disabled: widget?.disabled,\n isFetching: widget?.isFetching,\n }\n }),\n )\n\n return (\n <Accordion\n className={widget?.collapsed ? 'collapsed' : ''}\n sx={{ ...styles.root, ...sx }}\n expanded={!widget?.collapsed}\n onChange={onChangeCollapsed}\n disabled={widget?.disabled}\n >\n <AccordionSummary sx={styles.summary}>\n {widget?.isFetching && (\n <LinearProgress sx={styles.loading} color='primary' />\n )}\n <Title>{widget?.title}</Title>\n {!!actions.length && <Actions actions={actions} />}\n {!!options.length && (\n <Options labels={labels?.options} options={options} />\n )}\n </AccordionSummary>\n <AccordionDetails sx={styles.detail}>{children}</AccordionDetails>\n </Accordion>\n )\n}\n","import type { WrapperProps, WrapperState } from './types'\nimport { WrapperUI } from './wrapper-ui'\nimport { useWidgetStore } from '../stores/widget-store'\nimport { useEffect } from 'react'\n\nexport function WidgetWrapper({\n id,\n title,\n defaultCollapsed,\n disabled,\n sx,\n actions,\n options,\n labels,\n children,\n onChangeCollapsed,\n}: WrapperProps) {\n const setWidget = useWidgetStore((state) => state.setWidget)\n\n // Consolidated effect: batch all wrapper state updates into a single store update\n // This prevents 3 separate re-render cycles on mount and prop changes\n useEffect(() => {\n setWidget<WrapperState>(id, {\n collapsed: defaultCollapsed,\n disabled,\n title,\n })\n }, [defaultCollapsed, disabled, title, id, setWidget])\n\n const handleChangeCollapsed = (\n event: React.SyntheticEvent<Element, Event>,\n expanded: boolean,\n ) => {\n onChangeCollapsed?.(event, expanded)\n setWidget<WrapperState>(id, { collapsed: !expanded })\n }\n\n return (\n <WrapperUI\n id={id}\n labels={labels}\n actions={actions}\n options={options}\n sx={sx}\n onChangeCollapsed={handleChangeCollapsed}\n >\n {children}\n </WrapperUI>\n )\n}\n"],"names":["styles","root","display","opacity","transition","transitions","create","duration","standard","easing","easeInOut","pointerEvents","summary","minHeight","spacing","gap","paddingInlineEnd","loading","height","left","position","top","width","zIndex","title","container","alignItems","flexGrow","text","wordBreak","overflow","WebkitLineClamp","WebkitBoxOrient","actions","flexShrink","justifyContent","options","trigger","detail","flexDirection","paddingTop","Actions","t0","$","_c","t1","t2","undefined","t3","map","_temp2","t4","Box","action","index","key","jsx","_temp","e","stopPropagation","Options","labels","anchorEl","setAnchorEl","useState","Symbol","for","option","onClick","handleOptionAction","t5","t6","e_0","currentTarget","MoreVert","t7","IconButton","t8","t9","vertical","horizontal","t10","Boolean","t11","t12","sx","paddingBottom","t13","t14","option_0","idx","MenuItem","disabled","e_1","icon","ListItemIcon","ListItemText","label","Menu","t15","Title","children","ref","Typography","SmartTooltip","WrapperUI","id","onChangeCollapsed","state","widget","getWidget","collapsed","isFetching","widget_0","useWidgetStore","useShallow","LinearProgress","length","jsxs","AccordionSummary","t16","AccordionDetails","t17","Accordion","WidgetWrapper","defaultCollapsed","setWidget","useEffect","event","expanded","handleChangeCollapsed"],"mappings":";;;;;;;;;;AAEO,MAAMA,IAAS;AAAA,EACpBC,MAAM;AAAA,IACJ,wDAAwD;AAAA,MACtDC,SAAS;AAAA,IAAA;AAAA,IAGX,+BAA+B;AAAA,MAC7BC,SAAS;AAAA,MACTC,YAAYA,CAAC;AAAA,QAAEC,aAAAA;AAAAA,MAAAA,MACbA,EAAYC,OAAO,WAAW;AAAA,QAC5BC,UAAUF,EAAYE,SAASC;AAAAA,QAC/BC,QAAQJ,EAAYI,OAAOC;AAAAA,MAAAA,CAC5B;AAAA,MAEH,yBAAyB;AAAA,QACvBP,SAAS;AAAA,MAAA;AAAA,MAGX,kBAAkB;AAAA,QAChBA,SAAS;AAAA,MAAA;AAAA,IACX;AAAA,IAEF,WAAW;AAAA,MACT,iCAAiC;AAAA,QAC/BA,SAAS;AAAA,MAAA;AAAA,IACX;AAAA,IAGF,2CAA2C;AAAA,MACzCA,SAAS;AAAA,MACTQ,eAAe;AAAA,MAEf,kBAAkB;AAAA,QAChBR,SAAS;AAAA,MAAA;AAAA,IACX;AAAA,EACF;AAAA,EAEFS,SAAS;AAAA,IACPC,WAAWA,CAAC;AAAA,MAAEC,SAAAA;AAAAA,IAAAA,MAAcA,EAAQ,CAAC;AAAA,IACrC,kCAAkC;AAAA,MAChCC,KAAKA,CAAC;AAAA,QAAED,SAAAA;AAAAA,MAAAA,MAAcA,EAAQ,GAAG;AAAA,MACjCE,kBAAkBA,CAAC;AAAA,QAAEF,SAAAA;AAAAA,MAAAA,MAAcA,EAAQ,IAAI;AAAA,IAAA;AAAA,EACjD;AAAA,EAEFG,SAAS;AAAA,IACPC,QAAQA,CAAC;AAAA,MAAEJ,SAAAA;AAAAA,IAAAA,MAAcA,EAAQ,IAAI;AAAA,IACrCK,MAAM;AAAA,IACNC,UAAU;AAAA,IACVC,KAAK;AAAA,IACLC,OAAO;AAAA,IACPC,QAAQ;AAAA,EAAA;AAAA,EAEVC,OAAO;AAAA,IASLC,WAAW;AAAA,MACTvB,SAAS;AAAA,MACTwB,YAAY;AAAA,MACZC,UAAU;AAAA,MACVd,WAAWA,CAAC;AAAA,QAAEC,SAAAA;AAAAA,MAAAA,MAAcA,EAAQ,CAAC;AAAA,IAAA;AAAA,IAEvCc,MAAM;AAAA,MACJC,WAAW;AAAA,MACXC,UAAU;AAAA,MACV5B,SAAS;AAAA,MACT6B,iBAAiB;AAAA,MACjBC,iBAAiB;AAAA,IAAA;AAAA,EACnB;AAAA,EAEFC,SAAS;AAAA,IACP/B,SAAS;AAAA,IACTa,KAAKA,CAAC;AAAA,MAAED,SAAAA;AAAAA,IAAAA,MAAcA,EAAQ,GAAG;AAAA,IACjCY,YAAY;AAAA,IACZQ,YAAY;AAAA,IACZC,gBAAgB;AAAA,IAChB,WAAW;AAAA,MACTxB,eAAe;AAAA,IAAA;AAAA,EACjB;AAAA,EAEFyB,SAAS;AAAA,IACPC,SAAS;AAAA,MACP1B,eAAe;AAAA,IAAA;AAAA,EACjB;AAAA,EAEF2B,QAAQ;AAAA,IACNpC,SAAS;AAAA,IACTqC,eAAe;AAAA,IACfxB,KAAKA,CAAC;AAAA,MAAED,SAAAA;AAAAA,IAAAA,MAAcA,EAAQ,CAAC;AAAA,IAC/B0B,YAAYA,CAAC;AAAA,MAAE1B,SAAAA;AAAAA,IAAAA,MAAcA,EAAQ,GAAG;AAAA,EAAA;AAE5C;AC9FO,SAAA2B,EAAAC,GAAA;AAAA,QAAAC,IAAAC,EAAA,CAAA,GAAiB;AAAA,IAAAX,SAAAY;AAAAA,EAAAA,IAAAH;AAAqC,MAAAI;AAAA,EAAAH,SAAAE,KAAnCC,IAAAD,MAAAE,SAAA,CAAA,IAAAF,GAAYF,OAAAE,GAAAF,OAAAG,KAAAA,IAAAH,EAAA,CAAA;AAAZ,QAAAV,IAAAa;AAAY,MAAAE;AAAA,EAAAL,SAAAV,KAG/Be,IAAAf,EAAOgB,IAAKC,CAmBZ,GAACP,OAAAV,GAAAU,OAAAK,KAAAA,IAAAL,EAAA,CAAA;AAAA,MAAAQ;AAAA,SAAAR,SAAAK,KApBJG,sBAACC,GAAA,EAAQ,IAAApD,EAAMiC,SAAoB,WAAA,0BAChCe,UAAAA,EAAAA,CAoBH,GAAML,OAAAK,GAAAL,OAAAQ,KAAAA,IAAAR,EAAA,CAAA,GArBNQ;AAqBM;AAvBH,SAAAD,EAAAG,GAAAC,GAAA;AAKC,QAAAC,IACEF,KACA,OAAOA,KAAW,YAClB,SAASA,KACTA,EAAME,OAAQ,OACVF,EAAME,MAJVD;AAKS,SAET,gBAAAE,EAACJ,GAAA,EAEU,SAAAK,kBADJF,CAMP;AAAM;AApBT,SAAAE,EAAAC,GAAA;AAgBOA,EAAAA,EAACC,gBAAAA;AAAkB;ACR1B,SAAAC,GAAAlB,GAAA;AAAA,QAAAC,IAAAC,EAAA,EAAA,GAAiB;AAAA,IAAAiB,QAAAA;AAAAA,IAAAzB,SAAAS;AAAAA,EAAAA,IAAAH;AAA6C,MAAAI;AAAA,EAAAH,SAAAE,KAAnCC,IAAAD,MAAAE,SAAA,CAAA,IAAAF,GAAYF,OAAAE,GAAAF,OAAAG,KAAAA,IAAAH,EAAA,CAAA;AAAZ,QAAAP,IAAAU,GAChC,CAAAgB,GAAAC,CAAA,IAAgCC,EAA6B,IAAI;AAAC,MAAAhB;AAAA,EAAAL,EAAA,CAAA,MAAAsB,OAAAC,IAAA,2BAAA,KAEvClB,IAAAA,CAAAU,GAAAS,MAAA;AAIzBT,IAAAA,EAACC,gBAAAA,GACDQ,EAAMC,QAAAA,GACNL,EAAY,IAAI;AAAA,EAAC,GAClBpB,OAAAK,KAAAA,IAAAL,EAAA,CAAA;AAPD,QAAA0B,IAA2BrB,GAcTG,IAAAU,GAAMrC,SAAN;AAA0B,MAAA8C,GAAAC;AAAA,EAAA5B,EAAA,CAAA,MAAAsB,OAAAC,IAAA,2BAAA,KAG7BI,IAAAE,CAAAA,MAAA;AACPd,IAAAA,EAACC,gBAAAA,GACDI,EAAYL,EAACe,aAAc;AAAA,EAAC,GAG9BF,sBAACG,GAAA,EAAQ,GAAG/B,OAAA2B,GAAA3B,OAAA4B,MAAAD,IAAA3B,EAAA,CAAA,GAAA4B,IAAA5B,EAAA,CAAA;AAAA,MAAAgC;AAAA,EAAAhC,SAAAQ,KAXdwB,sBAACC,GAAA,EACK,IAAA5E,EAAMoC,QAAQC,SACb,MAAA,SACO,cAAAc,GACE,iBAAA,gBACA,iBAAA,QACL,SAAAmB,GAKTC,UAAAA,GACF,GAAa5B,OAAAQ,GAAAR,OAAAgC,KAAAA,IAAAhC,EAAA,CAAA;AAAA,MAAAkC,GAAAC;AAAA,EAAAnC,EAAA,CAAA,MAAAsB,OAAAC,IAAA,2BAAA,KAIGW,IAAA;AAAA,IAAAE,UACF;AAAA,IAAKC,YACH;AAAA,EAAA,GAEGF,IAAA;AAAA,IAAAC,UACL;AAAA,IAAKC,YACH;AAAA,EAAA,GACbrC,OAAAkC,GAAAlC,OAAAmC,MAAAD,IAAAlC,EAAA,CAAA,GAAAmC,IAAAnC,EAAA,CAAA;AAEK,QAAAsC,IAAAC,EAAQpB;AAAS,MAAAqB,GAAAC;AAAA,EAAAzC,EAAA,CAAA,MAAAsB,OAAAC,IAAA,2BAAA,KACdiB,IAAAA,MAAMpB,EAAY,IAAI,GAChBqB,IAAA;AAAA,IAAAC,IACT;AAAA,MAAAC,eACa;AAAA,IAAA;AAAA,EACjB,GACD3C,OAAAwC,GAAAxC,QAAAyC,MAAAD,IAAAxC,EAAA,CAAA,GAAAyC,IAAAzC,EAAA,EAAA;AAAA,MAAA4C;AAAA,MAAA5C,UAAAP,GAAA;AAAA,QAAAoD;AAAA,IAAA7C,EAAA,EAAA,MAAAsB,OAAAC,IAAA,2BAAA,KAEYsB,IAAAA,CAAAC,GAAAC,wBACVC,GAAA,EAEW,UAAAxB,EAAMyB,UACP,SAAAC,CAAAA,MAAOxB,EAAmBX,GAAGS,CAAM,GAE3CA,UAAAA;AAAAA,MAAAA,EAAM2B,QAAS,gBAAAtC,EAACuC,GAAA,EAAc5B,UAAAA,EAAM2B,MAAM;AAAA,MAC3C,gBAAAtC,EAACwC,GAAA,EAAc7B,UAAAA,EAAM8B,MAAAA,CAAO;AAAA,IAAA,EAAA,GALvB,GAAG9B,EAAM8B,KAAM,IAAIP,CAAG,EAM7B,GACD/C,QAAA6C,KAAAA,IAAA7C,EAAA,EAAA,GATA4C,IAAAnD,EAAOa,IAAKuC,CASZ,GAAC7C,QAAAP,GAAAO,QAAA4C;AAAAA,EAAA;AAAAA,IAAAA,IAAA5C,EAAA,EAAA;AAAA,MAAA6C;AAAA,EAAA7C,EAAA,EAAA,MAAAmB,KAAAnB,UAAAsC,KAAAtC,EAAA,EAAA,MAAA4C,KA7BJC,sBAACU,GAAA,EACS,SAAA,QACG,WAAA,GACG,cAAArB,GAIG,iBAAAC,GAIPhB,UAAAA,GACJ,MAAAmB,GACG,SAAAE,GACM,eAAAC,GAMdG,UAAAA,GAUH,GAAO5C,QAAAmB,GAAAnB,QAAAsC,GAAAtC,QAAA4C,GAAA5C,QAAA6C,KAAAA,IAAA7C,EAAA,EAAA;AAAA,MAAAwD;AAAA,SAAAxD,EAAA,EAAA,MAAA6C,KAAA7C,UAAAgC,KA5CTwB,2BACExB,UAAAA;AAAAA,IAAAA;AAAAA,IAaAa;AAAAA,EAAAA,GA8BO,GACN7C,QAAA6C,GAAA7C,QAAAgC,GAAAhC,QAAAwD,KAAAA,IAAAxD,EAAA,EAAA,GA7CHwD;AA6CG;AChEA,SAAAC,GAAA1D,GAAA;AAAA,QAAAC,IAAAC,EAAA,CAAA,GAAe;AAAA,IAAAqD,OAAAA;AAAAA,IAAAI,UAAAA;AAAAA,EAAAA,IAAA3D,GASTG,IAAAoD,MAAU,OAAOI,KAAa,WAApBA,IAAA;AAA6C,MAAAvD;AAAA,EAAAH,SAAA0D,KAE7DvD,IAAAE,CAAAA,MAAA;AAAC,UAAA;AAAA,MAAAsD,KAAAA;AAAAA,IAAAA,IAAAtD;AAAO,6BACNI,GAAA,EAAQ,IAAApD,EAAMwB,MAAMC,WACnB,4BAAC8E,GAAA,EACK,IAAAvG,EAAMwB,MAAMI,MACX0E,KAAAA,GACG,SAAA,aACM,eAAA,QAEbD,UAAAA,GACH,GACF;AAAA,EAAM,GACP1D,OAAA0D,GAAA1D,OAAAG,KAAAA,IAAAH,EAAA,CAAA;AAAA,MAAAK;AAAA,SAAAL,EAAA,CAAA,MAAAE,KAAAF,SAAAG,KAdHE,IAAA,gBAAAQ,EAACgD,GAAA,EACQ,OAAA3D,GAENC,UAAAA,GAYH,GAAeH,OAAAE,GAAAF,OAAAG,GAAAH,OAAAK,KAAAA,IAAAL,EAAA,CAAA,GAffK;AAee;ACfZ,SAAAyD,GAAA/D,GAAA;AAAA,QAAAC,IAAAC,EAAA,EAAA,GAAmB;AAAA,IAAAyD,UAAAA;AAAAA,IAAAK,IAAAA;AAAAA,IAAAzE,SAAAY;AAAAA,IAAAwC,IAAAA;AAAAA,IAAAxB,QAAAA;AAAAA,IAAAzB,SAAAU;AAAAA,IAAA6D,mBAAAA;AAAAA,EAAAA,IAAAjE;AAQT,MAAAM;AAAA,EAAAL,SAAAE,KALfG,IAAAH,MAAAE,SAAA,CAAA,IAAAF,GAAYF,OAAAE,GAAAF,OAAAK,KAAAA,IAAAL,EAAA,CAAA;AAAZ,QAAAV,IAAAe;AAAY,MAAAG;AAAA,EAAAR,SAAAG,KAGZK,IAAAL,MAAAC,SAAA,CAAA,IAAAD,GAAYH,OAAAG,GAAAH,OAAAQ,KAAAA,IAAAR,EAAA,CAAA;AAAZ,QAAAP,IAAAe;AAAY,MAAAmB;AAAA,EAAA3B,SAAA+D,KAICpC,IAAAsC,CAAAA,MAAA;AACT,UAAAC,IAAeD,EAAKE,UAAyBJ,CAAE;AAAC,WACzC;AAAA,MAAAlF,OACEqF,GAAMrF;AAAAA,MAAOuF,WACTF,GAAME;AAAAA,MAAWnB,UAClBiB,GAAMjB;AAAAA,MAAUoB,YACdH,GAAMG;AAAAA,IAAAA;AAAAA,EACnB,GACFrE,OAAA+D,GAAA/D,OAAA2B,KAAAA,IAAA3B,EAAA,CAAA;AATH,QAAAsE,IAAeC,EACbC,EAAW7C,CAQV,CACH,GAIeC,IAAAsC,GAAME,YAAN,cAAA;AAAoC,MAAApC;AAAA,EAAAhC,SAAA0C,KAC3CV,IAAA;AAAA,IAAA,GAAK3E,EAAMC;AAAAA,IAAK,GAAKoF;AAAAA,EAAAA,GAAI1C,OAAA0C,GAAA1C,OAAAgC,KAAAA,IAAAhC,EAAA,CAAA;AACnB,QAAAkC,IAAA,CAACgC,GAAME,WAEPjC,IAAA+B,GAAMjB;AAAU,MAAAX;AAAA,EAAAtC,EAAA,CAAA,MAAAsE,GAAAD,cAGvB/B,IAAA4B,GAAMG,cACL,gBAAAxD,EAAC4D,GAAA,EAAmB,IAAApH,EAAMiB,SAAgB,OAAA,UAAA,CAAS,GACpD0B,EAAA,CAAA,IAAAsE,GAAAD,YAAArE,OAAAsC,KAAAA,IAAAtC,EAAA,CAAA;AACO,QAAAwC,IAAA0B,GAAMrF;AAAO,MAAA4D;AAAA,EAAAzC,UAAAwC,KAArBC,IAAA,gBAAA5B,EAAC4C,MAAOjB,UAAAA,EAAAA,CAAc,GAAQxC,QAAAwC,GAAAxC,QAAAyC,KAAAA,IAAAzC,EAAA,EAAA;AAAA,MAAA4C;AAAA,EAAA5C,UAAAV,KAC7BsD,IAAA,CAAC,CAACtD,EAAOoF,UAAW,gBAAA7D,EAACf,KAAiBR,SAAAA,GAAO,GAAIU,QAAAV,GAAAU,QAAA4C,KAAAA,IAAA5C,EAAA,EAAA;AAAA,MAAA6C;AAAA,EAAA7C,UAAAkB,GAAAzB,WAAAO,UAAAP,KACjDoD,IAAA,CAAC,CAACpD,EAAOiF,4BACPzD,IAAA,EAAgB,QAAAC,GAAMzB,SAAoBA,SAAAA,EAAAA,CAAO,GACnDO,EAAA,EAAA,IAAAkB,GAAAzB,SAAAO,QAAAP,GAAAO,QAAA6C,KAAAA,IAAA7C,EAAA,EAAA;AAAA,MAAAwD;AAAA,EAAAxD,EAAA,EAAA,MAAAsC,KAAAtC,EAAA,EAAA,MAAAyC,KAAAzC,EAAA,EAAA,MAAA4C,KAAA5C,UAAA6C,KARHW,IAAA,gBAAAmB,EAACC,GAAA,EAAqB,IAAAvH,EAAMY,SACzBqE,UAAAA;AAAAA,IAAAA;AAAAA,IAGDG;AAAAA,IACCG;AAAAA,IACAC;AAAAA,EAAAA,GAGH,GAAmB7C,QAAAsC,GAAAtC,QAAAyC,GAAAzC,QAAA4C,GAAA5C,QAAA6C,GAAA7C,QAAAwD,KAAAA,IAAAxD,EAAA,EAAA;AAAA,MAAA6E;AAAA,EAAA7E,UAAA0D,KACnBmB,IAAA,gBAAAhE,EAACiE,GAAA,EAAqB,IAAAzH,EAAMsC,QAAU+D,UAAAA,GAAS,GAAmB1D,QAAA0D,GAAA1D,QAAA6E,KAAAA,IAAA7E,EAAA,EAAA;AAAA,MAAA+E;AAAA,SAAA/E,EAAA,EAAA,MAAAgE,KAAAhE,EAAA,EAAA,MAAAwD,KAAAxD,EAAA,EAAA,MAAA6E,KAAA7E,UAAA4B,KAAA5B,EAAA,EAAA,MAAAgC,KAAAhC,EAAA,EAAA,MAAAkC,KAAAlC,EAAA,EAAA,MAAAmC,KAjBpE4C,sBAACC,GAAA,EACY,WAAApD,GACP,IAAAI,GACM,UAAAE,GACA8B,UAAAA,GACA,UAAA7B,GAEVqB,UAAAA;AAAAA,IAAAA;AAAAA,IAUAqB;AAAAA,EAAAA,GACF,GAAY7E,QAAAgE,GAAAhE,QAAAwD,GAAAxD,QAAA6E,GAAA7E,QAAA4B,GAAA5B,QAAAgC,GAAAhC,QAAAkC,GAAAlC,QAAAmC,GAAAnC,QAAA+E,KAAAA,IAAA/E,EAAA,EAAA,GAlBZ+E;AAkBY;ACjDT,SAAAE,GAAAlF,GAAA;AAAA,QAAAC,IAAAC,EAAA,EAAA,GAAuB;AAAA,IAAA8D,IAAAA;AAAAA,IAAAlF,OAAAA;AAAAA,IAAAqG,kBAAAA;AAAAA,IAAAjC,UAAAA;AAAAA,IAAAP,IAAAA;AAAAA,IAAApD,SAAAA;AAAAA,IAAAG,SAAAA;AAAAA,IAAAyB,QAAAA;AAAAA,IAAAwC,UAAAA;AAAAA,IAAAM,mBAAAA;AAAAA,EAAAA,IAAAjE,GAY5BoF,IAAkBZ,EAAezD,EAA0B;AAAC,MAAAZ,GAAAC;AAAA,EAAAH,EAAA,CAAA,MAAAkF,KAAAlF,EAAA,CAAA,MAAAiD,KAAAjD,EAAA,CAAA,MAAA+D,KAAA/D,EAAA,CAAA,MAAAmF,KAAAnF,SAAAnB,KAIlDqB,IAAAA,MAAA;AACRiF,IAAAA,EAAwBpB,GAAI;AAAA,MAAAK,WACfc;AAAAA,MAAgBjC,UAAAA;AAAAA,MAAApE,OAAAA;AAAAA,IAAAA,CAG5B;AAAA,EAAC,GACDsB,IAAA,CAAC+E,GAAkBjC,GAAUpE,GAAOkF,GAAIoB,CAAS,GAACnF,OAAAkF,GAAAlF,OAAAiD,GAAAjD,OAAA+D,GAAA/D,OAAAmF,GAAAnF,OAAAnB,GAAAmB,OAAAE,GAAAF,OAAAG,MAAAD,IAAAF,EAAA,CAAA,GAAAG,IAAAH,EAAA,CAAA,IANrDoF,EAAUlF,GAMPC,CAAkD;AAAC,MAAAE;AAAA,EAAAL,EAAA,CAAA,MAAA+D,KAAA/D,SAAAgE,KAAAhE,EAAA,CAAA,MAAAmF,KAExB9E,IAAAA,CAAAgF,GAAAC,MAAA;AAI5BtB,IAAAA,IAAoBqB,GAAOC,CAAQ,GACnCH,EAAwBpB,GAAI;AAAA,MAAAK,WAAa,CAACkB;AAAAA,IAAAA,CAAU;AAAA,EAAC,GACtDtF,OAAA+D,GAAA/D,OAAAgE,GAAAhE,OAAAmF,GAAAnF,QAAAK,KAAAA,IAAAL,EAAA,EAAA;AAND,QAAAuF,IAA8BlF;AAM7B,MAAAG;AAAA,SAAAR,EAAA,EAAA,MAAAV,KAAAU,EAAA,EAAA,MAAA0D,KAAA1D,EAAA,EAAA,MAAAuF,KAAAvF,UAAA+D,KAAA/D,EAAA,EAAA,MAAAkB,KAAAlB,EAAA,EAAA,MAAAP,KAAAO,EAAA,EAAA,MAAA0C,KAGClC,sBAACsD,MACKC,IAAAA,GACI7C,QAAAA,GACC5B,SAAAA,GACAG,SAAAA,GACLiD,IAAAA,GACe6C,mCAGrB,GAAYvF,QAAAV,GAAAU,QAAA0D,GAAA1D,QAAAuF,GAAAvF,QAAA+D,GAAA/D,QAAAkB,GAAAlB,QAAAP,GAAAO,QAAA0C,GAAA1C,QAAAQ,KAAAA,IAAAR,EAAA,EAAA,GATZQ;AASY;AA1CT,SAAAM,GAAAmD,GAAA;AAAA,SAYuCA,EAAKkB;AAAU;"}
|
|
1
|
+
{"version":3,"file":"wrapper.js","sources":["../../src/widgets/wrapper/styles.ts","../../src/widgets/wrapper/components/actions.tsx","../../src/widgets/wrapper/components/options.tsx","../../src/widgets/wrapper/components/title.tsx","../../src/widgets/wrapper/wrapper-ui.tsx","../../src/widgets/wrapper/wrapper.tsx"],"sourcesContent":["import type { SxProps, Theme } from '@mui/material'\n\nexport const styles = {\n root: {\n '.Mui-disabled .MuiAccordionSummary-expandIconWrapper': {\n display: 'none',\n },\n '.widget-wrapper-actions > *': {\n opacity: 1,\n transition: ({ transitions }) =>\n transitions.create('opacity', {\n duration: transitions.duration.standard,\n easing: transitions.easing.easeInOut,\n }),\n\n '@media (hover: hover)': {\n opacity: 0,\n },\n\n '&:has(.active)': {\n opacity: 1,\n },\n },\n '&:hover': {\n '& .widget-wrapper-actions > *': {\n opacity: 1,\n },\n },\n\n '&.collapsed .widget-wrapper-actions > *': {\n opacity: 0,\n pointerEvents: 'none',\n\n '&:has(.active)': {\n opacity: 1,\n },\n },\n },\n summary: {\n minHeight: ({ spacing }) => spacing(7),\n '& .MuiAccordionSummary-content': {\n gap: ({ spacing }) => spacing(0.5),\n paddingInlineEnd: ({ spacing }) => spacing(0.75),\n },\n },\n loading: {\n height: ({ spacing }) => spacing(0.35),\n left: 0,\n position: 'absolute',\n top: 0,\n width: '100%',\n zIndex: 1,\n },\n title: {\n wrapper: {\n flexGrow: 1,\n flexShrink: 1,\n minWidth: 0,\n display: 'flex',\n justifyContent: 'center',\n flexDirection: 'column',\n },\n container: {\n display: 'flex',\n alignItems: 'center',\n flexGrow: 1,\n minHeight: ({ spacing }) => spacing(3),\n },\n text: {\n wordBreak: 'break-word',\n overflow: 'hidden',\n display: '-webkit-box',\n WebkitLineClamp: 2,\n WebkitBoxOrient: 'vertical',\n },\n },\n actions: {\n display: 'flex',\n gap: ({ spacing }) => spacing(0.5),\n alignItems: 'center',\n flexShrink: 0,\n justifyContent: 'flex-end',\n '& > div': {\n pointerEvents: 'auto',\n },\n },\n options: {\n trigger: {\n pointerEvents: 'auto',\n },\n },\n detail: {\n display: 'flex',\n flexDirection: 'column',\n gap: ({ spacing }) => spacing(1),\n paddingTop: ({ spacing }) => spacing(0.5),\n },\n} satisfies Record<string, SxProps<Theme>>\n","import { Box } from '@mui/material'\nimport type { WrapperActionsProps } from '../types'\nimport { styles } from '../styles'\n\nexport function Actions({ actions = [] }: WrapperActionsProps) {\n return (\n <Box sx={styles.actions} className='widget-wrapper-actions'>\n {actions.map((action, index) => {\n // Prefer action.key if present (React elements), else fallback to index\n const key =\n action &&\n typeof action === 'object' &&\n 'key' in action &&\n action.key != null\n ? action.key\n : index\n return (\n <Box\n key={key}\n onClick={(e) => {\n e.stopPropagation()\n }}\n >\n {action}\n </Box>\n )\n })}\n </Box>\n )\n}\n","import { MoreVert } from '@mui/icons-material'\nimport {\n IconButton,\n Menu,\n MenuItem,\n ListItemIcon,\n ListItemText,\n} from '@mui/material'\nimport type { WrapperOptionsProps } from '../types'\nimport { useState } from 'react'\nimport { styles } from '../styles'\n\nexport function Options({ labels, options = [] }: WrapperOptionsProps) {\n const [anchorEl, setAnchorEl] = useState<null | HTMLElement>(null)\n\n const handleOptionAction = (\n e: React.MouseEvent<HTMLElement>,\n option: NonNullable<WrapperOptionsProps['options']>[number],\n ) => {\n e.stopPropagation()\n option.onClick()\n setAnchorEl(null)\n }\n\n return (\n <>\n <IconButton\n sx={styles.options.trigger}\n size='small'\n aria-label={labels?.title ?? 'Options'}\n aria-controls='options-menu'\n aria-haspopup='true'\n onClick={(e) => {\n e.stopPropagation()\n setAnchorEl(e.currentTarget)\n }}\n >\n <MoreVert />\n </IconButton>\n <Menu\n variant='menu'\n elevation={8}\n anchorOrigin={{\n vertical: 'top',\n horizontal: 'right',\n }}\n transformOrigin={{\n vertical: 'top',\n horizontal: 'right',\n }}\n anchorEl={anchorEl}\n open={Boolean(anchorEl)}\n onClose={() => setAnchorEl(null)}\n MenuListProps={{\n sx: {\n paddingBottom: 0,\n },\n }}\n >\n {options.map((option, idx) => (\n <MenuItem\n key={`${option.label}-${idx}`}\n disabled={option.disabled}\n onClick={(e) => handleOptionAction(e, option)}\n >\n {option.icon && <ListItemIcon>{option.icon}</ListItemIcon>}\n <ListItemText>{option.label}</ListItemText>\n </MenuItem>\n ))}\n </Menu>\n </>\n )\n}\n","import { Box, Typography } from '@mui/material'\nimport { styles } from '../styles'\nimport { SmartTooltip } from '../../../components'\nimport type { ReactNode } from 'react'\nimport type { WrapperOptionsProps } from '../types'\n\nexport function Title({\n label,\n children,\n}: {\n children: ReactNode\n label?: NonNullable<WrapperOptionsProps['labels']>['title']\n}) {\n return (\n <SmartTooltip\n title={label ?? (typeof children === 'string' ? children : '')}\n >\n {({ ref }) => (\n <Box sx={styles.title.container}>\n <Typography\n sx={styles.title.text}\n ref={ref}\n variant='subtitle1'\n textTransform='none'\n >\n {children}\n </Typography>\n </Box>\n )}\n </SmartTooltip>\n )\n}\n","import {\n Accordion,\n AccordionDetails,\n AccordionSummary,\n LinearProgress,\n} from '@mui/material'\nimport { styles } from './styles'\nimport { Title } from './components/title'\nimport type { WrapperState, WrapperUIProps } from './types'\nimport { Options } from './components/options'\nimport { Actions } from './components/actions'\nimport { useWidgetStore } from '../stores/widget-store'\nimport { useShallow } from 'zustand/shallow'\n\nexport function WrapperUI({\n children,\n id,\n actions = [],\n sx,\n labels,\n options = [],\n onChangeCollapsed,\n}: WrapperUIProps) {\n const widget = useWidgetStore(\n useShallow((state) => {\n const widget = state.getWidget<WrapperState>(id)\n return {\n title: widget?.title,\n collapsed: widget?.collapsed,\n disabled: widget?.disabled,\n isFetching: widget?.isFetching,\n }\n }),\n )\n\n return (\n <Accordion\n className={widget?.collapsed ? 'collapsed' : ''}\n sx={{ ...styles.root, ...sx }}\n expanded={!widget?.collapsed}\n onChange={onChangeCollapsed}\n disabled={widget?.disabled}\n >\n <AccordionSummary sx={styles.summary}>\n {widget?.isFetching && (\n <LinearProgress sx={styles.loading} color='primary' />\n )}\n <Title>{widget?.title}</Title>\n {!!actions.length && <Actions actions={actions} />}\n {!!options.length && (\n <Options labels={labels?.options} options={options} />\n )}\n </AccordionSummary>\n <AccordionDetails sx={styles.detail}>{children}</AccordionDetails>\n </Accordion>\n )\n}\n","import type { WrapperProps, WrapperState } from './types'\nimport { WrapperUI } from './wrapper-ui'\nimport { useWidgetStore } from '../stores/widget-store'\nimport { useEffect } from 'react'\n\nexport function WidgetWrapper({\n id,\n title,\n defaultCollapsed,\n disabled,\n sx,\n actions,\n options,\n labels,\n children,\n onChangeCollapsed,\n}: WrapperProps) {\n const setWidget = useWidgetStore((state) => state.setWidget)\n\n // Consolidated effect: batch all wrapper state updates into a single store update\n // This prevents 3 separate re-render cycles on mount and prop changes\n useEffect(() => {\n setWidget<WrapperState>(id, {\n collapsed: defaultCollapsed,\n disabled,\n title,\n })\n }, [defaultCollapsed, disabled, title, id, setWidget])\n\n const handleChangeCollapsed = (\n event: React.SyntheticEvent<Element, Event>,\n expanded: boolean,\n ) => {\n onChangeCollapsed?.(event, expanded)\n setWidget<WrapperState>(id, { collapsed: !expanded })\n }\n\n return (\n <WrapperUI\n id={id}\n labels={labels}\n actions={actions}\n options={options}\n sx={sx}\n onChangeCollapsed={handleChangeCollapsed}\n >\n {children}\n </WrapperUI>\n )\n}\n"],"names":["styles","root","display","opacity","transition","transitions","create","duration","standard","easing","easeInOut","pointerEvents","summary","minHeight","spacing","gap","paddingInlineEnd","loading","height","left","position","top","width","zIndex","title","container","alignItems","flexGrow","text","wordBreak","overflow","WebkitLineClamp","WebkitBoxOrient","actions","flexShrink","justifyContent","options","trigger","detail","flexDirection","paddingTop","Actions","t0","$","_c","t1","t2","undefined","t3","map","_temp2","t4","Box","action","index","key","jsx","_temp","e","stopPropagation","Options","labels","anchorEl","setAnchorEl","useState","Symbol","for","option","onClick","handleOptionAction","t5","t6","e_0","currentTarget","MoreVert","t7","IconButton","t8","t9","vertical","horizontal","t10","Boolean","t11","t12","sx","paddingBottom","t13","t14","option_0","idx","MenuItem","disabled","e_1","icon","ListItemIcon","ListItemText","label","Menu","t15","Title","children","ref","Typography","SmartTooltip","WrapperUI","id","onChangeCollapsed","state","widget","getWidget","collapsed","isFetching","widget_0","useWidgetStore","useShallow","LinearProgress","length","jsxs","AccordionSummary","t16","AccordionDetails","t17","Accordion","WidgetWrapper","defaultCollapsed","setWidget","useEffect","event","expanded","handleChangeCollapsed"],"mappings":"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"}
|