@tipp/ui 1.0.49 → 1.0.50

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.
@@ -3,9 +3,9 @@ import {
3
3
  Drawer,
4
4
  Root,
5
5
  Trigger
6
- } from "../chunk-NBJOYJAF.js";
7
- import "../chunk-BVBX6IJ3.js";
6
+ } from "../chunk-ONYSO7Y2.js";
8
7
  import "../chunk-NJ2U2TVS.js";
8
+ import "../chunk-BVBX6IJ3.js";
9
9
  import "../chunk-O3DNDMV3.js";
10
10
  import "../chunk-N552FDTV.js";
11
11
  export {
@@ -1,8 +1,8 @@
1
1
  import {
2
2
  FieldErrorWrapper
3
- } from "../chunk-CHHLIPDN.js";
4
- import "../chunk-25HMMI7R.js";
3
+ } from "../chunk-CNQ7RNNY.js";
5
4
  import "../chunk-O3XTRD7R.js";
5
+ import "../chunk-25HMMI7R.js";
6
6
  import "../chunk-N552FDTV.js";
7
7
  export {
8
8
  FieldErrorWrapper
@@ -1,4 +1,16 @@
1
1
  import "../chunk-2ANGYYEV.js";
2
+ import {
3
+ TextField
4
+ } from "../chunk-JPIZP2PZ.js";
5
+ import {
6
+ Separator
7
+ } from "../chunk-HYITAA4J.js";
8
+ import {
9
+ Skeleton
10
+ } from "../chunk-5H3YPCZK.js";
11
+ import {
12
+ Spinner
13
+ } from "../chunk-FR2GDOU2.js";
2
14
  import {
3
15
  Strong
4
16
  } from "../chunk-74DX4CU7.js";
@@ -15,8 +27,14 @@ import {
15
27
  TextArea
16
28
  } from "../chunk-ILRUXI2E.js";
17
29
  import {
18
- TextField
19
- } from "../chunk-JPIZP2PZ.js";
30
+ Quote
31
+ } from "../chunk-YO3BQW6S.js";
32
+ import {
33
+ RadioCards
34
+ } from "../chunk-6IVCARWS.js";
35
+ import {
36
+ RadioGroup
37
+ } from "../chunk-6DJOIRMF.js";
20
38
  import {
21
39
  Radio
22
40
  } from "../chunk-FPD73OHW.js";
@@ -33,14 +51,8 @@ import {
33
51
  Select
34
52
  } from "../chunk-3JRNKBMN.js";
35
53
  import {
36
- Separator
37
- } from "../chunk-HYITAA4J.js";
38
- import {
39
- Skeleton
40
- } from "../chunk-5H3YPCZK.js";
41
- import {
42
- Spinner
43
- } from "../chunk-FR2GDOU2.js";
54
+ Inset
55
+ } from "../chunk-XQOL7UBI.js";
44
56
  import {
45
57
  Kbd
46
58
  } from "../chunk-TULWX7D6.js";
@@ -49,7 +61,7 @@ import {
49
61
  } from "../chunk-XQOZWYUA.js";
50
62
  import {
51
63
  Pagination
52
- } from "../chunk-FQYPUIFX.js";
64
+ } from "../chunk-HXJPG3ZO.js";
53
65
  import {
54
66
  Popover
55
67
  } from "../chunk-5AVBYDPB.js";
@@ -57,14 +69,23 @@ import {
57
69
  Progress
58
70
  } from "../chunk-365QMK4D.js";
59
71
  import {
60
- Quote
61
- } from "../chunk-YO3BQW6S.js";
72
+ EllipsisTooltip
73
+ } from "../chunk-4IKPNQV5.js";
62
74
  import {
63
- RadioCards
64
- } from "../chunk-6IVCARWS.js";
75
+ Tooltip
76
+ } from "../chunk-ACVANQJ4.js";
65
77
  import {
66
- RadioGroup
67
- } from "../chunk-6DJOIRMF.js";
78
+ Em
79
+ } from "../chunk-2DZ2Y3JI.js";
80
+ import {
81
+ FieldErrorWrapper
82
+ } from "../chunk-CNQ7RNNY.js";
83
+ import {
84
+ Typo
85
+ } from "../chunk-O3XTRD7R.js";
86
+ import {
87
+ Flex
88
+ } from "../chunk-25HMMI7R.js";
68
89
  import {
69
90
  Form
70
91
  } from "../chunk-2CVXGGI5.js";
@@ -78,8 +99,14 @@ import {
78
99
  HoverCard
79
100
  } from "../chunk-O3T3TM3V.js";
80
101
  import {
81
- Inset
82
- } from "../chunk-XQOL7UBI.js";
102
+ Checkbox
103
+ } from "../chunk-JEHDCZQU.js";
104
+ import {
105
+ Code
106
+ } from "../chunk-OHMOP5PV.js";
107
+ import {
108
+ Collapse
109
+ } from "../chunk-KGLIAFTI.js";
83
110
  import {
84
111
  Container
85
112
  } from "../chunk-Q37G2GS6.js";
@@ -94,12 +121,12 @@ import {
94
121
  Drawer,
95
122
  Root,
96
123
  Trigger
97
- } from "../chunk-NBJOYJAF.js";
98
- import "../chunk-BVBX6IJ3.js";
124
+ } from "../chunk-ONYSO7Y2.js";
99
125
  import {
100
126
  ToastContainer,
101
127
  toast
102
128
  } from "../chunk-NJ2U2TVS.js";
129
+ import "../chunk-BVBX6IJ3.js";
103
130
  import {
104
131
  IconButton
105
132
  } from "../chunk-O3DNDMV3.js";
@@ -107,23 +134,14 @@ import {
107
134
  DropdownMenu
108
135
  } from "../chunk-4WFMOFN2.js";
109
136
  import {
110
- EllipsisTooltip
111
- } from "../chunk-4IKPNQV5.js";
112
- import {
113
- Tooltip
114
- } from "../chunk-ACVANQJ4.js";
115
- import {
116
- Em
117
- } from "../chunk-2DZ2Y3JI.js";
118
- import {
119
- FieldErrorWrapper
120
- } from "../chunk-CHHLIPDN.js";
137
+ Badge
138
+ } from "../chunk-ALOPZ54P.js";
121
139
  import {
122
- Flex
123
- } from "../chunk-25HMMI7R.js";
140
+ Blockquote
141
+ } from "../chunk-YGL6SWKN.js";
124
142
  import {
125
- Typo
126
- } from "../chunk-O3XTRD7R.js";
143
+ Box
144
+ } from "../chunk-4Y5BEXVN.js";
127
145
  import {
128
146
  Button
129
147
  } from "../chunk-AQX7DQLI.js";
