@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,505 @@
1
+ @layer seed-components {
2
+ .seed-data-table__root {
3
+ box-sizing: border-box;
4
+ border-style: solid;
5
+ border-width: 1px;
6
+ flex-direction: column;
7
+ width: 100%;
8
+ font-family: Inter, -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica, Arial, sans-serif;
9
+ display: flex;
10
+ }
11
+
12
+ .seed-data-table__table {
13
+ border-collapse: separate;
14
+ border-spacing: 0;
15
+ table-layout: fixed;
16
+ width: 100%;
17
+ }
18
+
19
+ .seed-data-table__headerCell {
20
+ box-sizing: border-box;
21
+ z-index: 2;
22
+ vertical-align: middle;
23
+ text-align: start;
24
+ height: var(--seed-dimension-x10);
25
+ background-color: var(--seed-color-bg-layer-default);
26
+ border-top: 1px solid var(--seed-color-stroke-neutral-muted);
27
+ border-bottom: 1px solid var(--seed-color-stroke-neutral-muted);
28
+ border-inline-end: 1px solid var(--seed-color-stroke-neutral-muted);
29
+ color: var(--seed-color-fg-neutral);
30
+ font-size: var(--seed-font-size-t4);
31
+ line-height: var(--seed-line-height-t4);
32
+ font-weight: var(--seed-font-weight-medium);
33
+ letter-spacing: -.14px;
34
+ border-inline-start: none;
35
+ padding: 0;
36
+ position: sticky;
37
+ top: 0;
38
+ }
39
+
40
+ .seed-data-table__headerCell:last-child {
41
+ border-inline-end: none;
42
+ }
43
+
44
+ .seed-data-table__headerCell[data-sortable] {
45
+ cursor: pointer;
46
+ -webkit-user-select: none;
47
+ user-select: none;
48
+ }
49
+
50
+ .seed-data-table__headerCell [data-chevron] {
51
+ opacity: 0;
52
+ transition: opacity .12s;
53
+ }
54
+
55
+ .seed-data-table__headerCell[data-sortable]:hover [data-chevron] {
56
+ opacity: .6;
57
+ }
58
+
59
+ .seed-data-table__headerCell[data-sorted] [data-chevron] {
60
+ opacity: 1;
61
+ color: var(--seed-color-fg-neutral);
62
+ }
63
+
64
+ .seed-data-table__headerCell:hover [data-column-menu], :is(.seed-data-table__headerCell [data-column-menu][data-open], .seed-data-table__headerCell [data-column-menu]:focus-visible) {
65
+ opacity: 1;
66
+ }
67
+
68
+ .seed-data-table__headerCell[data-dragging] {
69
+ opacity: .5;
70
+ }
71
+
72
+ .seed-data-table__headerCell[data-sticky] {
73
+ z-index: 3;
74
+ background-color: var(--seed-color-bg-layer-default);
75
+ position: sticky;
76
+ }
77
+
78
+ .seed-data-table__headerCell {
79
+ outline: var(--seed-dimension-x0_5) solid transparent;
80
+ outline-offset: calc(var(--seed-dimension-x0_5) * -1);
81
+ }
82
+
83
+ .seed-data-table__headerCell:is(:focus-visible, [data-focus-visible]) {
84
+ outline: var(--seed-dimension-x0_5) solid var(--seed-color-stroke-focus-ring);
85
+ outline-offset: calc(var(--seed-dimension-x0_5) * -1);
86
+ }
87
+
88
+ .seed-data-table__headerCell .seed-data-table-resize-handle {
89
+ top: 0;
90
+ z-index: 4;
91
+ cursor: col-resize;
92
+ touch-action: none;
93
+ justify-content: center;
94
+ align-items: center;
95
+ width: 7px;
96
+ height: 100%;
97
+ display: flex;
98
+ position: absolute;
99
+ inset-inline-end: -3.5px;
100
+ }
101
+
102
+ .seed-data-table__headerCell .seed-data-table-resize-handle-inner {
103
+ opacity: 0;
104
+ background-color: #0298d9;
105
+ border-radius: 3px;
106
+ width: 3px;
107
+ height: 100%;
108
+ transition: opacity .1s;
109
+ }
110
+
111
+ .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 {
112
+ opacity: 1;
113
+ }
114
+
115
+ .seed-data-table__headerCellInner {
116
+ box-sizing: border-box;
117
+ align-items: center;
118
+ gap: var(--seed-dimension-x1_5);
119
+ width: 100%;
120
+ min-width: 0;
121
+ height: 100%;
122
+ padding-inline: var(--seed-dimension-x3);
123
+ display: flex;
124
+ }
125
+
126
+ .seed-data-table__headerCellLabel {
127
+ text-overflow: ellipsis;
128
+ white-space: nowrap;
129
+ flex: 1;
130
+ min-width: 0;
131
+ overflow: clip;
132
+ }
133
+
134
+ .seed-data-table__headerCellIcon {
135
+ width: var(--seed-dimension-x4);
136
+ height: var(--seed-dimension-x4);
137
+ color: var(--seed-color-fg-neutral-subtle);
138
+ font: inherit;
139
+ cursor: pointer;
140
+ background: none;
141
+ border: none;
142
+ flex-shrink: 0;
143
+ justify-content: center;
144
+ align-items: center;
145
+ margin-inline-start: auto;
146
+ padding: 0;
147
+ display: inline-flex;
148
+ }
149
+
150
+ .seed-data-table__headerCellIcon[data-active] {
151
+ color: var(--seed-color-fg-neutral);
152
+ }
153
+
154
+ .seed-data-table__headerCellIcon[data-column-menu] {
155
+ opacity: 0;
156
+ transition: opacity .12s;
157
+ }
158
+
159
+ .seed-data-table__row {
160
+ background-color: var(--seed-color-bg-layer-default);
161
+ --seed-data-table-row-bg: var(--seed-color-bg-layer-default);
162
+ position: relative;
163
+ }
164
+
165
+ .seed-data-table__row[data-clickable] {
166
+ cursor: pointer;
167
+ }
168
+
169
+ .seed-data-table__row:is([aria-selected="true"], [data-selected]) {
170
+ background-color: color-mix(in srgb, #0298d9 10%, var(--seed-color-bg-layer-default));
171
+ --seed-data-table-row-bg: color-mix(in srgb, #0298d9 10%, var(--seed-color-bg-layer-default));
172
+ }
173
+
174
+ .seed-data-table__row:is([aria-selected="true"], [data-selected]):is(:hover, [data-hover]) {
175
+ background-color: color-mix(in srgb, var(--seed-color-fg-neutral) 3%, color-mix(in srgb, #0298d9 10%, var(--seed-color-bg-layer-default)));
176
+ --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)));
177
+ }
178
+
179
+ .seed-data-table__cell {
180
+ box-sizing: border-box;
181
+ vertical-align: middle;
182
+ text-align: start;
183
+ height: var(--seed-dimension-x9);
184
+ border-bottom: 1px solid var(--seed-color-stroke-neutral-muted);
185
+ border-inline-end: 1px solid var(--seed-color-stroke-neutral-muted);
186
+ border-top: none;
187
+ padding-block: 0;
188
+ padding-inline: var(--seed-dimension-x3);
189
+ color: var(--seed-color-fg-neutral);
190
+ font-size: var(--seed-font-size-t4);
191
+ line-height: var(--seed-line-height-t4);
192
+ font-weight: var(--seed-font-weight-regular);
193
+ letter-spacing: -.14px;
194
+ text-overflow: ellipsis;
195
+ white-space: nowrap;
196
+ border-inline-start: none;
197
+ position: relative;
198
+ overflow: clip;
199
+ }
200
+
201
+ .seed-data-table__cell:last-child {
202
+ border-inline-end: none;
203
+ }
204
+
205
+ tbody tr:last-child .seed-data-table__cell {
206
+ border-bottom: none;
207
+ }
208
+
209
+ .seed-data-table__cell[data-numeric] {
210
+ text-align: end;
211
+ font-variant-numeric: tabular-nums;
212
+ }
213
+
214
+ .seed-data-table__cell[data-sticky] {
215
+ z-index: 1;
216
+ background-color: var(--seed-data-table-row-bg);
217
+ position: sticky;
218
+ }
219
+
220
+ .seed-data-table__cell[data-editable] {
221
+ cursor: default;
222
+ }
223
+
224
+ .seed-data-table__cell .seed-data-table-edit-picker {
225
+ align-items: center;
226
+ gap: var(--seed-dimension-x1_5);
227
+ min-width: 0;
228
+ display: flex;
229
+ }
230
+
231
+ .seed-data-table__cell .seed-data-table-edit-pending {
232
+ color: var(--seed-color-fg-neutral-subtle);
233
+ flex-shrink: 0;
234
+ animation: .6s linear infinite rotate;
235
+ }
236
+
237
+ .seed-data-table__cell .seed-data-table-edit-error {
238
+ top: 100%;
239
+ z-index: 2;
240
+ color: var(--seed-color-fg-critical);
241
+ text-overflow: ellipsis;
242
+ white-space: nowrap;
243
+ padding-top: 2px;
244
+ font-size: 12px;
245
+ line-height: 1.3;
246
+ position: absolute;
247
+ inset-inline-start: var(--seed-dimension-x3);
248
+ inset-inline-end: var(--seed-dimension-x3);
249
+ overflow: clip;
250
+ }
251
+
252
+ .seed-data-table__entity {
253
+ align-items: center;
254
+ gap: var(--seed-dimension-x1_5);
255
+ min-width: 0;
256
+ display: flex;
257
+ }
258
+
259
+ .seed-data-table__entityName {
260
+ min-width: 0;
261
+ font-weight: var(--seed-font-weight-medium);
262
+ text-overflow: ellipsis;
263
+ white-space: nowrap;
264
+ overflow: clip;
265
+ }
266
+
267
+ .seed-data-table__tagList {
268
+ align-items: center;
269
+ gap: var(--seed-dimension-x1_5);
270
+ min-width: 0;
271
+ display: flex;
272
+ overflow: hidden;
273
+ }
274
+
275
+ .seed-data-table__link {
276
+ color: var(--seed-color-fg-neutral);
277
+ text-overflow: ellipsis;
278
+ white-space: nowrap;
279
+ min-width: 0;
280
+ text-decoration: none;
281
+ overflow: clip;
282
+ }
283
+
284
+ .seed-data-table__link:is(:hover, [data-hover]) {
285
+ text-decoration: underline;
286
+ }
287
+
288
+ .seed-data-table__toolbar {
289
+ box-sizing: border-box;
290
+ align-items: center;
291
+ gap: var(--seed-dimension-x2);
292
+ width: 100%;
293
+ min-height: 49px;
294
+ padding-inline: var(--seed-dimension-x3);
295
+ border-top: 1px solid var(--seed-color-stroke-neutral-muted);
296
+ flex-shrink: 0;
297
+ display: flex;
298
+ }
299
+
300
+ .seed-data-table__search {
301
+ flex: 1;
302
+ max-width: 280px;
303
+ }
304
+
305
+ .seed-data-table__count {
306
+ color: var(--seed-color-fg-neutral-subtle);
307
+ font-size: var(--seed-font-size-t3);
308
+ font-variant-numeric: tabular-nums;
309
+ flex-shrink: 0;
310
+ margin-inline-start: auto;
311
+ }
312
+
313
+ .seed-data-table__scrollArea {
314
+ flex-direction: column;
315
+ flex: auto;
316
+ width: 100%;
317
+ min-width: 0;
318
+ min-height: 0;
319
+ display: flex;
320
+ position: relative;
321
+ overflow: auto;
322
+ }
323
+
324
+ .seed-data-table__scrollArea[data-scrolled-start] [data-sticky-edge] {
325
+ clip-path: inset(0 -38px 0 0);
326
+ box-shadow: 6px 0 16px 4px #0000001f;
327
+ }
328
+
329
+ .seed-data-table__scrollArea[data-scrolled-end] [data-sticky-edge-end] {
330
+ clip-path: inset(0 0 0 -38px);
331
+ box-shadow: -6px 0 16px 4px #0000001f;
332
+ }
333
+
334
+ .seed-data-table__footerCell {
335
+ box-sizing: border-box;
336
+ z-index: 2;
337
+ vertical-align: middle;
338
+ height: var(--seed-dimension-x9);
339
+ background-color: var(--seed-color-bg-layer-default);
340
+ border-top: 1px solid var(--seed-color-stroke-neutral-muted);
341
+ border-inline-end: 1px solid var(--seed-color-stroke-neutral-muted);
342
+ border-inline-start: none;
343
+ padding: 0;
344
+ position: sticky;
345
+ bottom: 0;
346
+ }
347
+
348
+ .seed-data-table__footerCell:last-child {
349
+ border-inline-end: none;
350
+ }
351
+
352
+ .seed-data-table__footerCell .seed-data-table-column-calc-trigger {
353
+ align-items: center;
354
+ gap: var(--seed-dimension-x1_5);
355
+ width: 100%;
356
+ min-width: 0;
357
+ height: 100%;
358
+ padding: 0 var(--seed-dimension-x3);
359
+ color: var(--seed-color-fg-neutral-subtle);
360
+ font-family: inherit;
361
+ font-size: var(--seed-font-size-t4);
362
+ font-weight: var(--seed-font-weight-medium);
363
+ white-space: nowrap;
364
+ cursor: pointer;
365
+ background: none;
366
+ border: none;
367
+ margin: 0;
368
+ transition: background-color .12s, color .12s;
369
+ display: flex;
370
+ overflow: clip;
371
+ }
372
+
373
+ .seed-data-table__footerCell .seed-data-table-column-calc-trigger:hover {
374
+ background-color: color-mix(in srgb, var(--seed-color-fg-neutral) 4%, transparent);
375
+ color: var(--seed-color-fg-neutral);
376
+ }
377
+
378
+ .seed-data-table__footerCell .seed-data-table-column-calc-trigger[data-align="right"] {
379
+ justify-content: flex-end;
380
+ }
381
+
382
+ .seed-data-table__footerCell .seed-data-table-column-calc-trigger svg {
383
+ opacity: .7;
384
+ flex-shrink: 0;
385
+ }
386
+
387
+ .seed-data-table__footerCell .seed-data-table-column-calc-placeholder {
388
+ text-overflow: ellipsis;
389
+ white-space: nowrap;
390
+ overflow: clip;
391
+ }
392
+
393
+ .seed-data-table__footerCell .seed-data-table-column-calc-value {
394
+ min-width: 0;
395
+ color: var(--seed-color-fg-neutral);
396
+ font-variant-numeric: tabular-nums;
397
+ text-overflow: ellipsis;
398
+ white-space: nowrap;
399
+ flex-shrink: 1;
400
+ overflow: clip;
401
+ }
402
+
403
+ .seed-data-table__footerCell .seed-data-table-column-calc-op {
404
+ min-width: 0;
405
+ color: color-mix(in srgb, var(--seed-color-fg-neutral) 63%, transparent);
406
+ text-overflow: ellipsis;
407
+ white-space: nowrap;
408
+ flex-shrink: 1;
409
+ overflow: clip;
410
+ }
411
+
412
+ .seed-data-table__emptyState {
413
+ box-sizing: border-box;
414
+ text-align: center;
415
+ padding-block: var(--seed-dimension-x8);
416
+ padding-inline: var(--seed-dimension-x3);
417
+ color: var(--seed-color-fg-neutral-subtle);
418
+ font-size: var(--seed-font-size-t4);
419
+ }
420
+
421
+ .seed-data-table__loadingState {
422
+ box-sizing: border-box;
423
+ padding-block: var(--seed-dimension-x8);
424
+ padding-inline: var(--seed-dimension-x3);
425
+ color: color-mix(in srgb, var(--seed-color-fg-neutral) 63%, transparent);
426
+ font-size: var(--seed-font-size-t4);
427
+ line-height: var(--seed-line-height-t4);
428
+ font-weight: var(--seed-font-weight-medium);
429
+ justify-content: center;
430
+ align-items: center;
431
+ gap: 10px;
432
+ display: flex;
433
+ }
434
+
435
+ .seed-data-table__loadingState[data-inline] {
436
+ height: var(--seed-dimension-x9);
437
+ padding-block: 0;
438
+ padding-inline: 0;
439
+ }
440
+
441
+ .seed-data-table__loadingState .seed-data-table-loading-spinner {
442
+ color: color-mix(in srgb, var(--seed-color-fg-neutral) 63%, transparent);
443
+ flex-shrink: 0;
444
+ animation: .6s linear infinite rotate;
445
+ }
446
+
447
+ .seed-data-table__addRowCell {
448
+ box-sizing: border-box;
449
+ border-top: none;
450
+ padding: 0;
451
+ }
452
+
453
+ .seed-data-table__addRow {
454
+ box-sizing: border-box;
455
+ border: none;
456
+ border-top: 1px solid var(--seed-color-stroke-neutral-muted);
457
+ background-color: var(--seed-color-bg-layer-default);
458
+ width: 100%;
459
+ height: var(--seed-dimension-x9);
460
+ align-items: center;
461
+ gap: var(--seed-dimension-x2);
462
+ padding-inline: var(--seed-dimension-x2);
463
+ color: var(--seed-color-fg-neutral-subtle);
464
+ font-family: inherit;
465
+ font-size: var(--seed-font-size-t4);
466
+ cursor: pointer;
467
+ margin: 0;
468
+ transition: background-color .12s, color .12s;
469
+ display: flex;
470
+ }
471
+
472
+ .seed-data-table__addRow:hover {
473
+ background-color: color-mix(in srgb, var(--seed-color-fg-neutral) 4%, var(--seed-color-bg-layer-default));
474
+ color: var(--seed-color-fg-neutral);
475
+ }
476
+
477
+ .seed-data-table__addRow svg {
478
+ flex-shrink: 0;
479
+ }
480
+
481
+ .seed-data-table__selectionCell {
482
+ text-align: center;
483
+ padding: 0;
484
+ }
485
+
486
+ .seed-data-table__root--surface_card {
487
+ border-color: var(--seed-color-stroke-neutral-muted);
488
+ background-color: var(--seed-color-bg-layer-default);
489
+ border-radius: var(--seed-radius-r3);
490
+ }
491
+
492
+ .seed-data-table__root--surface_bleed {
493
+ border-color: var(--seed-color-bg-transparent);
494
+ background-color: var(--seed-color-bg-transparent);
495
+ }
496
+
497
+ .seed-data-table__row--interactive_true {
498
+ transition: background-color .12s;
499
+ }
500
+
501
+ .seed-data-table__row--interactive_true:is(:hover, [data-hover]) {
502
+ background-color: color-mix(in srgb, var(--seed-color-fg-neutral) 3%, transparent);
503
+ --seed-data-table-row-bg: color-mix(in srgb, var(--seed-color-fg-neutral) 3%, var(--seed-color-bg-layer-default));
504
+ }
505
+ }