@ceed/cds 0.0.126 → 0.0.128
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +1 -6
- package/package.json +2 -3
- package/dist/components/Accordions/Accordions.js +0 -66
- package/dist/components/Accordions/index.js +0 -3
- package/dist/components/Autocomplete/Autocomplete.js +0 -251
- package/dist/components/Autocomplete/index.js +0 -3
- package/dist/components/Box/Box.js +0 -6
- package/dist/components/Box/index.js +0 -3
- package/dist/components/Breadcrumbs/Breadcrumbs.js +0 -67
- package/dist/components/Breadcrumbs/index.js +0 -3
- package/dist/components/Button/Button.js +0 -28
- package/dist/components/Button/index.js +0 -3
- package/dist/components/Calendar/Calendar.js +0 -383
- package/dist/components/Calendar/hooks/use-calendar-props.js +0 -80
- package/dist/components/Calendar/hooks/use-calendar.js +0 -244
- package/dist/components/Calendar/index.js +0 -3
- package/dist/components/Calendar/types.js +0 -1
- package/dist/components/Calendar/utils/index.js +0 -72
- package/dist/components/Card/Card.js +0 -22
- package/dist/components/Card/index.js +0 -3
- package/dist/components/Checkbox/Checkbox.js +0 -28
- package/dist/components/Checkbox/index.js +0 -3
- package/dist/components/Chip/Chip.js +0 -6
- package/dist/components/Chip/index.js +0 -3
- package/dist/components/Container/Container.js +0 -65
- package/dist/components/Container/index.js +0 -3
- package/dist/components/CurrencyInput/CurrencyInput.js +0 -108
- package/dist/components/CurrencyInput/hooks/use-currency-setting.js +0 -165
- package/dist/components/CurrencyInput/index.js +0 -3
- package/dist/components/DataTable/DataTable.js +0 -437
- package/dist/components/DataTable/index.js +0 -3
- package/dist/components/DataTable/types.js +0 -1
- package/dist/components/DatePicker/DatePicker.js +0 -207
- package/dist/components/DatePicker/index.js +0 -3
- package/dist/components/DateRangePicker/DateRangePicker.js +0 -209
- package/dist/components/DateRangePicker/index.js +0 -3
- package/dist/components/DialogActions/DialogActions.js +0 -15
- package/dist/components/DialogActions/index.js +0 -3
- package/dist/components/DialogContent/DialogContent.js +0 -12
- package/dist/components/DialogContent/index.js +0 -3
- package/dist/components/DialogFrame/DialogFrame.js +0 -51
- package/dist/components/DialogFrame/index.js +0 -3
- package/dist/components/DialogTitle/DialogTitle.js +0 -12
- package/dist/components/DialogTitle/index.js +0 -3
- package/dist/components/Divider/Divider.js +0 -28
- package/dist/components/Divider/index.js +0 -3
- package/dist/components/Dropdown/Dropdown.js +0 -6
- package/dist/components/Dropdown/index.js +0 -3
- package/dist/components/FormControl/FormControl.js +0 -17
- package/dist/components/FormControl/index.js +0 -3
- package/dist/components/FormHelperText/FormHelperText.js +0 -6
- package/dist/components/FormHelperText/index.js +0 -3
- package/dist/components/FormLabel/FormLabel.js +0 -6
- package/dist/components/FormLabel/index.js +0 -3
- package/dist/components/Grid/Grid.js +0 -6
- package/dist/components/Grid/index.js +0 -3
- package/dist/components/IconButton/IconButton.js +0 -28
- package/dist/components/IconButton/index.js +0 -3
- package/dist/components/Input/Input.js +0 -51
- package/dist/components/Input/index.js +0 -3
- package/dist/components/InsetDrawer/InsetDrawer.js +0 -45
- package/dist/components/InsetDrawer/index.js +0 -3
- package/dist/components/Markdown/Markdown.js +0 -59
- package/dist/components/Markdown/index.js +0 -3
- package/dist/components/Menu/Menu.js +0 -56
- package/dist/components/Menu/index.js +0 -3
- package/dist/components/Modal/Modal.js +0 -63
- package/dist/components/Modal/index.js +0 -3
- package/dist/components/MonthPicker/MonthPicker.js +0 -203
- package/dist/components/MonthPicker/index.js +0 -3
- package/dist/components/MonthRangePicker/MonthRangePicker.js +0 -207
- package/dist/components/MonthRangePicker/index.js +0 -3
- package/dist/components/Radio/Radio.js +0 -10
- package/dist/components/Radio/index.js +0 -3
- package/dist/components/RadioList/RadioList.js +0 -38
- package/dist/components/RadioList/index.js +0 -3
- package/dist/components/Select/Select.js +0 -76
- package/dist/components/Select/index.js +0 -3
- package/dist/components/Sheet/Sheet.js +0 -6
- package/dist/components/Sheet/index.js +0 -3
- package/dist/components/Stack/Stack.js +0 -6
- package/dist/components/Stack/index.js +0 -3
- package/dist/components/Switch/Switch.js +0 -54
- package/dist/components/Switch/index.js +0 -3
- package/dist/components/Table/Table.js +0 -89
- package/dist/components/Table/index.js +0 -3
- package/dist/components/Tabs/Tabs.js +0 -18
- package/dist/components/Tabs/index.js +0 -3
- package/dist/components/Textarea/Textarea.js +0 -50
- package/dist/components/Textarea/index.js +0 -3
- package/dist/components/ThemeProvider/ThemeProvider.js +0 -159
- package/dist/components/ThemeProvider/index.js +0 -3
- package/dist/components/Tooltip/Tooltip.js +0 -28
- package/dist/components/Tooltip/index.js +0 -3
- package/dist/components/Typography/Typography.js +0 -28
- package/dist/components/Typography/index.js +0 -3
- package/dist/components/Uploader/Uploader.js +0 -353
- package/dist/components/Uploader/index.js +0 -3
- package/dist/components/index.js +0 -44
- package/dist/index.mjs +0 -1
|
@@ -1,159 +0,0 @@
|
|
|
1
|
-
import React from "react";
|
|
2
|
-
import { CssBaseline, CssVarsProvider, checkboxClasses, extendTheme, GlobalStyles, } from "@mui/joy";
|
|
3
|
-
var colorScheme = {
|
|
4
|
-
palette: {
|
|
5
|
-
danger: {
|
|
6
|
-
"50": "#FEF3F2",
|
|
7
|
-
"100": "#FDE6E5",
|
|
8
|
-
"200": "#FBC7C4",
|
|
9
|
-
"300": "#F89E99",
|
|
10
|
-
"400": "#F46E66",
|
|
11
|
-
"500": "#DC0D00",
|
|
12
|
-
"600": "#AB0F00",
|
|
13
|
-
"700": "#791000",
|
|
14
|
-
"800": "#430A0A",
|
|
15
|
-
"900": "#240505",
|
|
16
|
-
},
|
|
17
|
-
neutral: {
|
|
18
|
-
"50": "#FAFBFC",
|
|
19
|
-
"100": "#F3F5F7",
|
|
20
|
-
"200": "#EBECF0",
|
|
21
|
-
"300": "#D1D5DB",
|
|
22
|
-
"400": "#A2AAB8",
|
|
23
|
-
"500": "#5E6C83",
|
|
24
|
-
"600": "#505E79",
|
|
25
|
-
"700": "#253858",
|
|
26
|
-
"800": "#071B36",
|
|
27
|
-
"900": "#0B0D0E",
|
|
28
|
-
},
|
|
29
|
-
primary: {
|
|
30
|
-
"50": "#F2F7FE",
|
|
31
|
-
"100": "#E8F0FD",
|
|
32
|
-
"200": "#CCDFFC",
|
|
33
|
-
"300": "#9DC1F9",
|
|
34
|
-
"400": "#4D8EF3",
|
|
35
|
-
"500": "#015DEE",
|
|
36
|
-
"600": "#0154D6",
|
|
37
|
-
"700": "#0141A7",
|
|
38
|
-
"800": "#00255F",
|
|
39
|
-
"900": "#000F26",
|
|
40
|
-
},
|
|
41
|
-
warning: {
|
|
42
|
-
"50": "#FEF8F2",
|
|
43
|
-
"100": "#FEF1E5",
|
|
44
|
-
"200": "#FCE1C4",
|
|
45
|
-
"300": "#FABD7F",
|
|
46
|
-
"400": "#F57C00",
|
|
47
|
-
"500": "#AF5100",
|
|
48
|
-
"600": "#843600",
|
|
49
|
-
"700": "#672600",
|
|
50
|
-
"800": "#421400",
|
|
51
|
-
"900": "#1d1002",
|
|
52
|
-
},
|
|
53
|
-
},
|
|
54
|
-
};
|
|
55
|
-
var defaultTheme = extendTheme({
|
|
56
|
-
cssVarPrefix: "ceed",
|
|
57
|
-
spacing: 4,
|
|
58
|
-
breakpoints: {
|
|
59
|
-
values: {
|
|
60
|
-
xs: 0,
|
|
61
|
-
sm: 360,
|
|
62
|
-
md: 600,
|
|
63
|
-
lg: 900,
|
|
64
|
-
xl: 1280,
|
|
65
|
-
},
|
|
66
|
-
},
|
|
67
|
-
fontFamily: {
|
|
68
|
-
display: '"Poppins", var(--ceed-fontFamily-fallback, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol")',
|
|
69
|
-
},
|
|
70
|
-
typography: {
|
|
71
|
-
"marketing-lg": {
|
|
72
|
-
color: "var(--ceed-palette-text-primary, var(--ceed-palette-neutral-800, #171A1C))",
|
|
73
|
-
fontFamily: 'var(--ceed-fontFamily-display, "Poppins", var(--ceed-fontFamily-fallback, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"))',
|
|
74
|
-
fontSize: "var(--ceed-fontSize-marketing-lg, 2.625rem)",
|
|
75
|
-
fontWeight: "var(--ceed-fontWeight-lg, 600)",
|
|
76
|
-
letterSpacing: "-0.025em",
|
|
77
|
-
lineHeight: "var(--ceed-lineHeight-xs, 1.33334)",
|
|
78
|
-
},
|
|
79
|
-
},
|
|
80
|
-
colorSchemes: {
|
|
81
|
-
light: colorScheme,
|
|
82
|
-
dark: colorScheme,
|
|
83
|
-
},
|
|
84
|
-
components: {
|
|
85
|
-
JoyTypography: {
|
|
86
|
-
defaultProps: {
|
|
87
|
-
levelMapping: {
|
|
88
|
-
"marketing-lg": "div",
|
|
89
|
-
},
|
|
90
|
-
},
|
|
91
|
-
},
|
|
92
|
-
JoyTable: {
|
|
93
|
-
defaultProps: {
|
|
94
|
-
size: "sm",
|
|
95
|
-
borderAxis: "bothBetween",
|
|
96
|
-
},
|
|
97
|
-
styleOverrides: {
|
|
98
|
-
root: function (_a) {
|
|
99
|
-
var _b;
|
|
100
|
-
var theme = _a.theme;
|
|
101
|
-
return (_b = {
|
|
102
|
-
"--TableRow-stripeBackground": theme.palette.background.level1,
|
|
103
|
-
"--TableCell-selectedBackground": theme.palette.background.level2,
|
|
104
|
-
"--TableRow-hoverBackground": theme.palette.background.level3,
|
|
105
|
-
"& tbody tr[aria-checked=false] th": {
|
|
106
|
-
"--TableCell-headBackground": "transparent",
|
|
107
|
-
},
|
|
108
|
-
"& tbody tr[aria-checked=true]:hover th": {
|
|
109
|
-
"--TableCell-headBackground": "var(--TableRow-hoverBackground)",
|
|
110
|
-
}
|
|
111
|
-
},
|
|
112
|
-
_b["& tbody tr[aria-checked=true]:not(:hover) th"] = {
|
|
113
|
-
"--TableCell-headBackground": "var(--TableCell-selectedBackground)",
|
|
114
|
-
},
|
|
115
|
-
_b["& tbody tr[aria-checked=true]:not(:hover) td"] = {
|
|
116
|
-
"--TableCell-dataBackground": "var(--TableCell-selectedBackground)",
|
|
117
|
-
},
|
|
118
|
-
_b["& .".concat(checkboxClasses.root)] = {
|
|
119
|
-
verticalAlign: "middle",
|
|
120
|
-
},
|
|
121
|
-
_b);
|
|
122
|
-
},
|
|
123
|
-
},
|
|
124
|
-
},
|
|
125
|
-
JoyTooltip: {
|
|
126
|
-
defaultProps: {
|
|
127
|
-
size: "sm",
|
|
128
|
-
placement: "top",
|
|
129
|
-
},
|
|
130
|
-
},
|
|
131
|
-
},
|
|
132
|
-
});
|
|
133
|
-
function ThemeProvider(props) {
|
|
134
|
-
var _a;
|
|
135
|
-
return (React.createElement(React.Fragment, null,
|
|
136
|
-
React.createElement(CssVarsProvider, { theme: defaultTheme },
|
|
137
|
-
React.createElement(CssBaseline, null),
|
|
138
|
-
React.createElement(GlobalStyles, { styles: {
|
|
139
|
-
body: (_a = {
|
|
140
|
-
"--ceed-fontSize-marketing-lg": "2.625rem"
|
|
141
|
-
},
|
|
142
|
-
_a[defaultTheme.breakpoints.down("md")] = {
|
|
143
|
-
"--ceed-fontSize-xs": "calc(".concat(defaultTheme.fontSize.xs, " * 0.875)"),
|
|
144
|
-
"--ceed-fontSize-sm": "calc(".concat(defaultTheme.fontSize.sm, " * 0.875)"),
|
|
145
|
-
"--ceed-fontSize-md": "calc(".concat(defaultTheme.fontSize.md, " * 0.875)"),
|
|
146
|
-
"--ceed-fontSize-lg": "calc(".concat(defaultTheme.fontSize.lg, " * 0.875)"),
|
|
147
|
-
"--ceed-fontSize-xl": "calc(".concat(defaultTheme.fontSize.xl, " * 0.875)"),
|
|
148
|
-
"--ceed-fontSize-xl2": "calc(".concat(defaultTheme.fontSize.xl2, " * 0.875)"),
|
|
149
|
-
"--ceed-fontSize-xl3": "calc(".concat(defaultTheme.fontSize.xl3, " * 0.875)"),
|
|
150
|
-
"--ceed-fontSize-xl4": "calc(".concat(defaultTheme.fontSize.xl4, " * 0.875)"),
|
|
151
|
-
// Only typography fontSize
|
|
152
|
-
"--ceed-fontSize-marketing-lg": "calc(2.625rem * 0.875)",
|
|
153
|
-
},
|
|
154
|
-
_a),
|
|
155
|
-
} }),
|
|
156
|
-
props.children)));
|
|
157
|
-
}
|
|
158
|
-
export { ThemeProvider };
|
|
159
|
-
ThemeProvider.displayName = "ThemeProvider";
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
var __assign = (this && this.__assign) || function () {
|
|
2
|
-
__assign = Object.assign || function(t) {
|
|
3
|
-
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
4
|
-
s = arguments[i];
|
|
5
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
6
|
-
t[p] = s[p];
|
|
7
|
-
}
|
|
8
|
-
return t;
|
|
9
|
-
};
|
|
10
|
-
return __assign.apply(this, arguments);
|
|
11
|
-
};
|
|
12
|
-
import React from "react";
|
|
13
|
-
import { Tooltip as JoyTooltip } from "@mui/joy";
|
|
14
|
-
import { motion } from "framer-motion";
|
|
15
|
-
var MotionTooltip = motion(JoyTooltip);
|
|
16
|
-
var Tooltip = function (props) {
|
|
17
|
-
// prop destruction
|
|
18
|
-
// lib hooks
|
|
19
|
-
// state, ref, querystring hooks
|
|
20
|
-
// form hooks
|
|
21
|
-
// query hooks
|
|
22
|
-
// calculated values
|
|
23
|
-
// effects
|
|
24
|
-
// handlers
|
|
25
|
-
return React.createElement(MotionTooltip, __assign({}, props));
|
|
26
|
-
};
|
|
27
|
-
export { Tooltip };
|
|
28
|
-
Tooltip.displayName = "Tooltip";
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
var __assign = (this && this.__assign) || function () {
|
|
2
|
-
__assign = Object.assign || function(t) {
|
|
3
|
-
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
4
|
-
s = arguments[i];
|
|
5
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
6
|
-
t[p] = s[p];
|
|
7
|
-
}
|
|
8
|
-
return t;
|
|
9
|
-
};
|
|
10
|
-
return __assign.apply(this, arguments);
|
|
11
|
-
};
|
|
12
|
-
import React from "react";
|
|
13
|
-
import { Typography as JoyTypography } from "@mui/joy";
|
|
14
|
-
import { motion } from "framer-motion";
|
|
15
|
-
var MotionTypography = motion(JoyTypography);
|
|
16
|
-
var Typography = function (props) {
|
|
17
|
-
// prop destruction
|
|
18
|
-
// lib hooks
|
|
19
|
-
// state, ref, querystring hooks
|
|
20
|
-
// form hooks
|
|
21
|
-
// query hooks
|
|
22
|
-
// calculated values
|
|
23
|
-
// effects
|
|
24
|
-
// handlers
|
|
25
|
-
return React.createElement(MotionTypography, __assign({}, props));
|
|
26
|
-
};
|
|
27
|
-
export { Typography };
|
|
28
|
-
Typography.displayName = "Typography";
|
|
@@ -1,353 +0,0 @@
|
|
|
1
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
-
});
|
|
9
|
-
};
|
|
10
|
-
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
11
|
-
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
12
|
-
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
13
|
-
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
14
|
-
function step(op) {
|
|
15
|
-
if (f) throw new TypeError("Generator is already executing.");
|
|
16
|
-
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
17
|
-
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
18
|
-
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
19
|
-
switch (op[0]) {
|
|
20
|
-
case 0: case 1: t = op; break;
|
|
21
|
-
case 4: _.label++; return { value: op[1], done: false };
|
|
22
|
-
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
23
|
-
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
24
|
-
default:
|
|
25
|
-
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
26
|
-
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
27
|
-
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
28
|
-
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
29
|
-
if (t[2]) _.ops.pop();
|
|
30
|
-
_.trys.pop(); continue;
|
|
31
|
-
}
|
|
32
|
-
op = body.call(thisArg, _);
|
|
33
|
-
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
34
|
-
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
35
|
-
}
|
|
36
|
-
};
|
|
37
|
-
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
38
|
-
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
39
|
-
if (ar || !(i in from)) {
|
|
40
|
-
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
41
|
-
ar[i] = from[i];
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
return to.concat(ar || Array.prototype.slice.call(from));
|
|
45
|
-
};
|
|
46
|
-
import React, { useCallback, useEffect, useMemo, useRef, useState, } from "react";
|
|
47
|
-
import { styled } from "@mui/joy";
|
|
48
|
-
// @ts-ignore: ESM import 해야만 프레이머에서 정상적으로 동작한다. https://github.com/mui/material-ui/issues/35233
|
|
49
|
-
import MuiFileUploadIcon from "@mui/icons-material/esm/CloudUploadRounded.js";
|
|
50
|
-
// @ts-ignore: ESM import 해야만 프레이머에서 정상적으로 동작한다. https://github.com/mui/material-ui/issues/35233
|
|
51
|
-
import MuiUploadFileIcon from "@mui/icons-material/esm/UploadFileRounded.js";
|
|
52
|
-
// @ts-ignore: ESM import 해야만 프레이머에서 정상적으로 동작한다. https://github.com/mui/material-ui/issues/35233
|
|
53
|
-
import MuiClearIcon from "@mui/icons-material/esm/ClearRounded.js";
|
|
54
|
-
// @ts-ignore: build된 pragmatic-drag-and-drop의 esm file에 extension이 없어서 에러가 발생함. 따라서 빌드된 js파일을 direct로 import한다.
|
|
55
|
-
import { combine } from "@atlaskit/pragmatic-drag-and-drop/dist/esm/entry-point/combine.js";
|
|
56
|
-
import { dropTargetForExternal, monitorForExternal,
|
|
57
|
-
// @ts-ignore: build된 pragmatic-drag-and-drop의 esm file에 extension이 없어서 에러가 발생함. 따라서 빌드된 js파일을 direct로 import한다.
|
|
58
|
-
} from "@atlaskit/pragmatic-drag-and-drop/dist/esm/entry-point/external/adapter.js";
|
|
59
|
-
import { containsFiles, getFiles,
|
|
60
|
-
// @ts-ignore: build된 pragmatic-drag-and-drop의 esm file에 extension이 없어서 에러가 발생함. 따라서 빌드된 js파일을 direct로 import한다.
|
|
61
|
-
} from "@atlaskit/pragmatic-drag-and-drop/dist/esm/entry-point/external/file.js";
|
|
62
|
-
// @ts-ignore: build된 pragmatic-drag-and-drop의 esm file에 extension이 없어서 에러가 발생함. 따라서 빌드된 js파일을 direct로 import한다.
|
|
63
|
-
import { preventUnhandled } from "@atlaskit/pragmatic-drag-and-drop/dist/esm/entry-point/prevent-unhandled.js";
|
|
64
|
-
import Typography from "../Typography";
|
|
65
|
-
import { Card } from "../Card";
|
|
66
|
-
import Stack from "../Stack";
|
|
67
|
-
import IconButton from "../IconButton";
|
|
68
|
-
import FormControl from "../FormControl";
|
|
69
|
-
import FormHelperText from "../FormHelperText";
|
|
70
|
-
import Sheet from "../Sheet";
|
|
71
|
-
import FormLabel from "../FormLabel";
|
|
72
|
-
var VisuallyHiddenInput = styled("input")({
|
|
73
|
-
width: "1px",
|
|
74
|
-
height: "1px",
|
|
75
|
-
overflow: "hidden",
|
|
76
|
-
whiteSpace: "nowrap",
|
|
77
|
-
clip: "rect(0 0 0 0)",
|
|
78
|
-
clipPath: "inset(50%)",
|
|
79
|
-
position: "absolute",
|
|
80
|
-
});
|
|
81
|
-
var PreviewRoot = styled(Stack, {
|
|
82
|
-
name: "Uploader",
|
|
83
|
-
slot: "PreviewRoot",
|
|
84
|
-
})({});
|
|
85
|
-
var UploadCard = styled(Card, {
|
|
86
|
-
name: "Uploader",
|
|
87
|
-
slot: "UploadCard",
|
|
88
|
-
})(function (_a) {
|
|
89
|
-
var theme = _a.theme;
|
|
90
|
-
return ({
|
|
91
|
-
padding: theme.spacing(2.5),
|
|
92
|
-
border: "1px solid ".concat(theme.palette.neutral.outlinedBorder),
|
|
93
|
-
});
|
|
94
|
-
});
|
|
95
|
-
var UploadFileIcon = styled(MuiUploadFileIcon, {
|
|
96
|
-
name: "Uploader",
|
|
97
|
-
slot: "UploadFileIcon",
|
|
98
|
-
})(function (_a) {
|
|
99
|
-
var theme = _a.theme;
|
|
100
|
-
return ({
|
|
101
|
-
color: theme.palette.neutral["400"],
|
|
102
|
-
width: "32px",
|
|
103
|
-
height: "32px",
|
|
104
|
-
});
|
|
105
|
-
});
|
|
106
|
-
var ClearIcon = styled(MuiClearIcon, {
|
|
107
|
-
name: "Uploader",
|
|
108
|
-
slot: "ClearIcon",
|
|
109
|
-
})(function (_a) {
|
|
110
|
-
var theme = _a.theme;
|
|
111
|
-
return ({
|
|
112
|
-
color: theme.palette.neutral.plainColor,
|
|
113
|
-
width: "18px",
|
|
114
|
-
height: "18px",
|
|
115
|
-
});
|
|
116
|
-
});
|
|
117
|
-
var UNITS = [
|
|
118
|
-
"byte",
|
|
119
|
-
"kilobyte",
|
|
120
|
-
"megabyte",
|
|
121
|
-
"gigabyte",
|
|
122
|
-
"terabyte",
|
|
123
|
-
"petabyte",
|
|
124
|
-
];
|
|
125
|
-
var getFileSize = function (n) {
|
|
126
|
-
var i = n == 0 ? 0 : Math.floor(Math.log(n) / Math.log(1024));
|
|
127
|
-
var value = n / Math.pow(1024, i);
|
|
128
|
-
var unit = UNITS[i];
|
|
129
|
-
return Intl.NumberFormat("en-us", {
|
|
130
|
-
style: "unit",
|
|
131
|
-
unit: unit,
|
|
132
|
-
unitDisplay: "narrow",
|
|
133
|
-
}).format(value);
|
|
134
|
-
};
|
|
135
|
-
var Preview = function (props) {
|
|
136
|
-
// prop destruction
|
|
137
|
-
var files = props.files, uploaded = props.uploaded, onDelete = props.onDelete;
|
|
138
|
-
// lib hooks
|
|
139
|
-
// state, ref, querystring hooks
|
|
140
|
-
// form hooks
|
|
141
|
-
// query hooks
|
|
142
|
-
// calculated values
|
|
143
|
-
// effects
|
|
144
|
-
// handlers
|
|
145
|
-
return (React.createElement(PreviewRoot, { gap: 1 }, __spreadArray(__spreadArray([], uploaded, true), files, true).map(function (file) { return (React.createElement(UploadCard, { key: file.name, size: "sm", color: "neutral" },
|
|
146
|
-
React.createElement(Stack, { direction: "row", alignItems: "center", gap: 2 },
|
|
147
|
-
React.createElement(UploadFileIcon, null),
|
|
148
|
-
React.createElement(Stack, { flex: "1" },
|
|
149
|
-
React.createElement(Typography, { level: "body-sm", textColor: "common.black" }, file.name),
|
|
150
|
-
!!file.size && (React.createElement(Typography, { level: "body-xs", fontWeight: "300", lineHeight: "1.33", textColor: "text.tertiary" }, getFileSize(file.size)))),
|
|
151
|
-
React.createElement(IconButton, { onClick: function () { return onDelete === null || onDelete === void 0 ? void 0 : onDelete(file); } },
|
|
152
|
-
React.createElement(ClearIcon, null))))); })));
|
|
153
|
-
};
|
|
154
|
-
var UploaderRoot = styled(Stack, {
|
|
155
|
-
name: "Uploader",
|
|
156
|
-
slot: "root",
|
|
157
|
-
})(function (_a) {
|
|
158
|
-
var theme = _a.theme;
|
|
159
|
-
return ({
|
|
160
|
-
gap: theme.spacing(2),
|
|
161
|
-
});
|
|
162
|
-
});
|
|
163
|
-
var FileDropZone = styled(Sheet, {
|
|
164
|
-
name: "Uploader",
|
|
165
|
-
slot: "dropZone",
|
|
166
|
-
shouldForwardProp: function (prop) { return prop !== "error"; },
|
|
167
|
-
})(function (_a) {
|
|
168
|
-
var theme = _a.theme, state = _a.state, error = _a.error;
|
|
169
|
-
return ({
|
|
170
|
-
width: "100%",
|
|
171
|
-
display: "flex",
|
|
172
|
-
flexDirection: "column",
|
|
173
|
-
justifyContent: "center",
|
|
174
|
-
alignItems: "center",
|
|
175
|
-
padding: theme.spacing(5),
|
|
176
|
-
gap: theme.spacing(4),
|
|
177
|
-
cursor: "pointer",
|
|
178
|
-
backgroundColor: theme.palette.background.surface,
|
|
179
|
-
border: error
|
|
180
|
-
? "1px solid ".concat(theme.palette.danger.outlinedBorder)
|
|
181
|
-
: state === "idle"
|
|
182
|
-
? "1px solid ".concat(theme.palette.neutral.outlinedBorder)
|
|
183
|
-
: "1px solid ".concat(theme.palette.primary.outlinedBorder),
|
|
184
|
-
});
|
|
185
|
-
});
|
|
186
|
-
var UploaderIcon = styled(MuiFileUploadIcon, {
|
|
187
|
-
name: "Uploader",
|
|
188
|
-
slot: "iconContainer",
|
|
189
|
-
shouldForwardProp: function (prop) { return prop !== "error"; },
|
|
190
|
-
})(function (_a) {
|
|
191
|
-
var theme = _a.theme, state = _a.state, error = _a.error;
|
|
192
|
-
return ({
|
|
193
|
-
color: error
|
|
194
|
-
? "rgba(".concat(theme.vars.palette.danger.mainChannel, " / 0.6)")
|
|
195
|
-
: state === "over"
|
|
196
|
-
? "rgba(".concat(theme.palette.primary.mainChannel, " / 0.6)")
|
|
197
|
-
: theme.palette.neutral.softActiveBg,
|
|
198
|
-
width: "32px",
|
|
199
|
-
height: "32px",
|
|
200
|
-
});
|
|
201
|
-
});
|
|
202
|
-
var Uploader = React.memo(function (props) {
|
|
203
|
-
// prop destruction
|
|
204
|
-
var accept = props.accept, minCount = props.minCount, maxCount = props.maxCount, name = props.name, size = props.size, maxFileSize = props.maxFileSize, maxFileTotalSize = props.maxFileTotalSize, onChange = props.onChange, label = props.label, helperText = props.helperText, disabled = props.disabled, onDelete = props.onDelete;
|
|
205
|
-
// lib hooks
|
|
206
|
-
// state, ref, querystring hooks
|
|
207
|
-
var dropZoneRef = useRef(null);
|
|
208
|
-
var inputRef = useRef(null);
|
|
209
|
-
var _a = useState(), errorText = _a[0], setErrorText = _a[1];
|
|
210
|
-
var _b = useState([]), files = _b[0], setFiles = _b[1];
|
|
211
|
-
var _c = useState(props.uploaded || []), uploaded = _c[0], setUploaded = _c[1];
|
|
212
|
-
var _d = useState("idle"), previewState = _d[0], setPreviewState = _d[1];
|
|
213
|
-
// form hooks
|
|
214
|
-
// query hooks
|
|
215
|
-
// calculated values
|
|
216
|
-
var error = useMemo(function () { return !!errorText || props.error; }, [props.error, errorText]);
|
|
217
|
-
var showDropZone = useMemo(function () {
|
|
218
|
-
return !maxCount || (maxCount && __spreadArray(__spreadArray([], uploaded, true), files, true).length !== maxCount);
|
|
219
|
-
}, [files, maxCount, uploaded]);
|
|
220
|
-
var addFiles = useCallback(function (uploads) {
|
|
221
|
-
try {
|
|
222
|
-
var types = (accept === null || accept === void 0 ? void 0 : accept.split(",").map(function (type) { return type.trim().replace(".", "").replace("*", ".*"); })) ||
|
|
223
|
-
[];
|
|
224
|
-
var fileExtension_1 = new RegExp("\\b(".concat(types.join("|"), ")\\b"));
|
|
225
|
-
// NOTE: for error text(ref. figma uploader guide)
|
|
226
|
-
var lastAccept = types.pop();
|
|
227
|
-
var acceptError_1 = "Please upload following file types: ".concat(types.join(", "), " and ").concat(lastAccept, ".");
|
|
228
|
-
uploads.forEach(function (file) {
|
|
229
|
-
var _a = file.name.split('.'), _ = _a[0], ext = _a[1];
|
|
230
|
-
if (!fileExtension_1.test(file.type) && !fileExtension_1.test(ext)) {
|
|
231
|
-
throw new Error(acceptError_1);
|
|
232
|
-
}
|
|
233
|
-
});
|
|
234
|
-
if (maxFileSize) {
|
|
235
|
-
uploads.forEach(function (file) {
|
|
236
|
-
if (file.size > maxFileSize) {
|
|
237
|
-
throw new Error("One or more files exceed the individual file size limit. File must be less than ".concat(getFileSize(maxFileSize), "."));
|
|
238
|
-
}
|
|
239
|
-
});
|
|
240
|
-
}
|
|
241
|
-
if (maxFileTotalSize) {
|
|
242
|
-
var totalFileSize = __spreadArray(__spreadArray([], files, true), uploads, true).reduce(function (acc, file) { return acc + file.size; }, 0);
|
|
243
|
-
if (totalFileSize > maxFileTotalSize) {
|
|
244
|
-
throw new Error("Total file size has exceeded the maximum limit. File must be less than ".concat(getFileSize(maxFileTotalSize), "."));
|
|
245
|
-
}
|
|
246
|
-
}
|
|
247
|
-
var newFiles = __spreadArray(__spreadArray([], files, true), uploads, true);
|
|
248
|
-
if (maxCount && __spreadArray(__spreadArray([], uploaded, true), newFiles, true).length > maxCount) {
|
|
249
|
-
throw new Error("File count exceeds the limit: ".concat(maxCount));
|
|
250
|
-
}
|
|
251
|
-
onChange === null || onChange === void 0 ? void 0 : onChange({
|
|
252
|
-
target: {
|
|
253
|
-
name: name,
|
|
254
|
-
value: newFiles,
|
|
255
|
-
},
|
|
256
|
-
});
|
|
257
|
-
setFiles(newFiles);
|
|
258
|
-
setErrorText(undefined);
|
|
259
|
-
}
|
|
260
|
-
catch (error) {
|
|
261
|
-
// TODO: localization, internationalization해야하는 reserved 에러 메세지, 필요한가?
|
|
262
|
-
var err = error;
|
|
263
|
-
setErrorText(err.message);
|
|
264
|
-
}
|
|
265
|
-
}, [files, uploaded, maxCount, accept, maxFileSize, maxFileTotalSize, name, onChange]);
|
|
266
|
-
// effects
|
|
267
|
-
useEffect(function () {
|
|
268
|
-
var el = dropZoneRef.current;
|
|
269
|
-
if (!el) {
|
|
270
|
-
return;
|
|
271
|
-
}
|
|
272
|
-
return combine(dropTargetForExternal({
|
|
273
|
-
element: el,
|
|
274
|
-
canDrop: containsFiles,
|
|
275
|
-
onDragEnter: function () { return setPreviewState("over"); },
|
|
276
|
-
onDragLeave: function () { return setPreviewState("potential"); },
|
|
277
|
-
onDrop: function (_a) { return __awaiter(void 0, [_a], void 0, function (_b) {
|
|
278
|
-
var files;
|
|
279
|
-
var source = _b.source;
|
|
280
|
-
return __generator(this, function (_c) {
|
|
281
|
-
switch (_c.label) {
|
|
282
|
-
case 0: return [4 /*yield*/, getFiles({ source: source })];
|
|
283
|
-
case 1:
|
|
284
|
-
files = _c.sent();
|
|
285
|
-
addFiles(files);
|
|
286
|
-
return [2 /*return*/];
|
|
287
|
-
}
|
|
288
|
-
});
|
|
289
|
-
}); },
|
|
290
|
-
}), monitorForExternal({
|
|
291
|
-
canMonitor: containsFiles,
|
|
292
|
-
onDragStart: function () {
|
|
293
|
-
setPreviewState("potential");
|
|
294
|
-
preventUnhandled.start();
|
|
295
|
-
},
|
|
296
|
-
onDrop: function () {
|
|
297
|
-
setPreviewState("idle");
|
|
298
|
-
preventUnhandled.stop();
|
|
299
|
-
},
|
|
300
|
-
}));
|
|
301
|
-
});
|
|
302
|
-
useEffect(function () {
|
|
303
|
-
if (inputRef.current && minCount) {
|
|
304
|
-
if (files.length < minCount) {
|
|
305
|
-
inputRef.current.setCustomValidity("At least ".concat(minCount, " files are required."));
|
|
306
|
-
}
|
|
307
|
-
else {
|
|
308
|
-
inputRef.current.setCustomValidity("");
|
|
309
|
-
}
|
|
310
|
-
}
|
|
311
|
-
}, [inputRef, files, minCount]);
|
|
312
|
-
// handlers
|
|
313
|
-
var handleFileChanged = useCallback(function (event) {
|
|
314
|
-
var files = Array.from(event.target.files || []);
|
|
315
|
-
addFiles(files);
|
|
316
|
-
}, [addFiles]);
|
|
317
|
-
var handleDeleteFile = useCallback(function (deletedFile) {
|
|
318
|
-
if (deletedFile instanceof File) {
|
|
319
|
-
setFiles(function (current) {
|
|
320
|
-
onChange === null || onChange === void 0 ? void 0 : onChange({
|
|
321
|
-
target: {
|
|
322
|
-
name: name,
|
|
323
|
-
value: current.filter(function (file) { return file !== deletedFile; }),
|
|
324
|
-
},
|
|
325
|
-
});
|
|
326
|
-
return current.filter(function (file) { return file !== deletedFile; });
|
|
327
|
-
});
|
|
328
|
-
}
|
|
329
|
-
else {
|
|
330
|
-
setUploaded(function (uploaded) {
|
|
331
|
-
return uploaded.filter(function (file) { return file.id !== deletedFile.id; });
|
|
332
|
-
});
|
|
333
|
-
// NOTE: 이미 업로드된 파일에 대해서만 onDeleted를 호출한다.
|
|
334
|
-
onDelete === null || onDelete === void 0 ? void 0 : onDelete(deletedFile);
|
|
335
|
-
}
|
|
336
|
-
setErrorText(undefined);
|
|
337
|
-
}, [name, onChange, onDelete]);
|
|
338
|
-
var handleUploaderButtonClick = useCallback(function () {
|
|
339
|
-
var _a;
|
|
340
|
-
(_a = inputRef.current) === null || _a === void 0 ? void 0 : _a.click();
|
|
341
|
-
}, []);
|
|
342
|
-
var uploader = (React.createElement(FileDropZone, { state: previewState, error: !!(error || errorText), ref: dropZoneRef, onClick: handleUploaderButtonClick },
|
|
343
|
-
React.createElement(Stack, { alignItems: "center", gap: 1 },
|
|
344
|
-
React.createElement(UploaderIcon, { state: previewState, error: !!(error || errorText) })),
|
|
345
|
-
React.createElement(VisuallyHiddenInput, { type: "file", onChange: handleFileChanged, multiple: true, accept: accept, disabled: disabled, required: !!minCount, ref: inputRef })));
|
|
346
|
-
return (React.createElement(UploaderRoot, null,
|
|
347
|
-
showDropZone && (React.createElement(FormControl, { size: size, error: !!(error || errorText), disabled: disabled, required: !!minCount },
|
|
348
|
-
label && React.createElement(FormLabel, null, label),
|
|
349
|
-
uploader,
|
|
350
|
-
errorText ? (React.createElement(FormHelperText, null, errorText)) : (helperText && React.createElement(FormHelperText, null, helperText)))),
|
|
351
|
-
__spreadArray(__spreadArray([], uploaded, true), files, true).length > 0 && (React.createElement(Preview, { files: files, uploaded: uploaded, onDelete: handleDeleteFile }))));
|
|
352
|
-
});
|
|
353
|
-
export { Uploader };
|
package/dist/components/index.js
DELETED
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
export { Accordion, AccordionDetails, Accordions, AccordionSummary, } from "./Accordions";
|
|
2
|
-
export { Autocomplete } from "./Autocomplete";
|
|
3
|
-
export { Box } from "./Box";
|
|
4
|
-
export { Breadcrumbs } from "./Breadcrumbs";
|
|
5
|
-
export { Button } from "./Button";
|
|
6
|
-
export { Calendar } from "./Calendar";
|
|
7
|
-
export { Card } from "./Card";
|
|
8
|
-
export { Checkbox } from "./Checkbox";
|
|
9
|
-
export { Container } from "./Container";
|
|
10
|
-
export { CurrencyInput } from "./CurrencyInput";
|
|
11
|
-
export { DataTable } from "./DataTable";
|
|
12
|
-
export { DatePicker } from "./DatePicker";
|
|
13
|
-
export { DateRangePicker } from "./DateRangePicker";
|
|
14
|
-
export { DialogActions } from "./DialogActions";
|
|
15
|
-
export { DialogContent } from "./DialogContent";
|
|
16
|
-
export { DialogTitle } from "./DialogTitle";
|
|
17
|
-
export { DialogFrame } from "./DialogFrame";
|
|
18
|
-
export { Divider } from "./Divider";
|
|
19
|
-
export { InsetDrawer } from "./InsetDrawer";
|
|
20
|
-
export { Dropdown } from "./Dropdown";
|
|
21
|
-
export { FormControl } from "./FormControl";
|
|
22
|
-
export { FormHelperText } from "./FormHelperText";
|
|
23
|
-
export { FormLabel } from "./FormLabel";
|
|
24
|
-
export { Grid } from "./Grid";
|
|
25
|
-
export { IconButton } from "./IconButton";
|
|
26
|
-
export { Input } from "./Input";
|
|
27
|
-
export { Markdown } from './Markdown';
|
|
28
|
-
export { Menu, MenuButton, MenuItem } from "./Menu";
|
|
29
|
-
export { Modal, ModalClose, ModalDialog, ModalOverflow, ModalFrame, } from "./Modal";
|
|
30
|
-
export { MonthPicker } from "./MonthPicker";
|
|
31
|
-
export { MonthRangePicker } from "./MonthRangePicker";
|
|
32
|
-
export { Radio, RadioGroup } from "./Radio";
|
|
33
|
-
export { RadioList } from "./RadioList";
|
|
34
|
-
export { Select, Option } from "./Select";
|
|
35
|
-
export { Sheet } from "./Sheet";
|
|
36
|
-
export { Stack } from "./Stack";
|
|
37
|
-
export { Switch } from "./Switch";
|
|
38
|
-
export { Table, TableHead, TableBody } from "./Table";
|
|
39
|
-
export { Tabs, Tab, TabList, TabPanel } from "./Tabs";
|
|
40
|
-
export { Textarea } from "./Textarea";
|
|
41
|
-
export { ThemeProvider } from "./ThemeProvider";
|
|
42
|
-
export { Tooltip } from "./Tooltip";
|
|
43
|
-
export { Typography } from "./Typography";
|
|
44
|
-
export { Uploader } from './Uploader';
|