simple-table-core 0.1.5 → 0.1.7

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 (70) hide show
  1. package/dist/components/Animate.d.ts +7 -7
  2. package/dist/components/SimpleTable/SimpleTable.d.ts +18 -18
  3. package/dist/components/SimpleTable/TableBody.d.ts +19 -19
  4. package/dist/components/SimpleTable/TableCell.d.ts +14 -14
  5. package/dist/components/SimpleTable/TableFooter.d.ts +12 -12
  6. package/dist/components/SimpleTable/TableHeader.d.ts +14 -14
  7. package/dist/components/SimpleTable/TableHeaderCell.d.ts +15 -15
  8. package/dist/components/SimpleTable/TableLastColumnCell.d.ts +6 -6
  9. package/dist/components/SimpleTable/TableRowSeparator.d.ts +2 -2
  10. package/dist/consts/SampleData.d.ts +19 -19
  11. package/dist/helpers/calculateBoundingBoxes.d.ts +13 -13
  12. package/dist/helpers/shuffleArray.d.ts +1 -1
  13. package/dist/hooks/usePrevious.d.ts +2 -2
  14. package/dist/hooks/useSelection.d.ts +19 -19
  15. package/dist/hooks/useTableHeaderCell.d.ts +14 -14
  16. package/dist/icons/AngleLeftIcon.d.ts +3 -3
  17. package/dist/icons/AngleRightIcon.d.ts +3 -3
  18. package/dist/index.d.ts +2 -2
  19. package/dist/stories/SimpleTable.stories.d.ts +11 -11
  20. package/dist/stories/SimpleTableExample.d.ts +1 -1
  21. package/dist/types/HeaderObject.d.ts +10 -10
  22. package/dist/utils/performanceUtils.d.ts +1 -1
  23. package/dist/utils/sortUtils.d.ts +15 -15
  24. package/package.json +7 -2
  25. package/.storybook/main.ts +0 -18
  26. package/.storybook/preview.ts +0 -14
  27. package/assets/table-example.png +0 -0
  28. package/rollup.config.js +0 -27
  29. package/src/components/Animate.tsx +0 -69
  30. package/src/components/SimpleTable/SimpleTable.tsx +0 -165
  31. package/src/components/SimpleTable/TableBody.tsx +0 -79
  32. package/src/components/SimpleTable/TableCell.tsx +0 -51
  33. package/src/components/SimpleTable/TableFooter.tsx +0 -61
  34. package/src/components/SimpleTable/TableHeader.tsx +0 -60
  35. package/src/components/SimpleTable/TableHeaderCell.tsx +0 -129
  36. package/src/components/SimpleTable/TableLastColumnCell.tsx +0 -17
  37. package/src/components/SimpleTable/TableRowSeparator.tsx +0 -5
  38. package/src/consts/SampleData.ts +0 -101
  39. package/src/helpers/calculateBoundingBoxes.ts +0 -29
  40. package/src/helpers/shuffleArray.ts +0 -6
  41. package/src/hooks/usePrevious.ts +0 -15
  42. package/src/hooks/useSelection.ts +0 -106
  43. package/src/hooks/useTableHeaderCell.ts +0 -76
  44. package/src/icons/AngleLeftIcon.tsx +0 -15
  45. package/src/icons/AngleRightIcon.tsx +0 -15
  46. package/src/index.tsx +0 -3
  47. package/src/react-app-env.d.ts +0 -1
  48. package/src/stories/SimpleTable.stories.ts +0 -16
  49. package/src/stories/SimpleTableExample.tsx +0 -17
  50. package/src/stories/assets/accessibility.png +0 -0
  51. package/src/stories/assets/accessibility.svg +0 -1
  52. package/src/stories/assets/addon-library.png +0 -0
  53. package/src/stories/assets/assets.png +0 -0
  54. package/src/stories/assets/avif-test-image.avif +0 -0
  55. package/src/stories/assets/context.png +0 -0
  56. package/src/stories/assets/discord.svg +0 -1
  57. package/src/stories/assets/docs.png +0 -0
  58. package/src/stories/assets/figma-plugin.png +0 -0
  59. package/src/stories/assets/github.svg +0 -1
  60. package/src/stories/assets/share.png +0 -0
  61. package/src/stories/assets/styling.png +0 -0
  62. package/src/stories/assets/testing.png +0 -0
  63. package/src/stories/assets/theming.png +0 -0
  64. package/src/stories/assets/tutorials.svg +0 -1
  65. package/src/stories/assets/youtube.svg +0 -1
  66. package/src/styles/simple-table.css +0 -242
  67. package/src/types/HeaderObject.ts +0 -10
  68. package/src/utils/performanceUtils.ts +0 -17
  69. package/src/utils/sortUtils.ts +0 -30
  70. package/tsconfig.json +0 -22
