@mendylanda/ui 0.3.0-alpha.0 → 0.3.0-alpha.10
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.
- package/README.md +20 -3
- package/dist/class-names.js +1 -1
- package/dist/filters/filter-bar.d.ts +1 -1
- package/dist/filters/filter-bar.js +53 -12
- package/dist/filters/filter-menu-focus.d.ts +1 -1
- package/dist/filters/filter-menu-panel.d.ts +1 -1
- package/dist/filters/use-menu-placement.d.ts +1 -1
- package/dist/primitives/popover.d.ts +5 -0
- package/dist/primitives/popover.js +10 -0
- package/dist/styles.css +153 -27
- package/dist/styles.tailwind3.css +153 -27
- package/dist/table/clipboard.d.ts +1 -1
- package/dist/table/clipboard.js +35 -22
- package/dist/table/column-widths.d.ts +9 -0
- package/dist/table/column-widths.js +23 -0
- package/dist/table/columns.d.ts +6 -0
- package/dist/table/columns.js +4 -0
- package/dist/table/data-table.d.ts +3 -0
- package/dist/table/data-table.js +6 -3
- package/dist/table/index.d.ts +1 -0
- package/dist/table/index.js +1 -0
- package/dist/table/table-column-settings.d.ts +6 -0
- package/dist/table/table-column-settings.js +55 -0
- package/dist/table/table-controls.d.ts +1 -3
- package/dist/table/table-controls.js +4 -41
- package/dist/table/table-feedback.d.ts +5 -1
- package/dist/table/table-feedback.js +5 -4
- package/dist/table/table-filters.d.ts +8 -0
- package/dist/table/table-filters.js +9 -0
- package/dist/table/table-frame.d.ts +10 -0
- package/dist/table/table-frame.js +10 -0
- package/dist/table/table-layout.d.ts +44 -0
- package/dist/table/table-layout.js +68 -0
- package/dist/table/table-loading.d.ts +12 -0
- package/dist/table/table-loading.js +6 -0
- package/dist/table/table-parts.d.ts +20 -2
- package/dist/table/table-parts.js +91 -37
- package/dist/table/table-view.d.ts +19 -2
- package/dist/table/table-view.js +60 -53
- package/dist/table/use-column-window.d.ts +42 -0
- package/dist/table/use-column-window.js +65 -0
- package/dist/table/use-data-table.d.ts +2 -2
- package/dist/table/use-data-table.js +15 -2
- package/dist/table/use-fill-layout.d.ts +2 -0
- package/dist/table/use-fill-layout.js +67 -0
- package/dist/table/use-inline-row-selection.d.ts +10 -0
- package/dist/table/use-inline-row-selection.js +33 -0
- package/dist/table/use-stable-array.d.ts +3 -0
- package/dist/table/use-stable-array.js +16 -0
- package/dist/table/use-table-interaction.d.ts +1 -1
- package/dist/table/use-table-interaction.js +32 -3
- package/dist/table/use-table-results.d.ts +8 -0
- package/dist/table/use-table-results.js +63 -0
- package/dist/utils.js +13 -2
- package/package.json +9 -8
|
@@ -16,6 +16,7 @@
|
|
|
16
16
|
--font-weight-semibold: 600;
|
|
17
17
|
--tracking-widest: 0.1em;
|
|
18
18
|
--drop-shadow-md: 0 3px 3px rgb(0 0 0 / 0.12);
|
|
19
|
+
--animate-spin: mendy-spin 1s linear infinite;
|
|
19
20
|
--animate-pulse: mendy-pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
|
|
20
21
|
--default-transition-duration: 150ms;
|
|
21
22
|
--default-transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
|
|
@@ -101,6 +102,9 @@
|
|
|
101
102
|
.mui-014aadadffad:where([data-mendy-ui], [data-mendy-ui] *) {
|
|
102
103
|
isolation: isolate;
|
|
103
104
|
}
|
|
105
|
+
.mui-d7efd1b0b0f9:where([data-mendy-ui], [data-mendy-ui] *) {
|
|
106
|
+
z-index: 1;
|
|
107
|
+
}
|
|
104
108
|
.mui-418e44ad4f9e:where([data-mendy-ui], [data-mendy-ui] *) {
|
|
105
109
|
z-index: 10;
|
|
106
110
|
}
|
|
@@ -152,6 +156,12 @@
|
|
|
152
156
|
.mui-8cc46fa87f41:where([data-mendy-ui], [data-mendy-ui] *) {
|
|
153
157
|
margin-inline-end: calc(var(--spacing) * -1.5);
|
|
154
158
|
}
|
|
159
|
+
.mui-477d8f4dfce9:where([data-mendy-ui], [data-mendy-ui] *) {
|
|
160
|
+
margin-inline-end: calc(var(--spacing) * 1);
|
|
161
|
+
}
|
|
162
|
+
.mui-68d781378b03:where([data-mendy-ui], [data-mendy-ui] *) {
|
|
163
|
+
margin-inline-end: calc(var(--spacing) * 2);
|
|
164
|
+
}
|
|
155
165
|
.mui-f28fea81a5cd:where([data-mendy-ui], [data-mendy-ui] *) {
|
|
156
166
|
margin-top: calc(var(--spacing) * 2);
|
|
157
167
|
}
|
|
@@ -208,6 +218,10 @@
|
|
|
208
218
|
width: calc(var(--spacing) * 4);
|
|
209
219
|
height: calc(var(--spacing) * 4);
|
|
210
220
|
}
|
|
221
|
+
.mui-2bd43fb57913:where([data-mendy-ui], [data-mendy-ui] *) {
|
|
222
|
+
width: calc(var(--spacing) * 5);
|
|
223
|
+
height: calc(var(--spacing) * 5);
|
|
224
|
+
}
|
|
211
225
|
.mui-0712570dcc9f:where([data-mendy-ui], [data-mendy-ui] *) {
|
|
212
226
|
width: calc(var(--spacing) * 6);
|
|
213
227
|
height: calc(var(--spacing) * 6);
|
|
@@ -238,12 +252,18 @@
|
|
|
238
252
|
.mui-c7d5500b77ab:where([data-mendy-ui], [data-mendy-ui] *) {
|
|
239
253
|
height: calc(var(--spacing) * 0);
|
|
240
254
|
}
|
|
255
|
+
.mui-2edce89ef182:where([data-mendy-ui], [data-mendy-ui] *) {
|
|
256
|
+
height: calc(var(--spacing) * 3);
|
|
257
|
+
}
|
|
241
258
|
.mui-099be97e1fa4:where([data-mendy-ui], [data-mendy-ui] *) {
|
|
242
259
|
height: calc(var(--spacing) * 4);
|
|
243
260
|
}
|
|
244
261
|
.mui-ce1945804664:where([data-mendy-ui], [data-mendy-ui] *) {
|
|
245
262
|
height: calc(var(--spacing) * 6);
|
|
246
263
|
}
|
|
264
|
+
.mui-c8e50836f8a1:where([data-mendy-ui], [data-mendy-ui] *) {
|
|
265
|
+
height: calc(var(--spacing) * 7);
|
|
266
|
+
}
|
|
247
267
|
.mui-1fb07b38c63b:where([data-mendy-ui], [data-mendy-ui] *) {
|
|
248
268
|
height: calc(var(--spacing) * 8);
|
|
249
269
|
}
|
|
@@ -268,8 +288,11 @@
|
|
|
268
288
|
.mui-1f061e70178e:where([data-mendy-ui], [data-mendy-ui] *) {
|
|
269
289
|
max-height: var(--radix-dropdown-menu-content-available-height);
|
|
270
290
|
}
|
|
271
|
-
.mui-
|
|
272
|
-
max-height:
|
|
291
|
+
.mui-4d3f1304ebb2:where([data-mendy-ui], [data-mendy-ui] *) {
|
|
292
|
+
max-height: var(--radix-popover-content-available-height);
|
|
293
|
+
}
|
|
294
|
+
.mui-da0beef015c9:where([data-mendy-ui], [data-mendy-ui] *) {
|
|
295
|
+
max-height: 400px;
|
|
273
296
|
}
|
|
274
297
|
.mui-80baa5d03af7:where([data-mendy-ui], [data-mendy-ui] *) {
|
|
275
298
|
max-height: calc(var(--filter-menu-height) - 2px);
|
|
@@ -283,6 +306,9 @@
|
|
|
283
306
|
.mui-dcd942c18ddc:where([data-mendy-ui], [data-mendy-ui] *) {
|
|
284
307
|
max-height: var(--radix-dropdown-menu-content-available-height);
|
|
285
308
|
}
|
|
309
|
+
.mui-7bd696ca6be3:where([data-mendy-ui], [data-mendy-ui] *) {
|
|
310
|
+
max-height: 100%;
|
|
311
|
+
}
|
|
286
312
|
.mui-410da8dfa8ac:where([data-mendy-ui], [data-mendy-ui] *) {
|
|
287
313
|
min-height: calc(var(--spacing) * 0);
|
|
288
314
|
}
|
|
@@ -301,18 +327,21 @@
|
|
|
301
327
|
.mui-d4ea834145ae:where([data-mendy-ui], [data-mendy-ui] *) {
|
|
302
328
|
width: calc(var(--spacing) * 2);
|
|
303
329
|
}
|
|
330
|
+
.mui-56bb14cbd1fe:where([data-mendy-ui], [data-mendy-ui] *) {
|
|
331
|
+
width: calc(2 / 3 * 100%);
|
|
332
|
+
}
|
|
304
333
|
.mui-8867d85ed290:where([data-mendy-ui], [data-mendy-ui] *) {
|
|
305
334
|
width: calc(var(--spacing) * 8);
|
|
306
335
|
}
|
|
307
336
|
.mui-4ac4ec8dfbce:where([data-mendy-ui], [data-mendy-ui] *) {
|
|
308
337
|
width: calc(var(--spacing) * 40);
|
|
309
338
|
}
|
|
310
|
-
.mui-72b37c1a040d:where([data-mendy-ui], [data-mendy-ui] *) {
|
|
311
|
-
width: calc(var(--spacing) * 64);
|
|
312
|
-
}
|
|
313
339
|
.mui-37535002f0f7:where([data-mendy-ui], [data-mendy-ui] *) {
|
|
314
340
|
width: calc(var(--spacing) * 72);
|
|
315
341
|
}
|
|
342
|
+
.mui-a4cce7869436:where([data-mendy-ui], [data-mendy-ui] *) {
|
|
343
|
+
width: 300px;
|
|
344
|
+
}
|
|
316
345
|
.mui-fc6a57ff7553:where([data-mendy-ui], [data-mendy-ui] *) {
|
|
317
346
|
width: var(--mendy-filter-editor-width,19rem);
|
|
318
347
|
}
|
|
@@ -358,6 +387,9 @@
|
|
|
358
387
|
.mui-27ead27a81df:where([data-mendy-ui], [data-mendy-ui] *) {
|
|
359
388
|
flex-shrink: 0;
|
|
360
389
|
}
|
|
390
|
+
.mui-adca5146416e:where([data-mendy-ui], [data-mendy-ui] *) {
|
|
391
|
+
flex-grow: 1;
|
|
392
|
+
}
|
|
361
393
|
.mui-215061302c50:where([data-mendy-ui], [data-mendy-ui] *) {
|
|
362
394
|
border-collapse: collapse;
|
|
363
395
|
}
|
|
@@ -368,6 +400,12 @@
|
|
|
368
400
|
--mendy-tw-translate-y: calc(calc(1 / 2 * 100%) * -1);
|
|
369
401
|
translate: var(--mendy-tw-translate-x) var(--mendy-tw-translate-y);
|
|
370
402
|
}
|
|
403
|
+
.mui-4e3f08588318:where([data-mendy-ui], [data-mendy-ui] *) {
|
|
404
|
+
rotate: calc(45deg * -1);
|
|
405
|
+
}
|
|
406
|
+
.mui-c80411b7591f:where([data-mendy-ui], [data-mendy-ui] *) {
|
|
407
|
+
rotate: 45deg;
|
|
408
|
+
}
|
|
371
409
|
.mui-aa214ea38326:where([data-mendy-ui], [data-mendy-ui] *) {
|
|
372
410
|
transform: var(--mendy-tw-rotate-x,) var(--mendy-tw-rotate-y,) var(--mendy-tw-rotate-z,) var(--mendy-tw-skew-x,) var(--mendy-tw-skew-y,);
|
|
373
411
|
}
|
|
@@ -377,12 +415,21 @@
|
|
|
377
415
|
.mui-7b3cd77eb999:where([data-mendy-ui], [data-mendy-ui] *) {
|
|
378
416
|
animation: var(--animate-pulse);
|
|
379
417
|
}
|
|
418
|
+
.mui-2c14b55d77e6:where([data-mendy-ui], [data-mendy-ui] *) {
|
|
419
|
+
animation: var(--animate-spin);
|
|
420
|
+
}
|
|
380
421
|
.mui-2194d094b585:where([data-mendy-ui], [data-mendy-ui] *) {
|
|
381
422
|
cursor: col-resize;
|
|
382
423
|
}
|
|
383
424
|
.mui-d343f41ba73e:where([data-mendy-ui], [data-mendy-ui] *) {
|
|
384
425
|
cursor: default;
|
|
385
426
|
}
|
|
427
|
+
.mui-f2e47d9c52ad:where([data-mendy-ui], [data-mendy-ui] *) {
|
|
428
|
+
cursor: grab;
|
|
429
|
+
}
|
|
430
|
+
.mui-d2fa8848968d:where([data-mendy-ui], [data-mendy-ui] *) {
|
|
431
|
+
cursor: pointer;
|
|
432
|
+
}
|
|
386
433
|
.mui-739a9a000791:where([data-mendy-ui], [data-mendy-ui] *) {
|
|
387
434
|
touch-action: none;
|
|
388
435
|
}
|
|
@@ -454,13 +501,6 @@
|
|
|
454
501
|
margin-block-end: calc(calc(var(--spacing) * 2) * calc(1 - var(--mendy-tw-space-y-reverse)));
|
|
455
502
|
}
|
|
456
503
|
}
|
|
457
|
-
.mui-b8ceaab118a4:where([data-mendy-ui], [data-mendy-ui] *) {
|
|
458
|
-
:where(& > :not(:last-child)) {
|
|
459
|
-
--mendy-tw-space-y-reverse: 0;
|
|
460
|
-
margin-block-start: calc(calc(var(--spacing) * 3) * var(--mendy-tw-space-y-reverse));
|
|
461
|
-
margin-block-end: calc(calc(var(--spacing) * 3) * calc(1 - var(--mendy-tw-space-y-reverse)));
|
|
462
|
-
}
|
|
463
|
-
}
|
|
464
504
|
.mui-5a3a4ee420c2:where([data-mendy-ui], [data-mendy-ui] *) {
|
|
465
505
|
overflow: hidden;
|
|
466
506
|
text-overflow: ellipsis;
|
|
@@ -484,9 +524,6 @@
|
|
|
484
524
|
.mui-998780cdef87:where([data-mendy-ui], [data-mendy-ui] *) {
|
|
485
525
|
overscroll-behavior: contain;
|
|
486
526
|
}
|
|
487
|
-
.mui-01024deec75e:where([data-mendy-ui], [data-mendy-ui] *) {
|
|
488
|
-
border-radius: 0.25rem;
|
|
489
|
-
}
|
|
490
527
|
.mui-b005d61d0953:where([data-mendy-ui], [data-mendy-ui] *) {
|
|
491
528
|
border-radius: calc(infinity * 1px);
|
|
492
529
|
}
|
|
@@ -554,6 +591,9 @@
|
|
|
554
591
|
border-color: color-mix(in oklab, var(--muted-foreground, #737373) 50%, transparent);
|
|
555
592
|
}
|
|
556
593
|
}
|
|
594
|
+
.mui-515f9fdc6db7:where([data-mendy-ui], [data-mendy-ui] *) {
|
|
595
|
+
border-color: var(--primary, #171717);
|
|
596
|
+
}
|
|
557
597
|
.mui-292affc1f780:where([data-mendy-ui], [data-mendy-ui] *) {
|
|
558
598
|
background-color: var(--accent, #f5f5f5);
|
|
559
599
|
}
|
|
@@ -572,6 +612,9 @@
|
|
|
572
612
|
.mui-047624ec0c39:where([data-mendy-ui], [data-mendy-ui] *) {
|
|
573
613
|
background-color: var(--color-green-100);
|
|
574
614
|
}
|
|
615
|
+
.mui-6ba846e1630e:where([data-mendy-ui], [data-mendy-ui] *) {
|
|
616
|
+
background-color: inherit;
|
|
617
|
+
}
|
|
575
618
|
.mui-87ecb59f2d2d:where([data-mendy-ui], [data-mendy-ui] *) {
|
|
576
619
|
background-color: var(--muted, #f5f5f5);
|
|
577
620
|
}
|
|
@@ -641,6 +684,12 @@
|
|
|
641
684
|
.mui-b5edc3ea7c91:where([data-mendy-ui], [data-mendy-ui] *) {
|
|
642
685
|
padding-block: calc(var(--spacing) * 2);
|
|
643
686
|
}
|
|
687
|
+
.mui-d3cea061f2f3:where([data-mendy-ui], [data-mendy-ui] *) {
|
|
688
|
+
padding-block: calc(var(--spacing) * 3);
|
|
689
|
+
}
|
|
690
|
+
.mui-96b92a971c95:where([data-mendy-ui], [data-mendy-ui] *) {
|
|
691
|
+
padding-block: calc(var(--spacing) * 5);
|
|
692
|
+
}
|
|
644
693
|
.mui-078d945937da:where([data-mendy-ui], [data-mendy-ui] *) {
|
|
645
694
|
padding-inline-start: calc(var(--spacing) * 8);
|
|
646
695
|
}
|
|
@@ -781,6 +830,13 @@
|
|
|
781
830
|
--mendy-tw-shadow: 0 1px 2px 0 var(--mendy-tw-shadow-color, rgb(0 0 0 / 0.05));
|
|
782
831
|
box-shadow: var(--mendy-tw-inset-shadow), var(--mendy-tw-inset-ring-shadow), var(--mendy-tw-ring-offset-shadow), var(--mendy-tw-ring-shadow), var(--mendy-tw-shadow);
|
|
783
832
|
}
|
|
833
|
+
.mui-853be6c11609:where([data-mendy-ui], [data-mendy-ui] *) {
|
|
834
|
+
--mendy-tw-ring-shadow: var(--mendy-tw-ring-inset,) 0 0 0 calc(2px + var(--mendy-tw-ring-offset-width)) var(--mendy-tw-ring-color, currentcolor);
|
|
835
|
+
box-shadow: var(--mendy-tw-inset-shadow), var(--mendy-tw-inset-ring-shadow), var(--mendy-tw-ring-offset-shadow), var(--mendy-tw-ring-shadow), var(--mendy-tw-shadow);
|
|
836
|
+
}
|
|
837
|
+
.mui-fd9d0b696aac:where([data-mendy-ui], [data-mendy-ui] *) {
|
|
838
|
+
--mendy-tw-ring-color: var(--primary, #171717);
|
|
839
|
+
}
|
|
784
840
|
.mui-59edd3d33673:where([data-mendy-ui], [data-mendy-ui] *) {
|
|
785
841
|
--mendy-tw-outline-style: none;
|
|
786
842
|
outline-style: none;
|
|
@@ -793,6 +849,10 @@
|
|
|
793
849
|
outline-style: var(--mendy-tw-outline-style);
|
|
794
850
|
outline-width: 1px;
|
|
795
851
|
}
|
|
852
|
+
.mui-e42932b7a79c:where([data-mendy-ui], [data-mendy-ui] *) {
|
|
853
|
+
--mendy-tw-blur: blur(8px);
|
|
854
|
+
filter: var(--mendy-tw-blur,) var(--mendy-tw-brightness,) var(--mendy-tw-contrast,) var(--mendy-tw-grayscale,) var(--mendy-tw-hue-rotate,) var(--mendy-tw-invert,) var(--mendy-tw-saturate,) var(--mendy-tw-sepia,) var(--mendy-tw-drop-shadow,);
|
|
855
|
+
}
|
|
796
856
|
.mui-e0122edc668b:where([data-mendy-ui], [data-mendy-ui] *) {
|
|
797
857
|
--mendy-tw-drop-shadow-size: drop-shadow(0 3px 3px var(--mendy-tw-drop-shadow-color, rgb(0 0 0 / 0.12)));
|
|
798
858
|
--mendy-tw-drop-shadow: drop-shadow(var(--drop-shadow-md));
|
|
@@ -857,6 +917,13 @@
|
|
|
857
917
|
}
|
|
858
918
|
}
|
|
859
919
|
}
|
|
920
|
+
.mui-34a57d4b4103:where([data-mendy-ui], [data-mendy-ui] *) {
|
|
921
|
+
&:is(:where(.mui-ad936fcbed63):hover *) {
|
|
922
|
+
@media (hover: hover) {
|
|
923
|
+
opacity: 50%;
|
|
924
|
+
}
|
|
925
|
+
}
|
|
926
|
+
}
|
|
860
927
|
.mui-9af9a4182597:where([data-mendy-ui], [data-mendy-ui] *) {
|
|
861
928
|
&:is(:where(.mui-ad936fcbed63)[data-disabled="true"] *) {
|
|
862
929
|
pointer-events: none;
|
|
@@ -942,12 +1009,6 @@
|
|
|
942
1009
|
border-inline-start-width: 0px;
|
|
943
1010
|
}
|
|
944
1011
|
}
|
|
945
|
-
.mui-beeef6663906:where([data-mendy-ui], [data-mendy-ui] *) {
|
|
946
|
-
&:last-child {
|
|
947
|
-
border-inline-end-style: var(--mendy-tw-border-style);
|
|
948
|
-
border-inline-end-width: 0px;
|
|
949
|
-
}
|
|
950
|
-
}
|
|
951
1012
|
.mui-37ad15a95595:where([data-mendy-ui], [data-mendy-ui] *) {
|
|
952
1013
|
&:hover {
|
|
953
1014
|
@media (hover: hover) {
|
|
@@ -955,22 +1016,22 @@
|
|
|
955
1016
|
}
|
|
956
1017
|
}
|
|
957
1018
|
}
|
|
958
|
-
.mui-
|
|
1019
|
+
.mui-bb6a4b3e902d:where([data-mendy-ui], [data-mendy-ui] *) {
|
|
959
1020
|
&:hover {
|
|
960
1021
|
@media (hover: hover) {
|
|
961
|
-
background-color: var(--
|
|
1022
|
+
background-color: var(--destructive, #dc2626);
|
|
962
1023
|
@supports (color: color-mix(in lab, red, red)) {
|
|
963
|
-
background-color: color-mix(in oklab, var(--
|
|
1024
|
+
background-color: color-mix(in oklab, var(--destructive, #dc2626) 90%, transparent);
|
|
964
1025
|
}
|
|
965
1026
|
}
|
|
966
1027
|
}
|
|
967
1028
|
}
|
|
968
|
-
.mui-
|
|
1029
|
+
.mui-5cbdd1b32f1a:where([data-mendy-ui], [data-mendy-ui] *) {
|
|
969
1030
|
&:hover {
|
|
970
1031
|
@media (hover: hover) {
|
|
971
|
-
background-color: var(--
|
|
1032
|
+
background-color: var(--muted, #f5f5f5);
|
|
972
1033
|
@supports (color: color-mix(in lab, red, red)) {
|
|
973
|
-
background-color: color-mix(in oklab, var(--
|
|
1034
|
+
background-color: color-mix(in oklab, var(--muted, #f5f5f5) 50%, transparent);
|
|
974
1035
|
}
|
|
975
1036
|
}
|
|
976
1037
|
}
|
|
@@ -1063,6 +1124,11 @@
|
|
|
1063
1124
|
}
|
|
1064
1125
|
}
|
|
1065
1126
|
}
|
|
1127
|
+
.mui-b8b1747fa763:where([data-mendy-ui], [data-mendy-ui] *) {
|
|
1128
|
+
&:focus-visible {
|
|
1129
|
+
opacity: 100%;
|
|
1130
|
+
}
|
|
1131
|
+
}
|
|
1066
1132
|
.mui-39be5a15b766:where([data-mendy-ui], [data-mendy-ui] *) {
|
|
1067
1133
|
&:focus-visible {
|
|
1068
1134
|
--mendy-tw-ring-shadow: var(--mendy-tw-ring-inset,) 0 0 0 calc(1px + var(--mendy-tw-ring-offset-width)) var(--mendy-tw-ring-color, currentcolor);
|
|
@@ -1132,6 +1198,11 @@
|
|
|
1132
1198
|
--mendy-tw-ring-inset: inset;
|
|
1133
1199
|
}
|
|
1134
1200
|
}
|
|
1201
|
+
.mui-71998ea7a2d0:where([data-mendy-ui], [data-mendy-ui] *) {
|
|
1202
|
+
&:active {
|
|
1203
|
+
cursor: grabbing;
|
|
1204
|
+
}
|
|
1205
|
+
}
|
|
1135
1206
|
.mui-8d3c1014b967:where([data-mendy-ui], [data-mendy-ui] *) {
|
|
1136
1207
|
&:disabled {
|
|
1137
1208
|
pointer-events: none;
|
|
@@ -1142,11 +1213,25 @@
|
|
|
1142
1213
|
cursor: not-allowed;
|
|
1143
1214
|
}
|
|
1144
1215
|
}
|
|
1216
|
+
.mui-d2e4a66bb430:where([data-mendy-ui], [data-mendy-ui] *) {
|
|
1217
|
+
&:disabled {
|
|
1218
|
+
opacity: 0% !important;
|
|
1219
|
+
}
|
|
1220
|
+
}
|
|
1145
1221
|
.mui-4600b77303d6:where([data-mendy-ui], [data-mendy-ui] *) {
|
|
1146
1222
|
&:disabled {
|
|
1147
1223
|
opacity: 50%;
|
|
1148
1224
|
}
|
|
1149
1225
|
}
|
|
1226
|
+
.mui-978f422895e5:where([data-mendy-ui], [data-mendy-ui] *) {
|
|
1227
|
+
&:is(:where(.mui-ad936fcbed63):hover *) {
|
|
1228
|
+
@media (hover: hover) {
|
|
1229
|
+
&:disabled {
|
|
1230
|
+
opacity: 50% !important;
|
|
1231
|
+
}
|
|
1232
|
+
}
|
|
1233
|
+
}
|
|
1234
|
+
}
|
|
1150
1235
|
.mui-7eb7501a2ef0:where([data-mendy-ui], [data-mendy-ui] *) {
|
|
1151
1236
|
&:has(*:focus) {
|
|
1152
1237
|
border-color: var(--ring, #737373);
|
|
@@ -1359,6 +1444,18 @@
|
|
|
1359
1444
|
color: var(--primary-foreground, #fafafa);
|
|
1360
1445
|
}
|
|
1361
1446
|
}
|
|
1447
|
+
.mui-d0c2ae8419e1:where([data-mendy-ui], [data-mendy-ui] *) {
|
|
1448
|
+
&[data-state="checked"] {
|
|
1449
|
+
opacity: 100%;
|
|
1450
|
+
}
|
|
1451
|
+
}
|
|
1452
|
+
.mui-9c02852bfc55:where([data-mendy-ui], [data-mendy-ui] *) {
|
|
1453
|
+
&[data-state="checked"] {
|
|
1454
|
+
&:disabled {
|
|
1455
|
+
opacity: 100% !important;
|
|
1456
|
+
}
|
|
1457
|
+
}
|
|
1458
|
+
}
|
|
1362
1459
|
.mui-37d8a3f448ff:where([data-mendy-ui], [data-mendy-ui] *) {
|
|
1363
1460
|
&[data-state="closed"] {
|
|
1364
1461
|
animation: none !important;
|
|
@@ -1381,6 +1478,18 @@
|
|
|
1381
1478
|
--mendy-tw-exit-scale: .95;
|
|
1382
1479
|
}
|
|
1383
1480
|
}
|
|
1481
|
+
.mui-e2ed522ed9b7:where([data-mendy-ui], [data-mendy-ui] *) {
|
|
1482
|
+
&[data-state="indeterminate"] {
|
|
1483
|
+
opacity: 100%;
|
|
1484
|
+
}
|
|
1485
|
+
}
|
|
1486
|
+
.mui-cbd3aed703f7:where([data-mendy-ui], [data-mendy-ui] *) {
|
|
1487
|
+
&[data-state="indeterminate"] {
|
|
1488
|
+
&:disabled {
|
|
1489
|
+
opacity: 100% !important;
|
|
1490
|
+
}
|
|
1491
|
+
}
|
|
1492
|
+
}
|
|
1384
1493
|
.mui-bae1e782f277:where([data-mendy-ui], [data-mendy-ui] *) {
|
|
1385
1494
|
&[data-state="open"] {
|
|
1386
1495
|
animation: mendy-enter var(--mendy-tw-animation-duration,var(--mendy-tw-duration,.15s))var(--mendy-tw-ease,ease)var(--mendy-tw-animation-delay,0s)var(--mendy-tw-animation-iteration-count,1)var(--mendy-tw-animation-direction,normal)var(--mendy-tw-animation-fill-mode,none);
|
|
@@ -1707,6 +1816,18 @@
|
|
|
1707
1816
|
color: var(--muted-foreground, #737373);
|
|
1708
1817
|
}
|
|
1709
1818
|
}
|
|
1819
|
+
.mui-fa8e1efead3c:where([data-mendy-ui], [data-mendy-ui] *) {
|
|
1820
|
+
@media (hover:none) {
|
|
1821
|
+
opacity: 100%;
|
|
1822
|
+
}
|
|
1823
|
+
}
|
|
1824
|
+
.mui-eaedb91f8774:where([data-mendy-ui], [data-mendy-ui] *) {
|
|
1825
|
+
@media (hover:none) {
|
|
1826
|
+
&:disabled {
|
|
1827
|
+
opacity: 100% !important;
|
|
1828
|
+
}
|
|
1829
|
+
}
|
|
1830
|
+
}
|
|
1710
1831
|
.mui-b8293c91796c:where([data-mendy-ui], [data-mendy-ui] *) {
|
|
1711
1832
|
[data-slot=card-content] & {
|
|
1712
1833
|
background-color: transparent;
|
|
@@ -2033,6 +2154,11 @@
|
|
|
2033
2154
|
syntax: "*";
|
|
2034
2155
|
inherits: false;
|
|
2035
2156
|
}
|
|
2157
|
+
@keyframes mendy-spin {
|
|
2158
|
+
to {
|
|
2159
|
+
transform: rotate(360deg);
|
|
2160
|
+
}
|
|
2161
|
+
}
|
|
2036
2162
|
@keyframes mendy-pulse {
|
|
2037
2163
|
50% {
|
|
2038
2164
|
opacity: 0.5;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { DataTableInstance } from "./use-data-table.js";
|
|
2
|
-
export declare const interactiveSelector = "button, a, input, textarea, select, [contenteditable]:not([contenteditable=\"false\"]), [role=\"checkbox\"], [role=\"button\"], [role=\"textbox\"]";
|
|
2
|
+
export declare const interactiveSelector = "button, a, summary, input, textarea, select, [contenteditable]:not([contenteditable=\"false\"]), [role=\"checkbox\"], [role=\"button\"], [role=\"textbox\"]";
|
|
3
3
|
export declare function selectedCellsText<T extends object>(table: DataTableInstance<T>): string;
|
|
4
4
|
export declare function tableCsv<T extends object>(table: DataTableInstance<T>, options?: {
|
|
5
5
|
selectedOnly?: boolean;
|
package/dist/table/clipboard.js
CHANGED
|
@@ -1,27 +1,40 @@
|
|
|
1
|
+
import { constructCell } from "@tanstack/react-table";
|
|
1
2
|
import { csvValue, tsvValue } from "./state.js";
|
|
2
|
-
export const interactiveSelector = 'button, a, input, textarea, select, [contenteditable]:not([contenteditable="false"]), [role="checkbox"], [role="button"], [role="textbox"]';
|
|
3
|
+
export const interactiveSelector = 'button, a, summary, input, textarea, select, [contenteditable]:not([contenteditable="false"]), [role="checkbox"], [role="button"], [role="textbox"]';
|
|
3
4
|
export function selectedCellsText(table) {
|
|
4
|
-
const
|
|
5
|
-
const
|
|
6
|
-
.
|
|
7
|
-
.
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
5
|
+
const rows = table.getRowsInDisplayOrder();
|
|
6
|
+
const columns = [
|
|
7
|
+
...table.getStartVisibleLeafColumns(),
|
|
8
|
+
...table.getCenterVisibleLeafColumns(),
|
|
9
|
+
...table.getEndVisibleLeafColumns(),
|
|
10
|
+
];
|
|
11
|
+
// Bounds already resolve include/exclude operations in display order. Visiting
|
|
12
|
+
// only these cells avoids materializing every column of every selected row.
|
|
13
|
+
const values = new Map();
|
|
14
|
+
const includedColumns = new Set();
|
|
15
|
+
for (const bounds of table.getCellSelectionBounds()) {
|
|
16
|
+
for (let r = bounds.minRowIndex; r <= bounds.maxRowIndex; r++) {
|
|
17
|
+
const row = rows[r];
|
|
18
|
+
for (let c = bounds.minColumnIndex; c <= bounds.maxColumnIndex; c++) {
|
|
19
|
+
const column = columns[c];
|
|
20
|
+
const cell = constructCell(column, row, row.table);
|
|
21
|
+
if (!cell.getCanSelect())
|
|
22
|
+
continue;
|
|
23
|
+
const definition = column.columnDef;
|
|
24
|
+
let rowValues = values.get(r);
|
|
25
|
+
if (!rowValues)
|
|
26
|
+
values.set(r, (rowValues = new Map()));
|
|
27
|
+
rowValues.set(c, tsvValue(definition.copyValue?.(row.original) ??
|
|
28
|
+
definition.getCellValue?.(row.original) ??
|
|
29
|
+
String(cell.getValue() ?? "")));
|
|
30
|
+
includedColumns.add(c);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
const columnIndexes = [...includedColumns].sort((a, b) => a - b);
|
|
35
|
+
return [...values]
|
|
36
|
+
.sort(([a], [b]) => a - b)
|
|
37
|
+
.map(([, row]) => columnIndexes.map((c) => row.get(c) ?? "").join("\t"))
|
|
25
38
|
.join("\n");
|
|
26
39
|
}
|
|
27
40
|
export function tableCsv(table, options = {}) {
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
interface WidthColumn {
|
|
2
|
+
id: string;
|
|
3
|
+
size: number;
|
|
4
|
+
maxSize: number;
|
|
5
|
+
grow: number | false;
|
|
6
|
+
}
|
|
7
|
+
/** Allocate spare space without changing stored or user-resized column widths. */
|
|
8
|
+
export declare function distributeColumnWidths(columns: WidthColumn[], viewport: number | null): Map<string, number>;
|
|
9
|
+
export {};
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/** Allocate spare space without changing stored or user-resized column widths. */
|
|
2
|
+
export function distributeColumnWidths(columns, viewport) {
|
|
3
|
+
const widths = new Map(columns.map((column) => [column.id, column.size]));
|
|
4
|
+
let spare = (viewport ?? 0) - columns.reduce((sum, column) => sum + column.size, 0);
|
|
5
|
+
let flexible = columns.filter((column) => typeof column.grow === "number" &&
|
|
6
|
+
Number.isFinite(column.grow) &&
|
|
7
|
+
column.grow > 0 &&
|
|
8
|
+
column.maxSize > column.size);
|
|
9
|
+
while (spare > 0.01 && flexible.length) {
|
|
10
|
+
const unit = flexible.reduce((max, column) => Math.max(max, Number(column.grow)), 0);
|
|
11
|
+
const weight = flexible.reduce((sum, column) => sum + Number(column.grow) / unit, 0);
|
|
12
|
+
let used = 0;
|
|
13
|
+
for (const column of flexible) {
|
|
14
|
+
const size = widths.get(column.id);
|
|
15
|
+
const extra = Math.min(column.maxSize - size, spare * (Number(column.grow) / unit / weight));
|
|
16
|
+
widths.set(column.id, size + extra);
|
|
17
|
+
used += extra;
|
|
18
|
+
}
|
|
19
|
+
spare -= used;
|
|
20
|
+
flexible = flexible.filter((column) => column.maxSize - widths.get(column.id) > 0.01);
|
|
21
|
+
}
|
|
22
|
+
return widths;
|
|
23
|
+
}
|
package/dist/table/columns.d.ts
CHANGED
|
@@ -4,6 +4,8 @@ import type { DataTableFeatures } from "./features.js";
|
|
|
4
4
|
export type TableColumn<T extends object> = ColumnDef<DataTableFeatures, T> & {
|
|
5
5
|
label?: string;
|
|
6
6
|
align?: "start" | "center" | "end";
|
|
7
|
+
/** Share of spare viewport width. Defaults to 1 for data columns, false for display columns. */
|
|
8
|
+
grow?: number | false;
|
|
7
9
|
defaultHidden?: boolean;
|
|
8
10
|
pin?: "start" | "end";
|
|
9
11
|
copyValue?: (row: T) => string;
|
|
@@ -28,6 +30,7 @@ export interface ValueFormat<V> {
|
|
|
28
30
|
interface ValueOptions<T extends object, V> {
|
|
29
31
|
label: string;
|
|
30
32
|
size?: number;
|
|
33
|
+
grow?: number | false;
|
|
31
34
|
minSize?: number;
|
|
32
35
|
maxSize?: number;
|
|
33
36
|
hidden?: boolean;
|
|
@@ -48,6 +51,9 @@ interface ColumnBuilder<T extends object> {
|
|
|
48
51
|
label: string;
|
|
49
52
|
render: (row: T) => ReactNode;
|
|
50
53
|
size?: number;
|
|
54
|
+
minSize?: number;
|
|
55
|
+
maxSize?: number;
|
|
56
|
+
grow?: number | false;
|
|
51
57
|
pin?: "start" | "end";
|
|
52
58
|
}): TableColumn<T>;
|
|
53
59
|
}
|
package/dist/table/columns.js
CHANGED
|
@@ -9,6 +9,7 @@ function valueColumn(id, value, options) {
|
|
|
9
9
|
header: options.label,
|
|
10
10
|
label: options.label,
|
|
11
11
|
size: options.size,
|
|
12
|
+
grow: options.grow,
|
|
12
13
|
minSize: options.minSize,
|
|
13
14
|
maxSize: options.maxSize,
|
|
14
15
|
defaultHidden: options.hidden,
|
|
@@ -45,6 +46,9 @@ export function defineColumns(define) {
|
|
|
45
46
|
label: options.label,
|
|
46
47
|
header: options.label,
|
|
47
48
|
size: options.size,
|
|
49
|
+
minSize: options.minSize,
|
|
50
|
+
maxSize: options.maxSize,
|
|
51
|
+
grow: options.grow ?? false,
|
|
48
52
|
pin: options.pin,
|
|
49
53
|
enableSorting: false,
|
|
50
54
|
enableCellSelection: false,
|
|
@@ -1,11 +1,14 @@
|
|
|
1
1
|
import type { ReactNode } from "react";
|
|
2
2
|
import type { UseDataTableOptions, DataTableInstance } from "./use-data-table.js";
|
|
3
3
|
import type { TableViewProps } from "./table-view.js";
|
|
4
|
+
import { type TableFiltersProps } from "./table-filters.js";
|
|
4
5
|
type Appearance<T extends object> = Omit<TableViewProps<T>, "table"> & {
|
|
5
6
|
toolbar?: ReactNode;
|
|
6
7
|
footer?: ReactNode;
|
|
7
8
|
showColumnSettings?: boolean;
|
|
8
9
|
showPagination?: boolean;
|
|
10
|
+
/** Customize the built-in filter bar, or render it yourself with false. */
|
|
11
|
+
filterBar?: Omit<TableFiltersProps, "filters"> | false;
|
|
9
12
|
};
|
|
10
13
|
export type DataTableProps<T extends object> = Appearance<T> & (UseDataTableOptions<T> | {
|
|
11
14
|
table: DataTableInstance<T>;
|
package/dist/table/data-table.js
CHANGED
|
@@ -1,10 +1,13 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
3
3
|
import { useDataTable } from "./use-data-table.js";
|
|
4
4
|
import { TableView } from "./table-view.js";
|
|
5
5
|
import { TableColumnSettings, TablePagination } from "./table-controls.js";
|
|
6
|
-
|
|
7
|
-
|
|
6
|
+
import { TableFilters } from "./table-filters.js";
|
|
7
|
+
import { TableFrame } from "./table-frame.js";
|
|
8
|
+
function ControlledTable({ table, toolbar, footer, showColumnSettings = true, showPagination = false, filters, filterBar, layout = "content", ...view }) {
|
|
9
|
+
const fill = layout === "fill";
|
|
10
|
+
return (_jsx(TableFrame, { layout: layout, slot: "data-table", header: (toolbar || showColumnSettings || (filters && filterBar !== false)) && (_jsxs("div", { className: "mui-222f930b8752 mui-27ead27a81df mui-faa8a23c68f6 mui-b9677bd1cb66 mui-32c92bb1fde4 mui-074569488cca", children: [_jsxs("div", { className: "mui-184ddc11e5f9 mui-7bd5bab6d7f4 mui-267171770524", children: [filters && filterBar !== false && _jsx(TableFilters, { ...filterBar, filters: filters }), !filters && toolbar] }), filters && toolbar, showColumnSettings && _jsx(TableColumnSettings, { table: table })] })), footer: showPagination || footer ? (_jsxs(_Fragment, { children: [showPagination && (_jsx("div", { className: "mui-27ead27a81df", children: _jsx(TablePagination, { table: table, loading: view.status === "loading" || view.refreshing }) })), footer] })) : undefined, children: _jsx(TableView, { table: table, filters: filters, ...view, height: fill ? "100%" : view.height }) }));
|
|
8
11
|
}
|
|
9
12
|
function ConfiguredTable(props) {
|
|
10
13
|
const table = useDataTable(props);
|
package/dist/table/index.d.ts
CHANGED
package/dist/table/index.js
CHANGED
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { ReactNode } from "react";
|
|
2
|
+
import type { DataTableInstance } from "./use-data-table.js";
|
|
3
|
+
export declare function TableColumnSettings<T extends object>({ table, children, }: {
|
|
4
|
+
table: DataTableInstance<T>;
|
|
5
|
+
children?: ReactNode;
|
|
6
|
+
}): import("react/jsx-runtime").JSX.Element;
|