domma-js 0.45.0 → 0.46.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.
@@ -1,9 +1,9 @@
1
1
  /*!
2
- * Domma Elements CSS v0.45.0
2
+ * Domma Elements CSS v0.46.0
3
3
  * Dynamic Object Manipulation & Modeling API
4
4
  * (c) 2026 Darryl Waterhouse & DCBW-IT
5
- * Built: 2026-09-27T17:59:46.838Z
6
- * Commit: 224c5a0
5
+ * Built: 2026-09-27T20:30:22.531Z
6
+ * Commit: 2e6a350
7
7
  */
8
8
 
9
9
  /**
@@ -1028,55 +1028,71 @@ textarea:not([class])::placeholder {
1028
1028
  min-width: 0;
1029
1029
  }
1030
1030
 
1031
- /* Icon-based input group (icon positioned inside input) */
1031
+ /* Addon input group (formConfig.prefix / suffix, E.inputGroup): an icon or
1032
+ * short text joined to the start or end of an input, Bootstrap-style. The
1033
+ * addon and the input share one border and one rounded outline; the addon is
1034
+ * as wide as what it holds, so "£", "kg" and "https://" all fit. */
1032
1035
  .input-group-icon {
1033
- position: relative;
1036
+ display: flex;
1037
+ align-items: stretch;
1034
1038
  width: 100%;
1039
+ min-width: 0;
1035
1040
  }
1036
1041
 
1037
1042
  .input-group-icon > .input-group-addon {
1038
- position: absolute;
1039
- top: 0;
1040
- bottom: 0;
1041
1043
  display: flex;
1044
+ flex: none;
1042
1045
  align-items: center;
1043
1046
  justify-content: center;
1047
+ gap: var(--dm-space-1);
1048
+ padding: 0 var(--dm-space-3);
1049
+ font-size: var(--dm-font-size-base);
1050
+ line-height: 1;
1051
+ white-space: nowrap;
1044
1052
  pointer-events: none;
1045
- z-index: 1;
1053
+ /* Full text colour: muted text on the tinted addon fell below 4.5:1 on the
1054
+ * mid-tone admin themes (validate:contrast). */
1046
1055
  color: var(--dm-text);
1047
- background-color: var(--dm-hover-bg);
1048
- padding: 0 var(--dm-space-3);
1056
+ background-color: color-mix(in srgb, var(--dm-text) 6%, var(--dm-surface, var(--dm-white)));
1057
+ border: 1px solid var(--dm-border, var(--dm-gray-300));
1058
+ transition: border-color var(--dm-transition-fast), color var(--dm-transition-fast);
1059
+ }
1060
+
1061
+ .input-group-icon > .input-group-addon [data-icon],
1062
+ .input-group-icon > .input-group-addon svg {
1063
+ width: 1.15em;
1064
+ height: 1.15em;
1049
1065
  }
1050
1066
 
1051
1067
  .input-group-icon > .input-group-addon-left {
1052
- left: 0;
1053
- border-right: 1px solid var(--dm-border, var(--dm-gray-300));
1054
- border-top-left-radius: var(--dm-radius-md);
1055
- border-bottom-left-radius: var(--dm-radius-md);
1068
+ border-right: 0;
1069
+ border-radius: var(--dm-radius-md) 0 0 var(--dm-radius-md);
1056
1070
  }
1057
1071
 
1058
1072
  .input-group-icon > .input-group-addon-right {
1059
- right: 0;
1060
- border-left: 1px solid var(--dm-border, var(--dm-gray-300));
1061
- border-top-right-radius: var(--dm-radius-md);
1062
- border-bottom-right-radius: var(--dm-radius-md);
1073
+ border-left: 0;
1074
+ border-radius: 0 var(--dm-radius-md) var(--dm-radius-md) 0;
1063
1075
  }
1064
1076
 
