@tipp/ui 1.4.6 → 1.4.8

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.
Files changed (43) hide show
  1. package/dist/atoms/field-error-wrapper.js +2 -2
  2. package/dist/atoms/index.js +33 -33
  3. package/dist/atoms/pagination.js +2 -2
  4. package/dist/chunk-3CUUEWNJ.js +97 -0
  5. package/dist/chunk-3CUUEWNJ.js.map +1 -0
  6. package/dist/chunk-4GIK4KLW.js +190 -0
  7. package/dist/chunk-4GIK4KLW.js.map +1 -0
  8. package/dist/chunk-6E3RZKWT.js +340 -0
  9. package/dist/chunk-6E3RZKWT.js.map +1 -0
  10. package/dist/chunk-PCWEW2UL.js +80 -0
  11. package/dist/chunk-PCWEW2UL.js.map +1 -0
  12. package/dist/chunk-QAG24J3T.js +128 -0
  13. package/dist/chunk-QAG24J3T.js.map +1 -0
  14. package/dist/chunk-T5CA7NEI.js +164 -0
  15. package/dist/chunk-T5CA7NEI.js.map +1 -0
  16. package/dist/chunk-VR6Y66LP.js +190 -0
  17. package/dist/chunk-VR6Y66LP.js.map +1 -0
  18. package/dist/chunk-ZQLHJD5Q.js +192 -0
  19. package/dist/chunk-ZQLHJD5Q.js.map +1 -0
  20. package/dist/index.cjs +11 -9
  21. package/dist/index.cjs.map +1 -1
  22. package/dist/index.js +66 -66
  23. package/dist/molecules/date-picker/index.js +2 -2
  24. package/dist/molecules/expand-table/index.cjs +11 -9
  25. package/dist/molecules/expand-table/index.cjs.map +1 -1
  26. package/dist/molecules/expand-table/index.d.cts +1 -0
  27. package/dist/molecules/expand-table/index.d.ts +1 -0
  28. package/dist/molecules/expand-table/index.js +19 -19
  29. package/dist/molecules/expand-table/row.cjs +4 -4
  30. package/dist/molecules/expand-table/row.cjs.map +1 -1
  31. package/dist/molecules/expand-table/row.d.cts +2 -1
  32. package/dist/molecules/expand-table/row.d.ts +2 -1
  33. package/dist/molecules/expand-table/row.js +16 -16
  34. package/dist/molecules/index.cjs +11 -9
  35. package/dist/molecules/index.cjs.map +1 -1
  36. package/dist/molecules/index.js +26 -26
  37. package/dist/molecules/learning-post.js +4 -4
  38. package/dist/molecules/navigation.js +16 -16
  39. package/dist/molecules/stepper.js +3 -3
  40. package/dist/molecules/tag-selector.js +16 -16
  41. package/package.json +1 -1
  42. package/src/molecules/expand-table/index.tsx +7 -4
  43. package/src/molecules/expand-table/row.tsx +6 -3
package/dist/index.js CHANGED
@@ -15,33 +15,48 @@ import {
15
15
  useThemeContext
16
16
  } from "./chunk-MMGP4GEQ.js";
17
17
  import "./chunk-6ZAP2Q6K.js";
18
- import {
19
- TagSelector
20
- } from "./chunk-MKYNSWMI.js";
21
18
  import {
22
19
  DatePicker
23
- } from "./chunk-4AACT3BJ.js";
20
+ } from "./chunk-C3YMRWG2.js";
24
21
  import {
25
22
  ExpandTable,
26
23
  createColumnHelper
27
- } from "./chunk-CNDTBMHW.js";
28
- import "./chunk-SOMDO7V4.js";
24
+ } from "./chunk-ZQLHJD5Q.js";
25
+ import "./chunk-PCWEW2UL.js";
29
26
  import {
30
27
  DotNavigation
31
28
  } from "./chunk-EDTEVEJW.js";
32
29
  import {
33
30
  LearningPost
34
- } from "./chunk-GTRSAGDQ.js";
31
+ } from "./chunk-XGPMAJED.js";
35
32
  import {
36
33
  ThemeProvider
37
34
  } from "./chunk-BVNXAZ4W.js";
38
35
  import {
39
36
  Navigation
40
- } from "./chunk-PPO64OK7.js";
37
+ } from "./chunk-VSGK4POC.js";
41
38
  import {
42
39
  Stepper
43
- } from "./chunk-PF5CPG6R.js";
40
+ } from "./chunk-Y3L7BYDF.js";
41
+ import {
42
+ TagSelector
43
+ } from "./chunk-P7633BEQ.js";
44
+ import "./chunk-PSINRHYW.js";
45
+ import {
46
+ EchartDefaultProps
47
+ } from "./chunk-2QFSCWES.js";
48
+ import {
49
+ HorizontalBarChart
50
+ } from "./chunk-SGMO4KBC.js";
51
+ import "./chunk-BSTJBBEX.js";
52
+ import "./chunk-NDUKDKGB.js";
44
53
  import "./chunk-76JGDATZ.js";
54
+ import {
55
+ Spinner
56
+ } from "./chunk-FR2GDOU2.js";
57
+ import {
58
+ Strong
59
+ } from "./chunk-74DX4CU7.js";
45
60
  import {
46
61
  Switch
47
62
  } from "./chunk-OYM4XCHQ.js";
@@ -61,6 +76,12 @@ import {
61
76
  ToastContainer,
62
77
  toast
63
78
  } from "./chunk-CYYWMYE7.js";
79
+ import {
80
+ RadioGroup
81
+ } from "./chunk-6DJOIRMF.js";
82
+ import {
83
+ Radio
84
+ } from "./chunk-FPD73OHW.js";
64
85
  import {
65
86
  ScrollArea
66
87
  } from "./chunk-ZKZDVS7G.js";
@@ -80,17 +101,17 @@ import {
80
101
  Skeleton
81
102
  } from "./chunk-5H3YPCZK.js";
82
103
  import {
83
- Spinner
84
- } from "./chunk-FR2GDOU2.js";
104
+ Inset
105
+ } from "./chunk-XQOL7UBI.js";
85
106
  import {
86
- Strong
87
- } from "./chunk-74DX4CU7.js";
107
+ Kbd
108
+ } from "./chunk-TULWX7D6.js";
88
109
  import {
89
110
  Link
90
111
  } from "./chunk-SIM6HKVI.js";
91
112
  import {
92
113
  Pagination
93
- } from "./chunk-IM7DSIK2.js";
114
+ } from "./chunk-5X3BCQPR.js";
94
115
  import {
95
116
  Popover
96
117
  } from "./chunk-5AVBYDPB.js";
@@ -104,11 +125,11 @@ import {
104
125
  RadioCards
105
126
  } from "./chunk-6IVCARWS.js";
106
127
  import {
107
- RadioGroup
108
- } from "./chunk-6DJOIRMF.js";
128
+ FieldErrorWrapper
129
+ } from "./chunk-DJN2IEY6.js";
109
130
  import {
110
- Radio
111
- } from "./chunk-FPD73OHW.js";
131
+ Flex
132
+ } from "./chunk-25HMMI7R.js";
112
133
  import {
113
134
  Form
114
135
  } from "./chunk-2CVXGGI5.js";
@@ -125,11 +146,11 @@ import {
125
146
  IconButton
126
147
  } from "./chunk-O3DNDMV3.js";
127
148
  import {
128
- Inset
129
- } from "./chunk-XQOL7UBI.js";
149
+ Collapse
150
+ } from "./chunk-LZJR77Q2.js";
130
151
  import {
131
- Kbd
132
- } from "./chunk-TULWX7D6.js";
152
+ Container
153
+ } from "./chunk-Q37G2GS6.js";
133
154
  import {
134
155
  DataList
135
156
  } from "./chunk-VTJZMOSP.js";
@@ -151,18 +172,18 @@ import {
151
172
  import {
152
173
  Tooltip
153
174
  } from "./chunk-ACVANQJ4.js";
175
+ import {
176
+ Typo
177
+ } from "./chunk-52MVZ6AN.js";
154
178
  import {
155
179
  Em
156
180
  } from "./chunk-2DZ2Y3JI.js";
157
181
  import {
158
- FieldErrorWrapper
159
- } from "./chunk-QDZS4B6A.js";
160
- import {
161
- Typo
162
- } from "./chunk-52MVZ6AN.js";
182
+ Box
183
+ } from "./chunk-4Y5BEXVN.js";
163
184
  import {
164
- Flex
165
- } from "./chunk-25HMMI7R.js";
185
+ Button
186
+ } from "./chunk-P3YCIJUP.js";
166
187
  import {
167
188
  Callout
168
189
  } from "./chunk-B6XJN6EC.js";
