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 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"]}
@@ -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 };
@@ -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
+ }