mashlib 2.1.5-test.2 → 2.1.5

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/mash.css CHANGED
@@ -208,6 +208,12 @@
208
208
  min-width: 0;
209
209
  }
210
210
 
211
+ /* Ensure prompt inputs stretch to fit their container */
212
+ .add-friend-button-container input[type="text"] {
213
+ width: 100%;
214
+ box-sizing: border-box;
215
+ }
216
+
211
217
  .qrCodeSection {
212
218
  color: var(--color-text-secondary);
213
219
  font-size: 1em;
@@ -233,22 +239,20 @@
233
239
  /* ProfileView.css */
234
240
  /* Uses utilities: .section-bg, .text-center */
235
241
 
236
- .profileSection {
237
-
238
- }
239
-
240
242
  /* Horizontal layout for cards */
241
243
  .profile-grid .profileSection {
242
244
  width: 100%;
243
245
  max-width: 100%;
246
+ min-width: 0;
244
247
  box-sizing: border-box;
245
248
  margin-bottom: var(--spacing-md);
246
249
  box-sizing: border-box;
247
250
  margin-bottom: var(--spacing-md);
251
+ overflow-wrap: anywhere;
248
252
  }
249
253
 
250
254
  @media (min-width: 900px) {
251
- .profileSection {
255
+ .profile-grid .profileSection {
252
256
  margin-bottom: 0;
253
257
  }
254
258
  }
@@ -365,6 +369,27 @@
365
369
 
366
370
  /* Utility-first CSS classes for layout, spacing, and responsiveness */
367
371
 
372
+ :root {
373
+ --profile-image-size: 3em;
374
+ }
375
+
376
+ @media (max-width: 1000px) {
377
+ .profile-grid,
378
+ .profile-grid * {
379
+ font-size: 2rem !important;
380
+ }
381
+
382
+ .profile-grid .actionButton,
383
+ .profile-grid .searchInput,
384
+ .profile-grid .flatButton,
385
+ .profile-grid .buttonSection button,
386
+ .profile-grid .groupButtonsList button {
387
+ min-height: calc(var(--min-touch-target) + 0.5em) !important;
388
+ font-size: 2rem !important;
389
+ padding: 1em 1em !important;
390
+ }
391
+ }
392
+
368
393
  .actionButton {
369
394
  width: 100%;
370
395
  min-width: 180px;
@@ -379,7 +404,8 @@
379
404
 
380
405
  .profile-grid {
381
406
  display: grid;
382
- grid-template-columns: repeat(auto-fit, minmax(30em, 1fr));
407
+ /* Allow the grid to shrink below 30em on small viewports to avoid overflow */
408
+ grid-template-columns: repeat(auto-fit, minmax(min(100%, 30em), 1fr));
383
409
  gap: var(--spacing-lg);
384
410
  background: var(--color-background);
385
411
  }
@@ -572,6 +598,13 @@
572
598
  box-shadow: none;
573
599
  }
574
600
 
601
+ /* Prevent labels from appearing focusable to keyboard users. */
602
+ label:focus,
603
+ label:focus-visible {
604
+ outline: none !important;
605
+ box-shadow: none !important;
606
+ }
607
+
575
608
  /* Better focus for text elements */
576
609
  .focusable-text:focus {
577
610
  background-color: rgba(124, 77, 255, 0.1);
@@ -693,9 +726,66 @@
693
726
  background-color: transparent;
694
727
  }
695
728
 
729
+ /* Delete pop up*/
730
+ /* Make the Solid-UI delete confirmation popup appear near the last click position.
731
+ Keep the built-in Solid-UI styling (orange border, white background) so it looks like the original.
732
+ */
733
+ .profile-grid div[style*="position: relative"] > div[style*="display: grid"] {
734
+ /* only override positioning; keep styling (border/background/etc) from solid-ui */
735
+ position: absolute !important;
736
+ z-index: 9999 !important;
737
+ top: 0 !important;
738
+ right: 0 !important;
739
+ left: auto !important;
740
+ display: grid !important;
741
+ pointer-events: auto !important;
742
+ opacity: 1 !important;
743
+ visibility: visible !important;
744
+ padding: 0.7em !important;
745
+ min-width: 280px !important;
746
+ max-width: 90vw !important;
747
+ background: var(--color-background) !important;
748
+ border: 0.1em solid var(--color-primary) !important;
749
+ border-radius: var(--border-radius-base) !important;
750
+ box-shadow: 0 0.5em 0.9em rgba(0, 0, 0, 0.2) !important;
751
+ grid-template-columns: auto auto !important;
752
+ gap: 0.3em !important;
753
+ }
754
+
755
+ /* Ensure SVG icons and their buttons inside the Solid-UI delete popup have transparent backgrounds */
756
+ .profile-grid div[style*="position: relative"] > div[style*="display: grid"] img[src$=".svg"],
757
+ .profile-grid div[style*="position: relative"] > div[style*="display: grid"] button {
758
+ background: transparent !important;
759
+ }
760
+
761
+ .profile-form .individualPane {
762
+ box-shadow: none !important;
763
+ }
764
+
765
+ .profile-form p {
766
+ padding: 0 !important;
767
+ }
768
+
769
+ .profile-form .mb-md {
770
+ margin-bottom: 0 !important;
771
+ }
772
+
773
+ .profile-form h2 {
774
+ margin-bottom: 1em !important;
775
+ }
776
+
777
+ .profile-form h3 {
778
+ color: var(--color-primary) !important;
779
+ padding: 0 !important;
780
+ font-size: 1em !important;
781
+ font-weight: 600 !important;
782
+ }
783
+
784
+ /* Shared form layout rules are imported from rdfFormsCommon.css */
696
785
  /* Solid-UI form sizing fixes scoped to Edit CV section */
697
786
  .profile-form .hoverControl:not(:has(> img:first-child)) {
698
787
  border: 0.1em solid rgb(136, 136, 136) !important;
788
+ flex-direction: column !important;
699
789
  }
700
790
 
701
791
  .profile-form .hoverControl:has(> img:first-child) {
@@ -704,85 +794,164 @@
704
794
  margin: 0 !important;
705
795
  border-radius: 0 !important;
706
796
  padding: 0.7em !important;
797
+ min-height: var(--min-touch-target);
798
+ min-width: var(--min-touch-target);
707
799
  cursor: pointer;
708
800
  display: inline-flex;
709
801
  align-items: center;
710
802
  justify-content: center;
711
803
  }
712
804
 
713
- .profile-form .hoverControlHide {
805
+ /* Make sure the delete icon floats in the top-right corner of the full hoverControl wrapper */
806
+ .profile-form .hoverControl,
807
+ .profile-grid .hoverControl {
808
+ position: relative !important;
809
+ }
810
+
811
+ .hoverControl > img.hoverControlHide,
812
+ .hoverControl > [data-testid="deleteButtonWithCheck"] {
813
+ position: absolute !important;
814
+ top: 0.2em !important;
815
+ right: 0.2em !important;
714
816
  width: 1.5em !important;
715
817
  height: 1.5em !important;
716
- display: block;
717
- margin-top: 0 !important;
718
- margin-left: 0 !important;
719
- margin-right: 0 !important;
720
- margin-bottom: 0.3em !important;
818
+ align-items: center;
819
+ justify-content: center;
820
+ margin: 0 !important;
821
+ float: none !important;
822
+ transform: none !important;
721
823
  }
722
824
 
723
- .profile-form .hoverControl:has(> img:first-child) > span {
724
- display: inline-flex;
725
- align-items: center;
726
- margin-left: 0.3em;
825
+ /* When icon is 2nd or 3rd child (i.e. sibling elements exist), align it vertically to the previous item */
826
+ .hoverControl > img.hoverControlHide:nth-child(1),
827
+ .hoverControl > img.hoverControlHide:nth-child(2),
828
+ .hoverControl > [data-testid="deleteButtonWithCheck"]:nth-child(1),
829
+ .hoverControl > [data-testid="deleteButtonWithCheck"]:nth-child(2) {
830
+ top: 50% !important;
831
+ transform: translateY(-50%) !important;
832
+ display: inline-flex !important;
833
+ }
834
+
835
+ /* Show the delete icon only when the container is hovered */
836
+ .profile-grid .hoverControl:hover > img.hoverControlHide,
837
+ .profile-grid .hoverControl:hover > [data-testid="deleteButtonWithCheck"] {
838
+ display: inline-flex !important;
839
+ }
840
+
841
+ /* Also show the delete icon when the entire row is hovered */
842
+ .profile-grid .attachmentTable tr:hover .hoverControl > img.hoverControlHide,
843
+ .profile-grid .attachmentTable tr:hover .hoverControl > [data-testid="deleteButtonWithCheck"] {
844
+ display: inline-flex !important;
845
+ }
846
+
847
+ /* Make the hover-control cell easier to hit */
848
+ .profile-grid .hoverControl {
849
+ padding: 0.75em !important;
850
+ min-width: 2.5em !important;
851
+ min-height: 2.5em !important;
852
+ }
853
+
854
+ /* When the hoverControl only contains the hidden delete icon, keep it out of layout so it doesn't create empty space */
855
+ .profile-form .formFieldValue .hoverControl:has(> img.hoverControlHide) {
856
+ min-width: 0 !important;
857
+ min-height: 0 !important;
858
+ width: 0 !important;
859
+ height: 0 !important;
860
+ padding: 0 !important;
861
+ margin: 0 !important;
862
+ overflow: visible !important;
863
+ }
864
+
865
+ /* Hide delete icon only in autocomplete fields */
866
+ .profile-grid .formFieldValue:has(input[data-testid="autocomplete-input"]) [data-testid="delete-button"] {
867
+ display: none !important;
727
868
  }
728
869
 
729
- .profile-form div[style*="padding: 0.5em"]:has(> img) {
870
+ /* Keep autocomplete cancel button hidden when the user is not interacting.
871
+ This avoids the cancel button remaining visible when focus moves away. */
872
+ .profile-grid .formFieldValue:not(:focus-within) [data-testid="cancel-button"] {
873
+ display: none !important;
874
+ }
875
+
876
+ .profile-grid .hoverControl:has(> img:first-child) > span {
730
877
  display: inline-flex;
731
878
  align-items: center;
879
+ margin-left: 0.3em;
732
880
  }
733
881
 
734
- .profile-form div[style*="padding: 0.5em"]:has(> img) > span {
882
+ .profile-grid div[style*="padding: 0.5em"]:has(> img) > span {
735
883
  margin-left: 0.3em;
884
+ vertical-align: super !important;
736
885
  }
737
886
 
738
- .profile-form .hoverControl:has(> img:first-child):hover {
887
+ .profile-grid .hoverControl:has(> img:first-child):hover {
739
888
  background-color: transparent !important;
740
889
  }
741
890
 
742
- .profile-form button:has(> img[src$=".svg"]) {
743
- background-color: transparent !important;
891
+ .profile-grid button:has(> img[src$=".svg"]),
892
+ .profile-grid .formFieldValue input[type ="color"] {
893
+ background-color: var(--color-section-bg) !important;
744
894
  border: none !important;
745
895
  margin: 0 !important;
746
896
  border-radius: 0 !important;
897
+ box-shadow: none !important;
898
+ padding: 0.5em !important;
899
+ transition: background-color 0.2s ease, box-shadow 0.2s ease;
900
+ padding: 0 !important;
901
+ }
902
+
903
+ /* Specific icon button should have no extra padding */
904
+ .profile-grid button:has(> img[src="https://solidos.github.io/solid-ui/src/icons/noun_1369241.svg"]) {
905
+ padding: 0 !important;
747
906
  }
748
907
 
749
908
  .profile-form button {
909
+ min-height: var(--min-touch-target);
910
+ min-width: var(--min-touch-target);
911
+ }
750
912
 
913
+ .profile-form input:not([type="color"]) {
914
+ width: 99%;
915
+ margin-left: 0 !important;
916
+ margin-right: 0 !important;
751
917
  }
752
918
 
753
919
  .profile-form input:not([type="color"]),
754
920
  .profile-form textarea,
755
921
  .profile-form select {
756
- max-width: 100%;
922
+ max-width: 96%;
757
923
  min-width: 0;
758
924
  box-sizing: border-box ;
759
- background-color: #eef !important;
760
- border: .05em solid #88c
761
- }
762
-
763
- .profile-form input[type="url"] {
764
- width: 100%;
925
+ font: inherit;
926
+ color: var(--color-text);
927
+ background-color: var(--color-card-bg) !important;
928
+ border: 1px solid var(--color-border-pale);
765
929
  }
766
930
 
767
- .profile-form .formFieldValue {
768
- min-width: 0;
769
- margin-bottom: var(--spacing-sm);
931
+ .profile-form textarea {
932
+ border-color: var(--color-border-pale) !important;
770
933
  }
771
934
 
772
- .profile-form .formFieldValue table {
773
- margin: 0 !important;
774
- padding: 0 !important;
935
+ .profile-form input[type="date"],
936
+ .profile-form input[type="month"],
937
+ .profile-form input[type="week"],
938
+ .profile-form input[type="time"],
939
+ .profile-form input[type="datetime-local"] {
940
+ min-height: var(--min-touch-target);
775
941
  }
776
942
 
777
- .profile-form .formFieldValue td {
778
- padding: 0 !important;
943
+ .profile-form .hoverControl:has(> img:first-child):focus-visible,
944
+ .profile-form button:focus-visible,
945
+ .profile-form input:not([type="color"]):focus-visible,
946
+ .profile-form textarea:focus-visible,
947
+ .profile-form select:focus-visible {
948
+ outline: var(--focus-ring-width) solid var(--color-primary) !important;
949
+ outline-offset: 2px;
950
+ box-shadow: 0 0 0 1px var(--color-background);
779
951
  }
780
952
 
781
- .profile-form .formFieldValue input:not([type="color"]),
782
- .profile-form .formFieldValue textarea,
783
- .profile-form .formFieldValue select {
953
+ .profile-form input[type="url"] {
784
954
  width: 100%;
785
- max-width: 100%;
786
955
  }
787
956
 
788
957
  .profile-form select#formSelect {
@@ -793,11 +962,6 @@
793
962
  margin-right: 0 !important;
794
963
  }
795
964
 
796
- .profile-form span select {
797
- max-width: 96% !important;
798
- box-sizing: border-box;
799
- }
800
-
801
965
  /* Remove border/padding from the first wrapper div (and its first child wrapper). */
802
966
  .profile-form > div:first-of-type,
803
967
  .profile-form > div:first-of-type > div:first-of-type {
@@ -818,6 +982,54 @@ section[aria-labelledby="edit-profile-contact-heading"] .profile-form > div:firs
818
982
  }
819
983
 
820
984
  /* Align schema.org, solid terms, FOAF, vCard, and org field labels with their input values. */
985
+ .profile-form :not(.choiceBox):has(> .formFieldName):has(> .formFieldValue) {
986
+ display: flex;
987
+ }
988
+
989
+ /* for the Resume inside corporation choice */
990
+ /* Add space between classifierBox label and select box */
991
+ .profile-form .choiceBox .classifierBox-label {
992
+ /* Optional: ensure label doesn't have extra margin */
993
+ margin-right: 0;
994
+ padding-left: 0.3em;
995
+ }
996
+ .profile-form .choiceBox .choiceBox-selectBox select {
997
+ margin-left: 2.1em !important;
998
+ }
999
+
1000
+ /* for the Resume orga details */
1001
+ /* Add space between classifierBox label and select box */
1002
+ .profile-form .classifierBox .classifierBox-label {
1003
+ /* Match .formFieldName for alignment */
1004
+ margin-right: 0;
1005
+ padding-left: 0.3em;
1006
+ width: 8em;
1007
+ padding: 0.3em;
1008
+ vertical-align: middle;
1009
+ }
1010
+ .profile-form .classifierBox .classifierBox-selectBox {
1011
+ margin-left: 0 !important;
1012
+ }
1013
+
1014
+ .profile-form .classifierBox .classifierBox-selectBox select {
1015
+ margin-left: 0 !important;
1016
+ }
1017
+
1018
+ /* for the social media */
1019
+ /* Add space between classifierBox label and select box */
1020
+ section[data-testid="edit-social-section"] .classifierBox-label {
1021
+ /* Optional: ensure label doesn't have extra margin */
1022
+ margin-right: 0;
1023
+ padding-left: 0.3em;
1024
+ }
1025
+ section[data-testid="edit-social-section"] .classifierBox-selectBox select {
1026
+ margin-left: 0.7em !important;
1027
+ }
1028
+
1029
+ .profile-form :not(.choiceBox):has(> .formFieldName):has(> .formFieldValue) > .formFieldValue {
1030
+ margin-bottom: 0;
1031
+ }
1032
+
821
1033
  .profile-form :not(.choiceBox) > .formFieldName:has(a[href*="http://schema.org/"]),
822
1034
  .profile-form :not(.choiceBox) > .formFieldName:has(a[href*="http://www.w3.org/ns/solid/terms#"]),
823
1035
  .profile-form :not(.choiceBox) > .formFieldName:has(a[href*="http://xmlns.com/foaf/0.1/"]),
@@ -836,10 +1048,20 @@ section[aria-labelledby="edit-profile-contact-heading"] .profile-form > div:firs
836
1048
  display: inline-flex;
837
1049
  align-items: center;
838
1050
  vertical-align: middle;
1051
+ flex: 1;
1052
+ min-width: 0;
839
1053
  }
840
1054
 
841
- .profile-form textarea {
842
- width: 100%;
1055
+ .profile-form textarea,
1056
+ .profile-form .formFieldValue textarea {
1057
+ appearance: none;
1058
+ -webkit-appearance: none;
1059
+ border: .05em solid #88c !important;
1060
+ border-style: solid !important;
1061
+ border-width: .05em !important;
1062
+ border-color: #88c !important;
1063
+ border-radius: 0.2em !important;
1064
+ width: 99%;
843
1065
  box-sizing: border-box;
844
1066
  margin-top: var(--spacing-xs);
845
1067
  margin-left: 0 !important;
@@ -857,29 +1079,143 @@ section[aria-labelledby="edit-profile-contact-heading"] .profile-form > div:firs
857
1079
  }
858
1080
 
859
1081
  .profile-form div[style*="display: flex"][style*="flex-direction: row"]:has(textarea) > div:has(> a) {
860
- padding-top: var(--spacing-xs);
1082
+ padding-left: var(--spacing-xs);
1083
+ padding-top: var(--spacing-sm);
861
1084
  }
862
1085
 
863
- .profile-form input:not([type="color"]) {
864
- width: 100%;
865
- margin-left: 0 !important;
866
- margin-right: 0 !important;
1086
+
1087
+ .profile-form :not(.choiceBox):has(> .formFieldValue input[data-testid="autocomplete-input"]) > .formFieldName {
1088
+ padding-top: 0.55em !important;
867
1089
  }
868
1090
 
869
- /* Remove padding from table cells within webidControl */
870
- .webidControl table td {
871
- padding: 0 !important;
1091
+
1092
+ .profile-form input:disabled,
1093
+ .profile-form textarea:disabled,
1094
+ .profile-form select:disabled,
1095
+ .profile-form input[readonly],
1096
+ .profile-form textarea[readonly],
1097
+ .profile-form input:read-only,
1098
+ .profile-form textarea:read-only {
1099
+ background-color: var(--color-background) !important;
1100
+ cursor: not-allowed;
1101
+ opacity: 0.75;
1102
+ border: 0.05em solid white !important;
872
1103
  }
873
1104
 
874
- /* Remove padding from contactPane divs inside webidControl table cells */
875
- .webidControl table td div.contactPane.namedPane.fullWidth.individualPane {
1105
+ .webidControl table td div.contactPane.namedPane {
1106
+ border: none !important;
1107
+ }
1108
+
1109
+ /* Hide the edit icon used by solid-ui (noun_253504.svg and noun_1180158.svg) when it appears as an <img> */
1110
+ img[src*="noun_253504.svg"],
1111
+ img[src*="noun_1180158.svg"] {
1112
+ display: none !important;
1113
+ width: 0 !important;
1114
+ height: 0 !important;
1115
+ margin: 0 !important;
876
1116
  padding: 0 !important;
877
1117
  }
878
1118
 
879
- .webidControl table td div.contactPane.namedPane {
1119
+ /* Ensure the parent button for that icon doesn't add padding/margin or affect layout */
1120
+ button:has(> img[src*="noun_253504.svg"]),
1121
+ button:has(> img[src*="noun_1180158.svg"]) {
1122
+ display: none !important;
1123
+ padding: 0 !important;
1124
+ margin: 0 !important;
880
1125
  border: none !important;
1126
+ background: none !important;
1127
+ width: 0 !important;
1128
+ height: 0 !important;
1129
+ overflow: hidden !important;
881
1130
  }
882
1131
 
1132
+ /* Exceptions: allow these icons (and their buttons) when they're part of the add-friend or add-community flows. */
1133
+ .profile-grid .profileSection .add-friend-button-container img[src="https://solidos.github.io/solid-ui/src/icons/noun_253504.svg"],
1134
+ .profile-grid .profileSection .add-community-button-container img[src="https://solidos.github.io/solid-ui/src/icons/noun_253504.svg"],
1135
+ .profile-grid .profileSection .add-friend-button-container button:has(> img[src="https://solidos.github.io/solid-ui/src/icons/noun_253504.svg"]),
1136
+ .profile-grid .profileSection .add-community-button-container button:has(> img[src="https://solidos.github.io/solid-ui/src/icons/noun_253504.svg"]) {
1137
+ display: inline-flex !important;
1138
+ width: auto !important;
1139
+ height: auto !important;
1140
+ overflow: visible !important;
1141
+ }
1142
+
1143
+
1144
+ /* Exception: allow “Continue” buttons inside add-friend and add-community button containers. */
1145
+ .profile-grid .profileSection .add-friend-button-container button:has(> img[title="Continue"]),
1146
+ .profile-grid .profileSection .add-community-button-container button:has(> img[title="Continue"]),
1147
+ .profile-grid .profileSection .add-friend-button-container button:has(> img[src="https://solidos.github.io/solid-ui/src/icons/noun_1180158.svg"]),
1148
+ .profile-grid .profileSection .add-community-button-container button:has(> img[src="https://solidos.github.io/solid-ui/src/icons/noun_1180158.svg"]),
1149
+ .profile-grid .profileSection .add-friend-button-container img[src="https://solidos.github.io/solid-ui/src/icons/noun_1180158.svg"],
1150
+ .profile-grid .profileSection .add-community-button-container img[src="https://solidos.github.io/solid-ui/src/icons/noun_1180158.svg"] {
1151
+ display: inline-flex !important;
1152
+ width: 2em !important;
1153
+ height: 2em !important;
1154
+ overflow: visible !important;
1155
+ }
1156
+
1157
+ .profile-grid .add-friend-button-container,
1158
+ .profile-grid .add-community-button-container {
1159
+ display: inline-flex;
1160
+ align-items: center;
1161
+ gap: var(--spacing-xxs);
1162
+ flex-wrap: wrap;
1163
+ justify-content: flex-start;
1164
+ }
1165
+
1166
+ /* Ensure the button container can shrink properly in narrow layouts */
1167
+ .profile-grid .add-community-button-container {
1168
+ min-width: 0;
1169
+ max-width: 100%;
1170
+ }
1171
+
1172
+ /* Allow any direct children to shrink so no element forces overflow */
1173
+ .profile-grid .add-community-button-container > * {
1174
+ min-width: 0;
1175
+ max-width: 100%;
1176
+ }
1177
+
1178
+ .profile-grid table {
1179
+ margin: 0 !important;
1180
+ }
1181
+
1182
+ .profile-grid td {
1183
+ padding: 0;
1184
+ }
1185
+
1186
+ .profile-grid .add-friend-button-container .span,
1187
+ .profile-grid .add-community-button-container .span {
1188
+ display: inline-flex;
1189
+ align-items: center;
1190
+ }
1191
+
1192
+ .profile-grid .add-friend-button-container > div,
1193
+ .profile-grid .add-community-button-container > div {
1194
+ flex-basis: 100%;
1195
+ }
1196
+
1197
+ /* Prevent the add-community input from overflowing its flex container */
1198
+ .profile-grid .add-community-button-container input {
1199
+ min-width: 0;
1200
+ max-width: 96%;
1201
+ flex: 1 1 0;
1202
+ word-break: break-word;
1203
+ }
1204
+
1205
+ .profile-grid .profile-image {
1206
+ width: var( --profile-image-size);
1207
+ height: var( --profile-image-size);
1208
+ margin: var(--spacing-xxxs);
1209
+ border-radius: var(--spacing-lg);
1210
+ }
1211
+
1212
+ .profile-grid .default-profile-image {
1213
+ width: 140%;
1214
+ height: 140%;
1215
+ object-fit: cover;
1216
+ margin-left: -0.6em;
1217
+ border-radius: var(--spacing-lg);
1218
+ }
883
1219
  /*
884
1220
  ** Light Theme (Default)
885
1221
  ** Default color scheme for SolidOS
@@ -1808,10 +2144,16 @@ section[aria-labelledby="edit-profile-contact-heading"] .profile-form > div:firs
1808
2144
  **
1809
2145
  */
1810
2146
 
2147
+ /* I couldn't find the code for the collapse image. this is a quick work around
2148
+ to make the collapsing easier to use ( the triangles dont jump 20 pixels). ~cm2
2149
+ */
2150
+ img[title="Hide details."] {
2151
+ float: left;
2152
+ }
2153
+
1811
2154
  html, body {
1812
2155
  margin: 0;
1813
2156
  padding: 0;
1814
- min-height: 100%;
1815
2157
  font-family: var(--font-family-base);
1816
2158
  font-size: var(--font-size-base);
1817
2159
  line-height: var(--line-height-base);
@@ -1822,85 +2164,6 @@ html, body {
1822
2164
  text-rendering: optimizeLegibility;
1823
2165
  }
1824
2166
 
1825
- /* ── App layout ── */
1826
- body {
1827
- display: flex;
1828
- flex-direction: column;
1829
- min-height: 100dvh; /* dvh = dynamic viewport for mobile chrome */
1830
- }
1831
-
1832
- #PageHeader {
1833
- position: sticky;
1834
- top: 0;
1835
- z-index: 100;
1836
- flex-shrink: 0;
1837
- }
1838
-
1839
- #MainContent {
1840
- flex: 1 1 auto;
1841
- overflow-y: auto;
1842
- -webkit-overflow-scrolling: touch; /* smooth iOS scroll */
1843
- container-type: inline-size; /* enable @container queries */
1844
- }
1845
-
1846
- #PageFooter {
1847
- flex-shrink: 0;
1848
- }
1849
-
1850
- /* ── Skip link ── */
1851
- .skip-link {
1852
- position: absolute;
1853
- top: -100%;
1854
- left: 0;
1855
- z-index: 1000;
1856
- padding: 0.5rem 1rem;
1857
- background: var( --color-info-bg);
1858
- color: var(--color-text);
1859
- text-decoration: none;
1860
- font-weight: var(--font-weight-bold);
1861
- }
1862
- .skip-link:focus {
1863
- top: 0;
1864
- }
1865
-
1866
- /* ── Pane icon tray (responsive) ── */
1867
- .pane-icon-tray {
1868
- display: flex;
1869
- flex-wrap: wrap;
1870
- gap: 0.5rem;
1871
- padding: 0.25rem 0;
1872
- overflow-x: auto; /* horizontal scroll on very narrow screens */
1873
- -webkit-overflow-scrolling: touch;
1874
- }
1875
-
1876
- .pane-icon-tray img {
1877
- width: 2rem;
1878
- height: 2rem;
1879
- border-radius: 0.4rem;
1880
- cursor: pointer;
1881
- transition: outline 0.15s;
1882
- }
1883
- .pane-icon-tray img:focus-visible {
1884
- outline: 2px solid var(--color-border-accent);
1885
- outline-offset: 2px;
1886
- }
1887
-
1888
- /* ── Subject blocks ── */
1889
- .subject-block {
1890
- border-bottom: 1px solid var(--color-border-pale);
1891
- padding-block: 0.75rem;
1892
- }
1893
-
1894
- /* ── Responsive breakpoints via container queries ── */
1895
- @container (max-width: 40rem) {
1896
- .pane-icon-tray {
1897
- justify-content: center;
1898
- }
1899
- .subject-block h1 {
1900
- font-size: 1.15rem;
1901
- }
1902
- }
1903
-
1904
2167
  /* Improved heading hierarchy */
1905
2168
  h1, h2, h3, h4, h5, h6 {
1906
2169
  color: var(--color-primary);
@@ -1935,6 +2198,21 @@ a:hover, a:focus {
1935
2198
  text-decoration-thickness: 0.125em;
1936
2199
  }
1937
2200
 
2201
+ /* Main page elements in databrowser.html */
2202
+ #PageBody {
2203
+ display: flex;
2204
+ flex-direction: column;
2205
+ }
2206
+ #DummyUUID {
2207
+ flex: 1 0 auto;
2208
+ }
2209
+ #PageHeader {
2210
+ flex-shrink: 0;
2211
+ }
2212
+ #PageFooter {
2213
+ flex-shrink: 0;
2214
+ }
2215
+
1938
2216
  .warning {
1939
2217
  color: var(--color-warning);
1940
2218
  }
@@ -3270,39 +3548,5 @@ End of styles for tableViewPane
3270
3548
  -o-box-shadow: $x-axis $y-axis $blur $color;
3271
3549
  }
3272
3550
 
3273
- /* Generated by AI */
3274
- @media screen and (max-width: 768px) {
3275
- #PageHeader,
3276
- #PageFooter {
3277
- width: 100%;
3278
- }
3279
-
3280
- img.outlineImage,
3281
- img.pic,
3282
- img.foafPic {
3283
- height: auto;
3284
- max-width: 100%;
3285
- }
3286
-
3287
- div.description,
3288
- div.premises,
3289
- div.justification,
3290
- div.mildNotice {
3291
- box-sizing: border-box;
3292
- margin-left: 0;
3293
- margin-right: 0;
3294
- width: 100%;
3295
- }
3296
- }
3297
-
3298
- html[data-layout="mobile"] #PageBody {
3299
- min-height: var(--app-height, 100dvh);
3300
- }
3301
-
3302
- html[data-layout="mobile"] #MainContent {
3303
- overscroll-behavior-x: contain;
3304
- }
3305
-
3306
- /* END of Generated by AI */
3307
3551
 
3308
3552
  /*# sourceMappingURL=mash.css.map*/