mod-arch-kubeflow 1.8.2 → 1.10.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.
@@ -500,9 +500,6 @@
500
500
  color: var(--mui-palette-error-main);
501
501
  }
502
502
 
503
- .mui-theme .pf-v6-c-form__label-required {
504
- color: inherit; // inherit from parent
505
- }
506
503
 
507
504
  .mui-theme .pf-v6-c-form__helper-text.path-helper-text {
508
505
  margin-inline-start: var(--pf-t--global--spacer--lg);
@@ -519,9 +516,10 @@
519
516
  --pf-v6-c-form__section-title--MarginInlineEnd: 0px;
520
517
  }
521
518
 
522
- // Base form label styles - only apply to text inputs (those with fieldset wrapper)
523
- // Exclude NumberInput labels which don't use the fieldset pattern
524
- .mui-theme .pf-v6-c-form__group:not(:has(.pf-v6-c-number-input)) .pf-v6-c-form__label {
519
+ // Floating label styles only apply when FormFieldset wrapper is present.
520
+ // FormGroups without FormFieldset (plain text displays, view states, custom layouts)
521
+ // use standard PF label positioning by default.
522
+ .mui-theme .pf-v6-c-form__group:has(.form-fieldset-wrapper) .pf-v6-c-form__label {
525
523
  position: relative;
526
524
  // TODO: Investigate using a fixed value or transform/rem for consistent positioning.
527
525
  top: 78%;
@@ -538,14 +536,8 @@
538
536
  }
539
537
 
540
538
  // Form controls with number inputs - specific styling overrides
539
+ // (NumberInput does not use FormFieldset, so it is unaffected by the floating label rule above)
541
540
  .mui-theme .pf-v6-c-form__group:has(.pf-v6-c-number-input) {
542
- .pf-v6-c-form__label {
543
- // NumberInput labels use standard label positioning (not floating)
544
- top: 30%;
545
- font-size: 16px;
546
- left: 0;
547
- }
548
-
549
541
  .pf-v6-c-form-control {
550
542
  // Override default form control padding to match button padding in this context
551
543
  --pf-v6-c-form-control--PaddingBlockStart: var(--mui-spacing-8px);
@@ -560,10 +552,12 @@
560
552
  }
561
553
  }
562
554
 
563
- // Use PatternFly's border system via CSS custom properties instead of pseudo-elements
564
- // This provides proper borders without relying on ::before/::after which can conflict
565
- // Exclude spans from getting borders (they're used for labels/legends)
566
- .mui-theme .pf-v6-c-form-control:not(span) {
555
+ // Inside fieldset wrappers, replace PF's ::before/::after border system with a real border
556
+ // on the wrapper element itself. Outside fieldset wrappers (plain FormGroup), PF's native
557
+ // ::before/::after pseudo-elements handle borders and should be left untouched.
558
+ .mui-theme .form-fieldset-wrapper .pf-v6-c-form-control:not(span),
559
+ .mui-theme .tr-fieldset-wrapper .pf-v6-c-form-control:not(span),
560
+ .mui-theme .toolbar-fieldset-wrapper .pf-v6-c-form-control:not(span) {
567
561
  border: var(--pf-v6-c-form-control--BorderWidth, 1px) solid var(--pf-v6-c-form-control--BorderColor, var(--pf-t--global--border--color--default));
568
562
  border-radius: var(--pf-v6-c-form-control--BorderRadius, var(--mui-shape-borderRadius));
569
563
  }
@@ -606,9 +600,19 @@
606
600
  }
607
601
  }
608
602
 