@@ -181,36 +202,6 @@ import {
181
202
  import {
182
203
  Code
183
204
  } from "./chunk-OHMOP5PV.js";
184
- import {
185
- Collapse
186
- } from "./chunk-LZJR77Q2.js";
187
- import {
188
- Container
189
- } from "./chunk-Q37G2GS6.js";
190
- import {
191
- AlertDialog
192
- } from "./chunk-J242TTFH.js";
193
- import {
194
- AspectRatio
195
- } from "./chunk-EAXUQEO5.js";
196
- import {
197
- AutoSizingInput
198
- } from "./chunk-YJCCE5WP.js";
199
- import {
200
- Avatar
201
- } from "./chunk-3SSSCLJ5.js";
202
- import {
203
- Badge
204
- } from "./chunk-EWD4AO5N.js";
205
- import {
206
- Blockquote
207
- } from "./chunk-YGL6SWKN.js";
208
- import {
209
- Box
210
- } from "./chunk-4Y5BEXVN.js";
211
- import {
212
- Button
213
- } from "./chunk-P3YCIJUP.js";
214
205
  import {
215
206
  ArchiveIcon,
216
207
  BackpackIcon,
@@ -247,15 +238,24 @@ import {
247
238
  Share1Icon,
248
239
  TrashIcon
249
240
  } from "./chunk-66C4U3BG.js";
250
- import "./chunk-PSINRHYW.js";
251
241
  import {
252
- EchartDefaultProps
253
- } from "./chunk-2QFSCWES.js";
242
+ AlertDialog
243
+ } from "./chunk-J242TTFH.js";
254
244
  import {
255
- HorizontalBarChart
256
- } from "./chunk-SGMO4KBC.js";
257
- import "./chunk-BSTJBBEX.js";
258
- import "./chunk-NDUKDKGB.js";
245
+ AspectRatio
246
+ } from "./chunk-EAXUQEO5.js";
247
+ import {
248
+ AutoSizingInput
249
+ } from "./chunk-YJCCE5WP.js";
250
+ import {
251
+ Avatar
252
+ } from "./chunk-3SSSCLJ5.js";
253
+ import {
254
+ Badge
255
+ } from "./chunk-EWD4AO5N.js";
256
+ import {
257
+ Blockquote
258
+ } from "./chunk-YGL6SWKN.js";
259
259
  import "./chunk-N552FDTV.js";
260
260
  export {
261
261
  AlertDialog,
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  DatePicker
3
- } from "../../chunk-4AACT3BJ.js";
3
+ } from "../../chunk-C3YMRWG2.js";
4
+ import "../../chunk-25HMMI7R.js";
4
5
  import "../../chunk-HK224ADT.js";
5
6
  import "../../chunk-O3DNDMV3.js";
6
- import "../../chunk-25HMMI7R.js";
7
7
  import "../../chunk-66C4U3BG.js";
8
8
  import "../../chunk-N552FDTV.js";
