rei-kit 2.11.0 → 2.13.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.
package/dist/styles.css CHANGED
@@ -218,6 +218,34 @@
218
218
  opacity: 0;
219
219
  }
220
220
 
221
+ .rk-skeleton[data-v-37327de6] {
222
+ display: block;
223
+ flex-shrink: 0;
224
+ background: var(--color-muted);
225
+ animation: rk-skeleton-pulse-37327de6 1.6s ease-in-out infinite;
226
+ }
227
+ .rk-skeleton.is-block[data-v-37327de6] {
228
+ border-radius: var(--radius-cell);
229
+ }
230
+
231
+ /* A line of text, rounded like one and a little short of its box. */
232
+ .rk-skeleton.is-text[data-v-37327de6] {
233
+ border-radius: 9999px;
234
+ }
235
+ .rk-skeleton.is-circle[data-v-37327de6] {
236
+ border-radius: 9999px;
237
+ }
238
+ @keyframes rk-skeleton-pulse-37327de6 {
239
+ 50% {
240
+ opacity: 0.55;
241
+ }
242
+ }
243
+ @media (prefers-reduced-motion: reduce) {
244
+ .rk-skeleton[data-v-37327de6] {
245
+ animation: none;
246
+ }
247
+ }
248
+
221
249
  .rk-listbox[data-v-7f8cd788] {
222
250
  overflow-y: auto;
223
251
  border-radius: var(--radius-card);
@@ -276,34 +304,6 @@
276
304
  padding: 1rem;
277
305
  }
278
306
 
279
- .rk-skeleton[data-v-37327de6] {
280
- display: block;
281
- flex-shrink: 0;
282
- background: var(--color-muted);
283
- animation: rk-skeleton-pulse-37327de6 1.6s ease-in-out infinite;
284
- }
285
- .rk-skeleton.is-block[data-v-37327de6] {
286
- border-radius: var(--radius-cell);
287
- }
288
-
289
- /* A line of text, rounded like one and a little short of its box. */
290
- .rk-skeleton.is-text[data-v-37327de6] {
291
- border-radius: 9999px;
292
- }
293
- .rk-skeleton.is-circle[data-v-37327de6] {
294
- border-radius: 9999px;
295
- }
296
- @keyframes rk-skeleton-pulse-37327de6 {
297
- 50% {
298
- opacity: 0.55;
299
- }
300
- }
301
- @media (prefers-reduced-motion: reduce) {
302
- .rk-skeleton[data-v-37327de6] {
303
- animation: none;
304
- }
305
- }
306
-
307
307
  .rk-avatar[data-v-47586bec] {
308
308
  display: grid;
309
309
  place-items: center;
@@ -399,26 +399,58 @@
399
399
  background: color-mix(in srgb, var(--color-hair) 70%, transparent);
400
400
  }
401
401
 
