@rttui/skin-anocca 1.0.16 → 1.0.17

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 (47) hide show
  1. package/dist/cjs/HeaderPinButtons.cjs +109 -0
  2. package/dist/cjs/HeaderPinButtons.cjs.map +10 -0
  3. package/dist/cjs/RowPinButtons.cjs +75 -0
  4. package/dist/cjs/RowPinButtons.cjs.map +10 -0
  5. package/dist/cjs/index.cjs +383 -0
  6. package/dist/cjs/index.cjs.map +10 -0
  7. package/dist/cjs/package.json +5 -0
  8. package/dist/cjs/stories/ReactTanstackTableUiStory.stories.cjs +234 -0
  9. package/dist/cjs/stories/ReactTanstackTableUiStory.stories.cjs.map +10 -0
  10. package/dist/cjs/stories/ReactTanstackTableUiStoryComponent.cjs +147 -0
  11. package/dist/cjs/stories/ReactTanstackTableUiStoryComponent.cjs.map +10 -0
  12. package/dist/cjs/stories/createSourceCode.cjs +92 -0
  13. package/dist/cjs/stories/createSourceCode.cjs.map +10 -0
  14. package/dist/mjs/HeaderPinButtons.mjs +79 -0
  15. package/dist/mjs/HeaderPinButtons.mjs.map +10 -0
  16. package/dist/mjs/RowPinButtons.mjs +45 -0
  17. package/dist/mjs/RowPinButtons.mjs.map +10 -0
  18. package/dist/mjs/index.mjs +352 -0
  19. package/dist/mjs/index.mjs.map +10 -0
  20. package/dist/mjs/package.json +5 -0
  21. package/dist/mjs/stories/ReactTanstackTableUiStory.stories.mjs +204 -0
  22. package/dist/mjs/stories/ReactTanstackTableUiStory.stories.mjs.map +10 -0
  23. package/dist/mjs/stories/ReactTanstackTableUiStoryComponent.mjs +110 -0
  24. package/dist/mjs/stories/ReactTanstackTableUiStoryComponent.mjs.map +10 -0
  25. package/{src/stories/createSourceCode.ts → dist/mjs/stories/createSourceCode.mjs} +13 -4
  26. package/dist/mjs/stories/createSourceCode.mjs.map +10 -0
  27. package/dist/types/HeaderPinButtons.d.ts +1 -0
  28. package/dist/types/RowPinButtons.d.ts +4 -0
  29. package/dist/types/index.d.ts +3 -0
  30. package/dist/types/stories/ReactTanstackTableUiStory.stories.d.ts +72 -0
  31. package/dist/types/stories/ReactTanstackTableUiStoryComponent.d.ts +15 -0
  32. package/dist/types/stories/createSourceCode.d.ts +5 -0
  33. package/package.json +5 -2
  34. package/.storybook/main.ts +0 -18
  35. package/.storybook/preview.ts +0 -14
  36. package/CHANGELOG.md +0 -126
  37. package/index.html +0 -13
  38. package/src/HeaderPinButtons.tsx +0 -81
  39. package/src/RowPinButtons.tsx +0 -40
  40. package/src/index.tsx +0 -460
  41. package/src/stories/ReactTanstackTableUiStory.mdx +0 -147
  42. package/src/stories/ReactTanstackTableUiStory.stories.tsx +0 -207
  43. package/src/stories/ReactTanstackTableUiStoryComponent.tsx +0 -113
  44. package/src/stories/ScrollbarWidthSpecified.mdx +0 -42
  45. package/tsconfig.json +0 -34
  46. package/tsconfig.types.json +0 -9
  47. package/vite.config.ts +0 -23
