@tap-payments/os-micro-frontend-shared 0.0.217 → 0.0.218

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,6 @@
1
+ import React from 'react';
2
+ import type { ActionCellProps } from '../type';
3
+ type ActionIconColumnProps = Readonly<Pick<ActionCellProps, 'actions' | 'dropdownAction' | 'onCloseDropdown' | 'isDropdownShown' | 'renderDropdown'>>;
4
+ declare function ActionIconColumn({ actions, dropdownAction, onCloseDropdown, isDropdownShown, renderDropdown, ...props }: ActionIconColumnProps): import("react/jsx-runtime").JSX.Element;
5
+ declare const _default: React.MemoExoticComponent<typeof ActionIconColumn>;
6
+ export default _default;
@@ -0,0 +1,48 @@
1
+ var __rest = (this && this.__rest) || function (s, e) {
2
+ var t = {};
3
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
4
+ t[p] = s[p];
5
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
6
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
7
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
8
+ t[p[i]] = s[p[i]];
9
+ }
10
+ return t;
11
+ };
12
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
13
+ import { memo } from 'react';
14
+ import { AnimatePresence } from 'framer-motion';
15
+ import Dropdown from '../../../DropdownMenu';
16
+ import { TableCell } from '../../../TableCells';
17
+ import ActionIconsVariants from './components/ActionIconsVariants';
18
+ import { actionIcons } from './constant';
19
+ import { useActionCell } from './hooks/useActionCell';
20
+ import { ActionIcon, ActionsIconContainer } from './style';
21
+ import { TransparentButton } from '../style';
22
+ function ActionIconColumn(_a) {
23
+ var { actions, dropdownAction, onCloseDropdown, isDropdownShown = true, renderDropdown } = _a, props = __rest(_a, ["actions", "dropdownAction", "onCloseDropdown", "isDropdownShown", "renderDropdown"]);
24
+ const { open, anchorEl, filteredActions, isAnyActionLoading, isAnyActionHasError, isAnyActionSuccessful, areThereAnyShownActions, handleClick, handleClose, setAnchorEl, } = useActionCell({ actions, isDropdownShown, onCloseDropdown, renderDropdown });
25
+ return (_jsx(TableCell, Object.assign({}, props, { sx: {
26
+ overflow: 'visible',
27
+ } }, { children: _jsx("div", Object.assign({ "data-testid": "ActionIconColumn_Container", style: {
28
+ display: 'flex',
29
+ alignItems: 'center',
30
+ justifyContent: 'center',
31
+ gap: '5px',
32
+ } }, { children: _jsxs(ActionsIconContainer, Object.assign({ id: "styled-popover", selected: !!dropdownAction || open, "data-testid": "ActionIconColumn_ActionsIconContainer", "data-is-active": areThereAnyShownActions, sx: Object.assign({}, (!areThereAnyShownActions && {
33
+ pointerEvents: 'none',
34
+ })) }, { children: [_jsx(TransparentButton, Object.assign({ onClick: handleClick, "data-testid": "ActionIconColumn_ActionsIconContainer_TransparentButton", "data-is-active": areThereAnyShownActions, sx: Object.assign({}, (!areThereAnyShownActions && {
35
+ pointerEvents: 'none',
36
+ })) }, { children: _jsx(AnimatePresence, Object.assign({ mode: "wait" }, { children: _jsx(ActionIconsVariants, { isAnyActionLoading: isAnyActionLoading, isAnyActionHasError: isAnyActionHasError, isAnyActionSuccessful: isAnyActionSuccessful, areThereAnyShownActions: areThereAnyShownActions }) })) })), renderDropdown ? (renderDropdown(anchorEl, setAnchorEl)) : (_jsxs(_Fragment, { children: [dropdownAction, areThereAnyShownActions && (_jsx(Dropdown, { style: { zIndex: 2000 }, open: open, onClose: handleClose, anchorEl: anchorEl, menuItems: filteredActions.map((action) => (Object.assign(Object.assign({}, action), { onClick: (e) => {
37
+ var _a;
38
+ (_a = action === null || action === void 0 ? void 0 : action.onClick) === null || _a === void 0 ? void 0 : _a.call(action, e);
39
+ if (!action.hasActionMenu) {
40
+ handleClose();
41
+ }
42
+ }, onRightClick: (e) => {
43
+ var _a;
44
+ (_a = action === null || action === void 0 ? void 0 : action.onRightClick) === null || _a === void 0 ? void 0 : _a.call(action, e);
45
+ handleClose();
46
+ }, icon: (_jsx(ActionIcon, { icon: action.icon, src: actionIcons[action.icon], initial: { opacity: 0 }, animate: { opacity: 1 }, exit: { opacity: 0 } }, `action.label-${action.label.trim()}`)) }))) }))] }))] })) })) })));
47
+ }
48
+ export default memo(ActionIconColumn);
@@ -0,0 +1,10 @@
1
+ import React from 'react';
2
+ import type { ActionCellProps } from '../type';
3
+ import { TableMode } from '../../../../types/index.js';
4
+ type ActionsColumnProps = Readonly<Pick<ActionCellProps, 'flag' | 'flagTooltip' | 'flagsCount' | 'row' | 'showJsonViewer' | 'isTextShown' | 'showIdButton' | 'rowId'>> & {
5
+ onJsonViewClick?: () => void;
6
+ tableMode?: TableMode;
7
+ };
8
+ declare function ActionsColumn({ flag, flagTooltip, flagsCount, row, showJsonViewer, isTextShown, showIdButton, rowId, onJsonViewClick, tableMode, ...props }: ActionsColumnProps): import("react/jsx-runtime").JSX.Element;
9
+ declare const _default: React.MemoExoticComponent<typeof ActionsColumn>;
10
+ export default _default;
@@ -0,0 +1,78 @@
1
+ var __rest = (this && this.__rest) || function (s, e) {
2
+ var t = {};
3
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
4
+ t[p] = s[p];
5
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
6
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
7
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
8
+ t[p[i]] = s[p[i]];
9
+ }
10
+ return t;
11
+ };
12
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
13
+ import { memo } from 'react';
14
+ import { motion } from 'framer-motion';
15
+ import { useTranslation } from 'react-i18next';
16
+ import Tooltip from '../../../Tooltip';
17
+ import { TableCell } from '../../../TableCells';
18
+ import StyledBadge, { BadgeVariants } from '../../../CountBadge';
19
+ import { jsonBlackIcon } from '../../../../constants/index.js';
20
+ import { colorToVariant, flags } from './constant';
21
+ import { ActionCellContainer, ActionIcon } from './style';
22
+ import { IDButton } from '../IDButton';
23
+ import { BadgeWrapper, IdButtonContainer, TextLabel, TransparentButton } from '../style';
24
+ import SheetViewIDButton from '../SheetViewIDButton/SheetViewIDButton';
25
+ function ActionsColumn(_a) {
26
+ var _b, _c;
27
+ var { flag, flagTooltip, flagsCount, row, showJsonViewer = true, isTextShown, showIdButton = true, rowId, onJsonViewClick, tableMode } = _a, props = __rest(_a, ["flag", "flagTooltip", "flagsCount", "row", "showJsonViewer", "isTextShown", "showIdButton", "rowId", "onJsonViewClick", "tableMode"]);
28
+ const { t } = useTranslation();
29
+ return (_jsx(TableCell, Object.assign({}, props, { sx: {
30
+ overflow: 'visible',
31
+ } }, { children: _jsxs(ActionCellContainer, Object.assign({ "data-testid": "ActionsColumn_ActionCellContainer", tableMode: tableMode }, { children: [flag && (_jsx(_Fragment, { children: isTextShown ? (_jsx(Tooltip, Object.assign({ title: flagTooltip }, { children: _jsx(TextLabel, Object.assign({ "data-testid": "ActionsColumn_FlagLabel", sx: {
32
+ textAlign: 'left',
33
+ justifyContent: 'flex-start',
34
+ } }, { children: flagTooltip })) }))) : (_jsx(Tooltip, Object.assign({ title: flagTooltip }, { children: _jsxs(BadgeWrapper, Object.assign({ "data-testid": "ActionsColumn_FlagBadge", sx: {
35
+ paddingInline: '12px',
36
+ width: 'auto',
37
+ alignItems: 'center',
38
+ position: 'relative',
39
+ zIndex: 21,
40
+ gap: '0px',
41
+ }, whileHover: ['animate', 'fadeIn'], variants: {
42
+ animate: {
43
+ gap: '4px',
44
+ },
45
+ } }, { children: [_jsx(ActionIcon, { "data-testid": "ActionsColumn_FlagIcon", sx: {
46
+ width: '12px',
47
+ height: '11px',
48
+ }, src: (_b = flags[flag]) === null || _b === void 0 ? void 0 : _b.icon, alt: "flag-icon" }), (flagsCount !== null && flagsCount !== void 0 ? flagsCount : 0) > 1 && (_jsx(motion.div, Object.assign({ "data-testid": "ActionsColumn_StyledBadge_Container", style: {
49
+ alignItems: 'center',
50
+ justifyContent: 'center',
51
+ gap: '4px',
52
+ display: 'flex',
53
+ zIndex: 10,
54
+ }, initial: { width: 0, opacity: 0 }, transition: {
55
+ animate: {
56
+ duration: 0.5,
57
+ },
58
+ fadeIn: {
59
+ duration: 0.2,
60
+ },
61
+ }, variants: {
62
+ animate: {
63
+ width: 'auto',
64
+ },
65
+ fadeIn: {
66
+ transition: {
67
+ delay: 0.5,
68
+ },
69
+ opacity: 1,
70
+ },
71
+ } }, { children: _jsxs(StyledBadge, Object.assign({ compact: true, variant: colorToVariant[(_c = flags[flag]) === null || _c === void 0 ? void 0 : _c.color] || BadgeVariants.ORANGE, "data-testid": "ActionsColumn_StyledBadge" }, { children: [flagsCount, "x"] })) })))] })) }))) })), showIdButton ? (tableMode === 'sheet' ? (_jsx(SheetViewIDButton, { rowId: rowId || row.id })) : (_jsx(IDButton, { rowId: rowId || row.id }))) : null, _jsx("div", Object.assign({ "data-testid": "ActionsColumn_IconsContainer", style: {
72
+ display: 'flex',
73
+ alignItems: 'center',
74
+ justifyContent: 'center',
75
+ gap: '5px',
76
+ } }, { children: showJsonViewer && (_jsx(TransparentButton, Object.assign({ onClick: onJsonViewClick, type: "button", "data-testid": "ActionsColumn_TransparentButton" }, { children: _jsx(Tooltip, Object.assign({ title: t('jsonViewer') }, { children: _jsx(IdButtonContainer, Object.assign({ tableMode: tableMode, "data-testid": "ActionsColumn_IdButtonContainer" }, { children: tableMode === 'sheet' ? (_jsx("span", Object.assign({ style: { fontSize: '11px', fontWeight: 400 } }, { children: "View API" }))) : (_jsx(motion.img, { src: jsonBlackIcon, alt: "icon" }, "id-icon")) })) })) }))) }))] })) })));
77
+ }
78
+ export default memo(ActionsColumn);
@@ -1,3 +1,5 @@
1
1
  export { default as ActionCell } from './ActionCell';