@@ -1,242 +0,0 @@
1
- /* Import Nunito font from Google Fonts */
2
- @import url("https://fonts.googleapis.com/css2?family=Nunito:wght@400;700&display=swap");
3
-
4
- :root {
5
- /* Slate Colors */
6
- --slate-50: #f8fafc;
7
- --slate-100: #f1f5f9;
8
- --slate-200: #e2e8f0;
9
- --slate-300: #cbd5e1;
10
- --slate-400: #94a3b8;
11
- --slate-500: #64748b;
12
- --slate-600: #475569;
13
- --slate-700: #334155;
14
- --slate-800: #1e293b;
15
- --slate-900: #0f172a;
16
-
17
- /* Blue Colors */
18
- --blue-50: #eff6ff;
19
- --blue-100: #dbeafe;
20
- --blue-200: #bfdbfe;
21
- --blue-300: #93c5fd;
22
- --blue-400: #60a5fa;
23
- --blue-500: #3b82f6;
24
- --blue-600: #2563eb;
25
- --blue-700: #1d4ed8;
26
- --blue-800: #1e40af;
27
- --blue-900: #1e3a8a;
28
-
29
- /* Orange Colors */
30
- --orange-50: #fff7ed;
31
- --orange-100: #ffedd5;
32
- --orange-200: #fed7aa;
33
- --orange-300: #fdba74;
34
- --orange-400: #fb923c;
35
- --orange-500: #f97316;
36
- --orange-600: #ea580c;
37
- --orange-700: #c2410c;
38
- --orange-800: #9a3412;
39
- --orange-900: #7c2d12;
40
-
41
- /* Amber Colors */
42
- --amber-50: #fffbeb;
43
- --amber-100: #fef3c7;
44
- --amber-200: #fde68a;
45
- --amber-300: #fcd34d;
46
- --amber-400: #fbbf24;
47
- --amber-500: #f59e0b;
48
- --amber-600: #d97706;
49
- --amber-700: #b45309;
50
- --amber-800: #92400e;
51
- --amber-900: #78350f;
52
-
53
- /* Customizable Variables */
54
- --st-border-radius: 4px;
55
- --st-table-border-color: var(--slate-300);
56
- --st-border-width: 1px;
57
- --st-resize-handle-color: var(--slate-300);
58
- --st-separator-border-color: var(--slate-300);
59
- --st-odd-row-background-color: var(--slate-100);
60
- --st-dragging-background-color: var(--blue-100);
61
- --st-selected-cell-background-color: var(--blue-200);
62
- --st-selected-first-cell-background-color: var(--amber-100);
63
- --st-border-top-color: var(--blue-500);
64
- --st-border-bottom-color: var(--blue-500);
65
- --st-border-left-color: var(--blue-500);
66
- --st-border-right-color: var(--blue-500);
67
- --st-border-top-white-color: white;
68
- --st-footer-background-color: white;
69
- }
70
-
71
- /* Global styles */
72
- * {
73
- box-sizing: border-box;
74
- margin: 0;
75
- padding: 0;
76
- }
77
-
78
- /* Apply Nunito as the default font */
79
- body {
80
- font-family: "Nunito";
81
- }
82
-
83
- /* Wrapper for the table */
84
- .st-table-wrapper {
85
- border: var(--st-border-width) solid var(--st-table-border-color);
86
- border-radius: var(--st-border-radius);
87
- overflow: auto;
88
- max-height: 100dvh;
89
- height: auto;
90
- }
91
-
92
- /* Main table styling */
93
- .st-table {
94
- display: grid;
95
- border-collapse: collapse;
96
- table-layout: auto;
97
- white-space: nowrap;
98
- width: 100%;
99
- }
100
-
101
- /* Styles for table header cells */
102
- .st-table-header-cell {
103
- position: sticky;
104
- top: 0;
105
- background-color: white;
106
- }
107
-
108
- /* Common styles for table header and cells */
109
- .st-table-header-cell,
110
- .st-table-cell {
111
- cursor: pointer;
112
- border: var(--st-border-width) solid transparent;
113
- color: var(--slate-800);
114
- overflow: hidden;
115
- }
116
-
117
- .st-table-header-label,
118
- .st-table-cell {
119
- user-select: none;
120
- padding: 8px;
121
- text-align: left;
122
- white-space: nowrap;
123
- text-overflow: ellipsis;
124
- overflow: hidden;
125
- }
126
-
127
- .st-table-cell {
128
- }
129
-
130
- /* Resize handle for table headers */
131
- .st-table-header-resize-handle {
132
- position: absolute;
133
- right: 0;
134
- top: 0;
135
- bottom: 0;
136
- width: 5px;
137
- cursor: col-resize;
138
- background-color: var(--st-resize-handle-color);
139
- margin-top: 0.25rem;
140
- margin-bottom: 0.25rem;
141
- border-radius: 0.25rem;
142
- }
143
-
144
- .st-table-row-separator {
145
- height: 1px;
146
- background-color: var(--st-separator-border-color);
147
- grid-column: 1 / -1;
148
- }
149
-
150
- .st-table-cell-odd-row {
151
- background-color: var(--st-odd-row-background-color);
152
- }
153
-
154
- /* Style for a cell when it is being dragged */
155
- .st-dragging {
156
- background-color: var(--st-dragging-background-color);
157
- }
158
-
159
- /* Style for selected table cells */
160
- .st-table-cell-selected {
161
- background-color: var(--st-selected-cell-background-color);
162
- }
163
-
164
- /* Style for the first selected table cell */
165
- .st-table-cell-selected-first {
166
- background-color: var(--st-selected-first-cell-background-color);
167
- }
168
-
169
- /* Blue top border for cells */
170
- .border-top-blue {
171
- border-top: var(--st-border-width) solid var(--st-border-top-color);
172
- }
173
-
174
- /* Blue bottom border for cells */
175
- .border-bottom-blue {
176
- border-bottom: var(--st-border-width) solid var(--st-border-bottom-color);
177
- }
178
-
179
- /* Blue left border for cells */
180
- .border-left-blue {
181
- border-left: var(--st-border-width) solid var(--st-border-left-color);
182
- }
183
-
184
- /* Blue right border for cells */
185
- .border-right-blue {
186
- border-right: var(--st-border-width) solid var(--st-border-right-color);
187
- }
188
-
189
- /* White top border for cells */
190
- .border-top-white {
191
- border-top: var(--st-border-width) solid var(--st-border-top-white-color);
192
- }
193
-
194
- .st-footer {
195
- position: sticky;
196
- left: 0;
197
- bottom: 0;
198
- display: flex;
199
- align-items: center;
200
- background-color: var(--st-footer-background-color);
201
-
202
- padding: 8px;
203
-
204
- border-top: var(--st-border-width) solid var(--st-table-border-color);
205
- }
206
-
207
- .st-next-prev-btn {
208
- display: flex;
209
- align-items: center;
210
- justify-content: center;
211
- padding: 4px;
212
- cursor: pointer;
213
- background-color: transparent;
214
- color: var(--slate-600);
215
- border: none;
216
- border-radius: 4px;
217
- transition: background-color 0.3s ease;
218
- }
219
-
220
- .st-next-prev-btn:hover {
221
- background-color: var(--slate-100);
222
- }
223
-
224
- .st-page-btn {
225
- margin-left: 4px;
226
- padding: 4px;
227
- cursor: pointer;
228
- background-color: transparent;
229
- color: var(--slate-600);
230
- border: none;
231
- border-radius: var(--st-border-radius);
232
- transition: background-color 0.3s ease;
233
- }
234
-
235
- .st-page-btn:hover {
236
- background-color: var(--slate-100);
237
- }
238
-
239
- .st-page-btn.active {
240
- background-color: var(--blue-500);
241
- color: white;
242
- }
@@ -1,10 +0,0 @@
1
- import { ReactNode } from "react";
2
-
3
- type HeaderObject = {
4
- label: string;
5
- accessor: string;
6
- width: number;
7
- cellRenderer?: (row: { [key: string]: any }) => ReactNode;
8
- };
9
-
10
- export default HeaderObject;
@@ -1,17 +0,0 @@
1
- export const throttle = (func: (...args: any[]) => void, limit: number) => {
2
- let isFirstCall = true;
3
- let inThrottle = true;
4
-
5
- return function (this: any, ...args: any[]) {
6
- if (isFirstCall) {
7
- isFirstCall = false;
8
- setTimeout(() => (inThrottle = false), limit);
9
- return;
10
- }
11
- if (!inThrottle) {
12
- func.apply(this, args);
13
- inThrottle = true;
14
- setTimeout(() => (inThrottle = false), limit);
15
- }
16
- };
17
- };
@@ -1,30 +0,0 @@
1
- import HeaderObject from "../types/HeaderObject";
2
-
3
- export const onSort = (
4
- headers: HeaderObject[],
5
- rows: { [key: string]: any }[],
6
- sortConfig: { key: HeaderObject; direction: string } | null,
7
- columnIndex: number
8
- ) => {
9
- const key = headers[columnIndex];
10
- let direction = "ascending";
11
- if (
12
- sortConfig &&
13
- sortConfig.key.accessor === key.accessor &&
14
- sortConfig.direction === "ascending"
15
- ) {
16
- direction = "descending";
17
- }
18
-
19
- const sortedData = [...rows].sort((a, b) => {
20
- if (a[key.accessor] < b[key.accessor]) {
21
- return direction === "ascending" ? -1 : 1;
22
- }
23
- if (a[key.accessor] > b[key.accessor]) {
24
- return direction === "ascending" ? 1 : -1;
25
- }
26
- return 0;
27
- });
28
-
29
- return { sortedData, newSortConfig: { key, direction } };
30
- };
package/tsconfig.json DELETED
@@ -1,22 +0,0 @@
1
- {
2
- "compilerOptions": {
3
- "target": "es5",
4
- "lib": ["dom", "dom.iterable", "esnext"],
5
- "allowJs": true,
6
- "skipLibCheck": true,
7
- "esModuleInterop": true,
8
- "allowSyntheticDefaultImports": true,
9
- "strict": true,
10
- "forceConsistentCasingInFileNames": true,
11
- "noFallthroughCasesInSwitch": true,
12
- "module": "esnext",
13
- "moduleResolution": "node",
14
- "resolveJsonModule": true,
15
- "isolatedModules": true,
16
- "noEmit": false,
17
- "declaration": true,
18
- "declarationDir": "dist",
19
- "jsx": "react-jsx"
20
- },
21
- "include": ["src"]
22
- }