@digdir/designsystemet-react 0.54.0 → 0.55.1-alpha.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,4 +1,4 @@
1
1
  'use client';
2
- var classes = {"chip":"fds-chip-chip-4563db0f","chipButton":"fds-chip-chipButton-4563db0f","label":"fds-chip-label-4563db0f","removable":"fds-chip-removable-4563db0f","xMark":"fds-chip-xMark-4563db0f","small":"fds-chip-small-4563db0f","medium":"fds-chip-medium-4563db0f","large":"fds-chip-large-4563db0f","icon":"fds-chip-icon-4563db0f","spacing":"fds-chip-spacing-4563db0f","checkmarkIcon":"fds-chip-checkmarkIcon-4563db0f","groupContainer":"fds-chip-groupContainer-4563db0f"};
2
+ var classes = {"chip":"fds-chip-chip-4563db0f","chipButton":"fds-chip-chipButton-4563db0f","label":"fds-chip-label-4563db0f","removable":"fds-chip-removable-4563db0f","xMark":"fds-chip-xMark-4563db0f","icon":"fds-chip-icon-4563db0f","spacing":"fds-chip-spacing-4563db0f","small":"fds-chip-small-4563db0f","checkmarkIcon":"fds-chip-checkmarkIcon-4563db0f","medium":"fds-chip-medium-4563db0f","large":"fds-chip-large-4563db0f","groupContainer":"fds-chip-groupContainer-4563db0f"};
3
3
 
4
4
  export { classes as default };
@@ -19,7 +19,7 @@ import { autoUpdate } from '../../../node_modules/@floating-ui/dom/dist/floating
19
19
  import { flip, size, offset } from '../../../node_modules/@floating-ui/core/dist/floating-ui.core.js';
20
20
  import { omit } from '../../../utilities/objectUtils.js';
21
21
 
