@indico-data/design-system 2.7.0 → 2.9.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.
Files changed (39) hide show
  1. package/lib/index.css +195 -19
  2. package/lib/index.d.ts +14 -2
  3. package/lib/index.esm.css +195 -19
  4. package/lib/index.esm.js +7 -2
  5. package/lib/index.esm.js.map +1 -1
  6. package/lib/index.js +7 -1
  7. package/lib/index.js.map +1 -1
  8. package/lib/src/components/forms/textarea/Textarea.d.ts +22 -0
  9. package/lib/src/components/forms/textarea/Textarea.stories.d.ts +11 -0
  10. package/lib/src/components/forms/textarea/__tests__/Textarea.test.d.ts +1 -0
  11. package/lib/src/components/forms/textarea/index.d.ts +1 -0
  12. package/lib/src/components/forms/toggle/Toggle.d.ts +12 -0
  13. package/lib/src/components/forms/toggle/Toggle.stories.d.ts +6 -0
  14. package/lib/src/components/forms/toggle/__tests__/Toggle.test.d.ts +1 -0
  15. package/lib/src/components/forms/toggle/index.d.ts +1 -0
  16. package/lib/src/components/index.d.ts +1 -0
  17. package/lib/src/index.d.ts +1 -0
  18. package/package.json +1 -1
  19. package/src/components/forms/checkbox/Checkbox.mdx +6 -1
  20. package/src/components/forms/checkbox/Checkbox.stories.tsx +10 -4
  21. package/src/components/forms/checkbox/Checkbox.tsx +1 -1
  22. package/src/components/forms/checkbox/styles/Checkbox.scss +16 -16
  23. package/src/components/forms/input/Input.stories.tsx +70 -64
  24. package/src/components/forms/input/styles/Input.scss +10 -3
  25. package/src/components/forms/textarea/Textarea.mdx +19 -0
  26. package/src/components/forms/textarea/Textarea.stories.tsx +363 -0
  27. package/src/components/forms/textarea/Textarea.tsx +85 -0
  28. package/src/components/forms/textarea/__tests__/Textarea.test.tsx +103 -0
  29. package/src/components/forms/textarea/index.ts +1 -0
  30. package/src/components/forms/textarea/styles/Textarea.scss +102 -0
  31. package/src/components/forms/toggle/Toggle.mdx +15 -0
  32. package/src/components/forms/toggle/Toggle.stories.tsx +126 -0
  33. package/src/components/forms/toggle/Toggle.tsx +51 -0
  34. package/src/components/forms/toggle/__tests__/Toggle.test.tsx +19 -0
  35. package/src/components/forms/toggle/index.ts +1 -0
  36. package/src/components/forms/toggle/styles/Toggle.scss +72 -0
  37. package/src/components/index.ts +1 -0
  38. package/src/index.ts +1 -0
  39. package/src/styles/index.scss +2 -0
package/lib/index.css CHANGED
@@ -870,6 +870,10 @@
870
870
  --pf-input-text-color: var(--pf-gray-color);
871
871
  --pf-input-placeholder-text-color: var(--pf-gray-color-300);
872
872
  --pf-input-help-text-color: var(--pf-gray-color-400);
873
+ --pf-input-disabled-background-color: var(--pf-gray-color-100);
874
+ --pf-input-border-color: var(--pf-gray-color);
875
+ --pf-input-disabled-color: var(--pf-gray-color-400);
876
+ --pf-input-border-color: var(--pf-gray-color);
873
877
  --pf-input-rounded: var(--pf-rounded);
874
878
  }
875
879
 
@@ -879,6 +883,9 @@
879
883
  --pf-input-text-color: var(--pf-gray-color-100);
880
884
  --pf-input-placeholder-text-color: var(--pf-gray-color);
881
885
  --pf-input-help-text-color: var(--pf-gray-color-200);
886
+ --pf-input-disabled-background-color: var(--pf-primary-color-200);
887
+ --pf-input-disabled-border-color: var(--pf-gray-color-300);
888
+ --pf-input-disabled-color: var(--pf-gray-color-400);
882
889
  }
883
890
 
884
891
  .input {
@@ -913,9 +920,9 @@
913
920
  border-color: var(--pf-info-color);
914
921
  }
915
922
  .input:disabled {
916
- background-color: var(--pf-gray-color-100);
917
- border-color: var(--pf-gray-color-300);
918
- color: var(--pf-gray-color-400);
923
+ background-color: var(--pf-input-disabled-background-color);
924
+ border-color: var(--pf-input-disabled-border-color);
925
+ color: var(--pf-input-disabled-color);
919
926
  }
920
927
  .input--has-icon {
921
928
  padding-left: var(--pf-padding-7);
@@ -1064,7 +1071,7 @@
1064
1071
  }
1065
1072
 
