@wix/editor-react-components 1.2331.0 → 1.2333.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.
@@ -79,6 +79,8 @@ export type DropdownProps = Omit<SdkFunctionChangeableProps, 'onChange'> & SdkFu
79
79
  isDisabled?: boolean;
80
80
  /** Controls whether the option list is open. No effect in `inline` mode. */
81
81
  open?: boolean;
82
+ /** Preview-only: forces the option list open while the List part is being designed. */
83
+ previewList?: boolean;
82
84
  /** Writing direction applied to the root. */
83
85
  direction?: Direction;
84
86
  /** Accessibility attributes. `ariaLabel` labels the dropdown for assistive tech. */
@@ -10,7 +10,7 @@ import { f as formatClassNames } from "../chunks/classNames.js";
10
10
  import { a as getDataAttributes } from "../chunks/dataUtils.js";
11
11
  import { d as directionStyles } from "../chunks/direction.module.js";
12
12
  import { p as presetWrapperStyles } from "../chunks/presetWrapper.module.js";
13
- import { A as ALL_VALUE, T as TestIds, s as semanticClassNames, d as defaultValues, a as TriggerModeValues, b as ARIA_LABEL_NAMESPACE, c as AriaLabels, e as selectors } from "../chunks/constants32.js";
13
+ import { A as ALL_VALUE, s as selectors, a as semanticClassNames, T as TestIds, d as defaultValues, b as TriggerModeValues, c as ARIA_LABEL_NAMESPACE, e as AriaLabels } from "../chunks/constants32.js";
14
14
  import { u as useResizeObserver } from "../chunks/useResizeObserver.js";
15
15
  import { D as DismissSmall_default } from "../chunks/DismissSmall.js";
16
16
  import { g as getDefaultExportFromCjs } from "../chunks/_commonjsHelpers.js";
@@ -219,11 +219,11 @@ const readOptionValue = (item) => {
219
219
  }
220
220
  return null;
221
221
  };
