@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,234 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropNames = Object.getOwnPropertyNames;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __moduleCache = /* @__PURE__ */ new WeakMap;
6
+ var __toCommonJS = (from) => {
7
+ var entry = __moduleCache.get(from), desc;
8
+ if (entry)
9
+ return entry;
10
+ entry = __defProp({}, "__esModule", { value: true });
11
+ if (from && typeof from === "object" || typeof from === "function")
12
+ __getOwnPropNames(from).map((key) => !__hasOwnProp.call(entry, key) && __defProp(entry, key, {
13
+ get: () => from[key],
14
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
15
+ }));
16
+ __moduleCache.set(from, entry);
17
+ return entry;
18
+ };
19
+ var __export = (target, all) => {
20
+ for (var name in all)
21
+ __defProp(target, name, {
22
+ get: all[name],
23
+ enumerable: true,
24
+ configurable: true,
25
+ set: (newValue) => all[name] = () => newValue
26
+ });
27
+ };
28
+
29
+ // packages/skin-anocca/src/stories/ReactTanstackTableUiStory.stories.tsx
30
+ var exports_ReactTanstackTableUiStory_stories = {};
31
+ __export(exports_ReactTanstackTableUiStory_stories, {
32
+ default: () => ReactTanstackTableUiStory_stories_default,
33
+ SizeByLargestHeaderWithMeta: () => SizeByLargestHeaderWithMeta,
34
+ SizeByLargestHeader: () => SizeByLargestHeader,
35
+ PinRelativeToTable: () => PinRelativeToTable,
36
+ PinRelativeToCols: () => PinRelativeToCols,
37
+ FillAvailableSpaceAfterCrushWithoutSpecifiedScrollbarWidth: () => FillAvailableSpaceAfterCrushWithoutSpecifiedScrollbarWidth,
38
+ FillAvailableSpaceAfterCrushExceptName: () => FillAvailableSpaceAfterCrushExceptName,
39
+ FillAvailableSpaceAfterCrush: () => FillAvailableSpaceAfterCrush,
40
+ CanPinRowsRelativeToTable: () => CanPinRowsRelativeToTable,
41
+ CanPinRowsRelativeToRows: () => CanPinRowsRelativeToRows,
42
+ Basic: () => Basic,
43
+ AutoCrushColumnsExceptName: () => AutoCrushColumnsExceptName,
44
+ AutoCrushColumns: () => AutoCrushColumns
45
+ });
46
+ module.exports = __toCommonJS(exports_ReactTanstackTableUiStory_stories);
47
+ var import_react_table = require("@tanstack/react-table");
48
+ var import___ = require("..");
49
+ var import_ReactTanstackTableUiStoryComponent = require("./ReactTanstackTableUiStoryComponent.cjs");
50
+ var import_createSourceCode = require("./createSourceCode.cjs");
51
+ var meta = {
52
+ title: "ReactTanstackTableUi",
53
+ component: import_ReactTanstackTableUiStoryComponent.ReactTanstackTableUi,
54
+ parameters: {
55
+ layout: "centered"
56
+ },
57
+ argTypes: {
58
+ data: { control: "select" },
59
+ columns: { control: "select" },
60
+ pinColsRelativeTo: { control: "select", options: ["cols", "table"] },
61
+ skin: {
62
+ control: "object",
63
+ table: { disable: true }
64
+ }
65
+ },
66
+ args: {
67
+ width: 600,
68
+ height: 400,
69
+ skin: import___.AnoccaSkin,
70
+ autoCrushColumns: false,
71
+ data: "big",
72
+ columns: "few",
73
+ getCoreRowModel: import_react_table.getCoreRowModel(),
74
+ pinColsRelativeTo: "cols",
75
+ fillAvailableSpaceAfterCrush: false,
76
+ scrollbarWidth: 16,
77
+ getRowId: (row) => row.id
78
+ }
79
+ };
80
+ var ReactTanstackTableUiStory_stories_default = meta;
81
+ var Basic = {
82
+ args: {
83
+ enableColumnPinning: true,
84
+ autoCrushColumns: false,
85
+ fillAvailableSpaceAfterCrush: false,
86
+ pinColsRelativeTo: "cols"
87
+ },
88
+ parameters: {
89
+ docs: {
90
+ source: { language: "tsx", code: import_createSourceCode.createSourceCode() }
91
+ }
92
+ }
93
+ };
94
+ var AutoCrushColumns = {
95
+ args: {
96
+ autoCrushColumns: true
97
+ },
98
+ parameters: {
99
+ docs: {
100
+ source: {
101
+ language: "tsx",
102
+ code: import_createSourceCode.createSourceCode({ props: " autoCrushColumns" })
103
+ }
104
+ }
105
+ }
106
+ };
107
+ var AutoCrushColumnsExceptName = {
108
+ args: {
109
+ autoCrushColumns: true,
110
+ enableColumnPinning: true,
111
+ meta: {
112
+ name: {
113
+ autoCrush: false
114
+ }
115
+ }
116
+ },
117
+ parameters: {
118
+ docs: {
119
+ source: {
120
+ language: "tsx",
121
+ code: import_createSourceCode.createSourceCode({
122
+ props: " autoCrushColumns",
123
+ nameMeta: " autoCrush: false,"
124
+ })
125
+ }
126
+ }
127
+ }
128
+ };
129
+ var PinRelativeToCols = {
130
+ args: {
131
+ autoCrushColumns: true,
132
+ pinColsRelativeTo: "cols",
133
+ enableColumnPinning: true,
134
+ initialState: {
135
+ columnPinning: {
136
+ right: ["city"]
137
+ }
138
+ }
139
+ }
140
+ };
141
+ var PinRelativeToTable = {
142
+ args: {
143
+ autoCrushColumns: true,
144
+ pinColsRelativeTo: "table",
145
+ enableColumnPinning: true,
146
+ initialState: {
147
+ columnPinning: {
148
+ right: ["city"]
149
+ }
150
+ }
151
+ }
152
+ };
153
+ var FillAvailableSpaceAfterCrush = {
154
+ args: {
155
+ autoCrushColumns: true,
156
+ fillAvailableSpaceAfterCrush: true
157
+ }
158
+ };
159
+ var FillAvailableSpaceAfterCrushExceptName = {
160
+ args: {
161
+ autoCrushColumns: true,
162
+ fillAvailableSpaceAfterCrush: true,
163
+ meta: {
164
+ name: {
165
+ fillAvailableSpaceAfterCrush: false
166
+ }
167
+ }
168
+ },
169
+ parameters: {
170
+ docs: {
171
+ source: {
172
+ language: "tsx",
173
+ code: import_createSourceCode.createSourceCode({
174
+ props: ` autoCrushColumns
175
+ fillAvailableSpaceAfterCrush`,
176
+ nameMeta: " fillAvailableSpaceAfterCrush: false,"
177
+ })
178
+ }
179
+ }
180
+ }
181
+ };
182
+ var FillAvailableSpaceAfterCrushWithoutSpecifiedScrollbarWidth = {
183
+ args: {
184
+ autoCrushColumns: true,
185
+ fillAvailableSpaceAfterCrush: true,
186
+ scrollbarWidth: 0
187
+ }
188
+ };
189
+ var CanPinRowsRelativeToRows = {
190
+ args: {
191
+ enableRowPinning: true,
192
+ enableColumnPinning: true,
193
+ data: "small",
194
+ pinRowsRelativeTo: "rows",
195
+ initialState: {
196
+ rowPinning: {
197
+ bottom: ["3"]
198
+ }
199
+ }
200
+ }
201
+ };
202
+ var CanPinRowsRelativeToTable = {
203
+ args: {
204
+ enableRowPinning: true,
205
+ enableColumnPinning: true,
206
+ data: "small",
207
+ pinRowsRelativeTo: "table",
208
+ initialState: {
209
+ rowPinning: {
210
+ bottom: ["3"]
211
+ }
212
+ }
213
+ }
214
+ };
215
+ var SizeByLargestHeader = {
216
+ args: {
217
+ autoCrushColumns: true,
218
+ crushMinSizeBy: "cell"
219
+ }
220
+ };
221
+ var SizeByLargestHeaderWithMeta = {
222
+ args: {
223
+ autoCrushColumns: true,
224
+ crushMinSizeBy: "header",
225
+ enableColumnPinning: true,
226
+ meta: {
227
+ age: {
228
+ crushMinSizeBy: "cell"
229
+ }
230
+ }
231
+ }
232
+ };
233
+
234
+ //# debugId=97BE60FB8925585064756E2164756E21
@@ -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.cjs\";\nimport { createSourceCode } from \"./createSourceCode.cjs\";\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": "97BE60FB8925585064756E2164756E21",
9
+ "names": []
10
+ }
@@ -0,0 +1,147 @@
1
+ var __create = Object.create;
2
+ var __getProtoOf = Object.getPrototypeOf;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __toESM = (mod, isNodeMode, target) => {
8
+ target = mod != null ? __create(__getProtoOf(mod)) : {};
9
+ const to = isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target;
10
+ for (let key of __getOwnPropNames(mod))
11
+ if (!__hasOwnProp.call(to, key))
12
+ __defProp(to, key, {
13
+ get: () => mod[key],
14
+ enumerable: true
15
+ });
16
+ return to;
17
+ };
18
+ var __moduleCache = /* @__PURE__ */ new WeakMap;
19
+ var __toCommonJS = (from) => {
20
+ var entry = __moduleCache.get(from), desc;
21
+ if (entry)
22
+ return entry;
23
+ entry = __defProp({}, "__esModule", { value: true });
24
+ if (from && typeof from === "object" || typeof from === "function")
25
+ __getOwnPropNames(from).map((key) => !__hasOwnProp.call(entry, key) && __defProp(entry, key, {
26
+ get: () => from[key],
27
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
28
+ }));
29
+ __moduleCache.set(from, entry);
30
+ return entry;
31
+ };
32
+ var __export = (target, all) => {
33
+ for (var name in all)
34
+ __defProp(target, name, {
35
+ get: all[name],
36
+ enumerable: true,
37
+ configurable: true,
38
+ set: (newValue) => all[name] = () => newValue
39
+ });
40
+ };
41
+
42
+ // packages/skin-anocca/src/stories/ReactTanstackTableUiStoryComponent.tsx
43
+ var exports_ReactTanstackTableUiStoryComponent = {};
44
+ __export(exports_ReactTanstackTableUiStoryComponent, {
45
+ ReactTanstackTableUi: () => ReactTanstackTableUi
46
+ });
47
+ module.exports = __toCommonJS(exports_ReactTanstackTableUiStoryComponent);
48
+ var import_material = require("@mui/material");
49
+ var import_styles = require("@mui/material/styles");
50
+ var import_core = require("@rttui/core");
51
+ var import_react_table = require("@tanstack/react-table");
52
+ var import_HeaderPinButtons = require("../HeaderPinButtons.cjs");
53
+ var import_react = __toESM(require("react"));
54
+ var import_RowPinButtons = require("../RowPinButtons.cjs");
55
+ var jsx_runtime = require("react/jsx-runtime");
56
+ var smallData = [
57
+ { id: "1", name: "John", age: 20, city: "New York" },
58
+ { id: "2", name: "Jane", age: 21, city: "Los Angeles" },
59
+ { id: "3", name: "Jim", age: 22, city: "Chicago" }
60
+ ];
61
+ var bigData = Array.from({ length: 1000 }, (_, i) => ({
62
+ id: i.toString(),
63
+ name: `Person ${i}`,
64
+ age: 20 + i,
65
+ city: `City ${i}`,
66
+ ...Object.fromEntries(Array.from({ length: 100 }, (_2, j) => [`col${j}`, `Value ${i}-${j}`]))
67
+ }));
68
+ var ReactTanstackTableUi = (props) => {
69
+ const theme = import_styles.useTheme();
70
+ const data = props.data === "big" ? bigData : smallData;
71
+ const columns = import_react.default.useMemo(() => {
72
+ const columnHelper = import_core.decorateColumnHelper(import_react_table.createColumnHelper(), {
73
+ header: (original) => /* @__PURE__ */ jsx_runtime.jsxs(import_material.Box, {
74
+ sx: { display: "flex", gap: 2 },
75
+ children: [
76
+ original,
77
+ props.enableColumnPinning && /* @__PURE__ */ jsx_runtime.jsx(import_HeaderPinButtons.HeaderPinButtons, {})
78
+ ]
79
+ })
80
+ });
81
+ const fewColumns = [
82
+ columnHelper.accessor("name", {
83
+ header: "Name",
84
+ cell: (info) => /* @__PURE__ */ jsx_runtime.jsxs(import_material.Box, {
85
+ sx: { display: "flex", gap: 2, flex: 1 },
86
+ children: [
87
+ /* @__PURE__ */ jsx_runtime.jsx(import_material.Typography, {
88
+ variant: "body2",
89
+ children: info.getValue()
90
+ }),
91
+ props.enableRowPinning && /* @__PURE__ */ jsx_runtime.jsx(import_material.Box, {
92
+ sx: { flexGrow: 1 }
93
+ }),
94
+ props.enableRowPinning && /* @__PURE__ */ jsx_runtime.jsx(import_RowPinButtons.RowPinButtons, {
95
+ row: info.row
96
+ })
97
+ ]
98
+ }),
99
+ meta: props.meta?.["name"]
100
+ }),
101
+ columnHelper.accessor("age", {
102
+ header: "Age",
103
+ meta: props.meta?.["age"],
104
+ cell: (info) => /* @__PURE__ */ jsx_runtime.jsx(import_material.Typography, {
105
+ variant: "body2",
106
+ children: info.getValue()
107
+ }),
108
+ size: 50
109
+ }),
110
+ columnHelper.accessor("city", {
111
+ header: "City",
112
+ meta: props.meta?.["city"],
113
+ cell: (info) => /* @__PURE__ */ jsx_runtime.jsx(import_material.Typography, {
114
+ variant: "body2",
115
+ children: info.getValue()
116
+ })
117
+ })
118
+ ];
119
+ const manyColumns = [
120
+ ...fewColumns,
121
+ ...Array.from({ length: 100 }, (_, i) => columnHelper.accessor(`col${i}`, {
122
+ header: `Column ${i}`,
123
+ cell: (info) => /* @__PURE__ */ jsx_runtime.jsx(import_material.Typography, {
124
+ variant: "body2",
125
+ children: info.getValue()
126
+ })
127
+ }))
128
+ ];
129
+ return props.columns === "few" ? fewColumns : manyColumns;
130
+ }, [props.columns, props.enableColumnPinning, props.enableRowPinning, props.meta]);
131
+ const table = import_react_table.useReactTable({
132
+ ...props,
133
+ data,
134
+ columns
135
+ });
136
+ return /* @__PURE__ */ jsx_runtime.jsx(import_material.ScopedCssBaseline, {
137
+ children: /* @__PURE__ */ jsx_runtime.jsx(import_material.ThemeProvider, {
138
+ theme,
139
+ children: /* @__PURE__ */ jsx_runtime.jsx(import_core.ReactTanstackTableUi, {
140
+ ...props,
141
+ table
142
+ })
143
+ })
144
+ });
145
+ };
146
+
147
+ //# debugId=220561BCEDE9C10664756E2164756E21
@@ -0,0 +1,10 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/stories/ReactTanstackTableUiStoryComponent.tsx"],
4
+ "sourcesContent": [
5
+ "import { Box, ScopedCssBaseline, ThemeProvider, Typography } from \"@mui/material\";\nimport { useTheme } from \"@mui/material/styles\";\nimport {\n decorateColumnHelper,\n ReactTanstackTableUi as TableComponent,\n} from \"@rttui/core\";\nimport {\n ColumnDef,\n ColumnMeta,\n createColumnHelper,\n Table,\n TableOptions,\n useReactTable,\n} from \"@tanstack/react-table\";\nimport { HeaderPinButtons } from \"../HeaderPinButtons.cjs\";\nimport React from \"react\";\nimport { RowPinButtons } from \"../RowPinButtons.cjs\";\ntype Person = {\n id: string;\n name: string;\n age: number;\n city: string;\n} & Record<`col${number}`, string>;\n\nconst smallData: Person[] = [\n { id: \"1\", name: \"John\", age: 20, city: \"New York\" },\n { id: \"2\", name: \"Jane\", age: 21, city: \"Los Angeles\" },\n { id: \"3\", name: \"Jim\", age: 22, city: \"Chicago\" },\n];\n\nconst bigData: Person[] = Array.from({ length: 1000 }, (_, i) => ({\n id: i.toString(),\n name: `Person ${i}`,\n age: 20 + i,\n city: `City ${i}`,\n ...Object.fromEntries(\n Array.from({ length: 100 }, (_, j) => [`col${j}`, `Value ${i}-${j}`]),\n ),\n}));\n\nexport const ReactTanstackTableUi = (\n props: {\n data: \"big\" | \"small\";\n columns: \"many\" | \"few\";\n meta?: Record<string, ColumnMeta<Person, string>>;\n } & Omit<TableOptions<Person>, \"data\" | \"columns\"> &\n Omit<React.ComponentProps<typeof TableComponent>, \"table\">,\n) => {\n const theme = useTheme();\n const data: Person[] = props.data === \"big\" ? bigData : smallData;\n\n const columns: ColumnDef<Person>[] = React.useMemo(() => {\n const columnHelper = decorateColumnHelper(createColumnHelper<Person>(), {\n header: (original) => (\n <Box sx={{ display: \"flex\", gap: 2 }}>\n {original}\n {props.enableColumnPinning && <HeaderPinButtons />}\n </Box>\n ),\n });\n\n const fewColumns = [\n columnHelper.accessor(\"name\", {\n header: \"Name\",\n cell: (info) => (\n <Box sx={{ display: \"flex\", gap: 2, flex: 1 }}>\n <Typography variant=\"body2\">{info.getValue()}</Typography>\n {props.enableRowPinning && <Box sx={{ flexGrow: 1 }} />}\n {props.enableRowPinning && <RowPinButtons row={info.row} />}\n </Box>\n ),\n meta: props.meta?.[\"name\"],\n }),\n columnHelper.accessor(\"age\", {\n header: \"Age\",\n meta: props.meta?.[\"age\"],\n cell: (info) => <Typography variant=\"body2\">{info.getValue()}</Typography>,\n size: 50,\n }),\n columnHelper.accessor(\"city\", {\n header: \"City\",\n meta: props.meta?.[\"city\"],\n cell: (info) => <Typography variant=\"body2\">{info.getValue()}</Typography>,\n }),\n ];\n\n const manyColumns = [\n ...fewColumns,\n ...Array.from({ length: 100 }, (_, i) =>\n columnHelper.accessor(`col${i}`, {\n header: `Column ${i}`,\n cell: (info) => <Typography variant=\"body2\">{info.getValue()}</Typography>,\n }),\n ),\n ];\n\n return props.columns === \"few\" ? fewColumns : manyColumns;\n }, [props.columns, props.enableColumnPinning, props.enableRowPinning, props.meta]);\n\n const table = useReactTable({\n ...props,\n data,\n columns,\n });\n\n return (\n <ScopedCssBaseline>\n <ThemeProvider theme={theme}>\n <TableComponent {...props} table={table as Table<unknown>} />\n </ThemeProvider>\n </ScopedCssBaseline>\n );\n};\n"
6
+ ],
7
+ "mappings": "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",
8
+ "debugId": "220561BCEDE9C10664756E2164756E21",
9
+ "names": []
10
+ }
@@ -0,0 +1,92 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropNames = Object.getOwnPropertyNames;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __moduleCache = /* @__PURE__ */ new WeakMap;
6
+ var __toCommonJS = (from) => {
7
+ var entry = __moduleCache.get(from), desc;
8
+ if (entry)
9
+ return entry;
10
+ entry = __defProp({}, "__esModule", { value: true });
11
+ if (from && typeof from === "object" || typeof from === "function")
12
+ __getOwnPropNames(from).map((key) => !__hasOwnProp.call(entry, key) && __defProp(entry, key, {
13
+ get: () => from[key],
14
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
15
+ }));
16
+ __moduleCache.set(from, entry);
17
+ return entry;
18
+ };
19
+ var __export = (target, all) => {
20
+ for (var name in all)
21
+ __defProp(target, name, {
22
+ get: all[name],
23
+ enumerable: true,
24
+ configurable: true,
25
+ set: (newValue) => all[name] = () => newValue
26
+ });
27
+ };
28
+
29
+ // packages/skin-anocca/src/stories/createSourceCode.ts
30
+ var exports_createSourceCode = {};
31
+ __export(exports_createSourceCode, {
32
+ createSourceCode: () => createSourceCode
33
+ });
34
+ module.exports = __toCommonJS(exports_createSourceCode);
35
+ var createSourceCode = (opts) => {
36
+ return `import { createColumnHelper, useReactTable, getCoreRowModel } from "@tanstack/react-table";
37
+ import { Box } from "@mui/material";
38
+ import { HeaderPinButtons } from "@rttui/skin-anocca";
39
+ import { ReactTanstackTableUi, decorateColumnHelper } from "@rttui/core";
40
+
41
+ type Person = {
42
+ id: string;
43
+ name: string;
44
+ age: number;
45
+ city: string;
46
+ };
47
+
48
+ const data: Person[] = [
49
+ { id: "1", name: "John", age: 20, city: "New York" },
50
+ { id: "2", name: "Jane", age: 21, city: "Los Angeles" },
51
+ { id: "3", name: "Jim", age: 22, city: "Chicago" },
52
+ ];
53
+
54
+ const columnHelper = decorateColumnHelper(createColumnHelper<Person>(), {
55
+ header: (original) => (
56
+ <Box sx={{ display: "flex", gap: 2 }}>
57
+ {original}
58
+ {props.enableColumnPinning && <HeaderPinButtons />}
59
+ </Box>
60
+ ),
61
+ });
62
+
63
+ const columns = [
64
+ columnHelper.accessor("name", {
65
+ header: "Name",${opts?.nameMeta ? `
66
+ ` + opts.nameMeta : ""}
67
+ }),
68
+ columnHelper.accessor("age", {
69
+ header: "Age",
70
+ size: 50,
71
+ }),
72
+ columnHelper.accessor("city", {
73
+ header: "City",
74
+ }),
75
+ ];
76
+
77
+ const table = useReactTable({
78
+ data,
79
+ columns,
80
+ getCoreRowModel: getCoreRowModel()${opts?.hookOptions ? `
81
+ ` + opts.hookOptions : ""}
82
+ });
83
+
84
+ <ReactTanstackTableUi
85
+ table={table}
86
+ enableColumnPinning${opts?.props ? `
87
+ ` + opts.props : ""}
88
+ />
89
+ `;
90
+ };
91
+
92
+ //# debugId=6983E6EC5F7C00DB64756E2164756E21
@@ -0,0 +1,10 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/stories/createSourceCode.ts"],
4
+ "sourcesContent": [
5
+ "export const createSourceCode = (opts?: { hookOptions?: string, props?: string, nameMeta?: string }) => {\n return `import { createColumnHelper, useReactTable, getCoreRowModel } from \"@tanstack/react-table\";\nimport { Box } from \"@mui/material\";\nimport { HeaderPinButtons } from \"@rttui/skin-anocca\";\nimport { ReactTanstackTableUi, decorateColumnHelper } from \"@rttui/core\";\n\ntype Person = {\n id: string;\n name: string;\n age: number;\n city: string;\n};\n\nconst data: Person[] = [\n { id: \"1\", name: \"John\", age: 20, city: \"New York\" },\n { id: \"2\", name: \"Jane\", age: 21, city: \"Los Angeles\" },\n { id: \"3\", name: \"Jim\", age: 22, city: \"Chicago\" },\n];\n\nconst columnHelper = decorateColumnHelper(createColumnHelper<Person>(), {\n header: (original) => (\n <Box sx={{ display: \"flex\", gap: 2 }}>\n {original}\n {props.enableColumnPinning && <HeaderPinButtons />}\n </Box>\n ),\n});\n\nconst columns = [\n columnHelper.accessor(\"name\", {\n header: \"Name\",${opts?.nameMeta ? '\\n' + opts.nameMeta : ''}\n }),\n columnHelper.accessor(\"age\", {\n header: \"Age\",\n size: 50,\n }),\n columnHelper.accessor(\"city\", {\n header: \"City\",\n }),\n];\n\nconst table = useReactTable({\n data,\n columns,\n getCoreRowModel: getCoreRowModel()${opts?.hookOptions ? '\\n' + opts.hookOptions : ''}\n});\n\n<ReactTanstackTableUi\n table={table}\n enableColumnPinning${opts?.props ? '\\n' + opts.props : ''}\n/>\n`;\n};\n"
6
+ ],
7
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAO,IAAM,mBAAmB,CAAC,SAAuE;AAAA,EACtG,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,qBA6BY,MAAM,WAAW;AAAA,IAAO,KAAK,WAAW;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,sCAcvB,MAAM,cAAc;AAAA,IAAO,KAAK,cAAc;AAAA;AAAA;AAAA;AAAA;AAAA,uBAK7D,MAAM,QAAQ;AAAA,IAAO,KAAK,QAAQ;AAAA;AAAA;AAAA;",
8
+ "debugId": "6983E6EC5F7C00DB64756E2164756E21",
9
+ "names": []
10
+ }
@@ -0,0 +1,79 @@
1
+ // packages/skin-anocca/src/HeaderPinButtons.tsx
2
+ import { useVirtualHeader } from "@rttui/core";
3
+ import { MdChevronLeft, MdChevronRight, MdClose } from "react-icons/md";
4
+ import { jsx, jsxs } from "react/jsx-runtime";
5
+ var HeaderPinButtons = () => {
6
+ const vHeader = useVirtualHeader();
7
+ const header = vHeader.header;
8
+ if (!header) {
9
+ return null;
10
+ }
11
+ const isPinned = vHeader.isPinned;
12
+ return /* @__PURE__ */ jsxs("div", {
13
+ style: { display: "flex", gap: "-4px", justifyContent: "flex-start" },
14
+ children: [
15
+ isPinned !== "start" ? /* @__PURE__ */ jsx("button", {
16
+ style: {
17
+ border: "none",
18
+ background: "transparent",
19
+ cursor: "pointer",
20
+ padding: "2px",
21
+ borderRadius: "4px",
22
+ display: "flex",
23
+ alignItems: "center",
24
+ opacity: 0.5
25
+ },
26
+ onClick: () => {
27
+ if (!header) {
28
+ return;
29
+ }
30
+ header.column.pin("left");
31
+ },
32
+ children: /* @__PURE__ */ jsx(MdChevronLeft, {})
33
+ }) : null,
34
+ isPinned ? /* @__PURE__ */ jsx("button", {
35
+ style: {
36
+ border: "none",
37
+ background: "transparent",
38
+ cursor: "pointer",
39
+ padding: "2px",
40
+ borderRadius: "4px",
41
+ display: "flex",
42
+ alignItems: "center",
43
+ opacity: 0.7
44
+ },
45
+ onClick: () => {
46
+ if (!header) {
47
+ return;
48
+ }
49
+ header.column.pin(false);
50
+ },
51
+ children: /* @__PURE__ */ jsx(MdClose, {})
52
+ }) : null,
53
+ isPinned !== "end" ? /* @__PURE__ */ jsx("button", {
54
+ style: {
55
+ border: "none",
56
+ background: "transparent",
57
+ cursor: "pointer",
58
+ padding: "2px",
59
+ borderRadius: "4px",
60
+ display: "flex",
61
+ alignItems: "center",
62
+ opacity: 0.5
63
+ },
64
+ onClick: () => {
65
+ if (!header) {
66
+ return;
67
+ }
68
+ header.column.pin("right");
69
+ },
70
+ children: /* @__PURE__ */ jsx(MdChevronRight, {})
71
+ }) : null
72
+ ]
73
+ });
74
+ };
75
+ export {
76
+ HeaderPinButtons
77
+ };
78
+
79
+ //# debugId=8CD8FF0777DDCA1E64756E2164756E21
@@ -0,0 +1,10 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/HeaderPinButtons.tsx"],
4
+ "sourcesContent": [
5
+ "import { useVirtualHeader } from \"@rttui/core\";\nimport { MdChevronLeft, MdChevronRight, MdClose } from \"react-icons/md\";\n\nexport const HeaderPinButtons = () => {\n const vHeader = useVirtualHeader();\n const header = vHeader.header;\n if (!header) {\n return null;\n }\n const isPinned = vHeader.isPinned;\n return (\n <div style={{ display: \"flex\", gap: \"-4px\", justifyContent: \"flex-start\" }}>\n {isPinned !== \"start\" ? (\n <button\n style={{\n border: \"none\",\n background: \"transparent\",\n cursor: \"pointer\",\n padding: \"2px\",\n borderRadius: \"4px\",\n display: \"flex\",\n alignItems: \"center\",\n opacity: 0.5,\n }}\n onClick={() => {\n if (!header) {\n return;\n }\n header.column.pin(\"left\");\n }}\n >\n <MdChevronLeft />\n </button>\n ) : null}\n {isPinned ? (\n <button\n style={{\n border: \"none\",\n background: \"transparent\",\n cursor: \"pointer\",\n padding: \"2px\",\n borderRadius: \"4px\",\n display: \"flex\",\n alignItems: \"center\",\n opacity: 0.7,\n }}\n onClick={() => {\n if (!header) {\n return;\n }\n header.column.pin(false);\n }}\n >\n <MdClose />\n </button>\n ) : null}\n {isPinned !== \"end\" ? (\n <button\n style={{\n border: \"none\",\n background: \"transparent\",\n cursor: \"pointer\",\n padding: \"2px\",\n borderRadius: \"4px\",\n display: \"flex\",\n alignItems: \"center\",\n opacity: 0.5,\n }}\n onClick={() => {\n if (!header) {\n return;\n }\n header.column.pin(\"right\");\n }}\n >\n <MdChevronRight />\n </button>\n ) : null}\n </div>\n );\n};\n"
6
+ ],
7
+ "mappings": ";AAAA;AACA;AAAA;AAEO,IAAM,mBAAmB,MAAM;AAAA,EACpC,MAAM,UAAU,iBAAiB;AAAA,EACjC,MAAM,SAAS,QAAQ;AAAA,EACvB,KAAK,QAAQ;AAAA,IACX,OAAO;AAAA,EACT;AAAA,EACA,MAAM,WAAW,QAAQ;AAAA,EACzB,uBACE,KAmEE,OAnEF;AAAA,IAAK,OAAO,EAAE,SAAS,QAAQ,KAAK,QAAQ,gBAAgB,aAAa;AAAA,IAAzE,UAmEE;AAAA,MAlEC,aAAa,0BACZ,IAmBE,UAnBF;AAAA,QACE,OAAO;AAAA,UACL,QAAQ;AAAA,UACR,YAAY;AAAA,UACZ,QAAQ;AAAA,UACR,SAAS;AAAA,UACT,cAAc;AAAA,UACd,SAAS;AAAA,UACT,YAAY;AAAA,UACZ,SAAS;AAAA,QACX;AAAA,QACA,SAAS,MAAM;AAAA,UACb,KAAK,QAAQ;AAAA,YACX;AAAA,UACF;AAAA,UACA,OAAO,OAAO,IAAI,MAAM;AAAA;AAAA,QAf5B,0BAkBE,IAAC,eAAD,EAAe;AAAA,OACf,IACA;AAAA,MACH,2BACC,IAmBE,UAnBF;AAAA,QACE,OAAO;AAAA,UACL,QAAQ;AAAA,UACR,YAAY;AAAA,UACZ,QAAQ;AAAA,UACR,SAAS;AAAA,UACT,cAAc;AAAA,UACd,SAAS;AAAA,UACT,YAAY;AAAA,UACZ,SAAS;AAAA,QACX;AAAA,QACA,SAAS,MAAM;AAAA,UACb,KAAK,QAAQ;AAAA,YACX;AAAA,UACF;AAAA,UACA,OAAO,OAAO,IAAI,KAAK;AAAA;AAAA,QAf3B,0BAkBE,IAAC,SAAD,EAAS;AAAA,OACT,IACA;AAAA,MACH,aAAa,wBACZ,IAmBE,UAnBF;AAAA,QACE,OAAO;AAAA,UACL,QAAQ;AAAA,UACR,YAAY;AAAA,UACZ,QAAQ;AAAA,UACR,SAAS;AAAA,UACT,cAAc;AAAA,UACd,SAAS;AAAA,UACT,YAAY;AAAA,UACZ,SAAS;AAAA,QACX;AAAA,QACA,SAAS,MAAM;AAAA,UACb,KAAK,QAAQ;AAAA,YACX;AAAA,UACF;AAAA,UACA,OAAO,OAAO,IAAI,OAAO;AAAA;AAAA,QAf7B,0BAkBE,IAAC,gBAAD,EAAgB;AAAA,OAChB,IACA;AAAA;AAAA,GACJ;AAAA;",
8
+ "debugId": "8CD8FF0777DDCA1E64756E2164756E21",
9
+ "names": []
10
+ }
@@ -0,0 +1,45 @@
1
+ // packages/skin-anocca/src/RowPinButtons.tsx
2
+ import { IconButton, Stack } from "@mui/material";
3
+ import { FiX, FiChevronUp, FiChevronDown } from "react-icons/fi";
4
+ import { jsx, jsxs } from "react/jsx-runtime";
5
+ function RowPinButtons({ row }) {
6
+ if (!row.getCanPin()) {
7
+ return null;
8
+ }
9
+ if (row.getIsPinned()) {
10
+ return /* @__PURE__ */ jsx(IconButton, {
11
+ onClick: () => row.pin(false, true, true),
12
+ size: "small",
13
+ sx: { color: "text.secondary" },
14
+ children: /* @__PURE__ */ jsx(FiX, {
15
+ size: 16
16
+ })
17
+ });
18
+ }
19
+ return /* @__PURE__ */ jsxs(Stack, {
20
+ direction: "row",
21
+ children: [
22
+ /* @__PURE__ */ jsx(IconButton, {
23
+ onClick: () => row.pin("top", true, true),
24
+ size: "small",
25
+ sx: { color: "text.secondary" },
26
+ children: /* @__PURE__ */ jsx(FiChevronUp, {
27
+ size: 16
28
+ })
29
+ }),
30
+ /* @__PURE__ */ jsx(IconButton, {
31
+ onClick: () => row.pin("bottom", true, true),
32
+ size: "small",
33
+ sx: { color: "text.secondary" },
34
+ children: /* @__PURE__ */ jsx(FiChevronDown, {
35
+ size: 16
36
+ })
37
+ })
38
+ ]
39
+ });
40
+ }
41
+ export {
42
+ RowPinButtons
43
+ };
44
+
45
+ //# debugId=38BB8AEEFF76B3B064756E2164756E21