hia-frontend-components 0.0.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/dist/index.css +60 -0
- package/dist/index.css.map +1 -0
- package/dist/index.d.mts +14 -0
- package/dist/index.d.ts +14 -0
- package/dist/index.js +57 -0
- package/dist/index.js.map +1 -0
- package/dist/index.mjs +30 -0
- package/dist/index.mjs.map +1 -0
- package/package.json +43 -0
package/dist/index.css
ADDED
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
/* src/components/button/button.module.scss */
|
|
2
|
+
.button_module_button {
|
|
3
|
+
display: inline-flex;
|
|
4
|
+
align-items: center;
|
|
5
|
+
justify-content: center;
|
|
6
|
+
font-weight: 500;
|
|
7
|
+
white-space: nowrap;
|
|
8
|
+
cursor: pointer;
|
|
9
|
+
border: none;
|
|
10
|
+
border-radius: 6px;
|
|
11
|
+
transition: opacity 0.15s, background-color 0.15s;
|
|
12
|
+
}
|
|
13
|
+
.button_module_button:disabled {
|
|
14
|
+
cursor: not-allowed;
|
|
15
|
+
opacity: 0.6;
|
|
16
|
+
}
|
|
17
|
+
.button_module_primary {
|
|
18
|
+
color: #fff;
|
|
19
|
+
background-color: #2563eb;
|
|
20
|
+
}
|
|
21
|
+
.button_module_primary:hover:not(:disabled) {
|
|
22
|
+
background-color: #1d4ed8;
|
|
23
|
+
}
|
|
24
|
+
.button_module_secondary {
|
|
25
|
+
color: #111827;
|
|
26
|
+
background-color: #e5e7eb;
|
|
27
|
+
}
|
|
28
|
+
.button_module_secondary:hover:not(:disabled) {
|
|
29
|
+
background-color: #d1d5db;
|
|
30
|
+
}
|
|
31
|
+
.button_module_ghost {
|
|
32
|
+
color: #2563eb;
|
|
33
|
+
background-color: transparent;
|
|
34
|
+
}
|
|
35
|
+
.button_module_ghost:hover:not(:disabled) {
|
|
36
|
+
background-color: #eff6ff;
|
|
37
|
+
}
|
|
38
|
+
.button_module_danger {
|
|
39
|
+
color: #fff;
|
|
40
|
+
background-color: #dc2626;
|
|
41
|
+
}
|
|
42
|
+
.button_module_danger:hover:not(:disabled) {
|
|
43
|
+
background-color: #b91c1c;
|
|
44
|
+
}
|
|
45
|
+
.button_module_sm {
|
|
46
|
+
padding: 4px 10px;
|
|
47
|
+
font-size: 12px;
|
|
48
|
+
line-height: 1.5;
|
|
49
|
+
}
|
|
50
|
+
.button_module_md {
|
|
51
|
+
padding: 8px 16px;
|
|
52
|
+
font-size: 14px;
|
|
53
|
+
line-height: 1.5;
|
|
54
|
+
}
|
|
55
|
+
.button_module_lg {
|
|
56
|
+
padding: 12px 24px;
|
|
57
|
+
font-size: 16px;
|
|
58
|
+
line-height: 1.5;
|
|
59
|
+
}
|
|
60
|
+
/*# sourceMappingURL=index.css.map */
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/button/button.module.scss"],"sourcesContent":[".button {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n font-weight: 500;\n white-space: nowrap;\n cursor: pointer;\n border: none;\n border-radius: 6px;\n transition:\n opacity 0.15s,\n background-color 0.15s;\n\n &:disabled {\n cursor: not-allowed;\n opacity: 0.6;\n }\n}\n\n// Variants\n.primary {\n color: #fff;\n background-color: #2563eb;\n\n &:hover:not(:disabled) {\n background-color: #1d4ed8;\n }\n}\n\n.secondary {\n color: #111827;\n background-color: #e5e7eb;\n\n &:hover:not(:disabled) {\n background-color: #d1d5db;\n }\n}\n\n.ghost {\n color: #2563eb;\n background-color: transparent;\n\n &:hover:not(:disabled) {\n background-color: #eff6ff;\n }\n}\n\n.danger {\n color: #fff;\n background-color: #dc2626;\n\n &:hover:not(:disabled) {\n background-color: #b91c1c;\n }\n}\n\n// Sizes\n.sm {\n padding: 4px 10px;\n font-size: 12px;\n line-height: 1.5;\n}\n\n.md {\n padding: 8px 16px;\n font-size: 14px;\n line-height: 1.5;\n}\n\n.lg {\n padding: 12px 24px;\n font-size: 16px;\n line-height: 1.5;\n}\n"],"mappings":";AAAA,CAAAA;AACE,WAAA;AACA,eAAA;AACA,mBAAA;AACA,eAAA;AACA,eAAA;AACA,UAAA;AACA,UAAA;AACA,iBAAA;AACA,cACE,QAAA,KAAA,EAAA,iBAAA;;AAGF,CAbFA,oBAaE;AACE,UAAA;AACA,WAAA;;AAKJ,CAAAC;AACE,SAAA;AACA,oBAAA;;AAEA,CAJFA,qBAIE,MAAA,KAAA;AACE,oBAAA;;AAIJ,CAAAC;AACE,SAAA;AACA,oBAAA;;AAEA,CAJFA,uBAIE,MAAA,KAAA;AACE,oBAAA;;AAIJ,CAAAC;AACE,SAAA;AACA,oBAAA;;AAEA,CAJFA,mBAIE,MAAA,KAAA;AACE,oBAAA;;AAIJ,CAAAC;AACE,SAAA;AACA,oBAAA;;AAEA,CAJFA,oBAIE,MAAA,KAAA;AACE,oBAAA;;AAKJ,CAAAC;AACE,WAAA,IAAA;AACA,aAAA;AACA,eAAA;;AAGF,CAAAC;AACE,WAAA,IAAA;AACA,aAAA;AACA,eAAA;;AAGF,CAAAC;AACE,WAAA,KAAA;AACA,aAAA;AACA,eAAA;;","names":["button","primary","secondary","ghost","danger","sm","md","lg"]}
|
package/dist/index.d.mts
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
|
+
import React from 'react';
|
|
3
|
+
|
|
4
|
+
type ButtonVariant = 'primary' | 'secondary' | 'ghost' | 'danger';
|
|
5
|
+
type ButtonSize = 'sm' | 'md' | 'lg';
|
|
6
|
+
interface ButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {
|
|
7
|
+
variant?: ButtonVariant;
|
|
8
|
+
size?: ButtonSize;
|
|
9
|
+
loading?: boolean;
|
|
10
|
+
children: React.ReactNode;
|
|
11
|
+
}
|
|
12
|
+
declare const Button: ({ variant, size, loading, disabled, className, children, ...rest }: ButtonProps) => react_jsx_runtime.JSX.Element;
|
|
13
|
+
|
|
14
|
+
export { Button, type ButtonProps, type ButtonSize, type ButtonVariant };
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
|
+
import React from 'react';
|
|
3
|
+
|
|
4
|
+
type ButtonVariant = 'primary' | 'secondary' | 'ghost' | 'danger';
|
|
5
|
+
type ButtonSize = 'sm' | 'md' | 'lg';
|
|
6
|
+
interface ButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {
|
|
7
|
+
variant?: ButtonVariant;
|
|
8
|
+
size?: ButtonSize;
|
|
9
|
+
loading?: boolean;
|
|
10
|
+
children: React.ReactNode;
|
|
11
|
+
}
|
|
12
|
+
declare const Button: ({ variant, size, loading, disabled, className, children, ...rest }: ButtonProps) => react_jsx_runtime.JSX.Element;
|
|
13
|
+
|
|
14
|
+
export { Button, type ButtonProps, type ButtonSize, type ButtonVariant };
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
|
|
20
|
+
// src/index.ts
|
|
21
|
+
var index_exports = {};
|
|
22
|
+
__export(index_exports, {
|
|
23
|
+
Button: () => Button
|
|
24
|
+
});
|
|
25
|
+
module.exports = __toCommonJS(index_exports);
|
|
26
|
+
|
|
27
|
+
// src/components/button/button.module.scss
|
|
28
|
+
var button_module_default = {
|
|
29
|
+
button: "button_module_button",
|
|
30
|
+
primary: "button_module_primary",
|
|
31
|
+
secondary: "button_module_secondary",
|
|
32
|
+
ghost: "button_module_ghost",
|
|
33
|
+
danger: "button_module_danger",
|
|
34
|
+
sm: "button_module_sm",
|
|
35
|
+
md: "button_module_md",
|
|
36
|
+
lg: "button_module_lg"
|
|
37
|
+
};
|
|
38
|
+
|
|
39
|
+
// src/components/button/button.tsx
|
|
40
|
+
var import_jsx_runtime = require("react/jsx-runtime");
|
|
41
|
+
var Button = ({
|
|
42
|
+
variant = "primary",
|
|
43
|
+
size = "md",
|
|
44
|
+
loading = false,
|
|
45
|
+
disabled,
|
|
46
|
+
className,
|
|
47
|
+
children,
|
|
48
|
+
...rest
|
|
49
|
+
}) => {
|
|
50
|
+
const classNames = [button_module_default.button, button_module_default[variant], button_module_default[size], className].filter(Boolean).join(" ");
|
|
51
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)("button", { className: classNames, disabled: disabled || loading, ...rest, children: loading ? "\uB85C\uB529 \uC911..." : children });
|
|
52
|
+
};
|
|
53
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
54
|
+
0 && (module.exports = {
|
|
55
|
+
Button
|
|
56
|
+
});
|
|
57
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/index.ts","../src/components/button/button.module.scss","../src/components/button/button.tsx"],"sourcesContent":["export * from './components';\n",".button {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n font-weight: 500;\n white-space: nowrap;\n cursor: pointer;\n border: none;\n border-radius: 6px;\n transition: opacity 0.15s, background-color 0.15s;\n}\n.button:disabled {\n cursor: not-allowed;\n opacity: 0.6;\n}\n\n.primary {\n color: #fff;\n background-color: #2563eb;\n}\n.primary:hover:not(:disabled) {\n background-color: #1d4ed8;\n}\n\n.secondary {\n color: #111827;\n background-color: #e5e7eb;\n}\n.secondary:hover:not(:disabled) {\n background-color: #d1d5db;\n}\n\n.ghost {\n color: #2563eb;\n background-color: transparent;\n}\n.ghost:hover:not(:disabled) {\n background-color: #eff6ff;\n}\n\n.danger {\n color: #fff;\n background-color: #dc2626;\n}\n.danger:hover:not(:disabled) {\n background-color: #b91c1c;\n}\n\n.sm {\n padding: 4px 10px;\n font-size: 12px;\n line-height: 1.5;\n}\n\n.md {\n padding: 8px 16px;\n font-size: 14px;\n line-height: 1.5;\n}\n\n.lg {\n padding: 12px 24px;\n font-size: 16px;\n line-height: 1.5;\n}\n/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImJ1dHRvbi5tb2R1bGUuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQSxZQUNFOztBQUdGO0VBQ0U7RUFDQTs7O0FBS0o7RUFDRTtFQUNBOztBQUVBO0VBQ0U7OztBQUlKO0VBQ0U7RUFDQTs7QUFFQTtFQUNFOzs7QUFJSjtFQUNFO0VBQ0E7O0FBRUE7RUFDRTs7O0FBSUo7RUFDRTtFQUNBOztBQUVBO0VBQ0U7OztBQUtKO0VBQ0U7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0EiLCJzb3VyY2VzQ29udGVudCI6WyIuYnV0dG9uIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBmb250LXdlaWdodDogNTAwO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGJvcmRlcjogbm9uZTtcbiAgYm9yZGVyLXJhZGl1czogNnB4O1xuICB0cmFuc2l0aW9uOlxuICAgIG9wYWNpdHkgMC4xNXMsXG4gICAgYmFja2dyb3VuZC1jb2xvciAwLjE1cztcblxuICAmOmRpc2FibGVkIHtcbiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgIG9wYWNpdHk6IDAuNjtcbiAgfVxufVxuXG4vLyBWYXJpYW50c1xuLnByaW1hcnkge1xuICBjb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzI1NjNlYjtcblxuICAmOmhvdmVyOm5vdCg6ZGlzYWJsZWQpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMWQ0ZWQ4O1xuICB9XG59XG5cbi5zZWNvbmRhcnkge1xuICBjb2xvcjogIzExMTgyNztcbiAgYmFja2dyb3VuZC1jb2xvcjogI2U1ZTdlYjtcblxuICAmOmhvdmVyOm5vdCg6ZGlzYWJsZWQpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZDFkNWRiO1xuICB9XG59XG5cbi5naG9zdCB7XG4gIGNvbG9yOiAjMjU2M2ViO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcblxuICAmOmhvdmVyOm5vdCg6ZGlzYWJsZWQpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWZmNmZmO1xuICB9XG59XG5cbi5kYW5nZXIge1xuICBjb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2RjMjYyNjtcblxuICAmOmhvdmVyOm5vdCg6ZGlzYWJsZWQpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjYjkxYzFjO1xuICB9XG59XG5cbi8vIFNpemVzXG4uc20ge1xuICBwYWRkaW5nOiA0cHggMTBweDtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBsaW5lLWhlaWdodDogMS41O1xufVxuXG4ubWQge1xuICBwYWRkaW5nOiA4cHggMTZweDtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBsaW5lLWhlaWdodDogMS41O1xufVxuXG4ubGcge1xuICBwYWRkaW5nOiAxMnB4IDI0cHg7XG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgbGluZS1oZWlnaHQ6IDEuNTtcbn1cbiJdfQ== */","import React from 'react';\n\nimport styles from './button.module.scss';\n\nexport type ButtonVariant = 'primary' | 'secondary' | 'ghost' | 'danger';\nexport type ButtonSize = 'sm' | 'md' | 'lg';\n\nexport interface ButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n variant?: ButtonVariant;\n size?: ButtonSize;\n loading?: boolean;\n children: React.ReactNode;\n}\n\nexport const Button = ({\n variant = 'primary',\n size = 'md',\n loading = false,\n disabled,\n className,\n children,\n ...rest\n}: ButtonProps) => {\n const classNames = [styles.button, styles[variant], styles[size], className].filter(Boolean).join(' ');\n\n return (\n <button className={classNames} disabled={disabled || loading} {...rest}>\n {loading ? '로딩 중...' : children}\n </button>\n );\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAA;AAAA,EAAC,QAAAA;AAAA,EAgBA,SAAAC;AAAA,EAQA,WAAAC;AAAA,EAQA,OAAAC;AAAA,EAQA,QAAAC;AAAA,EAQA,IAAAC;AAAA,EAMA,IAAAC;AAAA,EAMA,IAAAC;AAAA;;;AClCG;AAZG,IAAM,SAAS,CAAC;AAAA,EACrB,UAAU;AAAA,EACV,OAAO;AAAA,EACP,UAAU;AAAA,EACV;AAAA,EACA;AAAA,EACA;AAAA,EACA,GAAG;AACL,MAAmB;AACjB,QAAM,aAAa,CAAC,sBAAO,QAAQ,sBAAO,OAAO,GAAG,sBAAO,IAAI,GAAG,SAAS,EAAE,OAAO,OAAO,EAAE,KAAK,GAAG;AAErG,SACE,4CAAC,YAAO,WAAW,YAAY,UAAU,YAAY,SAAU,GAAG,MAC/D,oBAAU,2BAAY,UACzB;AAEJ;","names":["button","primary","secondary","ghost","danger","sm","md","lg"]}
|
package/dist/index.mjs
ADDED
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
// src/components/button/button.module.scss
|
|
2
|
+
var button_module_default = {
|
|
3
|
+
button: "button_module_button",
|
|
4
|
+
primary: "button_module_primary",
|
|
5
|
+
secondary: "button_module_secondary",
|
|
6
|
+
ghost: "button_module_ghost",
|
|
7
|
+
danger: "button_module_danger",
|
|
8
|
+
sm: "button_module_sm",
|
|
9
|
+
md: "button_module_md",
|
|
10
|
+
lg: "button_module_lg"
|
|
11
|
+
};
|
|
12
|
+
|
|
13
|
+
// src/components/button/button.tsx
|
|
14
|
+
import { jsx } from "react/jsx-runtime";
|
|
15
|
+
var Button = ({
|
|
16
|
+
variant = "primary",
|
|
17
|
+
size = "md",
|
|
18
|
+
loading = false,
|
|
19
|
+
disabled,
|
|
20
|
+
className,
|
|
21
|
+
children,
|
|
22
|
+
...rest
|
|
23
|
+
}) => {
|
|
24
|
+
const classNames = [button_module_default.button, button_module_default[variant], button_module_default[size], className].filter(Boolean).join(" ");
|
|
25
|
+
return /* @__PURE__ */ jsx("button", { className: classNames, disabled: disabled || loading, ...rest, children: loading ? "\uB85C\uB529 \uC911..." : children });
|
|
26
|
+
};
|
|
27
|
+
export {
|
|
28
|
+
Button
|
|
29
|
+
};
|
|
30
|
+
//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/button/button.module.scss","../src/components/button/button.tsx"],"sourcesContent":[".button {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n font-weight: 500;\n white-space: nowrap;\n cursor: pointer;\n border: none;\n border-radius: 6px;\n transition: opacity 0.15s, background-color 0.15s;\n}\n.button:disabled {\n cursor: not-allowed;\n opacity: 0.6;\n}\n\n.primary {\n color: #fff;\n background-color: #2563eb;\n}\n.primary:hover:not(:disabled) {\n background-color: #1d4ed8;\n}\n\n.secondary {\n color: #111827;\n background-color: #e5e7eb;\n}\n.secondary:hover:not(:disabled) {\n background-color: #d1d5db;\n}\n\n.ghost {\n color: #2563eb;\n background-color: transparent;\n}\n.ghost:hover:not(:disabled) {\n background-color: #eff6ff;\n}\n\n.danger {\n color: #fff;\n background-color: #dc2626;\n}\n.danger:hover:not(:disabled) {\n background-color: #b91c1c;\n}\n\n.sm {\n padding: 4px 10px;\n font-size: 12px;\n line-height: 1.5;\n}\n\n.md {\n padding: 8px 16px;\n font-size: 14px;\n line-height: 1.5;\n}\n\n.lg {\n padding: 12px 24px;\n font-size: 16px;\n line-height: 1.5;\n}\n/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImJ1dHRvbi5tb2R1bGUuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQSxZQUNFOztBQUdGO0VBQ0U7RUFDQTs7O0FBS0o7RUFDRTtFQUNBOztBQUVBO0VBQ0U7OztBQUlKO0VBQ0U7RUFDQTs7QUFFQTtFQUNFOzs7QUFJSjtFQUNFO0VBQ0E7O0FBRUE7RUFDRTs7O0FBSUo7RUFDRTtFQUNBOztBQUVBO0VBQ0U7OztBQUtKO0VBQ0U7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0EiLCJzb3VyY2VzQ29udGVudCI6WyIuYnV0dG9uIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBmb250LXdlaWdodDogNTAwO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGJvcmRlcjogbm9uZTtcbiAgYm9yZGVyLXJhZGl1czogNnB4O1xuICB0cmFuc2l0aW9uOlxuICAgIG9wYWNpdHkgMC4xNXMsXG4gICAgYmFja2dyb3VuZC1jb2xvciAwLjE1cztcblxuICAmOmRpc2FibGVkIHtcbiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgIG9wYWNpdHk6IDAuNjtcbiAgfVxufVxuXG4vLyBWYXJpYW50c1xuLnByaW1hcnkge1xuICBjb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzI1NjNlYjtcblxuICAmOmhvdmVyOm5vdCg6ZGlzYWJsZWQpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMWQ0ZWQ4O1xuICB9XG59XG5cbi5zZWNvbmRhcnkge1xuICBjb2xvcjogIzExMTgyNztcbiAgYmFja2dyb3VuZC1jb2xvcjogI2U1ZTdlYjtcblxuICAmOmhvdmVyOm5vdCg6ZGlzYWJsZWQpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZDFkNWRiO1xuICB9XG59XG5cbi5naG9zdCB7XG4gIGNvbG9yOiAjMjU2M2ViO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcblxuICAmOmhvdmVyOm5vdCg6ZGlzYWJsZWQpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWZmNmZmO1xuICB9XG59XG5cbi5kYW5nZXIge1xuICBjb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2RjMjYyNjtcblxuICAmOmhvdmVyOm5vdCg6ZGlzYWJsZWQpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjYjkxYzFjO1xuICB9XG59XG5cbi8vIFNpemVzXG4uc20ge1xuICBwYWRkaW5nOiA0cHggMTBweDtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBsaW5lLWhlaWdodDogMS41O1xufVxuXG4ubWQge1xuICBwYWRkaW5nOiA4cHggMTZweDtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBsaW5lLWhlaWdodDogMS41O1xufVxuXG4ubGcge1xuICBwYWRkaW5nOiAxMnB4IDI0cHg7XG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgbGluZS1oZWlnaHQ6IDEuNTtcbn1cbiJdfQ== */","import React from 'react';\n\nimport styles from './button.module.scss';\n\nexport type ButtonVariant = 'primary' | 'secondary' | 'ghost' | 'danger';\nexport type ButtonSize = 'sm' | 'md' | 'lg';\n\nexport interface ButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n variant?: ButtonVariant;\n size?: ButtonSize;\n loading?: boolean;\n children: React.ReactNode;\n}\n\nexport const Button = ({\n variant = 'primary',\n size = 'md',\n loading = false,\n disabled,\n className,\n children,\n ...rest\n}: ButtonProps) => {\n const classNames = [styles.button, styles[variant], styles[size], className].filter(Boolean).join(' ');\n\n return (\n <button className={classNames} disabled={disabled || loading} {...rest}>\n {loading ? '로딩 중...' : children}\n </button>\n );\n};\n"],"mappings":";AAAA;AAAA,EAAC,QAAAA;AAAA,EAgBA,SAAAC;AAAA,EAQA,WAAAC;AAAA,EAQA,OAAAC;AAAA,EAQA,QAAAC;AAAA,EAQA,IAAAC;AAAA,EAMA,IAAAC;AAAA,EAMA,IAAAC;AAAA;;;AClCG;AAZG,IAAM,SAAS,CAAC;AAAA,EACrB,UAAU;AAAA,EACV,OAAO;AAAA,EACP,UAAU;AAAA,EACV;AAAA,EACA;AAAA,EACA;AAAA,EACA,GAAG;AACL,MAAmB;AACjB,QAAM,aAAa,CAAC,sBAAO,QAAQ,sBAAO,OAAO,GAAG,sBAAO,IAAI,GAAG,SAAS,EAAE,OAAO,OAAO,EAAE,KAAK,GAAG;AAErG,SACE,oBAAC,YAAO,WAAW,YAAY,UAAU,YAAY,SAAU,GAAG,MAC/D,oBAAU,2BAAY,UACzB;AAEJ;","names":["button","primary","secondary","ghost","danger","sm","md","lg"]}
|
package/package.json
ADDED
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "hia-frontend-components",
|
|
3
|
+
"version": "0.0.1",
|
|
4
|
+
"description": "HIA 공통 UI 컴포넌트 라이브러리",
|
|
5
|
+
"main": "./dist/index.js",
|
|
6
|
+
"module": "./dist/index.mjs",
|
|
7
|
+
"types": "./dist/index.d.ts",
|
|
8
|
+
"exports": {
|
|
9
|
+
".": {
|
|
10
|
+
"types": "./dist/index.d.ts",
|
|
11
|
+
"import": "./dist/index.mjs",
|
|
12
|
+
"require": "./dist/index.js"
|
|
13
|
+
}
|
|
14
|
+
},
|
|
15
|
+
"files": [
|
|
16
|
+
"dist"
|
|
17
|
+
],
|
|
18
|
+
"peerDependencies": {
|
|
19
|
+
"react": ">=19",
|
|
20
|
+
"react-dom": ">=19"
|
|
21
|
+
},
|
|
22
|
+
"devDependencies": {
|
|
23
|
+
"@types/react": "^19.2.14",
|
|
24
|
+
"@types/react-dom": "^19.2.3",
|
|
25
|
+
"esbuild-sass-plugin": "^3.3.0",
|
|
26
|
+
"react": "^19.2.4",
|
|
27
|
+
"react-dom": "^19.2.4",
|
|
28
|
+
"sass": "^1.77.0",
|
|
29
|
+
"tsup": "^8.0.0",
|
|
30
|
+
"typescript": "^5.8.3",
|
|
31
|
+
"hia-frontend-typescript-config": "0.0.1"
|
|
32
|
+
},
|
|
33
|
+
"publishConfig": {
|
|
34
|
+
"access": "public"
|
|
35
|
+
},
|
|
36
|
+
"scripts": {
|
|
37
|
+
"build": "tsup",
|
|
38
|
+
"dev": "tsup --watch",
|
|
39
|
+
"lint": "eslint src --ext .ts,.tsx",
|
|
40
|
+
"clean": "rm -rf dist",
|
|
41
|
+
"check-types": "tsc --noEmit"
|
|
42
|
+
}
|
|
43
|
+
}
|