@tipp/ui 1.4.21 → 1.4.22

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.
@@ -4,7 +4,7 @@ import react__default from 'react';
4
4
 
5
5
  declare const Button: react__default.ForwardRefExoticComponent<Omit<_radix_ui_themes.ButtonProps, "size" | "variant"> & {
6
6
  size?: _radix_ui_themes_dist_esm_props_prop_def_js.Responsive<"small" | "medium" | "large"> | undefined;
7
- variant?: "solid" | "soft" | "surface" | "outline" | "classic" | "ghost" | "transparent" | undefined;
7
+ variant?: "transparent" | "solid" | "soft" | "surface" | "outline" | "classic" | "ghost" | undefined;
8
8
  } & react__default.RefAttributes<HTMLButtonElement>>;
9
9
 
10
10
  export { Button };
@@ -4,7 +4,7 @@ import react__default from 'react';
4
4
 
5
5
  declare const Button: react__default.ForwardRefExoticComponent<Omit<_radix_ui_themes.ButtonProps, "size" | "variant"> & {
6
6
  size?: _radix_ui_themes_dist_esm_props_prop_def_js.Responsive<"small" | "medium" | "large"> | undefined;
7
- variant?: "solid" | "soft" | "surface" | "outline" | "classic" | "ghost" | "transparent" | undefined;
7
+ variant?: "transparent" | "solid" | "soft" | "surface" | "outline" | "classic" | "ghost" | undefined;
8
8
  } & react__default.RefAttributes<HTMLButtonElement>>;
9
9
 
10
10
  export { Button };
@@ -1,8 +1,8 @@
1
1
  import {
2
2
  FieldErrorWrapper
3
- } from "../chunk-QDZS4B6A.js";
4
- import "../chunk-52MVZ6AN.js";
3
+ } from "../chunk-DJN2IEY6.js";
5
4
  import "../chunk-25HMMI7R.js";
5
+ import "../chunk-52MVZ6AN.js";
6
6
  import "../chunk-N552FDTV.js";
7
7
  export {
8
8
  FieldErrorWrapper
@@ -1,7 +1,16 @@
1
1
  import "../chunk-KTVZ4KLX.js";
2
2
  import {
3
3
  Form
4
- } from "../chunk-DWCPI2UN.js";
4
+ } from "../chunk-OHBL3CTQ.js";
5
+ import {
6
+ Switch
7
+ } from "../chunk-OYM4XCHQ.js";
8
+ import {
9
+ TabNav
10
+ } from "../chunk-YJ7ZFOYL.js";
11
+ import {
12
+ Tabs
13
+ } from "../chunk-5ZITU5L7.js";
5
14
  import {
6
15
  TextArea
7
16
  } from "../chunk-TTYPIX4R.js";
@@ -12,6 +21,15 @@ import {
12
21
  ToastContainer,
13
22
  toast
14
23
  } from "../chunk-CYYWMYE7.js";
24
+ import {
25
+ ScrollArea
26
+ } from "../chunk-ZKZDVS7G.js";
27
+ import {
28
+ Section
29
+ } from "../chunk-MUNMDHRF.js";
30
+ import {
31
+ SegmentedControl
32
+ } from "../chunk-TVDKGMBI.js";
15
33
  import {
16
34
  Select
17
35
  } from "../chunk-3JRNKBMN.js";
@@ -28,14 +46,14 @@ import {
28
46
  Strong
29
47
  } from "../chunk-74DX4CU7.js";
30
48
  import {
31
- Switch
32
- } from "../chunk-OYM4XCHQ.js";
49
+ Link
50
+ } from "../chunk-SIM6HKVI.js";
33
51
  import {
34
- TabNav
35
- } from "../chunk-YJ7ZFOYL.js";
52
+ Pagination
53
+ } from "../chunk-FIYBLL2Z.js";
36
54
  import {
37
- Tabs
38
- } from "../chunk-5ZITU5L7.js";
55
+ Popover
56
+ } from "../chunk-5AVBYDPB.js";
39
57
  import {
40
58
  Progress
41
59
  } from "../chunk-365QMK4D.js";