402
- .rk-combo[data-v-ce4c503f] {
402
+ .rk-combo[data-v-aa2335fa] {
403
403
  position: relative;
404
404
  display: flex;
405
405
  flex-direction: column;
406
406
  gap: 0.375rem;
407
407
  }
408
- .rk-combo-label[data-v-ce4c503f] {
408
+ .rk-combo-label[data-v-aa2335fa] {
409
409
  font-size: 0.875rem;
410
410
  font-weight: 500;
411
411
  color: var(--color-ink);
412
412
  }
413
- .rk-combo-field[data-v-ce4c503f] {
413
+ .rk-combo-field[data-v-aa2335fa] {
414
414
  position: relative;
415
415
  display: flex;
416
416
  align-items: center;
417
417
  }
418
418
 
419
+ /* With chips the field is a box that wraps, and the input is one item in it
420
+ that grows into whatever is left. */
421
+ .rk-combo-field.is-multiple[data-v-aa2335fa] {
422
+ flex-wrap: wrap;
423
+ gap: 0.25rem;
424
+ min-height: 2.75rem;
425
+ border-radius: var(--radius-card);
426
+ padding: 0.3125rem 2rem 0.3125rem 0.375rem;
427
+ }
428
+ .rk-combo-chip[data-v-aa2335fa] {
429
+ display: inline-flex;
430
+ align-items: center;
431
+ gap: 0.25rem;
432
+ border-radius: 9999px;
433
+ background: var(--color-muted);
434
+ padding: 0.125rem 0.25rem 0.125rem 0.5rem;
435
+ font-size: 0.8125rem;
436
+ color: var(--color-ink);
437
+ }
438
+ .rk-combo-chip-x[data-v-aa2335fa] {
439
+ display: grid;
440
+ width: 1.125rem;
441
+ height: 1.125rem;
442
+ place-items: center;
443
+ border-radius: 9999px;
444
+ color: var(--color-ink-soft);
445
+ line-height: 1;
446
+ }
447
+ .rk-combo-chip-x[data-v-aa2335fa]:hover {
448
+ color: var(--color-ink);
449
+ }
450
+
419
451
  /* 16px, like every other text control here: iOS zooms the viewport when it
420
452
  focuses a field under 16px and never zooms back. */
421
- .rk-combo-input[data-v-ce4c503f] {
453
+ .rk-combo-input[data-v-aa2335fa] {
422
454
  width: 100%;
423
455
  height: 2.75rem;
424
456
  border-radius: var(--radius-card);
@@ -426,20 +458,40 @@
426
458
  font-size: 1rem;
427
459
  color: var(--color-ink);
428
460
  }
429
- .rk-combo-input[data-v-ce4c503f]:focus-visible {
461
+ .is-multiple .rk-combo-input[data-v-aa2335fa] {
462
+ width: auto;
463
+ height: 1.75rem;
464
+ min-width: 6rem;
465
+ flex: 1;
466
+ border: 0;
467
+ border-radius: 0;
468
+ padding: 0;
469
+ background: transparent;
470
+ box-shadow: none;
471
+ }
472
+ .rk-combo-input[data-v-aa2335fa]:focus-visible {
473
+ outline: 2px solid var(--color-primary);
474
+ outline-offset: -1px;
475
+ }
476
+ .is-multiple .rk-combo-input[data-v-aa2335fa]:focus-visible {
477
+ outline: none;
478
+ }
479
+
480
+ /* The ring belongs to the whole box once the box is the control. */
481
+ .rk-combo-field.is-multiple[data-v-aa2335fa]:focus-within {
430
482
  outline: 2px solid var(--color-primary);
431
483
  outline-offset: -1px;
432
484
  }
433
- .rk-combo-input[data-v-ce4c503f]:disabled {
485
+ .rk-combo-input[data-v-aa2335fa]:disabled {
434
486
  opacity: 0.5;
435
487
  }
436
- .rk-combo-toggle[data-v-ce4c503f] {
488
+ .rk-combo-toggle[data-v-aa2335fa] {
437
489
  position: absolute;
438
490
  right: 0.5rem;
439
491
  color: var(--color-ink-soft);
440
492
  font-size: 0.75rem;
441
493
  }
442
- .rk-combo-list[data-v-ce4c503f] {
494
+ .rk-combo-list[data-v-aa2335fa] {
443
495
  position: absolute;
444
496
  top: calc(100% - 1.25rem);
445
497
  z-index: 50;
@@ -449,29 +501,48 @@
449
501
  border-radius: var(--radius-card);
450
502
  padding: 0.25rem;
451
503
  }
452
- .rk-combo-option[data-v-ce4c503f] {
504
+ .rk-combo-option[data-v-aa2335fa] {
453
505
  cursor: pointer;
454
506
  border-radius: var(--radius-cell);
455
507
  padding: 0.5rem 0.625rem;
456
508
  font-size: 0.875rem;
457
509
  color: var(--color-ink);
458
510
  }
459
- .rk-combo-option.is-highlighted[data-v-ce4c503f] {
511
+
512
+ /* A virtual row's height is the arithmetic the spacers are built on, so it
513
+ cannot be left to the text inside it. */
514
+ .rk-combo-option[style][data-v-aa2335fa] {
515
+ display: flex;
516
+ align-items: center;
517
+ padding-block: 0;
518
+ }
519
+ .rk-combo-option.is-highlighted[data-v-aa2335fa] {
460
520
  background: var(--color-muted);
461
521
  }
462
- .rk-combo-option.is-selected[data-v-ce4c503f] {
522
+ .rk-combo-option.is-selected[data-v-aa2335fa] {
463
523
  font-weight: 600;
464
524
  }
465
- .rk-combo-empty[data-v-ce4c503f] {
525
+ .rk-combo-empty[data-v-aa2335fa],
526
+ .rk-combo-status[data-v-aa2335fa] {
466
527
  padding: 0.75rem 0.625rem;
467
528
  font-size: 0.875rem;
468
529
  color: var(--color-ink-soft);
469
530
  }
470
- .rk-combo-error[data-v-ce4c503f] {
531
+ .rk-combo-status[data-v-aa2335fa] {
532
+ display: flex;
533
+ flex-direction: column;
534
+ gap: 0.5rem;
535
+ }
536
+ .rk-combo-status-rows[data-v-aa2335fa] {
537
+ display: flex;
538
+ flex-direction: column;
539
+ gap: 0.5rem;
540
+ }
541
+ .rk-combo-error[data-v-aa2335fa] {
471
542
  font-size: 0.75rem;
472
543
  color: var(--color-negative);
473
544
  }
474
- .rk-combo-hint[data-v-ce4c503f] {
545
+ .rk-combo-hint[data-v-aa2335fa] {
475
546
  font-size: 0.75rem;
476
547
  color: var(--color-ink-soft);
477
548
  }
@@ -643,20 +714,20 @@ to {
643
714
  }
644
715
  }
645
716
 
646
- .rk-table-scroll[data-v-89958b5a] {
717
+ .rk-table-scroll[data-v-ab10e9fa] {
647
718
  overflow-x: auto;
648
719
  }
649
- .rk-table-scroll[data-v-89958b5a]:focus-visible {
720
+ .rk-table-scroll[data-v-ab10e9fa]:focus-visible {
650
721
  outline: 2px solid var(--color-primary);
651
722
  outline-offset: 2px;
652
723
  border-radius: var(--radius-cell);
653
724
  }
654
- .rk-table[data-v-89958b5a] {
725
+ .rk-table[data-v-ab10e9fa] {
655
726
  width: 100%;
656
727
  border-collapse: collapse;
657
728
  font-size: 0.875rem;
658
729
  }
659
- .rk-table-caption[data-v-89958b5a] {
730
+ .rk-table-caption[data-v-ab10e9fa] {
660
731
  padding-bottom: 0.75rem;
661
732
  text-align: left;
662
733
  font-size: 0.8125rem;
@@ -664,7 +735,7 @@ to {
664
735
  }
665
736
 
666
737
  /* Off screen rather than `display: none`, which is not announced at all. */
667
- .rk-table-caption-hidden[data-v-89958b5a] {
738
+ .rk-table-caption-hidden[data-v-ab10e9fa] {
668
739
  position: absolute;
669
740
  width: 1px;
670
741
  height: 1px;
@@ -672,7 +743,7 @@ to {
672
743
  clip-path: inset(50%);
673
744
  white-space: nowrap;
674
745
  }
675
- .rk-table th[data-v-89958b5a] {
746
+ .rk-table th[data-v-ab10e9fa] {
676
747
  border-bottom: 1px solid var(--color-hair);
677
748
  padding: 0.625rem 0.75rem;
678
749
  text-align: left;
@@ -680,25 +751,37 @@ to {
680
751
  color: var(--color-ink-soft);
681
752
  white-space: nowrap;
682
753
  }
683
- .rk-table td[data-v-89958b5a] {
754
+ .rk-table td[data-v-ab10e9fa] {
684
755
  border-bottom: 1px solid color-mix(in srgb, var(--color-hair) 50%, transparent);
685
756
  padding: 0.75rem;
686
757
  color: var(--color-ink);
687
758
  vertical-align: top;
688
759
  }
689
- .rk-table tbody tr:last-child td[data-v-89958b5a] {
760
+ .rk-table tbody tr:last-child td[data-v-ab10e9fa] {
690
761
  border-bottom: 0;
691
762
  }
692
763
 
693
- /* Numbers line up on their last digit, which is the one being compared. */
694
- .is-end[data-v-89958b5a] {
764
+ /* Numbers line up on their last digit, which is the one being compared.
765
+ Both the heading and the cells, and named against `.rk-table th` rather
766
+ than on its own: a bare `.is-end` loses to it, and the column then reads as
767
+ two columns — a heading on the left and its numbers far off to the right. */
768
+ .rk-table th.is-end[data-v-ab10e9fa],
769
+ .rk-table td.is-end[data-v-ab10e9fa] {
695
770
  text-align: right;
696
771
  font-variant-numeric: tabular-nums;
697
772
  }
698
- .is-nowrap[data-v-89958b5a] {
773
+ .rk-table th.is-center[data-v-ab10e9fa],
774
+ .rk-table td.is-center[data-v-ab10e9fa] {
775
+ text-align: center;
776
+ }
777
+ .rk-table th.is-start[data-v-ab10e9fa],
778
+ .rk-table td.is-start[data-v-ab10e9fa] {
779
+ text-align: left;
780
+ }
781
+ .is-nowrap[data-v-ab10e9fa] {
699
782
  white-space: nowrap;
700
783
  }
701
- .rk-table-empty[data-v-89958b5a] {
784
+ .rk-table-empty[data-v-ab10e9fa] {
702
785
  padding: 2rem 0.75rem;
703
786
  text-align: center;
704
787
  color: var(--color-ink-soft);
@@ -2677,26 +2760,26 @@ to {
2677
2760
 
2678
2761
  /* The scroller is focusable: a region only a drag can reach is a region a
2679
2762
  keyboard cannot read at all. */
2680
- .rk-data-scroll[data-v-5920cac0] {
2763
+ .rk-data-scroll[data-v-f95c586b] {
2681
2764
  overflow-x: auto;
2682
2765
  border-radius: var(--radius-card);
2683
2766
  }
2684
- .rk-data-scroll[data-v-5920cac0]:focus-visible {
2767
+ .rk-data-scroll[data-v-f95c586b]:focus-visible {
2685
2768
  outline: 2px solid var(--color-primary);
2686
2769
  outline-offset: 2px;
2687
2770
  }
2688
- .rk-data[data-v-5920cac0] {
2771
+ .rk-data[data-v-f95c586b] {
2689
2772
  width: 100%;
2690
2773
  border-collapse: collapse;
2691
2774
  font-size: 0.875rem;
2692
2775
  }
2693
- .rk-data-caption[data-v-5920cac0] {
2776
+ .rk-data-caption[data-v-f95c586b] {
2694
2777
  padding-bottom: 0.5rem;
2695
2778
  text-align: left;
2696
2779
  font-size: 0.8125rem;
2697
2780
  color: var(--color-ink-soft);
2698
2781
  }
2699
- .rk-data-caption-hidden[data-v-5920cac0] {
2782
+ .rk-data-caption-hidden[data-v-f95c586b] {
2700
2783
  position: absolute;
2701
2784
  width: 1px;
2702
2785
  height: 1px;
@@ -2704,7 +2787,7 @@ to {
2704
2787
  clip-path: inset(50%);
2705
2788
  white-space: nowrap;
2706
2789
  }
2707
- .rk-data th[data-v-5920cac0] {
2790
+ .rk-data th[data-v-f95c586b] {
2708
2791
  border-bottom: 1px solid var(--color-hair);
2709
2792
  padding: 0.625rem 0.75rem;
2710
2793
  text-align: left;
@@ -2714,32 +2797,46 @@ to {
2714
2797
  color: var(--color-ink-soft);
2715
2798
  white-space: nowrap;
2716
2799
  }
2717
- .rk-data.is-sticky thead th[data-v-5920cac0] {
2800
+ .rk-data.is-sticky thead th[data-v-f95c586b] {
2718
2801
  position: sticky;
2719
2802
  top: 0;
2720
2803
  z-index: 1;
2721
2804
  background: var(--color-surface);
2722
2805
  }
2723
- .rk-data td[data-v-5920cac0] {
2806
+ .rk-data td[data-v-f95c586b] {
2724
2807
  border-bottom: 1px solid color-mix(in oklab, var(--color-hair) 60%, transparent);
2725
2808
  padding: 0.625rem 0.75rem;
2726
2809
  color: var(--color-ink);
2727
2810
  vertical-align: middle;
2728
2811
  }
2729
- .rk-data tbody tr:last-child td[data-v-5920cac0] {
2812
+ .rk-data tbody tr:last-child td[data-v-f95c586b] {
2730
2813
  border-bottom: 0;
2731
2814
  }
2732
- .rk-data tbody tr.is-chosen td[data-v-5920cac0] {
2815
+ .rk-data tbody tr.is-chosen td[data-v-f95c586b] {
2733
2816
  background: color-mix(in oklab, var(--color-primary) 8%, transparent);
2734
2817
  }
2735
- .is-end[data-v-5920cac0] {
2818
+
2819
+ /* Named against `.rk-data th`, which sets `text-align: left` and would
2820
+ otherwise win: the heading stayed on the left while its numbers sat at the
2821
+ far edge, so one column read as two. The sort button is inline-flex, so it
2822
+ follows the heading's alignment and carries the arrow with it. */
2823
+ .rk-data th.is-end[data-v-f95c586b],
2824
+ .rk-data td.is-end[data-v-f95c586b] {
2736
2825
  text-align: right;
2737
2826
  font-variant-numeric: tabular-nums;
2738
2827
  }
2739
- .is-nowrap[data-v-5920cac0] {
2828
+ .rk-data th.is-center[data-v-f95c586b],
2829
+ .rk-data td.is-center[data-v-f95c586b] {
2830
+ text-align: center;
2831
+ }
2832
+ .rk-data th.is-start[data-v-f95c586b],
2833
+ .rk-data td.is-start[data-v-f95c586b] {
2834
+ text-align: left;
2835
+ }
2836
+ .is-nowrap[data-v-f95c586b] {
2740
2837
  white-space: nowrap;
2741
2838
  }
2742
- .rk-data-sort[data-v-5920cac0] {
2839
+ .rk-data-sort[data-v-f95c586b] {
2743
2840
  display: inline-flex;
2744
2841
  align-items: center;
2745
2842
  gap: 0.25rem;
@@ -2747,19 +2844,19 @@ to {
2747
2844
  color: inherit;
2748
2845
  transition: color var(--duration-fast) var(--ease-standard);
2749
2846
  }
2750
- .rk-data-sort[data-v-5920cac0]:hover {
2847
+ .rk-data-sort[data-v-f95c586b]:hover {
2751
2848
  color: var(--color-ink);
2752
2849
  }
2753
- .rk-data-pick[data-v-5920cac0] {
2850
+ .rk-data-pick[data-v-f95c586b] {
2754
2851
  width: 2.75rem;
2755
2852
  padding-right: 0;
2756
2853
  }
2757
- .rk-data-box[data-v-5920cac0] {
2854
+ .rk-data-box[data-v-f95c586b] {
2758
2855
  width: 1rem;
2759
2856
  height: 1rem;
2760
2857
  accent-color: var(--color-primary);
2761
2858
  }
2762
- .rk-data-empty[data-v-5920cac0] {
2859
+ .rk-data-empty[data-v-f95c586b] {
2763
2860
  padding: 2rem 0.75rem;
2764
2861
  text-align: center;
2765
2862
  color: var(--color-ink-soft);
package/dist/web.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { n as inertOutside, o as ensureSheetRoot, r as useBoundValue, t as BaseSheet_default } from "./BaseSheet-B7401rS7.js";
2
- import { n as BaseListbox_default, r as useMediaQuery, t as BaseSkeleton_default } from "./BaseSkeleton-DnqwogzV.js";
2
+ import { n as BaseSkeleton_default, r as useMediaQuery, t as BaseListbox_default } from "./BaseListbox-BnaHlmMN.js";
3
3
  import { t as _plugin_vue_export_helper_default } from "./_plugin-vue_export-helper-BOaGB7Aw.js";
4
4
  import { t as BaseButton_default } from "./BaseButton-RN2an975.js";
5
5
  import { Fragment, Teleport, Transition, computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createSlots, createTextVNode, createVNode, defineComponent, mergeModels, nextTick, normalizeClass, normalizeStyle, onBeforeUnmount, onMounted, openBlock, ref, renderList, renderSlot, resolveDynamicComponent, shallowRef, toDisplayString, unref, useId, useModel, useTemplateRef, vModelText, vShow, watch, withCtx, withDirectives, withModifiers } from "vue";
@@ -726,7 +726,7 @@ var DataTable_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PU
726
726
  key: column.key,
727
727
  scope: "col",
728
728
  "aria-sort": ariaSort(column),
729
- class: normalizeClass([column.align === "end" && "is-end", column.nowrap && "is-nowrap"])
729
+ class: normalizeClass([column.align && `is-${column.align}`, column.nowrap && "is-nowrap"])
730
730
  }, [column.sortable ? (openBlock(), createElementBlock("button", {
731
731
  key: 0,
732
732
  type: "button",
@@ -767,7 +767,7 @@ var DataTable_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PU
767
767
  }, null, 40, _hoisted_10)])) : createCommentVNode("", true), (openBlock(true), createElementBlock(Fragment, null, renderList(__props.columns, (column) => {
768
768
  return openBlock(), createElementBlock("td", {
769
769
  key: column.key,
770
- class: normalizeClass([column.align === "end" && "is-end", column.nowrap && "is-nowrap"])
770
+ class: normalizeClass([column.align && `is-${column.align}`, column.nowrap && "is-nowrap"])
771
771
  }, [renderSlot(_ctx.$slots, column.key, {
772
772
  row,
773
773
  value: row[column.key]
@@ -780,7 +780,7 @@ var DataTable_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PU
780
780
  ], 2)], 8, _hoisted_1$8);
781
781
  };
782
782
  }
783
- }), [["__scopeId", "data-v-5920cac0"]]);
783
+ }), [["__scopeId", "data-v-f95c586b"]]);
784
784
  //#endregion
785
785
  //#region src/web/BaseSplitter.vue?vue&type=script&setup=true&lang.ts
786
786
  var _hoisted_1$7 = { class: "rk-split-pane is-start" };