@proounce/shared-common 0.1.0 → 0.1.1
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/README.md +75 -384
- package/dist/charts/fusion.cjs +61 -3
- package/dist/charts/fusion.cjs.map +1 -1
- package/dist/charts/fusion.d.cts +15 -15
- package/dist/charts/fusion.d.ts +15 -15
- package/dist/charts/fusion.js +61 -3
- package/dist/charts/fusion.js.map +1 -1
- package/dist/grids/ag-grid.cjs +91 -16
- package/dist/grids/ag-grid.cjs.map +1 -1
- package/dist/grids/ag-grid.d.cts +4 -4
- package/dist/grids/ag-grid.d.ts +4 -4
- package/dist/grids/ag-grid.js +90 -16
- package/dist/grids/ag-grid.js.map +1 -1
- package/dist/icons/lucide.d.cts +150 -0
- package/dist/icons/lucide.d.ts +150 -0
- package/dist/index.cjs +15809 -4245
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +3751 -1718
- package/dist/index.d.ts +3751 -1718
- package/dist/index.js +15539 -3133
- package/dist/index.js.map +1 -1
- package/docs/COMPATIBILITY_MATRIX.md +325 -0
- package/docs/COMPONENT_AUDIT.md +71 -153
- package/docs/LEGACY_CLOSURE.json +1143 -0
- package/package.json +25 -4
- package/dist/mui-b9ldbP0Q.d.cts +0 -306
- package/dist/mui-b9ldbP0Q.d.ts +0 -306
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/grids/ag-grid/CustomAgGrid.tsx","../../src/buttons/SharedIconButton.tsx","../../src/grids/ag-grid/CustomGridHeaderCellWithInfo.tsx","../../src/grids/ag-grid/CustomGridTableWrapper.tsx"],"names":["AllCommunityModule","useMemo","useCallback","jsx","AgGridReact","memo","IconButton","jsxs","Stack","Tooltip","InfoOutlinedIcon","FunctionsIcon","Box"],"mappings":"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","file":"ag-grid.cjs","sourcesContent":["import type {\n ColDef,\n GetRowIdParams,\n Module,\n RowSelectionOptions,\n SelectionChangedEvent,\n} from \"ag-grid-community\";\nimport { AllCommunityModule } from \"ag-grid-community\";\nimport {\n AgGridReact,\n type AgGridReactProps,\n} from \"ag-grid-react\";\nimport { memo, useCallback, useMemo, type CSSProperties } from \"react\";\n\nconst DEFAULT_AG_GRID_MODULES: Module[] = [AllCommunityModule];\n\nexport interface CustomGridTableProps<Row extends object>\n extends Omit<\n AgGridReactProps<Row>,\n | \"columnDefs\"\n | \"rowData\"\n | \"pinnedBottomRowData\"\n | \"defaultColDef\"\n | \"onSelectionChanged\"\n | \"pagination\"\n | \"paginationPageSize\"\n | \"paginationPageSizeSelector\"\n | \"rowSelection\"\n | \"modules\"\n | \"getRowId\"\n > {\n columns?: readonly ColDef<Row>[];\n data?: readonly Row[];\n totals?: readonly Row[];\n loading?: boolean;\n enableSelection?: boolean;\n onSelect?: (rows: Row[]) => void;\n height?: CSSProperties[\"height\"];\n minHeight?: CSSProperties[\"minHeight\"];\n defaultColDef?: ColDef<Row>;\n pagination?: boolean;\n paginationPageSize?: number;\n paginationPageSizeSelector?: readonly number[];\n getRowId?: (params: GetRowIdParams<Row>) => string;\n modules?: Module[];\n ariaLabel?: string;\n}\n\n/**\n * Optional AG Grid Community wrapper. Import only from the ag-grid subpath so\n * regular shared-component consumers do not load AG Grid.\n */\nexport function CustomGridTableComponent<Row extends object>({\n columns = [],\n data = [],\n totals = [],\n loading = false,\n enableSelection = false,\n onSelect,\n height = 500,\n minHeight = 240,\n defaultColDef,\n pagination,\n paginationPageSize = 25,\n paginationPageSizeSelector = [5, 10, 25, 50, 75, 100],\n getRowId,\n modules = DEFAULT_AG_GRID_MODULES,\n ariaLabel = \"Data grid\",\n ...gridProps\n}: CustomGridTableProps<Row>) {\n const resolvedDefaultColDef = useMemo<ColDef<Row>>(\n () => ({\n flex: 1,\n minWidth: 160,\n resizable: true,\n sortable: true,\n wrapText: true,\n autoHeight: true,\n ...defaultColDef,\n }),\n [defaultColDef],\n );\n const rowSelection = useMemo<RowSelectionOptions<Row> | undefined>(\n () =>\n enableSelection\n ? {\n mode: \"multiRow\",\n checkboxes: true,\n headerCheckbox: true,\n enableClickSelection: false,\n selectAll: \"filtered\",\n }\n : undefined,\n [enableSelection],\n );\n const enablePagination = pagination ?? data.length > 50;\n const handleSelection = useCallback(\n (event: SelectionChangedEvent<Row>) => onSelect?.(event.api.getSelectedRows()),\n [onSelect],\n );\n\n return (\n <div\n aria-label={ariaLabel}\n role=\"region\"\n style={{ width: \"100%\", height, minHeight }}\n >\n <AgGridReact<Row>\n modules={modules}\n rowData={[...data]}\n columnDefs={[...columns]}\n pinnedBottomRowData={[...totals]}\n defaultColDef={resolvedDefaultColDef}\n loading={loading}\n pagination={enablePagination}\n paginationPageSize={paginationPageSize}\n paginationPageSizeSelector={[...paginationPageSizeSelector]}\n {...(rowSelection ? { rowSelection } : {})}\n onSelectionChanged={handleSelection}\n animateRows={false}\n suppressDragLeaveHidesColumns\n {...(getRowId ? { getRowId } : {})}\n {...gridProps}\n />\n </div>\n );\n}\n\nexport const CustomGridTable = memo(\n CustomGridTableComponent,\n) as typeof CustomGridTableComponent;\n\nexport const AgGridTable = CustomGridTable;\nexport default CustomGridTable;\n","import IconButton, { type IconButtonProps } from \"@mui/material/IconButton\";\n\nexport interface SharedIconButtonProps extends IconButtonProps {\n \"aria-label\": string;\n}\n\n/** An icon-only button that requires an accessible label. */\nexport function SharedIconButton({ sx, ...props }: SharedIconButtonProps) {\n return (\n <IconButton\n sx={{ width: 40, height: 40, borderRadius: 1, ...sx }}\n {...props}\n />\n );\n}\n\nexport default SharedIconButton;\n","import FunctionsIcon from \"@mui/icons-material/Functions\";\nimport InfoOutlinedIcon from \"@mui/icons-material/InfoOutlined\";\nimport Stack from \"@mui/material/Stack\";\nimport Tooltip from \"@mui/material/Tooltip\";\nimport type { IHeaderParams } from \"ag-grid-community\";\nimport type { KeyboardEvent, MouseEvent, ReactNode } from \"react\";\nimport { SharedIconButton } from \"../../buttons/SharedIconButton\";\n\nexport interface CustomGridHeaderCellWithInfoProps<Row = unknown>\n extends IHeaderParams<Row> {\n title?: ReactNode;\n info?: ReactNode;\n infoLabel?: string;\n formula?: ReactNode;\n formulaLabel?: string;\n}\n\n/** Accessible sortable AG Grid header with optional information and formula help. */\nexport function CustomGridHeaderCellWithInfo<Row = unknown>({\n displayName,\n title,\n info,\n infoLabel = \"Column information\",\n formula,\n formulaLabel = \"Column formula\",\n column,\n enableSorting,\n progressSort,\n}: CustomGridHeaderCellWithInfoProps<Row>) {\n const sort = column.getSort();\n const headerTitle = title ?? displayName;\n const sortLabel = sort\n ? `${String(headerTitle)}, sorted ${sort === \"asc\" ? \"ascending\" : \"descending\"}`\n : `${String(headerTitle)}, not sorted`;\n const requestSort = (event: MouseEvent | KeyboardEvent) => {\n if (enableSorting) progressSort(event.shiftKey);\n };\n\n return (\n <Stack direction=\"row\" alignItems=\"center\" spacing={0.5} width=\"100%\">\n <button\n type=\"button\"\n disabled={!enableSorting}\n aria-label={sortLabel}\n onClick={requestSort}\n style={{\n appearance: \"none\",\n border: 0,\n background: \"transparent\",\n color: \"inherit\",\n font: \"inherit\",\n fontWeight: 600,\n cursor: enableSorting ? \"pointer\" : \"default\",\n padding: 4,\n }}\n >\n {headerTitle}\n {sort === \"asc\" ? \" ▲\" : sort === \"desc\" ? \" ▼\" : \"\"}\n </button>\n {info ? (\n <Tooltip title={info} arrow>\n <SharedIconButton aria-label={infoLabel} size=\"small\">\n <InfoOutlinedIcon fontSize=\"small\" />\n </SharedIconButton>\n </Tooltip>\n ) : null}\n {formula ? (\n <Tooltip title={formula} arrow>\n <SharedIconButton aria-label={formulaLabel} size=\"small\">\n <FunctionsIcon fontSize=\"small\" />\n </SharedIconButton>\n </Tooltip>\n ) : null}\n </Stack>\n );\n}\n\nexport default CustomGridHeaderCellWithInfo;\n","import Box, { type BoxProps } from \"@mui/material/Box\";\n\nexport function CustomGridTableWrapper({ children, sx, ...props }: BoxProps) {\n return (\n <Box width=\"100%\" p={1.5} mb={0.5} sx={sx} {...props}>\n {children}\n </Box>\n );\n}\n\nexport default CustomGridTableWrapper;\n"]}
|
|
1
|
+
{"version":3,"sources":["../../src/grids/ag-grid/CustomAgGrid.tsx","../../src/buttons/SharedButton.tsx","../../src/buttons/SharedIconButton.tsx","../../src/feedback/LightTooltip.tsx","../../src/grids/ag-grid/CustomGridHeaderCellWithInfo.tsx","../../src/grids/ag-grid/CustomGridTableWrapper.tsx"],"names":["AllCommunityModule","useMemo","useCallback","jsx","AgGridReact","memo","Children","isValidElement","Button","IconButton","styled","Tooltip","tooltipClasses","jsxs","Stack","InfoOutlinedIcon","FunctionsIcon","Box"],"mappings":"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","file":"ag-grid.cjs","sourcesContent":["import type {\n ColDef,\n GetRowIdParams,\n Module,\n RowSelectionOptions,\n SelectionChangedEvent,\n} from \"ag-grid-community\";\nimport { AllCommunityModule } from \"ag-grid-community\";\nimport {\n AgGridReact,\n type AgGridReactProps,\n} from \"ag-grid-react\";\nimport { memo, useCallback, useMemo, type CSSProperties } from \"react\";\n\nconst DEFAULT_AG_GRID_MODULES: Module[] = [AllCommunityModule];\n\nexport interface CustomGridTableProps<Row extends object>\n extends Omit<\n AgGridReactProps<Row>,\n | \"columnDefs\"\n | \"rowData\"\n | \"pinnedBottomRowData\"\n | \"defaultColDef\"\n | \"onSelectionChanged\"\n | \"pagination\"\n | \"paginationPageSize\"\n | \"paginationPageSizeSelector\"\n | \"rowSelection\"\n | \"modules\"\n | \"getRowId\"\n > {\n columns?: readonly ColDef<Row>[];\n data?: readonly Row[];\n totals?: readonly Row[];\n loading?: boolean;\n enableSelection?: boolean;\n onSelect?: (rows: Row[]) => void;\n height?: CSSProperties[\"height\"];\n minHeight?: CSSProperties[\"minHeight\"];\n defaultColDef?: ColDef<Row>;\n pagination?: boolean;\n paginationPageSize?: number;\n paginationPageSizeSelector?: readonly number[];\n getRowId?: (params: GetRowIdParams<Row>) => string;\n modules?: Module[];\n ariaLabel?: string;\n}\n\n/**\n * Optional AG Grid Community wrapper. Import only from the ag-grid subpath so\n * regular shared-component consumers do not load AG Grid.\n */\nexport function CustomGridTableComponent<Row extends object>({\n columns = [],\n data = [],\n totals = [],\n loading = false,\n enableSelection = false,\n onSelect,\n height = 500,\n minHeight = 240,\n defaultColDef,\n pagination,\n paginationPageSize = 25,\n paginationPageSizeSelector = [5, 10, 25, 50, 75, 100],\n getRowId,\n modules = DEFAULT_AG_GRID_MODULES,\n ariaLabel = \"Data grid\",\n ...gridProps\n}: CustomGridTableProps<Row>) {\n const resolvedDefaultColDef = useMemo<ColDef<Row>>(\n () => ({\n flex: 1,\n minWidth: 160,\n resizable: true,\n sortable: true,\n wrapText: true,\n autoHeight: true,\n ...defaultColDef,\n }),\n [defaultColDef],\n );\n const rowSelection = useMemo<RowSelectionOptions<Row> | undefined>(\n () =>\n enableSelection\n ? {\n mode: \"multiRow\",\n checkboxes: true,\n headerCheckbox: true,\n enableClickSelection: false,\n selectAll: \"filtered\",\n }\n : undefined,\n [enableSelection],\n );\n const enablePagination = pagination ?? data.length > 50;\n const handleSelection = useCallback(\n (event: SelectionChangedEvent<Row>) => onSelect?.(event.api.getSelectedRows()),\n [onSelect],\n );\n\n return (\n <div\n aria-label={ariaLabel}\n role=\"region\"\n style={{ width: \"100%\", height, minHeight }}\n >\n <AgGridReact<Row>\n modules={modules}\n rowData={[...data]}\n columnDefs={[...columns]}\n pinnedBottomRowData={[...totals]}\n defaultColDef={resolvedDefaultColDef}\n loading={loading}\n pagination={enablePagination}\n paginationPageSize={paginationPageSize}\n paginationPageSizeSelector={[...paginationPageSizeSelector]}\n {...(rowSelection ? { rowSelection } : {})}\n onSelectionChanged={handleSelection}\n animateRows={false}\n suppressDragLeaveHidesColumns\n {...(getRowId ? { getRowId } : {})}\n {...gridProps}\n />\n </div>\n );\n}\n\nexport const CustomGridTable = memo(\n CustomGridTableComponent,\n) as typeof CustomGridTableComponent;\n\nexport const AgGridTable = CustomGridTable;\nexport default CustomGridTable;\n","import Button, { type ButtonProps } from \"@mui/material/Button\";\nimport { Children, isValidElement, type ReactNode } from \"react\";\n\nexport type SharedButtonProps = ButtonProps;\n\nconst colorOpacity: Record<string, string> = {\n primary: \"#1976d2\",\n secondary: \"#9c27b0\",\n error: \"#d32f2f\",\n warning: \"#ed6c02\",\n info: \"#0288d1\",\n success: \"#2e7d32\",\n inherit: \"#1976d2\",\n default: \"#1976d2\",\n};\n\nfunction accessibleText(children: ReactNode): string {\n let text = \"\";\n Children.forEach(children, (child) => {\n if (typeof child === \"string\" || typeof child === \"number\") {\n text += String(child);\n } else if (isValidElement<{ children?: ReactNode }>(child)) {\n text += accessibleText(child.props.children);\n }\n });\n return text.trim() || \"Button\";\n}\n\n/** A consistently sized MUI button with accessible defaults. */\nexport function SharedButton({\n children,\n color = \"primary\",\n variant,\n disabled = false,\n sx,\n ...props\n}: SharedButtonProps) {\n const baseColor = colorOpacity[color] ?? colorOpacity.primary;\n const customSx = variant === \"outlined\" && !disabled\n ? {\n textTransform: \"capitalize\",\n backgroundColor: `${baseColor}20`,\n \"&:hover\": { backgroundColor: `${baseColor}35` },\n ...sx,\n }\n : { textTransform: \"capitalize\", ...sx };\n\n return (\n <Button\n aria-label={props[\"aria-label\"] ?? accessibleText(children)}\n color={color}\n variant={variant}\n disabled={disabled}\n sx={{\n ...customSx,\n minWidth: \"40px\",\n height: \"40px\",\n padding: \"6px\",\n borderRadius: \"4px\",\n }}\n {...props}\n >\n {children}\n </Button>\n );\n}\n\n/** Visual-compatible version of the legacy `StyledButton` export. */\nexport function LegacyStyledButton({\n children,\n color = \"primary\",\n variant,\n disabled = false,\n sx,\n ...props\n}: SharedButtonProps) {\n const baseColor = colorOpacity[color] ?? colorOpacity.primary;\n const customSx = variant === \"outlined\" && !disabled\n ? {\n textTransform: \"capitalize\",\n backgroundColor: `${baseColor}20`,\n \"&:hover\": { backgroundColor: `${baseColor}35` },\n ...sx,\n }\n : { textTransform: \"capitalize\", ...sx };\n\n return (\n <Button\n aria-label={props[\"aria-label\"] ?? accessibleText(children)}\n color={color}\n variant={variant}\n disabled={disabled}\n sx={customSx}\n {...props}\n >\n {children}\n </Button>\n );\n}\n\nexport default SharedButton;\n","import IconButton, { type IconButtonProps } from \"@mui/material/IconButton\";\nimport { isValidElement, type ReactNode } from \"react\";\n\nexport interface SharedIconButtonProps extends IconButtonProps {\n \"aria-label\"?: string;\n}\n\nfunction inferIconLabel(children: ReactNode): string {\n if (!isValidElement(children)) return \"Icon Button\";\n const type = children.type as { displayName?: string; name?: string };\n const name = type.displayName ?? type.name ?? \"Icon Button\";\n return name\n .replace(/(Icon|Outlined|Filled|Rounded|Sharp|TwoTone)$/g, \"\")\n .replace(/([a-z])([A-Z])/g, \"$1 $2\")\n .toLowerCase();\n}\n\n/** Legacy-size icon button with an accessible-name fallback. */\nexport function SharedIconButton({ children, ...props }: SharedIconButtonProps) {\n return (\n <IconButton\n aria-label={props[\"aria-label\"] ?? inferIconLabel(children)}\n {...props}\n >\n {children}\n </IconButton>\n );\n}\n\nexport default SharedIconButton;\n","import Tooltip, { tooltipClasses, type TooltipProps } from \"@mui/material/Tooltip\";\nimport { styled } from \"@mui/material/styles\";\nimport { isValidElement } from \"react\";\n\n/** Visual-compatible version of the legacy shared-base light tooltip. */\nexport const LightTooltip = styled(({ className, children, ...props }: TooltipProps) => {\n const disabled = isValidElement<{ disabled?: boolean }>(children) && Boolean(children.props.disabled);\n\n if (disabled) return <span>{children}</span>;\n\n return (\n <Tooltip {...props} classes={className ? { popper: className } : undefined}>\n {children}\n </Tooltip>\n );\n})(({ theme }) => ({\n [`& .${tooltipClasses.tooltip}`]: {\n backgroundColor: theme.palette.common.white,\n color: \"rgba(0, 0, 0, 0.87)\",\n boxShadow: theme.shadows[1],\n fontSize: 14,\n },\n}));\n\nexport const SharedTooltip = LightTooltip;\n","import FunctionsIcon from \"@mui/icons-material/Functions\";\nimport InfoOutlinedIcon from \"@mui/icons-material/InfoOutlined\";\nimport Stack from \"@mui/material/Stack\";\nimport type { IHeaderParams } from \"ag-grid-community\";\nimport type { KeyboardEvent, MouseEvent, ReactNode } from \"react\";\nimport { SharedButton } from \"../../buttons/SharedButton\";\nimport { SharedIconButton } from \"../../buttons/SharedIconButton\";\nimport { LightTooltip } from \"../../feedback/LightTooltip\";\n\nexport interface CustomGridHeaderCellWithInfoProps<Row = unknown>\n extends IHeaderParams<Row> {\n title?: ReactNode;\n info?: ReactNode;\n infoLabel?: string;\n formula?: ReactNode;\n formulaLabel?: string;\n}\n\n/** Accessible sortable AG Grid header with optional information and formula help. */\nexport function CustomGridHeaderCellWithInfo<Row = unknown>({\n displayName,\n title,\n info,\n infoLabel = \"Column information\",\n formula,\n formulaLabel = \"Column formula\",\n column,\n enableSorting,\n progressSort,\n}: CustomGridHeaderCellWithInfoProps<Row>) {\n const sort = column.getSort();\n const headerTitle = title ?? displayName;\n const sortLabel = sort\n ? `${String(headerTitle)}, sorted ${sort === \"asc\" ? \"ascending\" : \"descending\"}`\n : `${String(headerTitle)}, not sorted`;\n const requestSort = (event: MouseEvent | KeyboardEvent) => {\n if (enableSorting) progressSort(event.shiftKey);\n };\n\n return (\n <Stack direction=\"row\" alignItems=\"center\" spacing={0.5} width=\"100%\">\n <SharedButton\n variant=\"text\"\n disabled={!enableSorting}\n aria-label={sortLabel}\n onClick={requestSort}\n sx={{\n minWidth: 40,\n px: 0.5,\n color: \"inherit\",\n fontWeight: 600,\n justifyContent: \"flex-start\",\n whiteSpace: \"nowrap\",\n }}\n >\n {headerTitle}\n {sort === \"asc\" ? \" ▲\" : sort === \"desc\" ? \" ▼\" : \"\"}\n </SharedButton>\n {info ? (\n <LightTooltip title={info} arrow>\n <SharedIconButton aria-label={infoLabel} size=\"small\">\n <InfoOutlinedIcon fontSize=\"small\" />\n </SharedIconButton>\n </LightTooltip>\n ) : null}\n {formula ? (\n <LightTooltip title={formula} arrow>\n <SharedIconButton aria-label={formulaLabel} size=\"small\">\n <FunctionsIcon fontSize=\"small\" />\n </SharedIconButton>\n </LightTooltip>\n ) : null}\n </Stack>\n );\n}\n\nexport default CustomGridHeaderCellWithInfo;\n","import Box, { type BoxProps } from \"@mui/material/Box\";\n\nexport function CustomGridTableWrapper({ children, sx, ...props }: BoxProps) {\n return (\n <Box width=\"100%\" p={1.5} mb={0.5} sx={sx} {...props}>\n {children}\n </Box>\n );\n}\n\nexport default CustomGridTableWrapper;\n"]}
|
package/dist/grids/ag-grid.d.cts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as React from 'react';
|
|
2
2
|
import { CSSProperties, ReactNode } from 'react';
|
|
3
3
|
import { ColDef, GetRowIdParams, Module, IHeaderParams } from 'ag-grid-community';
|
|
4
4
|
export { ColDef, ColGroupDef, GridApi, GridOptions, ICellRendererParams, IHeaderParams, RowSelectionOptions } from 'ag-grid-community';
|
|
@@ -26,7 +26,7 @@ interface CustomGridTableProps<Row extends object> extends Omit<AgGridReactProps
|
|
|
26
26
|
* Optional AG Grid Community wrapper. Import only from the ag-grid subpath so
|
|
27
27
|
* regular shared-component consumers do not load AG Grid.
|
|
28
28
|
*/
|
|
29
|
-
declare function CustomGridTableComponent<Row extends object>({ columns, data, totals, loading, enableSelection, onSelect, height, minHeight, defaultColDef, pagination, paginationPageSize, paginationPageSizeSelector, getRowId, modules, ariaLabel, ...gridProps }: CustomGridTableProps<Row>):
|
|
29
|
+
declare function CustomGridTableComponent<Row extends object>({ columns, data, totals, loading, enableSelection, onSelect, height, minHeight, defaultColDef, pagination, paginationPageSize, paginationPageSizeSelector, getRowId, modules, ariaLabel, ...gridProps }: CustomGridTableProps<Row>): React.JSX.Element;
|
|
30
30
|
declare const CustomGridTable: typeof CustomGridTableComponent;
|
|
31
31
|
declare const AgGridTable: typeof CustomGridTableComponent;
|
|
32
32
|
|
|
@@ -38,8 +38,8 @@ interface CustomGridHeaderCellWithInfoProps<Row = unknown> extends IHeaderParams
|
|
|
38
38
|
formulaLabel?: string;
|
|
39
39
|
}
|
|
40
40
|
/** Accessible sortable AG Grid header with optional information and formula help. */
|
|
41
|
-
declare function CustomGridHeaderCellWithInfo<Row = unknown>({ displayName, title, info, infoLabel, formula, formulaLabel, column, enableSorting, progressSort, }: CustomGridHeaderCellWithInfoProps<Row>):
|
|
41
|
+
declare function CustomGridHeaderCellWithInfo<Row = unknown>({ displayName, title, info, infoLabel, formula, formulaLabel, column, enableSorting, progressSort, }: CustomGridHeaderCellWithInfoProps<Row>): React.JSX.Element;
|
|
42
42
|
|
|
43
|
-
declare function CustomGridTableWrapper({ children, sx, ...props }: BoxProps):
|
|
43
|
+
declare function CustomGridTableWrapper({ children, sx, ...props }: BoxProps): React.JSX.Element;
|
|
44
44
|
|
|
45
45
|
export { AgGridTable, CustomGridHeaderCellWithInfo, type CustomGridHeaderCellWithInfoProps, CustomGridTable, CustomGridTableComponent, type CustomGridTableProps, CustomGridTableWrapper };
|
package/dist/grids/ag-grid.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as React from 'react';
|
|
2
2
|
import { CSSProperties, ReactNode } from 'react';
|
|
3
3
|
import { ColDef, GetRowIdParams, Module, IHeaderParams } from 'ag-grid-community';
|
|
4
4
|
export { ColDef, ColGroupDef, GridApi, GridOptions, ICellRendererParams, IHeaderParams, RowSelectionOptions } from 'ag-grid-community';
|
|
@@ -26,7 +26,7 @@ interface CustomGridTableProps<Row extends object> extends Omit<AgGridReactProps
|
|
|
26
26
|
* Optional AG Grid Community wrapper. Import only from the ag-grid subpath so
|
|
27
27
|
* regular shared-component consumers do not load AG Grid.
|
|
28
28
|
*/
|
|
29
|
-
declare function CustomGridTableComponent<Row extends object>({ columns, data, totals, loading, enableSelection, onSelect, height, minHeight, defaultColDef, pagination, paginationPageSize, paginationPageSizeSelector, getRowId, modules, ariaLabel, ...gridProps }: CustomGridTableProps<Row>):
|
|
29
|
+
declare function CustomGridTableComponent<Row extends object>({ columns, data, totals, loading, enableSelection, onSelect, height, minHeight, defaultColDef, pagination, paginationPageSize, paginationPageSizeSelector, getRowId, modules, ariaLabel, ...gridProps }: CustomGridTableProps<Row>): React.JSX.Element;
|
|
30
30
|
declare const CustomGridTable: typeof CustomGridTableComponent;
|
|
31
31
|
declare const AgGridTable: typeof CustomGridTableComponent;
|
|
32
32
|
|
|
@@ -38,8 +38,8 @@ interface CustomGridHeaderCellWithInfoProps<Row = unknown> extends IHeaderParams
|
|
|
38
38
|
formulaLabel?: string;
|
|
39
39
|
}
|
|
40
40
|
/** Accessible sortable AG Grid header with optional information and formula help. */
|
|
41
|
-
declare function CustomGridHeaderCellWithInfo<Row = unknown>({ displayName, title, info, infoLabel, formula, formulaLabel, column, enableSorting, progressSort, }: CustomGridHeaderCellWithInfoProps<Row>):
|
|
41
|
+
declare function CustomGridHeaderCellWithInfo<Row = unknown>({ displayName, title, info, infoLabel, formula, formulaLabel, column, enableSorting, progressSort, }: CustomGridHeaderCellWithInfoProps<Row>): React.JSX.Element;
|
|
42
42
|
|
|
43
|
-
declare function CustomGridTableWrapper({ children, sx, ...props }: BoxProps):
|
|
43
|
+
declare function CustomGridTableWrapper({ children, sx, ...props }: BoxProps): React.JSX.Element;
|
|
44
44
|
|
|
45
45
|
export { AgGridTable, CustomGridHeaderCellWithInfo, type CustomGridHeaderCellWithInfoProps, CustomGridTable, CustomGridTableComponent, type CustomGridTableProps, CustomGridTableWrapper };
|
package/dist/grids/ag-grid.js
CHANGED
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
import { AllCommunityModule } from 'ag-grid-community';
|
|
2
2
|
import { AgGridReact } from 'ag-grid-react';
|
|
3
|
-
import { memo, useMemo, useCallback } from 'react';
|
|
3
|
+
import { memo, isValidElement, useMemo, useCallback, Children } from 'react';
|
|
4
4
|
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
5
5
|
import FunctionsIcon from '@mui/icons-material/Functions';
|
|
6
6
|
import InfoOutlinedIcon from '@mui/icons-material/InfoOutlined';
|
|
7
7
|
import Stack from '@mui/material/Stack';
|
|
8
|
-
import
|
|
8
|
+
import Button from '@mui/material/Button';
|
|
9
9
|
import IconButton from '@mui/material/IconButton';
|
|
10
|
+
import Tooltip, { tooltipClasses } from '@mui/material/Tooltip';
|
|
11
|
+
import { styled } from '@mui/material/styles';
|
|
10
12
|
import Box from '@mui/material/Box';
|
|
11
13
|
|
|
12
14
|
// src/grids/ag-grid/CustomAgGrid.tsx
|
|
@@ -89,15 +91,89 @@ var CustomGridTable = memo(
|
|
|
89
91
|
CustomGridTableComponent
|
|
90
92
|
);
|
|
91
93
|
var AgGridTable = CustomGridTable;
|
|
92
|
-
|
|
94
|
+
var colorOpacity = {
|
|
95
|
+
primary: "#1976d2",
|
|
96
|
+
secondary: "#9c27b0",
|
|
97
|
+
error: "#d32f2f",
|
|
98
|
+
warning: "#ed6c02",
|
|
99
|
+
info: "#0288d1",
|
|
100
|
+
success: "#2e7d32",
|
|
101
|
+
inherit: "#1976d2",
|
|
102
|
+
default: "#1976d2"
|
|
103
|
+
};
|
|
104
|
+
function accessibleText(children) {
|
|
105
|
+
let text = "";
|
|
106
|
+
Children.forEach(children, (child) => {
|
|
107
|
+
if (typeof child === "string" || typeof child === "number") {
|
|
108
|
+
text += String(child);
|
|
109
|
+
} else if (isValidElement(child)) {
|
|
110
|
+
text += accessibleText(child.props.children);
|
|
111
|
+
}
|
|
112
|
+
});
|
|
113
|
+
return text.trim() || "Button";
|
|
114
|
+
}
|
|
115
|
+
function SharedButton({
|
|
116
|
+
children,
|
|
117
|
+
color = "primary",
|
|
118
|
+
variant,
|
|
119
|
+
disabled = false,
|
|
120
|
+
sx,
|
|
121
|
+
...props
|
|
122
|
+
}) {
|
|
123
|
+
const baseColor = colorOpacity[color] ?? colorOpacity.primary;
|
|
124
|
+
const customSx = variant === "outlined" && !disabled ? {
|
|
125
|
+
textTransform: "capitalize",
|
|
126
|
+
backgroundColor: `${baseColor}20`,
|
|
127
|
+
"&:hover": { backgroundColor: `${baseColor}35` },
|
|
128
|
+
...sx
|
|
129
|
+
} : { textTransform: "capitalize", ...sx };
|
|
130
|
+
return /* @__PURE__ */ jsx(
|
|
131
|
+
Button,
|
|
132
|
+
{
|
|
133
|
+
"aria-label": props["aria-label"] ?? accessibleText(children),
|
|
134
|
+
color,
|
|
135
|
+
variant,
|
|
136
|
+
disabled,
|
|
137
|
+
sx: {
|
|
138
|
+
...customSx,
|
|
139
|
+
minWidth: "40px",
|
|
140
|
+
height: "40px",
|
|
141
|
+
padding: "6px",
|
|
142
|
+
borderRadius: "4px"
|
|
143
|
+
},
|
|
144
|
+
...props,
|
|
145
|
+
children
|
|
146
|
+
}
|
|
147
|
+
);
|
|
148
|
+
}
|
|
149
|
+
function inferIconLabel(children) {
|
|
150
|
+
if (!isValidElement(children)) return "Icon Button";
|
|
151
|
+
const type = children.type;
|
|
152
|
+
const name = type.displayName ?? type.name ?? "Icon Button";
|
|
153
|
+
return name.replace(/(Icon|Outlined|Filled|Rounded|Sharp|TwoTone)$/g, "").replace(/([a-z])([A-Z])/g, "$1 $2").toLowerCase();
|
|
154
|
+
}
|
|
155
|
+
function SharedIconButton({ children, ...props }) {
|
|
93
156
|
return /* @__PURE__ */ jsx(
|
|
94
157
|
IconButton,
|
|
95
158
|
{
|
|
96
|
-
|
|
97
|
-
...props
|
|
159
|
+
"aria-label": props["aria-label"] ?? inferIconLabel(children),
|
|
160
|
+
...props,
|
|
161
|
+
children
|
|
98
162
|
}
|
|
99
163
|
);
|
|
100
164
|
}
|
|
165
|
+
var LightTooltip = styled(({ className, children, ...props }) => {
|
|
166
|
+
const disabled = isValidElement(children) && Boolean(children.props.disabled);
|
|
167
|
+
if (disabled) return /* @__PURE__ */ jsx("span", { children });
|
|
168
|
+
return /* @__PURE__ */ jsx(Tooltip, { ...props, classes: className ? { popper: className } : void 0, children });
|
|
169
|
+
})(({ theme }) => ({
|
|
170
|
+
[`& .${tooltipClasses.tooltip}`]: {
|
|
171
|
+
backgroundColor: theme.palette.common.white,
|
|
172
|
+
color: "rgba(0, 0, 0, 0.87)",
|
|
173
|
+
boxShadow: theme.shadows[1],
|
|
174
|
+
fontSize: 14
|
|
175
|
+
}
|
|
176
|
+
}));
|
|
101
177
|
function CustomGridHeaderCellWithInfo({
|
|
102
178
|
displayName,
|
|
103
179
|
title,
|
|
@@ -117,21 +193,19 @@ function CustomGridHeaderCellWithInfo({
|
|
|
117
193
|
};
|
|
118
194
|
return /* @__PURE__ */ jsxs(Stack, { direction: "row", alignItems: "center", spacing: 0.5, width: "100%", children: [
|
|
119
195
|
/* @__PURE__ */ jsxs(
|
|
120
|
-
|
|
196
|
+
SharedButton,
|
|
121
197
|
{
|
|
122
|
-
|
|
198
|
+
variant: "text",
|
|
123
199
|
disabled: !enableSorting,
|
|
124
200
|
"aria-label": sortLabel,
|
|
125
201
|
onClick: requestSort,
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
background: "transparent",
|
|
202
|
+
sx: {
|
|
203
|
+
minWidth: 40,
|
|
204
|
+
px: 0.5,
|
|
130
205
|
color: "inherit",
|
|
131
|
-
font: "inherit",
|
|
132
206
|
fontWeight: 600,
|
|
133
|
-
|
|
134
|
-
|
|
207
|
+
justifyContent: "flex-start",
|
|
208
|
+
whiteSpace: "nowrap"
|
|
135
209
|
},
|
|
136
210
|
children: [
|
|
137
211
|
headerTitle,
|
|
@@ -139,8 +213,8 @@ function CustomGridHeaderCellWithInfo({
|
|
|
139
213
|
]
|
|
140
214
|
}
|
|
141
215
|
),
|
|
142
|
-
info ? /* @__PURE__ */ jsx(
|
|
143
|
-
formula ? /* @__PURE__ */ jsx(
|
|
216
|
+
info ? /* @__PURE__ */ jsx(LightTooltip, { title: info, arrow: true, children: /* @__PURE__ */ jsx(SharedIconButton, { "aria-label": infoLabel, size: "small", children: /* @__PURE__ */ jsx(InfoOutlinedIcon, { fontSize: "small" }) }) }) : null,
|
|
217
|
+
formula ? /* @__PURE__ */ jsx(LightTooltip, { title: formula, arrow: true, children: /* @__PURE__ */ jsx(SharedIconButton, { "aria-label": formulaLabel, size: "small", children: /* @__PURE__ */ jsx(FunctionsIcon, { fontSize: "small" }) }) }) : null
|
|
144
218
|
] });
|
|
145
219
|
}
|
|
146
220
|
function CustomGridTableWrapper({ children, sx, ...props }) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/grids/ag-grid/CustomAgGrid.tsx","../../src/buttons/SharedIconButton.tsx","../../src/grids/ag-grid/CustomGridHeaderCellWithInfo.tsx","../../src/grids/ag-grid/CustomGridTableWrapper.tsx"],"names":["jsx"],"mappings":"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","file":"ag-grid.js","sourcesContent":["import type {\n ColDef,\n GetRowIdParams,\n Module,\n RowSelectionOptions,\n SelectionChangedEvent,\n} from \"ag-grid-community\";\nimport { AllCommunityModule } from \"ag-grid-community\";\nimport {\n AgGridReact,\n type AgGridReactProps,\n} from \"ag-grid-react\";\nimport { memo, useCallback, useMemo, type CSSProperties } from \"react\";\n\nconst DEFAULT_AG_GRID_MODULES: Module[] = [AllCommunityModule];\n\nexport interface CustomGridTableProps<Row extends object>\n extends Omit<\n AgGridReactProps<Row>,\n | \"columnDefs\"\n | \"rowData\"\n | \"pinnedBottomRowData\"\n | \"defaultColDef\"\n | \"onSelectionChanged\"\n | \"pagination\"\n | \"paginationPageSize\"\n | \"paginationPageSizeSelector\"\n | \"rowSelection\"\n | \"modules\"\n | \"getRowId\"\n > {\n columns?: readonly ColDef<Row>[];\n data?: readonly Row[];\n totals?: readonly Row[];\n loading?: boolean;\n enableSelection?: boolean;\n onSelect?: (rows: Row[]) => void;\n height?: CSSProperties[\"height\"];\n minHeight?: CSSProperties[\"minHeight\"];\n defaultColDef?: ColDef<Row>;\n pagination?: boolean;\n paginationPageSize?: number;\n paginationPageSizeSelector?: readonly number[];\n getRowId?: (params: GetRowIdParams<Row>) => string;\n modules?: Module[];\n ariaLabel?: string;\n}\n\n/**\n * Optional AG Grid Community wrapper. Import only from the ag-grid subpath so\n * regular shared-component consumers do not load AG Grid.\n */\nexport function CustomGridTableComponent<Row extends object>({\n columns = [],\n data = [],\n totals = [],\n loading = false,\n enableSelection = false,\n onSelect,\n height = 500,\n minHeight = 240,\n defaultColDef,\n pagination,\n paginationPageSize = 25,\n paginationPageSizeSelector = [5, 10, 25, 50, 75, 100],\n getRowId,\n modules = DEFAULT_AG_GRID_MODULES,\n ariaLabel = \"Data grid\",\n ...gridProps\n}: CustomGridTableProps<Row>) {\n const resolvedDefaultColDef = useMemo<ColDef<Row>>(\n () => ({\n flex: 1,\n minWidth: 160,\n resizable: true,\n sortable: true,\n wrapText: true,\n autoHeight: true,\n ...defaultColDef,\n }),\n [defaultColDef],\n );\n const rowSelection = useMemo<RowSelectionOptions<Row> | undefined>(\n () =>\n enableSelection\n ? {\n mode: \"multiRow\",\n checkboxes: true,\n headerCheckbox: true,\n enableClickSelection: false,\n selectAll: \"filtered\",\n }\n : undefined,\n [enableSelection],\n );\n const enablePagination = pagination ?? data.length > 50;\n const handleSelection = useCallback(\n (event: SelectionChangedEvent<Row>) => onSelect?.(event.api.getSelectedRows()),\n [onSelect],\n );\n\n return (\n <div\n aria-label={ariaLabel}\n role=\"region\"\n style={{ width: \"100%\", height, minHeight }}\n >\n <AgGridReact<Row>\n modules={modules}\n rowData={[...data]}\n columnDefs={[...columns]}\n pinnedBottomRowData={[...totals]}\n defaultColDef={resolvedDefaultColDef}\n loading={loading}\n pagination={enablePagination}\n paginationPageSize={paginationPageSize}\n paginationPageSizeSelector={[...paginationPageSizeSelector]}\n {...(rowSelection ? { rowSelection } : {})}\n onSelectionChanged={handleSelection}\n animateRows={false}\n suppressDragLeaveHidesColumns\n {...(getRowId ? { getRowId } : {})}\n {...gridProps}\n />\n </div>\n );\n}\n\nexport const CustomGridTable = memo(\n CustomGridTableComponent,\n) as typeof CustomGridTableComponent;\n\nexport const AgGridTable = CustomGridTable;\nexport default CustomGridTable;\n","import IconButton, { type IconButtonProps } from \"@mui/material/IconButton\";\n\nexport interface SharedIconButtonProps extends IconButtonProps {\n \"aria-label\": string;\n}\n\n/** An icon-only button that requires an accessible label. */\nexport function SharedIconButton({ sx, ...props }: SharedIconButtonProps) {\n return (\n <IconButton\n sx={{ width: 40, height: 40, borderRadius: 1, ...sx }}\n {...props}\n />\n );\n}\n\nexport default SharedIconButton;\n","import FunctionsIcon from \"@mui/icons-material/Functions\";\nimport InfoOutlinedIcon from \"@mui/icons-material/InfoOutlined\";\nimport Stack from \"@mui/material/Stack\";\nimport Tooltip from \"@mui/material/Tooltip\";\nimport type { IHeaderParams } from \"ag-grid-community\";\nimport type { KeyboardEvent, MouseEvent, ReactNode } from \"react\";\nimport { SharedIconButton } from \"../../buttons/SharedIconButton\";\n\nexport interface CustomGridHeaderCellWithInfoProps<Row = unknown>\n extends IHeaderParams<Row> {\n title?: ReactNode;\n info?: ReactNode;\n infoLabel?: string;\n formula?: ReactNode;\n formulaLabel?: string;\n}\n\n/** Accessible sortable AG Grid header with optional information and formula help. */\nexport function CustomGridHeaderCellWithInfo<Row = unknown>({\n displayName,\n title,\n info,\n infoLabel = \"Column information\",\n formula,\n formulaLabel = \"Column formula\",\n column,\n enableSorting,\n progressSort,\n}: CustomGridHeaderCellWithInfoProps<Row>) {\n const sort = column.getSort();\n const headerTitle = title ?? displayName;\n const sortLabel = sort\n ? `${String(headerTitle)}, sorted ${sort === \"asc\" ? \"ascending\" : \"descending\"}`\n : `${String(headerTitle)}, not sorted`;\n const requestSort = (event: MouseEvent | KeyboardEvent) => {\n if (enableSorting) progressSort(event.shiftKey);\n };\n\n return (\n <Stack direction=\"row\" alignItems=\"center\" spacing={0.5} width=\"100%\">\n <button\n type=\"button\"\n disabled={!enableSorting}\n aria-label={sortLabel}\n onClick={requestSort}\n style={{\n appearance: \"none\",\n border: 0,\n background: \"transparent\",\n color: \"inherit\",\n font: \"inherit\",\n fontWeight: 600,\n cursor: enableSorting ? \"pointer\" : \"default\",\n padding: 4,\n }}\n >\n {headerTitle}\n {sort === \"asc\" ? \" ▲\" : sort === \"desc\" ? \" ▼\" : \"\"}\n </button>\n {info ? (\n <Tooltip title={info} arrow>\n <SharedIconButton aria-label={infoLabel} size=\"small\">\n <InfoOutlinedIcon fontSize=\"small\" />\n </SharedIconButton>\n </Tooltip>\n ) : null}\n {formula ? (\n <Tooltip title={formula} arrow>\n <SharedIconButton aria-label={formulaLabel} size=\"small\">\n <FunctionsIcon fontSize=\"small\" />\n </SharedIconButton>\n </Tooltip>\n ) : null}\n </Stack>\n );\n}\n\nexport default CustomGridHeaderCellWithInfo;\n","import Box, { type BoxProps } from \"@mui/material/Box\";\n\nexport function CustomGridTableWrapper({ children, sx, ...props }: BoxProps) {\n return (\n <Box width=\"100%\" p={1.5} mb={0.5} sx={sx} {...props}>\n {children}\n </Box>\n );\n}\n\nexport default CustomGridTableWrapper;\n"]}
|
|
1
|
+
{"version":3,"sources":["../../src/grids/ag-grid/CustomAgGrid.tsx","../../src/buttons/SharedButton.tsx","../../src/buttons/SharedIconButton.tsx","../../src/feedback/LightTooltip.tsx","../../src/grids/ag-grid/CustomGridHeaderCellWithInfo.tsx","../../src/grids/ag-grid/CustomGridTableWrapper.tsx"],"names":["jsx","isValidElement"],"mappings":"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","file":"ag-grid.js","sourcesContent":["import type {\n ColDef,\n GetRowIdParams,\n Module,\n RowSelectionOptions,\n SelectionChangedEvent,\n} from \"ag-grid-community\";\nimport { AllCommunityModule } from \"ag-grid-community\";\nimport {\n AgGridReact,\n type AgGridReactProps,\n} from \"ag-grid-react\";\nimport { memo, useCallback, useMemo, type CSSProperties } from \"react\";\n\nconst DEFAULT_AG_GRID_MODULES: Module[] = [AllCommunityModule];\n\nexport interface CustomGridTableProps<Row extends object>\n extends Omit<\n AgGridReactProps<Row>,\n | \"columnDefs\"\n | \"rowData\"\n | \"pinnedBottomRowData\"\n | \"defaultColDef\"\n | \"onSelectionChanged\"\n | \"pagination\"\n | \"paginationPageSize\"\n | \"paginationPageSizeSelector\"\n | \"rowSelection\"\n | \"modules\"\n | \"getRowId\"\n > {\n columns?: readonly ColDef<Row>[];\n data?: readonly Row[];\n totals?: readonly Row[];\n loading?: boolean;\n enableSelection?: boolean;\n onSelect?: (rows: Row[]) => void;\n height?: CSSProperties[\"height\"];\n minHeight?: CSSProperties[\"minHeight\"];\n defaultColDef?: ColDef<Row>;\n pagination?: boolean;\n paginationPageSize?: number;\n paginationPageSizeSelector?: readonly number[];\n getRowId?: (params: GetRowIdParams<Row>) => string;\n modules?: Module[];\n ariaLabel?: string;\n}\n\n/**\n * Optional AG Grid Community wrapper. Import only from the ag-grid subpath so\n * regular shared-component consumers do not load AG Grid.\n */\nexport function CustomGridTableComponent<Row extends object>({\n columns = [],\n data = [],\n totals = [],\n loading = false,\n enableSelection = false,\n onSelect,\n height = 500,\n minHeight = 240,\n defaultColDef,\n pagination,\n paginationPageSize = 25,\n paginationPageSizeSelector = [5, 10, 25, 50, 75, 100],\n getRowId,\n modules = DEFAULT_AG_GRID_MODULES,\n ariaLabel = \"Data grid\",\n ...gridProps\n}: CustomGridTableProps<Row>) {\n const resolvedDefaultColDef = useMemo<ColDef<Row>>(\n () => ({\n flex: 1,\n minWidth: 160,\n resizable: true,\n sortable: true,\n wrapText: true,\n autoHeight: true,\n ...defaultColDef,\n }),\n [defaultColDef],\n );\n const rowSelection = useMemo<RowSelectionOptions<Row> | undefined>(\n () =>\n enableSelection\n ? {\n mode: \"multiRow\",\n checkboxes: true,\n headerCheckbox: true,\n enableClickSelection: false,\n selectAll: \"filtered\",\n }\n : undefined,\n [enableSelection],\n );\n const enablePagination = pagination ?? data.length > 50;\n const handleSelection = useCallback(\n (event: SelectionChangedEvent<Row>) => onSelect?.(event.api.getSelectedRows()),\n [onSelect],\n );\n\n return (\n <div\n aria-label={ariaLabel}\n role=\"region\"\n style={{ width: \"100%\", height, minHeight }}\n >\n <AgGridReact<Row>\n modules={modules}\n rowData={[...data]}\n columnDefs={[...columns]}\n pinnedBottomRowData={[...totals]}\n defaultColDef={resolvedDefaultColDef}\n loading={loading}\n pagination={enablePagination}\n paginationPageSize={paginationPageSize}\n paginationPageSizeSelector={[...paginationPageSizeSelector]}\n {...(rowSelection ? { rowSelection } : {})}\n onSelectionChanged={handleSelection}\n animateRows={false}\n suppressDragLeaveHidesColumns\n {...(getRowId ? { getRowId } : {})}\n {...gridProps}\n />\n </div>\n );\n}\n\nexport const CustomGridTable = memo(\n CustomGridTableComponent,\n) as typeof CustomGridTableComponent;\n\nexport const AgGridTable = CustomGridTable;\nexport default CustomGridTable;\n","import Button, { type ButtonProps } from \"@mui/material/Button\";\nimport { Children, isValidElement, type ReactNode } from \"react\";\n\nexport type SharedButtonProps = ButtonProps;\n\nconst colorOpacity: Record<string, string> = {\n primary: \"#1976d2\",\n secondary: \"#9c27b0\",\n error: \"#d32f2f\",\n warning: \"#ed6c02\",\n info: \"#0288d1\",\n success: \"#2e7d32\",\n inherit: \"#1976d2\",\n default: \"#1976d2\",\n};\n\nfunction accessibleText(children: ReactNode): string {\n let text = \"\";\n Children.forEach(children, (child) => {\n if (typeof child === \"string\" || typeof child === \"number\") {\n text += String(child);\n } else if (isValidElement<{ children?: ReactNode }>(child)) {\n text += accessibleText(child.props.children);\n }\n });\n return text.trim() || \"Button\";\n}\n\n/** A consistently sized MUI button with accessible defaults. */\nexport function SharedButton({\n children,\n color = \"primary\",\n variant,\n disabled = false,\n sx,\n ...props\n}: SharedButtonProps) {\n const baseColor = colorOpacity[color] ?? colorOpacity.primary;\n const customSx = variant === \"outlined\" && !disabled\n ? {\n textTransform: \"capitalize\",\n backgroundColor: `${baseColor}20`,\n \"&:hover\": { backgroundColor: `${baseColor}35` },\n ...sx,\n }\n : { textTransform: \"capitalize\", ...sx };\n\n return (\n <Button\n aria-label={props[\"aria-label\"] ?? accessibleText(children)}\n color={color}\n variant={variant}\n disabled={disabled}\n sx={{\n ...customSx,\n minWidth: \"40px\",\n height: \"40px\",\n padding: \"6px\",\n borderRadius: \"4px\",\n }}\n {...props}\n >\n {children}\n </Button>\n );\n}\n\n/** Visual-compatible version of the legacy `StyledButton` export. */\nexport function LegacyStyledButton({\n children,\n color = \"primary\",\n variant,\n disabled = false,\n sx,\n ...props\n}: SharedButtonProps) {\n const baseColor = colorOpacity[color] ?? colorOpacity.primary;\n const customSx = variant === \"outlined\" && !disabled\n ? {\n textTransform: \"capitalize\",\n backgroundColor: `${baseColor}20`,\n \"&:hover\": { backgroundColor: `${baseColor}35` },\n ...sx,\n }\n : { textTransform: \"capitalize\", ...sx };\n\n return (\n <Button\n aria-label={props[\"aria-label\"] ?? accessibleText(children)}\n color={color}\n variant={variant}\n disabled={disabled}\n sx={customSx}\n {...props}\n >\n {children}\n </Button>\n );\n}\n\nexport default SharedButton;\n","import IconButton, { type IconButtonProps } from \"@mui/material/IconButton\";\nimport { isValidElement, type ReactNode } from \"react\";\n\nexport interface SharedIconButtonProps extends IconButtonProps {\n \"aria-label\"?: string;\n}\n\nfunction inferIconLabel(children: ReactNode): string {\n if (!isValidElement(children)) return \"Icon Button\";\n const type = children.type as { displayName?: string; name?: string };\n const name = type.displayName ?? type.name ?? \"Icon Button\";\n return name\n .replace(/(Icon|Outlined|Filled|Rounded|Sharp|TwoTone)$/g, \"\")\n .replace(/([a-z])([A-Z])/g, \"$1 $2\")\n .toLowerCase();\n}\n\n/** Legacy-size icon button with an accessible-name fallback. */\nexport function SharedIconButton({ children, ...props }: SharedIconButtonProps) {\n return (\n <IconButton\n aria-label={props[\"aria-label\"] ?? inferIconLabel(children)}\n {...props}\n >\n {children}\n </IconButton>\n );\n}\n\nexport default SharedIconButton;\n","import Tooltip, { tooltipClasses, type TooltipProps } from \"@mui/material/Tooltip\";\nimport { styled } from \"@mui/material/styles\";\nimport { isValidElement } from \"react\";\n\n/** Visual-compatible version of the legacy shared-base light tooltip. */\nexport const LightTooltip = styled(({ className, children, ...props }: TooltipProps) => {\n const disabled = isValidElement<{ disabled?: boolean }>(children) && Boolean(children.props.disabled);\n\n if (disabled) return <span>{children}</span>;\n\n return (\n <Tooltip {...props} classes={className ? { popper: className } : undefined}>\n {children}\n </Tooltip>\n );\n})(({ theme }) => ({\n [`& .${tooltipClasses.tooltip}`]: {\n backgroundColor: theme.palette.common.white,\n color: \"rgba(0, 0, 0, 0.87)\",\n boxShadow: theme.shadows[1],\n fontSize: 14,\n },\n}));\n\nexport const SharedTooltip = LightTooltip;\n","import FunctionsIcon from \"@mui/icons-material/Functions\";\nimport InfoOutlinedIcon from \"@mui/icons-material/InfoOutlined\";\nimport Stack from \"@mui/material/Stack\";\nimport type { IHeaderParams } from \"ag-grid-community\";\nimport type { KeyboardEvent, MouseEvent, ReactNode } from \"react\";\nimport { SharedButton } from \"../../buttons/SharedButton\";\nimport { SharedIconButton } from \"../../buttons/SharedIconButton\";\nimport { LightTooltip } from \"../../feedback/LightTooltip\";\n\nexport interface CustomGridHeaderCellWithInfoProps<Row = unknown>\n extends IHeaderParams<Row> {\n title?: ReactNode;\n info?: ReactNode;\n infoLabel?: string;\n formula?: ReactNode;\n formulaLabel?: string;\n}\n\n/** Accessible sortable AG Grid header with optional information and formula help. */\nexport function CustomGridHeaderCellWithInfo<Row = unknown>({\n displayName,\n title,\n info,\n infoLabel = \"Column information\",\n formula,\n formulaLabel = \"Column formula\",\n column,\n enableSorting,\n progressSort,\n}: CustomGridHeaderCellWithInfoProps<Row>) {\n const sort = column.getSort();\n const headerTitle = title ?? displayName;\n const sortLabel = sort\n ? `${String(headerTitle)}, sorted ${sort === \"asc\" ? \"ascending\" : \"descending\"}`\n : `${String(headerTitle)}, not sorted`;\n const requestSort = (event: MouseEvent | KeyboardEvent) => {\n if (enableSorting) progressSort(event.shiftKey);\n };\n\n return (\n <Stack direction=\"row\" alignItems=\"center\" spacing={0.5} width=\"100%\">\n <SharedButton\n variant=\"text\"\n disabled={!enableSorting}\n aria-label={sortLabel}\n onClick={requestSort}\n sx={{\n minWidth: 40,\n px: 0.5,\n color: \"inherit\",\n fontWeight: 600,\n justifyContent: \"flex-start\",\n whiteSpace: \"nowrap\",\n }}\n >\n {headerTitle}\n {sort === \"asc\" ? \" ▲\" : sort === \"desc\" ? \" ▼\" : \"\"}\n </SharedButton>\n {info ? (\n <LightTooltip title={info} arrow>\n <SharedIconButton aria-label={infoLabel} size=\"small\">\n <InfoOutlinedIcon fontSize=\"small\" />\n </SharedIconButton>\n </LightTooltip>\n ) : null}\n {formula ? (\n <LightTooltip title={formula} arrow>\n <SharedIconButton aria-label={formulaLabel} size=\"small\">\n <FunctionsIcon fontSize=\"small\" />\n </SharedIconButton>\n </LightTooltip>\n ) : null}\n </Stack>\n );\n}\n\nexport default CustomGridHeaderCellWithInfo;\n","import Box, { type BoxProps } from \"@mui/material/Box\";\n\nexport function CustomGridTableWrapper({ children, sx, ...props }: BoxProps) {\n return (\n <Box width=\"100%\" p={1.5} mb={0.5} sx={sx} {...props}>\n {children}\n </Box>\n );\n}\n\nexport default CustomGridTableWrapper;\n"]}
|
package/dist/icons/lucide.d.cts
CHANGED
|
@@ -1 +1,151 @@
|
|
|
1
1
|
export { Check, ChevronDown, ChevronLeft, ChevronRight, ChevronUp, CircleAlert, CircleHelp, Copy, Download, Edit, Eye, EyeOff, Filter, Info, LoaderCircle, Menu, MoreVertical, Plus, RefreshCw, Save, Search, Trash2, Upload, X } from 'lucide-react';
|
|
2
|
+
import '@mui/icons-material/AccessibilityNew';
|
|
3
|
+
import '@mui/icons-material/AccountTree';
|
|
4
|
+
import '@mui/icons-material/AccountTreeOutlined';
|
|
5
|
+
import '@mui/icons-material/Add';
|
|
6
|
+
import '@mui/icons-material/AddCircleOutline';
|
|
7
|
+
import '@mui/icons-material/AdminPanelSettings';
|
|
8
|
+
import '@mui/icons-material/Archive';
|
|
9
|
+
import '@mui/icons-material/ArrowBack';
|
|
10
|
+
import '@mui/icons-material/ArrowForwardIosSharp';
|
|
11
|
+
import '@mui/icons-material/ArticleOutlined';
|
|
12
|
+
import '@mui/icons-material/AssessmentOutlined';
|
|
13
|
+
import '@mui/icons-material/AssignmentOutlined';
|
|
14
|
+
import '@mui/icons-material/AssignmentTurnedIn';
|
|
15
|
+
import '@mui/icons-material/AttachMoney';
|
|
16
|
+
import '@mui/icons-material/Attachment';
|
|
17
|
+
import '@mui/icons-material/AutoModeOutlined';
|
|
18
|
+
import '@mui/icons-material/BackupTable';
|
|
19
|
+
import '@mui/icons-material/BookmarkAdded';
|
|
20
|
+
import '@mui/icons-material/BrightnessAuto';
|
|
21
|
+
import '@mui/icons-material/Business';
|
|
22
|
+
import '@mui/icons-material/BusinessCenterOutlined';
|
|
23
|
+
import '@mui/icons-material/CableOutlined';
|
|
24
|
+
import '@mui/icons-material/Cached';
|
|
25
|
+
import '@mui/icons-material/Cancel';
|
|
26
|
+
import '@mui/icons-material/Check';
|
|
27
|
+
import '@mui/icons-material/CheckCircle';
|
|
28
|
+
import '@mui/icons-material/CheckCircleOutline';
|
|
29
|
+
import '@mui/icons-material/Close';
|
|
30
|
+
import '@mui/icons-material/Comment';
|
|
31
|
+
import '@mui/icons-material/Compare';
|
|
32
|
+
import '@mui/icons-material/CompareArrows';
|
|
33
|
+
import '@mui/icons-material/ContactEmergency';
|
|
34
|
+
import '@mui/icons-material/ContentCopy';
|
|
35
|
+
import '@mui/icons-material/ContentCopyOutlined';
|
|
36
|
+
import '@mui/icons-material/CorporateFare';
|
|
37
|
+
import '@mui/icons-material/CurrencyExchange';
|
|
38
|
+
import '@mui/icons-material/DeleteForever';
|
|
39
|
+
import '@mui/icons-material/DeleteForeverOutlined';
|
|
40
|
+
import '@mui/icons-material/DeleteOutline';
|
|
41
|
+
import '@mui/icons-material/DeleteOutlined';
|
|
42
|
+
import '@mui/icons-material/DescriptionOutlined';
|
|
43
|
+
import '@mui/icons-material/Difference';
|
|
44
|
+
import '@mui/icons-material/DoneAllOutlined';
|
|
45
|
+
import '@mui/icons-material/DoneOutline';
|
|
46
|
+
import '@mui/icons-material/Download';
|
|
47
|
+
import '@mui/icons-material/EditOutlined';
|
|
48
|
+
import '@mui/icons-material/Email';
|
|
49
|
+
import '@mui/icons-material/Equalizer';
|
|
50
|
+
import '@mui/icons-material/ErrorOutlineOutlined';
|
|
51
|
+
import '@mui/icons-material/EventSeat';
|
|
52
|
+
import '@mui/icons-material/FileCopy';
|
|
53
|
+
import '@mui/icons-material/FileCopyOutlined';
|
|
54
|
+
import '@mui/icons-material/FileUpload';
|
|
55
|
+
import '@mui/icons-material/FileUploadOutlined';
|
|
56
|
+
import '@mui/icons-material/FilterAlt';
|
|
57
|
+
import '@mui/icons-material/FilterList';
|
|
58
|
+
import '@mui/icons-material/FilterListOff';
|
|
59
|
+
import '@mui/icons-material/Flag';
|
|
60
|
+
import '@mui/icons-material/FlagOutlined';
|
|
61
|
+
import '@mui/icons-material/FolderOpen';
|
|
62
|
+
import '@mui/icons-material/Functions';
|
|
63
|
+
import '@mui/icons-material/GetApp';
|
|
64
|
+
import '@mui/icons-material/Group';
|
|
65
|
+
import '@mui/icons-material/GroupAdd';
|
|
66
|
+
import '@mui/icons-material/GroupAddOutlined';
|
|
67
|
+
import '@mui/icons-material/GroupWorkOutlined';
|
|
68
|
+
import '@mui/icons-material/Handshake';
|
|
69
|
+
import '@mui/icons-material/HelpOutline';
|
|
70
|
+
import '@mui/icons-material/History';
|
|
71
|
+
import '@mui/icons-material/HistoryOutlined';
|
|
72
|
+
import '@mui/icons-material/HorizontalSplitOutlined';
|
|
73
|
+
import '@mui/icons-material/HourglassEmpty';
|
|
74
|
+
import '@mui/icons-material/HowToVote';
|
|
75
|
+
import '@mui/icons-material/HttpOutlined';
|
|
76
|
+
import '@mui/icons-material/ImportContacts';
|
|
77
|
+
import '@mui/icons-material/ImportExport';
|
|
78
|
+
import '@mui/icons-material/InfoOutlined';
|
|
79
|
+
import '@mui/icons-material/InsertChartOutlined';
|
|
80
|
+
import '@mui/icons-material/IosShareOutlined';
|
|
81
|
+
import '@mui/icons-material/Link';
|
|
82
|
+
import '@mui/icons-material/List';
|
|
83
|
+
import '@mui/icons-material/MailOutline';
|
|
84
|
+
import '@mui/icons-material/ManageAccounts';
|
|
85
|
+
import '@mui/icons-material/Menu';
|
|
86
|
+
import '@mui/icons-material/MenuBook';
|
|
87
|
+
import '@mui/icons-material/MonetizationOn';
|
|
88
|
+
import '@mui/icons-material/MoreVert';
|
|
89
|
+
import '@mui/icons-material/NextWeek';
|
|
90
|
+
import '@mui/icons-material/Nfc';
|
|
91
|
+
import '@mui/icons-material/OpenInNew';
|
|
92
|
+
import '@mui/icons-material/PanToolOutlined';
|
|
93
|
+
import '@mui/icons-material/PauseCircleOutline';
|
|
94
|
+
import '@mui/icons-material/PeopleAltOutlined';
|
|
95
|
+
import '@mui/icons-material/Person';
|
|
96
|
+
import '@mui/icons-material/PersonOutlineOutlined';
|
|
97
|
+
import '@mui/icons-material/PlayCircle';
|
|
98
|
+
import '@mui/icons-material/PlayCircleOutlined';
|
|
99
|
+
import '@mui/icons-material/PlaylistAddCheck';
|
|
100
|
+
import '@mui/icons-material/PostAddOutlined';
|
|
101
|
+
import '@mui/icons-material/PreviewRounded';
|
|
102
|
+
import '@mui/icons-material/PriceChangeOutlined';
|
|
103
|
+
import '@mui/icons-material/Print';
|
|
104
|
+
import '@mui/icons-material/Publish';
|
|
105
|
+
import '@mui/icons-material/PublishedWithChanges';
|
|
106
|
+
import '@mui/icons-material/RecentActorsOutlined';
|
|
107
|
+
import '@mui/icons-material/RecommendOutlined';
|
|
108
|
+
import '@mui/icons-material/Refresh';
|
|
109
|
+
import '@mui/icons-material/ReorderOutlined';
|
|
110
|
+
import '@mui/icons-material/Repeat';
|
|
111
|
+
import '@mui/icons-material/RequestQuoteOutlined';
|
|
112
|
+
import '@mui/icons-material/RestartAlt';
|
|
113
|
+
import '@mui/icons-material/Rule';
|
|
114
|
+
import '@mui/icons-material/RuleOutlined';
|
|
115
|
+
import '@mui/icons-material/SafetyDivider';
|
|
116
|
+
import '@mui/icons-material/Search';
|
|
117
|
+
import '@mui/icons-material/Security';
|
|
118
|
+
import '@mui/icons-material/Send';
|
|
119
|
+
import '@mui/icons-material/Settings';
|
|
120
|
+
import '@mui/icons-material/SettingsEthernet';
|
|
121
|
+
import '@mui/icons-material/Share';
|
|
122
|
+
import '@mui/icons-material/SimCardDownload';
|
|
123
|
+
import '@mui/icons-material/SlowMotionVideoOutlined';
|
|
124
|
+
import '@mui/icons-material/Sort';
|
|
125
|
+
import '@mui/icons-material/SpaceDashboardOutlined';
|
|
126
|
+
import '@mui/icons-material/Speed';
|
|
127
|
+
import '@mui/icons-material/Star';
|
|
128
|
+
import '@mui/icons-material/StarBorder';
|
|
129
|
+
import '@mui/icons-material/Stop';
|
|
130
|
+
import '@mui/icons-material/SupervisedUserCircleOutlined';
|
|
131
|
+
import '@mui/icons-material/SupervisorAccountOutlined';
|
|
132
|
+
import '@mui/icons-material/SwapCalls';
|
|
133
|
+
import '@mui/icons-material/Sync';
|
|
134
|
+
import '@mui/icons-material/SyncAlt';
|
|
135
|
+
import '@mui/icons-material/TableChartOutlined';
|
|
136
|
+
import '@mui/icons-material/Tag';
|
|
137
|
+
import '@mui/icons-material/TaskAlt';
|
|
138
|
+
import '@mui/icons-material/ThumbDownOutlined';
|
|
139
|
+
import '@mui/icons-material/ThumbUpOutlined';
|
|
140
|
+
import '@mui/icons-material/TimerOutlined';
|
|
141
|
+
import '@mui/icons-material/Toc';
|
|
142
|
+
import '@mui/icons-material/TornadoOutlined';
|
|
143
|
+
import '@mui/icons-material/TrackChanges';
|
|
144
|
+
import '@mui/icons-material/UploadFileOutlined';
|
|
145
|
+
import '@mui/icons-material/VerifiedUser';
|
|
146
|
+
import '@mui/icons-material/VerifiedUserOutlined';
|
|
147
|
+
import '@mui/icons-material/VerticalSplit';
|
|
148
|
+
import '@mui/icons-material/ViewComfy';
|
|
149
|
+
import '@mui/icons-material/ViewHeadline';
|
|
150
|
+
import '@mui/icons-material/Visibility';
|
|
151
|
+
import '@mui/icons-material/WarningOutlined';
|