@@ -52,17 +70,17 @@ import {
52
70
  Radio
53
71
  } from "../chunk-FPD73OHW.js";
54
72
  import {
55
- ScrollArea
56
- } from "../chunk-ZKZDVS7G.js";
57
- import {
58
- Section
59
- } from "../chunk-MUNMDHRF.js";
73
+ Grid
74
+ } from "../chunk-EGEQY3KT.js";
60
75
  import {
61
- SegmentedControl
62
- } from "../chunk-TVDKGMBI.js";
76
+ Heading
77
+ } from "../chunk-HK224ADT.js";
63
78
  import {
64
79
  HoverCard
65
80
  } from "../chunk-O3T3TM3V.js";
81
+ import {
82
+ IconButton
83
+ } from "../chunk-O3DNDMV3.js";
66
84
  import {
67
85
  Inset
68
86
  } from "../chunk-XQOL7UBI.js";
@@ -70,17 +88,14 @@ import {
70
88
  Kbd
71
89
  } from "../chunk-TULWX7D6.js";
72
90
  import {
73
- Link
74
- } from "../chunk-SIM6HKVI.js";
75
- import {
76
- Pagination
77
- } from "../chunk-RWJ7HBJY.js";
91
+ Container
92
+ } from "../chunk-Q37G2GS6.js";
78
93
  import {
79
- IconButton
80
- } from "../chunk-O3DNDMV3.js";
94
+ DataList
95
+ } from "../chunk-VTJZMOSP.js";
81
96
  import {
82
- Popover
83
- } from "../chunk-5AVBYDPB.js";
97
+ Dialog
98
+ } from "../chunk-2VD5Y72N.js";
84
99
  import {
85
100
  Content,
86
101
  Drawer,
@@ -101,19 +116,20 @@ import {
101
116
  } from "../chunk-2DZ2Y3JI.js";
102
117
  import {
103
118
  FieldErrorWrapper
104
- } from "../chunk-QDZS4B6A.js";
105
- import {
106
- Typo
107
- } from "../chunk-52MVZ6AN.js";
119
+ } from "../chunk-DJN2IEY6.js";
108
120
  import {
109
121
  Flex
110
122
  } from "../chunk-25HMMI7R.js";
111
123
  import {
112
- Grid
113
- } from "../chunk-EGEQY3KT.js";
124
+ Typo
125
+ } from "../chunk-52MVZ6AN.js";
126
+ import "../chunk-ZD7MNMED.js";
114
127
  import {
115
- Heading
116
- } from "../chunk-HK224ADT.js";
128
+ Callout
129
+ } from "../chunk-B6XJN6EC.js";
130
+ import {
131
+ Card
132
+ } from "../chunk-UVKNLJDZ.js";
117
133
  import {
118
134
  CheckboxCards
119
135
  } from "../chunk-MIMJ7LON.js";
@@ -130,14 +146,14 @@ import {
130
146
  Collapse
131
147
  } from "../chunk-LZJR77Q2.js";
132
148
  import {
133
- Container
134
- } from "../chunk-Q37G2GS6.js";
149
+ AlertDialog
150
+ } from "../chunk-J242TTFH.js";
135
151
  import {
136
- DataList
137
- } from "../chunk-VTJZMOSP.js";
152
+ AspectRatio
153
+ } from "../chunk-EAXUQEO5.js";
138
154
  import {
139
- Dialog
140
- } from "../chunk-2VD5Y72N.js";
155
+ AutoSizingInput
156
+ } from "../chunk-YJCCE5WP.js";
141
157
  import {
142
158
  Avatar
143
159
  } from "../chunk-3SSSCLJ5.js";
@@ -154,23 +170,7 @@ import {
154
170
  Button
155
171
  } from "../chunk-U7JPP7WJ.js";
156
172
  import "../chunk-LQY4RKWI.js";
157
- import "../chunk-ZD7MNMED.js";
158
- import {
159
- Callout
160
- } from "../chunk-B6XJN6EC.js";
161
- import {
162
- Card
163
- } from "../chunk-UVKNLJDZ.js";
164
173
  import "../chunk-F77ES5Y3.js";