@@ -0,0 +1,10 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/RowPinButtons.tsx"],
4
+ "sourcesContent": [
5
+ "import { Row } from \"@tanstack/react-table\";\nimport { IconButton, Stack } from \"@mui/material\";\nimport { FiX, FiChevronUp, FiChevronDown } from \"react-icons/fi\";\n\nexport function RowPinButtons({ row }: { row: Row<any> }) {\n if (!row.getCanPin()) {\n return null;\n }\n\n if (row.getIsPinned()) {\n return (\n <IconButton\n onClick={() => row.pin(false, true, true)}\n size=\"small\"\n sx={{ color: \"text.secondary\" }}\n >\n <FiX size={16} />\n </IconButton>\n );\n }\n\n return (\n <Stack direction=\"row\">\n <IconButton\n onClick={() => row.pin(\"top\", true, true)}\n size=\"small\"\n sx={{ color: \"text.secondary\" }}\n >\n <FiChevronUp size={16} />\n </IconButton>\n <IconButton\n onClick={() => row.pin(\"bottom\", true, true)}\n size=\"small\"\n sx={{ color: \"text.secondary\" }}\n >\n <FiChevronDown size={16} />\n </IconButton>\n </Stack>\n );\n}\n"
6
+ ],
7
+ "mappings": ";AACA;AACA;AAAA;AAEO,SAAS,aAAa,GAAG,OAA0B;AAAA,EACxD,KAAK,IAAI,UAAU,GAAG;AAAA,IACpB,OAAO;AAAA,EACT;AAAA,EAEA,IAAI,IAAI,YAAY,GAAG;AAAA,IACrB,uBACE,IAME,YANF;AAAA,MACE,SAAS,MAAM,IAAI,IAAI,OAAO,MAAM,IAAI;AAAA,MACxC,MAAK;AAAA,MACL,IAAI,EAAE,OAAO,iBAAiB;AAAA,MAHhC,0BAKE,IAAC,KAAD;AAAA,QAAK,MAAM;AAAA,OAAI;AAAA,KACf;AAAA,EAEN;AAAA,EAEA,uBACE,KAeE,OAfF;AAAA,IAAO,WAAU;AAAA,IAAjB,UAeE;AAAA,sBAdA,IAME,YANF;AAAA,QACE,SAAS,MAAM,IAAI,IAAI,OAAO,MAAM,IAAI;AAAA,QACxC,MAAK;AAAA,QACL,IAAI,EAAE,OAAO,iBAAiB;AAAA,QAHhC,0BAKE,IAAC,aAAD;AAAA,UAAa,MAAM;AAAA,SAAI;AAAA,OACvB;AAAA,sBACF,IAME,YANF;AAAA,QACE,SAAS,MAAM,IAAI,IAAI,UAAU,MAAM,IAAI;AAAA,QAC3C,MAAK;AAAA,QACL,IAAI,EAAE,OAAO,iBAAiB;AAAA,QAHhC,0BAKE,IAAC,eAAD;AAAA,UAAe,MAAM;AAAA,SAAI;AAAA,OACzB;AAAA;AAAA,GACF;AAAA;",
8
+ "debugId": "38BB8AEEFF76B3B064756E2164756E21",
9
+ "names": []
10
+ }
@@ -0,0 +1,352 @@
1
+ // packages/skin-anocca/src/index.tsx
2
+ import {
3
+ Box,
4
+ Paper,
5
+ TableBody,
6
+ TableCell,
7
+ TableFooter,
8
+ TableHead,
9
+ TableRow,
10
+ useTheme
11
+ } from "@mui/material";
12
+ import {
13
+ useTableContext,
14
+ useTableCssVars
15
+ } from "@rttui/core";
16
+ import React from "react";
17
+ import { flexRender } from "@tanstack/react-table";
18
+ import { jsx } from "react/jsx-runtime";
19
+ var AnoccaSkin = {
20
+ rowHeight: 32,
21
+ headerRowHeight: 32,
22
+ footerRowHeight: 32,
23
+ OverlayContainer: ({ children }) => {
24
+ const { width, height } = useTableContext();
25
+ const cssVars = useTableCssVars();
26
+ return /* @__PURE__ */ jsx("div", {
27
+ className: "rttui-overlay-container",
28
+ style: {
29
+ position: "relative",
30
+ width: width + "px",
31
+ height: height + "px",
32
+ ...cssVars
33
+ },
34
+ children
35
+ });
36
+ },
37
+ OuterContainer: ({ children }) => {
38
+ const { tableContainerRef } = useTableContext();
39
+ return /* @__PURE__ */ jsx(Paper, {
40
+ ref: tableContainerRef,
41
+ className: "outer-container",
42
+ elevation: 2,
43
+ sx: {
44
+ overflow: "auto",
45
+ width: "var(--table-container-width)",
46
+ height: "var(--table-container-height)",
47
+ position: "relative",
48
+ contain: "paint",
49
+ willChange: "transform",
50
+ borderRadius: 1
51
+ },
52
+ children
53
+ });
54
+ },
55
+ TableScroller: () => {
56
+ return /* @__PURE__ */ jsx("div", {
57
+ className: "table-scroller",
58
+ style: {
59
+ width: "var(--table-width)",
60
+ height: "calc(var(--table-height) + var(--header-height) + var(--footer-height))",
61
+ position: "absolute"
62
+ }
63
+ });
64
+ },
65
+ TableHeader: ({ children }) => {
66
+ return /* @__PURE__ */ jsx(TableHead, {
67
+ component: "div",
68
+ className: "thead",
69
+ sx: {
70
+ position: "sticky",
71
+ top: 0,
72
+ width: "var(--table-width)",
73
+ zIndex: 2,
74
+ backgroundColor: (theme) => theme.palette.background.paper,
75
+ boxShadow: (theme) => `0 1px 0 ${theme.palette.divider}`,
76
+ display: "flex",
77
+ flexDirection: "column",
78
+ justifyContent: "flex-start",
79
+ alignItems: "stretch"
80
+ },
81
+ children
82
+ });
83
+ },
84
+ TableFooter: ({ children }) => {
85
+ return /* @__PURE__ */ jsx(TableFooter, {
86
+ component: "div",
87
+ className: "table-footer",
88
+ sx: {
89
+ position: "sticky",
90
+ bottom: -1,
91
+ width: "var(--table-width)",
92
+ zIndex: 2,
93
+ backgroundColor: (theme) => theme.palette.background.paper,
94
+ boxShadow: (theme) => `0 -1px 0 ${theme.palette.divider}`
95
+ },
96
+ children
97
+ });
98
+ },
99
+ HeaderRow: TableHeaderRow,
100
+ HeaderCell: React.forwardRef((props, ref) => {
101
+ return /* @__PURE__ */ jsx(TableHeaderCell, {
102
+ ...props,
103
+ ref
104
+ });
105
+ }),
106
+ TableBody: ({ children }) => {
107
+ return /* @__PURE__ */ jsx(TableBody, {
108
+ component: "div",
109
+ className: "table-body",
110
+ sx: {
111
+ position: "relative",
112
+ width: "var(--table-width)",
113
+ height: "var(--table-height)",
114
+ display: "flex",
115
+ flexDirection: "column",
116
+ justifyContent: "flex-start",
117
+ alignItems: "stretch"
118
+ },
119
+ children
120
+ });
121
+ },
122
+ PinnedRows: ({ children, position, pinned }) => {
123
+ if (pinned.length === 0) {
124
+ return null;
125
+ }
126
+ const style = {
127
+ position: "sticky",
128
+ zIndex: 3
129
+ };
130
+ if (position === "top") {
131
+ style.top = "var(--header-height)";
132
+ style.borderBottom = (theme) => `1px solid ${theme.palette.divider}`;
133
+ style.boxShadow = "0 4px 8px -4px rgba(0, 0, 0, 0.15), 0 6px 12px -6px rgba(0, 0, 0, 0.1)";
134
+ } else if (position === "bottom") {
135
+ style.bottom = "var(--footer-height)";
136
+ style.borderTop = (theme) => `1px solid ${theme.palette.divider}`;
137
+ style.boxShadow = "0 -4px 8px -4px rgba(0, 0, 0, 0.15), 0 -6px 12px -6px rgba(0, 0, 0, 0.1)";
138
+ }
139
+ const Component = position === "top" ? TableHead : TableFooter;
140
+ return /* @__PURE__ */ jsx(Component, {
141
+ component: "div",
142
+ className: `sticky-${position}-rows`,
143
+ sx: style,
144
+ children
145
+ });
146
+ },
147
+ PinnedCols: ({ children, position, pinned }) => {
148
+ if (pinned.length === 0) {
149
+ return null;
150
+ }
151
+ const style = {
152
+ position: "sticky",
153
+ zIndex: 3,
154
+ display: "flex"
155
+ };
156
+ if (position === "left") {
157
+ style.left = 0;
158
+ } else if (position === "right") {
159
+ style.right = 0;
160
+ }
161
+ return /* @__PURE__ */ jsx(Box, {
162
+ component: "div",
163
+ className: `sticky-${position}-cols`,
164
+ sx: style,
165
+ children
166
+ });
167
+ },
168
+ TableRowWrapper: React.forwardRef(({ children, flatIndex, dndStyle }, ref) => {
169
+ const theme = useTheme();
170
+ const backgroundColor = (theme2) => {
171
+ const baseColor = flatIndex % 2 === 0 ? theme2.palette.background.paper : theme2.palette.mode === "dark" ? theme2.palette.grey[900] : theme2.palette.grey[100];
172
+ return baseColor;
173
+ };
174
+ const vars = {
175
+ "--row-background-color": backgroundColor(theme)
176
+ };
177
+ return /* @__PURE__ */ jsx(Box, {
178
+ sx: {
179
+ ...dndStyle,
180
+ ...vars,
181
+ width: "var(--table-width)",
182
+ display: "flex",
183
+ flexDirection: "column",
184
+ justifyContent: "flex-start",
185
+ alignItems: "stretch"
186
+ },
187
+ "data-index": flatIndex,
188
+ ref,
189
+ children
190
+ });
191
+ }),
192
+ TableRow: ({ children }) => {
193
+ return /* @__PURE__ */ jsx(TableRow, {
194
+ component: "div",
195
+ className: "table-row",
196
+ sx: {
197
+ position: "relative",
198
+ width: "var(--table-width)",
199
+ display: "flex",
200
+ height: "var(--row-height)",
201
+ zIndex: 1,
202
+ boxSizing: "border-box",
203
+ backgroundColor: "var(--row-background-color)",
204
+ "&:hover": {
205
+ backgroundColor: (theme) => {
206
+ return theme.palette.mode === "dark" ? "#1e1e52" : "#E3F2FD";
207
+ }
208
+ }
209
+ },
210
+ children
211
+ });
212
+ },
213
+ TableRowExpandedContent: ({ children }) => {
214
+ const { table } = useTableContext();
215
+ return /* @__PURE__ */ jsx(TableRow, {
216
+ component: "div",
217
+ className: "expanded-row",
218
+ sx: {
219
+ backgroundColor: (theme) => theme.palette.background.default
220
+ },
221
+ children: /* @__PURE__ */ jsx(TableCell, {
222
+ component: "div",
223
+ className: "expanded-cell",
224
+ colSpan: table.getAllLeafColumns().length,
225
+ sx: {
226
+ padding: 2
227
+ },
228
+ children
229
+ })
230
+ });
231
+ },
232
+ Cell: React.forwardRef(({ children, header, isMeasuring, isLastPinned, isLast, isLastCenter }, ref) => {
233
+ const { isPinned } = header;
234
+ const { table } = useTableContext();
235
+ return /* @__PURE__ */ jsx(TableCell, {
236
+ className: "td",
237
+ component: "div",
238
+ ref,
239
+ sx: {
240
+ height: "var(--row-height)",
241
+ width: isMeasuring ? "auto" : header.width,
242
+ overflow: "hidden",
243
+ textOverflow: "ellipsis",
244
+ whiteSpace: "nowrap",
245
+ zIndex: isPinned ? 5 : 0,
246
+ boxSizing: "border-box",
247
+ fontSize: "0.875rem",
248
+ color: "text.primary",
249
+ alignItems: "center",
250
+ gap: "8px",
251
+ display: "flex",
252
+ justifyContent: "flex-start",
253
+ alignContent: "center",
254
+ padding: "6px 12px",
255
+ backgroundColor: "var(--row-background-color)",
256
+ borderBottom: "none",
257
+ flexShrink: 0,
258
+ position: "relative",
259
+ borderRight: (isPinned === "start" && !isLastPinned || !isPinned) && !isLast && !(isLastCenter && table.getIsSomeColumnsPinned("right")) ? (theme) => `1px solid ${theme.palette.divider}` : undefined,
260
+ borderLeft: isPinned === "end" && !isLastPinned ? (theme) => `1px solid ${theme.palette.divider}` : undefined,
261
+ ".table-row:hover &": {
262
+ backgroundColor: (theme) => {
263
+ return theme.palette.mode === "dark" ? "#1e1e52" : "#E3F2FD";
264
+ },
265
+ zIndex: isPinned ? 2 : 0
266
+ }
267
+ },
268
+ children
269
+ });
270
+ }),
271
+ PinnedColsOverlay: ({ position }) => {
272
+ const { table } = useTableContext();
273
+ if (!table.getIsSomeColumnsPinned(position)) {
274
+ return null;
275
+ }
276
+ const width = position === "left" ? table.getLeftTotalSize() : table.getRightTotalSize();
277
+ const style = {
278
+ width,
279
+ [position]: 0,
280
+ position: "sticky",
281
+ top: 0,
282
+ bottom: 0,
283
+ zIndex: 20,
284
+ pointerEvents: "none"
285
+ };
286
+ if (position === "left") {
287
+ style.boxShadow = "4px 0 8px -4px rgba(0, 0, 0, 0.15), 6px 0 12px -6px rgba(0, 0, 0, 0.1)";
288
+ } else if (position === "right") {
289
+ style.boxShadow = "-4px 0 8px -4px rgba(0, 0, 0, 0.15), -6px 0 12px -6px rgba(0, 0, 0, 0.1)";
290
+ }
291
+ return /* @__PURE__ */ jsx("div", {
292
+ className: `pinned-${position}-overlay`,
293
+ style
294
+ });
295
+ }
296
+ };
297
+ var TableHeaderCell = React.forwardRef(({
298
+ headerId,
299
+ isPinned,
300
+ width,
301
+ header,
302
+ type,
303
+ isLast,
304
+ isLastPinned,
305
+ isLastCenter,
306
+ isMeasuring
307
+ }, ref) => {
308
+ const { table } = useTableContext();
309
+ return /* @__PURE__ */ jsx(TableCell, {
310
+ ref,
311
+ component: "div",
312
+ className: "th",
313
+ "data-header-id": headerId,
314
+ "data-is-pinned": isPinned,
315
+ sx: {
316
+ transition: "background-color 0.2s ease",
317
+ whiteSpace: "nowrap",
318
+ zIndex: isPinned ? 1 : 0,
319
+ display: "flex",
320
+ overflow: "hidden",
321
+ height: "var(--header-row-height)",
322
+ width: isMeasuring ? "auto" : width,
323
+ position: "relative",
324
+ flexShrink: 0,
325
+ alignItems: "center",
326
+ gap: "8px",
327
+ justifyContent: "space-between",
328
+ padding: "6px 12px",
329
+ boxSizing: "border-box",
330
+ fontWeight: 600,
331
+ backgroundColor: isPinned ? (theme) => theme.palette.background.paper : "transparent",
332
+ borderRight: (isPinned === "start" && !isLastPinned || !isPinned) && !isLast && !(isLastCenter && table.getIsSomeColumnsPinned("right")) ? (theme) => `1px solid ${theme.palette.divider}` : undefined,
333
+ borderLeft: isPinned === "end" && !isLastPinned ? (theme) => `1px solid ${theme.palette.divider}` : undefined
334
+ },
335
+ children: /* @__PURE__ */ jsx("div", {
336
+ style: { flex: 1, display: "flex", justifyContent: "flex-start" },
337
+ children: header && !header.isPlaceholder ? flexRender(header.column.columnDef[type], header.getContext()) : null
338
+ })
339
+ });
340
+ });
341
+ function TableHeaderRow({ children }) {
342
+ return /* @__PURE__ */ jsx(TableRow, {
343
+ component: "div",
344
+ sx: { height: "var(--row-height)", display: "flex" },
345
+ children
346
+ });
347
+ }
348
+ export {
349
+ AnoccaSkin
350
+ };
351
+
352
+ //# debugId=001892AC4490D51E64756E2164756E21
@@ -0,0 +1,10 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/index.tsx"],
4
+ "sourcesContent": [
5
+ "import {\n Box,\n Paper,\n SxProps,\n TableBody,\n TableCell,\n TableFooter,\n TableHead,\n TableRow,\n Theme,\n useTheme,\n} from \"@mui/material\";\nimport {\n Skin,\n useTableContext,\n useTableCssVars,\n VirtualHeader,\n} from \"@rttui/core\";\nimport React, { CSSProperties } from \"react\";\nimport { flexRender } from \"@tanstack/react-table\";\n\nconst AnoccaSkin: Skin = {\n rowHeight: 32,\n headerRowHeight: 32,\n footerRowHeight: 32,\n OverlayContainer: ({ children }) => {\n const { width, height } = useTableContext();\n const cssVars = useTableCssVars();\n return (\n <div\n className=\"rttui-overlay-container\"\n style={{\n position: \"relative\",\n width: width + \"px\",\n height: height + \"px\",\n ...cssVars,\n }}\n >\n {children}\n </div>\n );\n },\n OuterContainer: ({ children }) => {\n const { tableContainerRef } = useTableContext();\n\n return (\n <Paper\n ref={tableContainerRef}\n className=\"outer-container\"\n elevation={2}\n sx={{\n overflow: \"auto\",\n width: \"var(--table-container-width)\",\n height: \"var(--table-container-height)\",\n position: \"relative\",\n contain: \"paint\",\n willChange: \"transform\",\n borderRadius: 1,\n }}\n >\n {children}\n </Paper>\n );\n },\n TableScroller: () => {\n return (\n <div\n className=\"table-scroller\"\n style={{\n width: \"var(--table-width)\",\n height:\n \"calc(var(--table-height) + var(--header-height) + var(--footer-height))\",\n position: \"absolute\",\n }}\n ></div>\n );\n },\n TableHeader: ({ children }) => {\n return (\n <TableHead\n component=\"div\"\n className=\"thead\"\n sx={{\n position: \"sticky\",\n top: 0,\n width: \"var(--table-width)\",\n zIndex: 2,\n backgroundColor: (theme) => theme.palette.background.paper,\n boxShadow: (theme) => `0 1px 0 ${theme.palette.divider}`,\n display: \"flex\",\n flexDirection: \"column\",\n justifyContent: \"flex-start\",\n alignItems: \"stretch\",\n }}\n >\n {children}\n </TableHead>\n );\n },\n TableFooter: ({ children }) => {\n return (\n <TableFooter\n component=\"div\"\n className=\"table-footer\"\n sx={{\n position: \"sticky\",\n bottom: -1,\n width: \"var(--table-width)\",\n zIndex: 2,\n backgroundColor: (theme) => theme.palette.background.paper,\n boxShadow: (theme) => `0 -1px 0 ${theme.palette.divider}`,\n }}\n >\n {children}\n </TableFooter>\n );\n },\n HeaderRow: TableHeaderRow,\n HeaderCell: React.forwardRef((props, ref) => {\n return <TableHeaderCell {...props} ref={ref} />;\n }),\n TableBody: ({ children }) => {\n return (\n <TableBody\n component=\"div\"\n className=\"table-body\"\n sx={{\n position: \"relative\",\n width: \"var(--table-width)\",\n height: \"var(--table-height)\",\n display: \"flex\",\n flexDirection: \"column\",\n justifyContent: \"flex-start\",\n alignItems: \"stretch\",\n }}\n >\n {children}\n </TableBody>\n );\n },\n PinnedRows: ({ children, position, pinned }) => {\n if (pinned.length === 0) {\n return null;\n }\n\n const style: SxProps<Theme> = {\n position: \"sticky\",\n zIndex: 3,\n };\n if (position === \"top\") {\n style.top = \"var(--header-height)\";\n style.borderBottom = (theme) => `1px solid ${theme.palette.divider}`;\n style.boxShadow =\n \"0 4px 8px -4px rgba(0, 0, 0, 0.15), 0 6px 12px -6px rgba(0, 0, 0, 0.1)\";\n } else if (position === \"bottom\") {\n style.bottom = \"var(--footer-height)\";\n style.borderTop = (theme) => `1px solid ${theme.palette.divider}`;\n style.boxShadow =\n \"0 -4px 8px -4px rgba(0, 0, 0, 0.15), 0 -6px 12px -6px rgba(0, 0, 0, 0.1)\";\n }\n\n const Component = position === \"top\" ? TableHead : TableFooter;\n\n return (\n <Component\n component=\"div\"\n className={`sticky-${position}-rows`}\n sx={style}\n >\n {children}\n </Component>\n );\n },\n PinnedCols: ({ children, position, pinned }) => {\n if (pinned.length === 0) {\n return null;\n }\n\n const style: SxProps<Theme> = {\n position: \"sticky\",\n zIndex: 3,\n display: \"flex\",\n };\n\n if (position === \"left\") {\n style.left = 0;\n } else if (position === \"right\") {\n style.right = 0;\n }\n\n return (\n <Box component=\"div\" className={`sticky-${position}-cols`} sx={style}>\n {children}\n </Box>\n );\n },\n\n TableRowWrapper: React.forwardRef(\n ({ children, flatIndex, dndStyle }, ref) => {\n const theme = useTheme();\n const backgroundColor = (theme: Theme) => {\n const baseColor =\n flatIndex % 2 === 0\n ? theme.palette.background.paper\n : theme.palette.mode === \"dark\"\n ? theme.palette.grey[900]\n : theme.palette.grey[100];\n return baseColor;\n };\n\n const vars: Record<string, string> = {\n \"--row-background-color\": backgroundColor(theme),\n };\n\n return (\n <Box\n sx={{\n ...dndStyle,\n ...vars,\n width: \"var(--table-width)\",\n display: \"flex\",\n flexDirection: \"column\",\n justifyContent: \"flex-start\",\n alignItems: \"stretch\",\n }}\n data-index={flatIndex}\n ref={ref}\n >\n {children}\n </Box>\n );\n },\n ),\n TableRow: ({ children }) => {\n return (\n <TableRow\n component=\"div\"\n className=\"table-row\"\n sx={{\n position: \"relative\",\n width: \"var(--table-width)\",\n display: \"flex\",\n height: \"var(--row-height)\",\n zIndex: 1,\n boxSizing: \"border-box\",\n backgroundColor: \"var(--row-background-color)\",\n \"&:hover\": {\n backgroundColor: (theme) => {\n // Always use solid background colors for all cells on hover\n return theme.palette.mode === \"dark\"\n ? \"#1e1e52\" // Dark blue solid color\n : \"#E3F2FD\"; // Light blue solid color\n },\n },\n }}\n >\n {children}\n </TableRow>\n );\n },\n TableRowExpandedContent: ({ children }) => {\n const { table } = useTableContext();\n return (\n <TableRow\n component=\"div\"\n className=\"expanded-row\"\n sx={{\n backgroundColor: (theme) => theme.palette.background.default,\n }}\n >\n <TableCell\n component=\"div\"\n className=\"expanded-cell\"\n colSpan={table.getAllLeafColumns().length}\n sx={{\n padding: 2,\n }}\n >\n {children}\n </TableCell>\n </TableRow>\n );\n },\n Cell: React.forwardRef(\n (\n { children, header, isMeasuring, isLastPinned, isLast, isLastCenter },\n ref,\n ) => {\n const { isPinned } = header;\n const { table } = useTableContext();\n return (\n <TableCell\n className=\"td\"\n component=\"div\"\n ref={ref}\n sx={{\n height: \"var(--row-height)\",\n width: isMeasuring ? \"auto\" : header.width,\n overflow: \"hidden\",\n textOverflow: \"ellipsis\",\n whiteSpace: \"nowrap\",\n zIndex: isPinned ? 5 : 0,\n boxSizing: \"border-box\",\n fontSize: \"0.875rem\",\n color: \"text.primary\",\n alignItems: \"center\",\n gap: \"8px\",\n display: \"flex\",\n justifyContent: \"flex-start\",\n alignContent: \"center\",\n padding: \"6px 12px\",\n backgroundColor: \"var(--row-background-color)\",\n borderBottom: \"none\",\n flexShrink: 0,\n position: \"relative\",\n borderRight:\n ((isPinned === \"start\" && !isLastPinned) || !isPinned) &&\n !isLast &&\n !(isLastCenter && table.getIsSomeColumnsPinned(\"right\"))\n ? (theme) => `1px solid ${theme.palette.divider}`\n : undefined,\n borderLeft:\n isPinned === \"end\" && !isLastPinned\n ? (theme) => `1px solid ${theme.palette.divider}`\n : undefined,\n \".table-row:hover &\": {\n backgroundColor: (theme) => {\n // Always use solid background colors for all cells on hover\n return theme.palette.mode === \"dark\"\n ? \"#1e1e52\" // Dark blue solid color\n : \"#E3F2FD\"; // Light blue solid color\n },\n zIndex: isPinned ? 2 : 0,\n },\n }}\n >\n {children}\n </TableCell>\n );\n },\n ),\n PinnedColsOverlay: ({ position }) => {\n const { table } = useTableContext();\n if (!table.getIsSomeColumnsPinned(position)) {\n return null;\n }\n const width =\n position === \"left\"\n ? table.getLeftTotalSize()\n : table.getRightTotalSize();\n\n const style: CSSProperties = {\n width,\n [position]: 0,\n position: \"sticky\",\n top: 0,\n bottom: 0,\n zIndex: 20,\n pointerEvents: \"none\",\n };\n\n if (position === \"left\") {\n style.boxShadow =\n \"4px 0 8px -4px rgba(0, 0, 0, 0.15), 6px 0 12px -6px rgba(0, 0, 0, 0.1)\";\n } else if (position === \"right\") {\n style.boxShadow =\n \"-4px 0 8px -4px rgba(0, 0, 0, 0.15), -6px 0 12px -6px rgba(0, 0, 0, 0.1)\";\n }\n return <div className={`pinned-${position}-overlay`} style={style} />;\n },\n};\n\nconst TableHeaderCell = React.forwardRef<\n HTMLDivElement,\n VirtualHeader & {\n type: \"header\" | \"footer\";\n isLast: boolean;\n isFirst: boolean;\n isLastPinned: boolean;\n isFirstPinned: boolean;\n isLastCenter: boolean;\n isFirstCenter: boolean;\n isMeasuring: boolean;\n }\n>(\n (\n {\n headerId,\n isPinned,\n width,\n header,\n type,\n isLast,\n isLastPinned,\n isLastCenter,\n isMeasuring,\n },\n ref,\n ) => {\n const { table } = useTableContext();\n return (\n <TableCell\n ref={ref}\n component=\"div\"\n className=\"th\"\n data-header-id={headerId}\n data-is-pinned={isPinned}\n sx={{\n transition: \"background-color 0.2s ease\",\n whiteSpace: \"nowrap\",\n zIndex: isPinned ? 1 : 0,\n display: \"flex\",\n overflow: \"hidden\",\n height: \"var(--header-row-height)\",\n width: isMeasuring ? \"auto\" : width,\n position: \"relative\",\n flexShrink: 0,\n alignItems: \"center\",\n gap: \"8px\",\n justifyContent: \"space-between\",\n padding: \"6px 12px\",\n boxSizing: \"border-box\",\n fontWeight: 600,\n backgroundColor: isPinned\n ? (theme) => theme.palette.background.paper\n : \"transparent\",\n borderRight:\n ((isPinned === \"start\" && !isLastPinned) || !isPinned) &&\n !isLast &&\n !(isLastCenter && table.getIsSomeColumnsPinned(\"right\"))\n ? (theme) => `1px solid ${theme.palette.divider}`\n : undefined,\n borderLeft:\n isPinned === \"end\" && !isLastPinned\n ? (theme) => `1px solid ${theme.palette.divider}`\n : undefined,\n }}\n >\n <div style={{ flex: 1, display: \"flex\", justifyContent: \"flex-start\" }}>\n {header && !header.isPlaceholder\n ? flexRender(header.column.columnDef[type], header.getContext())\n : null}\n </div>\n </TableCell>\n );\n },\n);\n\nexport { AnoccaSkin };\n\nfunction TableHeaderRow({ children }: { children: React.ReactNode }) {\n return (\n <TableRow\n component=\"div\"\n sx={{ height: \"var(--row-height)\", display: \"flex\" }}\n >\n {children}\n </TableRow>\n );\n}\n"
6
+ ],
7
+ "mappings": "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",
8
+ "debugId": "001892AC4490D51E64756E2164756E21",
9
+ "names": []
10
+ }
@@ -0,0 +1,5 @@
1
+ {
2
+ "name": "@rttui/skin-anocca",
3
+ "version": "1.0.17",
4
+ "type": "module"
5
+ }
@@ -0,0 +1,204 @@
1
+ // packages/skin-anocca/src/stories/ReactTanstackTableUiStory.stories.tsx
2
+ import { getCoreRowModel } from "@tanstack/react-table";
3
+ import { AnoccaSkin } from "..";
4
+ import { ReactTanstackTableUi } from "./ReactTanstackTableUiStoryComponent.mjs";
5
+ import { createSourceCode } from "./createSourceCode.mjs";
6
+ var meta = {
7
+ title: "ReactTanstackTableUi",
8
+ component: ReactTanstackTableUi,
9
+ parameters: {
10
+ layout: "centered"
11
+ },
12
+ argTypes: {
13
+ data: { control: "select" },
14
+ columns: { control: "select" },
15
+ pinColsRelativeTo: { control: "select", options: ["cols", "table"] },
16
+ skin: {
17
+ control: "object",
18
+ table: { disable: true }
19
+ }
20
+ },
21
+ args: {
22
+ width: 600,
23
+ height: 400,
24
+ skin: AnoccaSkin,
25
+ autoCrushColumns: false,
26
+ data: "big",
27
+ columns: "few",
28
+ getCoreRowModel: getCoreRowModel(),
29
+ pinColsRelativeTo: "cols",
30
+ fillAvailableSpaceAfterCrush: false,
31
+ scrollbarWidth: 16,
32
+ getRowId: (row) => row.id
33
+ }
34
+ };
35
+ var ReactTanstackTableUiStory_stories_default = meta;
36
+ var Basic = {
37
+ args: {
38
+ enableColumnPinning: true,
39
+ autoCrushColumns: false,
40
+ fillAvailableSpaceAfterCrush: false,
41
+ pinColsRelativeTo: "cols"
42
+ },
43
+ parameters: {
44
+ docs: {
45
+ source: { language: "tsx", code: createSourceCode() }
46
+ }
47
+ }
48
+ };
49
+ var AutoCrushColumns = {
50
+ args: {
51
+ autoCrushColumns: true
52
+ },
53
+ parameters: {
54
+ docs: {
55
+ source: {
56
+ language: "tsx",
57
+ code: createSourceCode({ props: " autoCrushColumns" })
58
+ }
59
+ }
60
+ }
61
+ };
62
+ var AutoCrushColumnsExceptName = {
63
+ args: {
64
+ autoCrushColumns: true,
65
+ enableColumnPinning: true,
66
+ meta: {
67
+ name: {
68
+ autoCrush: false
69
+ }
70
+ }
71
+ },
72
+ parameters: {
73
+ docs: {
74
+ source: {
75
+ language: "tsx",
76
+ code: createSourceCode({
77
+ props: " autoCrushColumns",
78
+ nameMeta: " autoCrush: false,"
79
+ })
80
+ }
81
+ }
82
+ }
83
+ };
84
+ var PinRelativeToCols = {
85
+ args: {
86
+ autoCrushColumns: true,
87
+ pinColsRelativeTo: "cols",
88
+ enableColumnPinning: true,
89
+ initialState: {
90
+ columnPinning: {
91
+ right: ["city"]
92
+ }
93
+ }
94
+ }
95
+ };
96
+ var PinRelativeToTable = {
97
+ args: {
98
+ autoCrushColumns: true,
99
+ pinColsRelativeTo: "table",
100
+ enableColumnPinning: true,
101
+ initialState: {
102
+ columnPinning: {
103
+ right: ["city"]
104
+ }
105
+ }
106
+ }
107
+ };
108
+ var FillAvailableSpaceAfterCrush = {
109
+ args: {
110
+ autoCrushColumns: true,
111
+ fillAvailableSpaceAfterCrush: true
112
+ }
113
+ };
114
+ var FillAvailableSpaceAfterCrushExceptName = {
115
+ args: {
116
+ autoCrushColumns: true,
117
+ fillAvailableSpaceAfterCrush: true,
118
+ meta: {
119
+ name: {
120
+ fillAvailableSpaceAfterCrush: false
121
+ }
122
+ }
123
+ },
124
+ parameters: {
125
+ docs: {
126
+ source: {
127
+ language: "tsx",
128
+ code: createSourceCode({
129
+ props: ` autoCrushColumns
130
+ fillAvailableSpaceAfterCrush`,
131
+ nameMeta: " fillAvailableSpaceAfterCrush: false,"
132
+ })
133
+ }
134
+ }
135
+ }
136
+ };
137
+ var FillAvailableSpaceAfterCrushWithoutSpecifiedScrollbarWidth = {
138
+ args: {
139
+ autoCrushColumns: true,
140
+ fillAvailableSpaceAfterCrush: true,
141
+ scrollbarWidth: 0
142
+ }
143
+ };
144
+ var CanPinRowsRelativeToRows = {
145
+ args: {
146
+ enableRowPinning: true,
147
+ enableColumnPinning: true,
148
+ data: "small",
149
+ pinRowsRelativeTo: "rows",
150
+ initialState: {
151
+ rowPinning: {
152
+ bottom: ["3"]
153
+ }
154
+ }
155
+ }
156
+ };
157
+ var CanPinRowsRelativeToTable = {
158
+ args: {
159
+ enableRowPinning: true,
160
+ enableColumnPinning: true,
161
+ data: "small",
162
+ pinRowsRelativeTo: "table",
163
+ initialState: {
164
+ rowPinning: {
165
+ bottom: ["3"]
166
+ }
167
+ }
168
+ }
169
+ };
170
+ var SizeByLargestHeader = {
171
+ args: {
172
+ autoCrushColumns: true,
173
+ crushMinSizeBy: "cell"
174
+ }
175
+ };
176
+ var SizeByLargestHeaderWithMeta = {
177
+ args: {
178
+ autoCrushColumns: true,
179
+ crushMinSizeBy: "header",
180
+ enableColumnPinning: true,
181
+ meta: {
182
+ age: {
183
+ crushMinSizeBy: "cell"
184
+ }
185
+ }
186
+ }
187
+ };
188
+ export {
189
+ ReactTanstackTableUiStory_stories_default as default,
190
+ SizeByLargestHeaderWithMeta,
191
+ SizeByLargestHeader,
192
+ PinRelativeToTable,
193
+ PinRelativeToCols,
194
+ FillAvailableSpaceAfterCrushWithoutSpecifiedScrollbarWidth,
195
+ FillAvailableSpaceAfterCrushExceptName,
196
+ FillAvailableSpaceAfterCrush,
197
+ CanPinRowsRelativeToTable,
198
+ CanPinRowsRelativeToRows,
199
+ Basic,
200
+ AutoCrushColumnsExceptName,
201
+ AutoCrushColumns
202
+ };
203
+
204
+ //# debugId=1AEDED9358F80BC564756E2164756E21
@@ -0,0 +1,10 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/stories/ReactTanstackTableUiStory.stories.tsx"],
4
+ "sourcesContent": [
5
+ "import type { Meta, StoryObj } from \"@storybook/react\";\n\nimport { getCoreRowModel } from \"@tanstack/react-table\";\nimport { AnoccaSkin } from \"..\";\nimport { ReactTanstackTableUi } from \"./ReactTanstackTableUiStoryComponent.mjs\";\nimport { createSourceCode } from \"./createSourceCode.mjs\";\n\n// More on how to set up stories at: https://storybook.js.org/docs/writing-stories#default-export\nconst meta = {\n title: \"ReactTanstackTableUi\",\n component: ReactTanstackTableUi,\n parameters: {\n // Optional parameter to center the component in the Canvas. More info: https://storybook.js.org/docs/configure/story-layout\n layout: \"centered\",\n },\n // More on argTypes: https://storybook.js.org/docs/api/argtypes\n argTypes: {\n data: { control: \"select\" },\n columns: { control: \"select\" },\n pinColsRelativeTo: { control: \"select\", options: [\"cols\", \"table\"] },\n skin: {\n control: \"object\",\n table: { disable: true },\n },\n },\n // Use `fn` to spy on the onClick arg, which will appear in the actions panel once invoked: https://storybook.js.org/docs/essentials/actions#action-args\n args: {\n width: 600,\n height: 400,\n skin: AnoccaSkin,\n autoCrushColumns: false,\n data: \"big\",\n columns: \"few\",\n getCoreRowModel: getCoreRowModel(),\n pinColsRelativeTo: \"cols\",\n fillAvailableSpaceAfterCrush: false,\n scrollbarWidth: 16,\n getRowId: (row) => row.id,\n },\n} satisfies Meta<typeof ReactTanstackTableUi>;\n\nexport default meta;\ntype Story = StoryObj<typeof meta>;\n\nexport const Basic: Story = {\n args: {\n enableColumnPinning: true,\n autoCrushColumns: false,\n fillAvailableSpaceAfterCrush: false,\n pinColsRelativeTo: \"cols\",\n },\n parameters: {\n docs: {\n source: { language: \"tsx\", code: createSourceCode() },\n },\n },\n};\n\nexport const AutoCrushColumns: Story = {\n args: {\n autoCrushColumns: true,\n },\n parameters: {\n docs: {\n source: {\n language: \"tsx\",\n code: createSourceCode({ props: \" autoCrushColumns\" }),\n },\n },\n },\n};\n\nexport const AutoCrushColumnsExceptName: Story = {\n args: {\n autoCrushColumns: true,\n enableColumnPinning: true,\n meta: {\n name: {\n autoCrush: false,\n },\n },\n },\n parameters: {\n docs: {\n source: {\n language: \"tsx\",\n code: createSourceCode({\n props: \" autoCrushColumns\",\n nameMeta: \" autoCrush: false,\",\n }),\n },\n },\n },\n};\n\nexport const PinRelativeToCols: Story = {\n args: {\n autoCrushColumns: true,\n pinColsRelativeTo: \"cols\",\n enableColumnPinning: true,\n initialState: {\n columnPinning: {\n right: [\"city\"],\n },\n },\n },\n};\n\nexport const PinRelativeToTable: Story = {\n args: {\n autoCrushColumns: true,\n pinColsRelativeTo: \"table\",\n enableColumnPinning: true,\n initialState: {\n columnPinning: {\n right: [\"city\"],\n },\n },\n },\n};\n\nexport const FillAvailableSpaceAfterCrush: Story = {\n args: {\n autoCrushColumns: true,\n fillAvailableSpaceAfterCrush: true,\n },\n};\n\nexport const FillAvailableSpaceAfterCrushExceptName: Story = {\n args: {\n autoCrushColumns: true,\n fillAvailableSpaceAfterCrush: true,\n meta: {\n name: {\n fillAvailableSpaceAfterCrush: false,\n },\n },\n },\n parameters: {\n docs: {\n source: {\n language: \"tsx\",\n code: createSourceCode({\n props: \" autoCrushColumns\\n fillAvailableSpaceAfterCrush\",\n nameMeta: \" fillAvailableSpaceAfterCrush: false,\",\n }),\n },\n },\n },\n};\n\nexport const FillAvailableSpaceAfterCrushWithoutSpecifiedScrollbarWidth: Story =\n {\n args: {\n autoCrushColumns: true,\n fillAvailableSpaceAfterCrush: true,\n scrollbarWidth: 0,\n },\n };\n\nexport const CanPinRowsRelativeToRows: Story = {\n args: {\n enableRowPinning: true,\n enableColumnPinning: true,\n data: \"small\",\n pinRowsRelativeTo: \"rows\",\n initialState: {\n rowPinning: {\n bottom: [\"3\"],\n },\n },\n },\n};\n\nexport const CanPinRowsRelativeToTable: Story = {\n args: {\n enableRowPinning: true,\n enableColumnPinning: true,\n data: \"small\",\n pinRowsRelativeTo: \"table\",\n initialState: {\n rowPinning: {\n bottom: [\"3\"],\n },\n },\n },\n};\n\nexport const SizeByLargestHeader: Story = {\n args: {\n autoCrushColumns: true,\n crushMinSizeBy: \"cell\",\n },\n};\n\nexport const SizeByLargestHeaderWithMeta: Story = {\n args: {\n autoCrushColumns: true,\n crushMinSizeBy: \"header\",\n enableColumnPinning: true,\n meta: {\n age: {\n crushMinSizeBy: 'cell',\n },\n },\n },\n};\n"
6
+ ],
7
+ "mappings": "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",
8
+ "debugId": "1AEDED9358F80BC564756E2164756E21",
9
+ "names": []
10
+ }