609
- // Remove pseudo-element borders everywhere since we're using real borders now
610
- .mui-theme .pf-v6-c-form-control::after,
611
- .mui-theme .pf-v6-c-form-control::before {
603
+ // Suppress PF's ::before/::after borders in two contexts:
604
+ // 1. Inside fieldset wrappers — the fieldset element provides the visual border instead.
605
+ // 2. NumberInput — it uses a real border on the span directly (see rule above).
606
+ // Outside these contexts, PF's pseudo-elements are left intact so plain FormGroup inputs
607
+ // render with native PF border behavior.
608
+ .mui-theme .form-fieldset-wrapper .pf-v6-c-form-control::after,
609
+ .mui-theme .form-fieldset-wrapper .pf-v6-c-form-control::before,
610
+ .mui-theme .tr-fieldset-wrapper .pf-v6-c-form-control::after,
611
+ .mui-theme .tr-fieldset-wrapper .pf-v6-c-form-control::before,
612
+ .mui-theme .toolbar-fieldset-wrapper .pf-v6-c-form-control::after,
613
+ .mui-theme .toolbar-fieldset-wrapper .pf-v6-c-form-control::before,
614
+ .mui-theme .pf-v6-c-number-input .pf-v6-c-form-control::after,
615
+ .mui-theme .pf-v6-c-number-input .pf-v6-c-form-control::before {
612
616
  display: none;
613
617
  }
614
618
 
@@ -624,8 +628,7 @@
624
628
  --pf-v6-c-button--PaddingInlineEnd: var(--mui-button--PaddingInlineEnd);
625
629
  }
626
630
 
627
- // Consistent form control padding and styling for all inputs except file upload components and pagination
628
- // Pagination has inputs within form controls that need different padding, so exclude them
631
+ // Consistent form control styling for all inputs in MUI theme
629
632
  .mui-theme .pf-v6-c-form-control {
630
633
  --pf-v6-c-form-control--m-disabled--BackgroundColor: var(--mui-palette-common-white);
631
634
  // Disabled color inherited from --pf-t--global--text--color--on-disabled (set to MUI text-disabled)
@@ -633,13 +636,6 @@
633
636
  --pf-v6-c-form-control--m-error--hover--after--BorderColor: var(--mui-palette-error-main);
634
637
  // Resize is disabled in MUI.
635
638
  resize: none;
636
- --pf-v6-c-form-control--PaddingBlockStart: var(--mui-spacing-16px);
637
- --pf-v6-c-form-control--PaddingBlockEnd: var(--mui-spacing-16px);
638
-
639
- #text-file-simple-filename {
640
- --pf-v6-c-form-control--PaddingBlockStart: var(--mui-spacing-8px);
641
- --pf-v6-c-form-control--PaddingBlockEnd: var(--mui-spacing-8px);
642
- }
643
639
  }
644
640
 
645
641
  // Exclude pagination form controls from padding rules (pagination has its own sizing)
@@ -744,16 +740,18 @@
744
740
 
745
741
  // Input group control buttons: use PF structure only (Button variant="control" in InputGroup).
746
742
  // No app class names required; any consumer using variant="control" gets this styling.