1065
- /* Dark theme variants */
1066
- [data-mode="dark"] .input-group-icon > .input-group-addon {
1067
- color: var(--dm-text-disabled);
1068
- background-color: var(--dm-surface);
1069
- border-color: var(--dm-text-secondary);
1077
+ .input-group-icon > .form-input,
1078
+ .input-group-icon > .form-select,
1079
+ .input-group-icon > .form-textarea,
1080
+ .input-group-icon > input,
1081
+ .input-group-icon > select,
1082
+ .input-group-icon > textarea {
1083
+ flex: 1 1 auto;
1084
+ width: 1%;
1085
+ min-width: 0;
1070
1086
  }
1071
1087
 
1072
- /* Adjust input padding when icon is present */
1073
1088
  .input-group-icon.has-addon-left > .form-input,
1074
1089
  .input-group-icon.has-addon-left > .form-select,
1075
1090
  .input-group-icon.has-addon-left > .form-textarea,
1076
1091
  .input-group-icon.has-addon-left > input,
1077
1092
  .input-group-icon.has-addon-left > select,
1078
1093
  .input-group-icon.has-addon-left > textarea {
1079
- padding-left: 3.5rem;
1094
+ border-top-left-radius: 0;
1095
+ border-bottom-left-radius: 0;
1080
1096
  }
1081
1097
 
1082
1098
  .input-group-icon.has-addon-right > .form-input,
@@ -1085,17 +1101,35 @@ textarea:not([class])::placeholder {
1085
1101
  .input-group-icon.has-addon-right > input,
1086
1102
  .input-group-icon.has-addon-right > select,
1087
1103
  .input-group-icon.has-addon-right > textarea {
1088
- padding-right: 3.5rem;
1104
+ border-top-right-radius: 0;
1105
+ border-bottom-right-radius: 0;
1106
+ }
1107
+
1108
+ /* The addon follows the input's own focus and error states, so the group
1109
+ * reads as one control: the focus ring goes round the whole group rather than
1110
+ * the input alone. */
1111
+ .input-group-icon:focus-within {
1112
+ border-radius: var(--dm-radius-md);
1113
+ box-shadow: 0 0 0 3px var(--dm-focus-ring);
1114
+ }
1115
+
1116
+ .input-group-icon > .form-input:focus,
1117
+ .input-group-icon > .form-select:focus,
1118
+ .input-group-icon > .form-textarea:focus,
1119
+ .input-group-icon > input:focus,
1120
+ .input-group-icon > select:focus,
1121
+ .input-group-icon > textarea:focus {
1122
+ box-shadow: none;
1089
1123
  }
1090
1124
 
1091
- .input-group-icon.has-addon-left.has-addon-right > .form-input,
1092
- .input-group-icon.has-addon-left.has-addon-right > .form-select,
1093
- .input-group-icon.has-addon-left.has-addon-right > .form-textarea,
1094
- .input-group-icon.has-addon-left.has-addon-right > input,
1095
- .input-group-icon.has-addon-left.has-addon-right > select,
1096
- .input-group-icon.has-addon-left.has-addon-right > textarea {
1097
- padding-left: 3.5rem;
1098
- padding-right: 3.5rem;
1125
+ .input-group-icon:focus-within > .input-group-addon {
1126
+ border-color: var(--dm-primary);
1127
+ color: var(--dm-primary);
1128
+ }
1129
+
1130
+ .input-group-icon:has(> .error) > .input-group-addon,
1131
+ .has-error .input-group-icon > .input-group-addon {
1132
+ border-color: var(--dm-danger);
1099
1133
  }
1100
1134
 
1101
1135
  /* Prepend/Append style (addon outside input) */
@@ -1,9 +1,9 @@
1
1
  /*!
2
- * Domma Grid CSS v0.45.0
2
+ * Domma Grid CSS v0.46.0
3
3
  * Dynamic Object Manipulation & Modeling API
4
4
  * (c) 2026 Darryl Waterhouse & DCBW-IT
5
- * Built: 2026-09-27T17:59:46.833Z
6
- * Commit: 224c5a0
5
+ * Built: 2026-09-27T20:30:22.527Z
6
+ * Commit: 2e6a350
7
7
  */
8
8
 
9
9
  /**
@@ -1,9 +1,9 @@
1
1
  /*!
2
- * Domma Syntax Highlighting CSS v0.45.0
2
+ * Domma Syntax Highlighting CSS v0.46.0
3
3
  * Dynamic Object Manipulation & Modeling API
4
4
  * (c) 2026 Darryl Waterhouse & DCBW-IT
5
- * Built: 2026-09-27T17:59:46.841Z
6
- * Commit: 224c5a0
5
+ * Built: 2026-09-27T20:30:22.535Z
6
+ * Commit: 2e6a350
7
7
  */
8
8
 
9
9
  /**
@@ -1,9 +1,9 @@
1
1
  /*!
2
- * Domma Themes v0.45.0
2
+ * Domma Themes v0.46.0
3
3
  * Dynamic Object Manipulation & Modeling API
4
4
  * (c) 2026 Darryl Waterhouse & DCBW-IT
5
- * Built: 2026-09-27T17:59:46.816Z
6
- * Commit: 224c5a0
5
+ * Built: 2026-09-27T20:30:22.510Z
6
+ * Commit: 2e6a350
7
7
  */
8
8
 
9
9
  /**