@@ -139,15 +157,6 @@ import {
139
157
  import {
140
158
  CheckboxGroup
141
159
  } from "../chunk-IQEEPHOY.js";
142
- import {
143
- Checkbox
144
- } from "../chunk-JEHDCZQU.js";
145
- import {
146
- Code
147
- } from "../chunk-OHMOP5PV.js";
148
- import {
149
- Collapse
150
- } from "../chunk-KGLIAFTI.js";
151
160
  import "../chunk-TSVWEPRP.js";
152
161
  import {
153
162
  AlertDialog
@@ -158,15 +167,6 @@ import {
158
167
  import {
159
168
  Avatar
160
169
  } from "../chunk-CZEGRZBK.js";
161
- import {
162
- Badge
163
- } from "../chunk-ALOPZ54P.js";
164
- import {
165
- Blockquote
166
- } from "../chunk-YGL6SWKN.js";
167
- import {
168
- Box
169
- } from "../chunk-4Y5BEXVN.js";
170
170
  import "../chunk-N552FDTV.js";
171
171
  export {
172
172
  AlertDialog,
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  Pagination
3
- } from "../chunk-FQYPUIFX.js";
4
- import "../chunk-O3DNDMV3.js";
5
- import "../chunk-25HMMI7R.js";
3
+ } from "../chunk-HXJPG3ZO.js";
6
4
  import "../chunk-O3XTRD7R.js";
5
+ import "../chunk-25HMMI7R.js";
6
+ import "../chunk-O3DNDMV3.js";
7
7
  import "../chunk-TSVWEPRP.js";
8
8
  import "../chunk-N552FDTV.js";
9
9
  export {
@@ -0,0 +1,123 @@
1
+ import {
2
+ Row
3
+ } from "./chunk-MDBFTLD7.js";
4
+ import {
5
+ Typo
6
+ } from "./chunk-O3XTRD7R.js";
7
+ import {
8
+ Flex
9
+ } from "./chunk-25HMMI7R.js";
10
+ import {
11
+ TriangleArrowDownIcon
12
+ } from "./chunk-BSTJBBEX.js";
13
+ import {
14
+ TriangleArrowUpIcon
15
+ } from "./chunk-NDUKDKGB.js";
16
+
17
+ // src/molecules/expand-table/index.tsx
18
+ import {
19
+ flexRender,
20
+ getCoreRowModel,
21
+ useReactTable,
22
+ getSortedRowModel,
23
+ createColumnHelper
24
+ } from "@tanstack/react-table";
25
+ import { useMemo, useState } from "react";
26
+ import { jsx, jsxs } from "react/jsx-runtime";
27
+ function ExpandTable(props) {
28
+ const { data, columns, ExpandComp, placeholder, onRowClick } = props;
29
+ const defaultAlign = "left";
30
+ const [sorting, setSorting] = useState([]);
31
+ const { getRowModel, getHeaderGroups } = useReactTable({
32
+ data: data || [],
33
+ columns,
34
+ getCoreRowModel: getCoreRowModel(),
35
+ getSortedRowModel: getSortedRowModel(),
36
+ state: {
37
+ sorting
38
+ },
39
+ onSortingChange: setSorting
40
+ });
41
+ const gridColTemp = useMemo(() => {
42
+ return columns.map((col) => {
43
+ var _a;
44
+ if ((_a = col.meta) == null ? void 0 : _a.autoSize)
45
+ return "1fr";
46
+ return `${col.size || 150}px`;
47
+ }).join(" ");
48
+ }, [columns]);
49
+ const rowModels = getRowModel();
50
+ return /* @__PURE__ */ jsxs("div", { className: "expand-table", children: [
51
+ /* @__PURE__ */ jsx("div", { className: "thead", children: getHeaderGroups().map((headerGroup) => /* @__PURE__ */ jsx(
52
+ "div",
53
+ {
54
+ className: "tr",
55
+ style: { gridTemplateColumns: gridColTemp },
56
+ children: headerGroup.headers.map((header) => {
57
+ var _a;
58
+ const sortable = header.column.getCanSort();
59
+ const sortedState = header.column.getIsSorted();
60
+ const justifyContent = ((_a = header.column.columnDef.meta) == null ? void 0 : _a.align) || defaultAlign;
61
+ return /* @__PURE__ */ jsx("div", { className: `${justifyContent} th`, children: /* @__PURE__ */ jsxs(
62
+ "button",
63
+ {
64
+ onClick: header.column.getToggleSortingHandler(),
65
+ style: sortable ? { cursor: "pointer" } : void 0,
66
+ type: "button",
67
+ children: [
68
+ /* @__PURE__ */ jsx(Typo, { variant: "body", children: flexRender(
69
+ header.column.columnDef.header,
70
+ header.getContext()
71
+ ) }),
72
+ sortable ? /* @__PURE__ */ jsxs(
73
+ Flex,
74
+ {
75
+ direction: "column",
76
+ style: { marginLeft: "var(--space-2)" },
77
+ children: [
78
+ /* @__PURE__ */ jsx(
79
+ TriangleArrowUpIcon,
80
+ {
81
+ color: sortedState === "asc" ? "var(--iris-10)" : "var(--iris-6)"
82
+ }
83
+ ),
84
+ /* @__PURE__ */ jsx(
85
+ TriangleArrowDownIcon,
86
+ {
87
+ color: sortedState === "desc" ? "var(--iris-10)" : "var(--iris-6)"
88
+ }
89
+ )
90
+ ]
91
+ }
92
+ ) : null
93
+ ]
94
+ }
95
+ ) }, header.id);
96
+ })
97
+ },
98
+ headerGroup.id
99
+ )) }),
100
+ /* @__PURE__ */ jsxs("div", { className: "tbody", children: [
101
+ rowModels.rows.length === 0 && /* @__PURE__ */ jsx("div", { className: "tr", children: /* @__PURE__ */ jsx(Flex, { align: "center", justify: "center", children: placeholder || /* @__PURE__ */ jsx(Typo, { color: "gray", mb: "6", mt: "6", variant: "body", children: "\uB370\uC774\uD130\uAC00 \uC5C6\uC2B5\uB2C8\uB2E4" }) }) }, "expand_placeholder"),
102
+ rowModels.rows.map((row) => {
103
+ return /* @__PURE__ */ jsx(
104
+ Row,
105
+ {
106
+ ExpandComp,
107
+ defaultAlign,
108
+ gridColTemp,
109
+ onRowClick,
110
+ row
111
+ },
112
+ `row_${row.id}`
113
+ );
114
+ })
115
+ ] })
116
+ ] });
117
+ }
118
+
119
+ export {
120
+ createColumnHelper,
121
+ ExpandTable
122
+ };
123
+ //# sourceMappingURL=chunk-KBXRIA7J.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/molecules/expand-table/index.tsx"],"sourcesContent":["import type {\n ColumnDef,\n SortingState,\n RowData,\n Row as RowType,\n} from '@tanstack/react-table';\nimport type { CSSProperties } from 'react';\nimport {\n flexRender,\n getCoreRowModel,\n useReactTable,\n getSortedRowModel,\n createColumnHelper,\n} from '@tanstack/react-table';\nimport React, { useMemo, useState } from 'react';\nimport { Flex, Typo } from '../../atoms';\nimport { TriangleArrowDownIcon } from '../../icons/down';\nimport { TriangleArrowUpIcon } from '../../icons/up';\nimport { Row, type ExpandComp, type OnRowClick } from './row';\n\nexport type { ExpandComp, OnRowClick, ColumnDef, RowType as Row };\nexport { createColumnHelper };\n\nexport interface ExpandTableProps<Datum extends RowData> {\n /** 렌더할 데이터 배열 */\n data?: Datum[];\n /** 테이블 컬럼의 메타 데이터 */\n columns: ColumnDef<Datum>[];\n /** Row의 open이 true인 경우 하단의 collapse에 렌더할 컴포넌트 */\n ExpandComp?: ExpandComp<Datum>;\n /** 데이테가 없을 시 화면에 표시할 컴포넌트 */\n placeholder?: React.ReactNode;\n /** 행 클릭 시 실행할 콜백 */\n onRowClick?: OnRowClick<Datum>;\n rowStyle?: CSSProperties;\n}\n\nexport function ExpandTable<Datum extends RowData>(\n props: ExpandTableProps<Datum>\n): React.ReactNode {\n const { data, columns, ExpandComp, placeholder, onRowClick } = props;\n const defaultAlign = 'left';\n const [sorting, setSorting] = useState<SortingState>([]);\n const { getRowModel, getHeaderGroups } = useReactTable({\n data: data || [],\n columns,\n getCoreRowModel: getCoreRowModel(),\n getSortedRowModel: getSortedRowModel(),\n state: {\n sorting,\n },\n onSortingChange: setSorting,\n });\n\n const gridColTemp = useMemo<string>(() => {\n return columns\n .map((col) => {\n if (col.meta?.autoSize) return '1fr';\n return `${col.size || 150}px`;\n })\n .join(' ');\n }, [columns]);\n\n const rowModels = getRowModel();\n\n return (\n <div className=\"expand-table\">\n <div className=\"thead\">\n {getHeaderGroups().map((headerGroup) => (\n <div\n className=\"tr\"\n key={headerGroup.id}\n style={{ gridTemplateColumns: gridColTemp }}\n >\n {headerGroup.headers.map((header) => {\n const sortable = header.column.getCanSort();\n const sortedState = header.column.getIsSorted();\n const justifyContent =\n header.column.columnDef.meta?.align || defaultAlign;\n\n return (\n <div className={`${justifyContent} th`} key={header.id}>\n <button\n onClick={header.column.getToggleSortingHandler()}\n style={sortable ? { cursor: 'pointer' } : undefined}\n type=\"button\"\n >\n <Typo variant=\"body\">\n {flexRender(\n header.column.columnDef.header,\n header.getContext()\n )}\n </Typo>\n {sortable ? (\n <Flex\n direction=\"column\"\n style={{ marginLeft: 'var(--space-2)' }}\n >\n <TriangleArrowUpIcon\n color={\n sortedState === 'asc'\n ? 'var(--iris-10)'\n : 'var(--iris-6)'\n }\n />\n <TriangleArrowDownIcon\n color={\n sortedState === 'desc'\n ? 'var(--iris-10)'\n : 'var(--iris-6)'\n }\n />\n </Flex>\n ) : null}\n </button>\n </div>\n );\n })}\n </div>\n ))}\n </div>\n <div className=\"tbody\">\n {/* 데이터가 없을 시 표시되는 노드 */}\n {rowModels.rows.length === 0 && (\n <div className=\"tr\" key=\"expand_placeholder\">\n <Flex align=\"center\" justify=\"center\">\n {placeholder || (\n <Typo color=\"gray\" mb=\"6\" mt=\"6\" variant=\"body\">\n 데이터가 없습니다\n </Typo>\n )}\n </Flex>\n </div>\n )}\n\n {/* 행을 렌더하는 로직 */}\n {rowModels.rows.map((row) => {\n return (\n <Row\n ExpandComp={ExpandComp}\n defaultAlign={defaultAlign}\n gridColTemp={gridColTemp}\n key={`row_${row.id}`}\n onRowClick={onRowClick}\n row={row}\n />\n );\n })}\n </div>\n </div>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;AAOA;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP,SAAgB,SAAS,gBAAgB;AAyErB,cAOE,YAPF;AAlDb,SAAS,YACd,OACiB;AACjB,QAAM,EAAE,MAAM,SAAS,YAAY,aAAa,WAAW,IAAI;AAC/D,QAAM,eAAe;AACrB,QAAM,CAAC,SAAS,UAAU,IAAI,SAAuB,CAAC,CAAC;AACvD,QAAM,EAAE,aAAa,gBAAgB,IAAI,cAAc;AAAA,IACrD,MAAM,QAAQ,CAAC;AAAA,IACf;AAAA,IACA,iBAAiB,gBAAgB;AAAA,IACjC,mBAAmB,kBAAkB;AAAA,IACrC,OAAO;AAAA,MACL;AAAA,IACF;AAAA,IACA,iBAAiB;AAAA,EACnB,CAAC;AAED,QAAM,cAAc,QAAgB,MAAM;AACxC,WAAO,QACJ,IAAI,CAAC,QAAQ;AAxDpB;AAyDQ,WAAI,SAAI,SAAJ,mBAAU;AAAU,eAAO;AAC/B,aAAO,GAAG,IAAI,QAAQ,GAAG;AAAA,IAC3B,CAAC,EACA,KAAK,GAAG;AAAA,EACb,GAAG,CAAC,OAAO,CAAC;AAEZ,QAAM,YAAY,YAAY;AAE9B,SACE,qBAAC,SAAI,WAAU,gBACb;AAAA,wBAAC,SAAI,WAAU,SACZ,0BAAgB,EAAE,IAAI,CAAC,gBACtB;AAAA,MAAC;AAAA;AAAA,QACC,WAAU;AAAA,QAEV,OAAO,EAAE,qBAAqB,YAAY;AAAA,QAEzC,sBAAY,QAAQ,IAAI,CAAC,WAAW;AA1EjD;AA2Ec,gBAAM,WAAW,OAAO,OAAO,WAAW;AAC1C,gBAAM,cAAc,OAAO,OAAO,YAAY;AAC9C,gBAAM,mBACJ,YAAO,OAAO,UAAU,SAAxB,mBAA8B,UAAS;AAEzC,iBACE,oBAAC,SAAI,WAAW,GAAG,cAAc,OAC/B;AAAA,YAAC;AAAA;AAAA,cACC,SAAS,OAAO,OAAO,wBAAwB;AAAA,cAC/C,OAAO,WAAW,EAAE,QAAQ,UAAU,IAAI;AAAA,cAC1C,MAAK;AAAA,cAEL;AAAA,oCAAC,QAAK,SAAQ,QACX;AAAA,kBACC,OAAO,OAAO,UAAU;AAAA,kBACxB,OAAO,WAAW;AAAA,gBACpB,GACF;AAAA,gBACC,WACC;AAAA,kBAAC;AAAA;AAAA,oBACC,WAAU;AAAA,oBACV,OAAO,EAAE,YAAY,iBAAiB;AAAA,oBAEtC;AAAA;AAAA,wBAAC;AAAA;AAAA,0BACC,OACE,gBAAgB,QACZ,mBACA;AAAA;AAAA,sBAER;AAAA,sBACA;AAAA,wBAAC;AAAA;AAAA,0BACC,OACE,gBAAgB,SACZ,mBACA;AAAA;AAAA,sBAER;AAAA;AAAA;AAAA,gBACF,IACE;AAAA;AAAA;AAAA,UACN,KAjC2C,OAAO,EAkCpD;AAAA,QAEJ,CAAC;AAAA;AAAA,MA9CI,YAAY;AAAA,IA+CnB,CACD,GACH;AAAA,IACA,qBAAC,SAAI,WAAU,SAEZ;AAAA,gBAAU,KAAK,WAAW,KACzB,oBAAC,SAAI,WAAU,MACb,8BAAC,QAAK,OAAM,UAAS,SAAQ,UAC1B,yBACC,oBAAC,QAAK,OAAM,QAAO,IAAG,KAAI,IAAG,KAAI,SAAQ,QAAO,+DAEhD,GAEJ,KAPsB,oBAQxB;AAAA,MAID,UAAU,KAAK,IAAI,CAAC,QAAQ;AAC3B,eACE;AAAA,UAAC;AAAA;AAAA,YACC;AAAA,YACA;AAAA,YACA;AAAA,YAEA;AAAA,YACA;AAAA;AAAA,UAFK,OAAO,IAAI,EAAE;AAAA,QAGpB;AAAA,MAEJ,CAAC;AAAA,OACH;AAAA,KACF;AAEJ;","names":[]}
@@ -0,0 +1,123 @@
1
+ import {
2
+ Row
3
+ } from "./chunk-MDBFTLD7.js";
4
+ import {
5
+ TriangleArrowDownIcon
6
+ } from "./chunk-BSTJBBEX.js";
7
+ import {
8
+ TriangleArrowUpIcon
9
+ } from "./chunk-NDUKDKGB.js";
10
+ import {
11
+ Typo
12
+ } from "./chunk-O3XTRD7R.js";
13
+ import {
14
+ Flex
15
+ } from "./chunk-25HMMI7R.js";
16
+
17
+ // src/molecules/expand-table/index.tsx
18
+ import {
19
+ flexRender,
20
+ getCoreRowModel,
21
+ useReactTable,
22
+ getSortedRowModel,
23
+ createColumnHelper
24
+ } from "@tanstack/react-table";
25
+ import { useMemo, useState } from "react";
26
+ import { jsx, jsxs } from "react/jsx-runtime";
27
+ function ExpandTable(props) {
28
+ const { data, columns, ExpandComp, placeholder, onRowClick } = props;
29
+ const defaultAlign = "left";
30
+ const [sorting, setSorting] = useState([]);
31
+ const { getRowModel, getHeaderGroups } = useReactTable({
32
+ data: data || [],
33
+ columns,
34
+ getCoreRowModel: getCoreRowModel(),
35
+ getSortedRowModel: getSortedRowModel(),
36
+ state: {
37
+ sorting
38
+ },
39
+ onSortingChange: setSorting
40
+ });
41
+ const gridColTemp = useMemo(() => {
42
+ return columns.map((col) => {
43
+ var _a;
44
+ if ((_a = col.meta) == null ? void 0 : _a.autoSize)
45
+ return "1fr";
46
+ return `${col.size || 150}px`;
47
+ }).join(" ");
48
+ }, [columns]);
49
+ const rowModels = getRowModel();
50
+ return /* @__PURE__ */ jsxs("div", { className: "expand-table", children: [
51
+ /* @__PURE__ */ jsx("div", { className: "thead", children: getHeaderGroups().map((headerGroup) => /* @__PURE__ */ jsx(
52
+ "div",
53
+ {
54
+ className: "tr",
55
+ style: { gridTemplateColumns: gridColTemp },
56
+ children: headerGroup.headers.map((header) => {
57
+ var _a;
58
+ const sortable = header.column.getCanSort();
59
+ const sortedState = header.column.getIsSorted();
60
+ const justifyContent = ((_a = header.column.columnDef.meta) == null ? void 0 : _a.align) || defaultAlign;
61
+ return /* @__PURE__ */ jsx("div", { className: `${justifyContent} th`, children: /* @__PURE__ */ jsxs(
62
+ "button",
63
+ {
64
+ onClick: header.column.getToggleSortingHandler(),
65
+ style: sortable ? { cursor: "pointer" } : void 0,
66
+ type: "button",
67
+ children: [
68
+ /* @__PURE__ */ jsx(Typo, { variant: "body", children: flexRender(
69
+ header.column.columnDef.header,
70
+ header.getContext()
71
+ ) }),
72
+ sortable ? /* @__PURE__ */ jsxs(
73
+ Flex,
74
+ {
75
+ direction: "column",
76
+ style: { marginLeft: "var(--space-2)" },
77
+ children: [
78
+ /* @__PURE__ */ jsx(
79
+ TriangleArrowUpIcon,
80
+ {
81
+ color: sortedState === "asc" ? "var(--iris-10)" : "var(--iris-6)"
82
+ }
83
+ ),
84
+ /* @__PURE__ */ jsx(
85
+ TriangleArrowDownIcon,
86
+ {
87
+ color: sortedState === "desc" ? "var(--iris-10)" : "var(--iris-6)"
88
+ }
89
+ )
90
+ ]
91
+ }
92
+ ) : null
93
+ ]
94
+ }
95
+ ) }, header.id);
96
+ })
97
+ },
98
+ headerGroup.id
99
+ )) }),
100
+ /* @__PURE__ */ jsxs("div", { className: "tbody", children: [
101
+ rowModels.rows.length === 0 && /* @__PURE__ */ jsx("div", { className: "tr", children: /* @__PURE__ */ jsx(Flex, { align: "center", justify: "center", children: placeholder || /* @__PURE__ */ jsx(Typo, { color: "gray", mb: "6", mt: "6", variant: "body", children: "\uB370\uC774\uD130\uAC00 \uC5C6\uC2B5\uB2C8\uB2E4" }) }) }, "expand_placeholder"),
102
+ rowModels.rows.map((row) => {
103
+ return /* @__PURE__ */ jsx(
104
+ Row,
105
+ {
106
+ ExpandComp,
107
+ defaultAlign,
108
+ gridColTemp,
109
+ onRowClick,
110
+ row
111
+ },
112
+ `row_${row.id}`
113
+ );
114
+ })
115
+ ] })
116
+ ] });
117
+ }
118
+
119
+ export {
120
+ createColumnHelper,
121
+ ExpandTable
122
+ };
123
+ //# sourceMappingURL=chunk-NC6QKYLP.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/molecules/expand-table/index.tsx"],"sourcesContent":["import type {\n ColumnDef,\n SortingState,\n RowData,\n Row as RowType,\n} from '@tanstack/react-table';\nimport type { CSSProperties } from 'react';\nimport {\n flexRender,\n getCoreRowModel,\n useReactTable,\n getSortedRowModel,\n createColumnHelper,\n} from '@tanstack/react-table';\nimport React, { useMemo, useState } from 'react';\nimport { Flex, Typo } from '../../atoms';\nimport { TriangleArrowDownIcon } from '../../icons/down';\nimport { TriangleArrowUpIcon } from '../../icons/up';\nimport { Row, type ExpandComp, type OnRowClick } from './row';\n\nexport type { ExpandComp, OnRowClick, ColumnDef, RowType as Row };\nexport { createColumnHelper };\n\nexport interface ExpandTableProps<Datum extends RowData> {\n /** 렌더할 데이터 배열 */\n data?: Datum[];\n /** 테이블 컬럼의 메타 데이터 */\n columns: ColumnDef<Datum>[];\n /** Row의 open이 true인 경우 하단의 collapse에 렌더할 컴포넌트 */\n ExpandComp?: ExpandComp<Datum>;\n /** 데이테가 없을 시 화면에 표시할 컴포넌트 */\n placeholder?: React.ReactNode;\n /** 행 클릭 시 실행할 콜백 */\n onRowClick?: OnRowClick<Datum>;\n rowStyle?: CSSProperties;\n}\n\nexport function ExpandTable<Datum extends RowData>(\n props: ExpandTableProps<Datum>\n): React.ReactNode {\n const { data, columns, ExpandComp, placeholder, onRowClick } = props;\n const defaultAlign = 'left';\n const [sorting, setSorting] = useState<SortingState>([]);\n const { getRowModel, getHeaderGroups } = useReactTable({\n data: data || [],\n columns,\n getCoreRowModel: getCoreRowModel(),\n getSortedRowModel: getSortedRowModel(),\n state: {\n sorting,\n },\n onSortingChange: setSorting,\n });\n\n const gridColTemp = useMemo<string>(() => {\n return columns\n .map((col) => {\n if (col.meta?.autoSize) return '1fr';\n return `${col.size || 150}px`;\n })\n .join(' ');\n }, [columns]);\n\n const rowModels = getRowModel();\n\n return (\n <div className=\"expand-table\">\n <div className=\"thead\">\n {getHeaderGroups().map((headerGroup) => (\n <div\n className=\"tr\"\n key={headerGroup.id}\n style={{ gridTemplateColumns: gridColTemp }}\n >\n {headerGroup.headers.map((header) => {\n const sortable = header.column.getCanSort();\n const sortedState = header.column.getIsSorted();\n const justifyContent =\n header.column.columnDef.meta?.align || defaultAlign;\n\n return (\n <div className={`${justifyContent} th`} key={header.id}>\n <button\n onClick={header.column.getToggleSortingHandler()}\n style={sortable ? { cursor: 'pointer' } : undefined}\n type=\"button\"\n >\n <Typo variant=\"body\">\n {flexRender(\n header.column.columnDef.header,\n header.getContext()\n )}\n </Typo>\n {sortable ? (\n <Flex\n direction=\"column\"\n style={{ marginLeft: 'var(--space-2)' }}\n >\n <TriangleArrowUpIcon\n color={\n sortedState === 'asc'\n ? 'var(--iris-10)'\n : 'var(--iris-6)'\n }\n />\n <TriangleArrowDownIcon\n color={\n sortedState === 'desc'\n ? 'var(--iris-10)'\n : 'var(--iris-6)'\n }\n />\n </Flex>\n ) : null}\n </button>\n </div>\n );\n })}\n </div>\n ))}\n </div>\n <div className=\"tbody\">\n {/* 데이터가 없을 시 표시되는 노드 */}\n {rowModels.rows.length === 0 && (\n <div className=\"tr\" key=\"expand_placeholder\">\n <Flex align=\"center\" justify=\"center\">\n {placeholder || (\n <Typo color=\"gray\" mb=\"6\" mt=\"6\" variant=\"body\">\n 데이터가 없습니다\n </Typo>\n )}\n </Flex>\n </div>\n )}\n\n {/* 행을 렌더하는 로직 */}\n {rowModels.rows.map((row) => {\n return (\n <Row\n ExpandComp={ExpandComp}\n defaultAlign={defaultAlign}\n gridColTemp={gridColTemp}\n key={`row_${row.id}`}\n onRowClick={onRowClick}\n row={row}\n />\n );\n })}\n </div>\n </div>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;AAOA;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP,SAAgB,SAAS,gBAAgB;AAyErB,cAOE,YAPF;AAlDb,SAAS,YACd,OACiB;AACjB,QAAM,EAAE,MAAM,SAAS,YAAY,aAAa,WAAW,IAAI;AAC/D,QAAM,eAAe;AACrB,QAAM,CAAC,SAAS,UAAU,IAAI,SAAuB,CAAC,CAAC;AACvD,QAAM,EAAE,aAAa,gBAAgB,IAAI,cAAc;AAAA,IACrD,MAAM,QAAQ,CAAC;AAAA,IACf;AAAA,IACA,iBAAiB,gBAAgB;AAAA,IACjC,mBAAmB,kBAAkB;AAAA,IACrC,OAAO;AAAA,MACL;AAAA,IACF;AAAA,IACA,iBAAiB;AAAA,EACnB,CAAC;AAED,QAAM,cAAc,QAAgB,MAAM;AACxC,WAAO,QACJ,IAAI,CAAC,QAAQ;AAxDpB;AAyDQ,WAAI,SAAI,SAAJ,mBAAU;AAAU,eAAO;AAC/B,aAAO,GAAG,IAAI,QAAQ,GAAG;AAAA,IAC3B,CAAC,EACA,KAAK,GAAG;AAAA,EACb,GAAG,CAAC,OAAO,CAAC;AAEZ,QAAM,YAAY,YAAY;AAE9B,SACE,qBAAC,SAAI,WAAU,gBACb;AAAA,wBAAC,SAAI,WAAU,SACZ,0BAAgB,EAAE,IAAI,CAAC,gBACtB;AAAA,MAAC;AAAA;AAAA,QACC,WAAU;AAAA,QAEV,OAAO,EAAE,qBAAqB,YAAY;AAAA,QAEzC,sBAAY,QAAQ,IAAI,CAAC,WAAW;AA1EjD;AA2Ec,gBAAM,WAAW,OAAO,OAAO,WAAW;AAC1C,gBAAM,cAAc,OAAO,OAAO,YAAY;AAC9C,gBAAM,mBACJ,YAAO,OAAO,UAAU,SAAxB,mBAA8B,UAAS;AAEzC,iBACE,oBAAC,SAAI,WAAW,GAAG,cAAc,OAC/B;AAAA,YAAC;AAAA;AAAA,cACC,SAAS,OAAO,OAAO,wBAAwB;AAAA,cAC/C,OAAO,WAAW,EAAE,QAAQ,UAAU,IAAI;AAAA,cAC1C,MAAK;AAAA,cAEL;AAAA,oCAAC,QAAK,SAAQ,QACX;AAAA,kBACC,OAAO,OAAO,UAAU;AAAA,kBACxB,OAAO,WAAW;AAAA,gBACpB,GACF;AAAA,gBACC,WACC;AAAA,kBAAC;AAAA;AAAA,oBACC,WAAU;AAAA,oBACV,OAAO,EAAE,YAAY,iBAAiB;AAAA,oBAEtC;AAAA;AAAA,wBAAC;AAAA;AAAA,0BACC,OACE,gBAAgB,QACZ,mBACA;AAAA;AAAA,sBAER;AAAA,sBACA;AAAA,wBAAC;AAAA;AAAA,0BACC,OACE,gBAAgB,SACZ,mBACA;AAAA;AAAA,sBAER;AAAA;AAAA;AAAA,gBACF,IACE;AAAA;AAAA;AAAA,UACN,KAjC2C,OAAO,EAkCpD;AAAA,QAEJ,CAAC;AAAA;AAAA,MA9CI,YAAY;AAAA,IA+CnB,CACD,GACH;AAAA,IACA,qBAAC,SAAI,WAAU,SAEZ;AAAA,gBAAU,KAAK,WAAW,KACzB,oBAAC,SAAI,WAAU,MACb,8BAAC,QAAK,OAAM,UAAS,SAAQ,UAC1B,yBACC,oBAAC,QAAK,OAAM,QAAO,IAAG,KAAI,IAAG,KAAI,SAAQ,QAAO,+DAEhD,GAEJ,KAPsB,oBAQxB;AAAA,MAID,UAAU,KAAK,IAAI,CAAC,QAAQ;AAC3B,eACE;AAAA,UAAC;AAAA;AAAA,YACC;AAAA,YACA;AAAA,YACA;AAAA,YAEA;AAAA,YACA;AAAA;AAAA,UAFK,OAAO,IAAI,EAAE;AAAA,QAGpB;AAAA,MAEJ,CAAC;AAAA,OACH;AAAA,KACF;AAEJ;","names":[]}
package/dist/index.d.cts CHANGED
@@ -26,6 +26,7 @@ export { index_js as uiProps };
26
26
  export { BarChartIcon, BookmarkFilledIcon, BookmarkIcon, ChatBubbleIcon, ChevronDownIcon, ChevronLeftIcon, ChevronRightIcon, ChevronUpIcon, ClipboardIcon, Cross1Icon, DotsHorizontalIcon, DotsVerticalIcon, DoubleArrowLeftIcon, DoubleArrowRightIcon, ExclamationTriangleIcon, ExitIcon, FileIcon, GearIcon, InfoCircledIcon, Link2Icon, MagnifyingGlassIcon, MixerHorizontalIcon, Pencil1Icon, PersonIcon, PlusIcon, TrashIcon } from '@radix-ui/react-icons';
27
27
  export { HorizontalBarChart, HorizontalBarChartProps } from './charts/horizontal-bar-chart.cjs';
28
28
  export { EchartDefaultProps } from './charts/chart-default-props.cjs';
29
+ export { CellAlign, CellDataType, getCellAlign } from './utils/get-cell-align.cjs';
29
30
  export { toast } from 'react-toastify';
30
31
  export { ExpandComp, OnRowClick } from './molecules/expand-table/row.cjs';
31
32
  export { ColumnDef, Row, createColumnHelper } from '@tanstack/react-table';
package/dist/index.d.ts CHANGED
@@ -26,6 +26,7 @@ export { index_js as uiProps };
26
26
  export { BarChartIcon, BookmarkFilledIcon, BookmarkIcon, ChatBubbleIcon, ChevronDownIcon, ChevronLeftIcon, ChevronRightIcon, ChevronUpIcon, ClipboardIcon, Cross1Icon, DotsHorizontalIcon, DotsVerticalIcon, DoubleArrowLeftIcon, DoubleArrowRightIcon, ExclamationTriangleIcon, ExitIcon, FileIcon, GearIcon, InfoCircledIcon, Link2Icon, MagnifyingGlassIcon, MixerHorizontalIcon, Pencil1Icon, PersonIcon, PlusIcon, TrashIcon } from '@radix-ui/react-icons';
27
27
  export { HorizontalBarChart, HorizontalBarChartProps } from './charts/horizontal-bar-chart.js';
28
28
  export { EchartDefaultProps } from './charts/chart-default-props.js';
29
+ export { CellAlign, CellDataType, getCellAlign } from './utils/get-cell-align.js';
29
30
  export { toast } from 'react-toastify';
30
31
  export { ExpandComp, OnRowClick } from './molecules/expand-table/row.js';
31
32
  export { ColumnDef, Row, createColumnHelper } from '@tanstack/react-table';
package/dist/index.js CHANGED
@@ -1,35 +1,40 @@
1
1
  import {
2
2
  useThemeContext
3
3
  } from "./chunk-MMGP4GEQ.js";
4
- import {
5
- uiProps
6
- } from "./chunk-NVKNDAIN.js";
7
- import "./chunk-PL37KFRJ.js";
8
- import {
9
- getCellAlign
10
- } from "./chunk-T6KADTJZ.js";
11
- import "./chunk-PSINRHYW.js";
12
- import {
13
- EchartDefaultProps
14
- } from "./chunk-2QFSCWES.js";
15
- import {
16
- HorizontalBarChart
17
- } from "./chunk-SGMO4KBC.js";
18
4
  import "./chunk-KHHXN3CH.js";
19
5
  import {
20
6
  ExpandTable,
21
7
  createColumnHelper
22
- } from "./chunk-N4GN6CKE.js";
8
+ } from "./chunk-NC6QKYLP.js";
23
9
  import "./chunk-MDBFTLD7.js";
24
10
  import {
25
11
  Navigation
26
- } from "./chunk-RKLEKAON.js";
12
+ } from "./chunk-7A7J457W.js";
13
+ import {
14
+ uiProps
15
+ } from "./chunk-NVKNDAIN.js";
16
+ import "./chunk-PL37KFRJ.js";
17
+ import {
18
+ getCellAlign
19
+ } from "./chunk-T6KADTJZ.js";
27
20
  import {
28
21
  DatePicker
29
- } from "./chunk-Z2PA5PMV.js";
22
+ } from "./chunk-G4FN6FJG.js";
30
23
  import "./chunk-BSTJBBEX.js";