165
- import {
166
- AlertDialog
167
- } from "../chunk-J242TTFH.js";
168
- import {
169
- AspectRatio
170
- } from "../chunk-EAXUQEO5.js";
171
- import {
172
- AutoSizingInput
173
- } from "../chunk-YJCCE5WP.js";
174
174
  import "../chunk-N552FDTV.js";
175
175
  export {
176
176
  AlertDialog,
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  Pagination
3
- } from "../chunk-RWJ7HBJY.js";
3
+ } from "../chunk-FIYBLL2Z.js";
4
4
  import "../chunk-O3DNDMV3.js";
5
- import "../chunk-52MVZ6AN.js";
6
5
  import "../chunk-25HMMI7R.js";
6
+ import "../chunk-52MVZ6AN.js";
7
7
  import "../chunk-F77ES5Y3.js";
8
8
  import "../chunk-N552FDTV.js";
9
9
  export {
@@ -0,0 +1,192 @@
1
+ import {
2
+ Row
3
+ } from "./chunk-PCWEW2UL.js";
4
+ import {
5
+ TriangleArrowUpIcon
6
+ } from "./chunk-NDUKDKGB.js";
7
+ import {
8
+ TriangleArrowDownIcon
9
+ } from "./chunk-BSTJBBEX.js";
10
+ import {
11
+ Spinner
12
+ } from "./chunk-FR2GDOU2.js";
13
+ import {
14
+ Pagination
15
+ } from "./chunk-RWJ7HBJY.js";
16
+ import {
17
+ Typo
18
+ } from "./chunk-52MVZ6AN.js";
19
+ import {
20
+ Flex
21
+ } from "./chunk-25HMMI7R.js";
22
+
23
+ // src/molecules/expand-table/index.tsx
24
+ import {
25
+ flexRender,
26
+ getCoreRowModel,
27
+ useReactTable,
28
+ getSortedRowModel,
29
+ createColumnHelper,
30
+ getPaginationRowModel
31
+ } from "@tanstack/react-table";
32
+ import { useCallback, useMemo, useState } from "react";
33
+ import { jsx, jsxs } from "react/jsx-runtime";
34
+ function ExpandTable(props) {
35
+ const {
36
+ data,
37
+ columns,
38
+ ExpandComp,
39
+ placeholder,
40
+ onRowClick,
41
+ tableStyle,
42
+ showPagination,
43
+ isLoading,
44
+ pageIndex = 0,
45
+ pageSize = 10,
46
+ siblingCount = 2,
47
+ getRowStyle,
48
+ getCellStyle
49
+ } = props;
50
+ const defaultAlign = "left";
51
+ const [pagination, setPagination] = useState({
52
+ pageIndex: pageIndex || 0,
53
+ pageSize: pageSize || 9999
54
+ });
55
+ const [sorting, setSorting] = useState([]);
56
+ const { getRowModel, getHeaderGroups, setPageIndex } = useReactTable({
57
+ data: data || [],
58
+ columns,
59
+ getCoreRowModel: getCoreRowModel(),
60
+ getSortedRowModel: getSortedRowModel(),
61
+ state: {
62
+ sorting,
63
+ pagination
64
+ },
65
+ onSortingChange: setSorting,
66
+ getPaginationRowModel: getPaginationRowModel(),
67
+ onPaginationChange: setPagination
68
+ });
69
+ const gridTemplateColumns = useMemo(() => {
70
+ return columns.map((col) => {
71
+ var _a;
72
+ if ((_a = col.meta) == null ? void 0 : _a.autoSize)
73
+ return "1fr";
74
+ return `${col.size || 150}px`;
75
+ }).join(" ");
76
+ }, [columns]);
77
+ const rowModels = getRowModel();
78
+ const onChangePagination = useCallback(
79
+ (page) => {
80
+ setPageIndex(page - 1);
81
+ },
82
+ [setPageIndex]
83
+ );
84
+ const helpCompRender = useCallback(
85
+ (rowLength) => {
86
+ if (isLoading) {
87
+ return /* @__PURE__ */ jsx(
88
+ Flex,
89
+ {
90
+ align: "center",
91
+ height: "100%",
92
+ justify: "center",
93
+ p: "5",
94
+ width: "100%",
95
+ children: /* @__PURE__ */ jsx(Spinner, {})
96
+ }
97
+ );
98
+ }
99
+ if (rowLength === 0) {
100
+ return /* @__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");
101
+ }
102
+ return null;
103
+ },
104
+ [isLoading, placeholder]
105
+ );
106
+ const pageCount = useMemo(() => {
107
+ if (!data)
108
+ return 0;
109
+ return Math.ceil(data.length / pageSize);
110
+ }, [data, pageSize]);
111
+ return /* @__PURE__ */ jsxs("div", { className: "expand-table", style: tableStyle, children: [
112
+ /* @__PURE__ */ jsx("div", { className: "thead", children: getHeaderGroups().map((headerGroup) => /* @__PURE__ */ jsx(
113
+ "div",
114
+ {
115
+ className: "tr",
116
+ style: { gridTemplateColumns },
117
+ children: headerGroup.headers.map((header) => {
118
+ var _a;
119
+ const sortable = header.column.getCanSort();
120
+ const sortedState = header.column.getIsSorted();
121
+ const justifyContent = ((_a = header.column.columnDef.meta) == null ? void 0 : _a.align) || defaultAlign;
122
+ return /* @__PURE__ */ jsx("div", { className: `${justifyContent} th`, children: /* @__PURE__ */ jsxs(
123
+ "button",
124
+ {
125
+ onClick: header.column.getToggleSortingHandler(),
126
+ style: sortable ? { cursor: "pointer" } : { cursor: "default" },
127
+ type: "button",
128
+ children: [
129
+ /* @__PURE__ */ jsx(Typo, { as: "div", variant: "body", children: flexRender(
130
+ header.column.columnDef.header,
131
+ header.getContext()
132
+ ) }),
133
+ sortable ? /* @__PURE__ */ jsxs(
134
+ Flex,
135
+ {
136
+ direction: "column",
137
+ style: { marginLeft: "var(--space-2)" },
138
+ children: [
139
+ /* @__PURE__ */ jsx(
140
+ TriangleArrowUpIcon,
141
+ {
142
+ color: sortedState === "asc" ? "var(--iris-10)" : "var(--iris-6)"
143
+ }
144
+ ),
145
+ /* @__PURE__ */ jsx(
146
+ TriangleArrowDownIcon,
147
+ {
148
+ color: sortedState === "desc" ? "var(--iris-10)" : "var(--iris-6)"
149
+ }
150
+ )
151
+ ]
152
+ }
153
+ ) : null
154
+ ]
155
+ }
156
+ ) }, header.id);
157
+ })
158
+ },
159
+ headerGroup.id
160
+ )) }),
161
+ /* @__PURE__ */ jsx("div", { className: "tbody", children: helpCompRender(rowModels.rows.length) || rowModels.rows.map((row) => {
162
+ return /* @__PURE__ */ jsx(
163
+ Row,
164
+ {
165
+ ExpandComp,
166
+ defaultAlign,
167
+ getCellStyle,
168
+ getRowStyle,
169
+ gridTemplateColumns,
170
+ onRowClick,
171
+ row
172
+ },
173
+ `row_${row.id}`
174
+ );
175
+ }) }),
176
+ showPagination ? /* @__PURE__ */ jsx(Flex, { justify: "end", pt: "3", width: "100%", children: /* @__PURE__ */ jsx(
177
+ Pagination,
178
+ {
179
+ count: pageCount,
180
+ onChange: onChangePagination,
181
+ page: pagination.pageIndex + 1,
182
+ siblingCount
183
+ }
184
+ ) }) : null
185
+ ] });
186
+ }
187
+
188
+ export {
189
+ createColumnHelper,
190
+ ExpandTable
191
+ };
192
+ //# sourceMappingURL=chunk-23P5I2JR.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 PaginationState,\n} from '@tanstack/react-table';\nimport type { CSSProperties } from 'react';\nimport {\n flexRender,\n getCoreRowModel,\n useReactTable,\n getSortedRowModel,\n createColumnHelper,\n getPaginationRowModel,\n} from '@tanstack/react-table';\nimport React, { useCallback, useMemo, useState } from 'react';\nimport { Flex, Pagination, Spinner, 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 getRowStyle?: (data: Datum) => CSSProperties;\n getCellStyle?: (data: Datum) => CSSProperties;\n tableStyle?: CSSProperties;\n isLoading?: boolean;\n\n /** pagination - 표시 유무 */\n showPagination?: boolean;\n /** pagination - 현재 선택된 페이지, 0부터 시작 */\n pageIndex?: number;\n /** pagination - 한 페이지에 표시될 컬럼 개수 */\n pageSize?: number;\n /** pagination - */\n siblingCount?: number;\n}\n\nexport function ExpandTable<Datum extends RowData>(\n props: ExpandTableProps<Datum>\n): React.ReactNode {\n const {\n data,\n columns,\n ExpandComp,\n placeholder,\n onRowClick,\n tableStyle,\n showPagination,\n isLoading,\n pageIndex = 0,\n pageSize = 10,\n siblingCount = 2,\n getRowStyle,\n getCellStyle,\n } = props;\n const defaultAlign = 'left';\n const [pagination, setPagination] = useState<PaginationState>({\n pageIndex: pageIndex || 0,\n pageSize: pageSize || 9999,\n });\n\n const [sorting, setSorting] = useState<SortingState>([]);\n const { getRowModel, getHeaderGroups, setPageIndex } = useReactTable({\n data: data || [],\n columns,\n getCoreRowModel: getCoreRowModel(),\n getSortedRowModel: getSortedRowModel(),\n state: {\n sorting,\n pagination,\n },\n onSortingChange: setSorting,\n getPaginationRowModel: getPaginationRowModel(),\n onPaginationChange: setPagination,\n });\n\n const gridTemplateColumns = 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 const onChangePagination = useCallback(\n (page: number) => {\n setPageIndex(page - 1);\n },\n [setPageIndex]\n );\n\n const helpCompRender = useCallback(\n (rowLength: number) => {\n if (isLoading) {\n return (\n <Flex\n align=\"center\"\n height=\"100%\"\n justify=\"center\"\n p=\"5\"\n width=\"100%\"\n >\n <Spinner />\n </Flex>\n );\n }\n if (rowLength === 0) {\n return (\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 return null;\n },\n [isLoading, placeholder]\n );\n\n const pageCount = useMemo(() => {\n if (!data) return 0;\n return Math.ceil(data.length / pageSize);\n }, [data, pageSize]);\n\n return (\n <div className=\"expand-table\" style={tableStyle}>\n <div className=\"thead\">\n {getHeaderGroups().map((headerGroup) => (\n <div\n className=\"tr\"\n key={headerGroup.id}\n style={{ gridTemplateColumns }}\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={\n sortable ? { cursor: 'pointer' } : { cursor: 'default' }\n }\n type=\"button\"\n >\n <Typo as=\"div\" 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 {/* 조건에 따라 placeholder 또는 loading 렌더*/}\n {helpCompRender(rowModels.rows.length) ||\n rowModels.rows.map((row) => {\n return (\n <Row\n ExpandComp={ExpandComp}\n defaultAlign={defaultAlign}\n getCellStyle={getCellStyle}\n getRowStyle={getRowStyle}\n gridTemplateColumns={gridTemplateColumns}\n key={`row_${row.id}`}\n onRowClick={onRowClick}\n row={row}\n />\n );\n })}\n </div>\n\n {showPagination ? (\n <Flex justify=\"end\" pt=\"3\" width=\"100%\">\n <Pagination\n count={pageCount}\n onChange={onChangePagination}\n page={pagination.pageIndex + 1}\n siblingCount={siblingCount}\n />\n </Flex>\n ) : null}\n </div>\n );\n}\n"],"mappings":"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","names":[]}