747
- .mui-theme .pf-v6-c-input-group .pf-v6-c-input-group__item:has(.pf-v6-c-button.pf-m-control) {
743
+ // FileUpload is excluded because it also uses input-group control buttons ("Browse"/"Clear")
744
+ // and should keep the default PF rectangular button style.
745
+ .mui-theme .pf-v6-c-input-group:not(.pf-v6-c-file-upload .pf-v6-c-input-group) .pf-v6-c-input-group__item:has(.pf-v6-c-button.pf-m-control) {
748
746
  display: flex;
749
747
  align-items: center;
750
748
  }
751
749
 
752
- .mui-theme .pf-v6-c-input-group .pf-v6-c-input-group__item:has(.pf-v6-c-button.pf-m-control):last-child {
750
+ .mui-theme .pf-v6-c-input-group:not(.pf-v6-c-file-upload .pf-v6-c-input-group) .pf-v6-c-input-group__item:has(.pf-v6-c-button.pf-m-control):last-child {
753
751
  padding-inline-end: var(--mui-input-group-control-button--container-padding-inline-end);
754
752
  }
755
753
 
756
- .mui-theme .pf-v6-c-input-group .pf-v6-c-input-group__item .pf-v6-c-button.pf-m-control {
754
+ .mui-theme .pf-v6-c-input-group:not(.pf-v6-c-file-upload .pf-v6-c-input-group) .pf-v6-c-input-group__item .pf-v6-c-button.pf-m-control {
757
755
  --pf-v6-c-button--BorderColor: transparent;
758
756
  --pf-v6-c-button--hover--BorderColor: transparent;
759
757
  --pf-v6-c-button--m-control--BorderColor: transparent;
@@ -777,19 +775,19 @@
777
775
  align-self: center;
778
776
  }
779
777
 
780
- .mui-theme .pf-v6-c-input-group .pf-v6-c-input-group__item .pf-v6-c-button.pf-m-control .pf-v6-c-button__icon,
781
- .mui-theme .pf-v6-c-input-group .pf-v6-c-input-group__item .pf-v6-c-button.pf-m-control svg {
778
+ .mui-theme .pf-v6-c-input-group:not(.pf-v6-c-file-upload .pf-v6-c-input-group) .pf-v6-c-input-group__item .pf-v6-c-button.pf-m-control .pf-v6-c-button__icon,
779
+ .mui-theme .pf-v6-c-input-group:not(.pf-v6-c-file-upload .pf-v6-c-input-group) .pf-v6-c-input-group__item .pf-v6-c-button.pf-m-control svg {
782
780
  display: block;
783
781
  margin: 0;
784
782
  }
785
783
 
786
- .mui-theme .pf-v6-c-input-group .pf-v6-c-input-group__item .pf-v6-c-button.pf-m-control:hover {
784
+ .mui-theme .pf-v6-c-input-group:not(.pf-v6-c-file-upload .pf-v6-c-input-group) .pf-v6-c-input-group__item .pf-v6-c-button.pf-m-control:hover {
787
785
  border-radius: 50%;
788
786
  outline: none;
789
787
  background-color: var(--pf-t--global--background--color--action--plain--hover, rgba(0, 0, 0, 0.04));
790
788
  }
791
789
 
792
- .mui-theme .pf-v6-c-input-group .pf-v6-c-input-group__item .pf-v6-c-button.pf-m-control:focus-visible {
790
+ .mui-theme .pf-v6-c-input-group:not(.pf-v6-c-file-upload .pf-v6-c-input-group) .pf-v6-c-input-group__item .pf-v6-c-button.pf-m-control:focus-visible {
793
791
  border-radius: 50%;
794
792
  outline: none;
795
793
  box-shadow: 0 0 0 2px var(--mui-palette-primary-main);
@@ -1049,11 +1047,19 @@
1049
1047
  color: var(--mui-palette-primary-main);
1050
1048
  }
1051
1049
 
1050
+ // Fieldset-wrapper inputs: hide real border (fieldset provides it) and apply MUI-sized
1051
+ // padding (needed for floating label clearance). Plain FormGroup inputs use PF default padding.
1052
1052
  .mui-theme .tr-fieldset-wrapper .pf-v6-c-form-control,
1053
1053
  .mui-theme .toolbar-fieldset-wrapper .pf-v6-c-form-control,
1054
1054
  .mui-theme .form-fieldset-wrapper .pf-v6-c-form-control {
1055
- // Hide real borders since fieldset wrappers provide their own border styling
1056
1055
  border: none;
1056
+ --pf-v6-c-form-control--PaddingBlockStart: var(--mui-spacing-16px);
1057
+ --pf-v6-c-form-control--PaddingBlockEnd: var(--mui-spacing-16px);
1058
+
1059
+ #text-file-simple-filename {
1060
+ --pf-v6-c-form-control--PaddingBlockStart: var(--mui-spacing-8px);
1061
+ --pf-v6-c-form-control--PaddingBlockEnd: var(--mui-spacing-8px);
1062
+ }
1057
1063
  }
1058
1064
 
1059
1065
  // Ensure legend spans don't get form control styling
@@ -1106,22 +1112,28 @@
1106
1112
  --pf-v6-c-form__field-group-body--PaddingBlockStart: 8px;
1107
1113
  }
1108
1114
 
1109
- .mui-theme .pf-v6-c-form__group .pf-v6-c-form-control:focus-within + .pf-v6-c-form__label,
1110
- .mui-theme .pf-v6-c-form__group .pf-v6-c-form-control:not(:placeholder-shown) + .pf-v6-c-form__label {
1115
+ .mui-theme .pf-v6-c-form__group:has(.form-fieldset-wrapper) .pf-v6-c-form-control:focus-within + .pf-v6-c-form__label,
1116
+ .mui-theme .pf-v6-c-form__group:has(.form-fieldset-wrapper) .pf-v6-c-form-control:not(:placeholder-shown) + .pf-v6-c-form__label {
1111
1117
  color: var(--mui-palette-primary-main);
1112
1118
  }
1113
1119
 
1114
- .mui-theme .pf-v6-c-form__group:focus-within .pf-v6-c-form-control:not(span) {
1120
+ .mui-theme .pf-v6-c-form__group:has(.form-fieldset-wrapper):focus-within .pf-v6-c-form-control:not(span) {
1115
1121
  border-width: var(--mui-form--focus--BorderWidth);
1116
1122
  border-color: var(--mui-palette-primary-main);
1117
1123
  }
1118
1124
 
1119
- .mui-theme .pf-v6-c-form-control.pf-m-error:not(span),
1125
+ // Error/hover border overrides only apply inside fieldset wrappers (real border).
1126
+ // Plain FormGroup inputs use PF's ::before/::after for these states.
1127
+ .mui-theme .form-fieldset-wrapper .pf-v6-c-form-control.pf-m-error:not(span),
1128
+ .mui-theme .tr-fieldset-wrapper .pf-v6-c-form-control.pf-m-error:not(span),
1129
+ .mui-theme .toolbar-fieldset-wrapper .pf-v6-c-form-control.pf-m-error:not(span),
1120
1130
  .mui-theme .pf-v6-c-number-input span.pf-v6-c-form-control.pf-m-error {
1121
1131
  border-color: var(--mui-palette-error-main);
1122
1132
  }
1123
1133
 
1124
- .mui-theme .pf-v6-c-form-control:hover:not(span) {
1134
+ .mui-theme .form-fieldset-wrapper .pf-v6-c-form-control:hover:not(span),
1135
+ .mui-theme .tr-fieldset-wrapper .pf-v6-c-form-control:hover:not(span),
1136
+ .mui-theme .toolbar-fieldset-wrapper .pf-v6-c-form-control:hover:not(span) {
1125
1137
  border-color: var(--pf-t--global--border--color--hover, var(--mui-palette-grey-400));
1126
1138
  }
1127
1139
 
@@ -1146,14 +1158,14 @@
1146
1158
  border-color: var(--mui-palette-error-main);
1147
1159
  }
1148
1160
 
1149
- .mui-theme .pf-v6-c-form__group:not(.pf-m-error):focus-within .pf-v6-c-form__label {
1161
+ .mui-theme .pf-v6-c-form__group:has(.form-fieldset-wrapper):not(.pf-m-error):focus-within .pf-v6-c-form__label {
1150
1162
  // Using CSS property here since --pf-v6-c-form__label--Color does not exist.
1151
1163
 
1152
1164
  /* Change color of the label when the input is focused */
1153
1165
  color: var(--mui-palette-primary-main);
1154
1166
  }
1155
1167
 
1156
- .mui-theme .pf-v6-c-form__group:not(.pf-m-error):focus-within .pf-v6-c-form__label-required {
1168
+ .mui-theme .pf-v6-c-form__group:has(.form-fieldset-wrapper):not(.pf-m-error):focus-within .pf-v6-c-form__label-required {
1157
1169
  color: var(--mui-palette-primary-main);
1158
1170
  }
1159
1171
 
@@ -2119,6 +2131,7 @@ left: 0;
2119
2131
  }
2120
2132
 
2121
2133
  // File upload textarea border styling (MUI-specific)
2134
+ // Use a real border and suppress PF's ::before/::after pseudo-element borders to avoid double/artifact borders.
2122
2135
  .mui-theme .pf-v6-c-file-upload__file-details .pf-v6-c-form-control.pf-m-textarea {
2123
2136
  border: var(--mui-form-control--BorderWidth) solid var(--mui-form-control--BorderColor);
2124
2137
  border-radius: var(--mui-shape-borderRadius);
@@ -2126,6 +2139,11 @@ left: 0;
2126
2139
  &:hover {
2127
2140
  border-color: var(--mui-palette-common-black);
2128
2141
  }
2142
+
2143
+ &::before,
2144
+ &::after {
2145
+ display: none;
2146
+ }
2129
2147
  }
2130
2148
 
2131
2149
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mod-arch-kubeflow",
3
- "version": "1.8.2",
3
+ "version": "1.10.0",
4
4
  "description": "Kubeflow-specific theme and UI components for modular architecture micro-frontend projects",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.js",