31
24
  import "./chunk-NDUKDKGB.js";
32
25
  import "./chunk-2ANGYYEV.js";
26
+ import {
27
+ TextField
28
+ } from "./chunk-JPIZP2PZ.js";
29
+ import {
30
+ Separator
31
+ } from "./chunk-HYITAA4J.js";
32
+ import {
33
+ Skeleton
34
+ } from "./chunk-5H3YPCZK.js";
35
+ import {
36
+ Spinner
37
+ } from "./chunk-FR2GDOU2.js";
33
38
  import {
34
39
  Strong
35
40
  } from "./chunk-74DX4CU7.js";
@@ -46,8 +51,14 @@ import {
46
51
  TextArea
47
52
  } from "./chunk-ILRUXI2E.js";
48
53
  import {
49
- TextField
50
- } from "./chunk-JPIZP2PZ.js";
54
+ Quote
55
+ } from "./chunk-YO3BQW6S.js";
56
+ import {
57
+ RadioCards
58
+ } from "./chunk-6IVCARWS.js";
59
+ import {
60
+ RadioGroup
61
+ } from "./chunk-6DJOIRMF.js";
51
62
  import {
52
63
  Radio
53
64
  } from "./chunk-FPD73OHW.js";
@@ -64,14 +75,8 @@ import {
64
75
  Select
65
76
  } from "./chunk-3JRNKBMN.js";