9
9
  export {
@@ -294,7 +294,7 @@ var import_react_table = require("@tanstack/react-table");
294
294
  var import_react4 = require("react");
295
295
  var import_jsx_runtime6 = require("react/jsx-runtime");
296
296
  function Row(props) {
297
- const { row, ExpandComp, gridColTemp, getRowStyle } = props;
297
+ const { row, ExpandComp, gridTemplateColumns, getRowStyle, getCellStyle } = props;
298
298
  const [open, setOpen] = (0, import_react4.useState)(false);
299
299
  const onClickRow = (0, import_react4.useCallback)(() => {
300
300
  var _a;
@@ -318,7 +318,7 @@ function Row(props) {
318
318
  className: "tr",
319
319
  onClick: onClickRow,
320
320
  style: __spreadValues({
321
- gridTemplateColumns: gridColTemp
321
+ gridTemplateColumns
322
322
  }, (getRowStyle == null ? void 0 : getRowStyle(row.original)) || {}),
323
323
  type: "button",
324
324
  children: row.getVisibleCells().map((cell) => {
@@ -329,11 +329,11 @@ function Row(props) {
329
329
  "div",
330
330
  {
331
331
  className: "td",
332
- style: {
332
+ style: __spreadValues({
333
333
  // width: autoSize ? undefined : cell.column.getSize(),
334
334
  flexGrow: autoSize ? 1 : void 0,
335
335
  justifyContent
336
- },
336
+ }, (getCellStyle == null ? void 0 : getCellStyle(row.original)) || {}),
337
337
  children: [
338
338
  (0, import_react_table.flexRender)(cell.column.columnDef.cell, cell.getContext()),
339
339
  ((_c = cell.column.columnDef.meta) == null ? void 0 : _c.OpenBtn) ? /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
@@ -371,7 +371,8 @@ function ExpandTable(props) {
371
371
  pageIndex = 0,
372
372
  pageSize = 10,
373
373
  siblingCount = 2,
374
- getRowStyle
374
+ getRowStyle,
375
+ getCellStyle
375
376
  } = props;
376
377
  const defaultAlign = "left";
377
378
  const [pagination, setPagination] = (0, import_react5.useState)({
@@ -392,7 +393,7 @@ function ExpandTable(props) {
392
393
  getPaginationRowModel: (0, import_react_table2.getPaginationRowModel)(),
393
394
  onPaginationChange: setPagination
394
395
  });
395
- const gridColTemp = (0, import_react5.useMemo)(() => {
396
+ const gridTemplateColumns = (0, import_react5.useMemo)(() => {
396
397
  return columns.map((col) => {
397
398
  var _a;
398
399
  if ((_a = col.meta) == null ? void 0 : _a.autoSize)
@@ -439,7 +440,7 @@ function ExpandTable(props) {
439
440
  "div",
440
441
  {
441
442
  className: "tr",
442
- style: { gridTemplateColumns: gridColTemp },
443
+ style: { gridTemplateColumns },
443
444
  children: headerGroup.headers.map((header) => {
444
445
  var _a;
445
446
  const sortable = header.column.getCanSort();
@@ -452,7 +453,7 @@ function ExpandTable(props) {
452
453
  style: sortable ? { cursor: "pointer" } : { cursor: "default" },
453
454
  type: "button",
454
455
  children: [
455
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(Typo, { variant: "body", children: (0, import_react_table2.flexRender)(
456
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(Typo, { as: "div", variant: "body", children: (0, import_react_table2.flexRender)(
456
457
  header.column.columnDef.header,
457
458
  header.getContext()
458
459
  ) }),
@@ -490,8 +491,9 @@ function ExpandTable(props) {
490
491
  {
491
492
  ExpandComp,
492
493
  defaultAlign,
494
+ getCellStyle,
493
495
  getRowStyle,
494
- gridColTemp,
496
+ gridTemplateColumns,
495
497
  onRowClick,
496
498
  row
497
499
  },
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/molecules/expand-table/index.tsx","../../../src/atoms/flex.tsx","../../../src/atoms/icon-button.tsx","../../../src/atoms/typo.tsx","../../../src/atoms/collapse.tsx","../../../src/atoms/spinner.tsx","../../../src/atoms/pagination.tsx","../../../src/icon.ts","../../../src/icons/down.tsx","../../../src/icons/up.tsx","../../../src/molecules/expand-table/row.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 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 } = 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 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 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: 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={\n sortable ? { cursor: 'pointer' } : { cursor: 'default' }\n }\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 {/* 조건에 따라 placeholder 또는 loading 렌더*/}\n {helpCompRender(rowModels.rows.length) ||\n rowModels.rows.map((row) => {\n return (\n <Row\n ExpandComp={ExpandComp}\n defaultAlign={defaultAlign}\n getRowStyle={getRowStyle}\n gridColTemp={gridColTemp}\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","export { Flex, type FlexProps } from '@radix-ui/themes';\n","export { IconButton, type IconButtonProps } from '@radix-ui/themes';\n","import type { TextProps as RadixTextProps } from '@radix-ui/themes';\nimport { Text as RadixText } from '@radix-ui/themes';\nimport React, { useMemo, forwardRef } from 'react';\n\nexport type TypoProps = RadixTextProps & {\n variant?: 'body' | 'caption' | 'subtitle';\n};\n\nexport const Typo = forwardRef<HTMLSpanElement, TypoProps>(\n (props: TypoProps, ref): React.ReactElement => {\n const { size, variant, children, ...rest } = props;\n\n const radixSize = useMemo<RadixTextProps['size']>(() => {\n if (size !== undefined) return size;\n switch (variant) {\n case 'caption':\n return '1';\n case 'subtitle':\n return '3';\n case 'body':\n default:\n return '2';\n }\n }, [size, variant]);\n\n return (\n <RadixText {...rest} ref={ref} size={radixSize}>\n {children}\n </RadixText>\n );\n }\n);\n\nTypo.displayName = 'Typo';\n","import React, { useEffect, useRef, useState } from 'react';\n\nexport interface CollapseProps {\n children: React.ReactNode;\n open?: boolean;\n defaultOpen?: boolean;\n /** 닫힘 상태일 때 높이 값이 필요할 시 사용 */\n closedHeight?: string;\n}\n\nexport function Collapse(props: CollapseProps): React.ReactNode {\n const { children, closedHeight = '0' } = props;\n const [open, setOpen] = useState(() => {\n return props.open || props.defaultOpen || false;\n });\n\n useEffect(() => {\n if (props.open === undefined) return;\n setOpen(props.open);\n }, [props.open]);\n\n const ref = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n if (!ref.current) return;\n ref.current.style.maxHeight = open\n ? `${ref.current.scrollHeight}px`\n : closedHeight;\n }, [closedHeight, open]);\n\n return (\n <div className=\"tipp-collapse\" ref={ref}>\n {children}\n </div>\n );\n}\n","export { Spinner, type SpinnerProps } from '@radix-ui/themes';\n","import React, { useCallback, useEffect, useMemo, useState } from 'react';\nimport {\n ChevronLeftIcon,\n ChevronRightIcon,\n DoubleArrowLeftIcon,\n DoubleArrowRightIcon,\n} from '../icon';\nimport type { IconButtonProps } from './icon-button';\nimport { IconButton } from './icon-button';\nimport { Flex } from './flex';\nimport { Typo } from './typo';\n\nexport interface PaginationProps {\n /** 현재 선택된 페이지, 1부터 시작 */\n page?: number;\n /** 기본 선택 페이지, page보다 낮은 우선 순위를 갖는다 */\n defaultPage?: number;\n /** 선택한 페이지 변경 이벤트 cb */\n onChange?: (page: number) => void;\n /** 전체 페이지의 수 */\n count?: number;\n /** 표시할 페이지 버튼의 개수 */\n siblingCount?: number;\n}\n\nexport function Pagination(props: PaginationProps): React.ReactNode {\n const { onChange, count = 0, siblingCount = 2 } = props;\n\n const [page, setPage] = useState(() => props.page || props.defaultPage || 1);\n\n const visibleItems = useMemo(() => {\n let start = Math.max(1, page - siblingCount);\n let end = Math.min(count, page + siblingCount);\n if (page - siblingCount <= 0 && end < count) {\n end = Math.min(count, end + Math.abs(page - siblingCount) + 1);\n } else if (page + siblingCount > count && start > 1) {\n start = Math.max(1, start - (page + siblingCount - count));\n }\n\n return Array.from({ length: end - start + 1 }, (_, i) => i + start);\n }, [count, page, siblingCount]);\n\n useEffect(() => {\n onChange?.(page);\n }, [onChange, page]);\n\n useEffect(() => {\n if (props.page) {\n setPage(props.page);\n }\n }, [props.page]);\n\n const prev = useMemo<number | undefined>(() => {\n const p = page - 1;\n return p < 1 ? undefined : p;\n }, [page]);\n\n const next = useMemo<number | undefined>(() => {\n const n = page + 1;\n return n > count ? undefined : n;\n }, [count, page]);\n\n const onClickPrev = useCallback(() => {\n prev && setPage(prev);\n }, [prev]);\n\n const onClickNext = useCallback(() => {\n next && setPage(next);\n }, [next]);\n\n const doublePrev = useMemo<number | undefined>(() => {\n if (!visibleItems.length) return;\n return Math.max(0, visibleItems[0] - 1);\n }, [visibleItems]);\n\n const onClickDoublePrev = useCallback(() => {\n doublePrev && setPage(doublePrev);\n }, [doublePrev]);\n\n const doubleNext = useMemo<number | undefined>(() => {\n if (!visibleItems.length) return;\n const n = visibleItems[visibleItems.length - 1] + 1;\n if (n > count) return;\n return Math.min(count, n);\n }, [count, visibleItems]);\n\n const onClickDoubleNext = useCallback(() => {\n doubleNext && setPage(doubleNext);\n }, [doubleNext]);\n\n const iconSize = {\n height: 24,\n width: 24,\n };\n\n const moveButtonProps: IconButtonProps = {\n variant: 'ghost',\n size: '3',\n style: { borderRadius: '50%' },\n };\n\n return (\n <Flex align=\"center\" className=\"tipp-pagination\" gap=\"4\">\n <IconButton\n disabled={!doublePrev}\n onClick={onClickDoublePrev}\n {...moveButtonProps}\n >\n <DoubleArrowLeftIcon {...iconSize} />\n </IconButton>\n <IconButton disabled={!prev} onClick={onClickPrev} {...moveButtonProps}>\n <ChevronLeftIcon {...iconSize} />\n </IconButton>\n <Flex gap=\"1\">\n {visibleItems.map((item) => {\n return (\n <button\n className={`page-button ${item === page ? 'active' : ''}`}\n key={item}\n onClick={() => {\n setPage(item);\n }}\n type=\"button\"\n >\n <Typo variant=\"body\">{item}</Typo>\n </button>\n );\n })}\n </Flex>\n <IconButton disabled={!next} onClick={onClickNext} {...moveButtonProps}>\n <ChevronRightIcon {...iconSize} />\n </IconButton>\n <IconButton\n disabled={!doubleNext}\n onClick={onClickDoubleNext}\n {...moveButtonProps}\n >\n <DoubleArrowRightIcon {...iconSize} />\n </IconButton>\n </Flex>\n );\n}\n","export {\n BookmarkIcon,\n ExitIcon,\n InfoCircledIcon,\n ExclamationTriangleIcon,\n MagnifyingGlassIcon,\n DotsHorizontalIcon,\n ChatBubbleIcon,\n PlusIcon,\n BookmarkFilledIcon,\n MixerHorizontalIcon,\n ChevronLeftIcon,\n ChevronRightIcon,\n ClipboardIcon,\n BarChartIcon,\n PersonIcon,\n GearIcon,\n DotsVerticalIcon,\n Pencil1Icon,\n Cross1Icon,\n Link2Icon,\n ChevronUpIcon,\n ChevronDownIcon,\n FileIcon,\n TrashIcon,\n DoubleArrowLeftIcon,\n DoubleArrowRightIcon,\n GlobeIcon,\n BackpackIcon,\n CalendarIcon,\n CheckIcon,\n ArchiveIcon,\n RowsIcon,\n Share1Icon,\n ClipboardCopyIcon,\n} from '@radix-ui/react-icons';\n","import * as React from 'react';\nimport type { IconProps } from './types';\n\nexport const TriangleArrowDownIcon = React.forwardRef<SVGSVGElement, IconProps>(\n ({ color = 'currentColor', ...props }, forwardedRef) => {\n return (\n <svg\n fill=\"none\"\n height=\"7\"\n viewBox=\"0 0 8 7\"\n width=\"8\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}\n ref={forwardedRef}\n >\n <path\n d=\"M7.10844 0.8125H0.891554C0.197392 0.8125 -0.177096 1.62672 0.274659 2.15377L3.3831 5.78029C3.70737 6.1586 4.29263 6.1586 4.6169 5.78029L7.72534 2.15377C8.1771 1.62672 7.80261 0.8125 7.10844 0.8125Z\"\n fill={color}\n />\n </svg>\n );\n }\n);\n\nTriangleArrowDownIcon.displayName = 'ArrowDownIcon';\n","import * as React from 'react';\nimport type { IconProps } from './types';\n\nexport const TriangleArrowUpIcon = React.forwardRef<SVGSVGElement, IconProps>(\n ({ color = 'currentColor', ...props }, forwardedRef) => {\n return (\n <svg\n fill=\"none\"\n height=\"7\"\n viewBox=\"0 0 8 7\"\n width=\"8\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}\n ref={forwardedRef}\n >\n <path\n d=\"M0.891555 6.1875L7.10845 6.1875C7.80261 6.1875 8.1771 5.37328 7.72534 4.84623L4.6169 1.21971C4.29263 0.841403 3.70737 0.841403 3.3831 1.21971L0.274659 4.84623C-0.177095 5.37328 0.197393 6.1875 0.891555 6.1875Z\"\n fill={color}\n />\n </svg>\n );\n }\n);\n\nTriangleArrowUpIcon.displayName = 'ArrowUpIcon';\n","import {\n type Row as TanstackRow,\n type RowData,\n flexRender,\n} from '@tanstack/react-table';\nimport React, { useCallback, useMemo, useState } from 'react';\nimport { Collapse } from '../../atoms';\nimport type { CellAlign } from '../../utils/get-cell-align';\n\nexport type ExpandComp<Datum> = React.FC<{ row: TanstackRow<Datum> }>;\nexport type OnRowClick<Datum> = (data: Datum) => void;\n\ninterface RowProps<Datum extends RowData> {\n row: TanstackRow<Datum>;\n ExpandComp?: ExpandComp<Datum>;\n onRowClick?: OnRowClick<Datum>;\n gridColTemp: string;\n getRowStyle?: (data: Datum) => React.CSSProperties;\n defaultAlign: CellAlign;\n}\n\nexport function Row<Datum extends RowData>(\n props: RowProps<Datum>\n): React.ReactNode {\n const { row, ExpandComp, gridColTemp, getRowStyle } = props;\n const [open, setOpen] = useState(false);\n\n const onClickRow = useCallback(() => {\n props.onRowClick?.(row.original);\n setOpen((prev) => !prev);\n }, [props, row.original]);\n\n const rowClassName = useMemo(() => {\n const baseCls = ['tr-wrapper'];\n if (ExpandComp) {\n baseCls.push('expandable');\n }\n if (props.onRowClick) {\n baseCls.push('clickable');\n }\n return baseCls.join(' ');\n }, [ExpandComp, props.onRowClick]);\n\n return (\n <div className={rowClassName} key={`tr-wrapper_${row.id}`}>\n <button\n className=\"tr\"\n key={`tr_${row.id}`}\n onClick={onClickRow}\n style={{\n gridTemplateColumns: gridColTemp,\n ...(getRowStyle?.(row.original) || {}),\n }}\n type=\"button\"\n >\n {row.getVisibleCells().map((cell) => {\n const autoSize = cell.column.columnDef.meta?.autoSize;\n const justifyContent =\n cell.column.columnDef.meta?.align || props.defaultAlign;\n\n return (\n <div\n className=\"td\"\n key={cell.id}\n style={{\n // width: autoSize ? undefined : cell.column.getSize(),\n flexGrow: autoSize ? 1 : undefined,\n justifyContent,\n }}\n >\n {flexRender(cell.column.columnDef.cell, cell.getContext())}\n {cell.column.columnDef.meta?.OpenBtn ? (\n <cell.column.columnDef.meta.OpenBtn\n data={row.original}\n open={open}\n setIsOpen={setOpen}\n />\n ) : null}\n </div>\n );\n })}\n </button>\n {ExpandComp ? (\n <Collapse open={open}>\n <div className=\"expand-comp-wrapper\">\n <ExpandComp row={row} />\n </div>\n </Collapse>\n ) : null}\n </div>\n );\n}\n"],"mappings":"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","names":["import_react_table","import_react","import_themes","import_themes","RadixText","import_react","import_jsx_runtime","import_themes","import_react","import_jsx_runtime","React","import_jsx_runtime","React","import_jsx_runtime","import_react","import_jsx_runtime","import_jsx_runtime"]}
1
+ {"version":3,"sources":["../../../src/molecules/expand-table/index.tsx","../../../src/atoms/flex.tsx","../../../src/atoms/icon-button.tsx","../../../src/atoms/typo.tsx","../../../src/atoms/collapse.tsx","../../../src/atoms/spinner.tsx","../../../src/atoms/pagination.tsx","../../../src/icon.ts","../../../src/icons/down.tsx","../../../src/icons/up.tsx","../../../src/molecules/expand-table/row.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","export { Flex, type FlexProps } from '@radix-ui/themes';\n","export { IconButton, type IconButtonProps } from '@radix-ui/themes';\n","import type { TextProps as RadixTextProps } from '@radix-ui/themes';\nimport { Text as RadixText } from '@radix-ui/themes';\nimport React, { useMemo, forwardRef } from 'react';\n\nexport type TypoProps = RadixTextProps & {\n variant?: 'body' | 'caption' | 'subtitle';\n};\n\nexport const Typo = forwardRef<HTMLSpanElement, TypoProps>(\n (props: TypoProps, ref): React.ReactElement => {\n const { size, variant, children, ...rest } = props;\n\n const radixSize = useMemo<RadixTextProps['size']>(() => {\n if (size !== undefined) return size;\n switch (variant) {\n case 'caption':\n return '1';\n case 'subtitle':\n return '3';\n case 'body':\n default:\n return '2';\n }\n }, [size, variant]);\n\n return (\n <RadixText {...rest} ref={ref} size={radixSize}>\n {children}\n </RadixText>\n );\n }\n);\n\nTypo.displayName = 'Typo';\n","import React, { useEffect, useRef, useState } from 'react';\n\nexport interface CollapseProps {\n children: React.ReactNode;\n open?: boolean;\n defaultOpen?: boolean;\n /** 닫힘 상태일 때 높이 값이 필요할 시 사용 */\n closedHeight?: string;\n}\n\nexport function Collapse(props: CollapseProps): React.ReactNode {\n const { children, closedHeight = '0' } = props;\n const [open, setOpen] = useState(() => {\n return props.open || props.defaultOpen || false;\n });\n\n useEffect(() => {\n if (props.open === undefined) return;\n setOpen(props.open);\n }, [props.open]);\n\n const ref = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n if (!ref.current) return;\n ref.current.style.maxHeight = open\n ? `${ref.current.scrollHeight}px`\n : closedHeight;\n }, [closedHeight, open]);\n\n return (\n <div className=\"tipp-collapse\" ref={ref}>\n {children}\n </div>\n );\n}\n","export { Spinner, type SpinnerProps } from '@radix-ui/themes';\n","import React, { useCallback, useEffect, useMemo, useState } from 'react';\nimport {\n ChevronLeftIcon,\n ChevronRightIcon,\n DoubleArrowLeftIcon,\n DoubleArrowRightIcon,\n} from '../icon';\nimport type { IconButtonProps } from './icon-button';\nimport { IconButton } from './icon-button';\nimport { Flex } from './flex';\nimport { Typo } from './typo';\n\nexport interface PaginationProps {\n /** 현재 선택된 페이지, 1부터 시작 */\n page?: number;\n /** 기본 선택 페이지, page보다 낮은 우선 순위를 갖는다 */\n defaultPage?: number;\n /** 선택한 페이지 변경 이벤트 cb */\n onChange?: (page: number) => void;\n /** 전체 페이지의 수 */\n count?: number;\n /** 표시할 페이지 버튼의 개수 */\n siblingCount?: number;\n}\n\nexport function Pagination(props: PaginationProps): React.ReactNode {\n const { onChange, count = 0, siblingCount = 2 } = props;\n\n const [page, setPage] = useState(() => props.page || props.defaultPage || 1);\n\n const visibleItems = useMemo(() => {\n let start = Math.max(1, page - siblingCount);\n let end = Math.min(count, page + siblingCount);\n if (page - siblingCount <= 0 && end < count) {\n end = Math.min(count, end + Math.abs(page - siblingCount) + 1);\n } else if (page + siblingCount > count && start > 1) {\n start = Math.max(1, start - (page + siblingCount - count));\n }\n\n return Array.from({ length: end - start + 1 }, (_, i) => i + start);\n }, [count, page, siblingCount]);\n\n useEffect(() => {\n onChange?.(page);\n }, [onChange, page]);\n\n useEffect(() => {\n if (props.page) {\n setPage(props.page);\n }\n }, [props.page]);\n\n const prev = useMemo<number | undefined>(() => {\n const p = page - 1;\n return p < 1 ? undefined : p;\n }, [page]);\n\n const next = useMemo<number | undefined>(() => {\n const n = page + 1;\n return n > count ? undefined : n;\n }, [count, page]);\n\n const onClickPrev = useCallback(() => {\n prev && setPage(prev);\n }, [prev]);\n\n const onClickNext = useCallback(() => {\n next && setPage(next);\n }, [next]);\n\n const doublePrev = useMemo<number | undefined>(() => {\n if (!visibleItems.length) return;\n return Math.max(0, visibleItems[0] - 1);\n }, [visibleItems]);\n\n const onClickDoublePrev = useCallback(() => {\n doublePrev && setPage(doublePrev);\n }, [doublePrev]);\n\n const doubleNext = useMemo<number | undefined>(() => {\n if (!visibleItems.length) return;\n const n = visibleItems[visibleItems.length - 1] + 1;\n if (n > count) return;\n return Math.min(count, n);\n }, [count, visibleItems]);\n\n const onClickDoubleNext = useCallback(() => {\n doubleNext && setPage(doubleNext);\n }, [doubleNext]);\n\n const iconSize = {\n height: 24,\n width: 24,\n };\n\n const moveButtonProps: IconButtonProps = {\n variant: 'ghost',\n size: '3',\n style: { borderRadius: '50%' },\n };\n\n return (\n <Flex align=\"center\" className=\"tipp-pagination\" gap=\"4\">\n <IconButton\n disabled={!doublePrev}\n onClick={onClickDoublePrev}\n {...moveButtonProps}\n >\n <DoubleArrowLeftIcon {...iconSize} />\n </IconButton>\n <IconButton disabled={!prev} onClick={onClickPrev} {...moveButtonProps}>\n <ChevronLeftIcon {...iconSize} />\n </IconButton>\n <Flex gap=\"1\">\n {visibleItems.map((item) => {\n return (\n <button\n className={`page-button ${item === page ? 'active' : ''}`}\n key={item}\n onClick={() => {\n setPage(item);\n }}\n type=\"button\"\n >\n <Typo variant=\"body\">{item}</Typo>\n </button>\n );\n })}\n </Flex>\n <IconButton disabled={!next} onClick={onClickNext} {...moveButtonProps}>\n <ChevronRightIcon {...iconSize} />\n </IconButton>\n <IconButton\n disabled={!doubleNext}\n onClick={onClickDoubleNext}\n {...moveButtonProps}\n >\n <DoubleArrowRightIcon {...iconSize} />\n </IconButton>\n </Flex>\n );\n}\n","export {\n BookmarkIcon,\n ExitIcon,\n InfoCircledIcon,\n ExclamationTriangleIcon,\n MagnifyingGlassIcon,\n DotsHorizontalIcon,\n ChatBubbleIcon,\n PlusIcon,\n BookmarkFilledIcon,\n MixerHorizontalIcon,\n ChevronLeftIcon,\n ChevronRightIcon,\n ClipboardIcon,\n BarChartIcon,\n PersonIcon,\n GearIcon,\n DotsVerticalIcon,\n Pencil1Icon,\n Cross1Icon,\n Link2Icon,\n ChevronUpIcon,\n ChevronDownIcon,\n FileIcon,\n TrashIcon,\n DoubleArrowLeftIcon,\n DoubleArrowRightIcon,\n GlobeIcon,\n BackpackIcon,\n CalendarIcon,\n CheckIcon,\n ArchiveIcon,\n RowsIcon,\n Share1Icon,\n ClipboardCopyIcon,\n} from '@radix-ui/react-icons';\n","import * as React from 'react';\nimport type { IconProps } from './types';\n\nexport const TriangleArrowDownIcon = React.forwardRef<SVGSVGElement, IconProps>(\n ({ color = 'currentColor', ...props }, forwardedRef) => {\n return (\n <svg\n fill=\"none\"\n height=\"7\"\n viewBox=\"0 0 8 7\"\n width=\"8\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}\n ref={forwardedRef}\n >\n <path\n d=\"M7.10844 0.8125H0.891554C0.197392 0.8125 -0.177096 1.62672 0.274659 2.15377L3.3831 5.78029C3.70737 6.1586 4.29263 6.1586 4.6169 5.78029L7.72534 2.15377C8.1771 1.62672 7.80261 0.8125 7.10844 0.8125Z\"\n fill={color}\n />\n </svg>\n );\n }\n);\n\nTriangleArrowDownIcon.displayName = 'ArrowDownIcon';\n","import * as React from 'react';\nimport type { IconProps } from './types';\n\nexport const TriangleArrowUpIcon = React.forwardRef<SVGSVGElement, IconProps>(\n ({ color = 'currentColor', ...props }, forwardedRef) => {\n return (\n <svg\n fill=\"none\"\n height=\"7\"\n viewBox=\"0 0 8 7\"\n width=\"8\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}\n ref={forwardedRef}\n >\n <path\n d=\"M0.891555 6.1875L7.10845 6.1875C7.80261 6.1875 8.1771 5.37328 7.72534 4.84623L4.6169 1.21971C4.29263 0.841403 3.70737 0.841403 3.3831 1.21971L0.274659 4.84623C-0.177095 5.37328 0.197393 6.1875 0.891555 6.1875Z\"\n fill={color}\n />\n </svg>\n );\n }\n);\n\nTriangleArrowUpIcon.displayName = 'ArrowUpIcon';\n","import {\n type Row as TanstackRow,\n type RowData,\n flexRender,\n} from '@tanstack/react-table';\nimport React, { useCallback, useMemo, useState } from 'react';\nimport { Collapse } from '../../atoms';\nimport type { CellAlign } from '../../utils/get-cell-align';\n\nexport type ExpandComp<Datum> = React.FC<{ row: TanstackRow<Datum> }>;\nexport type OnRowClick<Datum> = (data: Datum) => void;\n\ninterface RowProps<Datum extends RowData> {\n row: TanstackRow<Datum>;\n ExpandComp?: ExpandComp<Datum>;\n onRowClick?: OnRowClick<Datum>;\n gridTemplateColumns: string;\n getRowStyle?: (data: Datum) => React.CSSProperties;\n getCellStyle?: (data: Datum) => React.CSSProperties;\n defaultAlign: CellAlign;\n}\n\nexport function Row<Datum extends RowData>(\n props: RowProps<Datum>\n): React.ReactNode {\n const { row, ExpandComp, gridTemplateColumns, getRowStyle, getCellStyle } =\n props;\n const [open, setOpen] = useState(false);\n\n const onClickRow = useCallback(() => {\n props.onRowClick?.(row.original);\n setOpen((prev) => !prev);\n }, [props, row.original]);\n\n const rowClassName = useMemo(() => {\n const baseCls = ['tr-wrapper'];\n if (ExpandComp) {\n baseCls.push('expandable');\n }\n if (props.onRowClick) {\n baseCls.push('clickable');\n }\n return baseCls.join(' ');\n }, [ExpandComp, props.onRowClick]);\n\n return (\n <div className={rowClassName} key={`tr-wrapper_${row.id}`}>\n <button\n className=\"tr\"\n key={`tr_${row.id}`}\n onClick={onClickRow}\n style={{\n gridTemplateColumns,\n ...(getRowStyle?.(row.original) || {}),\n }}\n type=\"button\"\n >\n {row.getVisibleCells().map((cell) => {\n const autoSize = cell.column.columnDef.meta?.autoSize;\n const justifyContent =\n cell.column.columnDef.meta?.align || props.defaultAlign;\n\n return (\n <div\n className=\"td\"\n key={cell.id}\n style={{\n // width: autoSize ? undefined : cell.column.getSize(),\n flexGrow: autoSize ? 1 : undefined,\n justifyContent,\n ...(getCellStyle?.(row.original) || {}),\n }}\n >\n {flexRender(cell.column.columnDef.cell, cell.getContext())}\n {cell.column.columnDef.meta?.OpenBtn ? (\n <cell.column.columnDef.meta.OpenBtn\n data={row.original}\n open={open}\n setIsOpen={setOpen}\n />\n ) : null}\n </div>\n );\n })}\n </button>\n {ExpandComp ? (\n <Collapse open={open}>\n <div className=\"expand-comp-wrapper\">\n <ExpandComp row={row} />\n </div>\n </Collapse>\n ) : null}\n </div>\n );\n}\n"],"mappings":"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","names":["import_react_table","import_react","import_themes","import_themes","RadixText","import_react","import_jsx_runtime","import_themes","import_react","import_jsx_runtime","React","import_jsx_runtime","React","import_jsx_runtime","import_react","import_jsx_runtime","import_jsx_runtime"]}
@@ -16,6 +16,7 @@ interface ExpandTableProps<Datum extends RowData> {
16
16
  /** 행 클릭 시 실행할 콜백 */
17
17
  onRowClick?: OnRowClick<Datum>;
18
18
  getRowStyle?: (data: Datum) => CSSProperties;
19
+ getCellStyle?: (data: Datum) => CSSProperties;
19
20
  tableStyle?: CSSProperties;
20
21
  isLoading?: boolean;
21
22
  /** pagination - 표시 유무 */
@@ -16,6 +16,7 @@ interface ExpandTableProps<Datum extends RowData> {
16
16
  /** 행 클릭 시 실행할 콜백 */
17
17
  onRowClick?: OnRowClick<Datum>;
18
18
  getRowStyle?: (data: Datum) => CSSProperties;
19
+ getCellStyle?: (data: Datum) => CSSProperties;
19
20
  tableStyle?: CSSProperties;
20
21
  isLoading?: boolean;
21
22
  /** pagination - 표시 유무 */
@@ -1,67 +1,67 @@
1
1
  import {
2
2
  ExpandTable,
3
3
  createColumnHelper
4
- } from "../../chunk-CNDTBMHW.js";
5
- import "../../chunk-SOMDO7V4.js";
4
+ } from "../../chunk-ZQLHJD5Q.js";
5
+ import "../../chunk-PCWEW2UL.js";
6
+ import "../../chunk-BSTJBBEX.js";
7
+ import "../../chunk-NDUKDKGB.js";
6
8
  import "../../chunk-76JGDATZ.js";
9
+ import "../../chunk-FR2GDOU2.js";
10
+ import "../../chunk-74DX4CU7.js";
7
11
  import "../../chunk-OYM4XCHQ.js";
8
12
  import "../../chunk-YJ7ZFOYL.js";
9
13
  import "../../chunk-5ZITU5L7.js";
10
14
  import "../../chunk-ILRUXI2E.js";
11
15
  import "../../chunk-JPIZP2PZ.js";
12
16
  import "../../chunk-CYYWMYE7.js";
17
+ import "../../chunk-6DJOIRMF.js";
18
+ import "../../chunk-FPD73OHW.js";
13
19
  import "../../chunk-ZKZDVS7G.js";
14
20
  import "../../chunk-MUNMDHRF.js";
15
21
  import "../../chunk-TVDKGMBI.js";
16
22
  import "../../chunk-3JRNKBMN.js";
17
23
  import "../../chunk-HYITAA4J.js";
18
24
  import "../../chunk-5H3YPCZK.js";
19
- import "../../chunk-FR2GDOU2.js";
20
- import "../../chunk-74DX4CU7.js";
25
+ import "../../chunk-XQOL7UBI.js";
26
+ import "../../chunk-TULWX7D6.js";
21
27
  import "../../chunk-SIM6HKVI.js";
22
- import "../../chunk-IM7DSIK2.js";
28
+ import "../../chunk-5X3BCQPR.js";
23
29
  import "../../chunk-5AVBYDPB.js";
24
30
  import "../../chunk-365QMK4D.js";
25
31
  import "../../chunk-YO3BQW6S.js";
26
32
  import "../../chunk-6IVCARWS.js";
27
- import "../../chunk-6DJOIRMF.js";
28
- import "../../chunk-FPD73OHW.js";
33
+ import "../../chunk-DJN2IEY6.js";
34
+ import "../../chunk-25HMMI7R.js";
29
35
  import "../../chunk-2CVXGGI5.js";
30
36
  import "../../chunk-EGEQY3KT.js";
31
37
  import "../../chunk-HK224ADT.js";
32
38
  import "../../chunk-O3T3TM3V.js";
33
39
  import "../../chunk-O3DNDMV3.js";
34
- import "../../chunk-XQOL7UBI.js";
35
- import "../../chunk-TULWX7D6.js";
40
+ import "../../chunk-LZJR77Q2.js";
41
+ import "../../chunk-Q37G2GS6.js";
36
42
  import "../../chunk-VTJZMOSP.js";
37
43
  import "../../chunk-6AJTMXLJ.js";
38
44
  import "../../chunk-3IZQ2PIQ.js";
39
45
  import "../../chunk-4WFMOFN2.js";
40
46
  import "../../chunk-WKFZ5MMN.js";
41
47
  import "../../chunk-ACVANQJ4.js";
42
- import "../../chunk-2DZ2Y3JI.js";
43
- import "../../chunk-QDZS4B6A.js";
44
48
  import "../../chunk-52MVZ6AN.js";
45
- import "../../chunk-25HMMI7R.js";
49
+ import "../../chunk-2DZ2Y3JI.js";
50
+ import "../../chunk-4Y5BEXVN.js";
51
+ import "../../chunk-P3YCIJUP.js";
46
52
  import "../../chunk-B6XJN6EC.js";
47
53
  import "../../chunk-UVKNLJDZ.js";
48
54
  import "../../chunk-MIMJ7LON.js";
49
55
  import "../../chunk-IQEEPHOY.js";
50
56
  import "../../chunk-LHCDPZ5E.js";
51
57
  import "../../chunk-OHMOP5PV.js";
52
- import "../../chunk-LZJR77Q2.js";
53
- import "../../chunk-Q37G2GS6.js";
58
+ import "../../chunk-66C4U3BG.js";
54
59
  import "../../chunk-J242TTFH.js";
55
60
  import "../../chunk-EAXUQEO5.js";
56
61
  import "../../chunk-YJCCE5WP.js";
57
62
  import "../../chunk-3SSSCLJ5.js";
58
63
  import "../../chunk-EWD4AO5N.js";
59
64
  import "../../chunk-YGL6SWKN.js";
60
- import "../../chunk-4Y5BEXVN.js";
61
- import "../../chunk-P3YCIJUP.js";
62
- import "../../chunk-66C4U3BG.js";
63
- import "../../chunk-BSTJBBEX.js";
64
- import "../../chunk-NDUKDKGB.js";
65
65
  import "../../chunk-N552FDTV.js";
66
66
  export {
67
67
  ExpandTable,
@@ -65,7 +65,7 @@ function Collapse(props) {
65
65
  // src/molecules/expand-table/row.tsx
66
66
  var import_jsx_runtime2 = require("react/jsx-runtime");
67
67
  function Row(props) {
68
- const { row, ExpandComp, gridColTemp, getRowStyle } = props;
68
+ const { row, ExpandComp, gridTemplateColumns, getRowStyle, getCellStyle } = props;
69
69
  const [open, setOpen] = (0, import_react2.useState)(false);
70
70
  const onClickRow = (0, import_react2.useCallback)(() => {
71
71
  var _a;
@@ -89,7 +89,7 @@ function Row(props) {
89
89
  className: "tr",
90
90
  onClick: onClickRow,
91
91
  style: __spreadValues({
92
- gridTemplateColumns: gridColTemp
92
+ gridTemplateColumns
93
93
  }, (getRowStyle == null ? void 0 : getRowStyle(row.original)) || {}),
94
94
  type: "button",
95
95
  children: row.getVisibleCells().map((cell) => {
@@ -100,11 +100,11 @@ function Row(props) {
100
100
  "div",
101
101
  {
102
102
  className: "td",
103
- style: {
103
+ style: __spreadValues({
104
104
  // width: autoSize ? undefined : cell.column.getSize(),
105
105
  flexGrow: autoSize ? 1 : void 0,
106
106
  justifyContent
107
- },
107
+ }, (getCellStyle == null ? void 0 : getCellStyle(row.original)) || {}),
108
108
  children: [
109
109
  (0, import_react_table.flexRender)(cell.column.columnDef.cell, cell.getContext()),
110
110
  ((_c = cell.column.columnDef.meta) == null ? void 0 : _c.OpenBtn) ? /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/molecules/expand-table/row.tsx","../../../src/atoms/collapse.tsx"],"sourcesContent":["import {\n type Row as TanstackRow,\n type RowData,\n flexRender,\n} from '@tanstack/react-table';\nimport React, { useCallback, useMemo, useState } from 'react';\nimport { Collapse } from '../../atoms';\nimport type { CellAlign } from '../../utils/get-cell-align';\n\nexport type ExpandComp<Datum> = React.FC<{ row: TanstackRow<Datum> }>;\nexport type OnRowClick<Datum> = (data: Datum) => void;\n\ninterface RowProps<Datum extends RowData> {\n row: TanstackRow<Datum>;\n ExpandComp?: ExpandComp<Datum>;\n onRowClick?: OnRowClick<Datum>;\n gridColTemp: string;\n getRowStyle?: (data: Datum) => React.CSSProperties;\n defaultAlign: CellAlign;\n}\n\nexport function Row<Datum extends RowData>(\n props: RowProps<Datum>\n): React.ReactNode {\n const { row, ExpandComp, gridColTemp, getRowStyle } = props;\n const [open, setOpen] = useState(false);\n\n const onClickRow = useCallback(() => {\n props.onRowClick?.(row.original);\n setOpen((prev) => !prev);\n }, [props, row.original]);\n\n const rowClassName = useMemo(() => {\n const baseCls = ['tr-wrapper'];\n if (ExpandComp) {\n baseCls.push('expandable');\n }\n if (props.onRowClick) {\n baseCls.push('clickable');\n }\n return baseCls.join(' ');\n }, [ExpandComp, props.onRowClick]);\n\n return (\n <div className={rowClassName} key={`tr-wrapper_${row.id}`}>\n <button\n className=\"tr\"\n key={`tr_${row.id}`}\n onClick={onClickRow}\n style={{\n gridTemplateColumns: gridColTemp,\n ...(getRowStyle?.(row.original) || {}),\n }}\n type=\"button\"\n >\n {row.getVisibleCells().map((cell) => {\n const autoSize = cell.column.columnDef.meta?.autoSize;\n const justifyContent =\n cell.column.columnDef.meta?.align || props.defaultAlign;\n\n return (\n <div\n className=\"td\"\n key={cell.id}\n style={{\n // width: autoSize ? undefined : cell.column.getSize(),\n flexGrow: autoSize ? 1 : undefined,\n justifyContent,\n }}\n >\n {flexRender(cell.column.columnDef.cell, cell.getContext())}\n {cell.column.columnDef.meta?.OpenBtn ? (\n <cell.column.columnDef.meta.OpenBtn\n data={row.original}\n open={open}\n setIsOpen={setOpen}\n />\n ) : null}\n </div>\n );\n })}\n </button>\n {ExpandComp ? (\n <Collapse open={open}>\n <div className=\"expand-comp-wrapper\">\n <ExpandComp row={row} />\n </div>\n </Collapse>\n ) : null}\n </div>\n );\n}\n","import React, { useEffect, useRef, useState } from 'react';\n\nexport interface CollapseProps {\n children: React.ReactNode;\n open?: boolean;\n defaultOpen?: boolean;\n /** 닫힘 상태일 때 높이 값이 필요할 시 사용 */\n closedHeight?: string;\n}\n\nexport function Collapse(props: CollapseProps): React.ReactNode {\n const { children, closedHeight = '0' } = props;\n const [open, setOpen] = useState(() => {\n return props.open || props.defaultOpen || false;\n });\n\n useEffect(() => {\n if (props.open === undefined) return;\n setOpen(props.open);\n }, [props.open]);\n\n const ref = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n if (!ref.current) return;\n ref.current.style.maxHeight = open\n ? `${ref.current.scrollHeight}px`\n : closedHeight;\n }, [closedHeight, open]);\n\n return (\n <div className=\"tipp-collapse\" ref={ref}>\n {children}\n </div>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,yBAIO;AACP,IAAAA,gBAAsD;;;ACLtD,mBAAmD;AA+B/C;AArBG,SAAS,SAAS,OAAuC;AAC9D,QAAM,EAAE,UAAU,eAAe,IAAI,IAAI;AACzC,QAAM,CAAC,MAAM,OAAO,QAAI,uBAAS,MAAM;AACrC,WAAO,MAAM,QAAQ,MAAM,eAAe;AAAA,EAC5C,CAAC;AAED,8BAAU,MAAM;AACd,QAAI,MAAM,SAAS;AAAW;AAC9B,YAAQ,MAAM,IAAI;AAAA,EACpB,GAAG,CAAC,MAAM,IAAI,CAAC;AAEf,QAAM,UAAM,qBAAuB,IAAI;AAEvC,8BAAU,MAAM;AACd,QAAI,CAAC,IAAI;AAAS;AAClB,QAAI,QAAQ,MAAM,YAAY,OAC1B,GAAG,IAAI,QAAQ,YAAY,OAC3B;AAAA,EACN,GAAG,CAAC,cAAc,IAAI,CAAC;AAEvB,SACE,4CAAC,SAAI,WAAU,iBAAgB,KAC5B,UACH;AAEJ;;;AD0BY,IAAAC,sBAAA;AAxCL,SAAS,IACd,OACiB;AACjB,QAAM,EAAE,KAAK,YAAY,aAAa,YAAY,IAAI;AACtD,QAAM,CAAC,MAAM,OAAO,QAAI,wBAAS,KAAK;AAEtC,QAAM,iBAAa,2BAAY,MAAM;AA3BvC;AA4BI,gBAAM,eAAN,+BAAmB,IAAI;AACvB,YAAQ,CAAC,SAAS,CAAC,IAAI;AAAA,EACzB,GAAG,CAAC,OAAO,IAAI,QAAQ,CAAC;AAExB,QAAM,mBAAe,uBAAQ,MAAM;AACjC,UAAM,UAAU,CAAC,YAAY;AAC7B,QAAI,YAAY;AACd,cAAQ,KAAK,YAAY;AAAA,IAC3B;AACA,QAAI,MAAM,YAAY;AACpB,cAAQ,KAAK,WAAW;AAAA,IAC1B;AACA,WAAO,QAAQ,KAAK,GAAG;AAAA,EACzB,GAAG,CAAC,YAAY,MAAM,UAAU,CAAC;AAEjC,SACE,8CAAC,SAAI,WAAW,cACd;AAAA;AAAA,MAAC;AAAA;AAAA,QACC,WAAU;AAAA,QAEV,SAAS;AAAA,QACT,OAAO;AAAA,UACL,qBAAqB;AAAA,YACjB,2CAAc,IAAI,cAAa,CAAC;AAAA,QAEtC,MAAK;AAAA,QAEJ,cAAI,gBAAgB,EAAE,IAAI,CAAC,SAAS;AAvD7C;AAwDU,gBAAM,YAAW,UAAK,OAAO,UAAU,SAAtB,mBAA4B;AAC7C,gBAAM,mBACJ,UAAK,OAAO,UAAU,SAAtB,mBAA4B,UAAS,MAAM;AAE7C,iBACE;AAAA,YAAC;AAAA;AAAA,cACC,WAAU;AAAA,cAEV,OAAO;AAAA;AAAA,gBAEL,UAAU,WAAW,IAAI;AAAA,gBACzB;AAAA,cACF;AAAA,cAEC;AAAA,mDAAW,KAAK,OAAO,UAAU,MAAM,KAAK,WAAW,CAAC;AAAA,kBACxD,UAAK,OAAO,UAAU,SAAtB,mBAA4B,WAC3B;AAAA,kBAAC,KAAK,OAAO,UAAU,KAAK;AAAA,kBAA3B;AAAA,oBACC,MAAM,IAAI;AAAA,oBACV;AAAA,oBACA,WAAW;AAAA;AAAA,gBACb,IACE;AAAA;AAAA;AAAA,YAdC,KAAK;AAAA,UAeZ;AAAA,QAEJ,CAAC;AAAA;AAAA,MAjCI,MAAM,IAAI,EAAE;AAAA,IAkCnB;AAAA,IACC,aACC,6CAAC,YAAS,MACR,uDAAC,SAAI,WAAU,uBACb,uDAAC,cAAW,KAAU,GACxB,GACF,IACE;AAAA,OA5C6B,cAAc,IAAI,EAAE,EA6CvD;AAEJ;","names":["import_react","import_jsx_runtime"]}
1
+ {"version":3,"sources":["../../../src/molecules/expand-table/row.tsx","../../../src/atoms/collapse.tsx"],"sourcesContent":["import {\n type Row as TanstackRow,\n type RowData,\n flexRender,\n} from '@tanstack/react-table';\nimport React, { useCallback, useMemo, useState } from 'react';\nimport { Collapse } from '../../atoms';\nimport type { CellAlign } from '../../utils/get-cell-align';\n\nexport type ExpandComp<Datum> = React.FC<{ row: TanstackRow<Datum> }>;\nexport type OnRowClick<Datum> = (data: Datum) => void;\n\ninterface RowProps<Datum extends RowData> {\n row: TanstackRow<Datum>;\n ExpandComp?: ExpandComp<Datum>;\n onRowClick?: OnRowClick<Datum>;\n gridTemplateColumns: string;\n getRowStyle?: (data: Datum) => React.CSSProperties;\n getCellStyle?: (data: Datum) => React.CSSProperties;\n defaultAlign: CellAlign;\n}\n\nexport function Row<Datum extends RowData>(\n props: RowProps<Datum>\n): React.ReactNode {\n const { row, ExpandComp, gridTemplateColumns, getRowStyle, getCellStyle } =\n props;\n const [open, setOpen] = useState(false);\n\n const onClickRow = useCallback(() => {\n props.onRowClick?.(row.original);\n setOpen((prev) => !prev);\n }, [props, row.original]);\n\n const rowClassName = useMemo(() => {\n const baseCls = ['tr-wrapper'];\n if (ExpandComp) {\n baseCls.push('expandable');\n }\n if (props.onRowClick) {\n baseCls.push('clickable');\n }\n return baseCls.join(' ');\n }, [ExpandComp, props.onRowClick]);\n\n return (\n <div className={rowClassName} key={`tr-wrapper_${row.id}`}>\n <button\n className=\"tr\"\n key={`tr_${row.id}`}\n onClick={onClickRow}\n style={{\n gridTemplateColumns,\n ...(getRowStyle?.(row.original) || {}),\n }}\n type=\"button\"\n >\n {row.getVisibleCells().map((cell) => {\n const autoSize = cell.column.columnDef.meta?.autoSize;\n const justifyContent =\n cell.column.columnDef.meta?.align || props.defaultAlign;\n\n return (\n <div\n className=\"td\"\n key={cell.id}\n style={{\n // width: autoSize ? undefined : cell.column.getSize(),\n flexGrow: autoSize ? 1 : undefined,\n justifyContent,\n ...(getCellStyle?.(row.original) || {}),\n }}\n >\n {flexRender(cell.column.columnDef.cell, cell.getContext())}\n {cell.column.columnDef.meta?.OpenBtn ? (\n <cell.column.columnDef.meta.OpenBtn\n data={row.original}\n open={open}\n setIsOpen={setOpen}\n />\n ) : null}\n </div>\n );\n })}\n </button>\n {ExpandComp ? (\n <Collapse open={open}>\n <div className=\"expand-comp-wrapper\">\n <ExpandComp row={row} />\n </div>\n </Collapse>\n ) : null}\n </div>\n );\n}\n","import React, { useEffect, useRef, useState } from 'react';\n\nexport interface CollapseProps {\n children: React.ReactNode;\n open?: boolean;\n defaultOpen?: boolean;\n /** 닫힘 상태일 때 높이 값이 필요할 시 사용 */\n closedHeight?: string;\n}\n\nexport function Collapse(props: CollapseProps): React.ReactNode {\n const { children, closedHeight = '0' } = props;\n const [open, setOpen] = useState(() => {\n return props.open || props.defaultOpen || false;\n });\n\n useEffect(() => {\n if (props.open === undefined) return;\n setOpen(props.open);\n }, [props.open]);\n\n const ref = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n if (!ref.current) return;\n ref.current.style.maxHeight = open\n ? `${ref.current.scrollHeight}px`\n : closedHeight;\n }, [closedHeight, open]);\n\n return (\n <div className=\"tipp-collapse\" ref={ref}>\n {children}\n </div>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,yBAIO;AACP,IAAAA,gBAAsD;;;ACLtD,mBAAmD;AA+B/C;AArBG,SAAS,SAAS,OAAuC;AAC9D,QAAM,EAAE,UAAU,eAAe,IAAI,IAAI;AACzC,QAAM,CAAC,MAAM,OAAO,QAAI,uBAAS,MAAM;AACrC,WAAO,MAAM,QAAQ,MAAM,eAAe;AAAA,EAC5C,CAAC;AAED,8BAAU,MAAM;AACd,QAAI,MAAM,SAAS;AAAW;AAC9B,YAAQ,MAAM,IAAI;AAAA,EACpB,GAAG,CAAC,MAAM,IAAI,CAAC;AAEf,QAAM,UAAM,qBAAuB,IAAI;AAEvC,8BAAU,MAAM;AACd,QAAI,CAAC,IAAI;AAAS;AAClB,QAAI,QAAQ,MAAM,YAAY,OAC1B,GAAG,IAAI,QAAQ,YAAY,OAC3B;AAAA,EACN,GAAG,CAAC,cAAc,IAAI,CAAC;AAEvB,SACE,4CAAC,SAAI,WAAU,iBAAgB,KAC5B,UACH;AAEJ;;;AD4BY,IAAAC,sBAAA;AAzCL,SAAS,IACd,OACiB;AACjB,QAAM,EAAE,KAAK,YAAY,qBAAqB,aAAa,aAAa,IACtE;AACF,QAAM,CAAC,MAAM,OAAO,QAAI,wBAAS,KAAK;AAEtC,QAAM,iBAAa,2BAAY,MAAM;AA7BvC;AA8BI,gBAAM,eAAN,+BAAmB,IAAI;AACvB,YAAQ,CAAC,SAAS,CAAC,IAAI;AAAA,EACzB,GAAG,CAAC,OAAO,IAAI,QAAQ,CAAC;AAExB,QAAM,mBAAe,uBAAQ,MAAM;AACjC,UAAM,UAAU,CAAC,YAAY;AAC7B,QAAI,YAAY;AACd,cAAQ,KAAK,YAAY;AAAA,IAC3B;AACA,QAAI,MAAM,YAAY;AACpB,cAAQ,KAAK,WAAW;AAAA,IAC1B;AACA,WAAO,QAAQ,KAAK,GAAG;AAAA,EACzB,GAAG,CAAC,YAAY,MAAM,UAAU,CAAC;AAEjC,SACE,8CAAC,SAAI,WAAW,cACd;AAAA;AAAA,MAAC;AAAA;AAAA,QACC,WAAU;AAAA,QAEV,SAAS;AAAA,QACT,OAAO;AAAA,UACL;AAAA,YACI,2CAAc,IAAI,cAAa,CAAC;AAAA,QAEtC,MAAK;AAAA,QAEJ,cAAI,gBAAgB,EAAE,IAAI,CAAC,SAAS;AAzD7C;AA0DU,gBAAM,YAAW,UAAK,OAAO,UAAU,SAAtB,mBAA4B;AAC7C,gBAAM,mBACJ,UAAK,OAAO,UAAU,SAAtB,mBAA4B,UAAS,MAAM;AAE7C,iBACE;AAAA,YAAC;AAAA;AAAA,cACC,WAAU;AAAA,cAEV,OAAO;AAAA;AAAA,gBAEL,UAAU,WAAW,IAAI;AAAA,gBACzB;AAAA,kBACI,6CAAe,IAAI,cAAa,CAAC;AAAA,cAGtC;AAAA,mDAAW,KAAK,OAAO,UAAU,MAAM,KAAK,WAAW,CAAC;AAAA,kBACxD,UAAK,OAAO,UAAU,SAAtB,mBAA4B,WAC3B;AAAA,kBAAC,KAAK,OAAO,UAAU,KAAK;AAAA,kBAA3B;AAAA,oBACC,MAAM,IAAI;AAAA,oBACV;AAAA,oBACA,WAAW;AAAA;AAAA,gBACb,IACE;AAAA;AAAA;AAAA,YAfC,KAAK;AAAA,UAgBZ;AAAA,QAEJ,CAAC;AAAA;AAAA,MAlCI,MAAM,IAAI,EAAE;AAAA,IAmCnB;AAAA,IACC,aACC,6CAAC,YAAS,MACR,uDAAC,SAAI,WAAU,uBACb,uDAAC,cAAW,KAAU,GACxB,GACF,IACE;AAAA,OA7C6B,cAAc,IAAI,EAAE,EA8CvD;AAEJ;","names":["import_react","import_jsx_runtime"]}
@@ -10,8 +10,9 @@ interface RowProps<Datum extends RowData> {
10
10
  row: Row$1<Datum>;
11
11
  ExpandComp?: ExpandComp<Datum>;
12
12
  onRowClick?: OnRowClick<Datum>;
13
- gridColTemp: string;
13
+ gridTemplateColumns: string;
14
14
  getRowStyle?: (data: Datum) => react__default.CSSProperties;
15
+ getCellStyle?: (data: Datum) => react__default.CSSProperties;
15
16
  defaultAlign: CellAlign;
16
17
  }
17
18
  declare function Row<Datum extends RowData>(props: RowProps<Datum>): react__default.ReactNode;
@@ -10,8 +10,9 @@ interface RowProps<Datum extends RowData> {
10
10
  row: Row$1<Datum>;
11
11
  ExpandComp?: ExpandComp<Datum>;
12
12
  onRowClick?: OnRowClick<Datum>;
13
- gridColTemp: string;
13
+ gridTemplateColumns: string;
14
14
  getRowStyle?: (data: Datum) => react__default.CSSProperties;
15
+ getCellStyle?: (data: Datum) => react__default.CSSProperties;
15
16
  defaultAlign: CellAlign;
16
17
  }
17
18
  declare function Row<Datum extends RowData>(props: RowProps<Datum>): react__default.ReactNode;