22
- const Combobox = forwardRef(({ value, onValueChange, label, hideLabel = false, description, multiple = false, size: size$1 = 'medium', disabled = false, readOnly = false, hideChips = false, cleanButtonLabel = 'Fjern alt', error, errorId, id, name, portal = true, htmlSize = 0, virtual = false, children, style, loading, loadingLabel = 'Laster...', filter = (inputValue, option) => {
22
+ const Combobox = forwardRef(({ value, initialValue = [], onValueChange, label, hideLabel = false, description, multiple = false, size: size$1 = 'medium', disabled = false, readOnly = false, hideChips = false, cleanButtonLabel = 'Fjern alt', clearButtonLabel = 'Fjern alt', hideClearButton = false, error, errorId, id, name, portal = true, htmlSize = 0, virtual = false, children, style, loading, loadingLabel = 'Laster...', filter = (inputValue, option) => {
23
23
  return option.label.toLowerCase().startsWith(inputValue.toLowerCase());
24
24
  }, chipSrLabel = (option) => 'Slett ' + option.label, className, ...rest }, forwareddRef) => {
25
25
  const inputRef = useRef(null);
@@ -28,9 +28,14 @@ const Combobox = forwardRef(({ value, onValueChange, label, hideLabel = false, d
28
28
  const [open, setOpen] = useState(false);
29
29
  const [inputValue, setInputValue] = useState(rest.inputValue || '');
30
30
  const [activeIndex, setActiveIndex] = useState(null);
31
- const [selectedOptions, setSelectedOptions] = useState([]);
31
+ const { selectedOptions, setSelectedOptions, options, optionsChildren, restChildren, optionValues, customIds, prevSelectedHash, setPrevSelectedHash, } = useCombobox({
32
+ children,
33
+ inputValue,
34
+ filter,
35
+ multiple,
36
+ initialValue,
37
+ });
32
38
  const [activeDescendant, setActiveDescendant] = useState(undefined);
33
- const [prevSelectedHash, setPrevSelectedHash] = useState(JSON.stringify(selectedOptions));
34
39
  useEffect(() => {
35
40
  if (rest.inputValue !== undefined) {
36
41
  setInputValue(rest.inputValue);
@@ -46,13 +51,6 @@ const Combobox = forwardRef(({ value, onValueChange, label, hideLabel = false, d
46
51
  id,
47
52
  }, 'combobox');
48
53
  const listRef = useRef([]);
49
- const { options, optionsChildren, restChildren, optionValues, customIds } = useCombobox({
50
- children,
51
- inputValue,
52
- filter,
53
- multiple,
54
- selectedOptions,
55
- });
56
54
  // if value is set, set input value to the label of the value
57
55
  useEffect(() => {
58
56
  if (value && value.length > 0 && !multiple) {
@@ -108,7 +106,7 @@ const Combobox = forwardRef(({ value, onValueChange, label, hideLabel = false, d
108
106
  const values = selectedOptions.map((option) => option.value);
109
107
  onValueChange?.(values);
110
108
  setPrevSelectedHash(selectedHash);
111
- }, [onValueChange, selectedOptions, prevSelectedHash]);
109
+ }, [onValueChange, selectedOptions, prevSelectedHash, setPrevSelectedHash]);
112
110
  useEffect(() => {
113
111
  if (value && options.length > 0) {
114
112
  const updatedSelectedOptions = value.map((option) => {
@@ -117,7 +115,7 @@ const Combobox = forwardRef(({ value, onValueChange, label, hideLabel = false, d
117
115
  });
118
116
  setSelectedOptions(updatedSelectedOptions);
119
117
  }
120
- }, [multiple, prevSelectedHash, value, options]);
118
+ }, [multiple, prevSelectedHash, value, options, setSelectedOptions]);
121
119
  // handle click on option, either select or deselect - Handles single or multiple
122
120
  const handleSelectOption = (option) => {
123
121
  // if option is already selected, remove it
@@ -248,7 +246,8 @@ const Combobox = forwardRef(({ value, onValueChange, label, hideLabel = false, d
248
246
  htmlSize,
249
247
  optionValues,
250
248
  hideChips,
251
- cleanButtonLabel,
249
+ clearButtonLabel: cleanButtonLabel || clearButtonLabel,
250
+ hideClearButton,
252
251
  listId,
253
252
  setInputValue,
254
253
  setActiveIndex,
@@ -12,7 +12,7 @@ const ComboboxClearButton = () => {
12
12
  if (!context) {
13
13
  throw new Error('ComboboxContext is missing');
14
14
  }
15
- const { size, readOnly, disabled, cleanButtonLabel, inputRef, setSelectedOptions, setInputValue, } = context;
15
+ const { size, readOnly, disabled, clearButtonLabel, inputRef, setSelectedOptions, setInputValue, } = context;
16
16
  return (jsx("button", { disabled: disabled, className: clsx(classes.clearButton, classes[size], utilityClasses.focusable), onClick: () => {
17
17
  if (readOnly)
18
18
  return;
@@ -31,7 +31,7 @@ const ComboboxClearButton = () => {
31
31
  setInputValue('');
32
32
  inputRef.current?.focus();
33
33
  }
34
- }, type: 'button', "aria-label": cleanButtonLabel, children: jsx(XMarkIcon, { fontSize: '1.5em', title: 'Clear selection' }) }));
34
+ }, type: 'button', "aria-label": clearButtonLabel, children: jsx(XMarkIcon, { fontSize: '1.5em', title: 'Clear selection' }) }));
35
35
  };
36
36
  ComboboxClearButton.displayName = 'ComboboxClearButton';
37
37
  var ComboboxClearButton$1 = ComboboxClearButton;
@@ -17,7 +17,7 @@ const ComboboxInput = ({ ...rest }) => {
17
17
  if (!context) {
18
18
  throw new Error('ComboboxContext is missing');
19
19
  }
20
- const { forwareddRef, listId, size, readOnly, disabled, open, inputRef, refs, inputValue, activeDescendant, error, multiple, selectedOptions, formFieldProps, htmlSize, options, hideChips, setOpen, setActiveIndex, handleKeyDown, getReferenceProps, setInputValue, handleSelectOption, } = context;
20
+ const { forwareddRef, listId, size, readOnly, disabled, open, inputRef, refs, inputValue, activeDescendant, error, multiple, selectedOptions, formFieldProps, htmlSize, options, hideChips, hideClearButton, setOpen, setActiveIndex, handleKeyDown, getReferenceProps, setInputValue, handleSelectOption, } = context;
21
21
  const mergedRefs = useMergeRefs([forwareddRef, inputRef]);
22
22
  // we need to check if input is in focus, to add focus styles to the wrapper
23
23
  const [inputInFocus, setInputInFocus] = useState(false);
@@ -64,6 +64,7 @@ const ComboboxInput = ({ ...rest }) => {
64
64
  }, 0);
65
65
  }
66
66
  };
67
+ const showClearButton = multiple && !hideClearButton && selectedOptions.length > 0;
67
68
  return (jsxs(Box
68
69
  /* Props from floating-ui */
69
70
  , { ...getReferenceProps({
@@ -95,7 +96,7 @@ const ComboboxInput = ({ ...rest }) => {
95
96
  }), "aria-disabled": disabled, className: clsx(textFieldClasses.input, classes.inputWrapper, classes[size], inputInFocus && classes.inFocus, readOnly && classes.readonly, error && classes.error), children: [jsxs("div", { className: classes.chipAndInput, children: [multiple && !hideChips && jsx(ComboboxChips, {}), jsx("input", { ref: mergedRefs, "aria-activedescendant": activeDescendant, readOnly: readOnly, "aria-autocomplete": 'list', role: 'combobox', "aria-expanded": open, "aria-controls": listId, autoComplete: 'off', size: htmlSize, value: inputValue, ...omit(['style', 'className'], rest), ...formFieldProps.inputProps, onChange: (e) => {
96
97
  onChange(e);
97
98
  rest.onChange && rest.onChange(e);
98
- } })] }), multiple && selectedOptions.length > 0 && jsx(ComboboxClearButton, {}), jsx("div", { className: classes.arrow, children: open ? (jsx(ChevronUpIcon, { title: 'arrow up', fontSize: '1.5em' })) : (jsx(ChevronDownIcon, { title: 'arrow down', fontSize: '1.5em' })) })] }));
99
+ } })] }), showClearButton && jsx(ComboboxClearButton, {}), jsx("div", { className: classes.arrow, children: open ? (jsx(ChevronUpIcon, { title: 'arrow up', fontSize: '1.5em' })) : (jsx(ChevronDownIcon, { title: 'arrow down', fontSize: '1.5em' })) })] }));
99
100
  };
100
101
  ComboboxInput.displayName = 'ComboboxInput';
101
102
  var ComboboxInput$1 = ComboboxInput;
@@ -1,20 +1,29 @@
1
1
  'use client';
2
- import * as React from 'react';
3
- import { useMemo } from 'react';
2
+ import { useMemo, Children, useState, isValidElement } from 'react';
4
3
  import { ComboboxOption } from './Option/Option.js';
5
4
  import ComboboxCustom from './Custom/Custom.js';
6
5
 
7
- function useCombobox({ children, inputValue, multiple, selectedOptions, filter, }) {
6
+ const isOption = (option) => !!option;
7
+ function isComboboxOption(child) {
8
+ return isValidElement(child) && child.type === ComboboxOption;
9
+ }
10
+ function isComboboxCustom(child) {
11
+ return isValidElement(child) && child.type === ComboboxCustom;
12
+ }
13
+ function isInteractiveComboboxCustom(child) {
14
+ return isComboboxCustom(child) && child.props.interactive === true;
15
+ }
16
+ function useCombobox({ children, inputValue, multiple, filter, initialValue, }) {
8
17
  const options = useMemo(() => {
9
18
  const allOptions = [];
10
- React.Children.forEach(children, (child) => {
19
+ Children.forEach(children, (child) => {
11
20
  if (isComboboxOption(child)) {
12
21
  const props = child.props;
13
22
  let label = props.displayValue || '';
14
23
  if (!props.displayValue) {
15
24
  let childrenLabel = '';
16
25
  // go over children and find all strings
17
- React.Children.forEach(props.children, (child) => {
26
+ Children.forEach(props.children, (child) => {
18
27
  if (typeof child === 'string') {
19
28
  childrenLabel += child;
20
29
  }
@@ -34,9 +43,14 @@ function useCombobox({ children, inputValue, multiple, selectedOptions, filter,
34
43
  });
35
44
  return allOptions;
36
45
  }, [children]);
46
+ const preSelectedOptions = (initialValue || [])
47
+ .map((value) => options.find((option) => option.value === value))
48
+ .filter(isOption);
49
+ const [selectedOptions, setSelectedOptions] = useState(preSelectedOptions);
50
+ const [prevSelectedHash, setPrevSelectedHash] = useState(JSON.stringify(selectedOptions));
37
51
  const optionsChildren = useMemo(() => {
38
52
  const valuesArray = Array.from(options);
39
- const children_ = React.Children.toArray(children).filter((child) => isComboboxOption(child));
53
+ const children_ = Children.toArray(children).filter((child) => isComboboxOption(child));
40
54
  const activeValue = valuesArray.find((item) => item.label === inputValue);
41
55
  if (activeValue && !multiple)
42
56
  return children_;
@@ -54,7 +68,7 @@ function useCombobox({ children, inputValue, multiple, selectedOptions, filter,
54
68
  }, [options, children, multiple, inputValue, selectedOptions, filter]);
55
69
  const customIds = useMemo(() => {
56
70
  // find all custom components with `interactive=true` and generate random values for them
57
- const children_ = React.Children.toArray(children).filter((child) => {
71
+ const children_ = Children.toArray(children).filter((child) => {
58
72
  return isInteractiveComboboxCustom(child);
59
73
  });
60
74
  // return all ids
@@ -73,7 +87,7 @@ function useCombobox({ children, inputValue, multiple, selectedOptions, filter,
73
87
  return [...customIds, ...options];
74
88
  }, [customIds, optionsChildren]);
75
89
  const restChildren = useMemo(() => {
76
- return React.Children.toArray(children).filter((child) => {
90
+ return Children.toArray(children).filter((child) => {
77
91
  return !isComboboxOption(child);
78
92
  });
79
93
  }, [children]);
@@ -83,16 +97,11 @@ function useCombobox({ children, inputValue, multiple, selectedOptions, filter,
83
97
  restChildren,
84
98
  options,
85
99
  customIds,
100
+ selectedOptions,
101
+ setSelectedOptions,
102
+ prevSelectedHash,
103
+ setPrevSelectedHash,
86
104
  };
87
105
  }
88
- function isComboboxOption(child) {
89
- return React.isValidElement(child) && child.type === ComboboxOption;
90
- }
91
- function isComboboxCustom(child) {
92
- return React.isValidElement(child) && child.type === ComboboxCustom;
93
- }
94
- function isInteractiveComboboxCustom(child) {
95
- return isComboboxCustom(child) && child.props.interactive === true;
96
- }
97
106
 
98
107
  export { useCombobox as default, isComboboxCustom, isComboboxOption, isInteractiveComboboxCustom };
@@ -41,7 +41,7 @@ const Search = forwardRef((props, ref) => {
41
41
  };
42
42
  const isSimple = variant === 'simple';
43
43
  const showClearButton = Boolean(value ?? internalValue) && !disabled;
44
- return (jsx(Paragraph, { asChild: true, size: size, children: jsxs("div", { style: style, className: clsx(classes.formField, inputProps.disabled && classes.disabled, classes[size], className), children: [label && (jsx(Label, { size: size, weight: 'medium', htmlFor: inputProps.id, className: clsx(classes.label, hideLabel && utilityClasses.visuallyHidden), children: jsx("span", { children: label }) })), jsxs("div", { className: classes.field, children: [jsxs("div", { className: classes.field, children: [isSimple && (jsx(MagnifyingGlassIcon, { className: classes.icon, "aria-hidden": true })), jsx("input", { ref: mergedRef, size: htmlSize, value: value ?? internalValue, disabled: disabled, className: clsx(classes.input, utilityClasses.focusable, classes[size], isSimple && classes.simple, !isSimple && classes.withSearchButton), ...omit(['size', 'error', 'errorId', 'readOnly'], rest), ...inputProps, onChange: handleChange }), showClearButton && (jsxs("button", { className: clsx(classes.clearButton, utilityClasses.focusable), type: 'button', onClick: handleClear, disabled: disabled, children: [jsx("span", { className: utilityClasses.visuallyHidden, children: clearButtonLabel }), jsx(XMarkIcon, { "aria-hidden": true })] }))] }), !isSimple && (jsx(Button, { className: classes.searchButton, size: size, variant: variant, type: 'submit', onClick: handleSearchClick, disabled: disabled, children: searchButtonLabel }))] }), jsx("div", { className: classes.errorMessage, id: errorId, "aria-live": 'polite', "aria-relevant": 'additions removals', children: hasError && jsx(ErrorMessage, { size: size, children: props.error }) })] }) }));
44
+ return (jsx(Paragraph, { asChild: true, size: size, children: jsxs("div", { style: style, className: clsx(classes.formField, inputProps.disabled && classes.disabled, classes[size], className), children: [label && (jsx(Label, { size: size, weight: 'medium', htmlFor: inputProps.id, className: clsx(classes.label, hideLabel && utilityClasses.visuallyHidden), children: jsx("span", { children: label }) })), jsxs("div", { className: classes.field, children: [jsxs("div", { className: clsx(classes.field, classes[size]), children: [isSimple && (jsx(MagnifyingGlassIcon, { className: classes.icon, "aria-hidden": true })), jsx("input", { ref: mergedRef, size: htmlSize, value: value ?? internalValue, disabled: disabled, className: clsx(classes.input, utilityClasses.focusable, isSimple && classes.simple, !isSimple && classes.withSearchButton), ...omit(['size', 'error', 'errorId', 'readOnly'], rest), ...inputProps, onChange: handleChange }), showClearButton && (jsxs("button", { className: clsx(classes.clearButton, utilityClasses.focusable), type: 'button', onClick: handleClear, disabled: disabled, children: [jsx("span", { className: utilityClasses.visuallyHidden, children: clearButtonLabel }), jsx(XMarkIcon, { "aria-hidden": true })] }))] }), !isSimple && (jsx(Button, { className: classes.searchButton, size: size, variant: variant, type: 'submit', onClick: handleSearchClick, disabled: disabled, children: searchButtonLabel }))] }), jsx("div", { className: classes.errorMessage, id: errorId, "aria-live": 'polite', "aria-relevant": 'additions removals', children: hasError && jsx(ErrorMessage, { size: size, children: props.error }) })] }) }));
45
45
  });
46
46
  Search.displayName = 'Search';
47
47
 
@@ -79,7 +79,7 @@
79
79
  gap: var(--fds-sizing-1);
80
80
  font: var(--fds-typography-paragraph-short-small);
81
81
  font-family: inherit;
82
- min-height: var(--fds-sizing-8);
82
+ min-height: var(--fds-sizing-10);
83
83
  }
84
84
 
85
85
  .fds-button-medium-8fa00f0f {
@@ -88,7 +88,7 @@
88
88
  gap: var(--fds-sizing-2);
89
89
  font: var(--fds-typography-paragraph-short-medium);
90
90
  font-family: inherit;
91
- min-height: var(--fds-sizing-10);
91
+ min-height: var(--fds-sizing-12);
92
92
  }
93
93
 
94
94
  .fds-button-large-8fa00f0f {
@@ -97,7 +97,7 @@
97
97
  gap: var(--fds-sizing-2);
98
98
  font: var(--fds-typography-paragraph-short-large);
99
99
  font-family: inherit;
100
- min-height: var(--fds-sizing-12);
100
+ min-height: var(--fds-sizing-14);
101
101
  }
102
102
 
103
103
  .fds-button-fullWidth-8fa00f0f {
@@ -1064,19 +1064,19 @@
1064
1064
  .fds-nativeselect-select-2e95d79c.fds-nativeselect-small-2e95d79c {
1065
1065
  padding: 0 var(--fds-spacing-2);
1066
1066
  padding-right: var(--fds-spacing-8);
1067
- height: var(--fds-sizing-8);
1067
+ height: var(--fds-sizing-10);
1068
1068
  }
1069
1069
 
1070
1070
  .fds-nativeselect-select-2e95d79c.fds-nativeselect-medium-2e95d79c {
1071
1071
  padding: 0 var(--fds-spacing-3);
1072
1072
  padding-right: var(--fds-spacing-10);
1073
- height: var(--fds-sizing-10);
1073
+ height: var(--fds-sizing-12);
1074
1074
  }
1075
1075
 
1076
1076
  .fds-nativeselect-select-2e95d79c.fds-nativeselect-large-2e95d79c {
1077
1077
  padding: 0 var(--fds-spacing-4);
1078
1078
  padding-right: var(--fds-spacing-12);
1079
- height: var(--fds-sizing-12);
1079
+ height: var(--fds-sizing-14);
1080
1080
  }
1081
1081
 
1082
1082
  .fds-nativeselect-formField-2e95d79c {
@@ -1179,18 +1179,18 @@
1179
1179
  }
1180
1180
 
1181
1181
  .fds-tag-small-40d841d9 {
1182
- --fdsc-tag-padding: var(--fds-spacing-1);
1183
- --fdsc-tag-min-height: var(--fds-sizing-5);
1182
+ --fdsc-tag-padding: var(--fds-spacing-2);
1183
+ --fdsc-tag-min-height: var(--fds-sizing-7);
1184
1184
  }
1185
1185
 
1186
1186
  .fds-tag-medium-40d841d9 {
1187
- --fdsc-tag-padding: var(--fds-spacing-1);
1188
- --fdsc-tag-min-height: var(--fds-sizing-6);
1187
+ --fdsc-tag-padding: var(--fds-spacing-2);
1188
+ --fdsc-tag-min-height: var(--fds-sizing-8);
1189
1189
  }
1190
1190
 
1191
1191
  .fds-tag-large-40d841d9 {
1192
- --fdsc-tag-padding: var(--fds-spacing-2);
1193
- --fdsc-tag-min-height: var(--fds-sizing-7);
1192
+ --fdsc-tag-padding: var(--fds-spacing-3);
1193
+ --fdsc-tag-min-height: var(--fds-sizing-9);
1194
1194
  }
1195
1195
 
1196
1196
  .fds-tag-neutral-40d841d9 {
@@ -1292,7 +1292,7 @@
1292
1292
  background: var(--fdsc-removable-background);
1293
1293
  border: 0;
1294
1294
  padding-right: 0;
1295
- min-height: var(--fdsc-removable-chip-size);
1295
+ min-height: var(--fdsc-chip-height);
1296
1296
  }
1297
1297
 
1298
1298
  .fds-chip-xMark-4563db0f {
@@ -1302,18 +1302,6 @@
1302
1302
  padding-right: var(--fdsc-removable-chip-xmark-padding_right);
1303
1303
  }
1304
1304
 
1305
- .fds-chip-removable-4563db0f.fds-chip-small-4563db0f {
1306
- --fdsc-removable-chip-size: var(--fds-sizing-6);
1307
- }
1308
-
1309
- .fds-chip-removable-4563db0f.fds-chip-medium-4563db0f {
1310
- --fdsc-removable-chip-size: var(--fds-sizing-7);
1311
- }
1312
-
1313
- .fds-chip-removable-4563db0f.fds-chip-large-4563db0f {
1314
- --fdsc-removable-chip-size: var(--fds-sizing-8);
1315
- }
1316
-
1317
1305
  .fds-chip-xMark-4563db0f .fds-chip-icon-4563db0f {
1318
1306
  height: var(--fdsc-removable-chip-xmark-size);
1319
1307
  width: var(--fdsc-removable-chip-xmark-size);
@@ -1387,20 +1375,20 @@
1387
1375
  }
1388
1376
 
1389
1377
  .fds-chip-small-4563db0f {
1390
- --fdsc-chip-height: var(--fds-sizing-6);
1391
- --fdsc-chip-padding: var(--fds-spacing-2);
1378
+ --fdsc-chip-height: var(--fds-sizing-7);
1379
+ --fdsc-chip-padding: var(--fds-spacing-3);
1392
1380
  --fdsc-removable-chip-xmark-size: var(--fds-sizing-5);
1393
1381
  }
1394
1382
 
1395
1383
  .fds-chip-medium-4563db0f {
1396
- --fdsc-chip-height: var(--fds-sizing-7);
1384
+ --fdsc-chip-height: var(--fds-sizing-8);
1397
1385
  --fdsc-chip-padding: var(--fds-spacing-3);
1398
1386
  --fdsc-removable-chip-xmark-size: var(--fds-sizing-6);
1399
1387
  }
1400
1388
 
1401
1389
  .fds-chip-large-4563db0f {
1402
- --fdsc-chip-height: var(--fds-sizing-8);
1403
- --fdsc-chip-padding: var(--fds-spacing-3);
1390
+ --fdsc-chip-height: var(--fds-sizing-9);
1391
+ --fdsc-chip-padding: var(--fds-spacing-4);
1404
1392
  --fdsc-removable-chip-xmark-size: var(--fds-sizing-7);
1405
1393
  }
1406
1394
 
@@ -1444,17 +1432,17 @@
1444
1432
 
1445
1433
  .fds-pagination-listitem-ddc0278f:where(.fds-pagination-small-ddc0278f) {
1446
1434
  --fsdc-pagination-listitem-margin: var(--fds-spacing-2);
1447
- --fdsc-pagination-ellipsis-width: var(--fds-sizing-8);
1435
+ --fdsc-pagination-ellipsis-width: var(--fds-sizing-10);
1448
1436
  }
1449
1437
 
1450
1438
  .fds-pagination-listitem-ddc0278f:where(.fds-pagination-medium-ddc0278f) {
1451
1439
  --fsdc-pagination-listitem-margin: var(--fds-spacing-4);
1452
- --fdsc-pagination-ellipsis-width: var(--fds-sizing-10);
1440
+ --fdsc-pagination-ellipsis-width: var(--fds-sizing-12);
1453
1441
  }
1454
1442
 
1455
1443
  .fds-pagination-listitem-ddc0278f:where(.fds-pagination-large-ddc0278f) {
1456
1444
  --fsdc-pagination-listitem-margin: var(--fds-spacing-6);
1457
- --fdsc-pagination-ellipsis-width: var(--fds-sizing-12);
1445
+ --fdsc-pagination-ellipsis-width: var(--fds-sizing-14);
1458
1446
  }
1459
1447
 
1460
1448
  .fds-pagination-listitem-ddc0278f:where(.fds-pagination-compact-ddc0278f) {
@@ -1647,23 +1635,23 @@
1647
1635
 
1648
1636
  .fds-checkbox-small-ad9a8b9c,
1649
1637
  .fds-checkbox-small-ad9a8b9c .fds-checkbox-label-ad9a8b9c {
1650
- min-height: var(--fds-sizing-8);
1638
+ min-height: var(--fds-sizing-5);
1651
1639
  }
1652
1640
 
1653
1641
  .fds-checkbox-medium-ad9a8b9c,
1654
1642
  .fds-checkbox-medium-ad9a8b9c .fds-checkbox-label-ad9a8b9c {
1655
- min-height: var(--fds-sizing-10);
1643
+ min-height: var(--fds-sizing-6);
1656
1644
  }
1657
1645
 
1658
1646
  .fds-checkbox-large-ad9a8b9c,
1659
1647
  .fds-checkbox-large-ad9a8b9c .fds-checkbox-label-ad9a8b9c {
1660
- min-height: var(--fds-sizing-12);
1648
+ min-height: var(--fds-sizing-7);
1661
1649
  }
1662
1650
 
1663
1651
  .fds-checkbox-small-ad9a8b9c {
1664
- --fds-checkbox-size: 1.5rem;
1652
+ --fds-checkbox-size: var(--fds-sizing-5);
1665
1653
 
1666
- min-width: var(--fds-sizing-8);
1654
+ min-width: var(--fds-sizing-5);
1667
1655
  }
1668
1656
 
1669
1657
  .fds-checkbox-small-ad9a8b9c .fds-checkbox-input-ad9a8b9c {
@@ -1672,9 +1660,9 @@
1672
1660
  }
1673
1661
 
1674
1662
  .fds-checkbox-medium-ad9a8b9c {
1675
- --fds-checkbox-size: 1.75rem;
1663
+ --fds-checkbox-size: var(--fds-sizing-6);
1676
1664
 
1677
- min-width: var(--fds-sizing-10);
1665
+ min-width: var(--fds-sizing-6);
1678
1666
  }
1679
1667
 
1680
1668
  .fds-checkbox-medium-ad9a8b9c .fds-checkbox-input-ad9a8b9c {
@@ -1683,9 +1671,9 @@
1683
1671
  }
1684
1672
 
1685
1673
  .fds-checkbox-large-ad9a8b9c {
1686
- --fds-checkbox-size: 2rem;
1674
+ --fds-checkbox-size: var(--fds-sizing-7);
1687
1675
 
1688
- min-width: var(--fds-sizing-12);
1676
+ min-width: var(--fds-sizing-7);
1689
1677
  }
1690
1678
 
1691
1679
  .fds-checkbox-large-ad9a8b9c .fds-checkbox-input-ad9a8b9c {
@@ -1817,23 +1805,23 @@
1817
1805
 
1818
1806
  .fds-radio-small-7a9bd584,
1819
1807
  .fds-radio-small-7a9bd584 .fds-radio-label-7a9bd584 {
1820
- min-height: var(--fds-sizing-8);
1808
+ min-height: var(--fds-sizing-5);
1821
1809
  }
1822
1810
 
1823
1811
  .fds-radio-medium-7a9bd584,
1824
1812
  .fds-radio-medium-7a9bd584 .fds-radio-label-7a9bd584 {
1825
- min-height: var(--fds-sizing-10);
1813
+ min-height: var(--fds-sizing-6);
1826
1814
  }
1827
1815
 
1828
1816
  .fds-radio-large-7a9bd584,
1829
1817
  .fds-radio-large-7a9bd584 .fds-radio-label-7a9bd584 {
1830
- min-height: var(--fds-sizing-12);
1818
+ min-height: var(--fds-sizing-7);
1831
1819
  }
1832
1820
 
1833
1821
  .fds-radio-small-7a9bd584 {
1834
- --fds-radio-size: 1.5rem;
1822
+ --fds-radio-size: var(--fds-sizing-5);
1835
1823
 
1836
- min-width: var(--fds-sizing-8);
1824
+ min-width: var(--fds-sizing-5);
1837
1825
  }
1838
1826
 
1839
1827
  .fds-radio-small-7a9bd584 .fds-radio-input-7a9bd584 {
@@ -1842,9 +1830,9 @@
1842
1830
  }
1843
1831
 
1844
1832
  .fds-radio-medium-7a9bd584 {
1845
- --fds-radio-size: 1.75rem;
1833
+ --fds-radio-size: var(--fds-sizing-6);
1846
1834
 
1847
- min-width: var(--fds-sizing-10);
1835
+ min-width: var(--fds-sizing-6);
1848
1836
  }
1849
1837
 
1850
1838
  .fds-radio-medium-7a9bd584 .fds-radio-input-7a9bd584 {
@@ -1853,9 +1841,9 @@
1853
1841
  }
1854
1842
 
1855
1843
  .fds-radio-large-7a9bd584 {
1856
- --fds-radio-size: 2rem;
1844
+ --fds-radio-size: var(--fds-sizing-7);
1857
1845
 
1858
- min-width: var(--fds-sizing-12);
1846
+ min-width: var(--fds-sizing-7);
1859
1847
  }
1860
1848
 
1861
1849
  .fds-radio-large-7a9bd584 .fds-radio-input-7a9bd584 {
@@ -1973,22 +1961,22 @@
1973
1961
 
1974
1962
  .fds-switch-small-9a6b03bc,
1975
1963
  .fds-switch-small-9a6b03bc .fds-switch-label-9a6b03bc {
1976
- min-height: var(--fds-sizing-8);
1964
+ min-height: var(--fds-sizing-6);
1977
1965
  }
1978
1966
 
1979
1967
  .fds-switch-medium-9a6b03bc,
1980
1968
  .fds-switch-medium-9a6b03bc .fds-switch-label-9a6b03bc {
1981
- min-height: var(--fds-sizing-10);
1969
+ min-height: var(--fds-sizing-7);
1982
1970
  }
1983
1971
 
1984
1972
  .fds-switch-large-9a6b03bc,
1985
1973
  .fds-switch-large-9a6b03bc .fds-switch-label-9a6b03bc {
1986
- min-height: var(--fds-sizing-12);
1974
+ min-height: var(--fds-sizing-8);
1987
1975
  }
1988
1976
 
1989
1977
  .fds-switch-small-9a6b03bc {
1990
- --fds-switch-height: 1.5rem;
1991
- --fds-switch-width: 2.5rem;
1978
+ --fds-switch-height: var(--fds-sizing-6);
1979
+ --fds-switch-width: var(--fds-sizing-11);
1992
1980
  }
1993
1981
 
1994
1982
  .fds-switch-small-9a6b03bc .fds-switch-input-9a6b03bc {
@@ -1997,8 +1985,8 @@
1997
1985
  }
1998
1986
 
1999
1987
  .fds-switch-medium-9a6b03bc {
2000
- --fds-switch-height: 1.75rem;
2001
- --fds-switch-width: 3rem;
1988
+ --fds-switch-height: var(--fds-sizing-7);
1989
+ --fds-switch-width: var(--fds-sizing-13);
2002
1990
  }
2003
1991
 
2004
1992
  .fds-switch-medium-9a6b03bc .fds-switch-input-9a6b03bc {
@@ -2007,8 +1995,8 @@
2007
1995
  }
2008
1996
 
2009
1997
  .fds-switch-large-9a6b03bc {
2010
- --fds-switch-height: 2rem;
2011
- --fds-switch-width: 3.5rem;
1998
+ --fds-switch-height: var(--fds-sizing-8);
1999
+ --fds-switch-width: var(--fds-sizing-15);
2012
2000
  }
2013
2001
 
2014
2002
  .fds-switch-large-9a6b03bc .fds-switch-input-9a6b03bc {
@@ -2138,27 +2126,27 @@
2138
2126
  }
2139
2127
 
2140
2128
  .fds-textfield-formField-d98267a0.fds-textfield-small-d98267a0 .fds-textfield-adornment-d98267a0 {
2141
- padding: 6.5px var(--fds-spacing-3);
2129
+ padding: var(--fds-sizing-2) var(--fds-spacing-3);
2142
2130
  }
2143
2131
 
2144
2132
  .fds-textfield-formField-d98267a0.fds-textfield-medium-d98267a0 .fds-textfield-adornment-d98267a0 {
2145
- padding: 9px var(--fds-spacing-4);
2133
+ padding: 0.65rem var(--fds-spacing-4);
2146
2134
  }
2147
2135
 
2148
2136
  .fds-textfield-formField-d98267a0.fds-textfield-large-d98267a0 .fds-textfield-adornment-d98267a0 {
2149
- padding: 11px var(--fds-spacing-5);
2137
+ padding: 0.85rem var(--fds-spacing-5);
2150
2138
  }
2151
2139
 
2152
2140
  .fds-textfield-formField-d98267a0.fds-textfield-small-d98267a0 .fds-textfield-field-d98267a0 {
2153
- height: var(--fds-sizing-8);
2141
+ height: var(--fds-sizing-10);
2154
2142
  }
2155
2143
 
2156
2144
  .fds-textfield-formField-d98267a0.fds-textfield-medium-d98267a0 .fds-textfield-field-d98267a0 {
2157
- height: var(--fds-sizing-10);
2145
+ height: var(--fds-sizing-12);
2158
2146
  }
2159
2147
 
2160
2148
  .fds-textfield-formField-d98267a0.fds-textfield-large-d98267a0 .fds-textfield-field-d98267a0 {
2161
- height: var(--fds-sizing-12);
2149
+ height: var(--fds-sizing-14);
2162
2150
  }
2163
2151
 
2164
2152
  .fds-textfield-label-d98267a0 {
@@ -2646,8 +2634,9 @@
2646
2634
  position: absolute;
2647
2635
  height: 100%;
2648
2636
  z-index: 2;
2649
- left: var(--fds-spacing-3);
2637
+ left: var(--fds-spacing-4);
2650
2638
  transform: scale(1.5);
2639
+ pointer-events: none;
2651
2640
  }
2652
2641
 
2653
2642
  [type='search']::-webkit-search-decoration,
@@ -2716,30 +2705,42 @@
2716
2705
  z-index: 2;
2717
2706
  }
2718
2707
 
2719
- .fds-search-input-a6b5fe3c.fds-search-small-a6b5fe3c {
2708
+ .fds-search-small-a6b5fe3c .fds-search-input-a6b5fe3c {
2720
2709
  --f-search-button-clear-size: var(--fds-sizing-4);
2721
2710
 
2722
- height: var(--fds-sizing-8);
2723
- padding: 0 var(--fds-spacing-2);
2711
+ height: var(--fds-sizing-10);
2712
+ padding: 0 var(--fds-spacing-3);
2724
2713
  padding-right: 2.5em;
2725
2714
  }
2726
2715
 
2727
- .fds-search-input-a6b5fe3c.fds-search-medium-a6b5fe3c {
2716
+ .fds-search-small-a6b5fe3c .fds-search-icon-a6b5fe3c {
2717
+ left: var(--fds-spacing-3);
2718
+ }
2719
+
2720
+ .fds-search-medium-a6b5fe3c .fds-search-input-a6b5fe3c {
2728
2721
  --f-search-button-clear-size: var(--fds-sizing-6);
2729
2722
 
2730
- height: var(--fds-sizing-10);
2731
- padding: 0 var(--fds-spacing-3);
2723
+ height: var(--fds-sizing-12);
2724
+ padding: 0 var(--fds-spacing-4);
2732
2725
  padding-right: 2.2em;
2733
2726
  }
2734
2727
 
2735
- .fds-search-input-a6b5fe3c.fds-search-large-a6b5fe3c {
2728
+ .fds-search-medium-a6b5fe3c .fds-search-icon-a6b5fe3c {
2729
+ left: var(--fds-spacing-4);
2730
+ }
2731
+
2732
+ .fds-search-large-a6b5fe3c .fds-search-input-a6b5fe3c {
2736
2733
  --f-search-button-clear-size: var(--fds-sizing-12);
2737
2734
 
2738
- height: var(--fds-sizing-12);
2739
- padding: 0 var(--fds-spacing-4);
2735
+ height: var(--fds-sizing-14);
2736
+ padding: 0 var(--fds-spacing-5);
2740
2737
  padding-right: 2em;
2741
2738
  }
2742
2739
 
2740
+ .fds-search-large-a6b5fe3c .fds-search-icon-a6b5fe3c {
2741
+ left: var(--fds-spacing-5);
2742
+ }
2743
+
2743
2744
  .fds-search-input-a6b5fe3c.fds-search-simple-a6b5fe3c {
2744
2745
  padding-left: 2.4em;
2745
2746
  }
@@ -3235,6 +3236,7 @@
3235
3236
  }
3236
3237
 
3237
3238
  .fds-combobox-inputWrapper-249a725c.fds-combobox-small-249a725c {
3239
+ min-height: var(--fds-sizing-10);
3238
3240
  font: var(--fds-typography-paragraph-small);
3239
3241
  font-family: inherit;
3240
3242
  padding: 5px var(--fds-spacing-2);
@@ -3246,6 +3248,7 @@
3246
3248
  }
3247
3249
 
3248
3250
  .fds-combobox-inputWrapper-249a725c.fds-combobox-medium-249a725c {
3251
+ min-height: var(--fds-sizing-12);
3249
3252
  font: var(--fds-typography-paragraph-medium);
3250
3253
  font-family: inherit;
3251
3254
  padding: 7px var(--fds-spacing-3);
@@ -3257,6 +3260,7 @@
3257
3260
  }
3258
3261
 
3259
3262
  .fds-combobox-inputWrapper-249a725c.fds-combobox-large-249a725c {
3263
+ min-height: var(--fds-sizing-14);
3260
3264
  font: var(--fds-typography-paragraph-large);
3261
3265
  font-family: inherit;
3262
3266
  padding: 7px var(--fds-spacing-4);