66
77
  import {
67
- Separator
68
- } from "./chunk-HYITAA4J.js";
69
- import {
70
- Skeleton
71
- } from "./chunk-5H3YPCZK.js";
72
- import {
73
- Spinner
74
- } from "./chunk-FR2GDOU2.js";
78
+ Inset
79
+ } from "./chunk-XQOL7UBI.js";
75
80
  import {
76
81
  Kbd
77
82
  } from "./chunk-TULWX7D6.js";
@@ -80,7 +85,7 @@ import {
80
85
  } from "./chunk-XQOZWYUA.js";
81
86
  import {
82
87
  Pagination
83
- } from "./chunk-FQYPUIFX.js";
88
+ } from "./chunk-HXJPG3ZO.js";
84
89
  import {
85
90
  Popover
86
91
  } from "./chunk-5AVBYDPB.js";
@@ -88,14 +93,23 @@ import {
88
93
  Progress
89
94
  } from "./chunk-365QMK4D.js";
90
95
  import {
91
- Quote
92
- } from "./chunk-YO3BQW6S.js";
96
+ EllipsisTooltip
97
+ } from "./chunk-4IKPNQV5.js";
93
98
  import {
94
- RadioCards
95
- } from "./chunk-6IVCARWS.js";
99
+ Tooltip
100
+ } from "./chunk-ACVANQJ4.js";
96
101
  import {
97
- RadioGroup
98
- } from "./chunk-6DJOIRMF.js";
102
+ Em
103
+ } from "./chunk-2DZ2Y3JI.js";
104
+ import {
105
+ FieldErrorWrapper
106
+ } from "./chunk-CNQ7RNNY.js";
107
+ import {
108
+ Typo
109
+ } from "./chunk-O3XTRD7R.js";
110
+ import {
111
+ Flex
112
+ } from "./chunk-25HMMI7R.js";
99
113
  import {
100
114
  Form
101
115
  } from "./chunk-2CVXGGI5.js";
