@webority/theme 0.75.1 → 0.76.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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@webority/theme",
3
- "version": "0.75.1",
3
+ "version": "0.76.0",
4
4
  "description": "Webority shared design system — Bootstrap 5.3 SCSS overrides, --wui-* tokens, and shared component CSS. The single source of brand chrome for React portals and Razor sites.",
5
5
  "license": "SEE LICENSE IN LICENSE",
6
6
  "publishConfig": {
@@ -536,7 +536,8 @@ textarea.form-control.autosize {
536
536
  // the hint's place instead of adding a line. Inside a form an empty line still keeps its height, so
537
537
  // showing an error never moves the form; elsewhere (toolbars, filter bars, inline edits) an empty
538
538
  // line takes no space. The library's compact containers never reserve it, since a Razor filter bar is a
539
- // GET form. .wui-form-compact on any container opts a form out.
539
+ // GET form. .wui-form-compact on any container opts a form out with the small control height;
540
+ // .wui-form-inline opts out and changes nothing else, for a field and button on one row.
540
541
  .wui-field-message {
541
542
  display: grid;
542
543
  margin-top: -2px;
@@ -550,7 +551,7 @@ form .wui-field-message:empty {
550
551
  display: grid;
551
552
  min-height: 16px;
552
553
  }
553
- :is(.wui-form-compact, .wui-filter-bar, .wui-filter-popover, .wui-table-toolbar, .wui-inline-edit) .wui-field-message:empty {
554
+ :is(.wui-form-compact, .wui-form-inline, .wui-filter-bar, .wui-filter-popover, .wui-table-toolbar, .wui-inline-edit) .wui-field-message:empty {
554
555
  display: none;
555
556
  }
556
557
  .wui-field-message > .field-hint,
@@ -1028,6 +1029,42 @@ $wui-field-error-glyph: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/
1028
1029
  .field-float .input[aria-invalid="true"] ~ .float-label {
1029
1030
  background: var(--color-surface);
1030
1031
  }
1032
+ // Above placement (floatingLabel="above"): the same slide, but the label comes to rest above
1033
+ // the box at the top-left, clear of the border, so it needs no mask. The shell reserves the
1034
+ // label's line above the box, so a floated label never overlaps what sits above the field.
1035
+ .field-float.wui-float-above {
1036
+ --wui-float-above-space: 22px;
1037
+ padding-top: var(--wui-float-above-space);
1038
+ }
1039
+ .field-float.wui-float-above .float-label {
1040
+ // Centred on the box, not the shell: the shell is the reserved line plus the box.
1041
+ top: calc(50% + var(--wui-float-above-space) / 2);
1042
+ background: transparent;
1043
+ transition:
1044
+ top 0.15s var(--wui-ease-ui),
1045
+ left 0.15s var(--wui-ease-ui),
1046
+ padding 0.15s var(--wui-ease-ui),
1047
+ transform 0.15s var(--wui-ease-ui),
1048
+ color 0.15s var(--wui-ease-ui);
1049
+ }
1050
+ .field-float.wui-float-above .input:focus ~ .float-label,
1051
+ .field-float.wui-float-above .input:not(:placeholder-shown) ~ .float-label {
1052
+ top: 0;
1053
+ left: 0;
1054
+ padding: 0;
1055
+ transform: scale(0.86);
1056
+ font-weight: 500;
1057
+ }
1058
+ .field-float.wui-float-above .input:not(:focus):not(:placeholder-shown):not(.error):not(.is-invalid) ~ .float-label {
1059
+ color: var(--color-text);
1060
+ }
1061
+ .field-float.wui-float-above .input ~ .float-label,
1062
+ .field-float.wui-float-above .input:focus ~ .float-label,
1063
+ .field-float.wui-float-above .input.error ~ .float-label,
1064
+ .field-float.wui-float-above .input.is-invalid ~ .float-label,
1065
+ .field-float.wui-float-above .input[aria-invalid="true"] ~ .float-label {
1066
+ background: transparent;
1067
+ }
1031
1068
  // Floating label for AppSelect — the trigger is a <button>, so there is no
1032
1069
  // :placeholder-shown to key off. :has() raises the label when the control is
1033
1070
  // focused/open, or once a value is chosen (the label span drops