@proounce/shared-common 0.0.0-stage → 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.
@@ -0,0 +1,45 @@
1
+ import * as React from 'react';
2
+ import { CSSProperties, ReactNode } from 'react';
3
+ import { ColDef, GetRowIdParams, Module, IHeaderParams } from 'ag-grid-community';
4
+ export { ColDef, ColGroupDef, GridApi, GridOptions, ICellRendererParams, IHeaderParams, RowSelectionOptions } from 'ag-grid-community';
5
+ import { AgGridReactProps } from 'ag-grid-react';
6
+ import { BoxProps } from '@mui/material/Box';
7
+
8
+ interface CustomGridTableProps<Row extends object> extends Omit<AgGridReactProps<Row>, "columnDefs" | "rowData" | "pinnedBottomRowData" | "defaultColDef" | "onSelectionChanged" | "pagination" | "paginationPageSize" | "paginationPageSizeSelector" | "rowSelection" | "modules" | "getRowId"> {
9
+ columns?: readonly ColDef<Row>[];
10
+ data?: readonly Row[];
11
+ totals?: readonly Row[];
12
+ loading?: boolean;
13
+ enableSelection?: boolean;
14
+ onSelect?: (rows: Row[]) => void;
15
+ height?: CSSProperties["height"];
16
+ minHeight?: CSSProperties["minHeight"];
17
+ defaultColDef?: ColDef<Row>;
18
+ pagination?: boolean;
19
+ paginationPageSize?: number;
20
+ paginationPageSizeSelector?: readonly number[];
21
+ getRowId?: (params: GetRowIdParams<Row>) => string;
22
+ modules?: Module[];
23
+ ariaLabel?: string;
24
+ }
25
+ /**
26
+ * Optional AG Grid Community wrapper. Import only from the ag-grid subpath so
27
+ * regular shared-component consumers do not load AG Grid.
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>): React.JSX.Element;
30
+ declare const CustomGridTable: typeof CustomGridTableComponent;
31
+ declare const AgGridTable: typeof CustomGridTableComponent;
32
+
33
+ interface CustomGridHeaderCellWithInfoProps<Row = unknown> extends IHeaderParams<Row> {
34
+ title?: ReactNode;
35
+ info?: ReactNode;
36
+ infoLabel?: string;
37
+ formula?: ReactNode;
38
+ formulaLabel?: string;
39
+ }
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>): React.JSX.Element;
42
+
43
+ declare function CustomGridTableWrapper({ children, sx, ...props }: BoxProps): React.JSX.Element;
44
+
45
+ export { AgGridTable, CustomGridHeaderCellWithInfo, type CustomGridHeaderCellWithInfoProps, CustomGridTable, CustomGridTableComponent, type CustomGridTableProps, CustomGridTableWrapper };
@@ -0,0 +1,226 @@
1
+ import { AllCommunityModule } from 'ag-grid-community';
2
+ import { AgGridReact } from 'ag-grid-react';
3
+ import { memo, isValidElement, useMemo, useCallback, Children } from 'react';
4
+ import { jsx, jsxs } from 'react/jsx-runtime';
5
+ import FunctionsIcon from '@mui/icons-material/Functions';
6
+ import InfoOutlinedIcon from '@mui/icons-material/InfoOutlined';
7
+ import Stack from '@mui/material/Stack';
8
+ import Button from '@mui/material/Button';
9
+ import IconButton from '@mui/material/IconButton';
10
+ import Tooltip, { tooltipClasses } from '@mui/material/Tooltip';
11
+ import { styled } from '@mui/material/styles';
12
+ import Box from '@mui/material/Box';
13
+
14
+ // src/grids/ag-grid/CustomAgGrid.tsx
15
+ var DEFAULT_AG_GRID_MODULES = [AllCommunityModule];
16
+ function CustomGridTableComponent({
17
+ columns = [],
18
+ data = [],
19
+ totals = [],
20
+ loading = false,
21
+ enableSelection = false,
22
+ onSelect,
23
+ height = 500,
24
+ minHeight = 240,
25
+ defaultColDef,
26
+ pagination,
27
+ paginationPageSize = 25,
28
+ paginationPageSizeSelector = [5, 10, 25, 50, 75, 100],
29
+ getRowId,
30
+ modules = DEFAULT_AG_GRID_MODULES,
31
+ ariaLabel = "Data grid",
32
+ ...gridProps
33
+ }) {
34
+ const resolvedDefaultColDef = useMemo(
35
+ () => ({
36
+ flex: 1,
37
+ minWidth: 160,
38
+ resizable: true,
39
+ sortable: true,
40
+ wrapText: true,
41
+ autoHeight: true,
42
+ ...defaultColDef
43
+ }),
44
+ [defaultColDef]
45
+ );
46
+ const rowSelection = useMemo(
47
+ () => enableSelection ? {
48
+ mode: "multiRow",
49
+ checkboxes: true,
50
+ headerCheckbox: true,
51
+ enableClickSelection: false,
52
+ selectAll: "filtered"
53
+ } : void 0,
54
+ [enableSelection]
55
+ );
56
+ const enablePagination = pagination ?? data.length > 50;
57
+ const handleSelection = useCallback(
58
+ (event) => onSelect?.(event.api.getSelectedRows()),
59
+ [onSelect]
60
+ );
61
+ return /* @__PURE__ */ jsx(
62
+ "div",
63
+ {
64
+ "aria-label": ariaLabel,
65
+ role: "region",
66
+ style: { width: "100%", height, minHeight },
67
+ children: /* @__PURE__ */ jsx(
68
+ AgGridReact,
69
+ {
70
+ modules,
71
+ rowData: [...data],
72
+ columnDefs: [...columns],
73
+ pinnedBottomRowData: [...totals],
74
+ defaultColDef: resolvedDefaultColDef,
75
+ loading,
76
+ pagination: enablePagination,
77
+ paginationPageSize,
78
+ paginationPageSizeSelector: [...paginationPageSizeSelector],
79
+ ...rowSelection ? { rowSelection } : {},
80
+ onSelectionChanged: handleSelection,
81
+ animateRows: false,
82
+ suppressDragLeaveHidesColumns: true,
83
+ ...getRowId ? { getRowId } : {},
84
+ ...gridProps
85
+ }
86
+ )
87
+ }
88
+ );
89
+ }
90
+ var CustomGridTable = memo(
91
+ CustomGridTableComponent
92
+ );
93
+ var AgGridTable = CustomGridTable;
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 }) {
156
+ return /* @__PURE__ */ jsx(
157
+ IconButton,
158
+ {
159
+ "aria-label": props["aria-label"] ?? inferIconLabel(children),
160
+ ...props,
161
+ children
162
+ }
163
+ );
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
+ }));
177
+ function CustomGridHeaderCellWithInfo({
178
+ displayName,
179
+ title,
180
+ info,
181
+ infoLabel = "Column information",
182
+ formula,
183
+ formulaLabel = "Column formula",
184
+ column,
185
+ enableSorting,
186
+ progressSort
187
+ }) {
188
+ const sort = column.getSort();
189
+ const headerTitle = title ?? displayName;
190
+ const sortLabel = sort ? `${String(headerTitle)}, sorted ${sort === "asc" ? "ascending" : "descending"}` : `${String(headerTitle)}, not sorted`;
191
+ const requestSort = (event) => {
192
+ if (enableSorting) progressSort(event.shiftKey);
193
+ };
194
+ return /* @__PURE__ */ jsxs(Stack, { direction: "row", alignItems: "center", spacing: 0.5, width: "100%", children: [
195
+ /* @__PURE__ */ jsxs(
196
+ SharedButton,
197
+ {
198
+ variant: "text",
199
+ disabled: !enableSorting,
200
+ "aria-label": sortLabel,
201
+ onClick: requestSort,
202
+ sx: {
203
+ minWidth: 40,
204
+ px: 0.5,
205
+ color: "inherit",
206
+ fontWeight: 600,
207
+ justifyContent: "flex-start",
208
+ whiteSpace: "nowrap"
209
+ },
210
+ children: [
211
+ headerTitle,
212
+ sort === "asc" ? " \u25B2" : sort === "desc" ? " \u25BC" : ""
213
+ ]
214
+ }
215
+ ),
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
218
+ ] });
219
+ }
220
+ function CustomGridTableWrapper({ children, sx, ...props }) {
221
+ return /* @__PURE__ */ jsx(Box, { width: "100%", p: 1.5, mb: 0.5, sx, ...props, children });
222
+ }
223
+
224
+ export { AgGridTable, CustomGridHeaderCellWithInfo, CustomGridTable, CustomGridTableComponent, CustomGridTableWrapper };
225
+ //# sourceMappingURL=ag-grid.js.map
226
+ //# sourceMappingURL=ag-grid.js.map
@@ -0,0 +1 @@
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"]}
@@ -0,0 +1,104 @@
1
+ 'use strict';
2
+
3
+ var lucideReact = require('lucide-react');
4
+
5
+
6
+
7
+ Object.defineProperty(exports, "Check", {
8
+ enumerable: true,
9
+ get: function () { return lucideReact.Check; }
10
+ });
11
+ Object.defineProperty(exports, "ChevronDown", {
12
+ enumerable: true,
13
+ get: function () { return lucideReact.ChevronDown; }
14
+ });
15
+ Object.defineProperty(exports, "ChevronLeft", {
16
+ enumerable: true,
17
+ get: function () { return lucideReact.ChevronLeft; }
18
+ });
19
+ Object.defineProperty(exports, "ChevronRight", {
20
+ enumerable: true,
21
+ get: function () { return lucideReact.ChevronRight; }
22
+ });
23
+ Object.defineProperty(exports, "ChevronUp", {
24
+ enumerable: true,
25
+ get: function () { return lucideReact.ChevronUp; }
26
+ });
27
+ Object.defineProperty(exports, "CircleAlert", {
28
+ enumerable: true,
29
+ get: function () { return lucideReact.CircleAlert; }
30
+ });
31
+ Object.defineProperty(exports, "CircleHelp", {
32
+ enumerable: true,
33
+ get: function () { return lucideReact.CircleHelp; }
34
+ });
35
+ Object.defineProperty(exports, "Copy", {
36
+ enumerable: true,
37
+ get: function () { return lucideReact.Copy; }
38
+ });
39
+ Object.defineProperty(exports, "Download", {
40
+ enumerable: true,
41
+ get: function () { return lucideReact.Download; }
42
+ });
43
+ Object.defineProperty(exports, "Edit", {
44
+ enumerable: true,
45
+ get: function () { return lucideReact.Edit; }
46
+ });
47
+ Object.defineProperty(exports, "Eye", {
48
+ enumerable: true,
49
+ get: function () { return lucideReact.Eye; }
50
+ });
51
+ Object.defineProperty(exports, "EyeOff", {
52
+ enumerable: true,
53
+ get: function () { return lucideReact.EyeOff; }
54
+ });
55
+ Object.defineProperty(exports, "Filter", {
56
+ enumerable: true,
57
+ get: function () { return lucideReact.Filter; }
58
+ });
59
+ Object.defineProperty(exports, "Info", {
60
+ enumerable: true,
61
+ get: function () { return lucideReact.Info; }
62
+ });
63
+ Object.defineProperty(exports, "LoaderCircle", {
64
+ enumerable: true,
65
+ get: function () { return lucideReact.LoaderCircle; }
66
+ });
67
+ Object.defineProperty(exports, "Menu", {
68
+ enumerable: true,
69
+ get: function () { return lucideReact.Menu; }
70
+ });
71
+ Object.defineProperty(exports, "MoreVertical", {
72
+ enumerable: true,
73
+ get: function () { return lucideReact.MoreVertical; }
74
+ });
75
+ Object.defineProperty(exports, "Plus", {
76
+ enumerable: true,
77
+ get: function () { return lucideReact.Plus; }
78
+ });
79
+ Object.defineProperty(exports, "RefreshCw", {
80
+ enumerable: true,
81
+ get: function () { return lucideReact.RefreshCw; }
82
+ });
83
+ Object.defineProperty(exports, "Save", {
84
+ enumerable: true,
85
+ get: function () { return lucideReact.Save; }
86
+ });
87
+ Object.defineProperty(exports, "Search", {
88
+ enumerable: true,
89
+ get: function () { return lucideReact.Search; }
90
+ });
91
+ Object.defineProperty(exports, "Trash2", {
92
+ enumerable: true,
93
+ get: function () { return lucideReact.Trash2; }
94
+ });
95
+ Object.defineProperty(exports, "Upload", {
96
+ enumerable: true,
97
+ get: function () { return lucideReact.Upload; }
98
+ });
99
+ Object.defineProperty(exports, "X", {
100
+ enumerable: true,
101
+ get: function () { return lucideReact.X; }
102
+ });
103
+ //# sourceMappingURL=lucide.cjs.map
104
+ //# sourceMappingURL=lucide.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"lucide.cjs","sourcesContent":[]}
@@ -0,0 +1,151 @@
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';