@@ -109,8 +123,14 @@ import {
109
123
  HoverCard
110
124
  } from "./chunk-O3T3TM3V.js";
111
125
  import {
112
- Inset
113
- } from "./chunk-XQOL7UBI.js";
126
+ Checkbox
127
+ } from "./chunk-JEHDCZQU.js";
128
+ import {
129
+ Code
130
+ } from "./chunk-OHMOP5PV.js";
131
+ import {
132
+ Collapse
133
+ } from "./chunk-KGLIAFTI.js";
114
134
  import {
115
135
  Container
116
136
  } from "./chunk-Q37G2GS6.js";
@@ -125,14 +145,14 @@ import {
125
145
  Drawer,
126
146
  Root,
127
147
  Trigger
128
- } from "./chunk-NBJOYJAF.js";
129
- import {
130
- ThemeProvider
131
- } from "./chunk-BVBX6IJ3.js";
148
+ } from "./chunk-ONYSO7Y2.js";
132
149
  import {
133
150
  ToastContainer,
134
151
  toast
135
152
  } from "./chunk-NJ2U2TVS.js";
153
+ import {
154
+ ThemeProvider
155
+ } from "./chunk-BVBX6IJ3.js";
136
156
  import {
137
157
  IconButton
138
158
  } from "./chunk-O3DNDMV3.js";
@@ -140,23 +160,14 @@ import {
140
160
  DropdownMenu
141
161
  } from "./chunk-4WFMOFN2.js";
142
162
  import {
143
- EllipsisTooltip
144
- } from "./chunk-4IKPNQV5.js";
145
- import {
146
- Tooltip
147
- } from "./chunk-ACVANQJ4.js";
148
- import {
149
- Em
150
- } from "./chunk-2DZ2Y3JI.js";
151
- import {
152
- FieldErrorWrapper
153
- } from "./chunk-CHHLIPDN.js";
163
+ Badge
164
+ } from "./chunk-ALOPZ54P.js";
154
165
  import {
155
- Flex
156
- } from "./chunk-25HMMI7R.js";
166
+ Blockquote
167
+ } from "./chunk-YGL6SWKN.js";
157
168
  import {
158
- Typo
159
- } from "./chunk-O3XTRD7R.js";
169
+ Box
170
+ } from "./chunk-4Y5BEXVN.js";
160
171
  import {
161
172
  Button
162
173
  } from "./chunk-AQX7DQLI.js";
