@rvx/ui 0.1.26 → 0.1.28

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 (63) hide show
  1. package/dist/common/theme.d.ts +5 -2
  2. package/dist/common/theme.d.ts.map +1 -1
  3. package/dist/components/card.js +1 -1
  4. package/dist/components/card.js.map +1 -1
  5. package/dist/components/column.d.ts +1 -1
  6. package/dist/components/column.d.ts.map +1 -1
  7. package/dist/components/dialog.d.ts +2 -3
  8. package/dist/components/dialog.d.ts.map +1 -1
  9. package/dist/components/dialog.js +8 -13
  10. package/dist/components/dialog.js.map +1 -1
  11. package/dist/components/popover.d.ts +2 -0
  12. package/dist/components/popover.d.ts.map +1 -1
  13. package/dist/components/popover.js +2 -0
  14. package/dist/components/popover.js.map +1 -1
  15. package/dist/components/row.d.ts +2 -0
  16. package/dist/components/row.d.ts.map +1 -1
  17. package/dist/components/row.js +3 -2
  18. package/dist/components/row.js.map +1 -1
  19. package/dist/components/scroll-view.d.ts.map +1 -1
  20. package/dist/components/scroll-view.js +6 -4
  21. package/dist/components/scroll-view.js.map +1 -1
  22. package/dist/components/separated.d.ts +9 -0
  23. package/dist/components/separated.d.ts.map +1 -0
  24. package/dist/components/separated.js +11 -0
  25. package/dist/components/separated.js.map +1 -0
  26. package/dist/components/tabs.d.ts +25 -1
  27. package/dist/components/tabs.d.ts.map +1 -1
  28. package/dist/components/tabs.js +32 -16
  29. package/dist/components/tabs.js.map +1 -1
  30. package/dist/index.d.ts +1 -0
  31. package/dist/index.d.ts.map +1 -1
  32. package/dist/index.js +1 -0
  33. package/dist/index.js.map +1 -1
  34. package/dist/theme.module.css +91 -46
  35. package/dist/theme.module.css.map +1 -1
  36. package/package.json +1 -1
  37. package/src/common/theme.tsx +6 -2
  38. package/src/components/card.tsx +1 -1
  39. package/src/components/column.tsx +1 -1
  40. package/src/components/dialog.tsx +24 -34
  41. package/src/components/popover.tsx +5 -0
  42. package/src/components/row.tsx +5 -1
  43. package/src/components/scroll-view.tsx +7 -4
  44. package/src/components/separated.tsx +22 -0
  45. package/src/components/tabs.tsx +76 -41
  46. package/src/index.tsx +1 -0
  47. package/src/theme/base.scss +5 -5
  48. package/src/theme/common.scss +7 -16
  49. package/src/theme/components/button.scss +1 -1
  50. package/src/theme/components/card.scss +1 -1
  51. package/src/theme/components/checkbox.scss +2 -2
  52. package/src/theme/components/column.scss +1 -1
  53. package/src/theme/components/dialog.scss +1 -2
  54. package/src/theme/components/dropdown.scss +2 -1
  55. package/src/theme/components/nav-list.scss +2 -2
  56. package/src/theme/components/notifications.scss +1 -1
  57. package/src/theme/components/popover.scss +4 -1
  58. package/src/theme/components/radio-buttons.scss +2 -2
  59. package/src/theme/components/row.scss +5 -0
  60. package/src/theme/components/separated.scss +24 -0
  61. package/src/theme/components/tabs.scss +17 -5
  62. package/src/theme/components/text-input.scss +1 -1
  63. package/src/theme/theme.scss +1 -0
@@ -11,26 +11,26 @@
11
11
  --content-row-gap: 1.7142857143rem;
12
12
  --content-radius: 0.5714285714rem;
13
13
  --content-border: 0.1428571429rem;
14
- --content-pad-block-start: 1.4285714286rem;
15
- --content-pad-inline-start: 1.4285714286rem;
16
- --content-pad-block-end: 1.4285714286rem;
17
- --content-pad-inline-end: 1.4285714286rem;
14
+ --content-pad-block-start: 1.1428571429rem;
15
+ --content-pad-inline-start: 1.1428571429rem;
16
+ --content-pad-block-end: 1.1428571429rem;
17
+ --content-pad-inline-end: 1.1428571429rem;
18
18
  --group-column-gap: 1.1428571429rem;
19
19
  --group-row-gap: 1.1428571429rem;
20
- --group-pad-block-start: 1.4285714286rem;
21
- --group-pad-inline-start: 1.4285714286rem;
22
- --group-pad-block-end: 1.4285714286rem;
23
- --group-pad-inline-end: 1.4285714286rem;
20
+ --group-pad-block-start: 1.1428571429rem;
21
+ --group-pad-inline-start: 1.1428571429rem;
22
+ --group-pad-block-end: 1.1428571429rem;
23
+ --group-pad-inline-end: 1.1428571429rem;
24
24
  --control-column-gap: 0.5714285714rem;
25
25
  --control-row-gap: 0.5714285714rem;
26
26
  --control-radius: 0.3571428571rem;
27
27
  --control-border: 0.1428571429rem;
28
28
  --control-disabled: opacity(.5);
29
- --control-pad-block-start: 0.5714285714rem;
30
- --control-pad-inline-start: 0.7142857143rem;
31
- --control-pad-block-end: 0.5714285714rem;
32
- --control-pad-inline-end: 0.7142857143rem;
33
- --input-padding: 0.2857142857rem;
29
+ --control-pad-block-start: 0.5rem;
30
+ --control-pad-inline-start: 0.5714285714rem;
31
+ --control-pad-block-end: 0.5rem;
32
+ --control-pad-inline-end: 0.5714285714rem;
33
+ --input-extension: 0.2857142857rem;
34
34
  --separator: 0.0714285714rem;
35
35
  --focus-outline-offset: 0.1428571429rem;
36
36
  --overflow-safe-area: 0.2857142857rem;
@@ -63,7 +63,7 @@
63
63
  --accent: rgb(64, 160, 255);
64
64
  --fg: white;
65
65
  --focus-outline: var(--control-border) dashed var(--accent);
66
- --separator-color: rgb(64, 64, 64);
66
+ --separator-color: rgb(42, 42, 42);
67
67
  --selection-bg: rgba(64, 160, 255, 0.5);
68
68
  --overlay-backdrop: rgba(24, 24, 24, 0.8);
69
69
  --overlay-bg: var(--bg);
