@crispy-seed/data-table 0.1.0

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 (56) hide show
  1. package/LICENSE +201 -0
  2. package/NOTICE +30 -0
  3. package/README.md +103 -0
  4. package/dist/DataTable-12s-8LMBtS2u.cjs +1532 -0
  5. package/dist/DataTable-12s-Bd20OuMs.js +1482 -0
  6. package/dist/DataTable-12s-Zml1x9Kr-12s-CTRzgvMT.cjs +161 -0
  7. package/dist/DataTable-12s-Zml1x9Kr-12s-Coi-3lUa.js +153 -0
  8. package/dist/Menu-12s-Db_zr1AP.cjs +104 -0
  9. package/dist/Menu-12s-Di5JADW4.js +78 -0
  10. package/dist/Select-12s-1Uh7XbkG.js +219 -0
  11. package/dist/Select-12s-D8DdKT-U.cjs +250 -0
  12. package/dist/body-cells-12s-BnOVUTKN.js +453 -0
  13. package/dist/body-cells-12s-BoOTcg-l.cjs +462 -0
  14. package/dist/column-calc-12s-C6IPSOaF.js +129 -0
  15. package/dist/column-calc-12s-CKuSpe-l.cjs +149 -0
  16. package/dist/column-layout-12s-CTu5yT_D.cjs +120 -0
  17. package/dist/column-layout-12s-s7wnxkMN.js +99 -0
  18. package/dist/column-menu-12s-BPE9N1gs.cjs +427 -0
  19. package/dist/column-menu-12s-mRBk-4oa.js +407 -0
  20. package/dist/data-table-recipe.css +442 -0
  21. package/dist/data-table-recipe.layered.css +505 -0
  22. package/dist/editors-12s-BO9Mp034.js +525 -0
  23. package/dist/editors-12s-DO8TZkYV.cjs +555 -0
  24. package/dist/index.cjs +14 -0
  25. package/dist/index.d.ts +323 -0
  26. package/dist/index.js +10 -0
  27. package/dist/resize-12s-jQY-PX67.cjs +58 -0
  28. package/dist/resize-12s-nsMvrmLt.js +58 -0
  29. package/dist/states-12s-CLO_uVue.cjs +125 -0
  30. package/dist/states-12s-DEFSxJCO.js +122 -0
  31. package/dist/styles.css +14660 -0
  32. package/dist/toolbar-12s-AVU-sbDW.js +69 -0
  33. package/dist/toolbar-12s-CaLgJrDo.cjs +71 -0
  34. package/dist/useDataTable-12s-BHiDUubw-12s-CBeCwTe7.js +61 -0
  35. package/dist/useDataTable-12s-BHiDUubw-12s-Dgvt7XDk.cjs +61 -0
  36. package/dist/useDataTableColumnCalc-12s-DTQQTtEJ-12s-CvD14JYo.cjs +207 -0
  37. package/dist/useDataTableColumnCalc-12s-DTQQTtEJ-12s-DsEse3uq.js +183 -0
  38. package/dist/useDataTableColumns-12s-Cn2ZAzFL-12s-CD6goR59.js +289 -0
  39. package/dist/useDataTableColumns-12s-Cn2ZAzFL-12s-CUk_CpYT.cjs +292 -0
  40. package/dist/useDataTableEdit-12s-9Wb_UCrN-12s-BoOHq3GB.js +98 -0
  41. package/dist/useDataTableEdit-12s-9Wb_UCrN-12s-De6YHBba.cjs +98 -0
  42. package/dist/useDataTableFilter-12s-ZzbmWMin-12s-CWyBeFna.js +74 -0
  43. package/dist/useDataTableFilter-12s-ZzbmWMin-12s-lpjzZY3_.cjs +74 -0
  44. package/dist/useDataTableInfiniteScroll-12s-8ZG31URd-12s-BexjP6iO.js +104 -0
  45. package/dist/useDataTableInfiniteScroll-12s-8ZG31URd-12s-Bt8gojr9.cjs +104 -0
  46. package/dist/useDataTableRow-12s-CPYaDa1p-12s-BmUSAnPe.js +30 -0
  47. package/dist/useDataTableRow-12s-CPYaDa1p-12s-D-DRjwAe.cjs +30 -0
  48. package/dist/useDataTableScroll-12s-BKDCr0en-12s-C7f2vHeG.js +61 -0
  49. package/dist/useDataTableScroll-12s-BKDCr0en-12s-CUvUYMtt.cjs +61 -0
  50. package/dist/useDataTableSearch-12s-Ck3iWcpX-12s-B-65V6gH.js +37 -0
  51. package/dist/useDataTableSearch-12s-Ck3iWcpX-12s-DhVfN2Hq.cjs +37 -0
  52. package/dist/useDataTableSelection-12s-BIDtiRQq-12s-IS__VAnU.cjs +71 -0
  53. package/dist/useDataTableSelection-12s-BIDtiRQq-12s-O6M_BhrH.js +71 -0
  54. package/dist/useDataTableSort-12s-DvJYtmeS-12s-C5VGnsq4.cjs +78 -0
  55. package/dist/useDataTableSort-12s-DvJYtmeS-12s-DABSNt6U.js +78 -0
  56. package/package.json +78 -0
