@elementor/editor-controls 4.3.0-999 → 4.4.0-1064

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.mts CHANGED
@@ -29,11 +29,11 @@ declare const TextControl: ControlComponent$1<({ placeholder: propPlaceholder, e
29
29
  ariaLabel?: string;
30
30
  }) => React$1.JSX.Element>;
31
31
 
32
- type Props$d = {
32
+ type Props$e = {
33
33
  placeholder?: string;
34
34
  ariaLabel?: string;
35
35
  };
36
- declare const TextAreaControl: ControlComponent$1<({ placeholder: propPlaceholder, ariaLabel }: Props$d) => React$1.JSX.Element>;
36
+ declare const TextAreaControl: ControlComponent$1<({ placeholder: propPlaceholder, ariaLabel }: Props$e) => React$1.JSX.Element>;
37
37
 
38
38
  type Suggestion = {
39
39
  label: string;
@@ -41,14 +41,14 @@ type Suggestion = {
41
41
  };
42
42
 
43
43
  type TriggerPosition = 'start' | 'auto';
44
- type Props$c = {
44
+ type Props$d = {
45
45
  placeholder?: string;
46
46
  ariaLabel?: string;
47
47
  suggestions: Suggestion[];
48
48
  rows?: number;
49
49
  triggerPosition?: TriggerPosition;
50
50
  };
51
- declare const MentionTextAreaControl: ControlComponent$1<({ placeholder, ariaLabel, suggestions: allSuggestions, rows, triggerPosition }: Props$c) => React$1.JSX.Element>;
51
+ declare const MentionTextAreaControl: ControlComponent$1<({ placeholder, ariaLabel, suggestions: allSuggestions, rows, triggerPosition }: Props$d) => React$1.JSX.Element>;
52
52
 
53
53
  type SizeUnit$1 = SizePropValue['value']['unit'];
54
54
  type ExtendedOption = Extract<SizeUnit$1, 'auto' | 'custom'>;
@@ -105,13 +105,18 @@ type SelectOption$1 = {
105
105
  value: StringPropValue['value'];
106
106
  disabled?: boolean;
107
107
  };
108
- type SelectControlProps = {
108
+ type SelectOptionGroup = {
109
+ label: string;
109
110
  options: SelectOption$1[];
111
+ };
112
+ type SelectControlProps = {
113
+ options?: SelectOption$1[];
114
+ groups?: SelectOptionGroup[];
110
115
  onChange?: (newValue: string | null, previousValue: string | null | undefined) => void;
111
116
  MenuProps?: SelectProps['MenuProps'];
112
117
  ariaLabel?: string;
113
118
  };
114
- declare const SelectControl: ControlComponent$1<({ options, onChange, MenuProps, ariaLabel }: SelectControlProps) => React$1.JSX.Element>;
119
+ declare const SelectControl: ControlComponent$1<({ options, groups, onChange, MenuProps, ariaLabel }: SelectControlProps) => React$1.JSX.Element>;
115
120
 
116
121
  declare const collectionMethods: {
117
122
  readonly 'off-canvas': () => SelectOption$1[];
@@ -132,12 +137,12 @@ type ChipsControlProps = {
132
137
  };
133
138
  declare const ChipsControl: ControlComponent$1<({ options, freeChips }: ChipsControlProps) => React$1.JSX.Element>;
134
139
 
135
- type Props$b = Partial<Omit<UnstableColorFieldProps, 'value' | 'onChange'>> & {
140
+ type Props$c = Partial<Omit<UnstableColorFieldProps, 'value' | 'onChange'>> & {
136
141
  propTypeUtil?: PropTypeUtil<string, string>;
137
142
  anchorEl?: HTMLElement | null;
138
143
  id?: string;
139
144
  };
140
- declare const ColorControl: ControlComponent$1<({ propTypeUtil, anchorEl, slotProps, id, ...props }: Props$b) => React$1.JSX.Element>;
145
+ declare const ColorControl: ControlComponent$1<({ propTypeUtil, anchorEl, slotProps, id, ...props }: Props$c) => React$1.JSX.Element>;
141
146
 
142
147
  type RenderContentProps = {
143
148
  size: ToggleButtonProps['size'];
@@ -157,7 +162,7 @@ declare const StyledToggleButton: _emotion_styled.StyledComponent<any, {}, {
157
162
  }>;
158
163
  type ExclusiveValue<TValue> = TValue;
159
164
  type NonExclusiveValue<TValue> = TValue[];
160
- type Props$a<TValue> = {
165
+ type Props$b<TValue> = {
161
166
  disabled?: boolean;
162
167
  justify?: StackProps['justifyContent'];
163
168
  size?: ToggleButtonProps['size'];
@@ -174,10 +179,10 @@ type Props$a<TValue> = {
174
179
  value: ExclusiveValue<TValue>;
175
180
  onChange: (value: ExclusiveValue<TValue>) => void;
176
181
  });
177
- declare const ToggleButtonGroupUi: <TValue>(props: Props$a<TValue> & {
182
+ declare const ToggleButtonGroupUi: <TValue>(props: Props$b<TValue> & {
178
183
  ref?: React$1.Ref<HTMLDivElement>;
179
184
  }) => React$1.ReactElement;
180
- declare const ControlToggleButtonGroup: <TValue>(props: Props$a<TValue>) => React$1.JSX.Element;
185
+ declare const ControlToggleButtonGroup: <TValue>(props: Props$b<TValue>) => React$1.JSX.Element;
181
186
 
182
187
  type ToggleControlProps<T extends PropValue> = {
183
188
  options: Array<ToggleButtonGroupItem<T> & {
@@ -209,22 +214,22 @@ type Item$1 = {
209
214
  bind: PropKey;
210
215
  };
211
216
  type EqualUnequalItems = [Item$1, Item$1, Item$1, Item$1];
212
- type Props$9<TMultiPropType extends string, TPropValue extends MultiSizePropValue> = {
217
+ type Props$a<TMultiPropType extends string, TPropValue extends MultiSizePropValue> = {
213
218
  label: string;
214
219
  icon: ReactNode;
215
220
  tooltipLabel: string;
216
221
  items: EqualUnequalItems;
217
222
  multiSizePropTypeUtil: PropTypeUtil<TMultiPropType, TPropValue>;
218
223
  };
219
- declare function EqualUnequalSizesControl<TMultiPropType extends string, TPropValue extends MultiSizePropValue>({ label, icon, tooltipLabel, items, multiSizePropTypeUtil, }: Props$9<TMultiPropType, TPropValue>): React$1.JSX.Element;
224
+ declare function EqualUnequalSizesControl<TMultiPropType extends string, TPropValue extends MultiSizePropValue>({ label, icon, tooltipLabel, items, multiSizePropTypeUtil, }: Props$a<TMultiPropType, TPropValue>): React$1.JSX.Element;
220
225
 
221
- type Props$8 = {
226
+ type Props$9 = {
222
227
  label: string;
223
228
  isSiteRtl?: boolean;
224
229
  extendedOptions?: ExtendedOption[];
225
230
  min?: number;
226
231
  };
227
- declare const LinkedDimensionsControl: ({ label, isSiteRtl, min }: Props$8) => React$1.JSX.Element;
232
+ declare const LinkedDimensionsControl: ({ label, isSiteRtl, min }: Props$9) => React$1.JSX.Element;
228
233
 
229
234
  type FontCategory = {
230
235
  label: string;
@@ -277,7 +282,7 @@ type ControlProps<TControlProps = unknown> = TControlProps & {
277
282
  };
278
283
  };
279
284
 
280
- type Props$7 = ControlProps<{
285
+ type Props$8 = ControlProps<{
281
286
  queryOptions: {
282
287
  params: Record<string, unknown>;
283
288
  url: string;
@@ -289,19 +294,19 @@ type Props$7 = ControlProps<{
289
294
  ariaLabel?: string;
290
295
  }>;
291
296
  type DestinationProp = LinkPropValue['value']['destination'];
292
- declare const LinkControl: ControlComponent$1<(props: Props$7) => React$1.JSX.Element>;
297
+ declare const LinkControl: ControlComponent$1<(props: Props$8) => React$1.JSX.Element>;
293
298
 
294
299
  type SelectOption = {
295
300
  label: string;
296
301
  value: StringPropValue['value'];
297
302
  disabled?: boolean;
298
303
  };
299
- type Props$6 = ControlProps<{
304
+ type Props$7 = ControlProps<{
300
305
  options: SelectOption[];
301
306
  onChange?: (newValue: string | null, previousValue: string | null | undefined) => void;
302
307
  fallbackLabels?: Record<string, string>;
303
308
  }>;
304
- declare const HtmlTagControl: ControlComponent$1<(props: Props$6) => React$1.JSX.Element>;
309
+ declare const HtmlTagControl: ControlComponent$1<(props: Props$7) => React$1.JSX.Element>;
305
310
 
306
311
  type QueryChipsControlProps = {
307
312
  queryOptions: {
@@ -313,7 +318,7 @@ type QueryChipsControlProps = {
313
318
  };
314
319
  declare const QueryChipsControl: ControlComponent$1<(props: QueryChipsControlProps) => React$1.JSX.Element>;
315
320
 
316
- type Props$5 = {
321
+ type Props$6 = {
317
322
  queryOptions: {
318
323
  params: Record<string, unknown>;
319
324
  url: string;
@@ -324,7 +329,7 @@ type Props$5 = {
324
329
  onSetValue?: (value: DestinationProp | null) => void;
325
330
  ariaLabel?: string;
326
331
  };
327
- declare const QueryControl: ControlComponent$1<(props: Props$5) => React$1.JSX.Element>;
332
+ declare const QueryControl: ControlComponent$1<(props: Props$6) => React$1.JSX.Element>;
328
333
 
329
334
  type QueryFilterRepeaterControlProps = {
330
335
  allowedKeys: string[];
@@ -342,7 +347,10 @@ declare const AspectRatioControl: ControlComponent$1<({ label }: {
342
347
  label: string;
343
348
  }) => React$1.JSX.Element>;
344
349
 
345
- declare const SvgMediaControl: ControlComponent$1<() => React$1.JSX.Element>;
350
+ type SvgMediaControlProps = {
351
+ showIconLibrary?: boolean;
352
+ };
353
+ declare const SvgMediaControl: ControlComponent$1<({ showIconLibrary }: SvgMediaControlProps) => React$1.JSX.Element>;
346
354
 
347
355
  declare const VideoMediaControl: ControlComponent$1<() => React$1.JSX.Element>;
348
356
 
@@ -455,11 +463,12 @@ declare const TimeStringControl: ControlComponent$1<({ inputDisabled, ariaLabel,
455
463
 
456
464
  declare const TimeRangeControl: ControlComponent$1<() => React$1.JSX.Element>;
457
465
 
458
- declare const InlineEditingControl: ControlComponent$1<({ sx, attributes, props, }: {
466
+ type Props$5 = ControlProps<{
459
467
  sx?: SxProps<Theme>;
460
468
  attributes?: Record<string, string>;
461
- props?: ComponentProps<"div">;
462
- }) => React$1.JSX.Element>;
469
+ props?: ComponentProps<'div'>;
470
+ }>;
471
+ declare const InlineEditingControl: ControlComponent$1<({ sx, attributes, props, context: { elementId } }: Props$5) => React$1.JSX.Element>;
463
472
 
464
473
  declare const EmailFormActionControl: ControlComponent$1<({ toPlaceholder, label }: {
465
474
  toPlaceholder?: string;
@@ -697,6 +706,7 @@ type InlineEditorProps = {
697
706
  autofocus?: boolean;
698
707
  expectedTag?: string | null;
699
708
  onEditorCreate?: Dispatch<SetStateAction<Editor | null>>;
709
+ onEditorDestroy?: () => void;
700
710
  wrapperClassName?: string;
701
711
  onSelectionEnd?: (view: EditorView) => void;
702
712
  mountElement?: HTMLElement | null;
@@ -707,8 +717,9 @@ type InlineEditorToolbarProps = {
707
717
  editor: Editor;
708
718
  elementId?: ElementID;
709
719
  sx?: SxProps<Theme>;
720
+ inControlPanel?: boolean;
710
721
  };
711
- declare const InlineEditorToolbar: ({ editor, elementId, sx }: InlineEditorToolbarProps) => React$1.JSX.Element;
722
+ declare const InlineEditorToolbar: ({ editor, elementId, sx, inControlPanel, }: InlineEditorToolbarProps) => React$1.JSX.Element;
712
723
 
713
724
  type Props$2<TValue> = {
714
725
  value: TValue;
package/dist/index.d.ts CHANGED
@@ -29,11 +29,11 @@ declare const TextControl: ControlComponent$1<({ placeholder: propPlaceholder, e
29
29
  ariaLabel?: string;
30
30
  }) => React$1.JSX.Element>;
31
31
 
32
- type Props$d = {
32
+ type Props$e = {
33
33
  placeholder?: string;
34
34
  ariaLabel?: string;
35
35
  };
36
- declare const TextAreaControl: ControlComponent$1<({ placeholder: propPlaceholder, ariaLabel }: Props$d) => React$1.JSX.Element>;
36
+ declare const TextAreaControl: ControlComponent$1<({ placeholder: propPlaceholder, ariaLabel }: Props$e) => React$1.JSX.Element>;
37
37
 
38
38
  type Suggestion = {
39
39
  label: string;
@@ -41,14 +41,14 @@ type Suggestion = {
41
41
  };
42
42
 
43
43
  type TriggerPosition = 'start' | 'auto';
44
- type Props$c = {
44
+ type Props$d = {
45
45
  placeholder?: string;
46
46
  ariaLabel?: string;
47
47
  suggestions: Suggestion[];
48
48
  rows?: number;
49
49
  triggerPosition?: TriggerPosition;
50
50
  };
51
- declare const MentionTextAreaControl: ControlComponent$1<({ placeholder, ariaLabel, suggestions: allSuggestions, rows, triggerPosition }: Props$c) => React$1.JSX.Element>;
51
+ declare const MentionTextAreaControl: ControlComponent$1<({ placeholder, ariaLabel, suggestions: allSuggestions, rows, triggerPosition }: Props$d) => React$1.JSX.Element>;
52
52
 
53
53
  type SizeUnit$1 = SizePropValue['value']['unit'];
54
54
  type ExtendedOption = Extract<SizeUnit$1, 'auto' | 'custom'>;
@@ -105,13 +105,18 @@ type SelectOption$1 = {
105
105
  value: StringPropValue['value'];
106
106
  disabled?: boolean;
107
107
  };
108
- type SelectControlProps = {
108
+ type SelectOptionGroup = {
109
+ label: string;
109
110
  options: SelectOption$1[];
111
+ };
112
+ type SelectControlProps = {
113
+ options?: SelectOption$1[];
114
+ groups?: SelectOptionGroup[];
110
115
  onChange?: (newValue: string | null, previousValue: string | null | undefined) => void;
111
116
  MenuProps?: SelectProps['MenuProps'];
112
117
  ariaLabel?: string;
113
118
  };
114
- declare const SelectControl: ControlComponent$1<({ options, onChange, MenuProps, ariaLabel }: SelectControlProps) => React$1.JSX.Element>;
119
+ declare const SelectControl: ControlComponent$1<({ options, groups, onChange, MenuProps, ariaLabel }: SelectControlProps) => React$1.JSX.Element>;
115
120
 
116
121
  declare const collectionMethods: {
117
122
  readonly 'off-canvas': () => SelectOption$1[];
@@ -132,12 +137,12 @@ type ChipsControlProps = {
132
137
  };
133
138
  declare const ChipsControl: ControlComponent$1<({ options, freeChips }: ChipsControlProps) => React$1.JSX.Element>;
134
139
 
135
- type Props$b = Partial<Omit<UnstableColorFieldProps, 'value' | 'onChange'>> & {
140
+ type Props$c = Partial<Omit<UnstableColorFieldProps, 'value' | 'onChange'>> & {
136
141
  propTypeUtil?: PropTypeUtil<string, string>;
137
142
  anchorEl?: HTMLElement | null;
138
143
  id?: string;
139
144
  };
140
- declare const ColorControl: ControlComponent$1<({ propTypeUtil, anchorEl, slotProps, id, ...props }: Props$b) => React$1.JSX.Element>;
145
+ declare const ColorControl: ControlComponent$1<({ propTypeUtil, anchorEl, slotProps, id, ...props }: Props$c) => React$1.JSX.Element>;
141
146
 
142
147
  type RenderContentProps = {
143
148
  size: ToggleButtonProps['size'];
@@ -157,7 +162,7 @@ declare const StyledToggleButton: _emotion_styled.StyledComponent<any, {}, {
157
162
  }>;
158
163
  type ExclusiveValue<TValue> = TValue;
159
164
  type NonExclusiveValue<TValue> = TValue[];
160
- type Props$a<TValue> = {
165
+ type Props$b<TValue> = {
161
166
  disabled?: boolean;
162
167
  justify?: StackProps['justifyContent'];
163
168
  size?: ToggleButtonProps['size'];
@@ -174,10 +179,10 @@ type Props$a<TValue> = {
174
179
  value: ExclusiveValue<TValue>;
175
180
  onChange: (value: ExclusiveValue<TValue>) => void;
176
181
  });
177
- declare const ToggleButtonGroupUi: <TValue>(props: Props$a<TValue> & {
182
+ declare const ToggleButtonGroupUi: <TValue>(props: Props$b<TValue> & {
178
183
  ref?: React$1.Ref<HTMLDivElement>;
179
184
  }) => React$1.ReactElement;
180
- declare const ControlToggleButtonGroup: <TValue>(props: Props$a<TValue>) => React$1.JSX.Element;
185
+ declare const ControlToggleButtonGroup: <TValue>(props: Props$b<TValue>) => React$1.JSX.Element;
181
186
 
182
187
  type ToggleControlProps<T extends PropValue> = {
183
188
  options: Array<ToggleButtonGroupItem<T> & {
@@ -209,22 +214,22 @@ type Item$1 = {
209
214
  bind: PropKey;
210
215
  };
211
216
  type EqualUnequalItems = [Item$1, Item$1, Item$1, Item$1];
212
- type Props$9<TMultiPropType extends string, TPropValue extends MultiSizePropValue> = {
217
+ type Props$a<TMultiPropType extends string, TPropValue extends MultiSizePropValue> = {
213
218
  label: string;
214
219
  icon: ReactNode;
215
220
  tooltipLabel: string;
216
221
  items: EqualUnequalItems;
217
222
  multiSizePropTypeUtil: PropTypeUtil<TMultiPropType, TPropValue>;
218
223
  };
219
- declare function EqualUnequalSizesControl<TMultiPropType extends string, TPropValue extends MultiSizePropValue>({ label, icon, tooltipLabel, items, multiSizePropTypeUtil, }: Props$9<TMultiPropType, TPropValue>): React$1.JSX.Element;
224
+ declare function EqualUnequalSizesControl<TMultiPropType extends string, TPropValue extends MultiSizePropValue>({ label, icon, tooltipLabel, items, multiSizePropTypeUtil, }: Props$a<TMultiPropType, TPropValue>): React$1.JSX.Element;
220
225
 
221
- type Props$8 = {
226
+ type Props$9 = {
222
227
  label: string;
223
228
  isSiteRtl?: boolean;
224
229
  extendedOptions?: ExtendedOption[];
225
230
  min?: number;
226
231
  };
227
- declare const LinkedDimensionsControl: ({ label, isSiteRtl, min }: Props$8) => React$1.JSX.Element;
232
+ declare const LinkedDimensionsControl: ({ label, isSiteRtl, min }: Props$9) => React$1.JSX.Element;
228
233
 
229
234
  type FontCategory = {
230
235
  label: string;
@@ -277,7 +282,7 @@ type ControlProps<TControlProps = unknown> = TControlProps & {
277
282
  };
278
283
  };
279
284
 
280
- type Props$7 = ControlProps<{
285
+ type Props$8 = ControlProps<{
281
286
  queryOptions: {
282
287
  params: Record<string, unknown>;
283
288
  url: string;
@@ -289,19 +294,19 @@ type Props$7 = ControlProps<{
289
294
  ariaLabel?: string;
290
295
  }>;
291
296
  type DestinationProp = LinkPropValue['value']['destination'];
292
- declare const LinkControl: ControlComponent$1<(props: Props$7) => React$1.JSX.Element>;
297
+ declare const LinkControl: ControlComponent$1<(props: Props$8) => React$1.JSX.Element>;
293
298
 
294
299
  type SelectOption = {
295
300
  label: string;
296
301
  value: StringPropValue['value'];
297
302
  disabled?: boolean;
298
303
  };
299
- type Props$6 = ControlProps<{
304
+ type Props$7 = ControlProps<{
300
305
  options: SelectOption[];
301
306
  onChange?: (newValue: string | null, previousValue: string | null | undefined) => void;
302
307
  fallbackLabels?: Record<string, string>;
303
308
  }>;
304
- declare const HtmlTagControl: ControlComponent$1<(props: Props$6) => React$1.JSX.Element>;
309
+ declare const HtmlTagControl: ControlComponent$1<(props: Props$7) => React$1.JSX.Element>;
305
310
 
306
311
  type QueryChipsControlProps = {
307
312
  queryOptions: {
@@ -313,7 +318,7 @@ type QueryChipsControlProps = {
313
318
  };
314
319
  declare const QueryChipsControl: ControlComponent$1<(props: QueryChipsControlProps) => React$1.JSX.Element>;
315
320
 
316
- type Props$5 = {
321
+ type Props$6 = {
317
322
  queryOptions: {
318
323
  params: Record<string, unknown>;
319
324
  url: string;
@@ -324,7 +329,7 @@ type Props$5 = {
324
329
  onSetValue?: (value: DestinationProp | null) => void;
325
330
  ariaLabel?: string;
326
331
  };
327
- declare const QueryControl: ControlComponent$1<(props: Props$5) => React$1.JSX.Element>;
332
+ declare const QueryControl: ControlComponent$1<(props: Props$6) => React$1.JSX.Element>;
328
333
 
329
334
  type QueryFilterRepeaterControlProps = {
330
335
  allowedKeys: string[];
@@ -342,7 +347,10 @@ declare const AspectRatioControl: ControlComponent$1<({ label }: {
342
347
  label: string;
343
348
  }) => React$1.JSX.Element>;
344
349
 
345
- declare const SvgMediaControl: ControlComponent$1<() => React$1.JSX.Element>;
350
+ type SvgMediaControlProps = {
351
+ showIconLibrary?: boolean;
352
+ };
353
+ declare const SvgMediaControl: ControlComponent$1<({ showIconLibrary }: SvgMediaControlProps) => React$1.JSX.Element>;
346
354
 
347
355
  declare const VideoMediaControl: ControlComponent$1<() => React$1.JSX.Element>;
348
356
 
@@ -455,11 +463,12 @@ declare const TimeStringControl: ControlComponent$1<({ inputDisabled, ariaLabel,
455
463
 
456
464
  declare const TimeRangeControl: ControlComponent$1<() => React$1.JSX.Element>;
457
465
 
458
- declare const InlineEditingControl: ControlComponent$1<({ sx, attributes, props, }: {
466
+ type Props$5 = ControlProps<{
459
467
  sx?: SxProps<Theme>;
460
468
  attributes?: Record<string, string>;
461
- props?: ComponentProps<"div">;
462
- }) => React$1.JSX.Element>;
469
+ props?: ComponentProps<'div'>;
470
+ }>;
471
+ declare const InlineEditingControl: ControlComponent$1<({ sx, attributes, props, context: { elementId } }: Props$5) => React$1.JSX.Element>;
463
472
 
464
473
  declare const EmailFormActionControl: ControlComponent$1<({ toPlaceholder, label }: {
465
474
  toPlaceholder?: string;
@@ -697,6 +706,7 @@ type InlineEditorProps = {
697
706
  autofocus?: boolean;
698
707
  expectedTag?: string | null;
699
708
  onEditorCreate?: Dispatch<SetStateAction<Editor | null>>;
709
+ onEditorDestroy?: () => void;
700
710
  wrapperClassName?: string;
701
711
  onSelectionEnd?: (view: EditorView) => void;
702
712
  mountElement?: HTMLElement | null;
@@ -707,8 +717,9 @@ type InlineEditorToolbarProps = {
707
717
  editor: Editor;
708
718
  elementId?: ElementID;
709
719
  sx?: SxProps<Theme>;
720
+ inControlPanel?: boolean;
710
721
  };
711
- declare const InlineEditorToolbar: ({ editor, elementId, sx }: InlineEditorToolbarProps) => React$1.JSX.Element;
722
+ declare const InlineEditorToolbar: ({ editor, elementId, sx, inControlPanel, }: InlineEditorToolbarProps) => React$1.JSX.Element;
712
723
 
713
724
  type Props$2<TValue> = {
714
725
  value: TValue;