222
- const toOptionItems = (options) => options.filter((option2) => ((option2 == null ? void 0 : option2.label) ?? "").trim() !== "").map((option2, index) => ({
223
- key: `option-${index}`,
224
- value: (option2 == null ? void 0 : option2.value) ?? "",
225
- label: (option2 == null ? void 0 : option2.label) ?? ""
226
- }));
222
+ const toOptionItems = (options) => options.filter((option2) => ((option2 == null ? void 0 : option2.label) ?? "").trim() !== "").map((option2, index) => {
223
+ const label2 = (option2 == null ? void 0 : option2.label) ?? "";
224
+ const value2 = (option2 == null ? void 0 : option2.value) ?? "";
225
+ return { key: `option-${index}`, value: value2 || label2, label: label2 };
226
+ });
227
227
  const readSelectedValues = (rawValue, isMultiple) => {
228
228
  let list2;
229
229
  if (!isMultiple) {
@@ -397,35 +397,47 @@ const DropdownChips = ({
397
397
  const chipsRef = useRef(null);
398
398
  const visible = useChipOverflow(chipsRef, items.length);
399
399
  const hidden = items.length - visible;
400
- return /* @__PURE__ */ jsxs(Combobox.Chips, { ref: chipsRef, className: styles.chips, children: [
401
- items.slice(0, visible).map((item, index) => /* @__PURE__ */ jsxs(
402
- Combobox.Chip,
403
- {
404
- "data-chip": "",
405
- className: clsx(
406
- styles.chip,
407
- index === visible - 1 && styles.chipShrink
408
- ),
409
- children: [
410
- /* @__PURE__ */ jsx("span", { className: styles.chipLabel, children: item.label }),
411
- /* @__PURE__ */ jsx(
412
- Combobox.ChipRemove,
413
- {
414
- className: styles.chipRemove,
415
- "aria-label": removeItemLabel,
416
- children: /* @__PURE__ */ jsx(DismissSmall_default, { "aria-hidden": "true" })
417
- }
418
- )
419
- ]
420
- },
421
- item.key
422
- )),
423
- hidden > 0 && /* @__PURE__ */ jsxs("span", { className: styles.chipsOverflow, children: [
424
- "+",
425
- hidden
426
- ] }),
427
- inputControl
428
- ] });
400
+ return /* @__PURE__ */ jsxs(
401
+ Combobox.Chips,
402
+ {
403
+ ref: chipsRef,
404
+ className: clsx(
405
+ styles.chips,
406
+ formatClassNames(semanticClassNames.chips)
407
+ ),
408
+ children: [
409
+ items.slice(0, visible).map((item, index) => /* @__PURE__ */ jsxs(
410
+ Combobox.Chip,
411
+ {
412
+ "data-chip": "",
413
+ className: clsx(
414
+ styles.chip,
415
+ selectors.chip,
416
+ formatClassNames(semanticClassNames.chip),
417
+ index === visible - 1 && styles.chipShrink
418
+ ),
419
+ children: [
420
+ /* @__PURE__ */ jsx("span", { className: styles.chipLabel, children: item.label }),
421
+ /* @__PURE__ */ jsx(
422
+ Combobox.ChipRemove,
423
+ {
424
+ className: styles.chipRemove,
425
+ "aria-label": removeItemLabel,
426
+ children: /* @__PURE__ */ jsx(DismissSmall_default, { "aria-hidden": "true" })
427
+ }
428
+ )
429
+ ]
430
+ },
431
+ item.key
432
+ )),
433
+ hidden > 0 && /* @__PURE__ */ jsxs("span", { className: styles.chipsOverflow, children: [
434
+ "+",
435
+ hidden
436
+ ] }),
437
+ inputControl
438
+ ]
439
+ }
440
+ );
429
441
  };
430
442
  const DropdownTrigger = ({
431
443
  isMultiple,
@@ -435,6 +447,7 @@ const DropdownTrigger = ({
435
447
  selectedItems,
436
448
  placeholder,
437
449
  ariaLabel,
450
+ labelId,
438
451
  clearLabel,
439
452
  removeItemLabel,
440
453
  descriptionId,
@@ -443,12 +456,22 @@ const DropdownTrigger = ({
443
456
  }) => {
444
457
  const triggerClassName = clsx(
445
458
  styles.trigger,
459
+ selectors.trigger,
446
460
  formatClassNames(semanticClassNames.trigger)
447
461
  );
462
+ const inputGroupClassName = clsx(
463
+ styles.trigger,
464
+ selectors.input,
465
+ formatClassNames(semanticClassNames.input)
466
+ );
448
467
  const clearControl = clearable ? /* @__PURE__ */ jsx(
449
468
  Combobox.Clear,
450
469
  {
451
- className: styles.clear,
470
+ className: clsx(
471
+ styles.clear,
472
+ selectors.clear,
473
+ formatClassNames(semanticClassNames.clear)
474
+ ),
452
475
  "aria-label": clearLabel,
453
476
  "data-testid": TestIds.clear,
454
477
  children: /* @__PURE__ */ jsx(DismissSmall_default, { "aria-hidden": "true" })
@@ -462,13 +485,14 @@ const DropdownTrigger = ({
462
485
  readOnly: !isSearchable,
463
486
  placeholder: isMultiple && selectedItems.length > 0 ? "" : placeholder,
464
487
  "aria-label": ariaLabel,
488
+ "aria-labelledby": labelId,
465
489
  "aria-describedby": descriptionId,
466
490
  onFocus,
467
491
  onBlur
468
492
  }
469
493
  );
470
494
  if (isMultiple) {
471
- return /* @__PURE__ */ jsxs(Combobox.InputGroup, { className: triggerClassName, children: [
495
+ return /* @__PURE__ */ jsxs(Combobox.InputGroup, { className: inputGroupClassName, children: [
472
496
  /* @__PURE__ */ jsx(
473
497
  DropdownChips,
474
498
  {
@@ -481,7 +505,7 @@ const DropdownTrigger = ({
481
505
  ] });
482
506
  }
483
507
  if (isSearchable) {
484
- return /* @__PURE__ */ jsxs(Combobox.InputGroup, { className: triggerClassName, children: [
508
+ return /* @__PURE__ */ jsxs(Combobox.InputGroup, { className: inputGroupClassName, children: [
485
509
  inputControl,
486
510
  clearControl
487
511
  ] });
@@ -508,6 +532,7 @@ const DropdownList = ({
508
532
  inputValue,
509
533
  limit,
510
534
  isGrid,
535
+ isSearchable,
511
536
  columns,
512
537
  inline,
513
538
  isMultiple,
@@ -517,13 +542,16 @@ const DropdownList = ({
517
542
  }) => {
518
543
  const optionClassName = clsx(
519
544
  styles.option,
545
+ selectors.option,
520
546
  formatClassNames(semanticClassNames.option)
521
547
  );
522
548
  const renderItem = (item) => /* @__PURE__ */ jsxs(Combobox.Item, { value: item, className: optionClassName, children: [
523
549
  item.label,
524
550
  isMultiple && /* @__PURE__ */ jsx(Combobox.ItemIndicator, { className: styles.itemIndicator, children: /* @__PURE__ */ jsx(ConfirmSmall_default, { "aria-hidden": "true" }) })
525
551
  ] }, item.key);
526
- const gridItems = optionItems.filter((item) => filterItem(item, inputValue));
552
+ const gridItems = optionItems.filter(
553
+ (item) => filterItem(item, isSearchable ? inputValue : "")
554
+ );
527
555
  const gridVisible = limit > 0 ? gridItems.slice(0, limit) : gridItems;
528
556
  const gridStyle = { "--columns": columns };
529
557
  const listChildren = isGrid ? chunk(gridVisible, columns).map((row, rowIndex) => /* @__PURE__ */ jsx(Combobox.Row, { className: styles.gridRow, children: row.map(renderItem) }, `row-${rowIndex}`)) : renderItem;
@@ -540,6 +568,7 @@ const DropdownList = ({
540
568
  {
541
569
  className: clsx(
542
570
  styles.inlineList,
571
+ selectors.list,
543
572
  formatClassNames(semanticClassNames.listbox)
544
573
  ),
545
574
  "data-testid": TestIds.listbox,
@@ -555,6 +584,7 @@ const DropdownList = ({
555
584
  {
556
585
  className: clsx(
557
586
  styles.popup,
587
+ selectors.list,
558
588
  formatClassNames(semanticClassNames.listbox)
559
589
  ),
560
590
  "data-testid": TestIds.listbox,
@@ -591,6 +621,7 @@ function Dropdown(props) {
591
621
  name = defaultValues.name,
592
622
  triggerMode = defaultValues.triggerMode,
593
623
  applyButtonLabel = defaultValues.applyButtonLabel,
624
+ previewList,
594
625
  direction,
595
626
  a11y,
596
627
  onChange = noop,
@@ -651,7 +682,7 @@ function Dropdown(props) {
651
682
  inline
652
683
  });
653
684
  const t = translate(ARIA_LABEL_NAMESPACE);
654
- const ariaLabel = t(AriaLabels.root.key) || (a11y == null ? void 0 : a11y.ariaLabel) || AriaLabels.root.default;
685
+ const ariaLabel = label2 ? void 0 : t(AriaLabels.root.key) || (a11y == null ? void 0 : a11y.ariaLabel) || AriaLabels.root.default;
655
686
  const clearLabel = t(AriaLabels.clear.key) || AriaLabels.clear.default;
656
687
  const removeItemLabel = t(AriaLabels.removeItem.key) || AriaLabels.removeItem.default;
657
688
  const rootClassName = clsx(
@@ -662,9 +693,11 @@ function Dropdown(props) {
662
693
  !direction && directionStyles.fallbackDirection
663
694
  );
664
695
  const descriptionId = description2 ? `${id}-description` : void 0;
696
+ const comboboxId = `${id}-combobox`;
697
+ const labelId = label2 ? `${comboboxId}-label` : void 0;
665
698
  const fieldName = name || void 0;
666
699
  const hasInput = isMultiple || isSearchable;
667
- const popupOpen = isMultiple || !isSearchable ? isOpen : isOpen && hasQuery;
700
+ const popupOpen = previewList === true || (isMultiple || !isSearchable ? isOpen : isOpen && hasQuery);
668
701
  const triggerRegion = /* @__PURE__ */ jsx(
669
702
  DropdownTrigger,
670
703
  {
@@ -675,6 +708,7 @@ function Dropdown(props) {
675
708
  selectedItems,
676
709
  placeholder,
677
710
  ariaLabel,
711
+ labelId,
678
712
  clearLabel,
679
713
  removeItemLabel,
680
714
  descriptionId,
@@ -690,6 +724,7 @@ function Dropdown(props) {
690
724
  inputValue,
691
725
  limit,
692
726
  isGrid,
727
+ isSearchable,
693
728
  columns,
694
729
  inline,
695
730
  isMultiple,
@@ -701,6 +736,7 @@ function Dropdown(props) {
701
736
  const field = /* @__PURE__ */ jsxs(
702
737
  Combobox.Root,
703
738
  {
739
+ id: comboboxId,
704
740
  multiple: isMultiple,
705
741
  value: isMultiple ? selectedItems : selectedItems[0] ?? null,
706
742
  onValueChange: (next) => {
@@ -730,7 +766,18 @@ function Dropdown(props) {
730
766
  ...inline ? {} : { open: popupOpen, onOpenChange: setIsOpen },
731
767
  ...isSearchable ? { inputValue, onInputValueChange: handleInputValueChange } : {},
732
768
  children: [
733
- label2 && /* @__PURE__ */ jsx(Combobox.Label, { className: styles.label, "data-testid": TestIds.label, children: label2 }),
769
+ label2 && /* @__PURE__ */ jsx(
770
+ Combobox.Label,
771
+ {
772
+ className: clsx(
773
+ styles.label,
774
+ selectors.label,
775
+ formatClassNames(semanticClassNames.label)
776
+ ),
777
+ "data-testid": TestIds.label,
778
+ children: label2
779
+ }
780
+ ),
734
781
  triggerRegion,
735
782
  list2
736
783
  ]
@@ -1,4 +1,9 @@
1
+ import { default as React } from 'react';
1
2
  import { ResolveManifestOverrides } from '../../../utils/ResolveManifestOverrides';
2
- import { default as Dropdown } from './Dropdown';
3
- export default Dropdown;
3
+ import { DropdownProps } from './Dropdown.types';
4
+ type DropdownPreviewProps = DropdownProps & {
5
+ previewChips?: boolean;
6
+ };
7
+ export default function DropdownPreview(props: DropdownPreviewProps): React.JSX.Element;
4
8
  export declare const resolveManifestOverrides: ResolveManifestOverrides;
9
+ export {};
@@ -6,6 +6,7 @@ type DropdownListProps = {
6
6
  inputValue: string;
7
7
  limit: number;
8
8
  isGrid: boolean;
9
+ isSearchable: boolean;
9
10
  columns: number;
10
11
  inline: boolean;
11
12
  isMultiple: boolean;
@@ -13,5 +14,5 @@ type DropdownListProps = {
13
14
  hasQuery: boolean;
14
15
  popoverContainer: HTMLDivElement | null;
15
16
  };
16
- export declare const DropdownList: ({ optionItems, filterItem, inputValue, limit, isGrid, columns, inline, isMultiple, hasInput, hasQuery, popoverContainer, }: DropdownListProps) => React.ReactElement;
17
+ export declare const DropdownList: ({ optionItems, filterItem, inputValue, limit, isGrid, isSearchable, columns, inline, isMultiple, hasInput, hasQuery, popoverContainer, }: DropdownListProps) => React.ReactElement;
17
18
  export {};
@@ -7,12 +7,13 @@ type DropdownTriggerProps = {
7
7
  selectedLabel: string;
8
8
  selectedItems: Array<DropdownItem>;
9
9
  placeholder: string;
10
- ariaLabel: string;
10
+ ariaLabel: string | undefined;
11
+ labelId: string | undefined;
11
12
  clearLabel: string;
12
13
  removeItemLabel: string;
13
14
  descriptionId: string | undefined;
14
15
  onFocus: (event: React.FocusEvent) => void;
15
16
  onBlur: (event: React.FocusEvent) => void;
16
17
  };
17
- export declare const DropdownTrigger: ({ isMultiple, isSearchable, clearable, selectedLabel, selectedItems, placeholder, ariaLabel, clearLabel, removeItemLabel, descriptionId, onFocus, onBlur, }: DropdownTriggerProps) => React.ReactElement;
18
+ export declare const DropdownTrigger: ({ isMultiple, isSearchable, clearable, selectedLabel, selectedItems, placeholder, ariaLabel, labelId, clearLabel, removeItemLabel, descriptionId, onFocus, onBlur, }: DropdownTriggerProps) => React.ReactElement;
18
19
  export {};
@@ -9,6 +9,73 @@ export declare const DesignStates: {
9
9
  readonly className: "dropdown--disabled";
10
10
  };
11
11
  };
12
+ readonly input: {
13
+ readonly hover: {
14
+ readonly displayName: "Hover";
15
+ readonly className: "dropdown__input--hover";
16
+ };
17
+ readonly focus: {
18
+ readonly displayName: "Focus";
19
+ readonly className: "dropdown__input--focus";
20
+ };
21
+ readonly disabled: {
22
+ readonly displayName: "Disabled";
23
+ readonly className: "dropdown__input--disabled";
24
+ };
25
+ };
26
+ readonly trigger: {
27
+ readonly hover: {
28
+ readonly displayName: "Hover";
29
+ readonly className: "dropdown__trigger--hover";
30
+ };
31
+ readonly selected: {
32
+ readonly displayName: "Selected";
33
+ readonly className: "dropdown__trigger--selected";
34
+ };
35
+ };
36
+ readonly clearButton: {
37
+ readonly hover: {
38
+ readonly displayName: "Hover";
39
+ readonly className: "dropdown__clear--hover";
40
+ };
41
+ readonly selected: {
42
+ readonly displayName: "Selected";
43
+ readonly className: "dropdown__clear--selected";
44
+ };
45
+ };
46
+ readonly option: {
47
+ readonly hover: {
48
+ readonly displayName: "Hover";
49
+ readonly className: "dropdown__option--hover";
50
+ };
51
+ readonly selected: {
52
+ readonly displayName: "Selected";
53
+ readonly className: "dropdown__option--selected";
54
+ };
55
+ };
56
+ readonly chip: {
57
+ readonly hover: {
58
+ readonly displayName: "Hover";
59
+ readonly className: "dropdown__chip--hover";
60
+ };
61
+ readonly selected: {
62
+ readonly displayName: "Selected";
63
+ readonly className: "dropdown__chip--selected";
64
+ };
65
+ };
66
+ };
67
+ export declare const ElementKeys: {
68
+ readonly label: "label";
69
+ readonly input: "input";
70
+ readonly trigger: "trigger";
71
+ readonly clearButton: "clearButton";
72
+ readonly list: "list";
73
+ readonly option: "option";
74
+ readonly chip: "chip";
75
+ };
76
+ export declare const FunctionalStateKeys: {
77
+ readonly previewList: "previewList";
78
+ readonly previewChips: "previewChips";
12
79
  };
13
80
  export declare const DisplayNames: {
14
81
  root: {
@@ -56,6 +123,7 @@ export declare const DisplayNames: {
56
123
  paddingInlineStart: string;
57
124
  paddingInlineEnd: string;
58
125
  gap: string;
126
+ boxShadow: string;
59
127
  textAlign: string;
60
128
  font: string;
61
129
  textColor: string;
@@ -65,6 +133,18 @@ export declare const DisplayNames: {
65
133
  helperColor: string;
66
134
  optionTextColor: string;
67
135
  optionHoverBackgroundColor: string;
136
+ placeholderColor: string;
137
+ chipBackgroundColor: string;
138
+ chipTextColor: string;
139
+ };
140
+ elements: {
141
+ label: string;
142
+ input: string;
143
+ trigger: string;
144
+ clearButton: string;
145
+ list: string;
146
+ option: string;
147
+ chip: string;
68
148
  };
69
149
  displayGroups: {
70
150
  optionsGroup: string;
@@ -87,7 +167,7 @@ export declare const defaultValues: {
87
167
  readonly openOnInputClick: true;
88
168
  readonly inline: false;
89
169
  readonly grid: false;
90
- readonly columns: 3;
170
+ readonly columns: 2;
91
171
  readonly limit: -1;
92
172
  readonly label: "";
93
173
  readonly required: false;
@@ -115,12 +195,24 @@ export declare const TestIds: {
115
195
  };
116
196
  export declare const selectors: {
117
197
  readonly root: "dropdown";
198
+ readonly label: "dropdown-label";
199
+ readonly input: "dropdown-input";
200
+ readonly trigger: "dropdown-trigger";
201
+ readonly clear: "dropdown-clear";
202
+ readonly list: "dropdown-list";
203
+ readonly option: "dropdown-option";
204
+ readonly chip: "dropdown-chip";
118
205
  };
119
206
  export declare const semanticClassNames: {
120
207
  readonly root: "dropdown";
208
+ readonly label: "dropdown__label";
209
+ readonly input: "dropdown__input";
121
210
  readonly trigger: "dropdown__trigger";
211
+ readonly clear: "dropdown__clear";
122
212
  readonly listbox: "dropdown__listbox";
123
213
  readonly option: "dropdown__option";
214
+ readonly chips: "dropdown__chips";
215
+ readonly chip: "dropdown__chip";
124
216
  readonly applyButton: "dropdown__apply-button";
125
217
  };
126
218
  export declare const ARIA_LABEL_NAMESPACE = "ariaLabels";
@@ -1,8 +1,9 @@
1
1
  .root__WnTks {
2
2
  box-sizing: border-box;
3
3
  display: inline-flex;
4
- align-items: center;
5
- gap: var(--gap);
4
+ flex-direction: column;
5
+ align-items: stretch;
6
+ gap: 8px;
6
7
  min-width: var(--minWidth, 240px);
7
8
  max-width: var(--maxWidth, 100%);
8
9
  }
@@ -31,8 +32,9 @@
31
32
  padding-inline-end: var(--paddingInlineEnd);
32
33
  color: var(--textColor, var(--wst-paragraph-2-color, #000));
33
34
  font: var(--font, var(--wst-paragraph-2-font));
35
+ box-shadow: var(--boxShadow, none);
34
36
  }
35
- .root__WnTks .trigger__J7jn7:focus-within {
37
+ .root__WnTks .trigger__J7jn7:focus-within, .root__WnTks .trigger__J7jn7.dropdown__input--focus {
36
38
  border-color: var(--borderColor, var(--wst-system-line-1-color, #000));
37
39
  }
38
40
  .root__WnTks .option__QJeiF {
@@ -45,10 +47,10 @@
45
47
  color: var(--optionTextColor, var(--wst-paragraph-2-color, #000));
46
48
  font: var(--font, var(--wst-paragraph-2-font));
47
49
  }
48
- .root__WnTks .option__QJeiF[data-highlighted] {
50
+ .root__WnTks .option__QJeiF[data-highlighted], .root__WnTks .option__QJeiF.dropdown__option--hover {
49
51
  background-color: var(--optionHoverBackgroundColor, color-mix(in srgb, var(--wst-paragraph-2-color, #000) 6%, transparent));
50
52
  }
51
- .root__WnTks .option__QJeiF[data-selected] {
53
+ .root__WnTks .option__QJeiF[data-selected], .root__WnTks .option__QJeiF.dropdown__option--selected {
52
54
  background-color: color-mix(in srgb, var(--wst-paragraph-2-color, #000) 12%, transparent);
53
55
  }
54
56
 
@@ -61,12 +63,13 @@
61
63
  min-width: 0;
62
64
  display: flex;
63
65
  flex-direction: column;
64
- gap: 4px;
66
+ gap: var(--gap, 4px);
65
67
  }
66
68
 
67
69
  .label__Q7fZH {
68
70
  font: var(--labelFont, var(--wst-paragraph-2-font));
69
71
  color: var(--labelColor, var(--wst-paragraph-2-color, #000));
72
+ overflow-wrap: break-word;
70
73
  }
71
74
 
72
75
  .description__77blZ {
@@ -118,7 +121,8 @@
118
121
  border-start-end-radius: var(--borderStartEndRadius);
119
122
  border-end-start-radius: var(--borderEndStartRadius);
120
123
  border-end-end-radius: var(--borderEndEndRadius);
121
- background-color: color-mix(in srgb, var(--wst-paragraph-2-color, #000) 8%, transparent);
124
+ background-color: var(--chipBackgroundColor, color-mix(in srgb, var(--wst-paragraph-2-color, #000) 8%, transparent));
125
+ color: var(--chipTextColor, inherit);
122
126
  font: var(--font, var(--wst-paragraph-2-font));
123
127
  line-height: 1.4;
124
128
  }
@@ -194,7 +198,7 @@
194
198
 
195
199
  .gridRow__9DEae {
196
200
  display: grid;
197
- grid-template-columns: repeat(var(--columns, 3), minmax(0, 1fr));
201
+ grid-template-columns: repeat(var(--columns, 2), minmax(0, 1fr));
198
202
  gap: 4px;
199
203
  }
200
204
 
@@ -220,6 +224,9 @@
220
224
  color: inherit;
221
225
  font: inherit;
222
226
  }
227
+ .value__pqgtJ::placeholder {
228
+ color: var(--placeholderColor, color-mix(in srgb, var(--wst-paragraph-2-color, #000) 65%, transparent));
229
+ }
223
230
 
224
231
  .arrow__Q2E2Y {
225
232
  flex: none;