@@ -204,8 +204,8 @@ body {
204
204
  line-height: 1;
205
205
  cursor: pointer;
206
206
  outline: none;
207
- padding-block: calc(var(--control-pad-block-start) - var(--control-border)) calc(var(--control-pad-block-end) - var(--control-border));
208
- padding-inline: calc(var(--control-pad-inline-start) - var(--control-border)) calc(var(--control-pad-inline-end) - var(--control-border));
207
+ padding-block: var(--control-pad-block-start) var(--control-pad-block-end);
208
+ padding-inline: var(--control-pad-inline-start) var(--control-pad-inline-end);
209
209
  border-radius: var(--control-radius);
210
210
  transition: var(--color-transition) background-color, var(--color-transition) border-color;
211
211
  }
@@ -349,8 +349,8 @@ body {
349
349
  background-color: var(--bg-alt);
350
350
  }
351
351
  .card:not(.card_raw) {
352
- padding-block: calc(var(--content-pad-block-start) - var(--content-border)) calc(var(--content-pad-block-end) - var(--content-border));
353
- padding-inline: calc(var(--content-pad-inline-start) - var(--content-border)) calc(var(--content-pad-inline-end) - var(--content-border));
352
+ padding-block: var(--content-pad-block-start) var(--content-pad-block-end);
353
+ padding-inline: var(--content-pad-inline-start) var(--content-pad-inline-end);
354
354
  }
355
355
 