1066
1073
  :root [data-theme=dark] {
1067
- --pf-checkbox-background-color: transparent;
1074
+ --pf-checkbox-background-color: var(--pf-primary-color-200);
1068
1075
  --pf-checkbox-check-color: var(--pf-white-color);
1069
1076
  --pf-checkbox-border-color: var(--pf-white-color);
1070
1077
  --pf-checkbox-disabled-color: var(--pf-gray-color-300);
@@ -1083,21 +1090,21 @@
1083
1090
  .form-control .checkbox-input-label {
1084
1091
  cursor: pointer;
1085
1092
  }
1086
- .form-control [type=checkbox]:checked,
1087
- .form-control [type=checkbox]:not(:checked) {
1093
+ .form-control .checkbox-input:checked,
1094
+ .form-control .checkbox-input:not(:checked) {
1088
1095
  position: absolute;
1089
1096
  left: -9999px;
1090
1097
  }
1091
- .form-control [type=checkbox]:checked + label,
1092
- .form-control [type=checkbox]:not(:checked) + label {
1098
+ .form-control .checkbox-input:checked + label,
1099
+ .form-control .checkbox-input:not(:checked) + label {
1093
1100
  position: relative;
1094
1101
  padding-left: var(--pf-padding-7);
1095
1102
  cursor: pointer;
1096
1103
  line-height: 20px;
1097
1104
  display: inline-block;
1098
1105
  }
1099
- .form-control [type=checkbox]:checked + label:before,
1100
- .form-control [type=checkbox]:not(:checked) + label:before {
1106
+ .form-control .checkbox-input:checked + label:before,
1107
+ .form-control .checkbox-input:not(:checked) + label:before {
1101
1108
  content: "";
1102
1109
  position: absolute;
1103
1110
  left: 0;
@@ -1108,8 +1115,8 @@
1108
1115
  border-radius: var(--pf-rounded);
1109
1116
  background: var(--pf-checkbox-background-color);
1110
1117
  }
1111
- .form-control [type=checkbox]:checked + label:after,
1112
- .form-control [type=checkbox]:not(:checked) + label:after {
1118
+ .form-control .checkbox-input:checked + label:after,
1119
+ .form-control .checkbox-input:not(:checked) + label:after {
1113
1120
  content: "";
1114
1121
  width: 12px;
1115
1122
  height: 12px;
@@ -1120,29 +1127,198 @@
1120
1127
  border-radius: var(--pf-rounded);
1121
1128
  transition: all 0.2s ease;
1122
1129
  }
1123
- .form-control [type=checkbox]:not(:checked) + label:after {
1130
+ .form-control .checkbox-input:not(:checked) + label:after {
1124
1131
  opacity: 0;
1125
1132
  transform: scale(0);
1126
1133
  }
1127
- .form-control [type=checkbox]:checked + label:after {
1134
+ .form-control .checkbox-input:checked + label:after {
1128
1135
  opacity: 1;
1129
1136
  transform: scale(1);
1130
1137
  }
1131
- .form-control [type=checkbox]:disabled,
1132
- .form-control [type=checkbox]:disabled + label {
1138
+ .form-control .checkbox-input:disabled,
1139
+ .form-control .checkbox-input:disabled + label {
1133
1140
  cursor: not-allowed;
1134
1141
  }
1135
- .form-control [type=checkbox]:disabled + label {
1142
+ .form-control .checkbox-input:disabled + label {
1136
1143
  color: var(--pf-checkbox-disabled-color);
1137
1144
  opacity: 0.5;
1138
1145
  }
1139
- .form-control [type=checkbox]:disabled + label:before {
1146
+ .form-control .checkbox-input:disabled + label:before {
1140
1147
  border-color: var(--pf-checkbox-disabled-color);
1141
1148
  }
1142
- .form-control [type=checkbox]:disabled + label:after {
1149
+ .form-control .checkbox-input:disabled + label:after {
1143
1150
  background: var(--pf-checkbox-disabled-color);
1144
1151
  }
1145
1152
 
1153
+ :root,
1154
+ :root [data-theme=light],
1155
+ :root [data-theme=dark] {
1156
+ --pf-textarea-background-color: var(--pf-white-color);
1157
+ --pf-textarea-border-color: var(--pf-gray-color);
1158
+ --pf-textarea-text-color: var(--pf-gray-color);
1159
+ --pf-textarea-placeholder-text-color: var(--pf-gray-color-300);
1160
+ --pf-textarea-help-text-color: var(--pf-gray-color-400);
1161
+ --pf-textarea-disabled-background-color: var(--pf-gray-color-100);
1162
+ --pf-textarea-border-color: var(--pf-gray-color);
1163
+ --pf-textarea-disabled-color: var(--pf-gray-color-400);
1164
+ --pf-textarea-rounded: var(--pf-rounded);
1165
+ }
1166
+
1167
+ :root [data-theme=dark] {
1168
+ --pf-textarea-background-color: var(--pf-primary-color);
1169
+ --pf-textarea-border-color: var(--pf-gray-color-100);
1170
+ --pf-textarea-text-color: var(--pf-gray-color-100);
1171
+ --pf-textarea-placeholder-text-color: var(--pf-gray-color);
1172
+ --pf-textarea-help-text-color: var(--pf-gray-color-200);
1173
+ --pf-textarea-disabled-background-color: var(--pf-primary-color-200);
1174
+ --pf-textarea-disabled-border-color: var(--pf-gray-color-300);
1175
+ --pf-textarea-disabled-color: var(--pf-gray-color-400);
1176
+ }
1177
+
1178
+ .textarea {
1179
+ background-color: var(--pf-textarea-background-color);
1180
+ border: 1px solid var(--pf-textarea-border-color);
1181
+ border-radius: var(--pf-textarea-rounded);
1182
+ color: var(--pf-textarea-text-color);
1183
+ padding: 10px;
1184
+ width: 100%;
1185
+ box-sizing: border-box;
1186
+ }
1187
+ .textarea::-moz-placeholder {
1188
+ color: var(--pf-textarea-placeholder-text-color);
1189
+ }
1190
+ .textarea::placeholder {
1191
+ color: var(--pf-textarea-placeholder-text-color);
1192
+ }
1193
+ .textarea:focus {
1194
+ border-color: var(--pf-primary-color);
1195
+ }
1196
+ .textarea.error {
1197
+ border-color: var(--pf-error-color);
1198
+ }
1199
+ .textarea.success {
1200
+ border-color: var(--pf-success-color);
1201
+ }
1202
+ .textarea.warning {
1203
+ border-color: var(--pf-warning-color);
1204
+ }
1205
+ .textarea.info {
1206
+ border-color: var(--pf-info-color);
1207
+ }
1208
+ .textarea:disabled {
1209
+ background-color: var(--pf-textarea-disabled-background-color);
1210
+ border-color: var(--pf-textarea-disabled-border-color);
1211
+ color: var(--pf-textarea-disabled-color);
1212
+ }
1213
+ .textarea--has-icon {
1214
+ padding-left: var(--pf-padding-7);
1215
+ }
1216
+
1217
+ .form-control .error-list {
1218
+ list-style: none;
1219
+ padding: 0;
1220
+ margin: 0;
1221
+ margin-top: var(--pf-margin-2);
1222
+ margin-bottom: var(--pf-margin-2);
1223
+ color: var(--pf-error-color);
1224
+ }
1225
+ .form-control .help-text {
1226
+ margin-top: var(--pf-margin-2);
1227
+ margin-bottom: var(--pf-margin-2);
1228
+ color: var(--pf-textarea-help-text-color);
1229
+ font-size: var(--pf-font-size-subtitle2);
1230
+ }
1231
+ .form-control .is-visually-hidden {
1232
+ position: absolute;
1233
+ width: 1px;
1234
+ height: 1px;
1235
+ padding: 0;
1236
+ margin: -1px;
1237
+ overflow: hidden;
1238
+ clip: rect(0, 0, 0, 0);
1239
+ white-space: nowrap;
1240
+ border: 0;
1241
+ }
1242
+ .form-control .form-label {
1243
+ margin-bottom: var(--pf-margin-2);
1244
+ }
1245
+
1246
+ :root,
1247
+ :root [data-theme=light],
1248
+ :root [data-theme=dark] {
1249
+ --pf-toggle-background-color: var(--pf-gray-color-200);
1250
+ --pf-toggle-circle-color: var(--pf-primary-color);
1251
+ --pf-toggle-border-color: var(--pf-gray-color);
1252
+ --pf-toggle-disabled-background-color: var(--pf-gray-color-400);
1253
+ --pf-toggle-disabled-circle-color: var(--pf-gray-color-300);
1254
+ --pf-toggle-checked-background-color: var(--pf-primary-color-200);
1255
+ }
1256
+
1257
+ :root [data-theme=dark] {
1258
+ --pf-toggle-background-color: var(--pf-primary-color-100);
1259
+ --pf-toggle-circle-color: var(--pf-white-color);
1260
+ --pf-toggle-border-color: var(--pf-white-color);
1261
+ --pf-toggle-disabled-background-color: var(--pf-gray-color-600);
1262
+ --pf-toggle-disabled-circle-color: var(--pf-gray-color-900);
1263
+ --pf-toggle-checked-background-color: var(--pf-secondary-color-400);
1264
+ }
1265
+
1266
+ .switch {
1267
+ position: relative;
1268
+ display: inline-block;
1269
+ width: 40px;
1270
+ height: 20px;
1271
+ background-color: var(--pf-toggle-background-color);
1272
+ border-radius: 20px;
1273
+ transition: all 0.3s;
1274
+ cursor: pointer;
1275
+ }
1276
+
1277
+ .switch::after {
1278
+ content: "";
1279
+ position: absolute;
1280
+ width: 18px;
1281
+ height: 18px;
1282
+ border-radius: 50%;
1283
+ background-color: var(--pf-toggle-circle-color);
1284
+ top: 1px;
1285
+ left: 1px;
1286
+ transition: all 0.3s;
1287
+ }
1288
+
1289
+ .toggle-input:checked + label.switch::after {
1290
+ left: 20px;
1291
+ }
1292
+
1293
+ .toggle-input:checked + label.switch {
1294
+ background-color: var(--pf-toggle-checked-background-color);
1295
+ }
1296
+
1297
+ .toggle-input:checked,
1298
+ .toggle-input:not(:checked) {
1299
+ position: absolute;
1300
+ left: -9999px;
1301
+ }
1302
+
1303
+ .toggle-input:disabled + label.switch {
1304
+ background-color: var(--pf-toggle-disabled-background-color);
1305
+ cursor: not-allowed;
1306
+ }
1307
+
1308
+ .toggle-input:disabled + label.switch::after {
1309
+ background-color: var(--pf-toggle-disabled-circle-color);
1310
+ }
1311
+
1312
+ .toggle-wrapper {
1313
+ display: flex;
1314
+ align-items: center;
1315
+ }
1316
+
1317
+ .toggle-label {
1318
+ cursor: pointer;
1319
+ margin-left: var(--pf-margin-2);
1320
+ }
1321
+
1146
1322
  :root {
1147
1323
  --pf-font-family-base: "Mulish", sans-serif;
1148
1324
  --pf-font-size-base: 1rem;
package/lib/index.d.ts CHANGED
@@ -758,7 +758,7 @@ type Props$1 = {
758
758
  checkedIconName?: IconName$1;
759
759
  notCheckedIconName?: IconName$1;
760
760
  } & PermafrostComponent$1;
761
- declare const Toggle: (props: Props$1) => react_jsx_runtime.JSX.Element;
761
+ declare const Toggle$1: (props: Props$1) => react_jsx_runtime.JSX.Element;
762
762
 
763
763
  type Props = PermafrostComponent$1 & {
764
764
  questionMark?: boolean;
@@ -962,4 +962,16 @@ interface CheckboxProps {
962
962
  }
963
963
  declare const Checkbox: ({ ref, id, label, name, value, onChange, isDisabled, isChecked, ...rest }: CheckboxProps) => react_jsx_runtime.JSX.Element;
964
964
 
965
- export { animation as ANIMATION, Radio$1 as AbstractRadio, RadioGroup as AbstractRadioGroup, Accordion, breakpoints as BREAKPOINT, BarSpinner, BorderSelect, Button, allColors as COLORS, Checkbox, CirclePulse, CircleSpinner, Col, ConfirmModal, Container, DatePicker, EditableInput, GlobalStyles, Icon, IconButton, Input, Button$1 as LegacyButton, ListTable, LoadingAwareContainer, LoadingList, margin as MARGINS, MATH, mediaQueries as MEDIA_QUERIES, ModalBase, MultiCombobox, NoInputDatePicker, NumberInput, padding as PADDINGS, Pagination, PercentageRing, Radio$2 as Radio, RadioGroup$1 as RadioGroup, Radio as RadioInput, RandomLoadingMessage, Row, spacings as SPACING, SearchInput, Section, SectionBlock, SectionBody, SectionHeader, SectionTable, Select, Shrug, SingleCombobox, typography as TYPOGRAPHY, Table, TextInput, TextTruncate, Toggle, Tooltip, color as colorUtils, number as numberUtils, string as stringUtils };
965
+ interface ToggleProps {
966
+ ref?: React$1.LegacyRef<HTMLInputElement>;
967
+ id: string;
968
+ label?: string;
969
+ name: string;
970
+ value?: string;
971
+ onChange: (e: React$1.ChangeEvent<HTMLInputElement>) => void;
972
+ isDisabled?: boolean;
973
+ isChecked?: boolean;
974
+ }
975
+ declare const Toggle: ({ ref, id, label, name, value, onChange, isDisabled, isChecked, ...rest }: ToggleProps) => react_jsx_runtime.JSX.Element;
976
+
977
+ export { animation as ANIMATION, Radio$1 as AbstractRadio, RadioGroup as AbstractRadioGroup, Accordion, breakpoints as BREAKPOINT, BarSpinner, BorderSelect, Button, allColors as COLORS, Checkbox, CirclePulse, CircleSpinner, Col, ConfirmModal, Container, DatePicker, EditableInput, GlobalStyles, Icon, IconButton, Input, Button$1 as LegacyButton, ListTable, LoadingAwareContainer, LoadingList, margin as MARGINS, MATH, mediaQueries as MEDIA_QUERIES, ModalBase, MultiCombobox, NoInputDatePicker, NumberInput, padding as PADDINGS, Pagination, PercentageRing, Radio$2 as Radio, RadioGroup$1 as RadioGroup, Radio as RadioInput, RandomLoadingMessage, Row, spacings as SPACING, SearchInput, Section, SectionBlock, SectionBody, SectionHeader, SectionTable, Select, Shrug, SingleCombobox, typography as TYPOGRAPHY, Table, TextInput, TextTruncate, Toggle$1 as Toggle, Toggle as ToggleInput, Tooltip, color as colorUtils, number as numberUtils, string as stringUtils };
package/lib/index.esm.css CHANGED
@@ -870,6 +870,10 @@
870
870
  --pf-input-text-color: var(--pf-gray-color);
871
871
  --pf-input-placeholder-text-color: var(--pf-gray-color-300);
872
872
  --pf-input-help-text-color: var(--pf-gray-color-400);
873
+ --pf-input-disabled-background-color: var(--pf-gray-color-100);
874
+ --pf-input-border-color: var(--pf-gray-color);
875
+ --pf-input-disabled-color: var(--pf-gray-color-400);
876
+ --pf-input-border-color: var(--pf-gray-color);
873
877
  --pf-input-rounded: var(--pf-rounded);
874
878
  }
875
879
 
@@ -879,6 +883,9 @@
879
883
  --pf-input-text-color: var(--pf-gray-color-100);
880
884
  --pf-input-placeholder-text-color: var(--pf-gray-color);
881
885
  --pf-input-help-text-color: var(--pf-gray-color-200);
886
+ --pf-input-disabled-background-color: var(--pf-primary-color-200);
887
+ --pf-input-disabled-border-color: var(--pf-gray-color-300);
888
+ --pf-input-disabled-color: var(--pf-gray-color-400);
882
889
  }
883
890
 
884
891
  .input {
@@ -913,9 +920,9 @@
913
920
  border-color: var(--pf-info-color);
914
921
  }
915
922
  .input:disabled {
916
- background-color: var(--pf-gray-color-100);
917
- border-color: var(--pf-gray-color-300);
918
- color: var(--pf-gray-color-400);
923
+ background-color: var(--pf-input-disabled-background-color);
924
+ border-color: var(--pf-input-disabled-border-color);
925
+ color: var(--pf-input-disabled-color);
919
926
  }
920
927
  .input--has-icon {
921
928
  padding-left: var(--pf-padding-7);
@@ -1064,7 +1071,7 @@
1064
1071
  }
1065
1072
 
1066
1073
  :root [data-theme=dark] {
1067
- --pf-checkbox-background-color: transparent;
1074
+ --pf-checkbox-background-color: var(--pf-primary-color-200);
1068
1075
  --pf-checkbox-check-color: var(--pf-white-color);
1069
1076
  --pf-checkbox-border-color: var(--pf-white-color);
1070
1077
  --pf-checkbox-disabled-color: var(--pf-gray-color-300);
@@ -1083,21 +1090,21 @@
1083
1090
  .form-control .checkbox-input-label {
1084
1091
  cursor: pointer;
1085
1092
  }
1086
- .form-control [type=checkbox]:checked,
1087
- .form-control [type=checkbox]:not(:checked) {
1093
+ .form-control .checkbox-input:checked,
1094
+ .form-control .checkbox-input:not(:checked) {
1088
1095
  position: absolute;
1089
1096
  left: -9999px;
1090
1097
  }
1091
- .form-control [type=checkbox]:checked + label,
1092
- .form-control [type=checkbox]:not(:checked) + label {
1098
+ .form-control .checkbox-input:checked + label,
1099
+ .form-control .checkbox-input:not(:checked) + label {
1093
1100
  position: relative;
1094
1101
  padding-left: var(--pf-padding-7);
1095
1102
  cursor: pointer;
1096
1103
  line-height: 20px;
1097
1104
  display: inline-block;
1098
1105
  }
1099
- .form-control [type=checkbox]:checked + label:before,
1100
- .form-control [type=checkbox]:not(:checked) + label:before {
1106
+ .form-control .checkbox-input:checked + label:before,
1107
+ .form-control .checkbox-input:not(:checked) + label:before {
1101
1108
  content: "";
1102
1109
  position: absolute;
1103
1110
  left: 0;
@@ -1108,8 +1115,8 @@
1108
1115
  border-radius: var(--pf-rounded);
1109
1116
  background: var(--pf-checkbox-background-color);
1110
1117
  }
1111
- .form-control [type=checkbox]:checked + label:after,
1112
- .form-control [type=checkbox]:not(:checked) + label:after {
1118
+ .form-control .checkbox-input:checked + label:after,
1119
+ .form-control .checkbox-input:not(:checked) + label:after {
1113
1120
  content: "";
1114
1121
  width: 12px;
1115
1122
  height: 12px;
@@ -1120,29 +1127,198 @@
1120
1127
  border-radius: var(--pf-rounded);
1121
1128
  transition: all 0.2s ease;
1122
1129
  }
1123
- .form-control [type=checkbox]:not(:checked) + label:after {
1130
+ .form-control .checkbox-input:not(:checked) + label:after {
1124
1131
  opacity: 0;
1125
1132
  transform: scale(0);
1126
1133
  }
1127
- .form-control [type=checkbox]:checked + label:after {
1134
+ .form-control .checkbox-input:checked + label:after {
1128
1135
  opacity: 1;
1129
1136
  transform: scale(1);
1130
1137
  }
1131
- .form-control [type=checkbox]:disabled,
1132
- .form-control [type=checkbox]:disabled + label {
1138
+ .form-control .checkbox-input:disabled,
1139
+ .form-control .checkbox-input:disabled + label {
1133
1140
  cursor: not-allowed;
1134
1141
  }
1135
- .form-control [type=checkbox]:disabled + label {
1142
+ .form-control .checkbox-input:disabled + label {
1136
1143
  color: var(--pf-checkbox-disabled-color);
1137
1144
  opacity: 0.5;
1138
1145
  }
1139
- .form-control [type=checkbox]:disabled + label:before {
1146
+ .form-control .checkbox-input:disabled + label:before {
1140
1147
  border-color: var(--pf-checkbox-disabled-color);
1141
1148
  }
1142
- .form-control [type=checkbox]:disabled + label:after {
1149
+ .form-control .checkbox-input:disabled + label:after {
1143
1150
  background: var(--pf-checkbox-disabled-color);
1144
1151
  }
1145
1152
 
1153
+ :root,
1154
+ :root [data-theme=light],
1155
+ :root [data-theme=dark] {
1156
+ --pf-textarea-background-color: var(--pf-white-color);
1157
+ --pf-textarea-border-color: var(--pf-gray-color);
1158
+ --pf-textarea-text-color: var(--pf-gray-color);
1159
+ --pf-textarea-placeholder-text-color: var(--pf-gray-color-300);
1160
+ --pf-textarea-help-text-color: var(--pf-gray-color-400);
1161
+ --pf-textarea-disabled-background-color: var(--pf-gray-color-100);
1162
+ --pf-textarea-border-color: var(--pf-gray-color);
1163
+ --pf-textarea-disabled-color: var(--pf-gray-color-400);
1164
+ --pf-textarea-rounded: var(--pf-rounded);
1165
+ }
1166
+
1167
+ :root [data-theme=dark] {
1168
+ --pf-textarea-background-color: var(--pf-primary-color);
1169
+ --pf-textarea-border-color: var(--pf-gray-color-100);
1170
+ --pf-textarea-text-color: var(--pf-gray-color-100);
1171
+ --pf-textarea-placeholder-text-color: var(--pf-gray-color);
1172
+ --pf-textarea-help-text-color: var(--pf-gray-color-200);
1173
+ --pf-textarea-disabled-background-color: var(--pf-primary-color-200);
1174
+ --pf-textarea-disabled-border-color: var(--pf-gray-color-300);
1175
+ --pf-textarea-disabled-color: var(--pf-gray-color-400);
1176
+ }
1177
+
1178
+ .textarea {
1179
+ background-color: var(--pf-textarea-background-color);
1180
+ border: 1px solid var(--pf-textarea-border-color);
1181
+ border-radius: var(--pf-textarea-rounded);
1182
+ color: var(--pf-textarea-text-color);
1183
+ padding: 10px;
1184
+ width: 100%;
1185
+ box-sizing: border-box;
1186
+ }
1187
+ .textarea::-moz-placeholder {
1188
+ color: var(--pf-textarea-placeholder-text-color);
1189
+ }
1190
+ .textarea::placeholder {
1191
+ color: var(--pf-textarea-placeholder-text-color);
1192
+ }
1193
+ .textarea:focus {
1194
+ border-color: var(--pf-primary-color);
1195
+ }
1196
+ .textarea.error {
1197
+ border-color: var(--pf-error-color);
1198
+ }
1199
+ .textarea.success {
1200
+ border-color: var(--pf-success-color);
1201
+ }
1202
+ .textarea.warning {
1203
+ border-color: var(--pf-warning-color);
1204
+ }
1205
+ .textarea.info {
1206
+ border-color: var(--pf-info-color);
1207
+ }
1208
+ .textarea:disabled {
1209
+ background-color: var(--pf-textarea-disabled-background-color);
1210
+ border-color: var(--pf-textarea-disabled-border-color);
1211
+ color: var(--pf-textarea-disabled-color);
1212
+ }
1213
+ .textarea--has-icon {
1214
+ padding-left: var(--pf-padding-7);
1215
+ }
1216
+
1217
+ .form-control .error-list {
1218
+ list-style: none;
1219
+ padding: 0;
1220
+ margin: 0;
1221
+ margin-top: var(--pf-margin-2);
1222
+ margin-bottom: var(--pf-margin-2);
1223
+ color: var(--pf-error-color);
1224
+ }
1225
+ .form-control .help-text {
1226
+ margin-top: var(--pf-margin-2);
1227
+ margin-bottom: var(--pf-margin-2);
1228
+ color: var(--pf-textarea-help-text-color);
1229
+ font-size: var(--pf-font-size-subtitle2);
1230
+ }
1231
+ .form-control .is-visually-hidden {
1232
+ position: absolute;
1233
+ width: 1px;
1234
+ height: 1px;
1235
+ padding: 0;
1236
+ margin: -1px;
1237
+ overflow: hidden;
1238
+ clip: rect(0, 0, 0, 0);
1239
+ white-space: nowrap;
1240
+ border: 0;
1241
+ }
1242
+ .form-control .form-label {
1243
+ margin-bottom: var(--pf-margin-2);
1244
+ }
1245
+
1246
+ :root,
1247
+ :root [data-theme=light],
1248
+ :root [data-theme=dark] {
1249
+ --pf-toggle-background-color: var(--pf-gray-color-200);
1250
+ --pf-toggle-circle-color: var(--pf-primary-color);
1251
+ --pf-toggle-border-color: var(--pf-gray-color);
1252
+ --pf-toggle-disabled-background-color: var(--pf-gray-color-400);
1253
+ --pf-toggle-disabled-circle-color: var(--pf-gray-color-300);
1254
+ --pf-toggle-checked-background-color: var(--pf-primary-color-200);
1255
+ }
1256
+
1257
+ :root [data-theme=dark] {
1258
+ --pf-toggle-background-color: var(--pf-primary-color-100);
1259
+ --pf-toggle-circle-color: var(--pf-white-color);
1260
+ --pf-toggle-border-color: var(--pf-white-color);
1261
+ --pf-toggle-disabled-background-color: var(--pf-gray-color-600);
1262
+ --pf-toggle-disabled-circle-color: var(--pf-gray-color-900);
1263
+ --pf-toggle-checked-background-color: var(--pf-secondary-color-400);
1264
+ }
1265
+
1266
+ .switch {
1267
+ position: relative;
1268
+ display: inline-block;
1269
+ width: 40px;
1270
+ height: 20px;
1271
+ background-color: var(--pf-toggle-background-color);
1272
+ border-radius: 20px;
1273
+ transition: all 0.3s;
1274
+ cursor: pointer;
1275
+ }
1276
+
1277
+ .switch::after {
1278
+ content: "";
1279
+ position: absolute;
1280
+ width: 18px;
1281
+ height: 18px;
1282
+ border-radius: 50%;
1283
+ background-color: var(--pf-toggle-circle-color);
1284
+ top: 1px;
1285
+ left: 1px;
1286
+ transition: all 0.3s;
1287
+ }
1288
+
1289
+ .toggle-input:checked + label.switch::after {
1290
+ left: 20px;
1291
+ }
1292
+
1293
+ .toggle-input:checked + label.switch {
1294
+ background-color: var(--pf-toggle-checked-background-color);
1295
+ }
1296
+
1297
+ .toggle-input:checked,
1298
+ .toggle-input:not(:checked) {
1299
+ position: absolute;
1300
+ left: -9999px;
1301
+ }
1302
+
1303
+ .toggle-input:disabled + label.switch {
1304
+ background-color: var(--pf-toggle-disabled-background-color);
1305
+ cursor: not-allowed;
1306
+ }
1307
+
1308
+ .toggle-input:disabled + label.switch::after {
1309
+ background-color: var(--pf-toggle-disabled-circle-color);
1310
+ }
1311
+
1312
+ .toggle-wrapper {
1313
+ display: flex;
1314
+ align-items: center;
1315
+ }
1316
+
1317
+ .toggle-label {
1318
+ cursor: pointer;
1319
+ margin-left: var(--pf-margin-2);
1320
+ }
1321
+
1146
1322
  :root {
1147
1323
  --pf-font-family-base: "Mulish", sans-serif;
1148
1324
  --pf-font-size-base: 1rem;
package/lib/index.esm.js CHANGED
@@ -18656,7 +18656,12 @@ const Radio$2 = (_a) => {
18656
18656
 
18657
18657
  const Checkbox = (_a) => {
18658
18658
  var { ref, id, label, name, value, onChange, isDisabled, isChecked = false } = _a, rest = __rest$1(_a, ["ref", "id", "label", "name", "value", "onChange", "isDisabled", "isChecked"]);
18659
- return (jsx("div", { className: "form-control", children: jsxs("div", { className: "checkbox-wrapper", children: [jsx("input", Object.assign({ "data-testid": `form-checkbox-input-${name}` }, rest, { className: "checkbox-input", type: "checkbox", id: id, checked: isChecked, name: name, value: value, disabled: isDisabled, ref: ref, onChange: onChange, tabIndex: 0, "aria-describedby": id, "aria-label": label })), jsx("label", { htmlFor: id, className: "checkbox-input-label", "data-testid": `label-checkbox-input-${name}`, children: label })] }) }));
18659
+ return (jsx("div", { className: "form-control", children: jsxs("div", { className: "checkbox-wrapper", children: [jsx("input", Object.assign({ "data-testid": `form-checkbox-input-${name}`, className: "checkbox-input", type: "checkbox", id: id, checked: isChecked, name: name, value: value, disabled: isDisabled, ref: ref, onChange: onChange, tabIndex: 0, "aria-describedby": id, "aria-label": label }, rest)), jsx("label", { htmlFor: id, className: "checkbox-input-label", "data-testid": `label-checkbox-input-${name}`, children: label })] }) }));
18660
+ };
18661
+
18662
+ const Toggle$1 = (_a) => {
18663
+ var { ref, id, label, name, value, onChange, isDisabled, isChecked } = _a, rest = __rest$1(_a, ["ref", "id", "label", "name", "value", "onChange", "isDisabled", "isChecked"]);
18664
+ return (jsx("div", { className: "form-control", children: jsxs("div", { className: "toggle-wrapper", children: [jsx("input", Object.assign({ "data-testid": `form-toggle-input-${name}`, className: "toggle-input", type: "checkbox", id: id, checked: isChecked, name: name, value: value, disabled: isDisabled, ref: ref, onChange: onChange, tabIndex: 0, "aria-describedby": id, "aria-label": label }, rest)), jsx("label", { htmlFor: id, className: "switch" }), jsx("label", { className: 'toggle-label', htmlFor: id, children: label })] }) }));
18660
18665
  };
18661
18666
 
18662
18667
  const StyledAccordion = styled.details `
@@ -41480,5 +41485,5 @@ const Tooltip = (props) => {
41480
41485
  openOnClick: props.clickToShow, id: props.for, delayShow: props.delayShow, delayHide: props.delayHide, children: props.children })] }));
41481
41486
  };
41482
41487
 
41483
- export { animation as ANIMATION, Radio$1 as AbstractRadio, RadioGroup$1 as AbstractRadioGroup, Accordion, breakpoints as BREAKPOINT, BarSpinner, BorderSelect, Button$2 as Button, allColors as COLORS, Checkbox, CirclePulse, CircleSpinner, Col, ConfirmModal, Container, DatePicker, EditableInput, GlobalStyles, Icon, IconButton, Input, Button$1 as LegacyButton, ListTable, LoadingAwareContainer, LoadingList, margin as MARGINS, MATH, mediaQueries as MEDIA_QUERIES, ModalBase, MultiCombobox, NoInputDatePicker, NumberInput, padding as PADDINGS, Pagination, PercentageRing, Radio, RadioGroup, Radio$2 as RadioInput, RandomLoadingMessage, Row$1 as Row, spacings as SPACING, SearchInput, Section, SectionBlock, SectionBody, SectionHeader, SectionTable, Select, Shrug, SingleCombobox, typography as TYPOGRAPHY, Table$1 as Table, TextInput, TextTruncate, Toggle, Tooltip, color as colorUtils, number as numberUtils, string as stringUtils };
41488
+ export { animation as ANIMATION, Radio$1 as AbstractRadio, RadioGroup$1 as AbstractRadioGroup, Accordion, breakpoints as BREAKPOINT, BarSpinner, BorderSelect, Button$2 as Button, allColors as COLORS, Checkbox, CirclePulse, CircleSpinner, Col, ConfirmModal, Container, DatePicker, EditableInput, GlobalStyles, Icon, IconButton, Input, Button$1 as LegacyButton, ListTable, LoadingAwareContainer, LoadingList, margin as MARGINS, MATH, mediaQueries as MEDIA_QUERIES, ModalBase, MultiCombobox, NoInputDatePicker, NumberInput, padding as PADDINGS, Pagination, PercentageRing, Radio, RadioGroup, Radio$2 as RadioInput, RandomLoadingMessage, Row$1 as Row, spacings as SPACING, SearchInput, Section, SectionBlock, SectionBody, SectionHeader, SectionTable, Select, Shrug, SingleCombobox, typography as TYPOGRAPHY, Table$1 as Table, TextInput, TextTruncate, Toggle, Toggle$1 as ToggleInput, Tooltip, color as colorUtils, number as numberUtils, string as stringUtils };
41484
41489
  //# sourceMappingURL=index.esm.js.map