@elementor/editor-controls 4.3.0-965 → 4.3.0-966

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/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@elementor/editor-controls",
3
3
  "description": "This package contains the controls model and utils for the Elementor editor",
4
- "version": "4.3.0-965",
4
+ "version": "4.3.0-966",
5
5
  "private": false,
6
6
  "author": "Elementor Team",
7
7
  "homepage": "https://elementor.com/",
@@ -40,23 +40,23 @@
40
40
  "dev": "tsup --config=../../tsup.dev.ts"
41
41
  },
42
42
  "dependencies": {
43
- "@elementor/editor-current-user": "4.3.0-965",
44
- "@elementor/editor-elements": "4.3.0-965",
45
- "@elementor/editor-props": "4.3.0-965",
46
- "@elementor/editor-responsive": "4.3.0-965",
47
- "@elementor/editor-ui": "4.3.0-965",
48
- "@elementor/editor-v1-adapters": "4.3.0-965",
49
- "@elementor/env": "4.3.0-965",
50
- "@elementor/events": "4.3.0-965",
51
- "@elementor/http-client": "4.3.0-965",
43
+ "@elementor/editor-current-user": "4.3.0-966",
44
+ "@elementor/editor-elements": "4.3.0-966",
45
+ "@elementor/editor-props": "4.3.0-966",
46
+ "@elementor/editor-responsive": "4.3.0-966",
47
+ "@elementor/editor-ui": "4.3.0-966",
48
+ "@elementor/editor-v1-adapters": "4.3.0-966",
49
+ "@elementor/env": "4.3.0-966",
50
+ "@elementor/events": "4.3.0-966",
51
+ "@elementor/http-client": "4.3.0-966",
52
52
  "@elementor/icons": "~1.75.1",
53
- "@elementor/locations": "4.3.0-965",
54
- "@elementor/query": "4.3.0-965",
55
- "@elementor/schema": "4.3.0-965",
56
- "@elementor/session": "4.3.0-965",
53
+ "@elementor/locations": "4.3.0-966",
54
+ "@elementor/query": "4.3.0-966",
55
+ "@elementor/schema": "4.3.0-966",
56
+ "@elementor/session": "4.3.0-966",
57
57
  "@elementor/ui": "1.37.5",
58
- "@elementor/utils": "4.3.0-965",
59
- "@elementor/wp-media": "4.3.0-965",
58
+ "@elementor/utils": "4.3.0-966",
59
+ "@elementor/wp-media": "4.3.0-966",
60
60
  "@monaco-editor/react": "^4.7.0",
61
61
  "@tiptap/extension-bold": "^3.11.1",
62
62
  "@tiptap/extension-document": "^3.11.1",
@@ -4,19 +4,19 @@ import { Box, InputAdornment, type PopupState } from '@elementor/ui';
4
4
 
5
5
  import ControlActions from '../../control-actions/control-actions';
6
6
  import { useTypingBuffer } from '../../hooks/use-typing-buffer';
7
- import { type ExtendedOption, isUnitExtendedOption, type Unit } from '../../utils/size-control';
7
+ import { isUnitExtendedOption, type SizeUnit } from '../../utils/size-control';
8
8
  import { SelectionEndAdornment, TextFieldInnerSelection } from '../size-control/text-field-inner-selection';
9
9
 
10
10
  type SizeInputProps = {
11
- unit: Unit | ExtendedOption;
11
+ unit: SizeUnit;
12
12
  size: number | string;
13
13
  placeholder?: string;
14
14
  startIcon?: React.ReactNode;
15
- units: ( Unit | ExtendedOption )[];
15
+ units: SizeUnit[];
16
16
  onBlur?: ( event: React.FocusEvent< HTMLInputElement > ) => void;
17
17
  onFocus?: ( event: React.FocusEvent< HTMLInputElement > ) => void;
18
18
  onClick?: ( event: React.MouseEvent< HTMLInputElement > ) => void;
19
- handleUnitChange: ( unit: Unit | ExtendedOption ) => void;
19
+ handleUnitChange: ( unit: SizeUnit ) => void;
20
20
  handleSizeChange: ( event: React.ChangeEvent< HTMLInputElement > ) => void;
21
21
  popupState: PopupState;
22
22
  disabled?: boolean;
@@ -1,17 +1,10 @@
1
1
  import type { CreateOptions } from '@elementor/editor-props';
2
2
 
3
3
  import { type SetValueMeta } from '../../bound-prop-context';
4
+ import { type ExtendedOption } from '../../utils/size-control';
4
5
 
5
- type LengthUnit = 'px' | '%' | 'em' | 'rem' | 'vw' | 'vh' | 'ch';
6
- type AngleUnit = 'deg' | 'rad' | 'grad' | 'turn';
7
- type TimeUnit = 's' | 'ms';
8
-
9
- type Unit = LengthUnit | AngleUnit | TimeUnit;
10
-
11
- export type ExtendedSizeOption = 'auto' | 'custom';
12
-
13
- export type SizeUnit = Unit | ExtendedSizeOption;
14
-
6
+ export type ExtendedSizeOption = ExtendedOption;
7
+ export type { SizeUnit } from '../../utils/size-control';
15
8
  export type SizeVariant = 'length' | 'angle' | 'time';
16
9
 
17
10
  export type SetSizeValue< T > = ( value: T, options?: CreateOptions, meta?: SetValueMeta ) => void;
@@ -19,10 +19,12 @@ import {
19
19
  isUnitExtendedOption,
20
20
  type LengthUnit,
21
21
  lengthUnits,
22
+ type SizeUnit,
22
23
  type TimeUnit,
23
24
  timeUnits,
24
25
  type Unit,
25
26
  } from '../utils/size-control';
27
+ import { getPropTypeSettings } from './size-control/utils/settings/get-prop-type-settings';
26
28
 
27
29
  type SizeValue = SizePropValue[ 'value' ];
28
30
 
@@ -65,7 +67,7 @@ export type SizeControlProps = LengthSizeControlProps | AngleSizeControlProps |
65
67
  type State = {
66
68
  numeric: number;
67
69
  custom: string;
68
- unit: Unit | ExtendedOption;
70
+ unit: SizeUnit;
69
71
  };
70
72
 
71
73
  const defaultSelectedUnit: Record< SizeControlProps[ 'variant' ], Unit > = {
@@ -133,7 +135,7 @@ export const SizeControl = createControl(
133
135
  const { size: controlSize = DEFAULT_SIZE, unit: controlUnit = actualDefaultUnit } =
134
136
  extractValueFromState( state, true ) || {};
135
137
 
136
- const handleUnitChange = ( newUnit: Unit | ExtendedOption ) => {
138
+ const handleUnitChange = ( newUnit: SizeUnit ) => {
137
139
  if ( newUnit === 'custom' ) {
138
140
  popupState.open( anchorRef?.current );
139
141
  }
@@ -217,17 +219,17 @@ function resolveUnits(
217
219
  variant: SizeVariant,
218
220
  externalUnits?: Unit[],
219
221
  actualExtendedOptions?: ExtendedOption[]
220
- ) {
222
+ ): SizeUnit[] {
221
223
  const fallback = [ ...defaultUnits[ variant ] ];
222
224
 
223
225
  if ( ! enablePropTypeUnits ) {
224
226
  return [ ...( externalUnits ?? fallback ), ...( actualExtendedOptions || [] ) ];
225
227
  }
226
228
 
227
- return ( propType.settings?.available_units as Unit[] ) ?? fallback;
229
+ return getPropTypeSettings( propType )?.available_units ?? fallback;
228
230
  }
229
231
 
230
- function formatSize< TSize extends string | number >( size: TSize, unit: Unit | ExtendedOption ): TSize {
232
+ function formatSize< TSize extends string | number >( size: TSize, unit: SizeUnit ): TSize {
231
233
  if ( isUnitExtendedOption( unit ) ) {
232
234
  return unit === 'auto' ? ( '' as TSize ) : ( String( size ?? '' ) as TSize );
233
235
  }
@@ -237,7 +239,7 @@ function formatSize< TSize extends string | number >( size: TSize, unit: Unit |
237
239
 
238
240
  function createStateFromSizeProp(
239
241
  sizeValue: SizeValue | null,
240
- defaultUnit: Unit | ExtendedOption,
242
+ defaultUnit: SizeUnit,
241
243
  defaultSize: string | number = '',
242
244
  customState: string = ''
243
245
  ): State {
@@ -1,18 +1,23 @@
1
- export const lengthUnits = [ 'px', '%', 'em', 'rem', 'vw', 'vh', 'ch' ] as const;
2
- export const angleUnits = [ 'deg', 'rad', 'grad', 'turn' ] as const;
3
- export const timeUnits = [ 's', 'ms' ] as const;
4
- const defaultExtendedOptions = [ 'auto', 'custom' ] as const;
1
+ import type { SizePropValue } from '@elementor/editor-props';
5
2
 
6
- export const DEFAULT_UNIT = 'px';
3
+ export type SizeUnit = SizePropValue[ 'value' ][ 'unit' ];
4
+
5
+ export type ExtendedOption = Extract< SizeUnit, 'auto' | 'custom' >;
6
+ export type Unit = Exclude< SizeUnit, ExtendedOption >;
7
+
8
+ export const lengthUnits = [ 'px', '%', 'em', 'rem', 'vw', 'vh', 'ch' ] as const satisfies readonly Unit[];
9
+ export const angleUnits = [ 'deg', 'rad', 'grad', 'turn' ] as const satisfies readonly Unit[];
10
+ export const timeUnits = [ 's', 'ms' ] as const satisfies readonly Unit[];
11
+
12
+ export const DEFAULT_UNIT = 'px' satisfies Unit;
7
13
  export const DEFAULT_SIZE = NaN;
8
14
 
9
- export type LengthUnit = ( typeof lengthUnits )[ number ];
15
+ export type LengthUnit = Extract< Unit, ( typeof lengthUnits )[ number ] | 'fr' >;
10
16
  export type AngleUnit = ( typeof angleUnits )[ number ];
11
17
  export type TimeUnit = ( typeof timeUnits )[ number ];
12
- export type ExtendedOption = ( typeof defaultExtendedOptions )[ number ];
13
18
 
14
- export type Unit = LengthUnit | AngleUnit | TimeUnit;
19
+ const extendedOptions = [ 'auto', 'custom' ] as const satisfies readonly ExtendedOption[];
15
20
 
16
- export function isUnitExtendedOption( unit: Unit | ExtendedOption ): unit is ExtendedOption {
17
- return defaultExtendedOptions.includes( unit as ExtendedOption );
21
+ export function isUnitExtendedOption( unit: SizeUnit ): unit is ExtendedOption {
22
+ return extendedOptions.includes( unit as ExtendedOption );
18
23
  }