356
356
  .card_default {
@@ -390,8 +390,8 @@ body {
390
390
  }
391
391
 
392
392
  .checkbox_padding {
393
- padding: var(--input-padding);
394
- margin: calc(var(--input-padding) * -1);
393
+ padding: var(--input-extension);
394
+ margin: calc(var(--input-extension) * -1);
395
395
  }
396
396
 
397
397
  .checkbox_input {
@@ -486,8 +486,8 @@ body {
486
486
  --parent-row-gap: var(--content-row-gap);
487
487
  }
488
488
  .column_content.column_padded {
489
- padding-block: calc(var(--content-pad-block-start) - var(--content-border)) calc(var(--content-pad-block-end) - var(--content-border));
490
- padding-inline: calc(var(--content-pad-inline-start) - var(--content-border)) calc(var(--content-pad-inline-end) - var(--content-border));
489
+ padding-block: var(--content-pad-block-start) var(--content-pad-block-end);
490
+ padding-inline: var(--content-pad-inline-start) var(--content-pad-inline-end);
491
491
  }
492
492
 
493
493
  .column_group {
@@ -497,8 +497,8 @@ body {
497
497
  --parent-row-gap: var(--group-row-gap);
498
498
  }
499
499
  .column_group.column_padded {
500
- padding-block: calc(var(--group-pad-block-start) - var(--content-border)) calc(var(--group-pad-block-end) - var(--content-border));
501
- padding-inline: calc(var(--group-pad-inline-start) - var(--content-border)) calc(var(--group-pad-inline-end) - var(--content-border));
500
+ padding-block: var(--group-pad-block-start) var(--group-pad-block-end);
501
+ padding-inline: var(--group-pad-inline-start) var(--group-pad-inline-end);
502
502
  }
503
503
 
504
504
  .column_control {
@@ -508,8 +508,8 @@ body {
508
508
  --parent-row-gap: var(--control-row-gap);
509
509
  }
510
510
  .column_control.column_padded {
511
- padding-block: calc(var(--control-pad-block-start) - var(--content-border)) calc(var(--control-pad-block-end) - var(--content-border));
512
- padding-inline: calc(var(--control-pad-inline-start) - var(--content-border)) calc(var(--control-pad-inline-end) - var(--content-border));
511
+ padding-block: var(--control-pad-block-start) var(--control-pad-block-end);
512
+ padding-inline: var(--control-pad-inline-start) var(--control-pad-inline-end);
513
513
  }
514
514
 
515
515
  .control_group {
@@ -570,8 +570,6 @@ body {
570
570
  box-shadow: var(--overlay-shadow);
571
571
  border-radius: var(--content-radius);
572
572
  border: var(--content-border) solid var(--overlay-border);
573
- padding-block: calc(var(--content-pad-block-start) - var(--content-border)) calc(var(--content-pad-block-end) - var(--content-border));
574
- padding-inline: calc(var(--content-pad-inline-start) - var(--content-border)) calc(var(--content-pad-inline-end) - var(--content-border));
575
573
  }
576
574
 
577
575
  .dialog_scroll_view {
@@ -582,8 +580,8 @@ body {
582
580
  }
583
581
 
584
582
  .dialog_scroll_view_content {
585
- padding-block: calc(var(--content-pad-block-start) - var(--content-border)) calc(var(--content-pad-block-end) - var(--content-border));
586
- padding-inline: calc(var(--content-pad-inline-start) - var(--content-border)) calc(var(--content-pad-inline-end) - var(--content-border));
583
+ padding-block: var(--content-pad-block-start) var(--content-pad-block-end);
584
+ padding-inline: var(--content-pad-inline-start) var(--content-pad-inline-end);
587
585
  }
588
586
 
589
587
  :root {
@@ -621,8 +619,9 @@ body {
621
619
 
622
620
  .dropdown_item {
623
621
  cursor: pointer;
624
- padding-block: calc(var(--control-pad-block-start) - var(--control-border)) calc(var(--control-pad-block-end) - var(--control-border));
625
- padding-inline: calc(var(--control-pad-inline-start) - var(--control-border)) calc(var(--control-pad-inline-end) - var(--control-border));
622
+ padding-block: var(--control-pad-block-start) var(--control-pad-block-end);
623
+ padding-inline: var(--control-pad-inline-start) var(--control-pad-inline-end);
624
+ border: transparent solid var(--control-border);
626
625
  }
627
626
  .dropdown_item.dropdown_item_active {
628
627
  background-color: var(--dropdown-item-active-bg);
@@ -750,11 +749,11 @@ h6.heading {
750
749
  background-color: var(--nav-list-item-bg);
751
750
  color: var(--nav-list-item-fg);
752
751
  border: var(--nav-list-item-border) solid var(--control-border);
752
+ border-radius: var(--control-radius);
753
753
  cursor: pointer;
754
754
  outline: none;
755
- padding-block: calc(var(--control-pad-block-start) - var(--control-border)) calc(var(--control-pad-block-end) - var(--control-border));
756
- padding-inline: calc(var(--control-pad-inline-start) - var(--control-border)) calc(var(--control-pad-inline-end) - var(--control-border));
757
- border-radius: var(--control-radius);
755
+ padding-block: var(--control-pad-block-start) var(--control-pad-block-end);
756
+ padding-inline: var(--control-pad-inline-start) var(--control-pad-inline-end);
758
757
  transition: var(--color-transition) background-color, var(--color-transition) border-color;
759
758
  }
760
759
  .nav_list_item[disabled] {
@@ -818,8 +817,8 @@ h6.heading {
818
817
  background-color: var(--bg);
819
818
  }
820
819
  .notification:not(.notification_raw) {
821
- padding-block: calc(var(--content-pad-block-start) - var(--content-border)) calc(var(--content-pad-block-end) - var(--content-border));
822
- padding-inline: calc(var(--content-pad-inline-start) - var(--content-border)) calc(var(--content-pad-inline-end) - var(--content-border));
820
+ padding-block: var(--content-pad-block-start) var(--content-pad-block-end);
821
+ padding-inline: var(--content-pad-inline-start) var(--content-pad-inline-end);
823
822
  }
824
823
 
825
824
  .notification_default {
@@ -918,8 +917,10 @@ h6.heading {
918
917
  .popover_content {
919
918
  border-radius: var(--content-radius);
920
919
  border: var(--content-border) solid var(--overlay-border);
921
- padding-block: calc(var(--content-pad-block-start) - var(--content-border)) calc(var(--content-pad-block-end) - var(--content-border));
922
- padding-inline: calc(var(--content-pad-inline-start) - var(--content-border)) calc(var(--content-pad-inline-end) - var(--content-border));
920
+ }
921
+ .popover_content:not(.popover_raw) {
922
+ padding-block: var(--content-pad-block-start) var(--content-pad-block-end);
923
+ padding-inline: var(--content-pad-inline-start) var(--content-pad-inline-end);
923
924
  }
924
925
 
925
926
  .radio_buttons {
@@ -945,8 +946,8 @@ h6.heading {
945
946
  }
946
947
 
947
948
  .radio_button_padding {
948
- padding: var(--input-padding);
949
- margin: calc(var(--input-padding) * -1);
949
+ padding: var(--input-extension);
950
+ margin: calc(var(--input-extension) * -1);
950
951
  }
951
952
 
952
953
  .radio_button_input {
@@ -969,6 +970,10 @@ h6.heading {
969
970
  --parent-column-gap: var(--content-column-gap);
970
971
  --parent-row-gap: var(--content-row-gap);
971
972
  }
973
+ .row_content.row_padded {
974
+ padding-block: var(--content-pad-block-start) var(--content-pad-block-end);
975
+ padding-inline: var(--content-pad-inline-start) var(--content-pad-inline-end);
976
+ }
972
977
 
973
978
  .row_group {
974
979
  column-gap: var(--group-column-gap);
@@ -978,6 +983,10 @@ h6.heading {
978
983
  --parent-column-gap: var(--group-column-gap);
979
984
  --parent-row-gap: var(--group-row-gap);
980
985
  }
986
+ .row_group.row_padded {
987
+ padding-block: var(--group-pad-block-start) var(--group-pad-block-end);
988
+ padding-inline: var(--group-pad-inline-start) var(--group-pad-inline-end);
989
+ }
981
990
 
982
991
  .row_control {
983
992
  column-gap: var(--control-column-gap);
@@ -987,6 +996,10 @@ h6.heading {
987
996
  --parent-column-gap: var(--control-column-gap);
988
997
  --parent-row-gap: var(--control-row-gap);
989
998
  }
999
+ .row_control.row_padded {
1000
+ padding-block: var(--control-pad-block-start) var(--control-pad-block-end);
1001
+ padding-inline: var(--control-pad-inline-start) var(--control-pad-inline-end);
1002
+ }
990
1003
 
991
1004
  :root {
992
1005
  --scroll-view-indicator-size: 2rem;
@@ -1045,6 +1058,28 @@ h6.heading {
1045
1058
  opacity: 1;
1046
1059
  }
1047
1060
 
1061
+ .separated_column {
1062
+ display: flex;
1063
+ flex-direction: column;
1064
+ }
1065
+ .separated_column > * {
1066
+ overflow: hidden;
1067
+ }
1068
+ .separated_column > :not(.has_separator) + :not(.has_separator) {
1069
+ border-block-start: calc(var(--separator) * var(--space-scale)) solid var(--separator-color);
1070
+ }
1071
+
1072
+ .separated_row {
1073
+ display: flex;
1074
+ flex-direction: row;
1075
+ }
1076
+ .separated_row > * {
1077
+ overflow: hidden;
1078
+ }
1079
+ .separated_row > :not(.has_separator) + :not(.has_separator) {
1080
+ border-inline-start: calc(var(--separator) * var(--space-scale)) solid var(--separator-color);
1081
+ }
1082
+
1048
1083
  .slider_host {
1049
1084
  display: flex;
1050
1085
  flex-direction: column;
@@ -1083,6 +1118,10 @@ h6.heading {
1083
1118
  border-bottom: var(--separator) solid var(--separator-color);
1084
1119
  }
1085
1120
 
1121
+ .tab_list_padded {
1122
+ padding-inline: calc(var(--content-pad-inline-start) - var(--control-pad-inline-start)) calc(var(--content-pad-inline-end) - var(--control-pad-inline-end));
1123
+ }
1124
+
1086
1125
  .tab_handle {
1087
1126
  font-family: inherit;
1088
1127
  font-size: inherit;
@@ -1090,8 +1129,8 @@ h6.heading {
1090
1129
  line-height: 1;
1091
1130
  cursor: pointer;
1092
1131
  outline: none;
1093
- padding-block: var(--control-pad-block-start) calc(var(--control-pad-block-end) - var(--control-border));
1094
- padding-inline: var(--control-pad-inline-start) var(--control-pad-inline-end);
1132
+ padding-block: calc(var(--control-pad-block-start) + var(--control-border)) var(--control-pad-block-end);
1133
+ padding-inline: calc(var(--control-pad-inline-start) + var(--control-border)) calc(var(--control-pad-inline-end) + var(--control-border));
1095
1134
  background-color: transparent;
1096
1135
  color: var(--tab-handle-fg);
1097
1136
  border: none;
@@ -1112,9 +1151,15 @@ h6.heading {
1112
1151
  color: var(--tab-handle-fg-current);
1113
1152
  }
1114
1153
 
1154
+ .tab_panel {
1155
+ flex-grow: 1;
1156
+ display: flex;
1157
+ flex-direction: column;
1158
+ }
1159
+
1115
1160
  .tab_panel_padded {
1116
- padding-block: calc(var(--content-pad-block-start) - var(--content-border)) calc(var(--content-pad-block-end) - var(--content-border));
1117
- padding-inline: calc(var(--content-pad-inline-start) - var(--content-border)) calc(var(--content-pad-inline-end) - var(--content-border));
1161
+ padding-block: var(--content-pad-block-start) var(--content-pad-block-end);
1162
+ padding-inline: var(--content-pad-inline-start) var(--content-pad-inline-end);
1118
1163
  }
1119
1164
 
1120
1165
  :root {
@@ -1156,7 +1201,7 @@ h6.heading {
1156
1201
  }
1157
1202
 
1158
1203
  input.text_input {
1159
- block-size: calc(var(--control-pad-block-start) + 1em + var(--control-pad-block-end));
1204
+ block-size: calc(var(--control-pad-block-start) + 1em + var(--control-pad-block-end) + var(--control-border) * 2);
1160
1205
  }
1161
1206
 
1162
1207
  .text {
@@ -1 +1 @@
1
- {"version":3,"sourceRoot":"","sources":["../src/theme/base.scss","../src/theme/common.scss","../src/theme/components/breadcrumbs.scss","../src/theme/components/button.scss","../src/theme/components/card.scss","../src/theme/components/checkbox.scss","../src/theme/components/collapse.scss","../src/theme/components/column.scss","../src/theme/components/control-group.scss","../src/theme/components/dialog.scss","../src/theme/components/dropdown.scss","../src/theme/components/flex-space.scss","../src/theme/components/heading.scss","../src/theme/components/label.scss","../src/theme/components/link.scss","../src/theme/components/nav-list.scss","../src/theme/components/notifications.scss","../src/theme/components/page.scss","../src/theme/components/popover.scss","../src/theme/components/radio-buttons.scss","../src/theme/components/row.scss","../src/theme/components/scroll-view.scss","../src/theme/components/slider.scss","../src/theme/components/tabs.scss","../src/theme/components/text-input.scss","../src/theme/components/text.scss","../src/theme/components/validation.scss","../src/theme/components/value.scss"],"names":[],"mappings":"AASA;EACC;EACA;EACA;EAEA;ECcA;EACA;EACA;EACA;EDbA;EACA;EACA;EACA;ECOA;EACA;EACA;EACA;EDPA;EACA;ECGA;EACA;EACA;EACA;EDHA;EACA;EACA;EACA;EACA;ECJA;EACA;EACA;EACA;EDIA;EAEA;EAEA;EAEA;EAEA;EACA;EAEA;EACA;EAEA;;;ACtCA;EANE;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;;AAQD;EAFD;IANE;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAUA;;;AD4FH;EACC;EACA;EAEA;;AACA;EALD;IAME;;;;AAIF;EACC;EACA;EACA;EACA;;;AAGD;EACC;;;AClHA;EANE;;AAQD;EAFD;IANE;IAUA;;;ACNH;EACC;EACA;EACA;;;AAGD;EACC;EACA;EACA;EACA;EACA;;;AAGD;EACC;EACA;;;AAGD;EACC;EACA;EACA;;;AAGD;EACC;EACA;;;ADzBA;EANE;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;;AAQD;EAFD;IANE;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAUA;;;AE2GH;EACC;EACA;EACA;EACA;EAEA;EAEA;EF9FC,eACC;EAED,gBACC;EE6FF;EACA;;AAGA;EACC;;AAGD;EACC;EACA;;;AAKD;EACC;EACA;EACA;;AAEA;EACC;;AAGD;EACC;;AAGD;EACC;;;AAdF;EACC;EACA;EACA;;AAEA;EACC;;AAGD;EACC;;AAGD;EACC;;;AAdF;EACC;EACA;EACA;;AAEA;EACC;;AAGD;EACC;;AAGD;EACC;;;AAdF;EACC;EACA;EACA;;AAEA;EACC;;AAGD;EACC;;AAGD;EACC;;;AAdF;EACC;EACA;EACA;;AAEA;EACC;;AAGD;EACC;;AAGD;EACC;;;AAdF;EACC;EACA;EACA;;AAEA;EACC;;AAGD;EACC;;AAGD;EACC;;;AAdF;EACC;EACA;EACA;;AAEA;EACC;;AAGD;EACC;;AAGD;EACC;;;AAKH;EACC;;;AF7JA;EANE;EAAA;EAAA;EAAA;EAAA;;AAQD;EAFD;IANE;IAAA;IAAA;IAAA;IAAA;IAUA;;;AGUH;EACC;EACA;EACA;;AAEA;EHMC,eACC;EAED,gBACC;;;AGJF;EACC;;;AADD;EACC;;;AADD;EACC;;;AADD;EACC;;;AADD;EACC;;;ACpCF;EACC;EACA;EACA;;AAEA;EACC;;AAGD;EACC;;AAGD;EACC;EACA;;;AAIF;EACC;EACA;;;AAGD;EACC;EACA;EACA;;;AC3BD;EACC;EACA;EACA;EACA;;;AAGD;EACC,YACC;;;AAKF;EACC;IAAO;;EACP;IAAM;;EACN;IAAM;;EACN;IAAK;;;AAGN;EACC;;;AAGD;EACC;EACA;;;AAGD;EACC;EACA;EACA;;AAEA;EACC,YACC;;AAIF;EACC;EACA;;;AAIF;EACC;EACA;EACA;EACA;;AAEA;EACC,YACC;;AAKF;EACC;EACA;EACA;;;AC9DF;EACC;EACA;;AAEA;EACC;;AAMD;EACC;;AAGD;EACC;;AAMD;EACC;;;AAKD;EACC;;AACA;EACC;;AAGD;ENAA,eACC;EAED,gBACC;;;AMVF;EACC;;AACA;EACC;;AAGD;ENAA,eACC;EAED,gBACC;;;AMVF;EACC;;AACA;EACC;;AAGD;ENAA,eACC;EAED,gBACC;;;AOvCH;EACC;EACA;EAEA;;AACA;EACC;;AAGD;EACC;EACA;;AAED;EACC;EACA;;;ACdF;EACC;EACA;EAEA;EAEA;EACA;EACA;EAEA;EAEA;EACA;;;AAGD;EACC;;AACA;EACC;;;AAIF;EACC;EACA;;AACA;EACC;;;AAIF;EACC;IACC;;;AAIF;EACC;EACA;EAEA;EACA;EAEA;EACA;EACA;EACA;ERbC,eACC;EAED,gBACC;;;AQaH;EACC;EACA;EACA;EACA;;;AAGD;ERxBE,eACC;EAED,gBACC;;;AA7BF;EANE;;AAQD;EAFD;IANE;IAUA;;;ASNH;EACC;EACA;;AAEA;EACC;;;AAIF;EACC;EACA;EACA;EACA;EACA;EACA;;;AAGD;EACC;EACA;EACA;EACA;;;AAGD;EACC;ETCC,eACC;EAED,gBACC;;ASFF;EACC;;;ACtCF;EACC;EACA;EACA;;;ACHD;EACC;EACA;;AAEA;EAEC;EACA;EACA;EACA;;;AAIF;EACC;EACA;EACA;;;AAGD;EACC;EACA;EACA;;;AAGD;EACC;EACA;EACA;;;AAGD;AAAA;AAAA;EAGC;EACA;EACA;;;AX1BA;EANE;;AAQD;EAFD;IANE;IAUA;;;AYNH;EACC;EACA;EAEA;EACA;EACA;;AAEA;EAEC;EACA;EACA;EACA;;;ACpBF;EACC;EACA;EAEA;EACA;EACA;EACA;;AAEA;EACC;;AAGD;EACC;;;AbLD;EANE;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;;AAQD;EAFD;IANE;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAUA;;;Ac0BH;EACC;EACA;EACA;EACA;;;AAGD;EACC;EACA;EACA;EACA;EACA;EAEA;EACA;EACA;EAEA;EAEA;EdzBC,eACC;EAED,gBACC;EcwBF;EACA;;AAGA;EACC;EACA;;AAGD;EAEC;EACA;;AAGD;EACC;EACA;;;AAIF;EACC;EACA;EACA;EACA;;;Ad9EA;EANE;EAAA;EAAA;EAAA;EAAA;;AAQD;EAFD;IANE;IAAA;IAAA;IAAA;IAAA;IAUA;;;AeWH;EACC;EACA;EAEA;EACA;EACA;EAEA;EACA;EACA;EACA;EACA;;;AAGD;EACC;;;AAGD;EACC;EACA;EACA;EACA;;AAEA;EffC,eACC;EAED,gBACC;;;AeiBF;EACC;;;AADD;EACC;;;AADD;EACC;;;AADD;EACC;;;AADD;EACC;;;ACzDF;EACC,eACC;EAED,gBACC;EAGD;EACA;EACA;;;AAGD;EACC;;AAEA;EACC;EACA;;AAEA;EACC;;;AAKH;EACC;EACA;EACA;;;AAGD;EACC;EACA;EACA;;;AAGD;EACC;EACA;;;ACvCD;EACC;EACA;;;AAGD;EACC;EACA;EACA;EACA;;;AAGD;EACC;EACA;EACA;EACA;EAEA;;AAEA;EACC;EACA;EACA;EACA;EACA;EACA;;;AAIF;EACC;EACA;EACA;EACA;EACA;EACA;;;AAGD;EACC;EACA;EjBPC,eACC;EAED,gBACC;;;AkBvCH;EACC;EACA;EACA;;AAEA;EACC;EACA;;;AAIF;EACC;EACA;EACA;;AAEA;EACC;;AAGD;EACC;;;AAIF;EACC;EACA;;;AAGD;EACC;EACA;EACA;;;ACjCD;EACC;EACA;EACA;;;AAIA;EACC;EACA;;AACA;EACC;EACA;;;AALF;EACC;EACA;;AACA;EACC;EACA;;;AALF;EACC;EACA;;AACA;EACC;EACA;;;AnBFF;EANE;EAAA;;AAQD;EAFD;IANE;IAAA;IAUA;;;AoBFH;EACC;EACA;EACA;;;AAGD;EACC;EACA;;;AAGD;EACC;EACA;;;AAGD;EACC;EACA;EACA;EACA;;;AAGD;AAAA;EAEC;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGD;EACC;;;AAGD;EACC;;;AAGD;EACC;;;ACvDD;EACC;EACA;EACA;;AAEA;EACC;EACA;;AAEA;EACC;;;ArBAF;EANE;EAAA;EAAA;EAAA;EAAA;EAAA;;AAQD;EAFD;IANE;IAAA;IAAA;IAAA;IAAA;IAAA;IAUA;;;AsBcH;EACC;EACA;EACA;;;AAGD;EACC;EACA;EACA;EACA;EAEA;EACA;EAEA,eACC;EAED,gBACC;EAGD;EACA;EACA;EACA;EAEA;EACA;;AAGA;EAEC;EACA;;AAED;EACC;;;AAIF;EACC;EACA;;;AAGD;EtBvCE,eACC;EAED,gBACC;;;AA7BF;EANE;EAAA;EAAA;EAAA;;AAQD;EAFD;IANE;IAAA;IAAA;IAAA;IAUA;;;AuBMH;EACC;EACA;EACA;EAEA;EAEA;EvBeC,eACC;EAED,gBACC;EuBjBF;EACA;EACA;EACA;EACA;EACA;;AAEA;EACC;;AAGD;EACC;EACA;;;AAIF;EACC;;;AC/CD;EACC;;AAEA;EAEC;EACA;EACA;EACA;;;AxBED;EANE;;AAQD;EAFD;IANE;IAUA;;;AyBNH;EACC;;;AAGD;EACC;;;ACbD;EACC","file":"theme.module.css"}
1
+ {"version":3,"sourceRoot":"","sources":["../src/theme/base.scss","../src/theme/common.scss","../src/theme/components/breadcrumbs.scss","../src/theme/components/button.scss","../src/theme/components/card.scss","../src/theme/components/checkbox.scss","../src/theme/components/collapse.scss","../src/theme/components/column.scss","../src/theme/components/control-group.scss","../src/theme/components/dialog.scss","../src/theme/components/dropdown.scss","../src/theme/components/flex-space.scss","../src/theme/components/heading.scss","../src/theme/components/label.scss","../src/theme/components/link.scss","../src/theme/components/nav-list.scss","../src/theme/components/notifications.scss","../src/theme/components/page.scss","../src/theme/components/popover.scss","../src/theme/components/radio-buttons.scss","../src/theme/components/row.scss","../src/theme/components/scroll-view.scss","../src/theme/components/separated.scss","../src/theme/components/slider.scss","../src/theme/components/tabs.scss","../src/theme/components/text-input.scss","../src/theme/components/text.scss","../src/theme/components/validation.scss","../src/theme/components/value.scss"],"names":[],"mappings":"AASA;EACC;EACA;EACA;EAEA;ECcA;EACA;EACA;EACA;EDbA;EACA;EACA;EACA;ECOA;EACA;EACA;EACA;EDPA;EACA;ECGA;EACA;EACA;EACA;EDHA;EACA;EACA;EACA;EACA;ECJA;EACA;EACA;EACA;EDIA;EAEA;EAEA;EAEA;EAEA;EACA;EAEA;EACA;EAEA;;;ACtCA;EANE;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;;AAQD;EAFD;IANE;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAUA;;;AD4FH;EACC;EACA;EAEA;;AACA;EALD;IAME;;;;AAIF;EACC;EACA;EACA;EACA;;;AAGD;EACC;;;AClHA;EANE;;AAQD;EAFD;IANE;IAUA;;;ACNH;EACC;EACA;EACA;;;AAGD;EACC;EACA;EACA;EACA;EACA;;;AAGD;EACC;EACA;;;AAGD;EACC;EACA;EACA;;;AAGD;EACC;EACA;;;ADzBA;EANE;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;;AAQD;EAFD;IANE;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAUA;;;AE2GH;EACC;EACA;EACA;EACA;EAEA;EAEA;EF/FA,eACC;EAED,gBACC;EE8FD;EACA;;AAGA;EACC;;AAGD;EACC;EACA;;;AAKD;EACC;EACA;EACA;;AAEA;EACC;;AAGD;EACC;;AAGD;EACC;;;AAdF;EACC;EACA;EACA;;AAEA;EACC;;AAGD;EACC;;AAGD;EACC;;;AAdF;EACC;EACA;EACA;;AAEA;EACC;;AAGD;EACC;;AAGD;EACC;;;AAdF;EACC;EACA;EACA;;AAEA;EACC;;AAGD;EACC;;AAGD;EACC;;;AAdF;EACC;EACA;EACA;;AAEA;EACC;;AAGD;EACC;;AAGD;EACC;;;AAdF;EACC;EACA;EACA;;AAEA;EACC;;AAGD;EACC;;AAGD;EACC;;;AAdF;EACC;EACA;EACA;;AAEA;EACC;;AAGD;EACC;;AAGD;EACC;;;AAKH;EACC;;;AF7JA;EANE;EAAA;EAAA;EAAA;EAAA;;AAQD;EAFD;IANE;IAAA;IAAA;IAAA;IAAA;IAUA;;;AGUH;EACC;EACA;EACA;;AAEA;EHKA,eACC;EAED,gBACC;;;AGHD;EACC;;;AADD;EACC;;;AADD;EACC;;;AADD;EACC;;;AADD;EACC;;;ACpCF;EACC;EACA;EACA;;AAEA;EACC;;AAGD;EACC;;AAGD;EACC;EACA;;;AAIF;EACC;EACA;;;AAGD;EACC;EACA;EACA;;;AC3BD;EACC;EACA;EACA;EACA;;;AAGD;EACC,YACC;;;AAKF;EACC;IAAO;;EACP;IAAM;;EACN;IAAM;;EACN;IAAK;;;AAGN;EACC;;;AAGD;EACC;EACA;;;AAGD;EACC;EACA;EACA;;AAEA;EACC,YACC;;AAIF;EACC;EACA;;;AAIF;EACC;EACA;EACA;EACA;;AAEA;EACC,YACC;;AAKF;EACC;EACA;EACA;;;AC9DF;EACC;EACA;;AAEA;EACC;;AAMD;EACC;;AAGD;EACC;;AAMD;EACC;;;AAKD;EACC;;AACA;EACC;;AAGD;ENDD,eACC;EAED,gBACC;;;AMTD;EACC;;AACA;EACC;;AAGD;ENDD,eACC;EAED,gBACC;;;AMTD;EACC;;AACA;EACC;;AAGD;ENDD,eACC;EAED,gBACC;;;AOtCF;EACC;EACA;EAEA;;AACA;EACC;;AAGD;EACC;EACA;;AAED;EACC;EACA;;;ACdF;EACC;EACA;EAEA;EAEA;EACA;EACA;EAEA;EAEA;EACA;;;AAGD;EACC;;AACA;EACC;;;AAIF;EACC;EACA;;AACA;EACC;;;AAIF;EACC;IACC;;;AAIF;EACC;EACA;EAEA;EACA;EAEA;EACA;EACA;EACA;;;AAGD;EACC;EACA;EACA;EACA;;;AAGD;ERxBC,eACC;EAED,gBACC;;;AA5BD;EANE;;AAQD;EAFD;IANE;IAUA;;;ASNH;EACC;EACA;;AAEA;EACC;;;AAIF;EACC;EACA;EACA;EACA;EACA;EACA;;;AAGD;EACC;EACA;EACA;EACA;;;AAGD;EACC;ETAA,eACC;EAED,gBACC;ESFD;;AAEA;EACC;;;ACvCF;EACC;EACA;EACA;;;ACHD;EACC;EACA;;AAEA;EAEC;EACA;EACA;EACA;;;AAIF;EACC;EACA;EACA;;;AAGD;EACC;EACA;EACA;;;AAGD;EACC;EACA;EACA;;;AAGD;AAAA;AAAA;EAGC;EACA;EACA;;;AX1BA;EANE;;AAQD;EAFD;IANE;IAUA;;;AYNH;EACC;EACA;EAEA;EACA;EACA;;AAEA;EAEC;EACA;EACA;EACA;;;ACpBF;EACC;EACA;EAEA;EACA;EACA;EACA;;AAEA;EACC;;AAGD;EACC;;;AbLD;EANE;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;;AAQD;EAFD;IANE;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAUA;;;Ac0BH;EACC;EACA;EACA;EACA;;;AAGD;EACC;EACA;EACA;EACA;EACA;EAEA;EACA;EACA;EACA;EAEA;EAEA;Ed3BA,eACC;EAED,gBACC;Ec0BD;;AAGA;EACC;EACA;;AAGD;EAEC;EACA;;AAGD;EACC;EACA;;;AAIF;EACC;EACA;EACA;EACA;;;Ad9EA;EANE;EAAA;EAAA;EAAA;EAAA;;AAQD;EAFD;IANE;IAAA;IAAA;IAAA;IAAA;IAUA;;;AeWH;EACC;EACA;EAEA;EACA;EACA;EAEA;EACA;EACA;EACA;EACA;;;AAGD;EACC;;;AAGD;EACC;EACA;EACA;EACA;;AAEA;EfhBA,eACC;EAED,gBACC;;;AekBD;EACC;;;AADD;EACC;;;AADD;EACC;;;AADD;EACC;;;AADD;EACC;;;ACzDF;EACC,eACC;EAED,gBACC;EAGD;EACA;EACA;;;AAGD;EACC;;AAEA;EACC;EACA;;AAEA;EACC;;;AAKH;EACC;EACA;EACA;;;AAGD;EACC;EACA;EACA;;;AAGD;EACC;EACA;;;ACvCD;EACC;EACA;;;AAGD;EACC;EACA;EACA;EACA;;;AAGD;EACC;EACA;EACA;EACA;EAEA;;AAEA;EACC;EACA;EACA;EACA;EACA;EACA;;;AAIF;EACC;EACA;EACA;EACA;EACA;EACA;;;AAGD;EACC;EACA;;AAEA;EjBVA,eACC;EAED,gBACC;;;AkBtCF;EACC;EACA;EACA;;AAEA;EACC;EACA;;;AAIF;EACC;EACA;EACA;;AAEA;EACC;;AAGD;EACC;;;AAIF;EACC;EACA;;;AAGD;EACC;EACA;EACA;;;AChCD;EACC;EACA;EACA;;;AAIA;EACC;EACA;;AACA;EACC;EACA;;AAGD;EnBkBD,eACC;EAED,gBACC;;;AmB9BD;EACC;EACA;;AACA;EACC;EACA;;AAGD;EnBkBD,eACC;EAED,gBACC;;;AmB9BD;EACC;EACA;;AACA;EACC;EACA;;AAGD;EnBkBD,eACC;EAED,gBACC;;;AA5BD;EANE;EAAA;;AAQD;EAFD;IANE;IAAA;IAUA;;;AoBFH;EACC;EACA;EACA;;;AAGD;EACC;EACA;;;AAGD;EACC;EACA;;;AAGD;EACC;EACA;EACA;EACA;;;AAGD;AAAA;EAEC;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGD;EACC;;;AAGD;EACC;;;AAGD;EACC;;;ACvDD;EACC;EACA;;AAEA;EACC;;AAED;EACC;;;AAIF;EACC;EACA;;AAEA;EACC;;AAED;EACC;;;ACpBF;EACC;EACA;EACA;;AAEA;EACC;EACA;;AAEA;EACC;;;AtBAF;EANE;EAAA;EAAA;EAAA;EAAA;EAAA;;AAQD;EAFD;IANE;IAAA;IAAA;IAAA;IAAA;IAAA;IAUA;;;AuBcH;EACC;EACA;EACA;;;AAGD;EACC,gBACC;;;AAIF;EACC;EACA;EACA;EACA;EAEA;EACA;EAEA,eACC;EAED,gBACC;EAGD;EACA;EACA;EACA;EAEA;EACA;;AAGA;EAEC;EACA;;AAED;EACC;;;AAIF;EACC;EACA;;;AAGD;EACC;EACA;EACA;;;AAGD;EvBpDC,eACC;EAED,gBACC;;;AA5BD;EANE;EAAA;EAAA;EAAA;;AAQD;EAFD;IANE;IAAA;IAAA;IAAA;IAUA;;;AwBMH;EACC;EACA;EACA;EAEA;EAEA;ExBOA,eACC;EAED,gBACC;EwBTD;EACA;EACA;EACA;EACA;EACA;;AAEA;EACC;;AAGD;EACC;EACA;;;AAIF;EACC;;;AC/CD;EACC;;AAEA;EAEC;EACA;EACA;EACA;;;AzBED;EANE;;AAQD;EAFD;IANE;IAUA;;;A0BNH;EACC;;;AAGD;EACC;;;ACbD;EACC","file":"theme.module.css"}
package/package.json CHANGED
@@ -12,7 +12,7 @@
12
12
  "rvx"
13
13
  ],
14
14
  "license": "MIT",
15
- "version": "0.1.26",
15
+ "version": "0.1.28",
16
16
  "type": "module",
17
17
  "main": "./dist/index.js",
18
18
  "sideEffects": false,
@@ -38,7 +38,6 @@ export interface Theme {
38
38
 
39
39
  card?: string;
40
40
  card_raw?: string;
41
- card_content?: string;
42
41
  card_default?: string;
43
42
  card_info?: string;
44
43
  card_success?: string;
@@ -109,6 +108,7 @@ export interface Theme {
109
108
  page_content?: string;
110
109
 
111
110
  popover?: string;
111
+ popover_raw?: string;
112
112
  popover_spike_area?: string;
113
113
  popover_scroll_area?: string;
114
114
  popover_spike?: string;
@@ -121,6 +121,7 @@ export interface Theme {
121
121
  radio_button_content?: string;
122
122
 
123
123
  row?: string;
124
+ row_padded?: string;
124
125
  row_content?: string;
125
126
  row_group?: string;
126
127
  row_control?: string;
@@ -132,6 +133,10 @@ export interface Theme {
132
133
  scroll_view_indicator_end?: string;
133
134
  scroll_view_indicator_visible?: string;
134
135
 
136
+ separated_column?: string;
137
+ separated_row?: string;
138
+ has_separator?: string;
139
+
135
140
  slider_host?: string;
136
141
 
137
142
  tab_handle?: string;
@@ -139,7 +144,6 @@ export interface Theme {
139
144
  tab_list?: string;
140
145
  tab_list_padded?: string;
141
146
  tab_panel?: string;
142
- tab_panel_padded?: string;
143
147
 
144
148
  text_input?: string;
145
149
 
@@ -25,7 +25,7 @@ export function Card(props: {
25
25
  >
26
26
  {props.raw
27
27
  ? props.children
28
- : <Column class={theme?.card_content} size={map(props.size, s => s ?? "group")}>
28
+ : <Column size={map(props.size, s => s ?? "group")}>
29
29
  {props.children}
30
30
  </Column>
31
31
  }
@@ -7,11 +7,11 @@ import { SizeContext } from "../common/types.js";
7
7
  */
8
8
  export function Column(props: {
9
9
  size?: Expression<SizeContext | undefined>;
10
+ padded?: Expression<boolean | undefined>;
10
11
  class?: ClassValue;
11
12
  style?: StyleValue;
12
13
  id?: Expression<string | undefined>;
13
14
  children?: unknown;
14
- padded?: boolean;
15
15
  }): unknown {
16
16
  const theme = THEME.current;
17
17
  return <div
@@ -1,9 +1,9 @@
1
1
  import { $, captureSelf, ClassValue, Context, Emitter, Event, Expression, map, render, StyleValue, teardown, uniqueId } from "rvx";
2
2
  import { TASKS, Tasks, useMicrotask } from "rvx/async";
3
- import { FlexSpace, Heading, Row, ScrollView, Text, THEME } from "../index.js";
3
+ import { Column, FlexSpace, Group, Heading, Row, Separated, Text, THEME } from "../index.js";
4
4
  import { LAYER, Layer } from "./layer.js";
5
5
 
6
- export class DialogAbortError extends Error {}
6
+ export class DialogAbortError extends Error { }
7
7
 
8
8
  export interface Dialog<T> {
9
9
  resolve: (value: T) => void;
@@ -110,16 +110,10 @@ export function DialogBody(props: {
110
110
  aria-labelledby={map(props["aria-labelledby"], v => v ?? titleId)}
111
111
  aria-describedby={map(props["aria-describedby"], v => v ?? descriptionId)}
112
112
  >
113
- <div
114
- class={[
115
- theme?.column,
116
- theme?.column_content,
117
- theme?.dialog_body,
118
- ]}
119
- >
120
- {head}
113
+ <Separated class={theme?.dialog_body}>
114
+ {head.length > 0 ? <Group padded>{head}</Group> : undefined}
121
115
  {props.children}
122
- </div>
116
+ </Separated>
123
117
  </div> as HTMLElement;
124
118
 
125
119
  useMicrotask(() => {
@@ -142,13 +136,8 @@ export function DialogBody(props: {
142
136
  return body;
143
137
  }
144
138
 
145
- export function DialogScrollView(props: {
146
- children?: unknown;
147
- }) {
148
- const theme = THEME.current;
149
- return <ScrollView class={theme?.dialog_scroll_view} contentClass={theme?.dialog_scroll_view_content}>
150
- {props.children}
151
- </ScrollView>;
139
+ export function DialogContent(props: Omit<Parameters<typeof Column>[0], "padded" | "size">) {
140
+ return Column({ ...props, padded: true });
152
141
  }
153
142
 
154
143
  export function DialogFooter(props: {
@@ -158,21 +147,22 @@ export function DialogFooter(props: {
158
147
  children?: unknown;
159
148
  }): unknown {
160
149
  const theme = THEME.current;
161
- return <Row
162
- size="control"
163
- class={[
164
- theme?.dialog_footer,
165
- props.class,
166
- ]}
167
- style={props.style}
168
- align="center"
169
- >
170
- <Row size="control">
171
- {props.links}
172
- </Row>
173
- <FlexSpace />
174
- <Row size="control">
175
- {props.children}
150
+ return <Group padded>
151
+ <Row
152
+ class={[
153
+ theme?.dialog_footer,
154
+ props.class,
155
+ ]}
156
+ style={props.style}
157
+ align="center"
158
+ >
159
+ <Row size="control">
160
+ {props.links}
161
+ </Row>
162
+ <FlexSpace />
163
+ <Row size="control">
164
+ {props.children}
165
+ </Row>
176
166
  </Row>
177
- </Row>;
167
+ </Group>
178
168
  }
@@ -67,6 +67,7 @@ export function createPopover(props: {
67
67
  id?: string;
68
68
  class?: ClassValue;
69
69
  style?: StyleValue;
70
+ raw?: Expression<boolean | undefined>;
70
71
  "aria-label"?: Expression<string | undefined>;
71
72
  "aria-labelledby"?: Expression<string | undefined>;
72
73
  "aria-describedby"?: Expression<string | undefined>;
@@ -126,6 +127,7 @@ export function createPopover(props: {
126
127
  theme?.column,
127
128
  theme?.column_content,
128
129
  theme?.popover_content,
130
+ map(props.raw, raw => raw ? theme?.popover_raw : undefined),
129
131
  ]}>
130
132
  {props.content({ popout })}
131
133
  </div> as HTMLElement;
@@ -190,6 +192,8 @@ export function Popover(props: {
190
192
  /** Style for the popover. */
191
193
  style?: StyleValue;
192
194
 
195
+ raw?: Expression<boolean | undefined>;
196
+
193
197
  /** The popover content component. */
194
198
  children: PopoverContent;
195
199
 
@@ -270,6 +274,7 @@ export function Popover(props: {
270
274
  role: props.role,
271
275
  class: props.class,
272
276
  style: props.style,
277
+ raw: props.raw,
273
278
 
274
279
  "aria-label": props["aria-label"],
275
280
  "aria-labelledby": () => (get(props["aria-label"]) === undefined
@@ -1,4 +1,4 @@
1
- import { ClassValue, Expression, get, StyleValue } from "rvx";
1
+ import { ClassValue, Expression, get, map, StyleValue } from "rvx";
2
2
  import { THEME } from "../common/theme.js";
3
3
  import { SizeContext } from "../common/types.js";
4
4
 
@@ -6,16 +6,20 @@ export type RowAlignment = "top" | "center" | "bottom";
6
6
 
7
7
  export function Row(props: {
8
8
  size?: Expression<SizeContext | undefined>;
9
+ padded?: Expression<boolean | undefined>;
9
10
  align?: Expression<RowAlignment | undefined>;
10
11
  class?: ClassValue;
11
12
  style?: StyleValue;
13
+ id?: Expression<string | undefined>;
12
14
  children?: unknown;
13
15
  }): unknown {
14
16
  const theme = THEME.current;
15
17
  return <div
18
+ id={props.id}
16
19
  class={[
17
20
  theme?.row,
18
21
  () => theme?.[`row_${get(props.size) ?? "control"}`],
22
+ map(props.padded, padded => padded ? theme?.row_padded : undefined),
19
23
  props.class,
20
24
  ]}
21
25
  style={[
@@ -3,6 +3,8 @@ import { debounceEvent } from "../common/events.js";
3
3
  import { THEME } from "../common/theme.js";
4
4
  import { axisEquals, DOWN, getBlockStart, getSize, RIGHT, UP, WritingMode } from "../common/writing-mode.js";
5
5
 
6
+ const DEBOUNCE_DELAY = 100;
7
+
6
8
  export function ScrollView(props: {
7
9
  class?: ClassValue;
8
10
  style?: StyleValue;
@@ -50,7 +52,7 @@ export function ScrollView(props: {
50
52
  overflow: () => vertical.value ? "hidden auto" : "auto hidden",
51
53
  }
52
54
  ]}
53
- on:scroll={[debounceEvent(100, () => updateIndicators()), { passive: true }]}
55
+ on:scroll={[debounceEvent(DEBOUNCE_DELAY, () => updateIndicators()), { passive: true }]}
54
56
  tabindex="0"
55
57
  >
56
58
  {content}
@@ -79,14 +81,15 @@ export function ScrollView(props: {
79
81
  ]} />
80
82
  </div> as HTMLElement;
81
83
 
82
- const rootObserver = new ResizeObserver(() => {
84
+ const rootObserver = new ResizeObserver(debounceEvent(DEBOUNCE_DELAY, () => {
83
85
  const blockStart = getBlockStart(getComputedStyle(root).writingMode as WritingMode || "horizontal-tb");
84
86
  vertical.value ??= axisEquals(blockStart, UP);
85
87
  updateIndicators(blockStart);
86
- });
88
+ }));
87
89
  rootObserver.observe(root);
88
90
  teardown(() => rootObserver.disconnect());
89
91
 
92
+ const intersectUpdateIndicators = debounceEvent(DEBOUNCE_DELAY, updateIndicators);
90
93
  const contentObserver = new IntersectionObserver(() => {
91
94
  const rootRect = root.getBoundingClientRect();
92
95
  const contentRect = content.getBoundingClientRect();
@@ -95,7 +98,7 @@ export function ScrollView(props: {
95
98
  const dir = isVertical ? RIGHT : UP;
96
99
  scrollbarComp.value = Math.max(0, getSize(rootRect, dir) - getSize(contentRect, dir));
97
100
  vertical.value ??= isVertical;
98
- updateIndicators(blockStart);
101
+ intersectUpdateIndicators(blockStart);
99
102
  }, { root, rootMargin: "0px 0px 0px 0px", threshold: 1 });
100
103
  contentObserver.observe(content);
101
104
  teardown(() => contentObserver.disconnect());
@@ -0,0 +1,22 @@
1
+ import { ClassValue, Expression, map, StyleValue } from "rvx";
2
+ import { THEME } from "../common/theme.js";
3
+
4
+ export function Separated(props: {
5
+ class?: ClassValue;
6
+ style?: StyleValue;
7
+ id?: Expression<string | undefined>;
8
+ children?: unknown;
9
+ row?: Expression<boolean | undefined>;
10
+ }) {
11
+ const theme = THEME.current;
12
+ return <div
13
+ class={[
14
+ props.class,
15
+ map(props.row, row => row ? theme?.separated_row : theme?.separated_column),
16
+ ]}
17
+ style={props.style}
18
+ id={props.id}
19
+ >
20
+ {props.children}
21
+ </div>;
22
+ }