@@ -172,15 +183,6 @@ import {
172
183
  import {
173
184
  CheckboxGroup
174
185
  } from "./chunk-IQEEPHOY.js";
175
- import {
176
- Checkbox
177
- } from "./chunk-JEHDCZQU.js";
178
- import {
179
- Code
180
- } from "./chunk-OHMOP5PV.js";
181
- import {
182
- Collapse
183
- } from "./chunk-KGLIAFTI.js";
184
186
  import {
185
187
  BarChartIcon,
186
188
  BookmarkFilledIcon,
@@ -209,6 +211,13 @@ import {
209
211
  PlusIcon,
210
212
  TrashIcon
211
213
  } from "./chunk-TSVWEPRP.js";
214
+ import "./chunk-PSINRHYW.js";
215
+ import {
216
+ EchartDefaultProps
217
+ } from "./chunk-2QFSCWES.js";
218
+ import {
219
+ HorizontalBarChart
220
+ } from "./chunk-SGMO4KBC.js";
212
221
  import {
213
222
  AlertDialog
214
223
  } from "./chunk-J242TTFH.js";
@@ -218,15 +227,6 @@ import {
218
227
  import {
219
228
  Avatar
220
229
  } from "./chunk-CZEGRZBK.js";
221
- import {
222
- Badge
223
- } from "./chunk-ALOPZ54P.js";
224
- import {
225
- Blockquote
226
- } from "./chunk-YGL6SWKN.js";
227
- import {
228
- Box
229
- } from "./chunk-4Y5BEXVN.js";
230
230
  import "./chunk-N552FDTV.js";
231
231
  export {
232
232
  AlertDialog,
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  DatePicker
3
- } from "../../chunk-Z2PA5PMV.js";
3
+ } from "../../chunk-G4FN6FJG.js";
4
+ import "../../chunk-25HMMI7R.js";
4
5
  import "../../chunk-HLOY6BIP.js";
5
6
  import "../../chunk-O3DNDMV3.js";
6
- import "../../chunk-25HMMI7R.js";
7
7
  import "../../chunk-TSVWEPRP.js";
8
8
  import "../../chunk-N552FDTV.js";
9
9
  export {
@@ -2,6 +2,7 @@ import { RowData, ColumnDef } from '@tanstack/react-table';
2
2
  export { ColumnDef, Row, createColumnHelper } from '@tanstack/react-table';
3
3
  import react__default, { CSSProperties } from 'react';
4
4
  import { ExpandComp, OnRowClick } from './row.cjs';
5
+ import '../../utils/get-cell-align.cjs';
5
6
 
6
7
  interface ExpandTableProps<Datum extends RowData> {
7
8
  /** 렌더할 데이터 배열 */
@@ -2,6 +2,7 @@ import { RowData, ColumnDef } from '@tanstack/react-table';
2
2
  export { ColumnDef, Row, createColumnHelper } from '@tanstack/react-table';
3
3
  import react__default, { CSSProperties } from 'react';
4
4
  import { ExpandComp, OnRowClick } from './row.js';
5
+ import '../../utils/get-cell-align.js';
5
6
 
6
7
  interface ExpandTableProps<Datum extends RowData> {
7
8
  /** 렌더할 데이터 배열 */
@@ -1,67 +1,67 @@
1
1
  import {
2
2
  ExpandTable,
3
3
  createColumnHelper
4
- } from "../../chunk-N4GN6CKE.js";
4
+ } from "../../chunk-NC6QKYLP.js";
5
5
  import "../../chunk-MDBFTLD7.js";
6
6
  import "../../chunk-BSTJBBEX.js";
7
7
  import "../../chunk-NDUKDKGB.js";
8
8
  import "../../chunk-2ANGYYEV.js";
9
+ import "../../chunk-JPIZP2PZ.js";
10
+ import "../../chunk-HYITAA4J.js";
11
+ import "../../chunk-5H3YPCZK.js";
12
+ import "../../chunk-FR2GDOU2.js";
9
13
  import "../../chunk-74DX4CU7.js";
10
14
  import "../../chunk-OYM4XCHQ.js";
11
15
  import "../../chunk-YJ7ZFOYL.js";
12
16
  import "../../chunk-5ZITU5L7.js";
13
17
  import "../../chunk-ILRUXI2E.js";
14
- import "../../chunk-JPIZP2PZ.js";
18
+ import "../../chunk-YO3BQW6S.js";
19
+ import "../../chunk-6IVCARWS.js";
20
+ import "../../chunk-6DJOIRMF.js";
15
21
  import "../../chunk-FPD73OHW.js";
16
22
  import "../../chunk-ZKZDVS7G.js";
17
23
  import "../../chunk-MUNMDHRF.js";
18
24
  import "../../chunk-TVDKGMBI.js";
19
25
  import "../../chunk-3JRNKBMN.js";
20
- import "../../chunk-HYITAA4J.js";
21
- import "../../chunk-5H3YPCZK.js";
22
- import "../../chunk-FR2GDOU2.js";
26
+ import "../../chunk-XQOL7UBI.js";
23
27
  import "../../chunk-TULWX7D6.js";
24
28
  import "../../chunk-XQOZWYUA.js";
25
- import "../../chunk-FQYPUIFX.js";
29
+ import "../../chunk-HXJPG3ZO.js";
26
30
  import "../../chunk-5AVBYDPB.js";
27
31
  import "../../chunk-365QMK4D.js";
28
- import "../../chunk-YO3BQW6S.js";
29
- import "../../chunk-6IVCARWS.js";
30
- import "../../chunk-6DJOIRMF.js";
32
+ import "../../chunk-4IKPNQV5.js";
33
+ import "../../chunk-ACVANQJ4.js";
34
+ import "../../chunk-2DZ2Y3JI.js";
35
+ import "../../chunk-CNQ7RNNY.js";
36
+ import "../../chunk-O3XTRD7R.js";
37
+ import "../../chunk-25HMMI7R.js";
31
38
  import "../../chunk-2CVXGGI5.js";
32
39
  import "../../chunk-EGEQY3KT.js";
33
40
  import "../../chunk-HLOY6BIP.js";
34
41
  import "../../chunk-O3T3TM3V.js";
35
- import "../../chunk-XQOL7UBI.js";
42
+ import "../../chunk-JEHDCZQU.js";
43
+ import "../../chunk-OHMOP5PV.js";
44
+ import "../../chunk-KGLIAFTI.js";
36
45
  import "../../chunk-Q37G2GS6.js";
37
46
  import "../../chunk-VTJZMOSP.js";
38
47
  import "../../chunk-P6B2PNYI.js";
39
- import "../../chunk-NBJOYJAF.js";
40
- import "../../chunk-BVBX6IJ3.js";
48
+ import "../../chunk-ONYSO7Y2.js";
41
49
  import "../../chunk-NJ2U2TVS.js";
50
+ import "../../chunk-BVBX6IJ3.js";
42
51
  import "../../chunk-O3DNDMV3.js";
43
52
  import "../../chunk-4WFMOFN2.js";
44
- import "../../chunk-4IKPNQV5.js";
45
- import "../../chunk-ACVANQJ4.js";
46
- import "../../chunk-2DZ2Y3JI.js";
47
- import "../../chunk-CHHLIPDN.js";
48
- import "../../chunk-25HMMI7R.js";
49
- import "../../chunk-O3XTRD7R.js";
53
+ import "../../chunk-ALOPZ54P.js";
54
+ import "../../chunk-YGL6SWKN.js";
55
+ import "../../chunk-4Y5BEXVN.js";
50
56
  import "../../chunk-AQX7DQLI.js";
51
57
  import "../../chunk-B6XJN6EC.js";
52
58
  import "../../chunk-UVKNLJDZ.js";
53
59
  import "../../chunk-MIMJ7LON.js";
54
60
  import "../../chunk-IQEEPHOY.js";
55
- import "../../chunk-JEHDCZQU.js";
56
- import "../../chunk-OHMOP5PV.js";
57
- import "../../chunk-KGLIAFTI.js";
58
61
  import "../../chunk-TSVWEPRP.js";
59
62
  import "../../chunk-J242TTFH.js";
60
63
  import "../../chunk-EAXUQEO5.js";
61
64
  import "../../chunk-CZEGRZBK.js";
62
- import "../../chunk-ALOPZ54P.js";
63
- import "../../chunk-YGL6SWKN.js";
64
- import "../../chunk-4Y5BEXVN.js";
65
65
  import "../../chunk-N552FDTV.js";
66
66
  export {
67
67
  ExpandTable,
@@ -1,5 +1,6 @@
1
1
  import { Row as Row$1, RowData } from '@tanstack/react-table';
2
2
  import react__default from 'react';
3
+ import { CellAlign } from '../../utils/get-cell-align.cjs';
3
4
 
4
5
  type ExpandComp<Datum> = react__default.FC<{
5
6
  row: Row$1<Datum>;
@@ -10,7 +11,7 @@ interface RowProps<Datum extends RowData> {
10
11
  ExpandComp?: ExpandComp<Datum>;
11
12
  onRowClick?: OnRowClick<Datum>;
12
13
  gridColTemp: string;
13
- defaultAlign: 'left' | 'right' | 'center';
14
+ defaultAlign: CellAlign;
14
15
  }
15
16
  declare function Row<Datum extends RowData>(props: RowProps<Datum>): react__default.ReactNode;
16
17
 
@@ -1,5 +1,6 @@
1
1
  import { Row as Row$1, RowData } from '@tanstack/react-table';
2
2
  import react__default from 'react';
3
+ import { CellAlign } from '../../utils/get-cell-align.js';
3
4
 
4
5
  type ExpandComp<Datum> = react__default.FC<{
5
6
  row: Row$1<Datum>;
@@ -10,7 +11,7 @@ interface RowProps<Datum extends RowData> {
10
11
  ExpandComp?: ExpandComp<Datum>;
11
12
  onRowClick?: OnRowClick<Datum>;
12
13
  gridColTemp: string;
13
- defaultAlign: 'left' | 'right' | 'center';
14
+ defaultAlign: CellAlign;
14
15
  }
15
16
  declare function Row<Datum extends RowData>(props: RowProps<Datum>): react__default.ReactNode;
16
17
 
@@ -2,62 +2,62 @@ import {
2
2
  Row
3
3
  } from "../../chunk-MDBFTLD7.js";
4
4
  import "../../chunk-2ANGYYEV.js";
5
+ import "../../chunk-JPIZP2PZ.js";
6
+ import "../../chunk-HYITAA4J.js";
7
+ import "../../chunk-5H3YPCZK.js";
8
+ import "../../chunk-FR2GDOU2.js";
5
9
  import "../../chunk-74DX4CU7.js";
6
10
  import "../../chunk-OYM4XCHQ.js";
7
11
  import "../../chunk-YJ7ZFOYL.js";
8
12
  import "../../chunk-5ZITU5L7.js";
9
13
  import "../../chunk-ILRUXI2E.js";
10
- import "../../chunk-JPIZP2PZ.js";
14
+ import "../../chunk-YO3BQW6S.js";
15
+ import "../../chunk-6IVCARWS.js";
16
+ import "../../chunk-6DJOIRMF.js";
11
17
  import "../../chunk-FPD73OHW.js";
12
18
  import "../../chunk-ZKZDVS7G.js";
13
19
  import "../../chunk-MUNMDHRF.js";
14
20
  import "../../chunk-TVDKGMBI.js";
15
21
  import "../../chunk-3JRNKBMN.js";
16
- import "../../chunk-HYITAA4J.js";
17
- import "../../chunk-5H3YPCZK.js";
18
- import "../../chunk-FR2GDOU2.js";
22
+ import "../../chunk-XQOL7UBI.js";
19
23
  import "../../chunk-TULWX7D6.js";
20
24
  import "../../chunk-XQOZWYUA.js";
21
- import "../../chunk-FQYPUIFX.js";
25
+ import "../../chunk-HXJPG3ZO.js";
22
26
  import "../../chunk-5AVBYDPB.js";
23
27
  import "../../chunk-365QMK4D.js";
24
- import "../../chunk-YO3BQW6S.js";
25
- import "../../chunk-6IVCARWS.js";
26
- import "../../chunk-6DJOIRMF.js";
28
+ import "../../chunk-4IKPNQV5.js";
29
+ import "../../chunk-ACVANQJ4.js";
30
+ import "../../chunk-2DZ2Y3JI.js";
31
+ import "../../chunk-CNQ7RNNY.js";
32
+ import "../../chunk-O3XTRD7R.js";
33
+ import "../../chunk-25HMMI7R.js";
27
34
  import "../../chunk-2CVXGGI5.js";
28
35
  import "../../chunk-EGEQY3KT.js";
29
36
  import "../../chunk-HLOY6BIP.js";
30
37
  import "../../chunk-O3T3TM3V.js";
31
- import "../../chunk-XQOL7UBI.js";
38
+ import "../../chunk-JEHDCZQU.js";
39
+ import "../../chunk-OHMOP5PV.js";
40
+ import "../../chunk-KGLIAFTI.js";
32
41
  import "../../chunk-Q37G2GS6.js";
33
42
  import "../../chunk-VTJZMOSP.js";
34
43
  import "../../chunk-P6B2PNYI.js";
35
- import "../../chunk-NBJOYJAF.js";
36
- import "../../chunk-BVBX6IJ3.js";
44
+ import "../../chunk-ONYSO7Y2.js";
37
45
  import "../../chunk-NJ2U2TVS.js";
46
+ import "../../chunk-BVBX6IJ3.js";
38
47
  import "../../chunk-O3DNDMV3.js";
39
48
  import "../../chunk-4WFMOFN2.js";
40
- import "../../chunk-4IKPNQV5.js";
41
- import "../../chunk-ACVANQJ4.js";
42
- import "../../chunk-2DZ2Y3JI.js";
43
- import "../../chunk-CHHLIPDN.js";
44
- import "../../chunk-25HMMI7R.js";
45
- import "../../chunk-O3XTRD7R.js";
49
+ import "../../chunk-ALOPZ54P.js";
50
+ import "../../chunk-YGL6SWKN.js";
51
+ import "../../chunk-4Y5BEXVN.js";
46
52
  import "../../chunk-AQX7DQLI.js";
47
53
  import "../../chunk-B6XJN6EC.js";
48
54
  import "../../chunk-UVKNLJDZ.js";
49
55
  import "../../chunk-MIMJ7LON.js";
50
56
  import "../../chunk-IQEEPHOY.js";
51
- import "../../chunk-JEHDCZQU.js";
52
- import "../../chunk-OHMOP5PV.js";
53
- import "../../chunk-KGLIAFTI.js";
54
57
  import "../../chunk-TSVWEPRP.js";
55
58
  import "../../chunk-J242TTFH.js";
56
59
  import "../../chunk-EAXUQEO5.js";
57
60
  import "../../chunk-CZEGRZBK.js";
58
- import "../../chunk-ALOPZ54P.js";
59
- import "../../chunk-YGL6SWKN.js";
60
- import "../../chunk-4Y5BEXVN.js";
61
61
  import "../../chunk-N552FDTV.js";
62
62
  export {
63
63
  Row
@@ -5,3 +5,4 @@ export { ExpandComp, OnRowClick } from './expand-table/row.cjs';
5
5
  export { ColumnDef, Row, createColumnHelper } from '@tanstack/react-table';
6
6
  import 'react';
7
7
  import 'react-datepicker';
8
+ import '../utils/get-cell-align.cjs';
@@ -5,3 +5,4 @@ export { ExpandComp, OnRowClick } from './expand-table/row.js';
5
5
  export { ColumnDef, Row, createColumnHelper } from '@tanstack/react-table';
6
6
  import 'react';
7
7
  import 'react-datepicker';
8
+ import '../utils/get-cell-align.js';
@@ -2,73 +2,73 @@ import "../chunk-KHHXN3CH.js";
2
2
  import {
3
3
  ExpandTable,
4
4
  createColumnHelper
5
- } from "../chunk-N4GN6CKE.js";
5
+ } from "../chunk-NC6QKYLP.js";
6
6
  import "../chunk-MDBFTLD7.js";
7
7
  import {
8
8
  Navigation
9
- } from "../chunk-RKLEKAON.js";
9
+ } from "../chunk-7A7J457W.js";
10
10
  import {
11
11
  DatePicker
12
- } from "../chunk-Z2PA5PMV.js";
12
+ } from "../chunk-G4FN6FJG.js";
13
13
  import "../chunk-BSTJBBEX.js";
14
14
  import "../chunk-NDUKDKGB.js";
15
15
  import "../chunk-2ANGYYEV.js";
16
+ import "../chunk-JPIZP2PZ.js";
17
+ import "../chunk-HYITAA4J.js";
18
+ import "../chunk-5H3YPCZK.js";
19
+ import "../chunk-FR2GDOU2.js";
16
20
  import "../chunk-74DX4CU7.js";
17
21
  import "../chunk-OYM4XCHQ.js";
18
22
  import "../chunk-YJ7ZFOYL.js";
19
23
  import "../chunk-5ZITU5L7.js";
20
24
  import "../chunk-ILRUXI2E.js";
21
- import "../chunk-JPIZP2PZ.js";
25
+ import "../chunk-YO3BQW6S.js";
26
+ import "../chunk-6IVCARWS.js";
27
+ import "../chunk-6DJOIRMF.js";
22
28
  import "../chunk-FPD73OHW.js";
23
29
  import "../chunk-ZKZDVS7G.js";
24
30
  import "../chunk-MUNMDHRF.js";
25
31
  import "../chunk-TVDKGMBI.js";
26
32
  import "../chunk-3JRNKBMN.js";
27
- import "../chunk-HYITAA4J.js";
28
- import "../chunk-5H3YPCZK.js";
29
- import "../chunk-FR2GDOU2.js";
33
+ import "../chunk-XQOL7UBI.js";
30
34
  import "../chunk-TULWX7D6.js";
31
35
  import "../chunk-XQOZWYUA.js";
32
- import "../chunk-FQYPUIFX.js";
36
+ import "../chunk-HXJPG3ZO.js";
33
37
  import "../chunk-5AVBYDPB.js";
34
38
  import "../chunk-365QMK4D.js";
35
- import "../chunk-YO3BQW6S.js";
36
- import "../chunk-6IVCARWS.js";
37
- import "../chunk-6DJOIRMF.js";
39
+ import "../chunk-4IKPNQV5.js";
40
+ import "../chunk-ACVANQJ4.js";
41
+ import "../chunk-2DZ2Y3JI.js";
42
+ import "../chunk-CNQ7RNNY.js";
43
+ import "../chunk-O3XTRD7R.js";
44
+ import "../chunk-25HMMI7R.js";
38
45
  import "../chunk-2CVXGGI5.js";
39
46
  import "../chunk-EGEQY3KT.js";
40
47
  import "../chunk-HLOY6BIP.js";
41
48
  import "../chunk-O3T3TM3V.js";
42
- import "../chunk-XQOL7UBI.js";
49
+ import "../chunk-JEHDCZQU.js";
50
+ import "../chunk-OHMOP5PV.js";
51
+ import "../chunk-KGLIAFTI.js";
43
52
  import "../chunk-Q37G2GS6.js";
44
53
  import "../chunk-VTJZMOSP.js";
45
54
  import "../chunk-P6B2PNYI.js";
46
- import "../chunk-NBJOYJAF.js";
47
- import "../chunk-BVBX6IJ3.js";
55
+ import "../chunk-ONYSO7Y2.js";
48
56
  import "../chunk-NJ2U2TVS.js";
57
+ import "../chunk-BVBX6IJ3.js";
49
58
  import "../chunk-O3DNDMV3.js";
50
59
  import "../chunk-4WFMOFN2.js";
51
- import "../chunk-4IKPNQV5.js";
52
- import "../chunk-ACVANQJ4.js";
53
- import "../chunk-2DZ2Y3JI.js";
54
- import "../chunk-CHHLIPDN.js";
55
- import "../chunk-25HMMI7R.js";
56
- import "../chunk-O3XTRD7R.js";
60
+ import "../chunk-ALOPZ54P.js";
61
+ import "../chunk-YGL6SWKN.js";
62
+ import "../chunk-4Y5BEXVN.js";
57
63
  import "../chunk-AQX7DQLI.js";
58
64
  import "../chunk-B6XJN6EC.js";
59
65
  import "../chunk-UVKNLJDZ.js";
60
66
  import "../chunk-MIMJ7LON.js";
61
67
  import "../chunk-IQEEPHOY.js";
62
- import "../chunk-JEHDCZQU.js";
63
- import "../chunk-OHMOP5PV.js";
64
- import "../chunk-KGLIAFTI.js";
65
68
  import "../chunk-TSVWEPRP.js";
66
69
  import "../chunk-J242TTFH.js";
67
70
  import "../chunk-EAXUQEO5.js";
68
71
  import "../chunk-CZEGRZBK.js";
69
- import "../chunk-ALOPZ54P.js";
70
- import "../chunk-YGL6SWKN.js";
71
- import "../chunk-4Y5BEXVN.js";
72
72
  import "../chunk-N552FDTV.js";
73
73
  export {
74
74
  DatePicker,
@@ -1,63 +1,63 @@
1
1
  import {
2
2
  Navigation
3
- } from "../chunk-RKLEKAON.js";
3
+ } from "../chunk-7A7J457W.js";
4
4
  import "../chunk-2ANGYYEV.js";
5
+ import "../chunk-JPIZP2PZ.js";
6
+ import "../chunk-HYITAA4J.js";
7
+ import "../chunk-5H3YPCZK.js";
8
+ import "../chunk-FR2GDOU2.js";
5
9
  import "../chunk-74DX4CU7.js";
6
10
  import "../chunk-OYM4XCHQ.js";
7
11
  import "../chunk-YJ7ZFOYL.js";
8
12
  import "../chunk-5ZITU5L7.js";
9
13
  import "../chunk-ILRUXI2E.js";
10
- import "../chunk-JPIZP2PZ.js";
14
+ import "../chunk-YO3BQW6S.js";
15
+ import "../chunk-6IVCARWS.js";
16
+ import "../chunk-6DJOIRMF.js";
11
17
  import "../chunk-FPD73OHW.js";
12
18
  import "../chunk-ZKZDVS7G.js";
13
19
  import "../chunk-MUNMDHRF.js";
14
20
  import "../chunk-TVDKGMBI.js";
15
21
  import "../chunk-3JRNKBMN.js";
16
- import "../chunk-HYITAA4J.js";
17
- import "../chunk-5H3YPCZK.js";
18
- import "../chunk-FR2GDOU2.js";
22
+ import "../chunk-XQOL7UBI.js";
19
23
  import "../chunk-TULWX7D6.js";
20
24
  import "../chunk-XQOZWYUA.js";
21
- import "../chunk-FQYPUIFX.js";
25
+ import "../chunk-HXJPG3ZO.js";
22
26
  import "../chunk-5AVBYDPB.js";
23
27
  import "../chunk-365QMK4D.js";
24
- import "../chunk-YO3BQW6S.js";
25
- import "../chunk-6IVCARWS.js";
26
- import "../chunk-6DJOIRMF.js";
28
+ import "../chunk-4IKPNQV5.js";
29
+ import "../chunk-ACVANQJ4.js";
30
+ import "../chunk-2DZ2Y3JI.js";
31
+ import "../chunk-CNQ7RNNY.js";
32
+ import "../chunk-O3XTRD7R.js";
33
+ import "../chunk-25HMMI7R.js";
27
34
  import "../chunk-2CVXGGI5.js";
28
35
  import "../chunk-EGEQY3KT.js";
29
36
  import "../chunk-HLOY6BIP.js";
30
37
  import "../chunk-O3T3TM3V.js";
31
- import "../chunk-XQOL7UBI.js";
38
+ import "../chunk-JEHDCZQU.js";
39
+ import "../chunk-OHMOP5PV.js";
40
+ import "../chunk-KGLIAFTI.js";
32
41
  import "../chunk-Q37G2GS6.js";
33
42
  import "../chunk-VTJZMOSP.js";
34
43
  import "../chunk-P6B2PNYI.js";
35
- import "../chunk-NBJOYJAF.js";
36
- import "../chunk-BVBX6IJ3.js";
44
+ import "../chunk-ONYSO7Y2.js";
37
45
  import "../chunk-NJ2U2TVS.js";
46
+ import "../chunk-BVBX6IJ3.js";
38
47
  import "../chunk-O3DNDMV3.js";
39
48
  import "../chunk-4WFMOFN2.js";
40
- import "../chunk-4IKPNQV5.js";
41
- import "../chunk-ACVANQJ4.js";
42
- import "../chunk-2DZ2Y3JI.js";
43
- import "../chunk-CHHLIPDN.js";
44
- import "../chunk-25HMMI7R.js";
45
- import "../chunk-O3XTRD7R.js";
49
+ import "../chunk-ALOPZ54P.js";
50
+ import "../chunk-YGL6SWKN.js";
51
+ import "../chunk-4Y5BEXVN.js";
46
52
  import "../chunk-AQX7DQLI.js";
47
53
  import "../chunk-B6XJN6EC.js";
48
54
  import "../chunk-UVKNLJDZ.js";
49
55
  import "../chunk-MIMJ7LON.js";
50
56
  import "../chunk-IQEEPHOY.js";
51
- import "../chunk-JEHDCZQU.js";
52
- import "../chunk-OHMOP5PV.js";
53
- import "../chunk-KGLIAFTI.js";
54
57
  import "../chunk-TSVWEPRP.js";
55
58
  import "../chunk-J242TTFH.js";
56
59
  import "../chunk-EAXUQEO5.js";
57
60
  import "../chunk-CZEGRZBK.js";
58
- import "../chunk-ALOPZ54P.js";
59
- import "../chunk-YGL6SWKN.js";
60
- import "../chunk-4Y5BEXVN.js";
61
61
  import "../chunk-N552FDTV.js";
62
62
  export {
63
63
  Navigation
@@ -0,0 +1,9 @@
1
+ import { ColumnMeta } from '@tanstack/react-table';
2
+
3
+ type CellDataType = 'number' | 'date' | 'time' | 'string' | 'button';
4
+ type CellAlign = NonNullable<ColumnMeta<unknown, unknown>['align']>;
5
+ declare const getCellAlign: (arg: {
6
+ dataType: CellDataType;
7
+ }) => CellAlign;
8
+
9
+ export { type CellAlign, type CellDataType, getCellAlign };
@@ -0,0 +1,9 @@
1
+ import { ColumnMeta } from '@tanstack/react-table';
2
+
3
+ type CellDataType = 'number' | 'date' | 'time' | 'string' | 'button';
4
+ type CellAlign = NonNullable<ColumnMeta<unknown, unknown>['align']>;
5
+ declare const getCellAlign: (arg: {
6
+ dataType: CellDataType;
7
+ }) => CellAlign;
8
+
9
+ export { type CellAlign, type CellDataType, getCellAlign };
@@ -0,0 +1,2 @@
1
+ export { CellAlign, CellDataType, getCellAlign } from './get-cell-align.cjs';
2
+ import '@tanstack/react-table';
@@ -0,0 +1,2 @@
1
+ export { CellAlign, CellDataType, getCellAlign } from './get-cell-align.js';
2
+ import '@tanstack/react-table';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tipp/ui",
3
- "version": "1.0.49",
3
+ "version": "1.0.50",
4
4
  "private": false,
5
5
  "sideEffects": false,
6
6
  "type": "module",
@@ -53,8 +53,8 @@
53
53
  "postcss-nesting": "12.0.2",
54
54
  "tsup": "^8.0.2",
55
55
  "typescript": "^5.3.3",
56
- "@tipp/typescript-config": "0.0.4",
57
- "@tipp/eslint-config": "0.2.3"
56
+ "@tipp/eslint-config": "0.2.3",
57
+ "@tipp/typescript-config": "0.0.4"
58
58
  },
59
59
  "scripts": {
60
60
  "build": "pnpm run build:js & pnpm run build:css",