@@ -0,0 +1,442 @@
1
+ .seed-data-table__root {
2
+ box-sizing: border-box;
3
+ display: flex;
4
+ flex-direction: column;
5
+ width: 100%;
6
+ border-width: 1px;
7
+ border-style: solid;
8
+ font-family: Inter, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
9
+ }
10
+ .seed-data-table__table {
11
+ width: 100%;
12
+ border-collapse: separate;
13
+ border-spacing: 0;
14
+ table-layout: fixed;
15
+ }
16
+ .seed-data-table__header {}
17
+ .seed-data-table__headerCell {
18
+ box-sizing: border-box;
19
+ position: sticky;
20
+ top: 0;
21
+ z-index: 2;
22
+ vertical-align: middle;
23
+ text-align: start;
24
+ padding: 0;
25
+ height: var(--seed-dimension-x10);
26
+ background-color: var(--seed-color-bg-layer-default);
27
+ border-top: 1px solid var(--seed-color-stroke-neutral-muted);
28
+ border-bottom: 1px solid var(--seed-color-stroke-neutral-muted);
29
+ border-inline-end: 1px solid var(--seed-color-stroke-neutral-muted);
30
+ border-inline-start: none;
31
+ color: var(--seed-color-fg-neutral);
32
+ font-size: var(--seed-font-size-t4);
33
+ line-height: var(--seed-line-height-t4);
34
+ font-weight: var(--seed-font-weight-medium);
35
+ letter-spacing: -0.14px;
36
+ }
37
+ .seed-data-table__headerCell:last-child {
38
+ border-inline-end: none;
39
+ }
40
+ .seed-data-table__headerCell[data-sortable] {
41
+ cursor: pointer;
42
+ user-select: none;
43
+ }
44
+ .seed-data-table__headerCell [data-chevron] {
45
+ opacity: 0;
46
+ transition: opacity .12s;
47
+ }
48
+ .seed-data-table__headerCell[data-sortable]:hover [data-chevron] {
49
+ opacity: 0.6;
50
+ }
51
+ .seed-data-table__headerCell[data-sorted] [data-chevron] {
52
+ opacity: 1;
53
+ color: var(--seed-color-fg-neutral);
54
+ }
55
+ .seed-data-table__headerCell:hover [data-column-menu] {
56
+ opacity: 1;
57
+ }
58
+ .seed-data-table__headerCell [data-column-menu][data-open], .seed-data-table__headerCell [data-column-menu]:focus-visible {
59
+ opacity: 1;
60
+ }
61
+ .seed-data-table__headerCell[data-dragging] {
62
+ opacity: 0.5;
63
+ }
64
+ .seed-data-table__headerCell[data-sticky] {
65
+ position: sticky;
66
+ z-index: 3;
67
+ background-color: var(--seed-color-bg-layer-default);
68
+ }
69
+ .seed-data-table__headerCell {
70
+ outline: var(--seed-dimension-x0_5) solid transparent;
71
+ outline-offset: calc(var(--seed-dimension-x0_5) * -1);
72
+ }
73
+ .seed-data-table__headerCell:is(:focus-visible, [data-focus-visible]) {
74
+ outline: var(--seed-dimension-x0_5) solid var(--seed-color-stroke-focus-ring);
75
+ outline-offset: calc(var(--seed-dimension-x0_5) * -1);
76
+ }
77
+ .seed-data-table__headerCell .seed-data-table-resize-handle {
78
+ position: absolute;
79
+ top: 0;
80
+ inset-inline-end: calc(7px / -2);
81
+ width: 7px;
82
+ height: 100%;
83
+ z-index: 4;
84
+ display: flex;
85
+ align-items: center;
86
+ justify-content: center;
87
+ cursor: col-resize;
88
+ touch-action: none;
89
+ }
90
+ .seed-data-table__headerCell .seed-data-table-resize-handle-inner {
91
+ width: 3px;
92
+ height: 100%;
93
+ border-radius: 3px;
94
+ background-color: #0298d9;
95
+ opacity: 0;
96
+ transition: opacity .1s;
97
+ }
98
+ .seed-data-table__headerCell .seed-data-table-resize-handle:hover .seed-data-table-resize-handle-inner, .seed-data-table__headerCell .seed-data-table-resize-handle[data-resizing] .seed-data-table-resize-handle-inner {
99
+ opacity: 1;
100
+ }
101
+ .seed-data-table__headerCellInner {
102
+ box-sizing: border-box;
103
+ display: flex;
104
+ align-items: center;
105
+ width: 100%;
106
+ height: 100%;
107
+ min-width: 0;
108
+ gap: var(--seed-dimension-x1_5);
109
+ padding-inline: var(--seed-dimension-x3);
110
+ }
111
+ .seed-data-table__headerCellLabel {
112
+ min-width: 0;
113
+ flex: 1 1 0%;
114
+ overflow: clip;
115
+ text-overflow: ellipsis;
116
+ white-space: nowrap;
117
+ }
118
+ .seed-data-table__headerCellIcon {
119
+ flex-shrink: 0;
120
+ margin-inline-start: auto;
121
+ display: inline-flex;
122
+ align-items: center;
123
+ justify-content: center;
124
+ width: var(--seed-dimension-x4);
125
+ height: var(--seed-dimension-x4);
126
+ color: var(--seed-color-fg-neutral-subtle);
127
+ border: none;
128
+ background: none;
129
+ padding: 0;
130
+ font: inherit;
131
+ cursor: pointer;
132
+ }
133
+ .seed-data-table__headerCellIcon[data-active] {
134
+ color: var(--seed-color-fg-neutral);
135
+ }
136
+ .seed-data-table__headerCellIcon[data-column-menu] {
137
+ opacity: 0;
138
+ transition: opacity .12s;
139
+ }
140
+ .seed-data-table__row {
141
+ position: relative;
142
+ background-color: var(--seed-color-bg-layer-default);
143
+ --seed-data-table-row-bg: var(--seed-color-bg-layer-default);
144
+ }
145
+ .seed-data-table__row[data-clickable] {
146
+ cursor: pointer;
147
+ }
148
+ .seed-data-table__row:is([aria-selected=true], [data-selected]) {
149
+ background-color: color-mix(in srgb, #0298d9 10%, var(--seed-color-bg-layer-default));
150
+ --seed-data-table-row-bg: color-mix(in srgb, #0298d9 10%, var(--seed-color-bg-layer-default));
151
+ }
152
+ .seed-data-table__row:is([aria-selected=true], [data-selected]):is(:hover, [data-hover]) {
153
+ background-color: color-mix(in srgb, var(--seed-color-fg-neutral) 3%, color-mix(in srgb, #0298d9 10%, var(--seed-color-bg-layer-default)));
154
+ --seed-data-table-row-bg: color-mix(in srgb, var(--seed-color-fg-neutral) 3%, color-mix(in srgb, #0298d9 10%, var(--seed-color-bg-layer-default)));
155
+ }
156
+ .seed-data-table__cell {
157
+ box-sizing: border-box;
158
+ position: relative;
159
+ vertical-align: middle;
160
+ text-align: start;
161
+ height: var(--seed-dimension-x9);
162
+ border-bottom: 1px solid var(--seed-color-stroke-neutral-muted);
163
+ border-inline-end: 1px solid var(--seed-color-stroke-neutral-muted);
164
+ border-top: none;
165
+ border-inline-start: none;
166
+ padding-block: 0;
167
+ padding-inline: var(--seed-dimension-x3);
168
+ color: var(--seed-color-fg-neutral);
169
+ font-size: var(--seed-font-size-t4);
170
+ line-height: var(--seed-line-height-t4);
171
+ font-weight: var(--seed-font-weight-regular);
172
+ letter-spacing: -0.14px;
173
+ overflow: clip;
174
+ text-overflow: ellipsis;
175
+ white-space: nowrap;
176
+ }
177
+ .seed-data-table__cell:last-child {
178
+ border-inline-end: none;
179
+ }
180
+ tbody tr:last-child .seed-data-table__cell {
181
+ border-bottom: none;
182
+ }
183
+ .seed-data-table__cell[data-numeric] {
184
+ text-align: end;
185
+ font-variant-numeric: tabular-nums;
186
+ }
187
+ .seed-data-table__cell[data-sticky] {
188
+ position: sticky;
189
+ z-index: 1;
190
+ background-color: var(--seed-data-table-row-bg);
191
+ }
192
+ .seed-data-table__cell[data-editable] {
193
+ cursor: default;
194
+ }
195
+ .seed-data-table__cell .seed-data-table-edit-picker {
196
+ display: flex;
197
+ align-items: center;
198
+ gap: var(--seed-dimension-x1_5);
199
+ min-width: 0;
200
+ }
201
+ .seed-data-table__cell .seed-data-table-edit-pending {
202
+ flex-shrink: 0;
203
+ color: var(--seed-color-fg-neutral-subtle);
204
+ animation: rotate 0.6s linear infinite;
205
+ }
206
+ .seed-data-table__cell .seed-data-table-edit-error {
207
+ position: absolute;
208
+ top: 100%;
209
+ inset-inline-start: var(--seed-dimension-x3);
210
+ inset-inline-end: var(--seed-dimension-x3);
211
+ z-index: 2;
212
+ padding-top: 2px;
213
+ font-size: 12px;
214
+ line-height: 1.3;
215
+ color: var(--seed-color-fg-critical);
216
+ overflow: clip;
217
+ text-overflow: ellipsis;
218
+ white-space: nowrap;
219
+ }
220
+ .seed-data-table__entity {
221
+ display: flex;
222
+ align-items: center;
223
+ min-width: 0;
224
+ gap: var(--seed-dimension-x1_5);
225
+ }
226
+ .seed-data-table__entityName {
227
+ min-width: 0;
228
+ font-weight: var(--seed-font-weight-medium);
229
+ overflow: clip;
230
+ text-overflow: ellipsis;
231
+ white-space: nowrap;
232
+ }
233
+ .seed-data-table__tagList {
234
+ display: flex;
235
+ align-items: center;
236
+ gap: var(--seed-dimension-x1_5);
237
+ overflow: hidden;
238
+ min-width: 0;
239
+ }
240
+ .seed-data-table__link {
241
+ color: var(--seed-color-fg-neutral);
242
+ text-decoration: none;
243
+ min-width: 0;
244
+ overflow: clip;
245
+ text-overflow: ellipsis;
246
+ white-space: nowrap;
247
+ }
248
+ .seed-data-table__link:is(:hover, [data-hover]) {
249
+ text-decoration: underline;
250
+ }
251
+ .seed-data-table__toolbar {
252
+ box-sizing: border-box;
253
+ display: flex;
254
+ align-items: center;
255
+ width: 100%;
256
+ flex-shrink: 0;
257
+ min-height: 49px;
258
+ gap: var(--seed-dimension-x2);
259
+ padding-inline: var(--seed-dimension-x3);
260
+ border-top: 1px solid var(--seed-color-stroke-neutral-muted);
261
+ }
262
+ .seed-data-table__search {
263
+ flex: 1 1 0%;
264
+ max-width: 280px;
265
+ }
266
+ .seed-data-table__count {
267
+ flex-shrink: 0;
268
+ margin-inline-start: auto;
269
+ color: var(--seed-color-fg-neutral-subtle);
270
+ font-size: var(--seed-font-size-t3);
271
+ font-variant-numeric: tabular-nums;
272
+ }
273
+ .seed-data-table__scrollArea {
274
+ position: relative;
275
+ display: flex;
276
+ flex-direction: column;
277
+ width: 100%;
278
+ min-width: 0;
279
+ flex: 1 1 auto;
280
+ min-height: 0;
281
+ overflow-x: auto;
282
+ overflow-y: auto;
283
+ }
284
+ .seed-data-table__scrollArea[data-scrolled-start] [data-sticky-edge] {
285
+ clip-path: inset(0 -38px 0 0);
286
+ box-shadow: 6px 0 16px 4px rgba(0,0,0,0.12);
287
+ }
288
+ .seed-data-table__scrollArea[data-scrolled-end] [data-sticky-edge-end] {
289
+ clip-path: inset(0 0 0 -38px);
290
+ box-shadow: -6px 0 16px 4px rgba(0,0,0,0.12);
291
+ }
292
+ .seed-data-table__footer {}
293
+ .seed-data-table__footerCell {
294
+ box-sizing: border-box;
295
+ position: sticky;
296
+ bottom: 0;
297
+ z-index: 2;
298
+ vertical-align: middle;
299
+ padding: 0;
300
+ height: var(--seed-dimension-x9);
301
+ background-color: var(--seed-color-bg-layer-default);
302
+ border-top: 1px solid var(--seed-color-stroke-neutral-muted);
303
+ border-inline-end: 1px solid var(--seed-color-stroke-neutral-muted);
304
+ border-inline-start: none;
305
+ }
306
+ .seed-data-table__footerCell:last-child {
307
+ border-inline-end: none;
308
+ }
309
+ .seed-data-table__footerCell .seed-data-table-column-calc-trigger {
310
+ display: flex;
311
+ align-items: center;
312
+ gap: var(--seed-dimension-x1_5);
313
+ width: 100%;
314
+ height: 100%;
315
+ min-width: 0;
316
+ margin: 0;
317
+ padding: 0 var(--seed-dimension-x3);
318
+ border: none;
319
+ background: transparent;
320
+ color: var(--seed-color-fg-neutral-subtle);
321
+ font-family: inherit;
322
+ font-size: var(--seed-font-size-t4);
323
+ font-weight: var(--seed-font-weight-medium);
324
+ white-space: nowrap;
325
+ overflow: clip;
326
+ cursor: pointer;
327
+ transition: background-color .12s, color .12s;
328
+ }
329
+ .seed-data-table__footerCell .seed-data-table-column-calc-trigger:hover {
330
+ background-color: color-mix(in srgb, var(--seed-color-fg-neutral) 4%, transparent);
331
+ color: var(--seed-color-fg-neutral);
332
+ }
333
+ .seed-data-table__footerCell .seed-data-table-column-calc-trigger[data-align='right'] {
334
+ justify-content: flex-end;
335
+ }
336
+ .seed-data-table__footerCell .seed-data-table-column-calc-trigger svg {
337
+ flex-shrink: 0;
338
+ opacity: 0.7;
339
+ }
340
+ .seed-data-table__footerCell .seed-data-table-column-calc-placeholder {
341
+ overflow: clip;
342
+ text-overflow: ellipsis;
343
+ white-space: nowrap;
344
+ }
345
+ .seed-data-table__footerCell .seed-data-table-column-calc-value {
346
+ min-width: 0;
347
+ flex-shrink: 1;
348
+ color: var(--seed-color-fg-neutral);
349
+ font-variant-numeric: tabular-nums;
350
+ overflow: clip;
351
+ text-overflow: ellipsis;
352
+ white-space: nowrap;
353
+ }
354
+ .seed-data-table__footerCell .seed-data-table-column-calc-op {
355
+ min-width: 0;
356
+ flex-shrink: 1;
357
+ color: color-mix(in srgb, var(--seed-color-fg-neutral) 63%, transparent);
358
+ overflow: clip;
359
+ text-overflow: ellipsis;
360
+ white-space: nowrap;
361
+ }
362
+ .seed-data-table__emptyState {
363
+ box-sizing: border-box;
364
+ text-align: center;
365
+ padding-block: var(--seed-dimension-x8);
366
+ padding-inline: var(--seed-dimension-x3);
367
+ color: var(--seed-color-fg-neutral-subtle);
368
+ font-size: var(--seed-font-size-t4);
369
+ }
370
+ .seed-data-table__loadingState {
371
+ box-sizing: border-box;
372
+ display: flex;
373
+ align-items: center;
374
+ justify-content: center;
375
+ gap: 10px;
376
+ padding-block: var(--seed-dimension-x8);
377
+ padding-inline: var(--seed-dimension-x3);
378
+ color: color-mix(in srgb, var(--seed-color-fg-neutral) 63%, transparent);
379
+ font-size: var(--seed-font-size-t4);
380
+ line-height: var(--seed-line-height-t4);
381
+ font-weight: var(--seed-font-weight-medium);
382
+ }
383
+ .seed-data-table__loadingState[data-inline] {
384
+ padding-block: 0;
385
+ padding-inline: 0;
386
+ height: var(--seed-dimension-x9);
387
+ }
388
+ .seed-data-table__loadingState .seed-data-table-loading-spinner {
389
+ flex-shrink: 0;
390
+ color: color-mix(in srgb, var(--seed-color-fg-neutral) 63%, transparent);
391
+ animation: rotate 0.6s linear infinite;
392
+ }
393
+ .seed-data-table__addRowCell {
394
+ box-sizing: border-box;
395
+ padding: 0;
396
+ border-top: none;
397
+ }
398
+ .seed-data-table__addRow {
399
+ box-sizing: border-box;
400
+ display: flex;
401
+ align-items: center;
402
+ width: 100%;
403
+ margin: 0;
404
+ border: none;
405
+ border-top: 1px solid var(--seed-color-stroke-neutral-muted);
406
+ background-color: var(--seed-color-bg-layer-default);
407
+ height: var(--seed-dimension-x9);
408
+ gap: var(--seed-dimension-x2);
409
+ padding-inline: var(--seed-dimension-x2);
410
+ color: var(--seed-color-fg-neutral-subtle);
411
+ font-family: inherit;
412
+ font-size: var(--seed-font-size-t4);
413
+ cursor: pointer;
414
+ transition: background-color .12s, color .12s;
415
+ }
416
+ .seed-data-table__addRow:hover {
417
+ background-color: color-mix(in srgb, var(--seed-color-fg-neutral) 4%, var(--seed-color-bg-layer-default));
418
+ color: var(--seed-color-fg-neutral);
419
+ }
420
+ .seed-data-table__addRow svg {
421
+ flex-shrink: 0;
422
+ }
423
+ .seed-data-table__selectionCell {
424
+ text-align: center;
425
+ padding: 0;
426
+ }
427
+ .seed-data-table__root--surface_card {
428
+ border-color: var(--seed-color-stroke-neutral-muted);
429
+ background-color: var(--seed-color-bg-layer-default);
430
+ border-radius: var(--seed-radius-r3);
431
+ }
432
+ .seed-data-table__root--surface_bleed {
433
+ border-color: var(--seed-color-bg-transparent);
434
+ background-color: var(--seed-color-bg-transparent);
435
+ }
436
+ .seed-data-table__row--interactive_true {
437
+ transition: background-color .12s;
438
+ }
439
+ .seed-data-table__row--interactive_true:is(:hover, [data-hover]) {
440
+ background-color: color-mix(in srgb, var(--seed-color-fg-neutral) 3%, transparent);
441
+ --seed-data-table-row-bg: color-mix(in srgb, var(--seed-color-fg-neutral) 3%, var(--seed-color-bg-layer-default));
442
+ }