2
+ export { default as ActionsColumn } from './ActionsColumn';
3
+ export { default as ActionIconColumn } from './ActionIconColumn';
2
4
  export * from './components';
3
5
  export * from './type';
@@ -1,3 +1,5 @@
1
1
  export { default as ActionCell } from './ActionCell';
2
+ export { default as ActionsColumn } from './ActionsColumn';
3
+ export { default as ActionIconColumn } from './ActionIconColumn';
2
4
  export * from './components';
3
5
  export * from './type';
@@ -14,6 +14,10 @@ export declare const statusIcons: {
14
14
  AUTHORIZED: string;
15
15
  };
16
16
  export declare const sheetViewChipStyles: {
17
+ CAPTURED: {
18
+ color: string;
19
+ background: string;
20
+ };
17
21
  ABANDONED: {
18
22
  color: string;
19
23
  background: string;
@@ -14,6 +14,10 @@ export const statusIcons = {
14
14
  AUTHORIZED: authorizedIcon,
15
15
  };
16
16
  export const sheetViewChipStyles = {
17
+ CAPTURED: {
18
+ color: '#1F88D0',
19
+ background: '#1F88D01A',
20
+ },
17
21
  ABANDONED: {
18
22
  color: '#FFD600',
19
23
  background: 'transparent',
@@ -52,12 +52,18 @@ function SheetViewVirtualTable({ columns, rows, threshold = TABLE_THRESHOLD, sho
52
52
  const [selectedColumn, setSelectedColumn] = useState(null);
53
53
  const handleCellClick = useCallback((rowIndex, columnId, event) => {
54
54
  event.stopPropagation();
55
+ if (event.target !== event.currentTarget) {
56
+ return;
57
+ }
55
58
  const cellKey = `${rowIndex}-${columnId}`;
56
59
  setSelectedCell((prev) => (prev === cellKey ? null : cellKey));
57
60
  setSelectedColumn(null);
58
61
  }, []);
59
62
  const handleColumnClick = useCallback((columnId, event) => {
60
63
  event.stopPropagation();
64
+ if (event.target !== event.currentTarget) {
65
+ return;
66
+ }
61
67
  setSelectedColumn((prev) => (prev === columnId ? null : columnId));
62
68
  setSelectedCell(null);
63
69
  }, []);
@@ -6,7 +6,15 @@ export const usePinnedColumns = (columns, isPinnable, onColumnPin) => {
6
6
  return Array.from(new Set([...defaultPinned, ...userPinned]));
7
7
  });
8
8
  const [pinnedEndColumns, setPinnedEndColumns] = useState(() => {
9
- return isPinnable ? columns.filter((c) => c.pinned === 'end').map((c) => c.id) : [];
9
+ if (!isPinnable)
10
+ return [];
11
+ const userPinned = columns.filter((c) => c.pinned === 'end').map((c) => c.id);
12
+ const visibleColumns = columns.filter((column) => !column.hidden);
13
+ const lastColumn = visibleColumns[visibleColumns.length - 1];
14
+ if (userPinned.length === 0 && lastColumn && !lastColumn.pinned && !lastColumn.isDefaultPinned) {
15
+ return [lastColumn.id];
16
+ }
17
+ return userPinned;
10
18
  });
11
19
  const handleColumnPin = useCallback((columnId, position = 'start') => {
12
20
  if (!isPinnable)
@@ -159,4 +159,9 @@ export declare const chargeTableCellWidth: {
159
159
  readonly text: "52px";
160
160
  readonly sheet: "52px";
161
161
  };
162
+ readonly action_icon: {
163
+ readonly default: "30px";
164
+ readonly text: "30px";
165
+ readonly sheet: "30px";
166
+ };
162
167
  };
@@ -159,4 +159,9 @@ export const chargeTableCellWidth = {
159
159
  text: '52px',
160
160
  sheet: '52px',
161
161
  },
162
+ action_icon: {
163
+ default: '30px',
164
+ text: '30px',
165
+ sheet: '30px',
166
+ },
162
167
  };
@@ -1,8 +1,10 @@
1
1
  import type { IColumnProps, ColumnViewProps, ColumnsView } from '../types/index.js';
2
2
  export declare function filterShownColumns<T>(columns: Array<IColumnProps<T & {
3
3
  actions: string;
4
+ action_icon: string;
4
5
  }>>, tableViews: ColumnViewProps[]): IColumnProps<T & {
5
6
  actions: string;
7
+ action_icon: string;
6
8
  }>[];
7
9
  export declare function isParameterSelected(columns: ColumnViewProps[], columnId: string, parameter: string): boolean;
8
10
  export declare function mapDataToViews(columnData?: ColumnsView[], language?: string): ColumnViewProps[];
@@ -7,7 +7,7 @@ export function filterShownColumns(columns, tableViews) {
7
7
  const isColumnWithMenuItems = !!column.tableViewId && (((_a = selectedColumn === null || selectedColumn === void 0 ? void 0 : selectedColumn.menuItems) === null || _a === void 0 ? void 0 : _a.length) || 0) > 1;
8
8
  const isMenuItemSelected = (_c = (_b = selectedColumn === null || selectedColumn === void 0 ? void 0 : selectedColumn.menuItems) === null || _b === void 0 ? void 0 : _b.find((item) => item.name === column.tableViewId)) === null || _c === void 0 ? void 0 : _c.selected;
9
9
  const isColumnSelected = !!selectedColumn && (isMenuItemSelected || !isColumnWithMenuItems);
10
- const isBasicColumn = ['actions'].includes((_e = (_d = column.id) === null || _d === void 0 ? void 0 : _d.toString()) === null || _e === void 0 ? void 0 : _e.toLowerCase());
10
+ const isBasicColumn = ['actions', 'action_icon'].includes((_e = (_d = column.id) === null || _d === void 0 ? void 0 : _d.toString()) === null || _e === void 0 ? void 0 : _e.toLowerCase());
11
11
  if (isColumnSelected || isBasicColumn) {
12
12
  return true;
13
13
  }
package/package.json CHANGED
@@ -1,132 +1,134 @@
1
- {
2
- "name": "@tap-payments/os-micro-frontend-shared",
3
- "description": "Shared components and utilities for Tap Payments micro frontends",
4
- "version": "0.0.217",
5
- "type": "module",
6
- "main": "build/index.js",
7
- "module": "build/index.js",
8
- "types": "build/index.d.ts",
9
- "exports": {
10
- ".": {
11
- "types": "./build/index.d.ts",
12
- "import": "./build/index.js",
13
- "require": "./build/index.js"
14
- },
15
- "./constants": {
16
- "types": "./build/constants/index.d.ts",
17
- "import": "./build/constants/index.js",
18
- "require": "./build/constants/index.js"
19
- },
20
- "./components": {
21
- "types": "./build/components/index.d.ts",
22
- "import": "./build/components/index.js",
23
- "require": "./build/components/index.js"
24
- },
25
- "./components/*": {
26
- "types": "./build/components/*/index.d.ts",
27
- "import": "./build/components/*/index.js",
28
- "require": "./build/components/*/index.js"
29
- },
30
- "./hooks": {
31
- "types": "./build/hooks/index.d.ts",
32
- "import": "./build/hooks/index.js",
33
- "require": "./build/hooks/index.js"
34
- },
35
- "./utils": {
36
- "types": "./build/utils/index.d.ts",
37
- "import": "./build/utils/index.js",
38
- "require": "./build/utils/index.js"
39
- },
40
- "./theme": {
41
- "types": "./build/theme/index.d.ts",
42
- "import": "./build/theme/index.js",
43
- "require": "./build/theme/index.js"
44
- },
45
- "./types": {
46
- "types": "./build/types/index.d.ts",
47
- "import": "./build/types/index.js",
48
- "require": "./build/types/index.js"
49
- }
50
- },
51
- "license": "MIT",
52
- "author": {
53
- "name": "Ahmed Sharkawy",
54
- "email": "a.elsharkawy@tap.company"
55
- },
56
- "files": [
57
- "build",
58
- "readme.md"
59
- ],
60
- "scripts": {
61
- "ts:build": "rm -rf build && tsc -p tsconfig.npm.json && tsc-alias -p tsconfig.npm.json",
62
- "push": "npm version patch --no-git-tag-version && npm run ts:build && npm publish --access public",
63
- "dev": "vite",
64
- "build": "tsc -b && vite build ",
65
- "prettier": "prettier --list-different \"src/**/*.{md,mdx,ts,js,tsx,jsx,json}\"",
66
- "prettier:fix": "prettier --write \"src/**/*.{ts,tsx,js,jsx,json,md,css,json}\"",
67
- "lint": "eslint . --color",
68
- "lint:fix": "eslint src --fix --color",
69
- "preview": "vite preview",
70
- "prepare": "husky"
71
- },
72
- "dependencies": {
73
- "@emotion/react": "^11.11.0",
74
- "@emotion/styled": "^11.11.0",
75
- "@hookform/resolvers": "^3.3.1",
76
- "@mui/material": "^5.12.3",
77
- "@uiw/react-json-view": "^2.0.0-alpha.16",
78
- "axios": "^1.4.0",
79
- "dayjs": "^1.11.8",
80
- "framer-motion": "10.11.0",
81
- "i18next": "^22.4.15",
82
- "memoize-one": "^6.0.0",
83
- "re-resizable": "^6.9.9",
84
- "react": "^18.2.0",
85
- "react-currency-input-field": "^3.6.11",
86
- "react-dom": "^18.2.0",
87
- "react-draggable": "^4.4.6",
88
- "react-dropzone": "^14.2.3",
89
- "react-hook-form": "^7.45.4",
90
- "react-hot-toast": "^2.4.1",
91
- "react-i18next": "^12.2.2",
92
- "react-multi-date-picker": "^4.1.2",
93
- "react-router-dom": "^7.7.0",
94
- "react-virtualized-auto-sizer": "^1.0.20",
95
- "react-window": "^1.8.9",
96
- "react-window-infinite-loader": "^1.0.9",
97
- "react18-input-otp": "^1.1.4",
98
- "recharts": "^2.15.1"
99
- },
100
- "devDependencies": {
101
- "@eslint/js": "^9.17.0",
102
- "@testing-library/jest-dom": "^5.16.5",
103
- "@types/lodash": "^4.17.15",
104
- "@types/react": "^18.2.6",
105
- "@types/react-dom": "^18.3.5",
106
- "@types/react-virtualized-auto-sizer": "^1.0.8",
107
- "@types/react-window": "^1.8.5",
108
- "@types/react-window-infinite-loader": "^1.0.6",
109
- "@vitejs/plugin-react": "^4.3.4",
110
- "eslint": "^9.17.0",
111
- "eslint-plugin-react-hooks": "^5.0.0",
112
- "eslint-plugin-react-refresh": "^0.4.16",
113
- "globals": "^15.14.0",
114
- "husky": "^8.0.3",
115
- "lint-staged": "^13.2.2",
116
- "prettier": "^2.8.8",
117
- "tsc-alias": "^1.8.16",
118
- "typescript": "5.0.2",
119
- "typescript-eslint": "^8.18.2",
120
- "vite": "6.0.5",
121
- "vite-tsconfig-paths": "^4.2.0"
122
- },
123
- "lint-staged": {
124
- "src/**/*.{ts,tsx,json,js,jsx}": [
125
- "yarn run prettier:fix",
126
- "yarn run lint"
127
- ]
128
- },
129
- "publishConfig": {
130
- "registry": "https://registry.npmjs.org/"
131
- }
132
- }
1
+ {
2
+ "name": "@tap-payments/os-micro-frontend-shared",
3
+ "description": "Shared components and utilities for Tap Payments micro frontends",
4
+ "version": "0.0.218",
5
+ "testVersion": 7,
6
+ "type": "module",
7
+ "main": "build/index.js",
8
+ "module": "build/index.js",
9
+ "types": "build/index.d.ts",
10
+ "exports": {
11
+ ".": {
12
+ "types": "./build/index.d.ts",
13
+ "import": "./build/index.js",
14
+ "require": "./build/index.js"
15
+ },
16
+ "./constants": {
17
+ "types": "./build/constants/index.d.ts",
18
+ "import": "./build/constants/index.js",
19
+ "require": "./build/constants/index.js"
20
+ },
21
+ "./components": {
22
+ "types": "./build/components/index.d.ts",
23
+ "import": "./build/components/index.js",
24
+ "require": "./build/components/index.js"
25
+ },
26
+ "./components/*": {
27
+ "types": "./build/components/*/index.d.ts",
28
+ "import": "./build/components/*/index.js",
29
+ "require": "./build/components/*/index.js"
30
+ },
31
+ "./hooks": {
32
+ "types": "./build/hooks/index.d.ts",
33
+ "import": "./build/hooks/index.js",
34
+ "require": "./build/hooks/index.js"
35
+ },
36
+ "./utils": {
37
+ "types": "./build/utils/index.d.ts",
38
+ "import": "./build/utils/index.js",
39
+ "require": "./build/utils/index.js"
40
+ },
41
+ "./theme": {
42
+ "types": "./build/theme/index.d.ts",
43
+ "import": "./build/theme/index.js",
44
+ "require": "./build/theme/index.js"
45
+ },
46
+ "./types": {
47
+ "types": "./build/types/index.d.ts",
48
+ "import": "./build/types/index.js",
49
+ "require": "./build/types/index.js"
50
+ }
51
+ },
52
+ "license": "MIT",
53
+ "author": {
54
+ "name": "Ahmed Sharkawy",
55
+ "email": "a.elsharkawy@tap.company"
56
+ },
57
+ "files": [
58
+ "build",
59
+ "readme.md"
60
+ ],
61
+ "scripts": {
62
+ "ts:build": "rm -rf build && tsc -p tsconfig.npm.json && tsc-alias -p tsconfig.npm.json",
63
+ "push": "npm version patch --no-git-tag-version && npm run ts:build && npm publish --access public",
64
+ "push:test": "node scripts/increment-test-version.cjs && npm run ts:build && npm publish --access public --tag test && node scripts/restore-version.cjs",
65
+ "dev": "vite",
66
+ "build": "tsc -b && vite build ",
67
+ "prettier": "prettier --list-different \"src/**/*.{md,mdx,ts,js,tsx,jsx,json}\"",
68
+ "prettier:fix": "prettier --write \"src/**/*.{ts,tsx,js,jsx,json,md,css,json}\"",
69
+ "lint": "eslint . --color",
70
+ "lint:fix": "eslint src --fix --color",
71
+ "preview": "vite preview",
72
+ "prepare": "husky"
73
+ },
74
+ "dependencies": {
75
+ "@emotion/react": "^11.11.0",
76
+ "@emotion/styled": "^11.11.0",
77
+ "@hookform/resolvers": "^3.3.1",
78
+ "@mui/material": "^5.12.3",
79
+ "@uiw/react-json-view": "^2.0.0-alpha.16",
80
+ "axios": "^1.4.0",
81
+ "dayjs": "^1.11.8",
82
+ "framer-motion": "10.11.0",
83
+ "i18next": "^22.4.15",
84
+ "memoize-one": "^6.0.0",
85
+ "re-resizable": "^6.9.9",
86
+ "react": "^18.2.0",
87
+ "react-currency-input-field": "^3.6.11",
88
+ "react-dom": "^18.2.0",
89
+ "react-draggable": "^4.4.6",
90
+ "react-dropzone": "^14.2.3",
91
+ "react-hook-form": "^7.45.4",
92
+ "react-hot-toast": "^2.4.1",
93
+ "react-i18next": "^12.2.2",
94
+ "react-multi-date-picker": "^4.1.2",
95
+ "react-router-dom": "^7.7.0",
96
+ "react-virtualized-auto-sizer": "^1.0.20",
97
+ "react-window": "^1.8.9",
98
+ "react-window-infinite-loader": "^1.0.9",
99
+ "react18-input-otp": "^1.1.4",
100
+ "recharts": "^2.15.1"
101
+ },
102
+ "devDependencies": {
103
+ "@eslint/js": "^9.17.0",
104
+ "@testing-library/jest-dom": "^5.16.5",
105
+ "@types/lodash": "^4.17.15",
106
+ "@types/react": "^18.2.6",
107
+ "@types/react-dom": "^18.3.5",
108
+ "@types/react-virtualized-auto-sizer": "^1.0.8",
109
+ "@types/react-window": "^1.8.5",
110
+ "@types/react-window-infinite-loader": "^1.0.6",
111
+ "@vitejs/plugin-react": "^4.3.4",
112
+ "eslint": "^9.17.0",
113
+ "eslint-plugin-react-hooks": "^5.0.0",
114
+ "eslint-plugin-react-refresh": "^0.4.16",
115
+ "globals": "^15.14.0",
116
+ "husky": "^8.0.3",
117
+ "lint-staged": "^13.2.2",
118
+ "prettier": "^2.8.8",
119
+ "tsc-alias": "^1.8.16",
120
+ "typescript": "5.0.2",
121
+ "typescript-eslint": "^8.18.2",
122
+ "vite": "6.0.5",
123
+ "vite-tsconfig-paths": "^4.2.0"
124
+ },
125
+ "lint-staged": {
126
+ "src/**/*.{ts,tsx,json,js,jsx}": [
127
+ "yarn run prettier:fix",
128
+ "yarn run lint"
129
+ ]
130
+ },
131
+ "publishConfig": {
132
+ "registry": "https://registry.npmjs.org/"
133
+ }
134
+ }