@elementor/editor-editing-panel 1.42.0 → 1.43.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.
- package/CHANGELOG.md +15 -0
- package/dist/index.js +151 -118
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +107 -74
- package/dist/index.mjs.map +1 -1
- package/package.json +3 -3
- package/src/components/css-classes/css-class-item.tsx +4 -2
- package/src/components/css-classes/css-class-menu.tsx +4 -4
- package/src/components/css-classes/css-class-selector.tsx +36 -57
- package/src/components/css-classes/use-apply-and-unapply-class.ts +82 -10
package/dist/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts","../src/control-replacement.tsx","../src/components/css-classes/css-class-selector.tsx","../src/contexts/classes-prop-context.tsx","../src/contexts/element-context.tsx","../src/contexts/style-context.tsx","../src/errors.ts","../src/components/creatable-autocomplete/creatable-autocomplete.tsx","../src/components/creatable-autocomplete/autocomplete-option-internal-properties.ts","../src/components/creatable-autocomplete/use-autocomplete-change.ts","../src/components/creatable-autocomplete/use-autocomplete-states.ts","../src/components/creatable-autocomplete/use-create-option.ts","../src/components/creatable-autocomplete/use-filter-options.ts","../src/components/css-classes/css-class-item.tsx","../src/components/css-classes/css-class-context.tsx","../src/components/css-classes/css-class-menu.tsx","../src/components/style-indicator.tsx","../src/components/css-classes/use-apply-and-unapply-class.ts","../src/panel.ts","../src/components/editing-panel.tsx","../src/controls-actions.ts","../src/action.tsx","../src/popover-action.tsx","../src/components/editing-panel-error-fallback.tsx","../src/components/editing-panel-tabs.tsx","../src/contexts/scroll-context.tsx","../src/hooks/use-default-panel-settings.ts","../src/hooks/use-state-by-element.ts","../src/sync/experiments-flags.ts","../src/components/settings-tab.tsx","../src/controls-registry/control.tsx","../src/controls-registry/controls-registry.tsx","../src/controls-registry/control-type-container.tsx","../src/controls-registry/settings-field.tsx","../src/controls-registry/create-top-level-object-type.ts","../src/components/section.tsx","../src/components/collapse-icon.tsx","../src/components/sections-list.tsx","../src/components/style-tab.tsx","../src/contexts/styles-inheritance-context.tsx","../src/hooks/use-styles-rerender.ts","../src/styles-inheritance/create-styles-inheritance.ts","../src/styles-inheritance/create-snapshots-manager.ts","../src/styles-inheritance/utils.ts","../src/hooks/use-active-style-def-id.ts","../src/components/style-sections/background-section/background-section.tsx","../src/controls-registry/styles-field.tsx","../src/hooks/use-styles-fields.ts","../src/hooks/use-styles-field.ts","../src/styles-inheritance/styles-inheritance-indicator.tsx","../src/styles-inheritance/consts.ts","../src/styles-inheritance/styles-inheritance-infotip.tsx","../src/components/section-content.tsx","../src/hooks/use-direction.ts","../src/sync/get-elementor-globals.ts","../src/styles-inheritance/components/breakpoint-icon.tsx","../src/styles-inheritance/components/label-chip.tsx","../src/styles-inheritance/components/value-component.tsx","../src/styles-inheritance/components/action-icons.tsx","../src/styles-inheritance/hooks/use-normalized-inheritance-chain-items.tsx","../src/styles-inheritance/styles-inheritance-transformers-registry.tsx","../src/components/style-sections/border-section/border-section.tsx","../src/components/panel-divider.tsx","../src/components/style-sections/border-section/border-field.tsx","../src/components/add-or-remove-content.tsx","../src/components/control-label.tsx","../src/components/style-sections/border-section/border-color-field.tsx","../src/components/style-sections/border-section/border-style-field.tsx","../src/components/style-sections/border-section/border-width-field.tsx","../src/components/style-sections/border-section/border-radius-field.tsx","../src/components/style-sections/effects-section/effects-section.tsx","../src/components/style-sections/layout-section/layout-section.tsx","../src/hooks/use-computed-style.ts","../src/components/style-sections/layout-section/align-content-field.tsx","../src/components/style-sections/layout-section/utils/rotated-icon.tsx","../src/components/style-sections/layout-section/align-items-field.tsx","../src/components/style-sections/layout-section/align-self-child-field.tsx","../src/components/style-sections/layout-section/display-field.tsx","../src/components/style-sections/layout-section/flex-direction-field.tsx","../src/components/style-sections/layout-section/flex-order-field.tsx","../src/components/style-sections/layout-section/flex-size-field.tsx","../src/components/style-sections/layout-section/gap-control-field.tsx","../src/components/style-sections/layout-section/justify-content-field.tsx","../src/components/style-sections/layout-section/wrap-field.tsx","../src/components/style-sections/position-section/position-section.tsx","../src/components/style-sections/position-section/dimensions-field.tsx","../src/components/style-sections/position-section/offset-field.tsx","../src/components/style-sections/position-section/position-field.tsx","../src/components/style-sections/position-section/z-index-field.tsx","../src/components/style-sections/size-section/size-section.tsx","../src/components/collapsible-content.tsx","../src/components/style-sections/size-section/object-fit-field.tsx","../src/components/style-sections/size-section/object-position-field.tsx","../src/components/style-sections/size-section/overflow-field.tsx","../src/components/style-sections/spacing-section/spacing-section.tsx","../src/components/style-sections/typography-section/typography-section.tsx","../src/components/style-sections/typography-section/column-count-field.tsx","../src/components/style-sections/typography-section/column-gap-field.tsx","../src/components/style-sections/typography-section/font-family-field.tsx","../src/components/style-sections/typography-section/hooks/use-font-families.ts","../src/components/style-sections/typography-section/font-size-field.tsx","../src/components/style-sections/typography-section/font-style-field.tsx","../src/components/style-sections/typography-section/font-weight-field.tsx","../src/components/style-sections/typography-section/letter-spacing-field.tsx","../src/components/style-sections/typography-section/line-height-field.tsx","../src/components/style-sections/typography-section/text-alignment-field.tsx","../src/components/style-sections/typography-section/text-color-field.tsx","../src/components/style-sections/typography-section/text-decoration-field.tsx","../src/components/style-sections/typography-section/text-direction-field.tsx","../src/components/style-sections/typography-section/text-stroke-field.tsx","../src/components/style-sections/typography-section/transform-field.tsx","../src/components/style-sections/typography-section/word-spacing-field.tsx","../src/init.ts","../src/hooks/use-open-editor-panel.ts","../src/sync/is-atomic-widget-selected.ts","../src/components/editing-panel-hooks.tsx","../src/dynamics/init.ts","../src/dynamics/components/dynamic-selection-control.tsx","../src/components/popover-content.tsx","../src/hooks/use-persist-dynamic-value.ts","../src/dynamics/dynamic-control.tsx","../src/dynamics/hooks/use-dynamic-tag.ts","../src/dynamics/hooks/use-prop-dynamic-tags.ts","../src/dynamics/sync/get-elementor-config.ts","../src/dynamics/sync/get-atomic-dynamic-tags.ts","../src/dynamics/utils.ts","../src/dynamics/components/dynamic-selection.tsx","../src/dynamics/dynamic-transformer.ts","../src/dynamics/errors.ts","../src/dynamics/hooks/use-prop-dynamic-action.tsx","../src/reset-style-props.tsx","../src/styles-inheritance/init-styles-inheritance-transformers.ts","../src/styles-inheritance/transformers/background-color-overlay-transformer.tsx","../src/styles-inheritance/transformers/background-gradient-overlay-transformer.tsx","../src/styles-inheritance/transformers/background-image-overlay-transformer.tsx","../src/styles-inheritance/transformers/background-overlay-transformer.tsx","../src/styles-inheritance/init.ts"],"sourcesContent":["export { useBoundProp } from '@elementor/editor-controls';\nexport type { PopoverActionProps } from './popover-action';\nexport { registerControlReplacement } from './control-replacement';\nexport { injectIntoClassSelectorActions } from './components/css-classes/css-class-selector';\nexport { usePanelActions, usePanelStatus } from './panel';\nexport { type ValidationResult, type ValidationEvent } from './components/creatable-autocomplete';\nexport { controlActionsMenu } from './controls-actions';\n\nexport { init } from './init';\n","import { createControlReplacementsRegistry } from '@elementor/editor-controls';\n\nexport const { registerControlReplacement, getControlReplacements } = createControlReplacementsRegistry();\n","import * as React from 'react';\nimport { type ReactElement, useRef, useState } from 'react';\nimport { getElementSetting, updateElementSettings, useElementSetting } from '@elementor/editor-elements';\nimport { classesPropTypeUtil, type ClassesPropValue } from '@elementor/editor-props';\nimport { type StyleDefinitionID } from '@elementor/editor-styles';\nimport {\n\tisElementsStylesProvider,\n\ttype StylesProvider,\n\tstylesRepository,\n\ttype UpdateActionPayload,\n\tuseGetStylesRepositoryCreateAction,\n\tuseProviders,\n\tvalidateStyleLabel,\n} from '@elementor/editor-styles-repository';\nimport { WarningInfotip } from '@elementor/editor-ui';\nimport { ColorSwatchIcon, MapPinIcon } from '@elementor/icons';\nimport { createLocation } from '@elementor/locations';\nimport { type AutocompleteChangeReason, Box, Chip, FormLabel, Link, Stack, Typography } from '@elementor/ui';\nimport { __ } from '@wordpress/i18n';\n\nimport { useClassesProp } from '../../contexts/classes-prop-context';\nimport { useElement } from '../../contexts/element-context';\nimport { useStyle } from '../../contexts/style-context';\nimport {\n\tCreatableAutocomplete,\n\ttype CreatableAutocompleteProps,\n\ttype Option,\n\ttype ValidationEvent,\n\ttype ValidationResult,\n} from '../creatable-autocomplete';\nimport { CssClassItem } from './css-class-item';\nimport { useApplyClass, useUnapplyClass } from './use-apply-and-unapply-class';\n\nconst ID = 'elementor-css-class-selector';\nconst TAGS_LIMIT = 50;\n\ntype StyleDefOption = Option & {\n\tcolor: 'accent' | 'global';\n\ticon: ReactElement | null;\n\tprovider: string | null;\n};\n\nconst EMPTY_OPTION = {\n\tlabel: __( 'local', 'elementor' ),\n\tvalue: null,\n\tfixed: true,\n\tcolor: 'accent',\n\ticon: <MapPinIcon />,\n\tprovider: null,\n} satisfies StyleDefOption;\n\nexport const { Slot: ClassSelectorActionsSlot, inject: injectIntoClassSelectorActions } = createLocation();\n\n/**\n * Applied - Classes applied to an element.\n * Active - Class that is currently on edit mode.\n */\n\nexport function CssClassSelector() {\n\tconst options = useOptions();\n\n\tconst { value: appliedIds, pushValue: pushAppliedId } = useAppliedClassesIds();\n\tconst { id: activeId, setId: setActiveId } = useStyle();\n\n\tconst autocompleteRef = useRef< HTMLElement | null >( null );\n\tconst [ renameError, setRenameError ] = useState< string | null >( null );\n\n\tconst handleSelect = useHandleSelect();\n\tconst { create, validate, entityName } = useCreateAction( { pushAppliedId, setActiveId } );\n\n\tconst applied = useAppliedOptions( options, appliedIds );\n\tconst active = applied.find( ( option ) => option.value === activeId ) ?? EMPTY_OPTION;\n\n\tconst showPlaceholder = applied.every( ( { fixed } ) => fixed );\n\n\treturn (\n\t\t<Stack p={ 2 }>\n\t\t\t<Stack direction=\"row\" gap={ 1 } alignItems=\"center\" justifyContent=\"space-between\">\n\t\t\t\t<FormLabel htmlFor={ ID } size=\"small\">\n\t\t\t\t\t{ __( 'Classes', 'elementor' ) }\n\t\t\t\t</FormLabel>\n\t\t\t\t<Stack direction=\"row\" gap={ 1 }>\n\t\t\t\t\t<ClassSelectorActionsSlot />\n\t\t\t\t</Stack>\n\t\t\t</Stack>\n\t\t\t<WarningInfotip\n\t\t\t\topen={ Boolean( renameError ) }\n\t\t\t\ttext={ renameError ?? '' }\n\t\t\t\tplacement=\"bottom\"\n\t\t\t\twidth={ autocompleteRef.current?.getBoundingClientRect().width }\n\t\t\t\toffset={ [ 0, -15 ] }\n\t\t\t>\n\t\t\t\t<CreatableAutocomplete< StyleDefOption >\n\t\t\t\t\tid={ ID }\n\t\t\t\t\tref={ autocompleteRef }\n\t\t\t\t\tsize=\"tiny\"\n\t\t\t\t\tplaceholder={ showPlaceholder ? __( 'Type class name', 'elementor' ) : undefined }\n\t\t\t\t\toptions={ options }\n\t\t\t\t\tselected={ applied }\n\t\t\t\t\tentityName={ entityName }\n\t\t\t\t\tonSelect={ handleSelect }\n\t\t\t\t\tonCreate={ create ?? undefined }\n\t\t\t\t\tvalidate={ validate ?? undefined }\n\t\t\t\t\tlimitTags={ TAGS_LIMIT }\n\t\t\t\t\trenderEmptyState={ EmptyState }\n\t\t\t\t\tgetLimitTagsText={ ( more ) => (\n\t\t\t\t\t\t<Chip size=\"tiny\" variant=\"standard\" label={ `+${ more }` } clickable />\n\t\t\t\t\t) }\n\t\t\t\t\trenderTags={ ( values, getTagProps ) =>\n\t\t\t\t\t\tvalues.map( ( value, index ) => {\n\t\t\t\t\t\t\tconst chipProps = getTagProps( { index } );\n\t\t\t\t\t\t\tconst isActive = value.value === active?.value;\n\n\t\t\t\t\t\t\tconst renameLabel = ( newLabel: string ) => {\n\t\t\t\t\t\t\t\tif ( ! value.value ) {\n\t\t\t\t\t\t\t\t\tthrow new Error( `Cannot rename a class without style id` );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\treturn updateClassByProvider( value.provider, { label: newLabel, id: value.value } );\n\t\t\t\t\t\t\t};\n\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t<CssClassItem\n\t\t\t\t\t\t\t\t\tkey={ chipProps.key }\n\t\t\t\t\t\t\t\t\tfixed={ value.fixed }\n\t\t\t\t\t\t\t\t\tlabel={ value.label }\n\t\t\t\t\t\t\t\t\tprovider={ value.provider }\n\t\t\t\t\t\t\t\t\tid={ value.value }\n\t\t\t\t\t\t\t\t\tisActive={ isActive }\n\t\t\t\t\t\t\t\t\tcolor={ isActive && value.color ? value.color : 'default' }\n\t\t\t\t\t\t\t\t\ticon={ value.icon }\n\t\t\t\t\t\t\t\t\tchipProps={ chipProps }\n\t\t\t\t\t\t\t\t\tonClickActive={ () => setActiveId( value.value ) }\n\t\t\t\t\t\t\t\t\trenameLabel={ renameLabel }\n\t\t\t\t\t\t\t\t\tsetError={ setRenameError }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} )\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t</WarningInfotip>\n\t\t</Stack>\n\t);\n}\n\nconst EmptyState = ( { searchValue, onClear }: { searchValue: string; onClear: () => void } ) => (\n\t<Box sx={ { py: 4 } }>\n\t\t<Stack\n\t\t\tgap={ 1 }\n\t\t\talignItems=\"center\"\n\t\t\tcolor=\"text.secondary\"\n\t\t\tjustifyContent=\"center\"\n\t\t\tsx={ { px: 2, m: 'auto', maxWidth: '236px' } }\n\t\t>\n\t\t\t<ColorSwatchIcon sx={ { transform: 'rotate(90deg)' } } fontSize=\"large\" />\n\t\t\t<Typography align=\"center\" variant=\"subtitle2\">\n\t\t\t\t{ __( 'Sorry, nothing matched', 'elementor' ) }\n\t\t\t\t<br />\n\t\t\t\t“{ searchValue }”.\n\t\t\t</Typography>\n\t\t\t<Typography align=\"center\" variant=\"caption\" sx={ { mb: 2 } }>\n\t\t\t\t{ __( 'With your current role,', 'elementor' ) }\n\t\t\t\t<br />\n\t\t\t\t{ __( 'you can only use existing classes.', 'elementor' ) }\n\t\t\t</Typography>\n\t\t\t<Link color=\"text.secondary\" variant=\"caption\" component=\"button\" onClick={ onClear }>\n\t\t\t\t{ __( 'Clear & try again', 'elementor' ) }\n\t\t\t</Link>\n\t\t</Stack>\n\t</Box>\n);\n\nconst updateClassByProvider = ( provider: string | null, data: UpdateActionPayload ) => {\n\tif ( ! provider ) {\n\t\treturn;\n\t}\n\n\tconst providerInstance = stylesRepository.getProviderByKey( provider );\n\n\tif ( ! providerInstance ) {\n\t\treturn;\n\t}\n\n\treturn providerInstance.actions.update?.( data );\n};\n\nfunction useOptions() {\n\tconst { element } = useElement();\n\n\tconst isProviderEditable = ( provider: StylesProvider ) => !! provider.actions.updateProps;\n\n\treturn useProviders()\n\t\t.filter( isProviderEditable )\n\t\t.flatMap< StyleDefOption >( ( provider ) => {\n\t\t\tconst isElements = isElementsStylesProvider( provider.getKey() );\n\t\t\tconst styleDefs = provider.actions.all( { elementId: element.id } );\n\n\t\t\t// Add empty local option for elements, as fallback.\n\t\t\tif ( isElements && styleDefs.length === 0 ) {\n\t\t\t\treturn [ EMPTY_OPTION ];\n\t\t\t}\n\n\t\t\treturn styleDefs.map( ( styleDef ) => {\n\t\t\t\treturn {\n\t\t\t\t\tlabel: styleDef.label,\n\t\t\t\t\tvalue: styleDef.id,\n\t\t\t\t\tfixed: isElements,\n\t\t\t\t\tcolor: isElements ? 'accent' : 'global',\n\t\t\t\t\ticon: isElements ? <MapPinIcon /> : null,\n\t\t\t\t\tprovider: provider.getKey(),\n\t\t\t\t};\n\t\t\t} );\n\t\t} );\n}\n\nfunction useCreateAction( {\n\tpushAppliedId,\n\tsetActiveId,\n}: {\n\tpushAppliedId: ( id: StyleDefinitionID ) => void;\n\tsetActiveId: ( id: StyleDefinitionID ) => void;\n} ) {\n\tconst [ provider, createAction ] = useGetStylesRepositoryCreateAction() ?? [ null, null ];\n\tif ( ! provider || ! createAction ) {\n\t\treturn {};\n\t}\n\n\tconst create = ( newClassLabel: string ) => {\n\t\tconst createdId = createAction( newClassLabel );\n\n\t\tpushAppliedId( createdId );\n\t\tsetActiveId( createdId );\n\t};\n\n\tconst validate = ( newClassLabel: string, event: ValidationEvent ): ValidationResult => {\n\t\tif ( hasReachedLimit( provider ) ) {\n\t\t\treturn {\n\t\t\t\tisValid: false,\n\t\t\t\terrorMessage: __(\n\t\t\t\t\t'You’ve reached the limit of 50 classes. Please remove an existing one to create a new class.',\n\t\t\t\t\t'elementor'\n\t\t\t\t),\n\t\t\t};\n\t\t}\n\t\treturn validateStyleLabel( newClassLabel, event );\n\t};\n\n\tconst entityName =\n\t\tprovider.labels.singular && provider.labels.plural\n\t\t\t? ( provider.labels as CreatableAutocompleteProps< StyleDefOption >[ 'entityName' ] )\n\t\t\t: undefined;\n\n\treturn { create, validate, entityName };\n}\n\nfunction hasReachedLimit( provider: StylesProvider ) {\n\treturn provider.actions.all().length >= provider.limit;\n}\n\nfunction useAppliedOptions( options: StyleDefOption[], appliedIds: StyleDefinitionID[] ) {\n\tconst applied = options.filter( ( option ) => option.value && appliedIds.includes( option.value ) );\n\n\tconst hasElementsProviderStyleApplied = applied.some(\n\t\t( option ) => option.provider && isElementsStylesProvider( option.provider )\n\t);\n\n\tif ( ! hasElementsProviderStyleApplied ) {\n\t\tapplied.unshift( EMPTY_OPTION );\n\t}\n\n\treturn applied;\n}\n\nfunction useAppliedClassesIds() {\n\tconst { element } = useElement();\n\tconst currentClassesProp = useClassesProp();\n\n\tconst value = useElementSetting< ClassesPropValue >( element.id, currentClassesProp )?.value || [];\n\n\tconst setValue = ( ids: StyleDefinitionID[] ) => {\n\t\tupdateElementSettings( {\n\t\t\tid: element.id,\n\t\t\tprops: {\n\t\t\t\t[ currentClassesProp ]: classesPropTypeUtil.create( ids ),\n\t\t\t},\n\t\t} );\n\t};\n\n\tconst pushValue = ( id: StyleDefinitionID ) => {\n\t\tconst ids = getElementSetting< ClassesPropValue >( element.id, currentClassesProp )?.value || [];\n\n\t\tsetValue( [ ...ids, id ] );\n\t};\n\n\treturn {\n\t\tvalue,\n\t\tpushValue,\n\t};\n}\n\nfunction useHandleSelect() {\n\tconst apply = useApplyClass();\n\tconst unapply = useUnapplyClass();\n\n\treturn ( _selectedOptions: StyleDefOption[], reason: AutocompleteChangeReason, option: StyleDefOption ) => {\n\t\tif ( ! option.value ) {\n\t\t\treturn;\n\t\t}\n\n\t\tswitch ( reason ) {\n\t\t\tcase 'selectOption':\n\t\t\t\tapply( { classId: option.value, classLabel: option.label } );\n\t\t\t\tbreak;\n\n\t\t\tcase 'removeOption':\n\t\t\t\tunapply( { classId: option.value, classLabel: option.label } );\n\t\t\t\tbreak;\n\t\t}\n\t};\n}\n","import * as React from 'react';\nimport { createContext, type PropsWithChildren, useContext } from 'react';\n\ntype ContextValue = {\n\tprop: string;\n};\n\nconst Context = createContext< ContextValue | null >( null );\n\ntype Props = PropsWithChildren< ContextValue >;\n\nexport function ClassesPropProvider( { children, prop }: Props ) {\n\treturn <Context.Provider value={ { prop } }>{ children }</Context.Provider>;\n}\n\nexport function useClassesProp() {\n\tconst context = useContext( Context );\n\n\tif ( ! context ) {\n\t\tthrow new Error( 'useClassesProp must be used within a ClassesPropProvider' );\n\t}\n\n\treturn context.prop;\n}\n","import * as React from 'react';\nimport { createContext, type PropsWithChildren, useContext } from 'react';\nimport { type Element, type ElementType } from '@elementor/editor-elements';\n\ntype ContextValue = {\n\telement: Element;\n\telementType: ElementType;\n};\n\nconst Context = createContext< ContextValue | null >( null );\n\ntype Props = PropsWithChildren< ContextValue >;\n\nexport function ElementProvider( { children, element, elementType }: Props ) {\n\treturn <Context.Provider value={ { element, elementType } }>{ children }</Context.Provider>;\n}\n\nexport function useElement() {\n\tconst context = useContext( Context );\n\n\tif ( ! context ) {\n\t\tthrow new Error( 'useElement must be used within a ElementProvider' );\n\t}\n\n\treturn context;\n}\n","import * as React from 'react';\nimport { createContext, type Dispatch, type PropsWithChildren, useContext } from 'react';\nimport {\n\ttype StyleDefinition,\n\ttype StyleDefinitionID,\n\ttype StyleDefinitionState,\n\ttype StyleDefinitionVariant,\n} from '@elementor/editor-styles';\nimport { type StylesProvider, stylesRepository, useUserStylesCapability } from '@elementor/editor-styles-repository';\n\nimport { StylesProviderNotFoundError } from '../errors';\n\ntype ContextValue = {\n\tsetId: Dispatch< StyleDefinition[ 'id' ] | null >;\n\tmeta: StyleDefinitionVariant[ 'meta' ];\n\tsetMetaState: Dispatch< StyleDefinitionState >;\n\tcanEdit?: boolean;\n} & ( ContextValueWithProvider | ContextValueWithoutProvider );\n\ntype ContextValueWithProvider = {\n\tid: StyleDefinitionID;\n\tprovider: StylesProvider;\n};\n\ntype ContextValueWithoutProvider = {\n\tid: null;\n\tprovider: null;\n};\n\nconst Context = createContext< ContextValue | null >( null );\n\ntype Props = PropsWithChildren< Omit< ContextValue, 'provider' > >;\n\nexport function StyleProvider( { children, ...props }: Props ) {\n\tconst provider = props.id === null ? null : getProviderByStyleId( props.id );\n\n\tconst { userCan } = useUserStylesCapability();\n\n\tif ( props.id && ! provider ) {\n\t\tthrow new StylesProviderNotFoundError( { context: { styleId: props.id } } );\n\t}\n\n\tconst canEdit = userCan( provider?.getKey() ?? '' ).updateProps;\n\n\treturn <Context.Provider value={ { ...props, provider, canEdit } as ContextValue }>{ children }</Context.Provider>;\n}\n\nexport function useStyle() {\n\tconst context = useContext( Context );\n\n\tif ( ! context ) {\n\t\tthrow new Error( 'useStyle must be used within a StyleProvider' );\n\t}\n\n\treturn context;\n}\n\nexport function getProviderByStyleId( styleId: StyleDefinitionID ) {\n\tconst styleProvider = stylesRepository.getProviders().find( ( provider ) => {\n\t\treturn provider.actions.all().find( ( style ) => style.id === styleId );\n\t} );\n\n\treturn styleProvider ?? null;\n}\n\nexport function useIsStyle(): boolean {\n\treturn !! useContext( Context );\n}\n","import { type StyleDefinitionID } from '@elementor/editor-styles';\nimport { createError } from '@elementor/utils';\n\nexport const ControlTypeNotFoundError = createError< { controlType: string } >( {\n\tcode: 'control_type_not_found',\n\tmessage: 'Control type not found.',\n} );\n\nexport const StylesProviderNotFoundError = createError< { styleId: StyleDefinitionID } >( {\n\tcode: 'provider_not_found',\n\tmessage: 'Styles provider not found.',\n} );\n\nexport const StylesProviderCannotUpdatePropsError = createError< { providerKey: string } >( {\n\tcode: 'provider_cannot_update_props',\n\tmessage: \"Styles provider doesn't support updating props.\",\n} );\n\nexport const StyleNotFoundUnderProviderError = createError< { styleId: StyleDefinitionID; providerKey: string } >( {\n\tcode: 'style_not_found_under_provider',\n\tmessage: 'Style not found under the provider.',\n} );\n","import * as React from 'react';\nimport { type HTMLAttributes, useId, useMemo } from 'react';\nimport {\n\tAutocomplete,\n\ttype AutocompleteProps,\n\ttype AutocompleteRenderGroupParams,\n\tBox,\n\tChip,\n\tstyled,\n\tTextField,\n\ttype Theme,\n\tTypography,\n} from '@elementor/ui';\n\nimport { addGroupToOptions } from './autocomplete-option-internal-properties';\nimport { type CreatableAutocompleteProps, type InternalOption, type SafeOptionConstraint } from './types';\nimport { useAutocompleteChange } from './use-autocomplete-change';\nimport { useInputState, useOpenState } from './use-autocomplete-states';\nimport { useCreateOption } from './use-create-option';\nimport { useFilterOptions } from './use-filter-options';\n\nconst MIN_INPUT_LENGTH = 2;\n\nexport const CreatableAutocomplete = React.forwardRef( CreatableAutocompleteInner ) as <\n\tTOption extends SafeOptionConstraint,\n>(\n\tprops: CreatableAutocompleteProps< TOption > & {\n\t\tref?: React.ForwardedRef< HTMLElement >;\n\t}\n) => ReturnType< typeof CreatableAutocompleteInner >;\n\nfunction CreatableAutocompleteInner< TOption extends SafeOptionConstraint >(\n\t{\n\t\tselected,\n\t\toptions,\n\t\tentityName,\n\t\tonSelect,\n\t\tplaceholder,\n\t\tonCreate,\n\t\tvalidate,\n\t\trenderEmptyState,\n\t\t...props\n\t}: CreatableAutocompleteProps< TOption >,\n\tref: React.ForwardedRef< HTMLElement >\n) {\n\tconst { inputValue, setInputValue, error, setError, inputHandlers } = useInputState( validate );\n\tconst { open, openDropdown, closeDropdown } = useOpenState( props.open );\n\tconst { createOption, loading } = useCreateOption( { onCreate, validate, setInputValue, setError, closeDropdown } );\n\n\tconst [ internalOptions, internalSelected ] = useMemo(\n\t\t() => [ options, selected ].map( ( optionsArr ) => addGroupToOptions( optionsArr, entityName?.plural ) ),\n\t\t[ options, selected, entityName?.plural ]\n\t);\n\n\tconst handleChange = useAutocompleteChange( {\n\t\toptions: internalOptions,\n\t\tonSelect,\n\t\tcreateOption,\n\t\tsetInputValue,\n\t\tcloseDropdown,\n\t} );\n\n\tconst filterOptions = useFilterOptions( { options, selected, onCreate, entityName } );\n\n\tconst isCreatable = Boolean( onCreate );\n\n\tconst freeSolo = isCreatable || inputValue.length < MIN_INPUT_LENGTH || undefined;\n\n\treturn (\n\t\t<Autocomplete< InternalOption< TOption >, true, true, true >\n\t\t\trenderTags={ ( tagValue, getTagProps ) => {\n\t\t\t\treturn tagValue.map( ( option, index ) => (\n\t\t\t\t\t<Chip\n\t\t\t\t\t\tsize=\"tiny\"\n\t\t\t\t\t\t{ ...getTagProps( { index } ) }\n\t\t\t\t\t\tkey={ option.key ?? option.value ?? option.label }\n\t\t\t\t\t\tlabel={ option.label }\n\t\t\t\t\t/>\n\t\t\t\t) );\n\t\t\t} }\n\t\t\t{ ...( props as AutocompleteProps< InternalOption< TOption >, true, true, true > ) }\n\t\t\tref={ ref }\n\t\t\tfreeSolo={ freeSolo }\n\t\t\tforcePopupIcon={ false }\n\t\t\tmultiple\n\t\t\tclearOnBlur\n\t\t\tselectOnFocus\n\t\t\tdisableClearable\n\t\t\thandleHomeEndKeys\n\t\t\tdisabled={ loading }\n\t\t\topen={ open }\n\t\t\tonOpen={ openDropdown }\n\t\t\tonClose={ closeDropdown }\n\t\t\tdisableCloseOnSelect\n\t\t\tvalue={ internalSelected }\n\t\t\toptions={ internalOptions }\n\t\t\tListboxComponent={\n\t\t\t\terror\n\t\t\t\t\t? React.forwardRef< HTMLElement, ErrorTextProps >( ( _, errorTextRef ) => (\n\t\t\t\t\t\t\t<ErrorText ref={ errorTextRef } error={ error } />\n\t\t\t\t\t ) )\n\t\t\t\t\t: undefined\n\t\t\t}\n\t\t\trenderGroup={ ( params ) => <Group { ...params } /> }\n\t\t\tinputValue={ inputValue }\n\t\t\trenderInput={ ( params ) => {\n\t\t\t\treturn (\n\t\t\t\t\t<TextField\n\t\t\t\t\t\t{ ...params }\n\t\t\t\t\t\terror={ Boolean( error ) }\n\t\t\t\t\t\tplaceholder={ placeholder }\n\t\t\t\t\t\t{ ...inputHandlers }\n\t\t\t\t\t\tsx={ ( theme: Theme ) => ( {\n\t\t\t\t\t\t\t'.MuiAutocomplete-inputRoot.MuiInputBase-adornedStart': {\n\t\t\t\t\t\t\t\tpaddingLeft: theme.spacing( 0.25 ),\n\t\t\t\t\t\t\t\tpaddingRight: theme.spacing( 0.25 ),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t} ) }\n\t\t\t\t\t/>\n\t\t\t\t);\n\t\t\t} }\n\t\t\tonChange={ handleChange }\n\t\t\tgetOptionLabel={ ( option ) => ( typeof option === 'string' ? option : option.label ) }\n\t\t\tgetOptionKey={ ( option ) => {\n\t\t\t\tif ( typeof option === 'string' ) {\n\t\t\t\t\treturn option;\n\t\t\t\t}\n\n\t\t\t\treturn option.key ?? option.value ?? option.label;\n\t\t\t} }\n\t\t\tfilterOptions={ filterOptions }\n\t\t\tgroupBy={ ( option ) => option._group ?? '' }\n\t\t\trenderOption={ ( optionProps, option ) => {\n\t\t\t\tconst { _group, label } = option;\n\n\t\t\t\treturn (\n\t\t\t\t\t<li\n\t\t\t\t\t\t{ ...optionProps }\n\t\t\t\t\t\tstyle={ { display: 'block', textOverflow: 'ellipsis' } }\n\t\t\t\t\t\tdata-group={ _group }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ label }\n\t\t\t\t\t</li>\n\t\t\t\t);\n\t\t\t} }\n\t\t\tnoOptionsText={ renderEmptyState?.( {\n\t\t\t\tsearchValue: inputValue,\n\t\t\t\tonClear: () => {\n\t\t\t\t\tsetInputValue( '' );\n\t\t\t\t\tcloseDropdown();\n\t\t\t\t},\n\t\t\t} ) }\n\t\t\tisOptionEqualToValue={ ( option, value ) => {\n\t\t\t\tif ( typeof option === 'string' ) {\n\t\t\t\t\treturn option === value;\n\t\t\t\t}\n\n\t\t\t\treturn option.value === value.value;\n\t\t\t} }\n\t\t/>\n\t);\n}\n\nconst Group = ( params: Omit< AutocompleteRenderGroupParams, 'key' > ) => {\n\tconst id = `combobox-group-${ useId().replace( /:/g, '_' ) }`;\n\n\treturn (\n\t\t<StyledGroup role=\"group\" aria-labelledby={ id }>\n\t\t\t<StyledGroupHeader id={ id }> { params.group }</StyledGroupHeader>\n\t\t\t<StyledGroupItems role=\"listbox\">{ params.children }</StyledGroupItems>\n\t\t</StyledGroup>\n\t);\n};\n\ntype ErrorTextProps = {\n\terror?: string;\n} & HTMLAttributes< HTMLElement >;\n\nconst ErrorText = React.forwardRef< HTMLElement, ErrorTextProps >( ( { error = 'error' }, ref ) => {\n\treturn (\n\t\t<Box\n\t\t\tref={ ref }\n\t\t\tsx={ ( theme: Theme ) => ( {\n\t\t\t\tpadding: theme.spacing( 2 ),\n\t\t\t} ) }\n\t\t>\n\t\t\t<Typography variant=\"caption\" sx={ { color: 'error.main', display: 'inline-block' } }>\n\t\t\t\t{ error }\n\t\t\t</Typography>\n\t\t</Box>\n\t);\n} );\n\nconst StyledGroup = styled( 'li' )`\n\t&:not( :last-of-type ) {\n\t\tborder-bottom: 1px solid ${ ( { theme } ) => theme.palette.divider };\n\t}\n`;\n\nconst StyledGroupHeader = styled( Box )( ( { theme } ) => ( {\n\tposition: 'sticky',\n\ttop: '-8px',\n\tpadding: theme.spacing( 1, 2 ),\n\tcolor: theme.palette.text.tertiary,\n\tbackgroundColor: theme.palette.primary.contrastText,\n} ) );\n\nconst StyledGroupItems = styled( 'ul' )`\n\tpadding: 0;\n`;\n","import { type InternalOption, type Option } from './types';\n\nexport function addGroupToOptions< TOption extends Option >(\n\toptions: TOption[],\n\tpluralEntityName?: string\n): InternalOption< TOption >[] {\n\treturn options.map( ( option ) => {\n\t\treturn {\n\t\t\t...option,\n\t\t\t_group: `Existing ${ pluralEntityName ?? 'options' }`,\n\t\t};\n\t} );\n}\n\nexport function removeInternalKeys< TOption extends Option >( option: InternalOption< TOption > ): TOption {\n\tconst { _group, _action, ...rest } = option;\n\treturn rest as unknown as TOption;\n}\n","import { type AutocompleteChangeDetails, type AutocompleteChangeReason } from '@elementor/ui';\n\nimport { removeInternalKeys } from './autocomplete-option-internal-properties';\nimport { type InternalOption, type OnSelect, type Option } from './types';\n\nexport function useAutocompleteChange< TOption extends Option >( params: {\n\toptions: InternalOption< TOption >[];\n\tonSelect?: OnSelect< TOption >;\n\tcreateOption: ( ( value: string ) => Promise< unknown > ) | null;\n\tsetInputValue: ( value: string ) => void;\n\tcloseDropdown: () => void;\n} ) {\n\tconst { options, onSelect, createOption, setInputValue, closeDropdown } = params;\n\n\tif ( ! onSelect && ! createOption ) {\n\t\treturn;\n\t}\n\n\tconst handleChange = async (\n\t\t_: React.SyntheticEvent,\n\t\tselectedOrInputValue: Array< InternalOption< TOption > | string >,\n\t\treason: AutocompleteChangeReason,\n\t\tdetails?: AutocompleteChangeDetails< InternalOption< TOption > | string >\n\t) => {\n\t\tconst changedOption = details?.option;\n\t\tif ( ! changedOption || ( typeof changedOption === 'object' && changedOption.fixed ) ) {\n\t\t\t// If `changedOption` is nullish it means no option was selected, created or removed.\n\t\t\t// The reason is either \"blur\" which we don't support (can't be \"clear\" since we disabled it).\n\t\t\t// If the option is fixed, it can't be selected, created or removed.\n\t\t\treturn;\n\t\t}\n\n\t\tconst selectedOptions = selectedOrInputValue.filter( ( option ) => typeof option !== 'string' );\n\n\t\tswitch ( reason ) {\n\t\t\tcase 'removeOption':\n\t\t\t\tconst removedOption = changedOption as InternalOption< TOption >;\n\t\t\t\tupdateSelectedOptions( selectedOptions, 'removeOption', removedOption );\n\t\t\t\tbreak;\n\n\t\t\t// User clicked an option. It's either an existing option, or \"Create <new option>\".\n\t\t\tcase 'selectOption': {\n\t\t\t\tconst selectedOption = changedOption as InternalOption< TOption >;\n\n\t\t\t\tif ( selectedOption._action === 'create' ) {\n\t\t\t\t\tconst newOption = selectedOption.value as string;\n\t\t\t\t\treturn createOption?.( newOption );\n\t\t\t\t}\n\n\t\t\t\tupdateSelectedOptions( selectedOptions, 'selectOption', selectedOption );\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\t// User pressed \"Enter\" after typing input. The input is either matching existing option or a new option to create.\n\t\t\tcase 'createOption': {\n\t\t\t\tconst inputValue = changedOption as string;\n\n\t\t\t\tconst matchingOption = options.find(\n\t\t\t\t\t( option ) => option.label.toLocaleLowerCase() === inputValue.toLocaleLowerCase()\n\t\t\t\t);\n\t\t\t\tif ( matchingOption ) {\n\t\t\t\t\tselectedOptions.push( matchingOption );\n\t\t\t\t\tupdateSelectedOptions( selectedOptions, 'selectOption', matchingOption );\n\t\t\t\t} else {\n\t\t\t\t\treturn createOption?.( inputValue );\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\tsetInputValue( '' );\n\t\tcloseDropdown();\n\t};\n\n\treturn handleChange;\n\n\tfunction updateSelectedOptions(\n\t\tselectedOptions: InternalOption< TOption >[],\n\t\treason: AutocompleteChangeReason,\n\t\tchangedOption: InternalOption< TOption >\n\t) {\n\t\tonSelect?.(\n\t\t\tselectedOptions.map( ( option ) => removeInternalKeys( option ) ),\n\t\t\treason,\n\t\t\tremoveInternalKeys( changedOption )\n\t\t);\n\t}\n}\n","import { useState } from 'react';\n\nimport { type ValidationEvent, type ValidationResult } from './types';\n\nexport function useInputState( validate?: ( value: string, event: ValidationEvent ) => ValidationResult ) {\n\tconst [ inputValue, setInputValue ] = useState( '' );\n\tconst [ error, setError ] = useState< string | null >( null );\n\n\tconst handleInputChange = ( event: React.ChangeEvent< HTMLInputElement > ) => {\n\t\tconst { value } = event.target;\n\n\t\tsetInputValue( value );\n\n\t\tif ( ! validate ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( ! value ) {\n\t\t\tsetError( null );\n\t\t\treturn;\n\t\t}\n\n\t\tconst { isValid, errorMessage } = validate( value, 'inputChange' );\n\n\t\tif ( isValid ) {\n\t\t\tsetError( null );\n\t\t} else {\n\t\t\tsetError( errorMessage );\n\t\t}\n\t};\n\n\tconst handleInputBlur = () => {\n\t\tsetInputValue( '' );\n\t\tsetError( null );\n\t};\n\n\treturn {\n\t\tinputValue,\n\t\tsetInputValue,\n\t\terror,\n\t\tsetError,\n\t\tinputHandlers: {\n\t\t\tonChange: handleInputChange,\n\t\t\tonBlur: handleInputBlur,\n\t\t},\n\t};\n}\n\nexport function useOpenState( initialOpen: boolean = false ) {\n\tconst [ open, setOpen ] = useState( initialOpen );\n\n\tconst openDropdown = () => setOpen( true );\n\tconst closeDropdown = () => setOpen( false );\n\n\treturn { open, openDropdown, closeDropdown };\n}\n","import { useState } from 'react';\n\nimport { type ValidationEvent, type ValidationResult } from './types';\n\nexport function useCreateOption( params: {\n\tonCreate?: ( value: string ) => Promise< unknown > | unknown;\n\tvalidate?: ( value: string, event: ValidationEvent ) => ValidationResult;\n\tsetInputValue: ( value: string ) => void;\n\tsetError: ( error: string | null ) => void;\n\tcloseDropdown: () => void;\n} ) {\n\tconst { onCreate, validate, setInputValue, setError, closeDropdown } = params;\n\n\tconst [ loading, setLoading ] = useState( false );\n\n\tif ( ! onCreate ) {\n\t\treturn { createOption: null, loading: false };\n\t}\n\n\tconst createOption = async ( value: string ) => {\n\t\tsetLoading( true );\n\n\t\tif ( validate ) {\n\t\t\tconst { isValid, errorMessage } = validate( value, 'create' );\n\n\t\t\tif ( ! isValid ) {\n\t\t\t\tsetError( errorMessage );\n\t\t\t\tsetLoading( false );\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\n\t\ttry {\n\t\t\tsetInputValue( '' );\n\t\t\tcloseDropdown();\n\t\t\tawait onCreate( value );\n\t\t} catch {\n\t\t\t// TODO: Do something with the error.\n\t\t} finally {\n\t\t\tsetLoading( false );\n\t\t}\n\t};\n\n\treturn { createOption, loading };\n}\n","import { createFilterOptions } from '@elementor/ui';\n\nimport { type InternalOption, type Option } from './types';\n\nexport function useFilterOptions< TOption extends Option >( parameters: {\n\toptions: TOption[];\n\tselected: TOption[];\n\tonCreate?: ( value: string ) => Promise< unknown > | unknown;\n\tentityName?: { singular: string; plural: string };\n} ) {\n\tconst { options, selected, onCreate, entityName } = parameters;\n\n\tconst filter = createFilterOptions< InternalOption< TOption > >();\n\n\tconst filterOptions = (\n\t\toptionList: InternalOption< TOption >[],\n\t\tparams: {\n\t\t\tinputValue: string;\n\t\t\tgetOptionLabel: ( option: InternalOption< TOption > ) => string;\n\t\t}\n\t) => {\n\t\tconst selectedValues = selected.map( ( option ) => option.value );\n\n\t\tconst filteredOptions = filter(\n\t\t\toptionList.filter( ( option ) => ! selectedValues.includes( option.value ) ),\n\t\t\tparams\n\t\t);\n\n\t\tconst isExisting = options.some( ( option ) => params.inputValue === option.label );\n\t\tconst allowCreate =\n\t\t\tBoolean( onCreate ) &&\n\t\t\tparams.inputValue !== '' &&\n\t\t\t! selectedValues.includes( params.inputValue ) &&\n\t\t\t! isExisting;\n\n\t\tif ( allowCreate ) {\n\t\t\tfilteredOptions.unshift( {\n\t\t\t\tlabel: `Create \"${ params.inputValue }\"`,\n\t\t\t\tvalue: params.inputValue,\n\t\t\t\t_group: `Create a new ${ entityName?.singular ?? 'option' }`,\n\t\t\t\tkey: `create-${ params.inputValue }`,\n\t\t\t\t_action: 'create',\n\t\t\t} as InternalOption< TOption > );\n\t\t}\n\n\t\treturn filteredOptions;\n\t};\n\n\treturn filterOptions;\n}\n","import * as React from 'react';\nimport { type ReactElement, useState } from 'react';\nimport { stylesRepository, validateStyleLabel } from '@elementor/editor-styles-repository';\nimport { EditableField, EllipsisWithTooltip, useEditable } from '@elementor/editor-ui';\nimport { DotsVerticalIcon } from '@elementor/icons';\nimport {\n\ttype AutocompleteRenderGetTagProps,\n\tbindTrigger,\n\tChip,\n\ttype ChipOwnProps,\n\tStack,\n\ttype Theme,\n\tTypography,\n\tUnstableChipGroup,\n\tusePopupState,\n} from '@elementor/ui';\nimport { __ } from '@wordpress/i18n';\n\nimport { useStyle } from '../../contexts/style-context';\nimport { CssClassProvider } from './css-class-context';\nimport { CssClassMenu } from './css-class-menu';\n\ntype CssClassItemProps = {\n\tid: string | null;\n\tprovider: string | null;\n\tlabel: string;\n\tfixed?: boolean;\n\tisActive: boolean;\n\tcolor: ChipOwnProps[ 'color' ];\n\ticon: ReactElement | null;\n\tchipProps: ReturnType< AutocompleteRenderGetTagProps >;\n\tonClickActive: ( id: string | null ) => void;\n\trenameLabel: ( newLabel: string ) => void;\n\tvalidateLabel?: ( newLabel: string ) => string | undefined | null;\n\tsetError?: ( error: string | null ) => void;\n};\n\nconst CHIP_SIZE = 'tiny';\n\nexport function CssClassItem( props: CssClassItemProps ) {\n\tconst { chipProps, icon, color: colorProp, fixed, ...classProps } = props;\n\tconst { id, provider, label, isActive, onClickActive, renameLabel, setError } = classProps;\n\n\tconst { meta, setMetaState } = useStyle();\n\tconst popupState = usePopupState( { variant: 'popover' } );\n\tconst [ chipRef, setChipRef ] = useState< HTMLElement | null >( null );\n\tconst { onDelete, ...chipGroupProps } = chipProps;\n\n\tconst {\n\t\tref,\n\t\tisEditing,\n\t\topenEditMode,\n\t\terror,\n\t\tgetProps: getEditableProps,\n\t} = useEditable( {\n\t\tvalue: label,\n\t\tonSubmit: renameLabel,\n\t\tvalidation: validateLabel,\n\t\tonError: setError,\n\t} );\n\n\tconst color = error ? 'error' : colorProp;\n\n\tconst providerActions = provider ? stylesRepository.getProviderByKey( provider )?.actions : null;\n\tconst allowRename = Boolean( providerActions?.update );\n\n\tconst isShowingState = isActive && meta.state;\n\n\treturn (\n\t\t<>\n\t\t\t<UnstableChipGroup\n\t\t\t\tref={ setChipRef }\n\t\t\t\t{ ...chipGroupProps }\n\t\t\t\taria-label={ `Edit ${ label }` }\n\t\t\t\trole=\"group\"\n\t\t\t\tsx={ ( theme: Theme ) => ( {\n\t\t\t\t\t'&.MuiChipGroup-root.MuiAutocomplete-tag': { margin: theme.spacing( 0.125 ) },\n\t\t\t\t} ) }\n\t\t\t>\n\t\t\t\t<Chip\n\t\t\t\t\tsize={ CHIP_SIZE }\n\t\t\t\t\tlabel={\n\t\t\t\t\t\tisEditing ? (\n\t\t\t\t\t\t\t<EditableField ref={ ref } { ...getEditableProps() } />\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t<EllipsisWithTooltip maxWidth=\"10ch\" title={ label } as=\"div\" />\n\t\t\t\t\t\t)\n\t\t\t\t\t}\n\t\t\t\t\tvariant={ isActive && ! meta.state && ! isEditing ? 'filled' : 'standard' }\n\t\t\t\t\tshape=\"rounded\"\n\t\t\t\t\ticon={ icon }\n\t\t\t\t\tcolor={ color }\n\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\tif ( isShowingState ) {\n\t\t\t\t\t\t\tsetMetaState( null );\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif ( allowRename && isActive ) {\n\t\t\t\t\t\t\topenEditMode();\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tonClickActive( id );\n\t\t\t\t\t} }\n\t\t\t\t\taria-pressed={ isActive }\n\t\t\t\t\tsx={ ( theme: Theme ) => ( {\n\t\t\t\t\t\tlineHeight: 1,\n\t\t\t\t\t\tcursor: isActive && allowRename && ! isShowingState ? 'text' : 'pointer',\n\t\t\t\t\t\tborderRadius: `${ theme.shape.borderRadius * 0.75 }px`,\n\t\t\t\t\t\t'&.Mui-focusVisible': {\n\t\t\t\t\t\t\tboxShadow: 'none !important',\n\t\t\t\t\t\t},\n\t\t\t\t\t} ) }\n\t\t\t\t/>\n\t\t\t\t{ ! isEditing && (\n\t\t\t\t\t<Chip\n\t\t\t\t\t\ticon={ isShowingState ? undefined : <DotsVerticalIcon fontSize=\"tiny\" /> }\n\t\t\t\t\t\tsize={ CHIP_SIZE }\n\t\t\t\t\t\tlabel={\n\t\t\t\t\t\t\tisShowingState ? (\n\t\t\t\t\t\t\t\t<Stack direction=\"row\" gap={ 0.5 } alignItems=\"center\">\n\t\t\t\t\t\t\t\t\t<Typography variant=\"inherit\">{ meta.state }</Typography>\n\t\t\t\t\t\t\t\t\t<DotsVerticalIcon fontSize=\"tiny\" />\n\t\t\t\t\t\t\t\t</Stack>\n\t\t\t\t\t\t\t) : undefined\n\t\t\t\t\t\t}\n\t\t\t\t\t\tvariant=\"filled\"\n\t\t\t\t\t\tshape=\"rounded\"\n\t\t\t\t\t\tcolor={ color }\n\t\t\t\t\t\t{ ...bindTrigger( popupState ) }\n\t\t\t\t\t\taria-label={ __( 'Open CSS Class Menu', 'elementor' ) }\n\t\t\t\t\t\tsx={ ( theme: Theme ) => ( {\n\t\t\t\t\t\t\tborderRadius: `${ theme.shape.borderRadius * 0.75 }px`,\n\t\t\t\t\t\t\tpaddingRight: 0,\n\t\t\t\t\t\t\t...( ! isShowingState ? { paddingLeft: 0 } : {} ),\n\t\t\t\t\t\t\t'.MuiChip-label': isShowingState ? { paddingRight: 0 } : { padding: 0 },\n\t\t\t\t\t\t} ) }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</UnstableChipGroup>\n\t\t\t<CssClassProvider { ...classProps } handleRename={ openEditMode }>\n\t\t\t\t<CssClassMenu popupState={ popupState } anchorEl={ chipRef } fixed={ fixed } />\n\t\t\t</CssClassProvider>\n\t\t</>\n\t);\n}\n\nconst validateLabel = ( newLabel: string ) => {\n\tconst result = validateStyleLabel( newLabel, 'rename' );\n\n\tif ( result.isValid ) {\n\t\treturn null;\n\t}\n\n\treturn result.errorMessage;\n};\n","import * as React from 'react';\nimport { createContext, useContext } from 'react';\n\ntype CssClassContextType = {\n\tid: string | null;\n\tprovider: string | null;\n\tlabel: string;\n\tisActive: boolean;\n\tonClickActive: ( id: string | null ) => void;\n\thandleRename: () => void;\n\tsetError?: ( error: string | null ) => void;\n};\n\nconst CssClassContext = createContext< CssClassContextType | null >( null );\n\nexport const useCssClass = () => {\n\tconst context = useContext( CssClassContext );\n\tif ( ! context ) {\n\t\tthrow new Error( 'useCssClass must be used within a CssClassProvider' );\n\t}\n\treturn context;\n};\n\ntype CssClassProviderProps = CssClassContextType & {\n\tchildren: React.ReactNode;\n};\n\nexport function CssClassProvider( { children, ...contextValue }: CssClassProviderProps ) {\n\treturn <CssClassContext.Provider value={ contextValue }>{ children }</CssClassContext.Provider>;\n}\n","import * as React from 'react';\nimport { type StyleDefinitionState } from '@elementor/editor-styles';\nimport {\n\tisElementsStylesProvider,\n\tstylesRepository,\n\tuseUserStylesCapability,\n} from '@elementor/editor-styles-repository';\nimport { MenuItemInfotip, MenuListItem } from '@elementor/editor-ui';\nimport { bindMenu, Divider, Menu, MenuSubheader, type PopupState, Stack } from '@elementor/ui';\nimport { __ } from '@wordpress/i18n';\n\nimport { useStyle } from '../../contexts/style-context';\nimport { type StyleDefinitionStateWithNormal } from '../../styles-inheritance/types';\nimport { StyleIndicator } from '../style-indicator';\nimport { useCssClass } from './css-class-context';\nimport { useUnapplyClass } from './use-apply-and-unapply-class';\n\ntype State = {\n\tkey: StyleDefinitionStateWithNormal;\n\tvalue: StyleDefinitionState | null;\n};\n\nconst STATES: State[] = [\n\t{ key: 'normal', value: null },\n\t{ key: 'hover', value: 'hover' },\n\t{ key: 'focus', value: 'focus' },\n\t{ key: 'active', value: 'active' },\n];\n\ntype CssClassMenuProps = {\n\tpopupState: PopupState;\n\tanchorEl: HTMLElement | null;\n\tfixed?: boolean;\n};\n\nexport function CssClassMenu( { popupState, anchorEl, fixed }: CssClassMenuProps ) {\n\tconst { provider } = useCssClass();\n\n\tconst handleKeyDown = ( e: React.KeyboardEvent< HTMLElement > ) => {\n\t\te.stopPropagation();\n\t};\n\n\treturn (\n\t\t<Menu\n\t\t\tMenuListProps={ { dense: true, sx: { minWidth: '160px' } } }\n\t\t\t{ ...bindMenu( popupState ) }\n\t\t\tanchorEl={ anchorEl }\n\t\t\tanchorOrigin={ {\n\t\t\t\tvertical: 'bottom',\n\t\t\t\thorizontal: 'left',\n\t\t\t} }\n\t\t\ttransformOrigin={ {\n\t\t\t\thorizontal: 'left',\n\t\t\t\tvertical: -4,\n\t\t\t} }\n\t\t\tonKeyDown={ handleKeyDown }\n\t\t\t// Workaround for focus-visible issue.\n\t\t\tdisableAutoFocusItem\n\t\t>\n\t\t\t{ /* It has to be an array since MUI menu doesn't accept a Fragment as a child, and wrapping the items with an HTML element disrupts keyboard navigation */ }\n\t\t\t{ getMenuItemsByProvider( { provider, closeMenu: popupState.close, fixed } ) }\n\t\t\t<MenuSubheader sx={ { typography: 'caption', color: 'text.secondary', pb: 0.5, pt: 1 } }>\n\t\t\t\t{ __( 'States', 'elementor' ) }\n\t\t\t</MenuSubheader>\n\t\t\t{ STATES.map( ( state ) => {\n\t\t\t\treturn <StateMenuItem key={ state.key } state={ state.value } closeMenu={ popupState.close } />;\n\t\t\t} ) }\n\t\t</Menu>\n\t);\n}\n\nfunction useModifiedStates( styleId: string | null ): Partial< Record< StyleDefinitionStateWithNormal, true > > {\n\tconst { meta } = useStyle();\n\n\tconst styleDef = stylesRepository.all().find( ( style ) => style.id === styleId );\n\n\treturn Object.fromEntries(\n\t\tstyleDef?.variants\n\t\t\t.filter( ( variant ) => meta.breakpoint === variant.meta.breakpoint )\n\t\t\t.map( ( variant ) => [ variant.meta.state ?? 'normal', true ] ) ?? []\n\t);\n}\n\nfunction getMenuItemsByProvider( {\n\tprovider,\n\tcloseMenu,\n\tfixed,\n}: {\n\tprovider: string | null;\n\tcloseMenu: () => void;\n\tfixed?: boolean;\n} ) {\n\tif ( ! provider ) {\n\t\treturn [];\n\t}\n\n\tconst providerInstance = stylesRepository.getProviderByKey( provider );\n\tconst providerActions = providerInstance?.actions;\n\n\tconst canUpdate = providerActions?.update;\n\tconst canUnapply = ! fixed;\n\n\tconst actions = [\n\t\tcanUpdate && <RenameClassMenuItem key=\"rename-class\" closeMenu={ closeMenu } />,\n\t\tcanUnapply && <UnapplyClassMenuItem key=\"unapply-class\" closeMenu={ closeMenu } />,\n\t].filter( Boolean );\n\n\tif ( actions.length ) {\n\t\tactions.unshift(\n\t\t\t<MenuSubheader\n\t\t\t\tkey=\"provider-label\"\n\t\t\t\tsx={ { typography: 'caption', color: 'text.secondary', pb: 0.5, pt: 1, textTransform: 'capitalize' } }\n\t\t\t>\n\t\t\t\t{ providerInstance?.labels?.singular }\n\t\t\t</MenuSubheader>\n\t\t);\n\t\tactions.push( <Divider key=\"provider-actions-divider\" /> );\n\t}\n\n\treturn actions;\n}\n\ntype StateMenuItemProps = {\n\tstate: StyleDefinitionState;\n\tcloseMenu: () => void;\n};\n\nfunction StateMenuItem( { state, closeMenu, ...props }: StateMenuItemProps ) {\n\tconst { id: styleId, provider } = useCssClass();\n\tconst { id: activeId, setId: setActiveId, setMetaState: setActiveMetaState, meta } = useStyle();\n\tconst { state: activeState } = meta;\n\tconst { userCan } = useUserStylesCapability();\n\n\tconst modifiedStates = useModifiedStates( styleId );\n\n\tconst isUpdateAllowed = userCan( provider ?? '' ).updateProps;\n\n\tconst indicatorVariant = ! provider || isElementsStylesProvider( provider ) ? 'local' : 'global';\n\n\tconst isStyled = modifiedStates[ state ?? 'normal' ] ?? false;\n\tconst disabled = isUpdateAllowed ? false : ! isStyled;\n\tconst isActive = styleId === activeId;\n\tconst isSelected = state === activeState && isActive;\n\n\treturn (\n\t\t<MenuListItem\n\t\t\t{ ...props }\n\t\t\tselected={ isSelected }\n\t\t\tdisabled={ disabled }\n\t\t\tsx={ { textTransform: 'capitalize' } }\n\t\t\tonClick={ () => {\n\t\t\t\tif ( ! isActive ) {\n\t\t\t\t\tsetActiveId( styleId );\n\t\t\t\t}\n\n\t\t\t\tsetActiveMetaState( state );\n\n\t\t\t\tcloseMenu();\n\t\t\t} }\n\t\t>\n\t\t\t<MenuItemInfotip\n\t\t\t\tshowInfoTip={ disabled }\n\t\t\t\tcontent={ __( 'With your role as an editor, you can only use existing states.', 'elementor' ) }\n\t\t\t>\n\t\t\t\t<Stack gap={ 0.75 } direction=\"row\" alignItems=\"center\">\n\t\t\t\t\t{ isStyled && (\n\t\t\t\t\t\t<StyleIndicator aria-label={ __( 'Has style', 'elementor' ) } variant={ indicatorVariant } />\n\t\t\t\t\t) }\n\t\t\t\t\t{ state ?? 'normal' }\n\t\t\t\t</Stack>\n\t\t\t</MenuItemInfotip>\n\t\t</MenuListItem>\n\t);\n}\n\nfunction UnapplyClassMenuItem( { closeMenu, ...props }: { closeMenu: () => void } ) {\n\tconst { id: classId, label: classLabel } = useCssClass();\n\tconst unapplyClass = useUnapplyClass();\n\n\treturn classId ? (\n\t\t<MenuListItem\n\t\t\t{ ...props }\n\t\t\tonClick={ () => {\n\t\t\t\tunapplyClass( { classId, classLabel } );\n\t\t\t\tcloseMenu();\n\t\t\t} }\n\t\t>\n\t\t\t{ __( 'Remove', 'elementor' ) }\n\t\t</MenuListItem>\n\t) : null;\n}\n\nfunction RenameClassMenuItem( { closeMenu }: { closeMenu: () => void } ) {\n\tconst { handleRename, provider } = useCssClass();\n\tconst { userCan } = useUserStylesCapability();\n\n\tif ( ! provider ) {\n\t\treturn null;\n\t}\n\n\tconst isAllowed = userCan( provider ).update;\n\n\treturn (\n\t\t<MenuListItem\n\t\t\tdisabled={ ! isAllowed }\n\t\t\tonClick={ () => {\n\t\t\t\tcloseMenu();\n\t\t\t\thandleRename();\n\t\t\t} }\n\t\t>\n\t\t\t<MenuItemInfotip\n\t\t\t\tshowInfoTip={ ! isAllowed }\n\t\t\t\tcontent={ __(\n\t\t\t\t\t'With your role as an editor, you can use existing classes but can’t modify them.',\n\t\t\t\t\t'elementor'\n\t\t\t\t) }\n\t\t\t>\n\t\t\t\t{ __( 'Rename', 'elementor' ) }\n\t\t\t</MenuItemInfotip>\n\t\t</MenuListItem>\n\t);\n}\n","import { styled } from '@elementor/ui';\n\ntype StyleIndicatorVariant = 'overridden' | 'local' | 'global';\n\nexport const StyleIndicator = styled( 'div', {\n\tshouldForwardProp: ( prop ) => prop !== 'variant',\n} )< { variant?: StyleIndicatorVariant } >`\n\twidth: 5px;\n\theight: 5px;\n\tborder-radius: 50%;\n\tbackground-color: ${ ( { theme, variant } ) => {\n\t\tswitch ( variant ) {\n\t\t\tcase 'overridden':\n\t\t\t\treturn theme.palette.warning.light;\n\t\t\tcase 'global':\n\t\t\t\treturn theme.palette.global.dark;\n\t\t\tcase 'local':\n\t\t\t\treturn theme.palette.accent.main;\n\t\t\tdefault:\n\t\t\t\treturn theme.palette.text.disabled;\n\t\t}\n\t} };\n`;\n","import { useCallback, useMemo } from 'react';\nimport { setDocumentModifiedStatus } from '@elementor/editor-documents';\nimport { getElementLabel, getElementSetting, updateElementSettings } from '@elementor/editor-elements';\nimport { classesPropTypeUtil, type ClassesPropValue } from '@elementor/editor-props';\nimport { type StyleDefinitionID } from '@elementor/editor-styles';\nimport { isExperimentActive, undoable } from '@elementor/editor-v1-adapters';\nimport { __ } from '@wordpress/i18n';\n\nimport { useClassesProp } from '../../contexts/classes-prop-context';\nimport { useElement } from '../../contexts/element-context';\nimport { useStyle } from '../../contexts/style-context';\n\ntype UndoableClassActionPayload = {\n\tclassId: StyleDefinitionID;\n\tclassLabel: string;\n};\n\nexport function useApplyClass() {\n\tconst { id: activeId, setId: setActiveId } = useStyle();\n\tconst { element } = useElement();\n\n\tconst isVersion330Active = isExperimentActive( 'e_v_3_30' );\n\n\tconst applyClass = useApply();\n\tconst unapplyClass = useUnapply();\n\n\tconst undoableApply = useMemo( () => {\n\t\treturn undoable(\n\t\t\t{\n\t\t\t\tdo: ( { classId }: UndoableClassActionPayload ) => {\n\t\t\t\t\tconst prevActiveId = activeId;\n\n\t\t\t\t\tapplyClass( classId );\n\n\t\t\t\t\treturn prevActiveId;\n\t\t\t\t},\n\t\t\t\tundo: ( { classId }: UndoableClassActionPayload, prevActiveId: string | null ) => {\n\t\t\t\t\tunapplyClass( classId );\n\t\t\t\t\tsetActiveId( prevActiveId );\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\ttitle: getElementLabel( element.id ),\n\t\t\t\tsubtitle: ( { classLabel } ) => {\n\t\t\t\t\t/* translators: %s is the class name. */\n\t\t\t\t\treturn __( `class %s applied`, 'elementor' ).replace( '%s', classLabel );\n\t\t\t\t},\n\t\t\t}\n\t\t);\n\t}, [ activeId, applyClass, element.id, unapplyClass, setActiveId ] );\n\n\tconst applyWithoutHistory = useCallback(\n\t\t( { classId }: UndoableClassActionPayload ) => {\n\t\t\tapplyClass( classId );\n\t\t},\n\t\t[ applyClass ]\n\t);\n\n\treturn isVersion330Active ? undoableApply : applyWithoutHistory;\n}\n\nexport function useUnapplyClass() {\n\tconst { id: activeId, setId: setActiveId } = useStyle();\n\tconst { element } = useElement();\n\n\tconst isVersion330Active = isExperimentActive( 'e_v_3_30' );\n\n\tconst applyClass = useApply();\n\tconst unapplyClass = useUnapply();\n\n\tconst undoableUnapply = useMemo( () => {\n\t\treturn undoable(\n\t\t\t{\n\t\t\t\tdo: ( { classId }: UndoableClassActionPayload ) => {\n\t\t\t\t\tconst prevActiveId = activeId;\n\n\t\t\t\t\tunapplyClass( classId );\n\n\t\t\t\t\treturn prevActiveId;\n\t\t\t\t},\n\t\t\t\tundo: ( { classId }: UndoableClassActionPayload, prevActiveId: string | null ) => {\n\t\t\t\t\tapplyClass( classId );\n\t\t\t\t\tsetActiveId( prevActiveId );\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\ttitle: getElementLabel( element.id ),\n\t\t\t\tsubtitle: ( { classLabel } ) => {\n\t\t\t\t\t/* translators: %s is the class name. */\n\t\t\t\t\treturn __( `class %s removed`, 'elementor' ).replace( '%s', classLabel );\n\t\t\t\t},\n\t\t\t}\n\t\t);\n\t}, [ activeId, applyClass, element.id, unapplyClass, setActiveId ] );\n\n\tconst unapplyWithoutHistory = useCallback(\n\t\t( { classId }: UndoableClassActionPayload ) => {\n\t\t\tunapplyClass( classId );\n\t\t},\n\t\t[ unapplyClass ]\n\t);\n\n\treturn isVersion330Active ? undoableUnapply : unapplyWithoutHistory;\n}\n\nfunction useApply() {\n\tconst { element } = useElement();\n\tconst { setId: setActiveId } = useStyle();\n\tconst { setClasses, getAppliedClasses } = useSetClasses();\n\n\treturn useCallback(\n\t\t( classIDToApply: StyleDefinitionID ) => {\n\t\t\tconst appliedClasses = getAppliedClasses();\n\n\t\t\tif ( appliedClasses.includes( classIDToApply ) ) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t`Class ${ classIDToApply } is already applied to element ${ element.id }, cannot re-apply.`\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tconst updatedClassesIds = [ ...appliedClasses, classIDToApply ];\n\t\t\tsetClasses( updatedClassesIds );\n\t\t\tsetActiveId( classIDToApply );\n\t\t},\n\t\t[ element.id, getAppliedClasses, setActiveId, setClasses ]\n\t);\n}\n\nfunction useUnapply() {\n\tconst { element } = useElement();\n\tconst { id: activeId, setId: setActiveId } = useStyle();\n\tconst { setClasses, getAppliedClasses } = useSetClasses();\n\n\treturn useCallback(\n\t\t( classIDToUnapply: StyleDefinitionID ) => {\n\t\t\tconst appliedClasses = getAppliedClasses();\n\n\t\t\tif ( ! appliedClasses.includes( classIDToUnapply ) ) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t`Class ${ classIDToUnapply } is not applied to element ${ element.id }, cannot unapply it.`\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tconst updatedClassesIds = appliedClasses.filter( ( id ) => id !== classIDToUnapply );\n\t\t\tsetClasses( updatedClassesIds );\n\n\t\t\tif ( activeId === classIDToUnapply ) {\n\t\t\t\tsetActiveId( updatedClassesIds[ 0 ] ?? null );\n\t\t\t}\n\t\t},\n\t\t[ activeId, element.id, getAppliedClasses, setActiveId, setClasses ]\n\t);\n}\n\nfunction useSetClasses() {\n\tconst { element } = useElement();\n\tconst currentClassesProp = useClassesProp();\n\n\tconst isVersion330Active = isExperimentActive( 'e_v_3_30' );\n\n\treturn useMemo( () => {\n\t\tconst setClasses = ( ids: StyleDefinitionID[] ) => {\n\t\t\tupdateElementSettings( {\n\t\t\t\tid: element.id,\n\t\t\t\tprops: { [ currentClassesProp ]: classesPropTypeUtil.create( ids ) },\n\t\t\t\twithHistory: isVersion330Active ? false : true,\n\t\t\t} );\n\n\t\t\tif ( isVersion330Active ) {\n\t\t\t\tsetDocumentModifiedStatus( true );\n\t\t\t}\n\t\t};\n\n\t\tconst getAppliedClasses = () =>\n\t\t\tgetElementSetting< ClassesPropValue >( element.id, currentClassesProp )?.value || [];\n\n\t\treturn {\n\t\t\tsetClasses,\n\t\t\tgetAppliedClasses,\n\t\t};\n\t}, [ currentClassesProp, element.id, isVersion330Active ] );\n}\n","import { __createPanel as createPanel } from '@elementor/editor-panels';\n\nimport { EditingPanel } from './components/editing-panel';\n\nexport const { panel, usePanelActions, usePanelStatus } = createPanel( {\n\tid: 'editing-panel',\n\tcomponent: EditingPanel,\n} );\n","import * as React from 'react';\nimport { ControlActionsProvider, ControlReplacementsProvider } from '@elementor/editor-controls';\nimport { useSelectedElement } from '@elementor/editor-elements';\nimport { Panel, PanelBody, PanelHeader, PanelHeaderTitle } from '@elementor/editor-panels';\nimport { ThemeProvider } from '@elementor/editor-ui';\nimport { AtomIcon } from '@elementor/icons';\nimport { SessionStorageProvider } from '@elementor/session';\nimport { ErrorBoundary } from '@elementor/ui';\nimport { __ } from '@wordpress/i18n';\n\nimport { ElementProvider } from '../contexts/element-context';\nimport { getControlReplacements } from '../control-replacement';\nimport { controlActionsMenu } from '../controls-actions';\nimport { EditorPanelErrorFallback } from './editing-panel-error-fallback';\nimport { EditingPanelTabs } from './editing-panel-tabs';\n\nconst { useMenuItems } = controlActionsMenu;\n\nexport const EditingPanel = () => {\n\tconst { element, elementType } = useSelectedElement();\n\tconst controlReplacements = getControlReplacements();\n\tconst menuItems = useMenuItems().default;\n\n\tif ( ! element || ! elementType ) {\n\t\treturn null;\n\t}\n\n\t/* translators: %s: Element type title. */\n\tconst panelTitle = __( 'Edit %s', 'elementor' ).replace( '%s', elementType.title );\n\n\treturn (\n\t\t<ErrorBoundary fallback={ <EditorPanelErrorFallback /> }>\n\t\t\t<SessionStorageProvider prefix={ 'elementor' }>\n\t\t\t\t<ThemeProvider>\n\t\t\t\t\t<Panel>\n\t\t\t\t\t\t<PanelHeader>\n\t\t\t\t\t\t\t<PanelHeaderTitle>{ panelTitle }</PanelHeaderTitle>\n\t\t\t\t\t\t\t<AtomIcon fontSize=\"small\" sx={ { color: 'text.tertiary' } } />\n\t\t\t\t\t\t</PanelHeader>\n\t\t\t\t\t\t<PanelBody>\n\t\t\t\t\t\t\t<ControlActionsProvider items={ menuItems }>\n\t\t\t\t\t\t\t\t<ControlReplacementsProvider replacements={ controlReplacements }>\n\t\t\t\t\t\t\t\t\t<ElementProvider element={ element } elementType={ elementType }>\n\t\t\t\t\t\t\t\t\t\t<EditingPanelTabs />\n\t\t\t\t\t\t\t\t\t</ElementProvider>\n\t\t\t\t\t\t\t\t</ControlReplacementsProvider>\n\t\t\t\t\t\t\t</ControlActionsProvider>\n\t\t\t\t\t\t</PanelBody>\n\t\t\t\t\t</Panel>\n\t\t\t\t</ThemeProvider>\n\t\t\t</SessionStorageProvider>\n\t\t</ErrorBoundary>\n\t);\n};\n","import { createMenu } from '@elementor/menus';\n\nimport Action from './action';\nimport PopoverAction from './popover-action';\n\nexport const controlActionsMenu = createMenu( {\n\tcomponents: {\n\t\tAction,\n\t\tPopoverAction,\n\t},\n} );\n","import * as React from 'react';\nimport { type ElementType as ReactElementType } from 'react';\nimport { IconButton, Tooltip } from '@elementor/ui';\n\nconst SIZE = 'tiny';\n\ntype ActionProps = {\n\ttitle: string;\n\tvisible?: boolean;\n\ticon: ReactElementType;\n\tonClick: () => void;\n};\n\nexport default function Action( { title, visible = true, icon: Icon, onClick }: ActionProps ) {\n\tif ( ! visible ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<Tooltip placement=\"bottom\" title={ title } arrow={ true }>\n\t\t\t<IconButton aria-label={ title } size={ SIZE } onClick={ onClick }>\n\t\t\t\t<Icon fontSize={ SIZE } />\n\t\t\t</IconButton>\n\t\t</Tooltip>\n\t);\n}\n","import * as React from 'react';\nimport { type ComponentType, type ElementType as ReactElementType, useId } from 'react';\nimport { XIcon } from '@elementor/icons';\nimport { bindPopover, bindToggle, IconButton, Popover, Stack, Tooltip, Typography, usePopupState } from '@elementor/ui';\n\nconst SIZE = 'tiny';\n\nexport type PopoverActionProps = {\n\ttitle: string;\n\tvisible?: boolean;\n\ticon: ReactElementType;\n\tpopoverContent: ComponentType< { closePopover: () => void } >;\n};\n\nexport default function PopoverAction( {\n\ttitle,\n\tvisible = true,\n\ticon: Icon,\n\tpopoverContent: PopoverContent,\n}: PopoverActionProps ) {\n\tconst id = useId();\n\tconst popupState = usePopupState( {\n\t\tvariant: 'popover',\n\t\tpopupId: `elementor-popover-action-${ id }`,\n\t} );\n\n\tif ( ! visible ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t<Tooltip placement=\"top\" title={ title }>\n\t\t\t\t<IconButton aria-label={ title } key={ id } size={ SIZE } { ...bindToggle( popupState ) }>\n\t\t\t\t\t<Icon fontSize={ SIZE } />\n\t\t\t\t</IconButton>\n\t\t\t</Tooltip>\n\t\t\t<Popover\n\t\t\t\tdisablePortal\n\t\t\t\tdisableScrollLock\n\t\t\t\tanchorOrigin={ {\n\t\t\t\t\tvertical: 'bottom',\n\t\t\t\t\thorizontal: 'center',\n\t\t\t\t} }\n\t\t\t\t{ ...bindPopover( popupState ) }\n\t\t\t>\n\t\t\t\t<Stack direction=\"row\" alignItems=\"center\" pl={ 1.5 } pr={ 0.5 } py={ 1.5 }>\n\t\t\t\t\t<Icon fontSize={ SIZE } sx={ { mr: 0.5 } } />\n\t\t\t\t\t<Typography variant=\"subtitle2\">{ title }</Typography>\n\t\t\t\t\t<IconButton sx={ { ml: 'auto' } } size={ SIZE } onClick={ popupState.close }>\n\t\t\t\t\t\t<XIcon fontSize={ SIZE } />\n\t\t\t\t\t</IconButton>\n\t\t\t\t</Stack>\n\t\t\t\t<PopoverContent closePopover={ popupState.close } />\n\t\t\t</Popover>\n\t\t</>\n\t);\n}\n","import * as React from 'react';\nimport { Alert, Box } from '@elementor/ui';\n\nexport function EditorPanelErrorFallback() {\n\treturn (\n\t\t<Box role=\"alert\" sx={ { minHeight: '100%', p: 2 } }>\n\t\t\t<Alert severity=\"error\" sx={ { mb: 2, maxWidth: 400, textAlign: 'center' } }>\n\t\t\t\t<strong>Something went wrong</strong>\n\t\t\t</Alert>\n\t\t</Box>\n\t);\n}\n","import * as React from 'react';\nimport { Fragment } from 'react';\nimport { isExperimentActive } from '@elementor/editor-v1-adapters';\nimport { Divider, Stack, Tab, TabPanel, Tabs, useTabs } from '@elementor/ui';\nimport { __ } from '@wordpress/i18n';\n\nimport { useElement } from '../contexts/element-context';\nimport { ScrollProvider } from '../contexts/scroll-context';\nimport { useDefaultPanelSettings } from '../hooks/use-default-panel-settings';\nimport { useStateByElement } from '../hooks/use-state-by-element';\nimport { EXPERIMENTAL_FEATURES } from '../sync/experiments-flags';\nimport { SettingsTab } from './settings-tab';\nimport { stickyHeaderStyles, StyleTab } from './style-tab';\n\ntype TabValue = 'settings' | 'style';\n\nexport const EditingPanelTabs = () => {\n\tconst { element } = useElement();\n\treturn (\n\t\t// When switching between elements, the local states should be reset. We are using key to rerender the tabs.\n\t\t// Reference: https://react.dev/learn/preserving-and-resetting-state#resetting-a-form-with-a-key\n\t\t<Fragment key={ element.id }>\n\t\t\t<PanelTabContent />\n\t\t</Fragment>\n\t);\n};\n\nconst PanelTabContent = () => {\n\tconst editorDefaults = useDefaultPanelSettings();\n\tconst defaultComponentTab = isExperimentActive( EXPERIMENTAL_FEATURES.V_3_30 )\n\t\t? ( editorDefaults.defaultTab as TabValue )\n\t\t: 'settings';\n\n\tconst [ currentTab, setCurrentTab ] = useStateByElement< TabValue >( 'tab', defaultComponentTab );\n\tconst { getTabProps, getTabPanelProps, getTabsProps } = useTabs< TabValue >( currentTab );\n\treturn (\n\t\t<ScrollProvider>\n\t\t\t<Stack direction=\"column\" sx={ { width: '100%' } }>\n\t\t\t\t<Stack sx={ { ...stickyHeaderStyles, top: 0 } }>\n\t\t\t\t\t<Tabs\n\t\t\t\t\t\tvariant=\"fullWidth\"\n\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\tsx={ { mt: 0.5 } }\n\t\t\t\t\t\t{ ...getTabsProps() }\n\t\t\t\t\t\tonChange={ ( _: unknown, newValue: TabValue ) => {\n\t\t\t\t\t\t\tgetTabsProps().onChange( _, newValue );\n\t\t\t\t\t\t\tsetCurrentTab( newValue );\n\t\t\t\t\t\t} }\n\t\t\t\t\t>\n\t\t\t\t\t\t<Tab label={ __( 'General', 'elementor' ) } { ...getTabProps( 'settings' ) } />\n\t\t\t\t\t\t<Tab label={ __( 'Style', 'elementor' ) } { ...getTabProps( 'style' ) } />\n\t\t\t\t\t</Tabs>\n\t\t\t\t\t<Divider />\n\t\t\t\t</Stack>\n\t\t\t\t<TabPanel { ...getTabPanelProps( 'settings' ) } disablePadding>\n\t\t\t\t\t<SettingsTab />\n\t\t\t\t</TabPanel>\n\t\t\t\t<TabPanel { ...getTabPanelProps( 'style' ) } disablePadding>\n\t\t\t\t\t<StyleTab />\n\t\t\t\t</TabPanel>\n\t\t\t</Stack>\n\t\t</ScrollProvider>\n\t);\n};\n","import * as React from 'react';\nimport { createContext, type ReactNode, useContext, useEffect, useRef, useState } from 'react';\nimport { styled } from '@elementor/ui';\n\ntype ScrollDirection = 'up' | 'down';\n\ntype ScrollContextValue = {\n\tdirection: ScrollDirection;\n};\n\nconst ScrollContext = createContext< ScrollContextValue | undefined >( undefined );\n\nconst ScrollPanel = styled( 'div' )`\n\theight: 100%;\n\toverflow-y: auto;\n`;\n\nconst DEFAULT_SCROLL_DIRECTION: ScrollDirection = 'up';\n\nexport function ScrollProvider( { children }: { children: ReactNode } ) {\n\tconst [ direction, setDirection ] = useState< ScrollDirection >( DEFAULT_SCROLL_DIRECTION );\n\tconst ref = useRef< HTMLDivElement >( null );\n\tconst scrollPos = useRef< number >( 0 );\n\n\tuseEffect( () => {\n\t\tconst scrollElement = ref.current;\n\n\t\tif ( ! scrollElement ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst handleScroll = () => {\n\t\t\tconst { scrollTop } = scrollElement;\n\n\t\t\tif ( scrollTop > scrollPos.current ) {\n\t\t\t\tsetDirection( 'down' );\n\t\t\t} else if ( scrollTop < scrollPos.current ) {\n\t\t\t\tsetDirection( 'up' );\n\t\t\t}\n\n\t\t\tscrollPos.current = scrollTop;\n\t\t};\n\n\t\tscrollElement.addEventListener( 'scroll', handleScroll );\n\n\t\treturn () => {\n\t\t\tscrollElement.removeEventListener( 'scroll', handleScroll );\n\t\t};\n\t} );\n\n\treturn (\n\t\t<ScrollContext.Provider value={ { direction } }>\n\t\t\t<ScrollPanel ref={ ref }>{ children }</ScrollPanel>\n\t\t</ScrollContext.Provider>\n\t);\n}\n\nexport function useScrollDirection() {\n\treturn useContext( ScrollContext )?.direction ?? DEFAULT_SCROLL_DIRECTION;\n}\n","import { createContext, useContext } from 'react';\n\nimport { useElement } from '../contexts/element-context';\n\ntype Defaults = {\n\tdefaultSectionsExpanded: Record< string, string[] >;\n\tdefaultTab: string;\n};\n\nconst fallbackEditorSettings: Defaults = {\n\tdefaultSectionsExpanded: {\n\t\tsettings: [ 'Content', 'Settings' ],\n\t\tstyle: [],\n\t},\n\tdefaultTab: 'settings',\n};\n\nconst defaultPanelSettingsContext = createContext< Record< string, Defaults | undefined > >( {\n\t'e-div-block': {\n\t\tdefaultSectionsExpanded: fallbackEditorSettings.defaultSectionsExpanded,\n\t\tdefaultTab: 'style',\n\t},\n\t'e-flexbox': {\n\t\tdefaultSectionsExpanded: fallbackEditorSettings.defaultSectionsExpanded,\n\t\tdefaultTab: 'style',\n\t},\n} );\n\nexport const useDefaultPanelSettings = () => {\n\tconst { element } = useElement();\n\tconst defaults = useContext( defaultPanelSettingsContext )[ element.type ];\n\treturn defaults || fallbackEditorSettings;\n};\n","import { useState } from 'react';\nimport { isExperimentActive } from '@elementor/editor-v1-adapters';\nimport { getSessionStorageItem, setSessionStorageItem } from '@elementor/session';\n\nimport { useElement } from '../contexts/element-context';\nimport { EXPERIMENTAL_FEATURES } from '../sync/experiments-flags';\n\nexport const useStateByElement = < T >( key: string, initialValue: T ) => {\n\tconst { element } = useElement();\n\tconst isFeatureActive = isExperimentActive( EXPERIMENTAL_FEATURES.V_3_30 );\n\tconst lookup = `elementor/editor-state/${ element.id }/${ key }`;\n\tconst storedValue = isFeatureActive ? getSessionStorageItem< T >( lookup ) : initialValue;\n\tconst [ value, setValue ] = useState( storedValue ?? initialValue );\n\n\tconst doUpdate = ( newValue: T ) => {\n\t\tsetSessionStorageItem( lookup, newValue );\n\t\tsetValue( newValue );\n\t};\n\n\treturn [ value, doUpdate ] as const;\n};\n","// Experimental features flags\nexport const EXPERIMENTAL_FEATURES = {\n\tV_3_30: 'e_v_3_30',\n};\n","import * as React from 'react';\nimport { ControlFormLabel } from '@elementor/editor-controls';\nimport { type Control } from '@elementor/editor-elements';\nimport { isExperimentActive } from '@elementor/editor-v1-adapters';\nimport { SessionStorageProvider } from '@elementor/session';\nimport { Divider } from '@elementor/ui';\n\nimport { useElement } from '../contexts/element-context';\nimport { Control as BaseControl } from '../controls-registry/control';\nimport { ControlTypeContainer } from '../controls-registry/control-type-container';\nimport { type ControlType, getControl, getDefaultLayout } from '../controls-registry/controls-registry';\nimport { SettingsField } from '../controls-registry/settings-field';\nimport { useDefaultPanelSettings } from '../hooks/use-default-panel-settings';\nimport { EXPERIMENTAL_FEATURES } from '../sync/experiments-flags';\nimport { Section } from './section';\nimport { SectionsList } from './sections-list';\n\nexport const SettingsTab = () => {\n\tconst { elementType, element } = useElement();\n\tconst settingsDefault = useDefaultPanelSettings();\n\n\tconst isDefaultExpanded = ( sectionId: string ) =>\n\t\tisExperimentActive( EXPERIMENTAL_FEATURES.V_3_30 )\n\t\t\t? settingsDefault.defaultSectionsExpanded.settings?.includes( sectionId )\n\t\t\t: true;\n\n\treturn (\n\t\t<SessionStorageProvider prefix={ element.id }>\n\t\t\t<SectionsList>\n\t\t\t\t{ elementType.controls.map( ( { type, value }, index ) => {\n\t\t\t\t\tif ( type === 'control' ) {\n\t\t\t\t\t\treturn <Control key={ value.bind } control={ value } />;\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( type === 'section' ) {\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<Section\n\t\t\t\t\t\t\t\ttitle={ value.label }\n\t\t\t\t\t\t\t\tkey={ type + '.' + index }\n\t\t\t\t\t\t\t\tdefaultExpanded={ isDefaultExpanded( value.label ) }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ value.items?.map( ( item ) => {\n\t\t\t\t\t\t\t\t\tif ( item.type === 'control' ) {\n\t\t\t\t\t\t\t\t\t\treturn <Control key={ item.value.bind } control={ item.value } />;\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t// TODO: Handle 2nd level sections\n\t\t\t\t\t\t\t\t\treturn null;\n\t\t\t\t\t\t\t\t} ) }\n\t\t\t\t\t\t\t</Section>\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\n\t\t\t\t\treturn null;\n\t\t\t\t} ) }\n\t\t\t</SectionsList>\n\t\t</SessionStorageProvider>\n\t);\n};\n\nconst Control = ( { control }: { control: Control[ 'value' ] } ) => {\n\tif ( ! getControl( control.type as ControlType ) ) {\n\t\treturn null;\n\t}\n\n\tconst layout = control.meta?.layout || getDefaultLayout( control.type as ControlType );\n\n\treturn (\n\t\t<SettingsField bind={ control.bind }>\n\t\t\t{ control.meta?.topDivider && <Divider /> }\n\t\t\t<ControlTypeContainer layout={ layout }>\n\t\t\t\t{ control.label ? <ControlFormLabel>{ control.label }</ControlFormLabel> : null }\n\t\t\t\t<BaseControl type={ control.type as ControlType } props={ control.props } />\n\t\t\t</ControlTypeContainer>\n\t\t</SettingsField>\n\t);\n};\n","import * as React from 'react';\nimport type { ComponentProps } from 'react';\n\nimport { useElement } from '../contexts/element-context';\nimport { ControlTypeNotFoundError } from '../errors';\nimport { type ControlType, type ControlTypes, getControl } from './controls-registry';\n\ntype IsRequired< T, K extends keyof T > = object extends Pick< T, K > ? false : true;\n\ntype AnyPropertyRequired< T > = {\n\t[ K in keyof T ]: IsRequired< T, K >;\n}[ keyof T ] extends true\n\t? true\n\t: false;\n\ntype ControlProps< T extends ControlType > = AnyPropertyRequired< ComponentProps< ControlTypes[ T ] > > extends true\n\t? {\n\t\t\tprops: ComponentProps< ControlTypes[ T ] >;\n\t\t\ttype: T;\n\t }\n\t: {\n\t\t\tprops?: ComponentProps< ControlTypes[ T ] >;\n\t\t\ttype: T;\n\t };\n\nexport const Control = < T extends ControlType >( { props, type }: ControlProps< T > ) => {\n\tconst ControlByType = getControl( type );\n\tconst { element } = useElement();\n\n\tif ( ! ControlByType ) {\n\t\tthrow new ControlTypeNotFoundError( {\n\t\t\tcontext: { controlType: type },\n\t\t} );\n\t}\n\n\t// @ts-expect-error ControlComponent props are inferred from the type (T).\n\treturn <ControlByType { ...props } context={ { elementId: element.id } } />;\n};\n","import {\n\ttype ControlComponent,\n\tImageControl,\n\tLinkControl,\n\tSelectControl,\n\tSizeControl,\n\tSvgMediaControl,\n\tSwitchControl,\n\tTextAreaControl,\n\tTextControl,\n\tUrlControl,\n} from '@elementor/editor-controls';\nimport { type ControlLayout } from '@elementor/editor-elements';\n\ntype ControlRegistry = Record< string, { component: ControlComponent; layout: ControlLayout } >;\n\nconst controlTypes = {\n\timage: { component: ImageControl, layout: 'full' },\n\t'svg-media': { component: SvgMediaControl, layout: 'full' },\n\ttext: { component: TextControl, layout: 'full' },\n\ttextarea: { component: TextAreaControl, layout: 'full' },\n\tsize: { component: SizeControl, layout: 'two-columns' },\n\tselect: { component: SelectControl, layout: 'two-columns' },\n\tlink: { component: LinkControl, layout: 'full' },\n\turl: { component: UrlControl, layout: 'full' },\n\tswitch: { component: SwitchControl, layout: 'two-columns' },\n} as const satisfies ControlRegistry;\n\nexport type ControlType = keyof typeof controlTypes;\n\nexport type ControlTypes = {\n\t[ key in ControlType ]: ( typeof controlTypes )[ key ][ 'component' ];\n};\n\nexport const getControl = ( type: ControlType ) => controlTypes[ type ]?.component;\n\nexport const getDefaultLayout = ( type: ControlType ) => controlTypes[ type ].layout;\n","import * as React from 'react';\nimport { type ControlLayout } from '@elementor/editor-elements';\nimport { Box, type BoxProps, styled } from '@elementor/ui';\n\nexport const ControlTypeContainer = ( { children, layout }: React.PropsWithChildren< { layout?: ControlLayout } > ) => {\n\treturn <StyledContainer layout={ layout }>{ children }</StyledContainer>;\n};\n\nconst StyledContainer = styled( Box, {\n\tshouldForwardProp: ( prop: string ) => ! [ 'layout' ].includes( prop ),\n} )< BoxProps & { layout: ControlLayout } >( ( { layout, theme } ) => ( {\n\tdisplay: 'grid',\n\tgridGap: theme.spacing( 1 ),\n\t...getGridLayout( layout ),\n} ) );\n\nconst getGridLayout = ( layout: ControlLayout ) => ( {\n\tjustifyContent: 'space-between',\n\tgridTemplateColumns: {\n\t\tfull: 'minmax(0, 1fr)',\n\t\t'two-columns': 'repeat(2, minmax(0, 1fr))',\n\t}[ layout ],\n} );\n","import * as React from 'react';\nimport { PropKeyProvider, PropProvider } from '@elementor/editor-controls';\nimport { updateElementSettings, useElementSetting } from '@elementor/editor-elements';\nimport { type PropKey, type PropValue } from '@elementor/editor-props';\n\nimport { useElement } from '../contexts/element-context';\nimport { createTopLevelOjectType } from './create-top-level-object-type';\n\ntype Props = {\n\tbind: PropKey;\n\tchildren: React.ReactNode;\n};\n\nexport const SettingsField = ( { bind, children }: Props ) => {\n\tconst { element, elementType } = useElement();\n\n\tconst settingsValue = useElementSetting< PropValue >( element.id, bind );\n\n\tconst value = { [ bind ]: settingsValue };\n\n\tconst propType = createTopLevelOjectType( { schema: elementType.propsSchema } );\n\n\tconst setValue = ( newValue: Record< string, PropValue > ) => {\n\t\tupdateElementSettings( {\n\t\t\tid: element.id,\n\t\t\tprops: { ...newValue },\n\t\t} );\n\t};\n\n\treturn (\n\t\t<PropProvider propType={ propType } value={ value } setValue={ setValue }>\n\t\t\t<PropKeyProvider bind={ bind }>{ children }</PropKeyProvider>\n\t\t</PropProvider>\n\t);\n};\n","import { type ObjectPropType, type PropsSchema } from '@elementor/editor-props';\n\nexport const createTopLevelOjectType = ( { schema }: { schema: PropsSchema } ) => {\n\tconst schemaPropType: ObjectPropType = {\n\t\tkey: '',\n\t\tkind: 'object',\n\t\tmeta: {},\n\t\tsettings: {},\n\t\tdefault: null,\n\t\tshape: schema,\n\t};\n\n\treturn schemaPropType;\n};\n","import * as React from 'react';\nimport { type PropsWithChildren, useId } from 'react';\nimport { Collapse, Divider, ListItemButton, ListItemText, Stack } from '@elementor/ui';\n\nimport { useStateByElement } from '../hooks/use-state-by-element';\nimport { CollapseIcon } from './collapse-icon';\n\ntype Props = PropsWithChildren< {\n\ttitle: string;\n\tdefaultExpanded?: boolean;\n} >;\n\nexport function Section( { title, children, defaultExpanded = false }: Props ) {\n\tconst [ isOpen, setIsOpen ] = useStateByElement( title, !! defaultExpanded );\n\n\tconst id = useId();\n\tconst labelId = `label-${ id }`;\n\tconst contentId = `content-${ id }`;\n\n\treturn (\n\t\t<>\n\t\t\t<ListItemButton\n\t\t\t\tid={ labelId }\n\t\t\t\taria-controls={ contentId }\n\t\t\t\tonClick={ () => setIsOpen( ! isOpen ) }\n\t\t\t\tsx={ { '&:hover': { backgroundColor: 'transparent' } } }\n\t\t\t>\n\t\t\t\t<ListItemText\n\t\t\t\t\tsecondary={ title }\n\t\t\t\t\tsecondaryTypographyProps={ { color: 'text.primary', variant: 'caption', fontWeight: 'bold' } }\n\t\t\t\t/>\n\t\t\t\t<CollapseIcon open={ isOpen } color=\"secondary\" fontSize=\"tiny\" />\n\t\t\t</ListItemButton>\n\t\t\t<Collapse id={ contentId } aria-labelledby={ labelId } in={ isOpen } timeout=\"auto\" unmountOnExit>\n\t\t\t\t<Stack gap={ 2.5 } p={ 2 }>\n\t\t\t\t\t{ children }\n\t\t\t\t</Stack>\n\t\t\t</Collapse>\n\t\t\t<Divider />\n\t\t</>\n\t);\n}\n","import { ChevronDownIcon } from '@elementor/icons';\nimport { styled } from '@elementor/ui';\n\n// TODO: Replace this with future Rotate component that will be implemented in elementor-ui\nexport const CollapseIcon = styled( ChevronDownIcon, {\n\tshouldForwardProp: ( prop ) => prop !== 'open',\n} )< { open: boolean } >( ( { theme, open } ) => ( {\n\ttransform: open ? 'rotate(180deg)' : 'rotate(0deg)',\n\ttransition: theme.transitions.create( 'transform', {\n\t\tduration: theme.transitions.duration.standard,\n\t} ),\n} ) );\n","import * as React from 'react';\nimport { List, type ListProps } from '@elementor/ui';\n\nexport function SectionsList( props: ListProps ) {\n\treturn <List disablePadding component=\"div\" { ...props } />;\n}\n","import * as React from 'react';\nimport { useState } from 'react';\nimport { CLASSES_PROP_KEY } from '@elementor/editor-props';\nimport { useActiveBreakpoint } from '@elementor/editor-responsive';\nimport { type StyleDefinitionID, type StyleDefinitionState } from '@elementor/editor-styles';\nimport { isExperimentActive } from '@elementor/editor-v1-adapters';\nimport { SessionStorageProvider } from '@elementor/session';\nimport { Divider, Stack } from '@elementor/ui';\nimport { __ } from '@wordpress/i18n';\n\nimport { ClassesPropProvider } from '../contexts/classes-prop-context';\nimport { useElement } from '../contexts/element-context';\nimport { useScrollDirection } from '../contexts/scroll-context';\nimport { StyleProvider } from '../contexts/style-context';\nimport { StyleInheritanceProvider } from '../contexts/styles-inheritance-context';\nimport { useActiveStyleDefId } from '../hooks/use-active-style-def-id';\nimport { useDefaultPanelSettings } from '../hooks/use-default-panel-settings';\nimport { EXPERIMENTAL_FEATURES } from '../sync/experiments-flags';\nimport { CssClassSelector } from './css-classes/css-class-selector';\nimport { Section } from './section';\nimport { SectionsList } from './sections-list';\nimport { BackgroundSection } from './style-sections/background-section/background-section';\nimport { BorderSection } from './style-sections/border-section/border-section';\nimport { EffectsSection } from './style-sections/effects-section/effects-section';\nimport { LayoutSection } from './style-sections/layout-section/layout-section';\nimport { PositionSection } from './style-sections/position-section/position-section';\nimport { SizeSection } from './style-sections/size-section/size-section';\nimport { SpacingSection } from './style-sections/spacing-section/spacing-section';\nimport { TypographySection } from './style-sections/typography-section/typography-section';\n\nconst TABS_HEADER_HEIGHT = '37px';\n\nexport const stickyHeaderStyles = {\n\tposition: 'sticky',\n\tzIndex: 1,\n\topacity: 1,\n\tbackgroundColor: 'background.default',\n\ttransition: 'top 300ms ease',\n};\n\ntype Section = {\n\tcomponent: () => React.JSX.Element;\n\tname: string;\n\ttitle: string;\n};\n\nconst PanelSection = ( { section }: { section: Section } ) => {\n\tconst { component, name, title } = section;\n\tconst tabDefaults = useDefaultPanelSettings();\n\tconst SectionComponent = component;\n\tconst isExpanded = isExperimentActive( EXPERIMENTAL_FEATURES.V_3_30 )\n\t\t? tabDefaults.defaultSectionsExpanded.style?.includes( name )\n\t\t: false;\n\n\treturn (\n\t\t<Section title={ title } defaultExpanded={ isExpanded }>\n\t\t\t<SectionComponent />\n\t\t</Section>\n\t);\n};\n\nexport const StyleTab = () => {\n\tconst currentClassesProp = useCurrentClassesProp();\n\tconst [ activeStyleDefId, setActiveStyleDefId ] = useActiveStyleDefId( currentClassesProp );\n\tconst [ activeStyleState, setActiveStyleState ] = useState< StyleDefinitionState | null >( null );\n\tconst breakpoint = useActiveBreakpoint();\n\n\treturn (\n\t\t<ClassesPropProvider prop={ currentClassesProp }>\n\t\t\t<StyleProvider\n\t\t\t\tmeta={ { breakpoint, state: activeStyleState } }\n\t\t\t\tid={ activeStyleDefId }\n\t\t\t\tsetId={ ( id: StyleDefinitionID | null ) => {\n\t\t\t\t\tsetActiveStyleDefId( id );\n\t\t\t\t\tsetActiveStyleState( null );\n\t\t\t\t} }\n\t\t\t\tsetMetaState={ setActiveStyleState }\n\t\t\t>\n\t\t\t\t<SessionStorageProvider prefix={ activeStyleDefId ?? '' }>\n\t\t\t\t\t<StyleInheritanceProvider>\n\t\t\t\t\t\t<ClassesHeader>\n\t\t\t\t\t\t\t<CssClassSelector />\n\t\t\t\t\t\t\t<Divider />\n\t\t\t\t\t\t</ClassesHeader>\n\t\t\t\t\t\t<SectionsList>\n\t\t\t\t\t\t\t<PanelSection\n\t\t\t\t\t\t\t\tsection={ {\n\t\t\t\t\t\t\t\t\tcomponent: LayoutSection,\n\t\t\t\t\t\t\t\t\tname: 'Layout',\n\t\t\t\t\t\t\t\t\ttitle: __( 'Layout', 'elementor' ),\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<PanelSection\n\t\t\t\t\t\t\t\tsection={ {\n\t\t\t\t\t\t\t\t\tcomponent: SpacingSection,\n\t\t\t\t\t\t\t\t\tname: 'Spacing',\n\t\t\t\t\t\t\t\t\ttitle: __( 'Spacing', 'elementor' ),\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<PanelSection\n\t\t\t\t\t\t\t\tsection={ {\n\t\t\t\t\t\t\t\t\tcomponent: SizeSection,\n\t\t\t\t\t\t\t\t\tname: 'Size',\n\t\t\t\t\t\t\t\t\ttitle: __( 'Size', 'elementor' ),\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<PanelSection\n\t\t\t\t\t\t\t\tsection={ {\n\t\t\t\t\t\t\t\t\tcomponent: PositionSection,\n\t\t\t\t\t\t\t\t\tname: 'Position',\n\t\t\t\t\t\t\t\t\ttitle: __( 'Position', 'elementor' ),\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<PanelSection\n\t\t\t\t\t\t\t\tsection={ {\n\t\t\t\t\t\t\t\t\tcomponent: TypographySection,\n\t\t\t\t\t\t\t\t\tname: 'Typography',\n\t\t\t\t\t\t\t\t\ttitle: __( 'Typography', 'elementor' ),\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<PanelSection\n\t\t\t\t\t\t\t\tsection={ {\n\t\t\t\t\t\t\t\t\tcomponent: BackgroundSection,\n\t\t\t\t\t\t\t\t\tname: 'Background',\n\t\t\t\t\t\t\t\t\ttitle: __( 'Background', 'elementor' ),\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<PanelSection\n\t\t\t\t\t\t\t\tsection={ {\n\t\t\t\t\t\t\t\t\tcomponent: BorderSection,\n\t\t\t\t\t\t\t\t\tname: 'Border',\n\t\t\t\t\t\t\t\t\ttitle: __( 'Border', 'elementor' ),\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<PanelSection\n\t\t\t\t\t\t\t\tsection={ {\n\t\t\t\t\t\t\t\t\tcomponent: EffectsSection,\n\t\t\t\t\t\t\t\t\tname: 'Effects',\n\t\t\t\t\t\t\t\t\ttitle: __( 'Effects', 'elementor' ),\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</SectionsList>\n\t\t\t\t\t</StyleInheritanceProvider>\n\t\t\t\t</SessionStorageProvider>\n\t\t\t</StyleProvider>\n\t\t</ClassesPropProvider>\n\t);\n};\n\nfunction ClassesHeader( { children }: { children: React.ReactNode } ) {\n\tconst scrollDirection = useScrollDirection();\n\n\treturn (\n\t\t<Stack sx={ { ...stickyHeaderStyles, top: scrollDirection === 'up' ? TABS_HEADER_HEIGHT : 0 } }>\n\t\t\t{ children }\n\t\t</Stack>\n\t);\n}\n\nfunction useCurrentClassesProp(): string {\n\tconst { elementType } = useElement();\n\n\tconst prop = Object.entries( elementType.propsSchema ).find(\n\t\t( [ , propType ] ) => propType.kind === 'plain' && propType.key === CLASSES_PROP_KEY\n\t);\n\n\tif ( ! prop ) {\n\t\tthrow new Error( 'Element does not have a classes prop' );\n\t}\n\n\treturn prop[ 0 ];\n}\n\nexport { PanelSection as StyleTabSection };\n","import * as React from 'react';\nimport { createContext, type PropsWithChildren, useContext } from 'react';\nimport { getWidgetsCache, useElementSetting } from '@elementor/editor-elements';\nimport { classesPropTypeUtil, type ClassesPropValue } from '@elementor/editor-props';\nimport { getBreakpointsTree } from '@elementor/editor-responsive';\nimport { getStylesSchema } from '@elementor/editor-styles';\nimport { stylesRepository } from '@elementor/editor-styles-repository';\n\nimport { useStylesRerender } from '../hooks/use-styles-rerender';\nimport { createStylesInheritance } from '../styles-inheritance/create-styles-inheritance';\nimport {\n\ttype SnapshotPropValue,\n\ttype StylesInheritanceAPI,\n\ttype StylesInheritanceSnapshot,\n} from '../styles-inheritance/types';\nimport { useClassesProp } from './classes-prop-context';\nimport { useElement } from './element-context';\nimport { useStyle } from './style-context';\n\nconst Context = createContext< StylesInheritanceAPI | null >( null );\n\nexport function StyleInheritanceProvider( { children }: PropsWithChildren ) {\n\tconst styleDefs = useAppliedStyles();\n\n\tconst breakpointsTree = getBreakpointsTree();\n\n\tconst { getSnapshot, getInheritanceChain } = createStylesInheritance( styleDefs, breakpointsTree );\n\n\treturn <Context.Provider value={ { getSnapshot, getInheritanceChain } }>{ children }</Context.Provider>;\n}\n\nexport function useStylesInheritanceSnapshot(): StylesInheritanceSnapshot | null {\n\tconst context = useContext( Context );\n\tconst { meta } = useStyle();\n\n\tif ( ! context ) {\n\t\tthrow new Error( 'useStylesInheritanceSnapshot must be used within a StyleInheritanceProvider' );\n\t}\n\n\tif ( ! meta ) {\n\t\treturn null;\n\t}\n\n\treturn context.getSnapshot( meta ) ?? null;\n}\n\nexport function useStylesInheritanceChain( path: string[] ): SnapshotPropValue[] {\n\tconst context = useContext( Context );\n\n\tif ( ! context ) {\n\t\tthrow new Error( 'useStylesInheritanceChain must be used within a StyleInheritanceProvider' );\n\t}\n\n\tconst schema = getStylesSchema();\n\n\tconst topLevelPropType = schema?.[ path[ 0 ] ];\n\n\tconst snapshot = useStylesInheritanceSnapshot();\n\n\tif ( ! snapshot ) {\n\t\treturn [];\n\t}\n\n\treturn context.getInheritanceChain( snapshot, path, topLevelPropType );\n}\n\nconst useAppliedStyles = () => {\n\tconst { element } = useElement();\n\tconst currentClassesProp = useClassesProp();\n\tconst baseStyles = useBaseStyles();\n\n\tuseStylesRerender();\n\n\tconst classesProp = useElementSetting< ClassesPropValue >( element.id, currentClassesProp );\n\n\tconst appliedStyles = classesPropTypeUtil.extract( classesProp ) ?? [];\n\n\treturn stylesRepository.all().filter( ( style ) => [ ...baseStyles, ...appliedStyles ].includes( style.id ) );\n};\n\nconst useBaseStyles = () => {\n\tconst { elementType } = useElement();\n\tconst widgetsCache = getWidgetsCache();\n\tconst widgetCache = widgetsCache?.[ elementType.key ];\n\n\treturn Object.keys( widgetCache?.base_styles ?? {} );\n};\n","import { useEffect, useReducer } from 'react';\n\nimport { useStyle } from '../contexts/style-context';\n\nexport const useStylesRerender = () => {\n\tconst { provider } = useStyle();\n\tconst [ , reRender ] = useReducer( ( p ) => ! p, false );\n\n\tuseEffect( () => provider?.subscribe( reRender ), [ provider ] );\n};\n","import {\n\tisEmpty,\n\tisTransformable,\n\ttype PropKey,\n\ttype PropType,\n\ttype PropValue,\n\ttype UnionPropType,\n} from '@elementor/editor-props';\nimport { type BreakpointNode } from '@elementor/editor-responsive';\nimport { type StyleDefinition } from '@elementor/editor-styles';\n\nimport { getProviderByStyleId } from '../contexts/style-context';\nimport { createSnapshotsManager } from './create-snapshots-manager';\nimport { type BreakpointsStatesStyles, type StyleInheritanceMetaProps, type StylesInheritanceAPI } from './types';\nimport { getBreakpointKey, getStateKey } from './utils';\n\ntype ValidPropType = Exclude< PropType, UnionPropType >;\n\nexport function createStylesInheritance(\n\tstyleDefs: StyleDefinition[],\n\tbreakpointsRoot: BreakpointNode\n): StylesInheritanceAPI {\n\tconst styleVariantsByMeta = buildStyleVariantsByMetaMapping( styleDefs );\n\n\tconst getStyles = ( { breakpoint, state }: StyleInheritanceMetaProps ) =>\n\t\tstyleVariantsByMeta?.[ getBreakpointKey( breakpoint ) ]?.[ getStateKey( state ) ] ?? [];\n\n\treturn {\n\t\tgetSnapshot: createSnapshotsManager( getStyles, breakpointsRoot ),\n\t\tgetInheritanceChain: ( snapshot, path, topLevelPropType ) => {\n\t\t\tconst [ field, ...nextFields ] = path;\n\n\t\t\tlet inheritanceChain = snapshot[ field ] ?? [];\n\n\t\t\tif ( nextFields.length > 0 ) {\n\t\t\t\tconst filterPropType = getFilterPropType( topLevelPropType, nextFields );\n\n\t\t\t\tinheritanceChain = inheritanceChain\n\t\t\t\t\t.map( ( { value: styleValue, ...rest } ) => ( {\n\t\t\t\t\t\t...rest,\n\t\t\t\t\t\tvalue: getValueByPath( styleValue, nextFields, filterPropType ),\n\t\t\t\t\t} ) )\n\t\t\t\t\t.filter( ( { value: styleValue } ) => ! isEmpty( styleValue ) );\n\t\t\t}\n\n\t\t\treturn inheritanceChain;\n\t\t},\n\t};\n}\n\nfunction buildStyleVariantsByMetaMapping( styleDefs: StyleDefinition[] ): BreakpointsStatesStyles {\n\tconst breakpointStateSlots: BreakpointsStatesStyles = {};\n\n\tstyleDefs.forEach( ( styleDef ) => {\n\t\tconst provider = getProviderByStyleId( styleDef.id )?.getKey() ?? null;\n\n\t\t// iterate over each style definition's variants and place them in the corresponding breakpoint's base or state styles\n\t\tstyleDef.variants.forEach( ( variant ) => {\n\t\t\tconst { meta } = variant;\n\t\t\tconst { state, breakpoint } = meta;\n\n\t\t\tconst breakpointKey = getBreakpointKey( breakpoint );\n\t\t\tconst stateKey = getStateKey( state );\n\n\t\t\tif ( ! breakpointStateSlots[ breakpointKey ] ) {\n\t\t\t\tbreakpointStateSlots[ breakpointKey ] = {};\n\t\t\t}\n\n\t\t\tconst breakpointNode = breakpointStateSlots[ breakpointKey ];\n\n\t\t\tif ( ! breakpointNode[ stateKey ] ) {\n\t\t\t\tbreakpointNode[ stateKey ] = [];\n\t\t\t}\n\n\t\t\tbreakpointNode[ stateKey ].push( {\n\t\t\t\tstyle: styleDef,\n\t\t\t\tvariant,\n\t\t\t\tprovider,\n\t\t\t} );\n\t\t} );\n\t} );\n\n\treturn breakpointStateSlots;\n}\n\nfunction getValueByPath( value: PropValue, path: PropKey[], filterPropType: ValidPropType | null ): PropValue {\n\tif ( ! value || typeof value !== 'object' ) {\n\t\treturn null;\n\t}\n\n\tif ( shouldUseOriginalValue( filterPropType, value ) ) {\n\t\treturn value;\n\t}\n\n\treturn path.reduce( ( currentScope: PropValue, key: PropKey ): PropValue | null => {\n\t\tif ( ! currentScope ) {\n\t\t\treturn null;\n\t\t}\n\n\t\tif ( isTransformable( currentScope ) ) {\n\t\t\treturn currentScope.value?.[ key ] ?? null;\n\t\t}\n\n\t\tif ( typeof currentScope === 'object' ) {\n\t\t\treturn currentScope[ key as keyof typeof currentScope ] ?? null;\n\t\t}\n\n\t\treturn null;\n\t}, value );\n}\n\nfunction shouldUseOriginalValue( filterPropType: ValidPropType | null, value: PropValue ): boolean {\n\treturn !! filterPropType && isTransformable( value ) && filterPropType.key !== value.$$type;\n}\n\nconst getFilterPropType = ( propType: PropType, path: string[] ): ValidPropType | null => {\n\tif ( ! propType || propType.kind !== 'union' ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\tObject.values( propType.prop_types ).find( ( type: PropType ) => {\n\t\t\treturn !! path.reduce( ( currentScope: PropType | null, key: string ) => {\n\t\t\t\tif ( currentScope?.kind !== 'object' ) {\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\n\t\t\t\tconst { shape } = currentScope;\n\n\t\t\t\tif ( shape[ key ] ) {\n\t\t\t\t\treturn shape[ key ];\n\t\t\t\t}\n\n\t\t\t\treturn null;\n\t\t\t}, type );\n\t\t} ) ?? null\n\t);\n};\n","import { filterEmptyValues } from '@elementor/editor-props';\nimport { type BreakpointId, type BreakpointNode } from '@elementor/editor-responsive';\nimport { type StyleDefinitionState } from '@elementor/editor-styles';\n\nimport {\n\ttype BreakpointsInheritancePath,\n\ttype BreakpointsStatesSnapshotsMapping,\n\ttype BreakpointStatesSlotsMapping,\n\ttype SnapshotPropValue,\n\ttype StyleInheritanceMetaProps,\n\ttype StylesInheritanceSnapshot,\n\ttype StylesInheritanceSnapshotGetter,\n\ttype StylesInheritanceSnapshotsSlot,\n\ttype StyleVariantDetails,\n} from './types';\nimport { DEFAULT_STATE, getBreakpointKey, getStateKey } from './utils';\n\nexport function createSnapshotsManager(\n\tgetStylesByMeta: ( meta: StyleInheritanceMetaProps ) => StyleVariantDetails[],\n\tbreakpointsRoot: BreakpointNode\n): StylesInheritanceSnapshotGetter {\n\tconst breakpointsInheritancePaths = makeBreakpointsInheritancePaths( breakpointsRoot );\n\tconst allBreakpointStatesSnapshots: BreakpointsStatesSnapshotsMapping = {};\n\n\tconst buildMissingSnapshotsForBreakpoint = (\n\t\tcurrentBreakpointId: BreakpointId | null,\n\t\tparentBreakpoint: BreakpointStatesSlotsMapping | undefined,\n\t\tstate: StyleDefinitionState\n\t) => {\n\t\tconst currentBreakpointKey = getBreakpointKey( currentBreakpointId );\n\t\tconst stateKey = getStateKey( state );\n\n\t\tif ( ! allBreakpointStatesSnapshots[ currentBreakpointKey ] ) {\n\t\t\tallBreakpointStatesSnapshots[ currentBreakpointKey ] = {\n\t\t\t\t[ DEFAULT_STATE ]: buildStateSnapshotSlot(\n\t\t\t\t\tgetStylesByMeta( { breakpoint: currentBreakpointId, state: null } ),\n\t\t\t\t\tparentBreakpoint,\n\t\t\t\t\t{},\n\t\t\t\t\tnull\n\t\t\t\t),\n\t\t\t};\n\t\t}\n\n\t\tif ( state && ! allBreakpointStatesSnapshots[ currentBreakpointKey ][ stateKey ] ) {\n\t\t\tallBreakpointStatesSnapshots[ currentBreakpointKey ][ stateKey ] = buildStateSnapshotSlot(\n\t\t\t\tgetStylesByMeta( { breakpoint: currentBreakpointId, state } ),\n\t\t\t\tparentBreakpoint,\n\t\t\t\tallBreakpointStatesSnapshots[ currentBreakpointKey ],\n\t\t\t\tstate\n\t\t\t);\n\t\t}\n\t};\n\n\treturn ( meta: StyleInheritanceMetaProps ) => {\n\t\tconst { breakpoint, state } = meta;\n\n\t\tconst stateKey = getStateKey( state );\n\t\tconst breakpointKey = getBreakpointKey( breakpoint );\n\n\t\tif ( allBreakpointStatesSnapshots[ breakpointKey ]?.[ stateKey ] ) {\n\t\t\t// snapshot was already made for this breakpoint+state\n\t\t\treturn allBreakpointStatesSnapshots[ breakpointKey ][ stateKey ].snapshot;\n\t\t}\n\n\t\tconst breakpointsChain = [ ...breakpointsInheritancePaths[ breakpointKey ], breakpoint ];\n\n\t\tbreakpointsChain.forEach( ( breakpointId, index ) => {\n\t\t\tconst parentBreakpointId = index > 0 ? breakpointsChain[ index - 1 ] : null;\n\n\t\t\tbuildMissingSnapshotsForBreakpoint(\n\t\t\t\tbreakpointId,\n\t\t\t\tparentBreakpointId ? allBreakpointStatesSnapshots[ parentBreakpointId ] : undefined,\n\t\t\t\tstate\n\t\t\t);\n\t\t} );\n\n\t\treturn allBreakpointStatesSnapshots[ breakpointKey ]?.[ stateKey ]?.snapshot;\n\t};\n}\n\n/**\n * builds a mapping of each breakpoint to its inheritance chain, e.g. -\n * \tdesktop: [],\n * \ttablet: [ 'desktop' ],\n * \tmobile: [ 'desktop', 'tablet' ]\n * @param root\n */\nfunction makeBreakpointsInheritancePaths( root: BreakpointNode ): BreakpointsInheritancePath {\n\tconst breakpoints: Partial< BreakpointsInheritancePath > = {};\n\n\tconst traverse = ( node: BreakpointNode, parent?: BreakpointId[] ) => {\n\t\tconst { id, children } = node;\n\n\t\tbreakpoints[ id ] = parent ? [ ...parent ] : [];\n\n\t\tchildren?.forEach( ( child ) => {\n\t\t\ttraverse( child, [ ...( breakpoints[ id ] ?? [] ), id ] );\n\t\t} );\n\t};\n\n\ttraverse( root );\n\n\treturn breakpoints as BreakpointsInheritancePath;\n}\n\n// creates a snapshot slot for a specific breakpoint and state\nfunction buildStateSnapshotSlot(\n\tstyles: StyleVariantDetails[],\n\tparentBreakpoint: BreakpointStatesSlotsMapping | undefined,\n\tcurrentBreakpoint: BreakpointStatesSlotsMapping,\n\tstate: StyleDefinitionState\n): StylesInheritanceSnapshotsSlot {\n\tconst initialSlot = buildInitialSnapshotFromStyles( styles );\n\n\tif ( ! state ) {\n\t\treturn {\n\t\t\tsnapshot: mergeSnapshots( [ initialSlot.snapshot, parentBreakpoint?.[ DEFAULT_STATE ]?.snapshot ] ),\n\t\t\tstateSpecificSnapshot: undefined,\n\t\t};\n\t}\n\n\treturn {\n\t\tsnapshot: mergeSnapshots( [\n\t\t\tinitialSlot.snapshot,\n\t\t\tparentBreakpoint?.[ state ]?.stateSpecificSnapshot,\n\t\t\tcurrentBreakpoint[ DEFAULT_STATE ]?.snapshot,\n\t\t] ),\n\t\tstateSpecificSnapshot: mergeSnapshots( [\n\t\t\tinitialSlot.stateSpecificSnapshot,\n\t\t\tparentBreakpoint?.[ state ]?.stateSpecificSnapshot,\n\t\t] ),\n\t};\n}\n\n// creates an initial snapshot based on the passed style variants only\nfunction buildInitialSnapshotFromStyles( styles: StyleVariantDetails[] ): StylesInheritanceSnapshotsSlot {\n\tconst snapshot: StylesInheritanceSnapshot = {};\n\n\tstyles.forEach( ( styleData ) => {\n\t\tconst {\n\t\t\tvariant: { props },\n\t\t} = styleData;\n\n\t\tObject.entries( props ).forEach( ( [ key, value ] ) => {\n\t\t\tconst filteredValue = filterEmptyValues( value );\n\n\t\t\tif ( filteredValue === null ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( ! snapshot[ key ] ) {\n\t\t\t\tsnapshot[ key ] = [];\n\t\t\t}\n\n\t\t\tconst snapshotPropValue: SnapshotPropValue = {\n\t\t\t\t...styleData,\n\t\t\t\tvalue: filteredValue,\n\t\t\t};\n\n\t\t\tsnapshot[ key ].push( snapshotPropValue );\n\t\t} );\n\t} );\n\n\treturn {\n\t\tsnapshot,\n\t\tstateSpecificSnapshot: snapshot,\n\t};\n}\n\n// merge previous snapshot into the current one - first value of each prop is the strongest\nfunction mergeSnapshots( snapshots: ( StylesInheritanceSnapshot | undefined )[] ) {\n\tconst snapshot: StylesInheritanceSnapshot = {};\n\n\tsnapshots.filter( Boolean ).forEach( ( currentSnapshot ) =>\n\t\tObject.entries( currentSnapshot as StylesInheritanceSnapshot ).forEach( ( [ key, values ] ) => {\n\t\t\tif ( ! snapshot[ key ] ) {\n\t\t\t\tsnapshot[ key ] = [];\n\t\t\t}\n\n\t\t\t// concatenate the previous snapshot's prop values to the current ones\n\t\t\tsnapshot[ key ] = snapshot[ key ].concat( values );\n\t\t} )\n\t);\n\n\treturn snapshot;\n}\n","import { type BreakpointId } from '@elementor/editor-responsive';\nimport { type StyleDefinitionState } from '@elementor/editor-styles';\n\nexport const DEFAULT_STATE = 'normal';\n\nconst DEFAULT_BREAKPOINT = 'desktop';\n\nexport const getStateKey = ( state: StyleDefinitionState ) => state ?? DEFAULT_STATE;\n\nexport const getBreakpointKey = ( breakpoint: BreakpointId | null ): BreakpointId => breakpoint ?? DEFAULT_BREAKPOINT;\n","import { getElementStyles, useElementSetting } from '@elementor/editor-elements';\nimport { type ClassesPropValue, type PropKey } from '@elementor/editor-props';\nimport { type StyleDefinitionID } from '@elementor/editor-styles';\n\nimport { useElement } from '../contexts/element-context';\nimport { useStateByElement } from './use-state-by-element';\n\nexport function useActiveStyleDefId( classProp: PropKey ) {\n\tconst [ activeStyledDefId, setActiveStyledDefId ] = useStateByElement< StyleDefinitionID | null >(\n\t\t'active-style-id',\n\t\tnull\n\t);\n\n\tconst appliedClassesIds = useAppliedClassesIds( classProp )?.value || [];\n\n\tconst fallback = useFirstAppliedClass( appliedClassesIds );\n\n\tconst activeAndAppliedClassId = useActiveAndAppliedClassId( activeStyledDefId, appliedClassesIds );\n\treturn [ activeAndAppliedClassId || fallback?.id || null, setActiveStyledDefId ] as const;\n}\n\nfunction useFirstAppliedClass( appliedClassesIds: string[] ) {\n\tconst { element } = useElement();\n\tconst stylesDefs = getElementStyles( element.id ) ?? {};\n\n\treturn Object.values( stylesDefs ).find( ( styleDef ) => appliedClassesIds.includes( styleDef.id ) );\n}\n\nfunction useAppliedClassesIds( classProp: PropKey ) {\n\tconst { element } = useElement();\n\n\treturn useElementSetting< ClassesPropValue >( element.id, classProp );\n}\n\nfunction useActiveAndAppliedClassId( id: StyleDefinitionID | null, appliedClassesIds: string[] ) {\n\tconst isClassApplied = !! id && appliedClassesIds.includes( id );\n\n\treturn isClassApplied ? id : null;\n}\n","import * as React from 'react';\nimport { BackgroundControl } from '@elementor/editor-controls';\n\nimport { StylesField } from '../../../controls-registry/styles-field';\nimport { SectionContent } from '../../section-content';\n\nexport const BackgroundSection = () => {\n\treturn (\n\t\t<SectionContent>\n\t\t\t<StylesField bind=\"background\">\n\t\t\t\t<BackgroundControl />\n\t\t\t</StylesField>\n\t\t</SectionContent>\n\t);\n};\n","import * as React from 'react';\nimport { ControlAdornmentsProvider, PropKeyProvider, PropProvider } from '@elementor/editor-controls';\nimport { type PropKey, type PropValue } from '@elementor/editor-props';\nimport { getStylesSchema } from '@elementor/editor-styles';\n\nimport { useStyle } from '../contexts/style-context';\nimport { useStylesField } from '../hooks/use-styles-field';\nimport { StylesInheritanceIndicator } from '../styles-inheritance/styles-inheritance-indicator';\nimport { createTopLevelOjectType } from './create-top-level-object-type';\n\nexport type StylesFieldProps = {\n\tbind: PropKey;\n\tplaceholder?: PropValue;\n\tchildren: React.ReactNode;\n};\n\nexport const StylesField = ( { bind, placeholder, children }: StylesFieldProps ) => {\n\tconst [ value, setValue ] = useStylesField( bind );\n\tconst { canEdit } = useStyle();\n\n\tconst stylesSchema = getStylesSchema();\n\n\tconst propType = createTopLevelOjectType( { schema: stylesSchema } );\n\n\tconst values = { [ bind ]: value };\n\tconst placeholderValues = { [ bind ]: placeholder };\n\n\tconst setValues = ( newValue: Record< string, PropValue > ) => {\n\t\tsetValue( newValue[ bind ] );\n\t};\n\n\treturn (\n\t\t<ControlAdornmentsProvider\n\t\t\titems={ [\n\t\t\t\t{\n\t\t\t\t\tid: 'styles-inheritance',\n\t\t\t\t\tAdornment: StylesInheritanceIndicator,\n\t\t\t\t},\n\t\t\t] }\n\t\t>\n\t\t\t<PropProvider\n\t\t\t\tpropType={ propType }\n\t\t\t\tvalue={ values }\n\t\t\t\tsetValue={ setValues }\n\t\t\t\tplaceholder={ placeholderValues }\n\t\t\t\tdisabled={ ! canEdit }\n\t\t\t>\n\t\t\t\t<PropKeyProvider bind={ bind }>{ children }</PropKeyProvider>\n\t\t\t</PropProvider>\n\t\t</ControlAdornmentsProvider>\n\t);\n};\n","import { useMemo } from 'react';\nimport {\n\tcreateElementStyle,\n\ttype CreateElementStyleArgs,\n\tdeleteElementStyle,\n\ttype ElementID,\n\tgetElementLabel,\n} from '@elementor/editor-elements';\nimport type { Props } from '@elementor/editor-props';\nimport { getVariantByMeta, type StyleDefinition, type StyleDefinitionVariant } from '@elementor/editor-styles';\nimport { type StylesProvider } from '@elementor/editor-styles-repository';\nimport { ELEMENTS_STYLES_RESERVED_LABEL } from '@elementor/editor-styles-repository';\nimport { undoable } from '@elementor/editor-v1-adapters';\nimport { __ } from '@wordpress/i18n';\n\nimport { useClassesProp } from '../contexts/classes-prop-context';\nimport { useElement } from '../contexts/element-context';\nimport { useStyle } from '../contexts/style-context';\nimport { StyleNotFoundUnderProviderError, StylesProviderCannotUpdatePropsError } from '../errors';\nimport { useStylesRerender } from './use-styles-rerender';\n\nexport function useStylesFields< T extends Props >( propNames: ( keyof T & string )[] ) {\n\tconst { element } = useElement();\n\tconst { id, meta, provider } = useStyle();\n\tconst classesProp = useClassesProp();\n\n\tconst undoableUpdateStyle = useUndoableUpdateStyle();\n\tconst undoableCreateElementStyle = useUndoableCreateElementStyle();\n\n\tuseStylesRerender();\n\n\tconst value = getProps< T >( {\n\t\telementId: element.id,\n\t\tstyleId: id,\n\t\tprovider,\n\t\tmeta,\n\t\tpropNames,\n\t} );\n\n\tconst setValue = ( props: T ) => {\n\t\tif ( id === null ) {\n\t\t\tundoableCreateElementStyle( {\n\t\t\t\telementId: element.id,\n\t\t\t\tclassesProp,\n\t\t\t\tmeta,\n\t\t\t\tprops,\n\t\t\t} );\n\n\t\t\treturn;\n\t\t}\n\n\t\tundoableUpdateStyle( {\n\t\t\telementId: element.id,\n\t\t\tstyleId: id,\n\t\t\tprovider,\n\t\t\tmeta,\n\t\t\tprops,\n\t\t} );\n\t};\n\n\treturn [ value, setValue ] as const;\n}\n\ntype GetPropsArgs = {\n\tprovider: StylesProvider | null;\n\tstyleId: StyleDefinition[ 'id' ] | null;\n\telementId: ElementID;\n\tmeta: StyleDefinitionVariant[ 'meta' ];\n\tpropNames: string[];\n};\n\ntype NullableValues< T extends Props > = {\n\t[ K in keyof T ]: T[ K ] | null;\n};\n\nfunction getProps< T extends Props >( { styleId, elementId, provider, meta, propNames }: GetPropsArgs ) {\n\tif ( ! provider || ! styleId ) {\n\t\treturn null;\n\t}\n\n\tconst style = provider.actions.get( styleId, { elementId } );\n\n\tif ( ! style ) {\n\t\tthrow new StyleNotFoundUnderProviderError( { context: { styleId, providerKey: provider.getKey() } } );\n\t}\n\n\tconst variant = getVariantByMeta( style, meta );\n\n\treturn Object.fromEntries(\n\t\tpropNames.map( ( key ) => [ key, variant?.props[ key ] ?? null ] )\n\t) as NullableValues< T >;\n}\n\ntype UndoableCreateElementStyleArgs = Omit< CreateElementStyleArgs, 'label' >;\n\nfunction useUndoableCreateElementStyle() {\n\treturn useMemo( () => {\n\t\treturn undoable(\n\t\t\t{\n\t\t\t\tdo: ( payload: UndoableCreateElementStyleArgs ) => {\n\t\t\t\t\treturn createElementStyle( {\n\t\t\t\t\t\t...payload,\n\t\t\t\t\t\tlabel: ELEMENTS_STYLES_RESERVED_LABEL,\n\t\t\t\t\t} );\n\t\t\t\t},\n\n\t\t\t\tundo: ( { elementId }, styleId ) => {\n\t\t\t\t\tdeleteElementStyle( elementId, styleId );\n\t\t\t\t},\n\n\t\t\t\tredo: ( payload, styleId ) => {\n\t\t\t\t\treturn createElementStyle( {\n\t\t\t\t\t\t...payload,\n\t\t\t\t\t\tstyleId,\n\t\t\t\t\t\tlabel: ELEMENTS_STYLES_RESERVED_LABEL,\n\t\t\t\t\t} );\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\ttitle: ( { elementId } ) => getElementLabel( elementId ),\n\t\t\t\tsubtitle: __( 'Style edited', 'elementor' ),\n\t\t\t}\n\t\t);\n\t}, [] );\n}\n\ntype UndoableUpdateStyleArgs = {\n\telementId: ElementID;\n\tstyleId: StyleDefinition[ 'id' ];\n\tprovider: StylesProvider;\n\tmeta: StyleDefinitionVariant[ 'meta' ];\n\tprops: Props;\n};\n\nfunction useUndoableUpdateStyle() {\n\treturn useMemo( () => {\n\t\treturn undoable(\n\t\t\t{\n\t\t\t\tdo: ( { elementId, styleId, provider, meta, props }: UndoableUpdateStyleArgs ) => {\n\t\t\t\t\tif ( ! provider.actions.updateProps ) {\n\t\t\t\t\t\tthrow new StylesProviderCannotUpdatePropsError( {\n\t\t\t\t\t\t\tcontext: { providerKey: provider.getKey() },\n\t\t\t\t\t\t} );\n\t\t\t\t\t}\n\n\t\t\t\t\tconst style = provider.actions.get( styleId, { elementId } );\n\n\t\t\t\t\tconst prevProps = getCurrentProps( style, meta );\n\n\t\t\t\t\tprovider.actions.updateProps(\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tid: styleId,\n\t\t\t\t\t\t\tmeta,\n\t\t\t\t\t\t\tprops,\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{ elementId }\n\t\t\t\t\t);\n\n\t\t\t\t\treturn prevProps;\n\t\t\t\t},\n\n\t\t\t\tundo: ( { elementId, styleId, meta, provider }, prevProps ) => {\n\t\t\t\t\tprovider.actions.updateProps?.( { id: styleId, meta, props: prevProps }, { elementId } );\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\ttitle: ( { elementId } ) => getElementLabel( elementId ),\n\t\t\t\tsubtitle: __( 'Style edited', 'elementor' ),\n\t\t\t}\n\t\t);\n\t}, [] );\n}\n\nfunction getCurrentProps( style: StyleDefinition | null, meta: StyleDefinitionVariant[ 'meta' ] ) {\n\tif ( ! style ) {\n\t\treturn {};\n\t}\n\n\tconst variant = getVariantByMeta( style, meta );\n\n\tconst props = variant?.props ?? {};\n\n\treturn structuredClone( props );\n}\n","import type { PropKey, PropValue } from '@elementor/editor-props';\n\nimport { useStylesFields } from './use-styles-fields';\n\nexport function useStylesField< T extends PropValue >( propName: PropKey ): [ T | null, ( newValue: T ) => void ] {\n\tconst [ values, setValues ] = useStylesFields< { [ k: typeof propName ]: T } >( [ propName ] );\n\n\tconst value = values?.[ propName ] ?? null;\n\n\tconst setValue = ( newValue: T ) => {\n\t\tsetValues( {\n\t\t\t[ propName ]: newValue,\n\t\t} );\n\t};\n\n\treturn [ value, setValue ];\n}\n","import * as React from 'react';\nimport { useBoundProp } from '@elementor/editor-controls';\nimport { isEmpty } from '@elementor/editor-props';\nimport { ELEMENTS_BASE_STYLES_PROVIDER_KEY, isElementsStylesProvider } from '@elementor/editor-styles-repository';\nimport { isExperimentActive } from '@elementor/editor-v1-adapters';\nimport { Tooltip } from '@elementor/ui';\nimport { __ } from '@wordpress/i18n';\n\nimport { StyleIndicator } from '../components/style-indicator';\nimport { useStyle } from '../contexts/style-context';\nimport { useStylesInheritanceChain } from '../contexts/styles-inheritance-context';\nimport { EXPERIMENTAL_FEATURES } from '../sync/experiments-flags';\nimport { isUsingIndicatorPopover } from './consts';\nimport { StyleIndicatorInfotip } from './styles-inheritance-infotip';\n\nexport const StylesInheritanceIndicator = () => {\n\tconst { path, propType } = useBoundProp();\n\tconst { id: currentStyleId, provider: currentStyleProvider, meta: currentStyleMeta } = useStyle();\n\n\tconst isUsingNestedProps = isExperimentActive( EXPERIMENTAL_FEATURES.V_3_30 );\n\n\tconst finalPath = isUsingNestedProps ? path : path.slice( 0, 1 );\n\n\tconst inheritanceChain = useStylesInheritanceChain( finalPath );\n\n\tif ( ! inheritanceChain.length ) {\n\t\treturn null;\n\t}\n\n\tconst currentItem = inheritanceChain.find(\n\t\t( {\n\t\t\tstyle,\n\t\t\tvariant: {\n\t\t\t\tmeta: { breakpoint, state },\n\t\t\t},\n\t\t} ) =>\n\t\t\tstyle.id === currentStyleId &&\n\t\t\tbreakpoint === currentStyleMeta.breakpoint &&\n\t\t\tstate === currentStyleMeta.state\n\t);\n\n\tconst hasValue = ! isEmpty( currentItem?.value );\n\n\tconst [ actualStyle ] = inheritanceChain;\n\n\tif ( actualStyle.provider === ELEMENTS_BASE_STYLES_PROVIDER_KEY ) {\n\t\treturn null;\n\t}\n\n\tconst isFinalValue = currentItem === actualStyle;\n\n\tconst label = getLabel( { isFinalValue, hasValue } );\n\tconst variantType = getVariant( { isFinalValue, hasValue, currentStyleProvider } );\n\n\tif ( ! isUsingIndicatorPopover() ) {\n\t\treturn (\n\t\t\t<Tooltip title={ __( 'Style origin', 'elementor' ) } placement=\"top\">\n\t\t\t\t<StyleIndicator variant={ variantType } aria-label={ label } />\n\t\t\t</Tooltip>\n\t\t);\n\t}\n\n\treturn (\n\t\t<StyleIndicatorInfotip\n\t\t\tinheritanceChain={ inheritanceChain }\n\t\t\tpath={ finalPath }\n\t\t\tpropType={ propType }\n\t\t\tlabel={ label }\n\t\t>\n\t\t\t<StyleIndicator variant={ variantType } />\n\t\t</StyleIndicatorInfotip>\n\t);\n};\n\nconst getLabel = ( { isFinalValue, hasValue }: { isFinalValue: boolean; hasValue: boolean } ) => {\n\tif ( isFinalValue ) {\n\t\treturn __( 'This is the final value', 'elementor' );\n\t}\n\n\tif ( hasValue ) {\n\t\treturn __( 'This value is overridden by another style', 'elementor' );\n\t}\n\n\treturn __( 'This has value from another style', 'elementor' );\n};\n\nconst getVariant = ( {\n\tisFinalValue,\n\thasValue,\n\tcurrentStyleProvider,\n}: {\n\tisFinalValue: boolean;\n\thasValue: boolean;\n\tcurrentStyleProvider: object | null;\n} ): 'local' | 'global' | 'overridden' | undefined => {\n\tif ( isFinalValue ) {\n\t\treturn isElementsStylesProvider( ( currentStyleProvider as { getKey: () => string } )?.getKey?.() )\n\t\t\t? 'local'\n\t\t\t: 'global';\n\t}\n\n\tif ( hasValue ) {\n\t\treturn 'overridden';\n\t}\n\n\treturn undefined;\n};\n","import { isExperimentActive } from '@elementor/editor-v1-adapters';\n\n// the following prop types' style transformers would be ignored to provide alternative transformers for the styles inheritance popover\nexport const excludePropTypeTransformers = new Set( [\n\t'background-color-overlay',\n\t'background-image-overlay',\n\t'background-gradient-overlay',\n\t'gradient-color-stop',\n\t'color-stop',\n\t'background-image-position-offset',\n\t'background-image-size-scale',\n\t'image-src',\n\t'image',\n\t'background-overlay',\n] );\n\nexport const isUsingIndicatorPopover = () => isExperimentActive( 'e_v_3_30' );\n","import * as React from 'react';\nimport { useMemo, useState } from 'react';\nimport { createPropsResolver, type PropsResolver } from '@elementor/editor-canvas';\nimport { type PropKey, type PropType } from '@elementor/editor-props';\nimport {\n\tBackdrop,\n\tBox,\n\tCard,\n\tCardContent,\n\tClickAwayListener,\n\tCloseButton,\n\tIconButton,\n\tInfotip,\n\tStack,\n\ttype Theme,\n\tTooltip,\n\tTypography,\n} from '@elementor/ui';\nimport { __ } from '@wordpress/i18n';\n\nimport { useSectionContentRef } from '../components/section-content';\nimport { useDirection } from '../hooks/use-direction';\nimport { ActionIcons, BreakpointIcon, LabelChip, ValueComponent } from './components';\nimport { useNormalizedInheritanceChainItems } from './hooks/use-normalized-inheritance-chain-items';\nimport { stylesInheritanceTransformersRegistry } from './styles-inheritance-transformers-registry';\nimport { type SnapshotPropValue } from './types';\n\ntype Props = {\n\tinheritanceChain: SnapshotPropValue[];\n\tpropType: PropType;\n\tpath: PropKey[];\n\tlabel: string;\n\tchildren: React.ReactNode;\n};\n\nconst SIZE = 'tiny';\n\nexport const StyleIndicatorInfotip = ( { inheritanceChain, propType, path, label, children }: Props ) => {\n\tconst [ showInfotip, setShowInfotip ] = useState< boolean >( false );\n\tconst toggleInfotip = () => setShowInfotip( ( prev ) => ! prev );\n\tconst closeInfotip = () => setShowInfotip( false );\n\n\tconst key = path.join( '.' );\n\n\tconst sectionContentRef = useSectionContentRef();\n\tconst sectionContentWidth = sectionContentRef?.current?.offsetWidth ?? 320;\n\n\tconst resolve = useMemo< PropsResolver >( () => {\n\t\treturn createPropsResolver( {\n\t\t\ttransformers: stylesInheritanceTransformersRegistry,\n\t\t\tschema: { [ key ]: propType },\n\t\t} );\n\t}, [ key, propType ] );\n\n\tconst items = useNormalizedInheritanceChainItems( inheritanceChain, key, resolve );\n\n\tconst infotipContent = (\n\t\t<ClickAwayListener onClickAway={ closeInfotip }>\n\t\t\t<Card\n\t\t\t\televation={ 0 }\n\t\t\t\tsx={ {\n\t\t\t\t\twidth: `${ sectionContentWidth }px`,\n\t\t\t\t\tmaxWidth: 500,\n\t\t\t\t\toverflowX: 'hidden',\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t<CardContent\n\t\t\t\t\tsx={ {\n\t\t\t\t\t\tdisplay: 'flex',\n\t\t\t\t\t\tgap: 0.5,\n\t\t\t\t\t\tflexDirection: 'column',\n\t\t\t\t\t\tp: 0,\n\t\t\t\t\t\t'&:last-child': {\n\t\t\t\t\t\t\tpb: 0,\n\t\t\t\t\t\t},\n\t\t\t\t\t} }\n\t\t\t\t>\n\t\t\t\t\t<Stack direction=\"row\" alignItems=\"center\" sx={ { pl: 1.5, pr: 0.5, minHeight: 36, py: 0.5 } }>\n\t\t\t\t\t\t<Typography variant=\"subtitle2\" color=\"secondary\" sx={ { fontSize: 12, fontWeight: '500' } }>\n\t\t\t\t\t\t\t{ __( 'Style origin', 'elementor' ) }\n\t\t\t\t\t\t</Typography>\n\t\t\t\t\t\t<CloseButton\n\t\t\t\t\t\t\tslotProps={ { icon: { fontSize: SIZE } } }\n\t\t\t\t\t\t\tsx={ { ml: 'auto' } }\n\t\t\t\t\t\t\tonClick={ closeInfotip }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</Stack>\n\t\t\t\t\t<Stack\n\t\t\t\t\t\tgap={ 1.5 }\n\t\t\t\t\t\tsx={ { pl: 2, pr: 1, pb: 2, overflowX: 'hidden', overflowY: 'auto' } }\n\t\t\t\t\t\trole=\"list\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{ items.map( ( item, index ) => {\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t<Box\n\t\t\t\t\t\t\t\t\tkey={ item.id }\n\t\t\t\t\t\t\t\t\tdisplay=\"flex\"\n\t\t\t\t\t\t\t\t\tgap={ 0.5 }\n\t\t\t\t\t\t\t\t\trole=\"listitem\"\n\t\t\t\t\t\t\t\t\t/* translators: %s: Label of the inheritance item */\n\t\t\t\t\t\t\t\t\taria-label={ __( 'Inheritance item: %s', 'elementor' ).replace(\n\t\t\t\t\t\t\t\t\t\t'%s',\n\t\t\t\t\t\t\t\t\t\titem.displayLabel\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<Box display=\"flex\" gap={ 0.5 } sx={ { flexWrap: 'wrap', width: '100%' } }>\n\t\t\t\t\t\t\t\t\t\t<BreakpointIcon breakpoint={ item.breakpoint } />\n\t\t\t\t\t\t\t\t\t\t<LabelChip\n\t\t\t\t\t\t\t\t\t\t\tdisplayLabel={ item.displayLabel }\n\t\t\t\t\t\t\t\t\t\t\tprovider={ item.provider }\n\t\t\t\t\t\t\t\t\t\t\tchipColor={ item.chipColor }\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t<ValueComponent index={ index } value={ item.value } />\n\t\t\t\t\t\t\t\t\t</Box>\n\t\t\t\t\t\t\t\t\t<ActionIcons />\n\t\t\t\t\t\t\t\t</Box>\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} ) }\n\t\t\t\t\t</Stack>\n\t\t\t\t</CardContent>\n\t\t\t</Card>\n\t\t</ClickAwayListener>\n\t);\n\n\treturn (\n\t\t<TooltipOrInfotip showInfotip={ showInfotip } onClose={ closeInfotip } infotipContent={ infotipContent }>\n\t\t\t<IconButton onClick={ toggleInfotip } aria-label={ label } sx={ { my: '-1px' } }>\n\t\t\t\t{ children }\n\t\t\t</IconButton>\n\t\t</TooltipOrInfotip>\n\t);\n};\n\nfunction TooltipOrInfotip( {\n\tchildren,\n\tshowInfotip,\n\tonClose,\n\tinfotipContent,\n}: {\n\tchildren: React.ReactNode;\n\tshowInfotip: boolean;\n\tonClose: () => void;\n\tinfotipContent: React.ReactNode;\n} ) {\n\tconst { isSiteRtl } = useDirection();\n\tconst forceInfotipAlignLeft = isSiteRtl ? 9999999 : -9999999;\n\n\tif ( showInfotip ) {\n\t\treturn (\n\t\t\t<>\n\t\t\t\t<Backdrop\n\t\t\t\t\topen={ showInfotip }\n\t\t\t\t\tonClick={ onClose }\n\t\t\t\t\tsx={ {\n\t\t\t\t\t\tbackgroundColor: 'transparent',\n\t\t\t\t\t\tzIndex: ( theme: Theme ) => theme.zIndex.modal - 1,\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t\t<Infotip\n\t\t\t\t\tplacement=\"top\"\n\t\t\t\t\tcontent={ infotipContent }\n\t\t\t\t\topen={ showInfotip }\n\t\t\t\t\tonClose={ onClose }\n\t\t\t\t\tdisableHoverListener\n\t\t\t\t\tcomponentsProps={ {\n\t\t\t\t\t\ttooltip: {\n\t\t\t\t\t\t\tsx: { mx: 2 },\n\t\t\t\t\t\t},\n\t\t\t\t\t} }\n\t\t\t\t\tslotProps={ {\n\t\t\t\t\t\tpopper: {\n\t\t\t\t\t\t\tmodifiers: [\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tname: 'offset',\n\t\t\t\t\t\t\t\t\toptions: { offset: [ forceInfotipAlignLeft, 0 ] },\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t],\n\t\t\t\t\t\t},\n\t\t\t\t\t} }\n\t\t\t\t>\n\t\t\t\t\t{ children }\n\t\t\t\t</Infotip>\n\t\t\t</>\n\t\t);\n\t}\n\n\treturn (\n\t\t<Tooltip title={ __( 'Style origin', 'elementor' ) } placement=\"top\">\n\t\t\t{ children }\n\t\t</Tooltip>\n\t);\n}\n","import { createContext, type FC, type PropsWithChildren, useContext, useRef } from 'react';\nimport * as React from 'react';\nimport { Stack } from '@elementor/ui';\n\nconst SectionContentRefContext = createContext< React.RefObject< HTMLElement > | null >( null );\n\nexport const useSectionContentRef = () => useContext( SectionContentRefContext );\n\ntype SectionContentProps = PropsWithChildren< {\n\tgap?: number;\n\tsx?: {\n\t\tpt?: number;\n\t};\n} >;\n\nexport const SectionContent: FC< SectionContentProps > = ( { gap = 2, sx, children } ) => {\n\tconst ref = useRef< HTMLElement >( null );\n\n\treturn (\n\t\t<SectionContentRefContext.Provider value={ ref }>\n\t\t\t<Stack gap={ gap } sx={ { ...sx } } ref={ ref }>\n\t\t\t\t{ children }\n\t\t\t</Stack>\n\t\t</SectionContentRefContext.Provider>\n\t);\n};\n","import { useTheme } from '@elementor/ui';\n\nimport { getElementorFrontendConfig } from '../sync/get-elementor-globals';\n\nexport function useDirection() {\n\tconst theme = useTheme();\n\n\tconst isUiRtl = 'rtl' === theme.direction,\n\t\tisSiteRtl = !! getElementorFrontendConfig()?.is_rtl;\n\n\treturn { isSiteRtl, isUiRtl };\n}\n","import { type ExtendedWindow } from './types';\n\nexport const getElementorConfig = () => {\n\tconst extendedWindow = window as unknown as ExtendedWindow;\n\n\treturn extendedWindow.elementor?.config ?? {};\n};\n\nexport const getElementorFrontendConfig = () => {\n\tconst extendedWindow = window as unknown as ExtendedWindow;\n\n\treturn extendedWindow.elementorFrontend?.config ?? {};\n};\n","import * as React from 'react';\nimport { type BreakpointId, useBreakpoints } from '@elementor/editor-responsive';\nimport {\n\tDesktopIcon,\n\tLaptopIcon,\n\tMobileLandscapeIcon,\n\tMobilePortraitIcon,\n\tTabletLandscapeIcon,\n\tTabletPortraitIcon,\n\tWidescreenIcon,\n} from '@elementor/icons';\nimport { Tooltip } from '@elementor/ui';\n\ntype Props = {\n\tbreakpoint?: BreakpointId | null;\n};\n\nconst SIZE = 'tiny';\nconst DEFAULT_BREAKPOINT = 'desktop';\n\nconst breakpointIconMap: Record< string, React.ElementType > = {\n\twidescreen: WidescreenIcon,\n\tdesktop: DesktopIcon,\n\tlaptop: LaptopIcon,\n\ttablet_extra: TabletLandscapeIcon,\n\ttablet: TabletPortraitIcon,\n\tmobile_extra: MobileLandscapeIcon,\n\tmobile: MobilePortraitIcon,\n};\n\nexport const BreakpointIcon = ( { breakpoint }: Props ) => {\n\tconst breakpoints = useBreakpoints();\n\tconst currentBreakpoint = breakpoint || DEFAULT_BREAKPOINT;\n\tconst IconComponent = breakpointIconMap[ currentBreakpoint ];\n\n\tif ( ! IconComponent ) {\n\t\treturn null;\n\t}\n\n\tconst breakpointLabel = breakpoints.find( ( breakpointItem ) => breakpointItem.id === currentBreakpoint )?.label;\n\n\treturn (\n\t\t<Tooltip title={ breakpointLabel } placement=\"top\">\n\t\t\t<IconComponent fontSize={ SIZE } sx={ { mt: '2px' } } />\n\t\t</Tooltip>\n\t);\n};\n","import * as React from 'react';\nimport { ELEMENTS_BASE_STYLES_PROVIDER_KEY } from '@elementor/editor-styles-repository';\nimport { InfoCircleIcon } from '@elementor/icons';\nimport { Chip, type Theme, Tooltip } from '@elementor/ui';\nimport { __ } from '@wordpress/i18n';\n\nimport { type ChipColors } from '../types';\n\ntype Props = {\n\tdisplayLabel: string;\n\tprovider?: string;\n\tchipColor: ChipColors;\n};\n\nconst SIZE = 'tiny';\n\nexport const LabelChip = ( { displayLabel, provider, chipColor }: Props ) => {\n\tconst isBaseStyle = provider === ELEMENTS_BASE_STYLES_PROVIDER_KEY;\n\n\tconst chipIcon = isBaseStyle ? (\n\t\t<Tooltip title={ __( 'Inherited from base styles', 'elementor' ) } placement=\"top\">\n\t\t\t<InfoCircleIcon fontSize={ SIZE } />\n\t\t</Tooltip>\n\t) : undefined;\n\n\treturn (\n\t\t<Chip\n\t\t\tlabel={ displayLabel }\n\t\t\tsize={ SIZE }\n\t\t\tcolor={ chipColor }\n\t\t\tvariant=\"standard\"\n\t\t\tstate=\"enabled\"\n\t\t\ticon={ chipIcon }\n\t\t\tsx={ ( theme: Theme ) => ( {\n\t\t\t\tlineHeight: 1,\n\t\t\t\tflexWrap: 'nowrap',\n\t\t\t\talignItems: 'center',\n\t\t\t\tborderRadius: `${ theme.shape.borderRadius * 0.75 }px`,\n\t\t\t\tflexDirection: 'row-reverse',\n\t\t\t\t'.MuiChip-label': {\n\t\t\t\t\toverflow: 'hidden',\n\t\t\t\t\ttextOverflow: 'ellipsis',\n\t\t\t\t\twhiteSpace: 'nowrap',\n\t\t\t\t},\n\t\t\t} ) }\n\t\t/>\n\t);\n};\n","import * as React from 'react';\nimport { Typography } from '@elementor/ui';\n\ntype Props = {\n\tindex: number;\n\tvalue: React.ReactNode;\n};\n\nexport const ValueComponent = ( { index, value }: Props ) => {\n\treturn (\n\t\t<Typography\n\t\t\tvariant=\"caption\"\n\t\t\tcolor=\"text.tertiary\"\n\t\t\tsx={ {\n\t\t\t\tmt: '1px',\n\t\t\t\ttextDecoration: index === 0 ? 'none' : 'line-through',\n\t\t\t\toverflow: 'hidden',\n\t\t\t\ttextOverflow: 'ellipsis',\n\t\t\t\twhiteSpace: 'nowrap',\n\t\t\t} }\n\t\t>\n\t\t\t{ value }\n\t\t</Typography>\n\t);\n};\n","import * as React from 'react';\nimport { Box } from '@elementor/ui';\n\nexport const ActionIcons = () => (\n\t<Box display=\"flex\" gap={ 0.5 } alignItems=\"center\">\n\t\t{ /* Action Slot */ }\n\t</Box>\n);\n","import { isValidElement, type ReactNode, useEffect, useState } from 'react';\nimport { type PropsResolver } from '@elementor/editor-canvas';\nimport { type PropKey } from '@elementor/editor-props';\nimport { type StyleDefinitionVariant } from '@elementor/editor-styles';\nimport { ELEMENTS_BASE_STYLES_PROVIDER_KEY } from '@elementor/editor-styles-repository';\nimport { __ } from '@wordpress/i18n';\n\nimport { type ChipColors, type SnapshotPropValue } from '../types';\n\nconst MAXIMUM_ITEMS = 2;\n\ntype NormalizedItem = {\n\tid: string | number;\n\tprovider: string;\n\tbreakpoint?: StyleDefinitionVariant[ 'meta' ][ 'breakpoint' ];\n\tdisplayLabel: string;\n\tvalue: ReactNode | string;\n\tchipColor: ChipColors;\n};\n\nexport const useNormalizedInheritanceChainItems = (\n\tinheritanceChain: SnapshotPropValue[],\n\tbind: PropKey,\n\tresolve: PropsResolver\n) => {\n\tconst [ items, setItems ] = useState< NormalizedItem[] >( [] );\n\n\tuseEffect( () => {\n\t\t( async () => {\n\t\t\tconst normalizedItems = await Promise.all(\n\t\t\t\tinheritanceChain\n\t\t\t\t\t.filter( ( { style } ) => style )\n\t\t\t\t\t.map( ( item, index ) => normalizeInheritanceItem( item, index, bind, resolve ) )\n\t\t\t);\n\n\t\t\tconst validItems = normalizedItems\n\t\t\t\t.map( ( item ) => ( {\n\t\t\t\t\t...item,\n\t\t\t\t\tdisplayLabel:\n\t\t\t\t\t\tELEMENTS_BASE_STYLES_PROVIDER_KEY !== item.provider\n\t\t\t\t\t\t\t? item.displayLabel\n\t\t\t\t\t\t\t: __( 'Base', 'elementor' ),\n\t\t\t\t} ) )\n\t\t\t\t.filter( ( item ) => ! item.value || item.displayLabel !== '' )\n\t\t\t\t.slice( 0, MAXIMUM_ITEMS );\n\n\t\t\tsetItems( validItems );\n\t\t} )();\n\t}, [ inheritanceChain, bind, resolve ] );\n\n\treturn items;\n};\n\nconst DEFAULT_BREAKPOINT = 'desktop';\n\nexport const normalizeInheritanceItem = async (\n\titem: SnapshotPropValue,\n\tindex: number,\n\tbind: PropKey,\n\tresolve: PropsResolver\n): Promise< NormalizedItem > => {\n\tconst {\n\t\tvariant: {\n\t\t\tmeta: { state, breakpoint },\n\t\t},\n\t\tstyle: { label, id },\n\t} = item;\n\n\tconst displayLabel = `${ label }${ state ? ':' + state : '' }`;\n\n\treturn {\n\t\tid: id ? id + ( state ?? '' ) : index,\n\t\tprovider: item.provider || '',\n\t\tbreakpoint: breakpoint ?? DEFAULT_BREAKPOINT,\n\t\tdisplayLabel,\n\t\tvalue: await getTransformedValue( item, bind, resolve ),\n\t\tchipColor: getChipColor( item ),\n\t};\n};\n\nconst getTransformedValue = async (\n\titem: SnapshotPropValue,\n\tbind: PropKey,\n\tresolve: PropsResolver\n): Promise< ReactNode | string > => {\n\ttry {\n\t\tconst result = await resolve( {\n\t\t\tprops: {\n\t\t\t\t[ bind ]: item.value,\n\t\t\t},\n\t\t} );\n\n\t\tconst value = result?.[ bind ] ?? result;\n\n\t\tif ( isValidElement( value ) ) {\n\t\t\treturn value;\n\t\t}\n\n\t\tif ( typeof value === 'object' ) {\n\t\t\treturn JSON.stringify( value );\n\t\t}\n\n\t\treturn String( value );\n\t} catch {\n\t\treturn '';\n\t}\n};\n\nconst getChipColor = ( item: SnapshotPropValue ) => {\n\tconst { provider = '', style } = item;\n\n\tif ( provider === ELEMENTS_BASE_STYLES_PROVIDER_KEY ) {\n\t\treturn 'default';\n\t}\n\n\tif ( style?.label === 'local' ) {\n\t\treturn 'accent';\n\t}\n\n\treturn 'global';\n};\n","import { createTransformersRegistry } from '@elementor/editor-canvas';\n\nexport const stylesInheritanceTransformersRegistry = createTransformersRegistry();\n","import * as React from 'react';\n\nimport { PanelDivider } from '../../panel-divider';\nimport { SectionContent } from '../../section-content';\nimport { BorderField } from './border-field';\nimport { BorderRadiusField } from './border-radius-field';\n\nexport const BorderSection = () => (\n\t<SectionContent>\n\t\t<BorderRadiusField />\n\t\t<PanelDivider />\n\t\t<BorderField />\n\t</SectionContent>\n);\n","import * as React from 'react';\nimport { Divider } from '@elementor/ui';\n\nexport const PanelDivider = () => <Divider sx={ { my: 0.5 } } />;\n","import * as React from 'react';\nimport { __ } from '@wordpress/i18n';\n\nimport { useStyle } from '../../../contexts/style-context';\nimport { useStylesFields } from '../../../hooks/use-styles-fields';\nimport { AddOrRemoveContent } from '../../add-or-remove-content';\nimport { BorderColorField } from './border-color-field';\nimport { BorderStyleField } from './border-style-field';\nimport { BorderWidthField } from './border-width-field';\n\nconst initialBorder = {\n\t'border-width': { $$type: 'size', value: { size: 1, unit: 'px' } },\n\t'border-color': { $$type: 'color', value: '#000000' },\n\t'border-style': { $$type: 'string', value: 'solid' },\n};\n\nexport const BorderField = () => {\n\tconst { canEdit } = useStyle();\n\tconst [ border, setBorder ] = useStylesFields( Object.keys( initialBorder ) );\n\n\tconst addBorder = () => {\n\t\tsetBorder( initialBorder );\n\t};\n\n\tconst removeBorder = () => {\n\t\tsetBorder( {\n\t\t\t'border-width': null,\n\t\t\t'border-color': null,\n\t\t\t'border-style': null,\n\t\t} );\n\t};\n\n\tconst hasBorder = Object.values( border ?? {} ).some( Boolean );\n\n\treturn (\n\t\t<AddOrRemoveContent\n\t\t\tlabel={ __( 'Border', 'elementor' ) }\n\t\t\tisAdded={ hasBorder }\n\t\t\tonAdd={ addBorder }\n\t\t\tonRemove={ removeBorder }\n\t\t\tdisabled={ ! canEdit }\n\t\t>\n\t\t\t<BorderWidthField />\n\t\t\t<BorderColorField />\n\t\t\t<BorderStyleField />\n\t\t</AddOrRemoveContent>\n\t);\n};\n","import * as React from 'react';\nimport { type PropsWithChildren } from 'react';\nimport { MinusIcon, PlusIcon } from '@elementor/icons';\nimport { Collapse, IconButton, Stack } from '@elementor/ui';\n\nimport { ControlLabel } from './control-label';\nimport { SectionContent } from './section-content';\n\nconst SIZE = 'tiny';\n\ntype Props = {\n\tlabel: string;\n\tisAdded: boolean;\n\tonAdd: () => void;\n\tonRemove: () => void;\n\tdisabled?: boolean;\n};\n\nexport const AddOrRemoveContent = ( {\n\tisAdded,\n\tlabel,\n\tonAdd,\n\tonRemove,\n\tchildren,\n\tdisabled,\n}: PropsWithChildren< Props > ) => {\n\treturn (\n\t\t<SectionContent>\n\t\t\t<Stack\n\t\t\t\tdirection=\"row\"\n\t\t\t\tsx={ {\n\t\t\t\t\tjustifyContent: 'space-between',\n\t\t\t\t\talignItems: 'center',\n\t\t\t\t\tmarginInlineEnd: -0.75,\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t<ControlLabel>{ label }</ControlLabel>\n\t\t\t\t{ isAdded ? (\n\t\t\t\t\t<IconButton size={ SIZE } onClick={ onRemove } aria-label=\"Remove\" disabled={ disabled }>\n\t\t\t\t\t\t<MinusIcon fontSize={ SIZE } />\n\t\t\t\t\t</IconButton>\n\t\t\t\t) : (\n\t\t\t\t\t<IconButton size={ SIZE } onClick={ onAdd } aria-label=\"Add\" disabled={ disabled }>\n\t\t\t\t\t\t<PlusIcon fontSize={ SIZE } />\n\t\t\t\t\t</IconButton>\n\t\t\t\t) }\n\t\t\t</Stack>\n\t\t\t<Collapse in={ isAdded } unmountOnExit>\n\t\t\t\t<SectionContent>{ children }</SectionContent>\n\t\t\t</Collapse>\n\t\t</SectionContent>\n\t);\n};\n","import * as React from 'react';\nimport { type PropsWithChildren } from 'react';\nimport { ControlAdornments, ControlFormLabel } from '@elementor/editor-controls';\nimport { Stack } from '@elementor/ui';\n\nexport const ControlLabel = ( { children }: PropsWithChildren< object > ) => {\n\treturn (\n\t\t<Stack direction=\"row\" alignItems=\"center\" justifyItems=\"start\" gap={ 1 }>\n\t\t\t<ControlFormLabel>{ children }</ControlFormLabel>\n\t\t\t<ControlAdornments />\n\t\t</Stack>\n\t);\n};\n","import * as React from 'react';\nimport { ColorControl } from '@elementor/editor-controls';\nimport { Grid } from '@elementor/ui';\nimport { __ } from '@wordpress/i18n';\n\nimport { StylesField } from '../../../controls-registry/styles-field';\nimport { ControlLabel } from '../../control-label';\n\nexport const BorderColorField = () => {\n\treturn (\n\t\t<StylesField bind={ 'border-color' }>\n\t\t\t<Grid container gap={ 2 } alignItems=\"center\" flexWrap=\"nowrap\">\n\t\t\t\t<Grid item xs={ 6 }>\n\t\t\t\t\t<ControlLabel>{ __( 'Border color', 'elementor' ) }</ControlLabel>\n\t\t\t\t</Grid>\n\t\t\t\t<Grid item xs={ 6 }>\n\t\t\t\t\t<ColorControl />\n\t\t\t\t</Grid>\n\t\t\t</Grid>\n\t\t</StylesField>\n\t);\n};\n","import * as React from 'react';\nimport { SelectControl } from '@elementor/editor-controls';\nimport { Grid } from '@elementor/ui';\nimport { __ } from '@wordpress/i18n';\n\nimport { StylesField } from '../../../controls-registry/styles-field';\nimport { ControlLabel } from '../../control-label';\n\nconst borderStyles = [\n\t{ value: 'none', label: __( 'None', 'elementor' ) },\n\t{ value: 'solid', label: __( 'Solid', 'elementor' ) },\n\t{ value: 'dashed', label: __( 'Dashed', 'elementor' ) },\n\t{ value: 'dotted', label: __( 'Dotted', 'elementor' ) },\n\t{ value: 'double', label: __( 'Double', 'elementor' ) },\n\t{ value: 'groove', label: __( 'Groove', 'elementor' ) },\n\t{ value: 'ridge', label: __( 'Ridge', 'elementor' ) },\n\t{ value: 'inset', label: __( 'Inset', 'elementor' ) },\n\t{ value: 'outset', label: __( 'Outset', 'elementor' ) },\n];\nexport const BorderStyleField = () => {\n\treturn (\n\t\t<StylesField bind={ 'border-style' }>\n\t\t\t<Grid container gap={ 2 } alignItems=\"center\" flexWrap=\"nowrap\">\n\t\t\t\t<Grid item xs={ 6 }>\n\t\t\t\t\t<ControlLabel>{ __( 'Border type', 'elementor' ) }</ControlLabel>\n\t\t\t\t</Grid>\n\t\t\t\t<Grid item xs={ 6 } sx={ { overflow: 'hidden' } }>\n\t\t\t\t\t<SelectControl options={ borderStyles } />\n\t\t\t\t</Grid>\n\t\t\t</Grid>\n\t\t</StylesField>\n\t);\n};\n","import * as React from 'react';\nimport { type EqualUnequalItems, EqualUnequalSizesControl } from '@elementor/editor-controls';\nimport { borderWidthPropTypeUtil } from '@elementor/editor-props';\nimport { SideAllIcon, SideBottomIcon, SideLeftIcon, SideRightIcon, SideTopIcon } from '@elementor/icons';\nimport { withDirection } from '@elementor/ui';\nimport { __ } from '@wordpress/i18n';\n\nimport { StylesField } from '../../../controls-registry/styles-field';\nimport { useDirection } from '../../../hooks/use-direction';\n\nconst InlineStartIcon = withDirection( SideRightIcon );\nconst InlineEndIcon = withDirection( SideLeftIcon );\n\nconst getEdges = ( isSiteRtl: boolean ): EqualUnequalItems => [\n\t{\n\t\tlabel: __( 'Top', 'elementor' ),\n\t\ticon: <SideTopIcon fontSize={ 'tiny' } />,\n\t\tbind: 'block-start',\n\t},\n\t{\n\t\tlabel: isSiteRtl ? __( 'Left', 'elementor' ) : __( 'Right', 'elementor' ),\n\t\ticon: <InlineStartIcon fontSize={ 'tiny' } />,\n\t\tbind: 'inline-end',\n\t},\n\t{\n\t\tlabel: __( 'Bottom', 'elementor' ),\n\t\ticon: <SideBottomIcon fontSize={ 'tiny' } />,\n\t\tbind: 'block-end',\n\t},\n\t{\n\t\tlabel: isSiteRtl ? __( 'Right', 'elementor' ) : __( 'Left', 'elementor' ),\n\t\ticon: <InlineEndIcon fontSize={ 'tiny' } />,\n\t\tbind: 'inline-start',\n\t},\n];\n\nexport const BorderWidthField = () => {\n\tconst { isSiteRtl } = useDirection();\n\n\treturn (\n\t\t<StylesField bind={ 'border-width' }>\n\t\t\t<EqualUnequalSizesControl\n\t\t\t\titems={ getEdges( isSiteRtl ) }\n\t\t\t\tlabel={ __( 'Border width', 'elementor' ) }\n\t\t\t\ticon={ <SideAllIcon fontSize={ 'tiny' } /> }\n\t\t\t\ttooltipLabel={ __( 'Adjust borders', 'elementor' ) }\n\t\t\t\tmultiSizePropTypeUtil={ borderWidthPropTypeUtil }\n\t\t\t/>\n\t\t</StylesField>\n\t);\n};\n","import * as React from 'react';\nimport { type EqualUnequalItems, EqualUnequalSizesControl } from '@elementor/editor-controls';\nimport { borderRadiusPropTypeUtil } from '@elementor/editor-props';\nimport {\n\tBorderCornersIcon,\n\tRadiusBottomLeftIcon,\n\tRadiusBottomRightIcon,\n\tRadiusTopLeftIcon,\n\tRadiusTopRightIcon,\n} from '@elementor/icons';\nimport { withDirection } from '@elementor/ui';\nimport { __ } from '@wordpress/i18n';\n\nimport { StylesField } from '../../../controls-registry/styles-field';\nimport { useDirection } from '../../../hooks/use-direction';\n\nconst StartStartIcon = withDirection( RadiusTopLeftIcon );\nconst StartEndIcon = withDirection( RadiusTopRightIcon );\nconst EndStartIcon = withDirection( RadiusBottomLeftIcon );\nconst EndEndIcon = withDirection( RadiusBottomRightIcon );\n\nconst getStartStartLabel = ( isSiteRtl: boolean ) =>\n\tisSiteRtl ? __( 'Top right', 'elementor' ) : __( 'Top left', 'elementor' );\nconst getStartEndLabel = ( isSiteRtl: boolean ) =>\n\tisSiteRtl ? __( 'Top left', 'elementor' ) : __( 'Top right', 'elementor' );\nconst getEndStartLabel = ( isSiteRtl: boolean ) =>\n\tisSiteRtl ? __( 'Bottom right', 'elementor' ) : __( 'Bottom left', 'elementor' );\nconst getEndEndLabel = ( isSiteRtl: boolean ) =>\n\tisSiteRtl ? __( 'Bottom left', 'elementor' ) : __( 'Bottom right', 'elementor' );\n\nconst getCorners = ( isSiteRtl: boolean ): EqualUnequalItems => [\n\t{\n\t\tlabel: getStartStartLabel( isSiteRtl ),\n\t\ticon: <StartStartIcon fontSize={ 'tiny' } />,\n\t\tbind: 'start-start',\n\t},\n\t{\n\t\tlabel: getStartEndLabel( isSiteRtl ),\n\t\ticon: <StartEndIcon fontSize={ 'tiny' } />,\n\t\tbind: 'start-end',\n\t},\n\t{\n\t\tlabel: getEndStartLabel( isSiteRtl ),\n\t\ticon: <EndStartIcon fontSize={ 'tiny' } />,\n\t\tbind: 'end-start',\n\t},\n\t{\n\t\tlabel: getEndEndLabel( isSiteRtl ),\n\t\ticon: <EndEndIcon fontSize={ 'tiny' } />,\n\t\tbind: 'end-end',\n\t},\n];\n\nexport const BorderRadiusField = () => {\n\tconst { isSiteRtl } = useDirection();\n\n\treturn (\n\t\t<StylesField bind={ 'border-radius' }>\n\t\t\t<EqualUnequalSizesControl\n\t\t\t\titems={ getCorners( isSiteRtl ) }\n\t\t\t\tlabel={ __( 'Border radius', 'elementor' ) }\n\t\t\t\ticon={ <BorderCornersIcon fontSize={ 'tiny' } /> }\n\t\t\t\ttooltipLabel={ __( 'Adjust corners', 'elementor' ) }\n\t\t\t\tmultiSizePropTypeUtil={ borderRadiusPropTypeUtil }\n\t\t\t/>\n\t\t</StylesField>\n\t);\n};\n","import * as React from 'react';\nimport { BoxShadowRepeaterControl } from '@elementor/editor-controls';\n\nimport { StylesField } from '../../../controls-registry/styles-field';\nimport { SectionContent } from '../../section-content';\n\nexport const EffectsSection = () => {\n\treturn (\n\t\t<SectionContent>\n\t\t\t<StylesField bind=\"box-shadow\">\n\t\t\t\t<BoxShadowRepeaterControl />\n\t\t\t</StylesField>\n\t\t</SectionContent>\n\t);\n};\n","import * as React from 'react';\nimport { ControlFormLabel } from '@elementor/editor-controls';\nimport { useParentElement } from '@elementor/editor-elements';\nimport { type StringPropValue } from '@elementor/editor-props';\nimport { __ } from '@wordpress/i18n';\n\nimport { useElement } from '../../../contexts/element-context';\nimport { useComputedStyle } from '../../../hooks/use-computed-style';\nimport { useStylesField } from '../../../hooks/use-styles-field';\nimport { PanelDivider } from '../../panel-divider';\nimport { SectionContent } from '../../section-content';\nimport { AlignContentField } from './align-content-field';\nimport { AlignItemsField } from './align-items-field';\nimport { AlignSelfChild } from './align-self-child-field';\nimport { DisplayField, useDisplayPlaceholderValue } from './display-field';\nimport { type FlexDirection, FlexDirectionField } from './flex-direction-field';\nimport { FlexOrderField } from './flex-order-field';\nimport { FlexSizeField } from './flex-size-field';\nimport { GapControlField } from './gap-control-field';\nimport { JustifyContentField } from './justify-content-field';\nimport { WrapField } from './wrap-field';\n\nexport const LayoutSection = () => {\n\tconst [ display ] = useStylesField< StringPropValue >( 'display' );\n\tconst displayPlaceholder = useDisplayPlaceholderValue();\n\tconst isDisplayFlex = shouldDisplayFlexFields( display, displayPlaceholder as StringPropValue );\n\tconst { element } = useElement();\n\tconst parent = useParentElement( element.id );\n\tconst parentStyle = useComputedStyle( parent?.id || null );\n\tconst parentStyleDirection = parentStyle?.flexDirection ?? 'row';\n\n\treturn (\n\t\t<SectionContent>\n\t\t\t<DisplayField />\n\t\t\t{ isDisplayFlex && <FlexFields /> }\n\t\t\t{ 'flex' === parentStyle?.display && <FlexChildFields parentStyleDirection={ parentStyleDirection } /> }\n\t\t</SectionContent>\n\t);\n};\n\nconst FlexFields = () => {\n\tconst [ flexWrap ] = useStylesField< StringPropValue >( 'flex-wrap' );\n\n\treturn (\n\t\t<>\n\t\t\t<FlexDirectionField />\n\t\t\t<JustifyContentField />\n\t\t\t<AlignItemsField />\n\t\t\t<PanelDivider />\n\t\t\t<GapControlField />\n\t\t\t<WrapField />\n\t\t\t{ [ 'wrap', 'wrap-reverse' ].includes( flexWrap?.value as string ) && <AlignContentField /> }\n\t\t</>\n\t);\n};\n\nconst FlexChildFields = ( { parentStyleDirection }: { parentStyleDirection: string } ) => (\n\t<>\n\t\t<PanelDivider />\n\t\t<ControlFormLabel>{ __( 'Flex child', 'elementor' ) }</ControlFormLabel>\n\t\t<AlignSelfChild parentStyleDirection={ parentStyleDirection as FlexDirection } />\n\t\t<FlexOrderField />\n\t\t<FlexSizeField />\n\t</>\n);\n\nconst shouldDisplayFlexFields = ( display: StringPropValue | null, local: StringPropValue ) => {\n\tconst value = display?.value ?? local?.value;\n\n\tif ( ! value ) {\n\t\treturn false;\n\t}\n\n\treturn 'flex' === value || 'inline-flex' === value;\n};\n","import { __privateUseListenTo as useListenTo, commandEndEvent, windowEvent } from '@elementor/editor-v1-adapters';\n\nimport { type ExtendedWindow } from '../sync/types';\n\nexport function useComputedStyle( elementId: string | null ) {\n\treturn useListenTo(\n\t\t[\n\t\t\twindowEvent( 'elementor/device-mode/change' ),\n\t\t\tcommandEndEvent( 'document/elements/reset-style' ),\n\t\t\tcommandEndEvent( 'document/elements/settings' ),\n\t\t\tcommandEndEvent( 'document/elements/paste-style' ),\n\t\t],\n\t\t() => {\n\t\t\tif ( ! elementId ) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\tconst extendedWindow: ExtendedWindow = window;\n\t\t\tconst element = extendedWindow.elementor?.getContainer?.( elementId );\n\n\t\t\tif ( ! element?.view?.el ) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\tconst resp = window.getComputedStyle( element.view.el );\n\t\t\treturn resp;\n\t\t}\n\t);\n}\n","import * as React from 'react';\nimport { type ToggleButtonGroupItem, ToggleControl } from '@elementor/editor-controls';\nimport {\n\tJustifyBottomIcon,\n\tJustifyCenterIcon as CenterIcon,\n\tJustifyDistributeVerticalIcon as EvenlyIcon,\n\tJustifySpaceAroundVerticalIcon as AroundIcon,\n\tJustifySpaceBetweenVerticalIcon as BetweenIcon,\n\tJustifyTopIcon,\n} from '@elementor/icons';\nimport { DirectionProvider, Stack, ThemeProvider, withDirection } from '@elementor/ui';\nimport { __ } from '@wordpress/i18n';\n\nimport { StylesField } from '../../../controls-registry/styles-field';\nimport { useDirection } from '../../../hooks/use-direction';\nimport { ControlLabel } from '../../control-label';\nimport { RotatedIcon } from './utils/rotated-icon';\n\ntype AlignContent = 'start' | 'center' | 'end' | 'space-between' | 'space-around' | 'space-evenly';\n\nconst StartIcon = withDirection( JustifyTopIcon );\nconst EndIcon = withDirection( JustifyBottomIcon );\n\nconst iconProps = {\n\tisClockwise: false,\n\toffset: 0,\n\tdisableRotationForReversed: true,\n};\n\nconst options: ToggleButtonGroupItem< AlignContent >[] = [\n\t{\n\t\tvalue: 'start',\n\t\tlabel: __( 'Start', 'elementor' ),\n\t\trenderContent: ( { size } ) => <RotatedIcon icon={ StartIcon } size={ size } { ...iconProps } />,\n\t\tshowTooltip: true,\n\t},\n\t{\n\t\tvalue: 'center',\n\t\tlabel: __( 'Center', 'elementor' ),\n\t\trenderContent: ( { size } ) => <RotatedIcon icon={ CenterIcon } size={ size } { ...iconProps } />,\n\t\tshowTooltip: true,\n\t},\n\t{\n\t\tvalue: 'end',\n\t\tlabel: __( 'End', 'elementor' ),\n\t\trenderContent: ( { size } ) => <RotatedIcon icon={ EndIcon } size={ size } { ...iconProps } />,\n\t\tshowTooltip: true,\n\t},\n\t{\n\t\tvalue: 'space-between',\n\t\tlabel: __( 'Space between', 'elementor' ),\n\t\trenderContent: ( { size } ) => <RotatedIcon icon={ BetweenIcon } size={ size } { ...iconProps } />,\n\t\tshowTooltip: true,\n\t},\n\t{\n\t\tvalue: 'space-around',\n\t\tlabel: __( 'Space around', 'elementor' ),\n\t\trenderContent: ( { size } ) => <RotatedIcon icon={ AroundIcon } size={ size } { ...iconProps } />,\n\t\tshowTooltip: true,\n\t},\n\t{\n\t\tvalue: 'space-evenly',\n\t\tlabel: __( 'Space evenly', 'elementor' ),\n\t\trenderContent: ( { size } ) => <RotatedIcon icon={ EvenlyIcon } size={ size } { ...iconProps } />,\n\t\tshowTooltip: true,\n\t},\n];\n\nexport const AlignContentField = () => {\n\tconst { isSiteRtl } = useDirection();\n\n\treturn (\n\t\t<DirectionProvider rtl={ isSiteRtl }>\n\t\t\t<ThemeProvider>\n\t\t\t\t<StylesField bind=\"align-content\">\n\t\t\t\t\t<Stack gap={ 1 }>\n\t\t\t\t\t\t<ControlLabel>{ __( 'Align content', 'elementor' ) }</ControlLabel>\n\t\t\t\t\t\t<ToggleControl options={ options } fullWidth={ true } />\n\t\t\t\t\t</Stack>\n\t\t\t\t</StylesField>\n\t\t\t</ThemeProvider>\n\t\t</DirectionProvider>\n\t);\n};\n","import * as React from 'react';\nimport { useRef } from 'react';\nimport { type StringPropValue } from '@elementor/editor-props';\nimport { type ToggleButtonProps, useTheme } from '@elementor/ui';\n\nimport { useStylesField } from '../../../../hooks/use-styles-field';\nimport type { FlexDirection } from '../flex-direction-field';\n\ntype Props = {\n\ticon: React.JSX.ElementType;\n\tsize: ToggleButtonProps[ 'size' ];\n\tisClockwise?: boolean;\n\toffset?: number;\n\tdisableRotationForReversed?: boolean;\n};\n\nconst CLOCKWISE_ANGLES: Record< FlexDirection, number > = {\n\trow: 0,\n\tcolumn: 90,\n\t'row-reverse': 180,\n\t'column-reverse': 270,\n};\n\nconst COUNTER_CLOCKWISE_ANGLES: Record< FlexDirection, number > = {\n\trow: 0,\n\tcolumn: -90,\n\t'row-reverse': -180,\n\t'column-reverse': -270,\n};\n\nexport const RotatedIcon = ( {\n\ticon: Icon,\n\tsize,\n\tisClockwise = true,\n\toffset = 0,\n\tdisableRotationForReversed = false,\n}: Props ) => {\n\tconst rotate = useRef( useGetTargetAngle( isClockwise, offset, disableRotationForReversed ) );\n\n\trotate.current = useGetTargetAngle( isClockwise, offset, disableRotationForReversed, rotate );\n\n\treturn <Icon fontSize={ size } sx={ { transition: '.3s', rotate: `${ rotate.current }deg` } } />;\n};\n\nconst useGetTargetAngle = (\n\tisClockwise: boolean,\n\toffset: number,\n\tdisableRotationForReversed: boolean,\n\texistingRef?: React.MutableRefObject< number >\n) => {\n\tconst [ direction ] = useStylesField< StringPropValue >( 'flex-direction' );\n\tconst isRtl = 'rtl' === useTheme().direction;\n\tconst rotationMultiplier = isRtl ? -1 : 1;\n\tconst angleMap = isClockwise ? CLOCKWISE_ANGLES : COUNTER_CLOCKWISE_ANGLES;\n\n\tconst currentDirection = ( direction?.value as FlexDirection ) || 'row';\n\tconst currentAngle = existingRef ? existingRef.current * rotationMultiplier : angleMap[ currentDirection ] + offset;\n\tconst targetAngle = angleMap[ currentDirection ] + offset;\n\n\tconst diffToTargetAngle = ( targetAngle - currentAngle + 360 ) % 360;\n\tconst formattedDiff = ( ( diffToTargetAngle + 180 ) % 360 ) - 180;\n\n\tif ( disableRotationForReversed && [ 'row-reverse', 'column-reverse' ].includes( currentDirection ) ) {\n\t\treturn 0;\n\t}\n\n\treturn ( currentAngle + formattedDiff ) * rotationMultiplier;\n};\n","import * as React from 'react';\nimport { type ToggleButtonGroupItem, ToggleControl } from '@elementor/editor-controls';\nimport {\n\tLayoutAlignCenterIcon as CenterIcon,\n\tLayoutAlignLeftIcon,\n\tLayoutAlignRightIcon,\n\tLayoutDistributeVerticalIcon as JustifyIcon,\n} from '@elementor/icons';\nimport { DirectionProvider, Grid, ThemeProvider, withDirection } from '@elementor/ui';\nimport { __ } from '@wordpress/i18n';\n\nimport { StylesField } from '../../../controls-registry/styles-field';\nimport { useDirection } from '../../../hooks/use-direction';\nimport { ControlLabel } from '../../control-label';\nimport { RotatedIcon } from './utils/rotated-icon';\n\ntype AlignItems = 'start' | 'center' | 'end' | 'stretch';\n\nconst StartIcon = withDirection( LayoutAlignLeftIcon );\nconst EndIcon = withDirection( LayoutAlignRightIcon );\n\nconst iconProps = {\n\tisClockwise: false,\n\toffset: 90,\n};\n\nconst options: ToggleButtonGroupItem< AlignItems >[] = [\n\t{\n\t\tvalue: 'start',\n\t\tlabel: __( 'Start', 'elementor' ),\n\t\trenderContent: ( { size } ) => <RotatedIcon icon={ StartIcon } size={ size } { ...iconProps } />,\n\t\tshowTooltip: true,\n\t},\n\t{\n\t\tvalue: 'center',\n\t\tlabel: __( 'Center', 'elementor' ),\n\t\trenderContent: ( { size } ) => <RotatedIcon icon={ CenterIcon } size={ size } { ...iconProps } />,\n\t\tshowTooltip: true,\n\t},\n\t{\n\t\tvalue: 'end',\n\t\tlabel: __( 'End', 'elementor' ),\n\t\trenderContent: ( { size } ) => <RotatedIcon icon={ EndIcon } size={ size } { ...iconProps } />,\n\t\tshowTooltip: true,\n\t},\n\t{\n\t\tvalue: 'stretch',\n\t\tlabel: __( 'Stretch', 'elementor' ),\n\t\trenderContent: ( { size } ) => <RotatedIcon icon={ JustifyIcon } size={ size } { ...iconProps } />,\n\t\tshowTooltip: true,\n\t},\n];\n\nexport const AlignItemsField = () => {\n\tconst { isSiteRtl } = useDirection();\n\n\treturn (\n\t\t<DirectionProvider rtl={ isSiteRtl }>\n\t\t\t<ThemeProvider>\n\t\t\t\t<StylesField bind=\"align-items\">\n\t\t\t\t\t<Grid container gap={ 2 } alignItems=\"center\" flexWrap=\"nowrap\">\n\t\t\t\t\t\t<Grid item xs={ 6 }>\n\t\t\t\t\t\t\t<ControlLabel>{ __( 'Align items', 'elementor' ) }</ControlLabel>\n\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t<Grid item xs={ 6 } sx={ { display: 'flex', justifyContent: 'end' } }>\n\t\t\t\t\t\t\t<ToggleControl options={ options } />\n\t\t\t\t\t\t</Grid>\n\t\t\t\t\t</Grid>\n\t\t\t\t</StylesField>\n\t\t\t</ThemeProvider>\n\t\t</DirectionProvider>\n\t);\n};\n","import * as React from 'react';\nimport { ToggleControl } from '@elementor/editor-controls';\nimport {\n\tLayoutAlignCenterIcon as CenterIcon,\n\tLayoutAlignLeftIcon,\n\tLayoutAlignRightIcon,\n\tLayoutDistributeVerticalIcon as JustifyIcon,\n} from '@elementor/icons';\nimport { DirectionProvider, Grid, ThemeProvider, type ToggleButtonProps, withDirection } from '@elementor/ui';\nimport { __ } from '@wordpress/i18n';\n\nimport { StylesField } from '../../../controls-registry/styles-field';\nimport { useDirection } from '../../../hooks/use-direction';\nimport { ControlLabel } from '../../control-label';\nimport { type FlexDirection } from './flex-direction-field';\nimport { RotatedIcon } from './utils/rotated-icon';\n\nconst ALIGN_SELF_CHILD_OFFSET_MAP: Record< FlexDirection, number > = {\n\trow: 90,\n\t'row-reverse': 90,\n\tcolumn: 0,\n\t'column-reverse': 0,\n};\n\nconst StartIcon = withDirection( LayoutAlignLeftIcon );\nconst EndIcon = withDirection( LayoutAlignRightIcon );\n\nconst iconProps = {\n\tisClockwise: false,\n};\n\nconst getOptions = ( parentStyleDirection: FlexDirection ) => [\n\t{\n\t\tvalue: 'start',\n\t\tlabel: __( 'Start', 'elementor' ),\n\t\trenderContent: ( { size }: { size: ToggleButtonProps[ 'size' ] } ) => (\n\t\t\t<RotatedIcon\n\t\t\t\ticon={ StartIcon }\n\t\t\t\tsize={ size }\n\t\t\t\toffset={ ALIGN_SELF_CHILD_OFFSET_MAP[ parentStyleDirection ] }\n\t\t\t\t{ ...iconProps }\n\t\t\t/>\n\t\t),\n\t\tshowTooltip: true,\n\t},\n\t{\n\t\tvalue: 'center',\n\t\tlabel: __( 'Center', 'elementor' ),\n\t\trenderContent: ( { size }: { size: ToggleButtonProps[ 'size' ] } ) => (\n\t\t\t<RotatedIcon\n\t\t\t\ticon={ CenterIcon }\n\t\t\t\tsize={ size }\n\t\t\t\toffset={ ALIGN_SELF_CHILD_OFFSET_MAP[ parentStyleDirection ] }\n\t\t\t\t{ ...iconProps }\n\t\t\t/>\n\t\t),\n\t\tshowTooltip: true,\n\t},\n\t{\n\t\tvalue: 'end',\n\t\tlabel: __( 'End', 'elementor' ),\n\t\trenderContent: ( { size }: { size: ToggleButtonProps[ 'size' ] } ) => (\n\t\t\t<RotatedIcon\n\t\t\t\ticon={ EndIcon }\n\t\t\t\tsize={ size }\n\t\t\t\toffset={ ALIGN_SELF_CHILD_OFFSET_MAP[ parentStyleDirection ] }\n\t\t\t\t{ ...iconProps }\n\t\t\t/>\n\t\t),\n\t\tshowTooltip: true,\n\t},\n\t{\n\t\tvalue: 'stretch',\n\t\tlabel: __( 'Stretch', 'elementor' ),\n\t\trenderContent: ( { size }: { size: ToggleButtonProps[ 'size' ] } ) => (\n\t\t\t<RotatedIcon\n\t\t\t\ticon={ JustifyIcon }\n\t\t\t\tsize={ size }\n\t\t\t\toffset={ ALIGN_SELF_CHILD_OFFSET_MAP[ parentStyleDirection ] }\n\t\t\t\t{ ...iconProps }\n\t\t\t/>\n\t\t),\n\t\tshowTooltip: true,\n\t},\n];\n\nexport const AlignSelfChild = ( { parentStyleDirection }: { parentStyleDirection: FlexDirection } ) => {\n\tconst { isSiteRtl } = useDirection();\n\n\treturn (\n\t\t<DirectionProvider rtl={ isSiteRtl }>\n\t\t\t<ThemeProvider>\n\t\t\t\t<StylesField bind={ 'align-self' }>\n\t\t\t\t\t<Grid container gap={ 2 } alignItems=\"center\" flexWrap=\"nowrap\">\n\t\t\t\t\t\t<Grid item xs={ 6 }>\n\t\t\t\t\t\t\t<ControlLabel>{ __( 'Align self', 'elementor' ) }</ControlLabel>\n\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t<Grid item xs={ 6 } sx={ { display: 'flex', justifyContent: 'flex-end' } }>\n\t\t\t\t\t\t\t<ToggleControl options={ getOptions( parentStyleDirection as FlexDirection ) } />\n\t\t\t\t\t\t</Grid>\n\t\t\t\t\t</Grid>\n\t\t\t\t</StylesField>\n\t\t\t</ThemeProvider>\n\t\t</DirectionProvider>\n\t);\n};\n","import * as React from 'react';\nimport { type ToggleButtonGroupItem, ToggleControl } from '@elementor/editor-controls';\nimport { isExperimentActive } from '@elementor/editor-v1-adapters';\nimport { Stack } from '@elementor/ui';\nimport { __ } from '@wordpress/i18n';\n\nimport { useStylesInheritanceChain } from '../../../contexts/styles-inheritance-context';\nimport { StylesField } from '../../../controls-registry/styles-field';\nimport { EXPERIMENTAL_FEATURES } from '../../../sync/experiments-flags';\nimport { ControlLabel } from '../../control-label';\n\ntype Displays = 'block' | 'flex' | 'inline-block' | 'inline-flex' | 'none';\n\nconst displayFieldItems: ToggleButtonGroupItem< Displays >[] = [\n\t{\n\t\tvalue: 'block',\n\t\trenderContent: () => __( 'Block', 'elementor' ),\n\t\tlabel: __( 'Block', 'elementor' ),\n\t\tshowTooltip: true,\n\t},\n\t{\n\t\tvalue: 'flex',\n\t\trenderContent: () => __( 'Flex', 'elementor' ),\n\t\tlabel: __( 'Flex', 'elementor' ),\n\t\tshowTooltip: true,\n\t},\n\t{\n\t\tvalue: 'inline-block',\n\t\trenderContent: () => __( 'In-blk', 'elementor' ),\n\t\tlabel: __( 'Inline-block', 'elementor' ),\n\t\tshowTooltip: true,\n\t},\n];\n\nexport const DisplayField = () => {\n\tconst isDisplayNoneFeatureActive = isExperimentActive( EXPERIMENTAL_FEATURES.V_3_30 );\n\tconst items = [ ...displayFieldItems ];\n\n\tif ( isDisplayNoneFeatureActive ) {\n\t\titems.push( {\n\t\t\tvalue: 'none',\n\t\t\trenderContent: () => __( 'None', 'elementor' ),\n\t\t\tlabel: __( 'None', 'elementor' ),\n\t\t\tshowTooltip: true,\n\t\t} );\n\t}\n\n\titems.push( {\n\t\tvalue: 'inline-flex',\n\t\trenderContent: () => __( 'In-flx', 'elementor' ),\n\t\tlabel: __( 'Inline-flex', 'elementor' ),\n\t\tshowTooltip: true,\n\t} );\n\n\tconst placeholder = useDisplayPlaceholderValue();\n\n\treturn (\n\t\t<StylesField bind=\"display\" placeholder={ placeholder }>\n\t\t\t<Stack gap={ 0.75 }>\n\t\t\t\t<ControlLabel>{ __( 'Display', 'elementor' ) }</ControlLabel>\n\t\t\t\t<ToggleControl options={ items } maxItems={ 4 } fullWidth={ true } />\n\t\t\t</Stack>\n\t\t</StylesField>\n\t);\n};\n\n// TODO - placing this logic deliberately here, and will be removed once applied automatically to all style fields as part of ED-18491\nexport const useDisplayPlaceholderValue = () => useStylesInheritanceChain( [ 'display' ] )[ 0 ]?.value ?? undefined;\n","import * as React from 'react';\nimport { type ToggleButtonGroupItem, ToggleControl } from '@elementor/editor-controls';\nimport { ArrowDownSmallIcon, ArrowLeftIcon, ArrowRightIcon, ArrowUpSmallIcon } from '@elementor/icons';\nimport { DirectionProvider, Grid, ThemeProvider, withDirection } from '@elementor/ui';\nimport { __ } from '@wordpress/i18n';\n\nimport { StylesField } from '../../../controls-registry/styles-field';\nimport { useDirection } from '../../../hooks/use-direction';\nimport { ControlLabel } from '../../control-label';\n\nexport type FlexDirection = 'row' | 'row-reverse' | 'column' | 'column-reverse';\n\nconst options: ToggleButtonGroupItem< FlexDirection >[] = [\n\t{\n\t\tvalue: 'row',\n\t\tlabel: __( 'Row', 'elementor' ),\n\t\trenderContent: ( { size } ) => {\n\t\t\tconst StartIcon = withDirection( ArrowRightIcon );\n\t\t\treturn <StartIcon fontSize={ size } />;\n\t\t},\n\t\tshowTooltip: true,\n\t},\n\t{\n\t\tvalue: 'column',\n\t\tlabel: __( 'Column', 'elementor' ),\n\t\trenderContent: ( { size } ) => <ArrowDownSmallIcon fontSize={ size } />,\n\t\tshowTooltip: true,\n\t},\n\t{\n\t\tvalue: 'row-reverse',\n\t\tlabel: __( 'Reversed row', 'elementor' ),\n\t\trenderContent: ( { size } ) => {\n\t\t\tconst EndIcon = withDirection( ArrowLeftIcon );\n\t\t\treturn <EndIcon fontSize={ size } />;\n\t\t},\n\t\tshowTooltip: true,\n\t},\n\t{\n\t\tvalue: 'column-reverse',\n\t\tlabel: __( 'Reversed column', 'elementor' ),\n\t\trenderContent: ( { size } ) => <ArrowUpSmallIcon fontSize={ size } />,\n\t\tshowTooltip: true,\n\t},\n];\n\nexport const FlexDirectionField = () => {\n\tconst { isSiteRtl } = useDirection();\n\n\treturn (\n\t\t<DirectionProvider rtl={ isSiteRtl }>\n\t\t\t<ThemeProvider>\n\t\t\t\t<StylesField bind=\"flex-direction\">\n\t\t\t\t\t<Grid container gap={ 2 } alignItems=\"center\" flexWrap=\"nowrap\">\n\t\t\t\t\t\t<Grid item xs={ 6 }>\n\t\t\t\t\t\t\t<ControlLabel>{ __( 'Direction', 'elementor' ) }</ControlLabel>\n\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t<Grid item xs={ 6 } sx={ { display: 'flex', justifyContent: 'end' } }>\n\t\t\t\t\t\t\t<ToggleControl options={ options } />\n\t\t\t\t\t\t</Grid>\n\t\t\t\t\t</Grid>\n\t\t\t\t</StylesField>\n\t\t\t</ThemeProvider>\n\t\t</DirectionProvider>\n\t);\n};\n","import * as React from 'react';\nimport { useState } from 'react';\nimport { ControlToggleButtonGroup, NumberControl, type ToggleButtonGroupItem } from '@elementor/editor-controls';\nimport { type NumberPropValue } from '@elementor/editor-props';\nimport { ArrowDownSmallIcon, ArrowUpSmallIcon, PencilIcon } from '@elementor/icons';\nimport { DirectionProvider, Grid, ThemeProvider } from '@elementor/ui';\nimport { __ } from '@wordpress/i18n';\n\nimport { useStyle } from '../../../contexts/style-context';\nimport { StylesField } from '../../../controls-registry/styles-field';\nimport { useDirection } from '../../../hooks/use-direction';\nimport { useStylesField } from '../../../hooks/use-styles-field';\nimport { ControlLabel } from '../../control-label';\nimport { SectionContent } from '../../section-content';\n\ntype GroupControlItemOption = 'first' | 'last' | 'custom';\n\nexport const FIRST_DEFAULT_VALUE = -99999;\nexport const LAST_DEFAULT_VALUE = 99999;\nconst FIRST = 'first';\nconst LAST = 'last';\nconst CUSTOM = 'custom';\n\nconst orderValueMap = {\n\t[ FIRST ]: FIRST_DEFAULT_VALUE,\n\t[ LAST ]: LAST_DEFAULT_VALUE,\n};\n\nconst items: ToggleButtonGroupItem< GroupControlItemOption >[] = [\n\t{\n\t\tvalue: FIRST,\n\t\tlabel: __( 'First', 'elementor' ),\n\t\trenderContent: ( { size } ) => <ArrowUpSmallIcon fontSize={ size } />,\n\t\tshowTooltip: true,\n\t},\n\t{\n\t\tvalue: LAST,\n\t\tlabel: __( 'Last', 'elementor' ),\n\t\trenderContent: ( { size } ) => <ArrowDownSmallIcon fontSize={ size } />,\n\t\tshowTooltip: true,\n\t},\n\t{\n\t\tvalue: CUSTOM,\n\t\tlabel: __( 'Custom', 'elementor' ),\n\t\trenderContent: ( { size } ) => <PencilIcon fontSize={ size } />,\n\t\tshowTooltip: true,\n\t},\n];\n\nexport const FlexOrderField = () => {\n\tconst { isSiteRtl } = useDirection();\n\tconst [ order, setOrder ] = useStylesField< NumberPropValue | null >( 'order' );\n\tconst { canEdit } = useStyle();\n\n\tconst [ groupControlValue, setGroupControlValue ] = useState( getGroupControlValue( order?.value || null ) );\n\n\tconst handleToggleButtonChange = ( group: GroupControlItemOption | null ) => {\n\t\tsetGroupControlValue( group );\n\n\t\tif ( ! group || group === CUSTOM ) {\n\t\t\tsetOrder( null );\n\n\t\t\treturn;\n\t\t}\n\n\t\tsetOrder( { $$type: 'number', value: orderValueMap[ group ] } );\n\t};\n\n\treturn (\n\t\t<DirectionProvider rtl={ isSiteRtl }>\n\t\t\t<ThemeProvider>\n\t\t\t\t<StylesField bind={ 'order' }>\n\t\t\t\t\t<SectionContent>\n\t\t\t\t\t\t<Grid container gap={ 2 } alignItems=\"center\" flexWrap=\"nowrap\">\n\t\t\t\t\t\t\t<Grid item xs={ 6 }>\n\t\t\t\t\t\t\t\t<ControlLabel>{ __( 'Order', 'elementor' ) }</ControlLabel>\n\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t\t<Grid item xs={ 6 } sx={ { display: 'flex', justifyContent: 'end' } }>\n\t\t\t\t\t\t\t\t<ControlToggleButtonGroup\n\t\t\t\t\t\t\t\t\titems={ items }\n\t\t\t\t\t\t\t\t\tvalue={ groupControlValue }\n\t\t\t\t\t\t\t\t\tonChange={ handleToggleButtonChange }\n\t\t\t\t\t\t\t\t\texclusive={ true }\n\t\t\t\t\t\t\t\t\tdisabled={ ! canEdit }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t</Grid>\n\n\t\t\t\t\t\t{ CUSTOM === groupControlValue && (\n\t\t\t\t\t\t\t<Grid container gap={ 2 } alignItems=\"center\" flexWrap=\"nowrap\">\n\t\t\t\t\t\t\t\t<Grid item xs={ 6 }>\n\t\t\t\t\t\t\t\t\t<ControlLabel>{ __( 'Custom order', 'elementor' ) }</ControlLabel>\n\t\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t\t\t<Grid item xs={ 6 } sx={ { display: 'flex', justifyContent: 'end' } }>\n\t\t\t\t\t\t\t\t\t<NumberControl\n\t\t\t\t\t\t\t\t\t\tmin={ FIRST_DEFAULT_VALUE + 1 }\n\t\t\t\t\t\t\t\t\t\tmax={ LAST_DEFAULT_VALUE - 1 }\n\t\t\t\t\t\t\t\t\t\tshouldForceInt={ true }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</SectionContent>\n\t\t\t\t</StylesField>\n\t\t\t</ThemeProvider>\n\t\t</DirectionProvider>\n\t);\n};\n\nconst getGroupControlValue = ( order: number | null ): GroupControlItemOption | null => {\n\tif ( LAST_DEFAULT_VALUE === order ) {\n\t\treturn LAST;\n\t}\n\n\tif ( FIRST_DEFAULT_VALUE === order ) {\n\t\treturn FIRST;\n\t}\n\n\treturn 0 === order || order ? CUSTOM : null;\n};\n","import * as React from 'react';\nimport { useMemo, useState } from 'react';\nimport {\n\tControlToggleButtonGroup,\n\tNumberControl,\n\tSizeControl,\n\ttype ToggleButtonGroupItem,\n} from '@elementor/editor-controls';\nimport { numberPropTypeUtil, type NumberPropValue, type SizePropValue } from '@elementor/editor-props';\nimport { ExpandIcon, PencilIcon, ShrinkIcon } from '@elementor/icons';\nimport { DirectionProvider, Grid, ThemeProvider } from '@elementor/ui';\nimport { __ } from '@wordpress/i18n';\n\nimport { useStyle } from '../../../contexts/style-context';\nimport { StylesField } from '../../../controls-registry/styles-field';\nimport { useDirection } from '../../../hooks/use-direction';\nimport { useStylesFields } from '../../../hooks/use-styles-fields';\nimport { ControlLabel } from '../../control-label';\nimport { SectionContent } from '../../section-content';\n\ntype GroupItem = 'flex-grow' | 'flex-shrink' | 'custom';\n\nconst DEFAULT = 1;\n\nconst items: ToggleButtonGroupItem< GroupItem >[] = [\n\t{\n\t\tvalue: 'flex-grow',\n\t\tlabel: __( 'Grow', 'elementor' ),\n\t\trenderContent: ( { size } ) => <ExpandIcon fontSize={ size } />,\n\t\tshowTooltip: true,\n\t},\n\t{\n\t\tvalue: 'flex-shrink',\n\t\tlabel: __( 'Shrink', 'elementor' ),\n\t\trenderContent: ( { size } ) => <ShrinkIcon fontSize={ size } />,\n\t\tshowTooltip: true,\n\t},\n\t{\n\t\tvalue: 'custom',\n\t\tlabel: __( 'Custom', 'elementor' ),\n\t\trenderContent: ( { size } ) => <PencilIcon fontSize={ size } />,\n\t\tshowTooltip: true,\n\t},\n];\n\nexport const FlexSizeField = () => {\n\tconst { isSiteRtl } = useDirection();\n\tconst { canEdit } = useStyle();\n\n\tconst [ fields, setFields ] = useStylesFields< {\n\t\t'flex-grow': NumberPropValue | null;\n\t\t'flex-shrink': NumberPropValue | null;\n\t\t'flex-basis': SizePropValue | null;\n\t} >( [ 'flex-grow', 'flex-shrink', 'flex-basis' ] );\n\n\tconst grow = fields?.[ 'flex-grow' ]?.value || null;\n\tconst shrink = fields?.[ 'flex-shrink' ]?.value || null;\n\tconst basis = fields?.[ 'flex-basis' ]?.value || null;\n\n\tconst currentGroup = useMemo( () => getActiveGroup( { grow, shrink, basis } ), [ grow, shrink, basis ] ),\n\t\t[ activeGroup, setActiveGroup ] = useState( currentGroup );\n\n\tconst onChangeGroup = ( group: GroupItem | null = null ) => {\n\t\tsetActiveGroup( group );\n\n\t\tif ( ! group || group === 'custom' ) {\n\t\t\tsetFields( {\n\t\t\t\t'flex-basis': null,\n\t\t\t\t'flex-grow': null,\n\t\t\t\t'flex-shrink': null,\n\t\t\t} );\n\n\t\t\treturn;\n\t\t}\n\n\t\tif ( group === 'flex-grow' ) {\n\t\t\tsetFields( {\n\t\t\t\t'flex-basis': null,\n\t\t\t\t'flex-grow': numberPropTypeUtil.create( DEFAULT ),\n\t\t\t\t'flex-shrink': null,\n\t\t\t} );\n\n\t\t\treturn;\n\t\t}\n\n\t\tsetFields( {\n\t\t\t'flex-basis': null,\n\t\t\t'flex-grow': null,\n\t\t\t'flex-shrink': numberPropTypeUtil.create( DEFAULT ),\n\t\t} );\n\t};\n\n\treturn (\n\t\t<DirectionProvider rtl={ isSiteRtl }>\n\t\t\t<ThemeProvider>\n\t\t\t\t<SectionContent>\n\t\t\t\t\t<Grid container gap={ 2 } alignItems=\"center\" flexWrap=\"nowrap\">\n\t\t\t\t\t\t<StylesField bind={ activeGroup ?? '' }>\n\t\t\t\t\t\t\t<Grid item xs={ 6 }>\n\t\t\t\t\t\t\t\t<ControlLabel>{ __( 'Size', 'elementor' ) }</ControlLabel>\n\t\t\t\t\t\t\t</Grid>\n\n\t\t\t\t\t\t\t<Grid item xs={ 6 } sx={ { display: 'flex', justifyContent: 'end' } }>\n\t\t\t\t\t\t\t\t<ControlToggleButtonGroup\n\t\t\t\t\t\t\t\t\tvalue={ activeGroup }\n\t\t\t\t\t\t\t\t\tonChange={ onChangeGroup }\n\t\t\t\t\t\t\t\t\tdisabled={ ! canEdit }\n\t\t\t\t\t\t\t\t\titems={ items }\n\t\t\t\t\t\t\t\t\texclusive={ true }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t</StylesField>\n\t\t\t\t\t</Grid>\n\t\t\t\t\t{ 'custom' === activeGroup && <FlexCustomField /> }\n\t\t\t\t</SectionContent>\n\t\t\t</ThemeProvider>\n\t\t</DirectionProvider>\n\t);\n};\n\nconst FlexCustomField = () => (\n\t<>\n\t\t<StylesField bind={ 'flex-grow' }>\n\t\t\t<Grid container gap={ 2 } alignItems=\"center\" flexWrap=\"nowrap\">\n\t\t\t\t<Grid item xs={ 6 }>\n\t\t\t\t\t<ControlLabel>{ __( 'Grow', 'elementor' ) }</ControlLabel>\n\t\t\t\t</Grid>\n\t\t\t\t<Grid item xs={ 6 } sx={ { display: 'flex', justifyContent: 'end' } }>\n\t\t\t\t\t<NumberControl min={ 0 } shouldForceInt={ true } />\n\t\t\t\t</Grid>\n\t\t\t</Grid>\n\t\t</StylesField>\n\t\t<StylesField bind={ 'flex-shrink' }>\n\t\t\t<Grid container gap={ 2 } alignItems=\"center\" flexWrap=\"nowrap\">\n\t\t\t\t<Grid item xs={ 6 }>\n\t\t\t\t\t<ControlLabel>{ __( 'Shrink', 'elementor' ) }</ControlLabel>\n\t\t\t\t</Grid>\n\t\t\t\t<Grid item xs={ 6 } sx={ { display: 'flex', justifyContent: 'end' } }>\n\t\t\t\t\t<NumberControl min={ 0 } shouldForceInt={ true } />\n\t\t\t\t</Grid>\n\t\t\t</Grid>\n\t\t</StylesField>\n\t\t<StylesField bind={ 'flex-basis' }>\n\t\t\t<Grid container gap={ 2 } alignItems=\"center\" flexWrap=\"nowrap\">\n\t\t\t\t<Grid item xs={ 6 }>\n\t\t\t\t\t<ControlLabel>{ __( 'Basis', 'elementor' ) }</ControlLabel>\n\t\t\t\t</Grid>\n\t\t\t\t<Grid item xs={ 6 } sx={ { display: 'flex', justifyContent: 'end' } }>\n\t\t\t\t\t<SizeControl extendedValues={ [ 'auto' ] } />\n\t\t\t\t</Grid>\n\t\t\t</Grid>\n\t\t</StylesField>\n\t</>\n);\n\nconst getActiveGroup = ( {\n\tgrow,\n\tshrink,\n\tbasis,\n}: {\n\tgrow: NumberPropValue[ 'value' ] | null;\n\tshrink: NumberPropValue[ 'value' ] | null;\n\tbasis: SizePropValue[ 'value' ] | null;\n} ): GroupItem | null => {\n\tif ( null === grow && null === shrink && ! basis ) {\n\t\treturn null;\n\t}\n\n\tif ( ( shrink && grow ) || basis ) {\n\t\treturn 'custom';\n\t}\n\n\tif ( grow === DEFAULT ) {\n\t\treturn 'flex-grow';\n\t}\n\n\tif ( shrink === DEFAULT ) {\n\t\treturn 'flex-shrink';\n\t}\n\n\treturn 'custom';\n};\n","import * as React from 'react';\nimport { GapControl } from '@elementor/editor-controls';\nimport { Stack } from '@elementor/ui';\nimport { __ } from '@wordpress/i18n';\n\nimport { StylesField } from '../../../controls-registry/styles-field';\n\nexport const GapControlField = () => {\n\treturn (\n\t\t<Stack gap={ 1 }>\n\t\t\t<StylesField bind={ 'gap' }>\n\t\t\t\t<GapControl label={ __( 'Gaps', 'elementor' ) } />\n\t\t\t</StylesField>\n\t\t</Stack>\n\t);\n};\n","import * as React from 'react';\nimport { type ToggleButtonGroupItem, ToggleControl } from '@elementor/editor-controls';\nimport {\n\tJustifyBottomIcon,\n\tJustifyCenterIcon as CenterIcon,\n\tJustifyDistributeVerticalIcon as EvenlyIcon,\n\tJustifySpaceAroundVerticalIcon as AroundIcon,\n\tJustifySpaceBetweenVerticalIcon as BetweenIcon,\n\tJustifyTopIcon,\n} from '@elementor/icons';\nimport { DirectionProvider, Stack, ThemeProvider, withDirection } from '@elementor/ui';\nimport { __ } from '@wordpress/i18n';\n\nimport { StylesField } from '../../../controls-registry/styles-field';\nimport { useDirection } from '../../../hooks/use-direction';\nimport { ControlLabel } from '../../control-label';\nimport { RotatedIcon } from './utils/rotated-icon';\n\ntype JustifyContent = 'flex-start' | 'center' | 'flex-end' | 'space-between' | 'space-around' | 'space-evenly';\n\nconst StartIcon = withDirection( JustifyTopIcon );\nconst EndIcon = withDirection( JustifyBottomIcon );\n\nconst iconProps = {\n\tisClockwise: true,\n\toffset: -90,\n};\n\nconst options: ToggleButtonGroupItem< JustifyContent >[] = [\n\t{\n\t\tvalue: 'flex-start',\n\t\tlabel: __( 'Start', 'elementor' ),\n\t\trenderContent: ( { size } ) => <RotatedIcon icon={ StartIcon } size={ size } { ...iconProps } />,\n\t\tshowTooltip: true,\n\t},\n\t{\n\t\tvalue: 'center',\n\t\tlabel: __( 'Center', 'elementor' ),\n\t\trenderContent: ( { size } ) => <RotatedIcon icon={ CenterIcon } size={ size } { ...iconProps } />,\n\t\tshowTooltip: true,\n\t},\n\t{\n\t\tvalue: 'flex-end',\n\t\tlabel: __( 'End', 'elementor' ),\n\t\trenderContent: ( { size } ) => <RotatedIcon icon={ EndIcon } size={ size } { ...iconProps } />,\n\t\tshowTooltip: true,\n\t},\n\t{\n\t\tvalue: 'space-between',\n\t\tlabel: __( 'Space between', 'elementor' ),\n\t\trenderContent: ( { size } ) => <RotatedIcon icon={ BetweenIcon } size={ size } { ...iconProps } />,\n\t\tshowTooltip: true,\n\t},\n\t{\n\t\tvalue: 'space-around',\n\t\tlabel: __( 'Space around', 'elementor' ),\n\t\trenderContent: ( { size } ) => <RotatedIcon icon={ AroundIcon } size={ size } { ...iconProps } />,\n\t\tshowTooltip: true,\n\t},\n\t{\n\t\tvalue: 'space-evenly',\n\t\tlabel: __( 'Space evenly', 'elementor' ),\n\t\trenderContent: ( { size } ) => <RotatedIcon icon={ EvenlyIcon } size={ size } { ...iconProps } />,\n\t\tshowTooltip: true,\n\t},\n];\n\nexport const JustifyContentField = () => {\n\tconst { isSiteRtl } = useDirection();\n\n\treturn (\n\t\t<DirectionProvider rtl={ isSiteRtl }>\n\t\t\t<ThemeProvider>\n\t\t\t\t<StylesField bind=\"justify-content\">\n\t\t\t\t\t<Stack gap={ 0.75 }>\n\t\t\t\t\t\t<ControlLabel>{ __( 'Justify content', 'elementor' ) }</ControlLabel>\n\t\t\t\t\t\t<ToggleControl options={ options } fullWidth={ true } />\n\t\t\t\t\t</Stack>\n\t\t\t\t</StylesField>\n\t\t\t</ThemeProvider>\n\t\t</DirectionProvider>\n\t);\n};\n","import * as React from 'react';\nimport { type ToggleButtonGroupItem, ToggleControl } from '@elementor/editor-controls';\nimport { ArrowBackIcon, ArrowForwardIcon, ArrowRightIcon } from '@elementor/icons';\nimport { DirectionProvider, Grid, ThemeProvider } from '@elementor/ui';\nimport { __ } from '@wordpress/i18n';\n\nimport { StylesField } from '../../../controls-registry/styles-field';\nimport { useDirection } from '../../../hooks/use-direction';\nimport { ControlLabel } from '../../control-label';\n\ntype FlexWrap = 'nowrap' | 'wrap' | 'wrap-reverse';\n\nconst options: ToggleButtonGroupItem< FlexWrap >[] = [\n\t{\n\t\tvalue: 'nowrap',\n\t\tlabel: __( 'No wrap', 'elementor' ),\n\t\trenderContent: ( { size } ) => <ArrowRightIcon fontSize={ size } />,\n\t\tshowTooltip: true,\n\t},\n\t{\n\t\tvalue: 'wrap',\n\t\tlabel: __( 'Wrap', 'elementor' ),\n\t\trenderContent: ( { size } ) => <ArrowBackIcon fontSize={ size } />,\n\t\tshowTooltip: true,\n\t},\n\t{\n\t\tvalue: 'wrap-reverse',\n\t\tlabel: __( 'Reversed wrap', 'elementor' ),\n\t\trenderContent: ( { size } ) => <ArrowForwardIcon fontSize={ size } />,\n\t\tshowTooltip: true,\n\t},\n];\n\nexport const WrapField = () => {\n\tconst { isSiteRtl } = useDirection();\n\n\treturn (\n\t\t<DirectionProvider rtl={ isSiteRtl }>\n\t\t\t<ThemeProvider>\n\t\t\t\t<StylesField bind={ 'flex-wrap' }>\n\t\t\t\t\t<Grid container gap={ 2 } alignItems=\"center\" flexWrap=\"nowrap\">\n\t\t\t\t\t\t<Grid item xs={ 6 }>\n\t\t\t\t\t\t\t<ControlLabel>{ __( 'Wrap', 'elementor' ) }</ControlLabel>\n\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t<Grid item xs={ 6 } sx={ { display: 'flex', justifyContent: 'flex-end' } }>\n\t\t\t\t\t\t\t<ToggleControl options={ options } />\n\t\t\t\t\t\t</Grid>\n\t\t\t\t\t</Grid>\n\t\t\t\t</StylesField>\n\t\t\t</ThemeProvider>\n\t\t</DirectionProvider>\n\t);\n};\n","import * as React from 'react';\nimport { type StringPropValue } from '@elementor/editor-props';\nimport { isExperimentActive } from '@elementor/editor-v1-adapters';\nimport { useSessionStorage } from '@elementor/session';\n\nimport { useStyle } from '../../../contexts/style-context';\nimport { useStylesField } from '../../../hooks/use-styles-field';\nimport { useStylesFields } from '../../../hooks/use-styles-fields';\nimport { PanelDivider } from '../../panel-divider';\nimport { SectionContent } from '../../section-content';\nimport { DimensionsField } from './dimensions-field';\nimport { OffsetField } from './offset-field';\nimport { PositionField } from './position-field';\nimport { ZIndexField } from './z-index-field';\n\ntype DimensionValue =\n\t| {\n\t\t\t$$type: 'size';\n\t\t\tvalue: number;\n\t }\n\t| undefined\n\t| null;\n\ntype DimensionsValues = {\n\t'inset-block-start': DimensionValue;\n\t'inset-block-end': DimensionValue;\n\t'inset-inline-start': DimensionValue;\n\t'inset-inline-end': DimensionValue;\n};\n\nexport const PositionSection = () => {\n\tconst [ positionValue ] = useStylesField< StringPropValue >( 'position' );\n\tconst [ dimensionsValues, setDimensionsValues ] = useStylesFields< DimensionsValues >( [\n\t\t'inset-block-start',\n\t\t'inset-block-end',\n\t\t'inset-inline-start',\n\t\t'inset-inline-end',\n\t] );\n\n\tconst [ dimensionsValuesFromHistory, updateDimensionsHistory, clearDimensionsHistory ] = usePersistDimensions();\n\tconst isCssIdFeatureActive = isExperimentActive( 'e_v_3_30' );\n\n\tconst onPositionChange = ( newPosition: string | null, previousPosition: string | null | undefined ) => {\n\t\tif ( newPosition === 'static' ) {\n\t\t\tif ( dimensionsValues ) {\n\t\t\t\tupdateDimensionsHistory( dimensionsValues );\n\t\t\t\tsetDimensionsValues( {\n\t\t\t\t\t'inset-block-start': undefined,\n\t\t\t\t\t'inset-block-end': undefined,\n\t\t\t\t\t'inset-inline-start': undefined,\n\t\t\t\t\t'inset-inline-end': undefined,\n\t\t\t\t} );\n\t\t\t}\n\t\t} else if ( previousPosition === 'static' ) {\n\t\t\tif ( dimensionsValuesFromHistory ) {\n\t\t\t\tsetDimensionsValues( dimensionsValuesFromHistory );\n\t\t\t\tclearDimensionsHistory();\n\t\t\t}\n\t\t}\n\t};\n\n\tconst isNotStatic = positionValue && positionValue?.value !== 'static';\n\n\treturn (\n\t\t<SectionContent>\n\t\t\t<PositionField onChange={ onPositionChange } />\n\t\t\t{ isNotStatic ? (\n\t\t\t\t<>\n\t\t\t\t\t<DimensionsField />\n\t\t\t\t\t<ZIndexField />\n\t\t\t\t</>\n\t\t\t) : null }\n\n\t\t\t{ isCssIdFeatureActive && (\n\t\t\t\t<>\n\t\t\t\t\t<PanelDivider />\n\t\t\t\t\t<OffsetField />\n\t\t\t\t</>\n\t\t\t) }\n\t\t</SectionContent>\n\t);\n};\n\nconst usePersistDimensions = () => {\n\tconst { id: styleDefID, meta } = useStyle();\n\tconst styleVariantPath = `styles/${ styleDefID }/${ meta.breakpoint || 'desktop' }/${ meta.state || 'null' }`;\n\tconst dimensionsPath = `${ styleVariantPath }/dimensions`;\n\n\treturn useSessionStorage< DimensionsValues >( dimensionsPath );\n};\n","import * as React from 'react';\nimport { SizeControl } from '@elementor/editor-controls';\nimport { SideBottomIcon, SideLeftIcon, SideRightIcon, SideTopIcon } from '@elementor/icons';\nimport { Grid, Stack, withDirection } from '@elementor/ui';\nimport { __ } from '@wordpress/i18n';\n\nimport { StylesField } from '../../../controls-registry/styles-field';\nimport { useDirection } from '../../../hooks/use-direction';\nimport { ControlLabel } from '../../control-label';\nimport { RotatedIcon } from '../layout-section/utils/rotated-icon';\n\ntype Side = 'inset-inline-start' | 'inset-inline-end' | 'inset-block-start' | 'inset-block-end';\n\nconst InlineStartIcon = withDirection( SideLeftIcon );\nconst InlineEndIcon = withDirection( SideRightIcon );\n\nconst sideIcons = {\n\t'inset-block-start': <SideTopIcon fontSize={ 'tiny' } />,\n\t'inset-block-end': <SideBottomIcon fontSize={ 'tiny' } />,\n\t'inset-inline-start': <RotatedIcon icon={ InlineStartIcon } size=\"tiny\" />,\n\t'inset-inline-end': <RotatedIcon icon={ InlineEndIcon } size=\"tiny\" />,\n};\n\nconst getInlineStartLabel = ( isSiteRtl: boolean ) =>\n\tisSiteRtl ? __( 'Right', 'elementor' ) : __( 'Left', 'elementor' );\n\nconst getInlineEndLabel = ( isSiteRtl: boolean ) =>\n\tisSiteRtl ? __( 'Left', 'elementor' ) : __( 'Right', 'elementor' );\n\nexport const DimensionsField = () => {\n\tconst { isSiteRtl } = useDirection();\n\n\treturn (\n\t\t<>\n\t\t\t<Stack direction=\"row\" gap={ 2 } flexWrap=\"nowrap\">\n\t\t\t\t<DimensionField side=\"inset-block-start\" label={ __( 'Top', 'elementor' ) } />\n\t\t\t\t<DimensionField side=\"inset-inline-end\" label={ getInlineEndLabel( isSiteRtl ) } />\n\t\t\t</Stack>\n\t\t\t<Stack direction=\"row\" gap={ 2 } flexWrap=\"nowrap\">\n\t\t\t\t<DimensionField side=\"inset-block-end\" label={ __( 'Bottom', 'elementor' ) } />\n\t\t\t\t<DimensionField side=\"inset-inline-start\" label={ getInlineStartLabel( isSiteRtl ) } />\n\t\t\t</Stack>\n\t\t</>\n\t);\n};\nconst DimensionField = ( { side, label }: { side: Side; label: string } ) => {\n\treturn (\n\t\t<Grid container gap={ 0.75 } alignItems=\"center\">\n\t\t\t<Grid item xs={ 12 }>\n\t\t\t\t<ControlLabel>{ label }</ControlLabel>\n\t\t\t</Grid>\n\t\t\t<Grid item xs={ 12 }>\n\t\t\t\t<StylesField bind={ side }>\n\t\t\t\t\t<SizeControl startIcon={ sideIcons[ side ] } extendedValues={ [ 'auto' ] } />\n\t\t\t\t</StylesField>\n\t\t\t</Grid>\n\t\t</Grid>\n\t);\n};\n","import * as React from 'react';\nimport { SizeControl } from '@elementor/editor-controls';\nimport { Grid } from '@elementor/ui';\nimport { __ } from '@wordpress/i18n';\n\nimport { StylesField } from '../../../controls-registry/styles-field';\nimport { ControlLabel } from '../../control-label';\n\nexport const OffsetField = () => {\n\treturn (\n\t\t<StylesField bind=\"scroll-margin-top\">\n\t\t\t<Grid container gap={ 2 } alignItems=\"center\" flexWrap=\"nowrap\">\n\t\t\t\t<Grid item xs={ 6 }>\n\t\t\t\t\t<ControlLabel>{ __( 'Anchor offset', 'elementor' ) }</ControlLabel>\n\t\t\t\t</Grid>\n\t\t\t\t<Grid item xs={ 6 }>\n\t\t\t\t\t<SizeControl units={ [ 'px', 'em', 'rem', 'vw', 'vh' ] } />\n\t\t\t\t</Grid>\n\t\t\t</Grid>\n\t\t</StylesField>\n\t);\n};\n","import * as React from 'react';\nimport { SelectControl } from '@elementor/editor-controls';\nimport { Grid } from '@elementor/ui';\nimport { __ } from '@wordpress/i18n';\n\nimport { StylesField } from '../../../controls-registry/styles-field';\nimport { ControlLabel } from '../../control-label';\n\nconst positionOptions = [\n\t{ label: __( 'Static', 'elementor' ), value: 'static' },\n\t{ label: __( 'Relative', 'elementor' ), value: 'relative' },\n\t{ label: __( 'Absolute', 'elementor' ), value: 'absolute' },\n\t{ label: __( 'Fixed', 'elementor' ), value: 'fixed' },\n\t{ label: __( 'Sticky', 'elementor' ), value: 'sticky' },\n];\n\ntype Props = {\n\tonChange?: ( newValue: string | null, previousValue: string | null | undefined ) => void;\n};\n\nexport const PositionField = ( { onChange }: Props ) => {\n\treturn (\n\t\t<StylesField bind=\"position\">\n\t\t\t<Grid container gap={ 2 } alignItems=\"center\" flexWrap=\"nowrap\">\n\t\t\t\t<Grid item xs={ 6 }>\n\t\t\t\t\t<ControlLabel>{ __( 'Position', 'elementor' ) }</ControlLabel>\n\t\t\t\t</Grid>\n\t\t\t\t<Grid item xs={ 6 } sx={ { overflow: 'hidden' } }>\n\t\t\t\t\t<SelectControl options={ positionOptions } onChange={ onChange } />\n\t\t\t\t</Grid>\n\t\t\t</Grid>\n\t\t</StylesField>\n\t);\n};\n","import * as React from 'react';\nimport { NumberControl } from '@elementor/editor-controls';\nimport { Grid } from '@elementor/ui';\nimport { __ } from '@wordpress/i18n';\n\nimport { StylesField } from '../../../controls-registry/styles-field';\nimport { ControlLabel } from '../../control-label';\n\nexport const ZIndexField = () => {\n\treturn (\n\t\t<StylesField bind=\"z-index\">\n\t\t\t<Grid container gap={ 2 } alignItems=\"center\" flexWrap=\"nowrap\">\n\t\t\t\t<Grid item xs={ 6 }>\n\t\t\t\t\t<ControlLabel>{ __( 'Z-index', 'elementor' ) }</ControlLabel>\n\t\t\t\t</Grid>\n\t\t\t\t<Grid item xs={ 6 }>\n\t\t\t\t\t<NumberControl />\n\t\t\t\t</Grid>\n\t\t\t</Grid>\n\t\t</StylesField>\n\t);\n};\n","import * as React from 'react';\nimport { AspectRatioControl, type ExtendedValue, SizeControl } from '@elementor/editor-controls';\nimport type { StringPropValue } from '@elementor/editor-props';\nimport { isExperimentActive } from '@elementor/editor-v1-adapters';\nimport { Grid, Stack } from '@elementor/ui';\nimport { __ } from '@wordpress/i18n';\n\nimport { StylesField, type StylesFieldProps } from '../../../controls-registry/styles-field';\nimport { useStylesField } from '../../../hooks/use-styles-field';\nimport { CollapsibleContent } from '../../collapsible-content';\nimport { ControlLabel } from '../../control-label';\nimport { PanelDivider } from '../../panel-divider';\nimport { SectionContent } from '../../section-content';\nimport { ObjectFitField } from './object-fit-field';\nimport { ObjectPositionField } from './object-position-field';\nimport { OverflowField } from './overflow-field';\n\nexport const SizeSection = () => {\n\tconst [ fitValue ] = useStylesField< StringPropValue >( 'object-fit' );\n\n\tconst isNotFill = fitValue && fitValue?.value !== 'fill';\n\n\tconst isVersion330Active = isExperimentActive( 'e_v_3_30' );\n\n\treturn (\n\t\t<SectionContent>\n\t\t\t<Grid container gap={ 2 } flexWrap=\"nowrap\">\n\t\t\t\t<Grid item xs={ 6 }>\n\t\t\t\t\t<SizeField bind=\"width\" label={ __( 'Width', 'elementor' ) } extendedValues={ [ 'auto' ] } />\n\t\t\t\t</Grid>\n\t\t\t\t<Grid item xs={ 6 }>\n\t\t\t\t\t<SizeField bind=\"height\" label={ __( 'Height', 'elementor' ) } extendedValues={ [ 'auto' ] } />\n\t\t\t\t</Grid>\n\t\t\t</Grid>\n\t\t\t<Grid container gap={ 2 } flexWrap=\"nowrap\">\n\t\t\t\t<Grid item xs={ 6 }>\n\t\t\t\t\t<SizeField\n\t\t\t\t\t\tbind=\"min-width\"\n\t\t\t\t\t\tlabel={ __( 'Min width', 'elementor' ) }\n\t\t\t\t\t\textendedValues={ [ 'auto' ] }\n\t\t\t\t\t/>\n\t\t\t\t</Grid>\n\t\t\t\t<Grid item xs={ 6 }>\n\t\t\t\t\t<SizeField\n\t\t\t\t\t\tbind=\"min-height\"\n\t\t\t\t\t\tlabel={ __( 'Min height', 'elementor' ) }\n\t\t\t\t\t\textendedValues={ [ 'auto' ] }\n\t\t\t\t\t/>\n\t\t\t\t</Grid>\n\t\t\t</Grid>\n\t\t\t<Grid container gap={ 2 } flexWrap=\"nowrap\">\n\t\t\t\t<Grid item xs={ 6 }>\n\t\t\t\t\t<SizeField bind=\"max-width\" label={ __( 'Max width', 'elementor' ) } />\n\t\t\t\t</Grid>\n\t\t\t\t<Grid item xs={ 6 }>\n\t\t\t\t\t<SizeField bind=\"max-height\" label={ __( 'Max height', 'elementor' ) } />\n\t\t\t\t</Grid>\n\t\t\t</Grid>\n\t\t\t<PanelDivider />\n\t\t\t<Stack>\n\t\t\t\t<OverflowField />\n\t\t\t</Stack>\n\t\t\t{ isVersion330Active && (\n\t\t\t\t<CollapsibleContent>\n\t\t\t\t\t<Stack gap={ 2 }>\n\t\t\t\t\t\t<StylesField bind={ 'aspect-ratio' }>\n\t\t\t\t\t\t\t<AspectRatioControl label={ __( 'Aspect Ratio', 'elementor' ) } />\n\t\t\t\t\t\t</StylesField>\n\t\t\t\t\t\t<PanelDivider />\n\t\t\t\t\t\t<ObjectFitField />\n\t\t\t\t\t\t{ isNotFill && (\n\t\t\t\t\t\t\t<Grid item xs={ 6 }>\n\t\t\t\t\t\t\t\t<ObjectPositionField />\n\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</Stack>\n\t\t\t\t</CollapsibleContent>\n\t\t\t) }\n\t\t</SectionContent>\n\t);\n};\n\ntype ControlProps = {\n\tbind: StylesFieldProps[ 'bind' ];\n\tlabel: string;\n\textendedValues?: ExtendedValue[];\n};\n\nconst SizeField = ( { label, bind, extendedValues }: ControlProps ) => {\n\treturn (\n\t\t<StylesField bind={ bind }>\n\t\t\t<Grid container gap={ 0.75 } alignItems=\"center\">\n\t\t\t\t<Grid item xs={ 12 }>\n\t\t\t\t\t<ControlLabel>{ label }</ControlLabel>\n\t\t\t\t</Grid>\n\t\t\t\t<Grid item xs={ 12 }>\n\t\t\t\t\t<SizeControl extendedValues={ extendedValues } />\n\t\t\t\t</Grid>\n\t\t\t</Grid>\n\t\t</StylesField>\n\t);\n};\n","import * as React from 'react';\nimport { useState } from 'react';\nimport { Button, Collapse, Stack } from '@elementor/ui';\nimport { __ } from '@wordpress/i18n';\n\nimport { CollapseIcon } from './collapse-icon';\n\ntype CollapsibleContentProps = React.PropsWithChildren< {\n\tdefaultOpen?: boolean;\n} >;\n\nexport const CollapsibleContent = ( { children, defaultOpen = false }: CollapsibleContentProps ) => {\n\tconst [ open, setOpen ] = useState( defaultOpen );\n\n\tconst handleToggle = () => {\n\t\tsetOpen( ( prevOpen ) => ! prevOpen );\n\t};\n\n\treturn (\n\t\t<Stack>\n\t\t\t<Button\n\t\t\t\tfullWidth\n\t\t\t\tsize=\"small\"\n\t\t\t\tcolor=\"secondary\"\n\t\t\t\tvariant=\"outlined\"\n\t\t\t\tonClick={ handleToggle }\n\t\t\t\tendIcon={ <CollapseIcon open={ open } /> }\n\t\t\t\tsx={ { my: 0.5 } }\n\t\t\t>\n\t\t\t\t{ open ? __( 'Show less', 'elementor' ) : __( 'Show more', 'elementor' ) }\n\t\t\t</Button>\n\t\t\t<Collapse in={ open } timeout=\"auto\" unmountOnExit>\n\t\t\t\t{ children }\n\t\t\t</Collapse>\n\t\t</Stack>\n\t);\n};\n","import * as React from 'react';\nimport { SelectControl } from '@elementor/editor-controls';\nimport { Grid } from '@elementor/ui';\nimport { __ } from '@wordpress/i18n';\n\nimport { StylesField } from '../../../controls-registry/styles-field';\nimport { ControlLabel } from '../../control-label';\n\nconst positionOptions = [\n\t{ label: __( 'Fill', 'elementor' ), value: 'fill' },\n\t{ label: __( 'Cover', 'elementor' ), value: 'cover' },\n\t{ label: __( 'Contain', 'elementor' ), value: 'contain' },\n\t{ label: __( 'None', 'elementor' ), value: 'none' },\n\t{ label: __( 'Scale down', 'elementor' ), value: 'scale-down' },\n];\n\nexport const ObjectFitField = () => {\n\treturn (\n\t\t<StylesField bind=\"object-fit\">\n\t\t\t<Grid container gap={ 2 } alignItems=\"center\" flexWrap=\"nowrap\">\n\t\t\t\t<Grid item xs={ 6 }>\n\t\t\t\t\t<ControlLabel>{ __( 'Object fit', 'elementor' ) }</ControlLabel>\n\t\t\t\t</Grid>\n\t\t\t\t<Grid item xs={ 6 } sx={ { overflow: 'hidden' } }>\n\t\t\t\t\t<SelectControl options={ positionOptions } />\n\t\t\t\t</Grid>\n\t\t\t</Grid>\n\t\t</StylesField>\n\t);\n};\n","import * as React from 'react';\nimport { SelectControl } from '@elementor/editor-controls';\nimport { Grid } from '@elementor/ui';\nimport { __ } from '@wordpress/i18n';\n\nimport { StylesField } from '../../../controls-registry/styles-field';\nimport { ControlLabel } from '../../control-label';\n\nconst positionOptions = [\n\t{ label: __( 'Center center', 'elementor' ), value: 'center center' },\n\t{ label: __( 'Center left', 'elementor' ), value: 'center left' },\n\t{ label: __( 'Center right', 'elementor' ), value: 'center right' },\n\t{ label: __( 'Top center', 'elementor' ), value: 'top center' },\n\t{ label: __( 'Top left', 'elementor' ), value: 'top left' },\n\t{ label: __( 'Top right', 'elementor' ), value: 'top right' },\n\t{ label: __( 'Bottom center', 'elementor' ), value: 'bottom center' },\n\t{ label: __( 'Bottom left', 'elementor' ), value: 'bottom left' },\n\t{ label: __( 'Bottom right', 'elementor' ), value: 'bottom right' },\n];\n\nexport const ObjectPositionField = () => {\n\treturn (\n\t\t<StylesField bind=\"object-position\">\n\t\t\t<Grid container gap={ 2 } alignItems=\"center\" flexWrap=\"nowrap\">\n\t\t\t\t<Grid item xs={ 6 }>\n\t\t\t\t\t<ControlLabel>{ __( 'Object position', 'elementor' ) }</ControlLabel>\n\t\t\t\t</Grid>\n\t\t\t\t<Grid item xs={ 6 } sx={ { overflow: 'hidden' } }>\n\t\t\t\t\t<SelectControl options={ positionOptions } />\n\t\t\t\t</Grid>\n\t\t\t</Grid>\n\t\t</StylesField>\n\t);\n};\n","import * as React from 'react';\nimport { type ToggleButtonGroupItem, ToggleControl } from '@elementor/editor-controls';\nimport { EyeIcon, EyeOffIcon, LetterAIcon } from '@elementor/icons';\nimport { Grid } from '@elementor/ui';\nimport { __ } from '@wordpress/i18n';\n\nimport { StylesField } from '../../../controls-registry/styles-field';\nimport { ControlLabel } from '../../control-label';\n\ntype Overflows = 'visible' | 'hidden' | 'auto';\n\nconst options: ToggleButtonGroupItem< Overflows >[] = [\n\t{\n\t\tvalue: 'visible',\n\t\tlabel: __( 'Visible', 'elementor' ),\n\t\trenderContent: ( { size } ) => <EyeIcon fontSize={ size } />,\n\t\tshowTooltip: true,\n\t},\n\t{\n\t\tvalue: 'hidden',\n\t\tlabel: __( 'Hidden', 'elementor' ),\n\t\trenderContent: ( { size } ) => <EyeOffIcon fontSize={ size } />,\n\t\tshowTooltip: true,\n\t},\n\t{\n\t\tvalue: 'auto',\n\t\tlabel: __( 'Auto', 'elementor' ),\n\t\trenderContent: ( { size } ) => <LetterAIcon fontSize={ size } />,\n\t\tshowTooltip: true,\n\t},\n];\n\nexport const OverflowField = () => {\n\treturn (\n\t\t<StylesField bind={ 'overflow' }>\n\t\t\t<Grid container gap={ 2 } alignItems=\"center\" flexWrap=\"nowrap\">\n\t\t\t\t<Grid item xs={ 6 }>\n\t\t\t\t\t<ControlLabel>{ __( 'Overflow', 'elementor' ) }</ControlLabel>\n\t\t\t\t</Grid>\n\t\t\t\t<Grid item xs={ 6 } sx={ { display: 'flex', justifyContent: 'flex-end' } }>\n\t\t\t\t\t<ToggleControl options={ options } />\n\t\t\t\t</Grid>\n\t\t\t</Grid>\n\t\t</StylesField>\n\t);\n};\n","import * as React from 'react';\nimport { LinkedDimensionsControl } from '@elementor/editor-controls';\nimport { __ } from '@wordpress/i18n';\n\nimport { StylesField } from '../../../controls-registry/styles-field';\nimport { useDirection } from '../../../hooks/use-direction';\nimport { PanelDivider } from '../../panel-divider';\nimport { SectionContent } from '../../section-content';\n\nexport const SpacingSection = () => {\n\tconst { isSiteRtl } = useDirection();\n\n\treturn (\n\t\t<SectionContent>\n\t\t\t<StylesField bind={ 'margin' }>\n\t\t\t\t<LinkedDimensionsControl\n\t\t\t\t\tlabel={ __( 'Margin', 'elementor' ) }\n\t\t\t\t\tisSiteRtl={ isSiteRtl }\n\t\t\t\t\textendedValues={ [ 'auto' ] }\n\t\t\t\t/>\n\t\t\t</StylesField>\n\t\t\t<PanelDivider />\n\t\t\t<StylesField bind={ 'padding' }>\n\t\t\t\t<LinkedDimensionsControl label={ __( 'Padding', 'elementor' ) } isSiteRtl={ isSiteRtl } />\n\t\t\t</StylesField>\n\t\t</SectionContent>\n\t);\n};\n","import * as React from 'react';\nimport type { NumberPropValue } from '@elementor/editor-props';\nimport { isExperimentActive } from '@elementor/editor-v1-adapters';\n\nimport { useStylesField } from '../../../hooks/use-styles-field';\nimport { CollapsibleContent } from '../../collapsible-content';\nimport { PanelDivider } from '../../panel-divider';\nimport { SectionContent } from '../../section-content';\nimport { ColumnCountField } from './column-count-field';\nimport { ColumnGapField } from './column-gap-field';\nimport { FontFamilyField } from './font-family-field';\nimport { FontSizeField } from './font-size-field';\nimport { FontStyleField } from './font-style-field';\nimport { FontWeightField } from './font-weight-field';\nimport { LetterSpacingField } from './letter-spacing-field';\nimport { LineHeightField } from './line-height-field';\nimport { TextAlignmentField } from './text-alignment-field';\nimport { TextColorField } from './text-color-field';\nimport { TextDecorationField } from './text-decoration-field';\nimport { TextDirectionField } from './text-direction-field';\nimport { TextStrokeField } from './text-stroke-field';\nimport { TransformField } from './transform-field';\nimport { WordSpacingField } from './word-spacing-field';\n\nexport const TypographySection = () => {\n\tconst [ columnCount ] = useStylesField< NumberPropValue >( 'column-count' );\n\tconst isVersion330Active = isExperimentActive( 'e_v_3_30' );\n\tconst hasMultiColumns = !! ( columnCount?.value && columnCount?.value > 1 );\n\treturn (\n\t\t<SectionContent>\n\t\t\t<FontFamilyField />\n\t\t\t<FontWeightField />\n\t\t\t<FontSizeField />\n\t\t\t<PanelDivider />\n\t\t\t<TextAlignmentField />\n\t\t\t<TextColorField />\n\t\t\t<CollapsibleContent>\n\t\t\t\t<SectionContent sx={ { pt: 2 } }>\n\t\t\t\t\t<LineHeightField />\n\t\t\t\t\t<LetterSpacingField />\n\t\t\t\t\t<WordSpacingField />\n\t\t\t\t\t{ isVersion330Active && (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<ColumnCountField />\n\t\t\t\t\t\t\t{ hasMultiColumns && <ColumnGapField /> }\n\t\t\t\t\t\t</>\n\t\t\t\t\t) }\n\t\t\t\t\t<PanelDivider />\n\t\t\t\t\t<TextDecorationField />\n\t\t\t\t\t<TransformField />\n\t\t\t\t\t<TextDirectionField />\n\t\t\t\t\t<FontStyleField />\n\t\t\t\t\t<TextStrokeField />\n\t\t\t\t</SectionContent>\n\t\t\t</CollapsibleContent>\n\t\t</SectionContent>\n\t);\n};\n","import * as React from 'react';\nimport { NumberControl } from '@elementor/editor-controls';\nimport { Grid } from '@elementor/ui';\nimport { __ } from '@wordpress/i18n';\n\nimport { StylesField } from '../../../controls-registry/styles-field';\nimport { ControlLabel } from '../../control-label';\n\nexport const ColumnCountField = () => {\n\treturn (\n\t\t<StylesField bind=\"column-count\">\n\t\t\t<Grid container gap={ 2 } alignItems=\"center\" flexWrap=\"nowrap\">\n\t\t\t\t<Grid item xs={ 6 }>\n\t\t\t\t\t<ControlLabel>{ __( 'Columns', 'elementor' ) }</ControlLabel>\n\t\t\t\t</Grid>\n\t\t\t\t<Grid item xs={ 6 }>\n\t\t\t\t\t<NumberControl shouldForceInt min={ 0 } step={ 1 } />\n\t\t\t\t</Grid>\n\t\t\t</Grid>\n\t\t</StylesField>\n\t);\n};\n","import * as React from 'react';\nimport { SizeControl } from '@elementor/editor-controls';\nimport { Grid } from '@elementor/ui';\nimport { __ } from '@wordpress/i18n';\n\nimport { StylesField } from '../../../controls-registry/styles-field';\nimport { ControlLabel } from '../../control-label';\n\nexport const ColumnGapField = () => {\n\treturn (\n\t\t<StylesField bind=\"column-gap\">\n\t\t\t<Grid container gap={ 2 } alignItems=\"center\" flexWrap=\"nowrap\">\n\t\t\t\t<Grid item xs={ 6 }>\n\t\t\t\t\t<ControlLabel>{ __( 'Column gap', 'elementor' ) }</ControlLabel>\n\t\t\t\t</Grid>\n\t\t\t\t<Grid item xs={ 6 }>\n\t\t\t\t\t<SizeControl />\n\t\t\t\t</Grid>\n\t\t\t</Grid>\n\t\t</StylesField>\n\t);\n};\n","import * as React from 'react';\nimport { FontFamilyControl } from '@elementor/editor-controls';\nimport { Grid } from '@elementor/ui';\nimport { __ } from '@wordpress/i18n';\n\nimport { StylesField } from '../../../controls-registry/styles-field';\nimport { ControlLabel } from '../../control-label';\nimport { useFontFamilies } from './hooks/use-font-families';\n\nexport const FontFamilyField = () => {\n\tconst fontFamilies = useFontFamilies();\n\n\tif ( fontFamilies.length === 0 ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<StylesField bind=\"font-family\">\n\t\t\t<Grid container gap={ 2 } alignItems=\"center\" flexWrap=\"nowrap\">\n\t\t\t\t<Grid item xs={ 6 }>\n\t\t\t\t\t<ControlLabel>{ __( 'Font family', 'elementor' ) }</ControlLabel>\n\t\t\t\t</Grid>\n\t\t\t\t<Grid item xs={ 6 } sx={ { minWidth: 0 } }>\n\t\t\t\t\t<FontFamilyControl fontFamilies={ fontFamilies } />\n\t\t\t\t</Grid>\n\t\t\t</Grid>\n\t\t</StylesField>\n\t);\n};\n","import { useMemo } from 'react';\nimport { type FontCategory } from '@elementor/editor-controls';\nimport { __ } from '@wordpress/i18n';\n\nimport { getElementorConfig } from '../../../../sync/get-elementor-globals';\n\nconst supportedCategories: Record< string, string > = {\n\tsystem: __( 'System', 'elementor' ),\n\tcustom: __( 'Custom Fonts', 'elementor' ),\n\tgooglefonts: __( 'Google Fonts', 'elementor' ),\n};\n\nconst getFontFamilies = () => {\n\tconst { controls } = getElementorConfig();\n\n\tconst options = controls?.font?.options;\n\n\tif ( ! options ) {\n\t\treturn null;\n\t}\n\n\treturn options;\n};\n\nexport const useFontFamilies = () => {\n\tconst fontFamilies = getFontFamilies();\n\n\treturn useMemo( () => {\n\t\tconst categoriesOrder = [ 'system', 'custom', 'googlefonts' ];\n\n\t\treturn Object.entries( fontFamilies || {} )\n\t\t\t.reduce< FontCategory[] >( ( acc, [ font, category ] ) => {\n\t\t\t\tif ( ! supportedCategories[ category ] ) {\n\t\t\t\t\treturn acc;\n\t\t\t\t}\n\n\t\t\t\tconst categoryIndex = categoriesOrder.indexOf( category );\n\n\t\t\t\tif ( ! acc[ categoryIndex ] ) {\n\t\t\t\t\tacc[ categoryIndex ] = {\n\t\t\t\t\t\tlabel: supportedCategories[ category ],\n\t\t\t\t\t\tfonts: [],\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\tacc[ categoryIndex ].fonts.push( font );\n\n\t\t\t\treturn acc;\n\t\t\t}, [] )\n\t\t\t.filter( Boolean );\n\t}, [ fontFamilies ] );\n};\n","import * as React from 'react';\nimport { SizeControl } from '@elementor/editor-controls';\nimport { Grid } from '@elementor/ui';\nimport { __ } from '@wordpress/i18n';\n\nimport { StylesField } from '../../../controls-registry/styles-field';\nimport { ControlLabel } from '../../control-label';\n\nexport const FontSizeField = () => {\n\treturn (\n\t\t<StylesField bind=\"font-size\">\n\t\t\t<Grid container gap={ 2 } alignItems=\"center\" flexWrap=\"nowrap\">\n\t\t\t\t<Grid item xs={ 6 }>\n\t\t\t\t\t<ControlLabel>{ __( 'Font size', 'elementor' ) }</ControlLabel>\n\t\t\t\t</Grid>\n\t\t\t\t<Grid item xs={ 6 }>\n\t\t\t\t\t<SizeControl />\n\t\t\t\t</Grid>\n\t\t\t</Grid>\n\t\t</StylesField>\n\t);\n};\n","import * as React from 'react';\nimport { ControlFormLabel, type ToggleButtonGroupItem, ToggleControl } from '@elementor/editor-controls';\nimport { ItalicIcon, MinusIcon } from '@elementor/icons';\nimport { Grid } from '@elementor/ui';\nimport { __ } from '@wordpress/i18n';\n\nimport { StylesField } from '../../../controls-registry/styles-field';\n\ntype FontStyle = 'normal' | 'italic';\nconst options: ToggleButtonGroupItem< FontStyle >[] = [\n\t{\n\t\tvalue: 'normal',\n\t\tlabel: __( 'Normal', 'elementor' ),\n\t\trenderContent: ( { size } ) => <MinusIcon fontSize={ size } />,\n\t\tshowTooltip: true,\n\t},\n\t{\n\t\tvalue: 'italic',\n\t\tlabel: __( 'Italic', 'elementor' ),\n\t\trenderContent: ( { size } ) => <ItalicIcon fontSize={ size } />,\n\t\tshowTooltip: true,\n\t},\n];\n\nexport const FontStyleField = () => (\n\t<StylesField bind=\"font-style\">\n\t\t<Grid container gap={ 2 } alignItems=\"center\" flexWrap=\"nowrap\">\n\t\t\t<Grid item xs={ 6 }>\n\t\t\t\t<ControlFormLabel>{ __( 'Font style', 'elementor' ) }</ControlFormLabel>\n\t\t\t</Grid>\n\t\t\t<Grid item xs={ 6 } display=\"flex\" justifyContent=\"end\">\n\t\t\t\t<ToggleControl options={ options } />\n\t\t\t</Grid>\n\t\t</Grid>\n\t</StylesField>\n);\n","import * as React from 'react';\nimport { SelectControl } from '@elementor/editor-controls';\nimport { Grid } from '@elementor/ui';\nimport { __ } from '@wordpress/i18n';\n\nimport { StylesField } from '../../../controls-registry/styles-field';\nimport { ControlLabel } from '../../control-label';\n\nconst fontWeightOptions = [\n\t{ value: '100', label: __( '100 - Thin', 'elementor' ) },\n\t{ value: '200', label: __( '200 - Extra light', 'elementor' ) },\n\t{ value: '300', label: __( '300 - Light', 'elementor' ) },\n\t{ value: '400', label: __( '400 - Normal', 'elementor' ) },\n\t{ value: '500', label: __( '500 - Medium', 'elementor' ) },\n\t{ value: '600', label: __( '600 - Semi bold', 'elementor' ) },\n\t{ value: '700', label: __( '700 - Bold', 'elementor' ) },\n\t{ value: '800', label: __( '800 - Extra bold', 'elementor' ) },\n\t{ value: '900', label: __( '900 - Black', 'elementor' ) },\n];\n\nexport const FontWeightField = () => {\n\treturn (\n\t\t<StylesField bind=\"font-weight\">\n\t\t\t<Grid container gap={ 2 } alignItems=\"center\" flexWrap=\"nowrap\">\n\t\t\t\t<Grid item xs={ 6 }>\n\t\t\t\t\t<ControlLabel>{ __( 'Font weight', 'elementor' ) }</ControlLabel>\n\t\t\t\t</Grid>\n\t\t\t\t<Grid item xs={ 6 } sx={ { overflow: 'hidden' } }>\n\t\t\t\t\t<SelectControl options={ fontWeightOptions } />\n\t\t\t\t</Grid>\n\t\t\t</Grid>\n\t\t</StylesField>\n\t);\n};\n","import * as React from 'react';\nimport { SizeControl } from '@elementor/editor-controls';\nimport { Grid } from '@elementor/ui';\nimport { __ } from '@wordpress/i18n';\n\nimport { StylesField } from '../../../controls-registry/styles-field';\nimport { ControlLabel } from '../../control-label';\n\nexport const LetterSpacingField = () => {\n\treturn (\n\t\t<StylesField bind=\"letter-spacing\">\n\t\t\t<Grid container gap={ 2 } alignItems=\"center\" flexWrap=\"nowrap\">\n\t\t\t\t<Grid item xs={ 6 }>\n\t\t\t\t\t<ControlLabel>{ __( 'Letter spacing', 'elementor' ) }</ControlLabel>\n\t\t\t\t</Grid>\n\t\t\t\t<Grid item xs={ 6 }>\n\t\t\t\t\t<SizeControl />\n\t\t\t\t</Grid>\n\t\t\t</Grid>\n\t\t</StylesField>\n\t);\n};\n","import * as React from 'react';\nimport { SizeControl } from '@elementor/editor-controls';\nimport { Grid } from '@elementor/ui';\nimport { __ } from '@wordpress/i18n';\n\nimport { StylesField } from '../../../controls-registry/styles-field';\nimport { ControlLabel } from '../../control-label';\n\nexport const LineHeightField = () => {\n\treturn (\n\t\t<StylesField bind=\"line-height\">\n\t\t\t<Grid container gap={ 2 } alignItems=\"center\" flexWrap=\"nowrap\">\n\t\t\t\t<Grid item xs={ 6 }>\n\t\t\t\t\t<ControlLabel>{ __( 'Line height', 'elementor' ) }</ControlLabel>\n\t\t\t\t</Grid>\n\t\t\t\t<Grid item xs={ 6 }>\n\t\t\t\t\t<SizeControl />\n\t\t\t\t</Grid>\n\t\t\t</Grid>\n\t\t</StylesField>\n\t);\n};\n","import * as React from 'react';\nimport { type ToggleButtonGroupItem, ToggleControl } from '@elementor/editor-controls';\nimport { AlignCenterIcon, AlignJustifiedIcon, AlignLeftIcon, AlignRightIcon } from '@elementor/icons';\nimport { Grid, withDirection } from '@elementor/ui';\nimport { __ } from '@wordpress/i18n';\n\nimport { StylesField } from '../../../controls-registry/styles-field';\nimport { ControlLabel } from '../../control-label';\n\ntype Alignments = 'start' | 'center' | 'end' | 'justify';\n\nconst AlignStartIcon = withDirection( AlignLeftIcon );\nconst AlignEndIcon = withDirection( AlignRightIcon );\n\nconst options: ToggleButtonGroupItem< Alignments >[] = [\n\t{\n\t\tvalue: 'start',\n\t\tlabel: __( 'Start', 'elementor' ),\n\t\trenderContent: ( { size } ) => <AlignStartIcon fontSize={ size } />,\n\t\tshowTooltip: true,\n\t},\n\t{\n\t\tvalue: 'center',\n\t\tlabel: __( 'Center', 'elementor' ),\n\t\trenderContent: ( { size } ) => <AlignCenterIcon fontSize={ size } />,\n\t\tshowTooltip: true,\n\t},\n\t{\n\t\tvalue: 'end',\n\t\tlabel: __( 'End', 'elementor' ),\n\t\trenderContent: ( { size } ) => <AlignEndIcon fontSize={ size } />,\n\t\tshowTooltip: true,\n\t},\n\t{\n\t\tvalue: 'justify',\n\t\tlabel: __( 'Justify', 'elementor' ),\n\t\trenderContent: ( { size } ) => <AlignJustifiedIcon fontSize={ size } />,\n\t\tshowTooltip: true,\n\t},\n];\n\nexport const TextAlignmentField = () => {\n\treturn (\n\t\t<StylesField bind={ 'text-align' }>\n\t\t\t<Grid container gap={ 2 } alignItems=\"center\" flexWrap=\"nowrap\">\n\t\t\t\t<Grid item xs={ 6 }>\n\t\t\t\t\t<ControlLabel>{ __( 'Text align', 'elementor' ) }</ControlLabel>\n\t\t\t\t</Grid>\n\t\t\t\t<Grid item xs={ 6 } display=\"flex\" justifyContent=\"end\">\n\t\t\t\t\t<ToggleControl options={ options } />\n\t\t\t\t</Grid>\n\t\t\t</Grid>\n\t\t</StylesField>\n\t);\n};\n","import * as React from 'react';\nimport { ColorControl } from '@elementor/editor-controls';\nimport { Grid } from '@elementor/ui';\nimport { __ } from '@wordpress/i18n';\n\nimport { StylesField } from '../../../controls-registry/styles-field';\nimport { ControlLabel } from '../../control-label';\n\nexport const TextColorField = () => {\n\treturn (\n\t\t<StylesField bind=\"color\">\n\t\t\t<Grid container gap={ 2 } alignItems=\"center\" flexWrap=\"nowrap\">\n\t\t\t\t<Grid item xs={ 6 }>\n\t\t\t\t\t<ControlLabel>{ __( 'Text color', 'elementor' ) }</ControlLabel>\n\t\t\t\t</Grid>\n\t\t\t\t<Grid item xs={ 6 }>\n\t\t\t\t\t<ColorControl />\n\t\t\t\t</Grid>\n\t\t\t</Grid>\n\t\t</StylesField>\n\t);\n};\n","import * as React from 'react';\nimport { ToggleControl, type ToggleControlProps } from '@elementor/editor-controls';\nimport { MinusIcon, OverlineIcon, StrikethroughIcon, UnderlineIcon } from '@elementor/icons';\nimport { Grid } from '@elementor/ui';\nimport { __ } from '@wordpress/i18n';\n\nimport { StylesField } from '../../../controls-registry/styles-field';\nimport { ControlLabel } from '../../control-label';\n\ntype Decoration = 'none' | 'underline' | 'line-through' | 'overline';\n\nconst options: ToggleControlProps< Decoration >[ 'options' ] = [\n\t{\n\t\tvalue: 'none',\n\t\tlabel: __( 'None', 'elementor' ),\n\t\trenderContent: ( { size } ) => <MinusIcon fontSize={ size } />,\n\t\tshowTooltip: true,\n\t\texclusive: true,\n\t},\n\t{\n\t\tvalue: 'underline',\n\t\tlabel: __( 'Underline', 'elementor' ),\n\t\trenderContent: ( { size } ) => <UnderlineIcon fontSize={ size } />,\n\t\tshowTooltip: true,\n\t},\n\t{\n\t\tvalue: 'line-through',\n\t\tlabel: __( 'Line-through', 'elementor' ),\n\t\trenderContent: ( { size } ) => <StrikethroughIcon fontSize={ size } />,\n\t\tshowTooltip: true,\n\t},\n\t{\n\t\tvalue: 'overline',\n\t\tlabel: __( 'Overline', 'elementor' ),\n\t\trenderContent: ( { size } ) => <OverlineIcon fontSize={ size } />,\n\t\tshowTooltip: true,\n\t},\n];\nexport const TextDecorationField = () => (\n\t<StylesField bind={ 'text-decoration' }>\n\t\t<Grid container gap={ 2 } alignItems=\"center\" flexWrap=\"nowrap\">\n\t\t\t<Grid item xs={ 6 }>\n\t\t\t\t<ControlLabel>{ __( 'Line decoration', 'elementor' ) }</ControlLabel>\n\t\t\t</Grid>\n\t\t\t<Grid item xs={ 6 } display=\"flex\" justifyContent=\"end\">\n\t\t\t\t<ToggleControl options={ options } exclusive={ false } />\n\t\t\t</Grid>\n\t\t</Grid>\n\t</StylesField>\n);\n","import * as React from 'react';\nimport { type ToggleButtonGroupItem, ToggleControl } from '@elementor/editor-controls';\nimport { TextDirectionLtrIcon, TextDirectionRtlIcon } from '@elementor/icons';\nimport { Grid } from '@elementor/ui';\nimport { __ } from '@wordpress/i18n';\n\nimport { StylesField } from '../../../controls-registry/styles-field';\nimport { ControlLabel } from '../../control-label';\n\ntype Direction = 'ltr' | 'rtl';\n\nconst options: ToggleButtonGroupItem< Direction >[] = [\n\t{\n\t\tvalue: 'ltr',\n\t\tlabel: __( 'Left to right', 'elementor' ),\n\t\trenderContent: ( { size } ) => <TextDirectionLtrIcon fontSize={ size } />,\n\t\tshowTooltip: true,\n\t},\n\t{\n\t\tvalue: 'rtl',\n\t\tlabel: __( 'Right to left', 'elementor' ),\n\t\trenderContent: ( { size } ) => <TextDirectionRtlIcon fontSize={ size } />,\n\t\tshowTooltip: true,\n\t},\n];\n\nexport const TextDirectionField = () => {\n\treturn (\n\t\t<StylesField bind={ 'direction' }>\n\t\t\t<Grid container gap={ 2 } alignItems=\"center\" flexWrap=\"nowrap\">\n\t\t\t\t<Grid item xs={ 6 }>\n\t\t\t\t\t<ControlLabel>{ __( 'Direction', 'elementor' ) }</ControlLabel>\n\t\t\t\t</Grid>\n\t\t\t\t<Grid item xs={ 6 } display=\"flex\" justifyContent=\"end\">\n\t\t\t\t\t<ToggleControl options={ options } />\n\t\t\t\t</Grid>\n\t\t\t</Grid>\n\t\t</StylesField>\n\t);\n};\n","import * as React from 'react';\nimport { StrokeControl } from '@elementor/editor-controls';\nimport { __ } from '@wordpress/i18n';\n\nimport { useStyle } from '../../../contexts/style-context';\nimport { StylesField } from '../../../controls-registry/styles-field';\nimport { useStylesField } from '../../../hooks/use-styles-field';\nimport { AddOrRemoveContent } from '../../add-or-remove-content';\n\nconst initTextStroke = {\n\t$$type: 'stroke',\n\tvalue: {\n\t\tcolor: {\n\t\t\t$$type: 'color',\n\t\t\tvalue: '#000000',\n\t\t},\n\t\twidth: {\n\t\t\t$$type: 'size',\n\t\t\tvalue: {\n\t\t\t\tunit: 'px',\n\t\t\t\tsize: 1,\n\t\t\t},\n\t\t},\n\t},\n};\n\nexport const TextStrokeField = () => {\n\tconst { canEdit } = useStyle();\n\tconst [ textStroke, setTextStroke ] = useStylesField( 'stroke' );\n\n\tconst addTextStroke = () => {\n\t\tsetTextStroke( initTextStroke );\n\t};\n\n\tconst removeTextStroke = () => {\n\t\tsetTextStroke( null );\n\t};\n\n\tconst hasTextStroke = Boolean( textStroke );\n\n\treturn (\n\t\t<StylesField bind={ 'stroke' }>\n\t\t\t<AddOrRemoveContent\n\t\t\t\tlabel={ __( 'Text stroke', 'elementor' ) }\n\t\t\t\tisAdded={ hasTextStroke }\n\t\t\t\tonAdd={ addTextStroke }\n\t\t\t\tonRemove={ removeTextStroke }\n\t\t\t\tdisabled={ ! canEdit }\n\t\t\t>\n\t\t\t\t<StrokeControl />\n\t\t\t</AddOrRemoveContent>\n\t\t</StylesField>\n\t);\n};\n","import * as React from 'react';\nimport { type ToggleButtonGroupItem, ToggleControl } from '@elementor/editor-controls';\nimport { LetterCaseIcon, LetterCaseLowerIcon, LetterCaseUpperIcon, MinusIcon } from '@elementor/icons';\nimport { Grid } from '@elementor/ui';\nimport { __ } from '@wordpress/i18n';\n\nimport { StylesField } from '../../../controls-registry/styles-field';\nimport { ControlLabel } from '../../control-label';\n\ntype Transforms = 'none' | 'capitalize' | 'uppercase' | 'lowercase';\n\nconst options: ToggleButtonGroupItem< Transforms >[] = [\n\t{\n\t\tvalue: 'none',\n\t\tlabel: __( 'None', 'elementor' ),\n\t\trenderContent: ( { size } ) => <MinusIcon fontSize={ size } />,\n\t\tshowTooltip: true,\n\t},\n\t{\n\t\tvalue: 'capitalize',\n\t\tlabel: __( 'Capitalize', 'elementor' ),\n\t\trenderContent: ( { size } ) => <LetterCaseIcon fontSize={ size } />,\n\t\tshowTooltip: true,\n\t},\n\t{\n\t\tvalue: 'uppercase',\n\t\tlabel: __( 'Uppercase', 'elementor' ),\n\t\trenderContent: ( { size } ) => <LetterCaseUpperIcon fontSize={ size } />,\n\t\tshowTooltip: true,\n\t},\n\t{\n\t\tvalue: 'lowercase',\n\t\tlabel: __( 'Lowercase', 'elementor' ),\n\t\trenderContent: ( { size } ) => <LetterCaseLowerIcon fontSize={ size } />,\n\t\tshowTooltip: true,\n\t},\n];\n\nexport const TransformField = () => (\n\t<StylesField bind={ 'text-transform' }>\n\t\t<Grid container gap={ 2 } alignItems=\"center\" flexWrap=\"nowrap\">\n\t\t\t<Grid item xs={ 6 }>\n\t\t\t\t<ControlLabel>{ __( 'Text transform', 'elementor' ) }</ControlLabel>\n\t\t\t</Grid>\n\t\t\t<Grid item xs={ 6 } display=\"flex\" justifyContent=\"end\">\n\t\t\t\t<ToggleControl options={ options } />\n\t\t\t</Grid>\n\t\t</Grid>\n\t</StylesField>\n);\n","import * as React from 'react';\nimport { SizeControl } from '@elementor/editor-controls';\nimport { Grid } from '@elementor/ui';\nimport { __ } from '@wordpress/i18n';\n\nimport { StylesField } from '../../../controls-registry/styles-field';\nimport { ControlLabel } from '../../control-label';\n\nexport const WordSpacingField = () => {\n\treturn (\n\t\t<StylesField bind=\"word-spacing\">\n\t\t\t<Grid container gap={ 2 } alignItems=\"center\" flexWrap=\"nowrap\">\n\t\t\t\t<Grid item xs={ 6 }>\n\t\t\t\t\t<ControlLabel>{ __( 'Word spacing', 'elementor' ) }</ControlLabel>\n\t\t\t\t</Grid>\n\t\t\t\t<Grid item xs={ 6 }>\n\t\t\t\t\t<SizeControl />\n\t\t\t\t</Grid>\n\t\t\t</Grid>\n\t\t</StylesField>\n\t);\n};\n","import { injectIntoLogic } from '@elementor/editor';\nimport { PrefetchUserData } from '@elementor/editor-current-user';\nimport { __registerPanel as registerPanel } from '@elementor/editor-panels';\nimport { blockCommand, isExperimentActive } from '@elementor/editor-v1-adapters';\n\nimport { EditingPanelHooks } from './components/editing-panel-hooks';\nimport { init as initDynamics } from './dynamics/init';\nimport { panel } from './panel';\nimport { initResetStyleProps } from './reset-style-props';\nimport { init as initStylesInheritance } from './styles-inheritance/init';\nimport { EXPERIMENTAL_FEATURES } from './sync/experiments-flags';\nimport { isAtomicWidgetSelected } from './sync/is-atomic-widget-selected';\n\nexport function init() {\n\tregisterPanel( panel );\n\tblockV1Panel();\n\n\tinjectIntoLogic( {\n\t\tid: 'editing-panel-hooks',\n\t\tcomponent: EditingPanelHooks,\n\t} );\n\n\tinjectIntoLogic( {\n\t\tid: 'current-user-data',\n\t\tcomponent: PrefetchUserData,\n\t} );\n\n\t// TODO: Move it from here once we have dynamic package.\n\tinitDynamics();\n\n\t// TODO: Move it from here once we have styles-inheritance package.\n\tinitStylesInheritance();\n\n\tif ( isExperimentActive( EXPERIMENTAL_FEATURES.V_3_30 ) ) {\n\t\tinitResetStyleProps();\n\t}\n}\n\nconst blockV1Panel = () => {\n\tblockCommand( {\n\t\tcommand: 'panel/editor/open',\n\t\tcondition: isAtomicWidgetSelected,\n\t} );\n};\n","import { useEffect } from 'react';\nimport { __privateListenTo as listenTo, commandStartEvent } from '@elementor/editor-v1-adapters';\n\nimport { usePanelActions } from '../panel';\nimport { isAtomicWidgetSelected } from '../sync/is-atomic-widget-selected';\n\nexport const useOpenEditorPanel = () => {\n\tconst { open } = usePanelActions();\n\n\tuseEffect( () => {\n\t\treturn listenTo( commandStartEvent( 'panel/editor/open' ), () => {\n\t\t\tif ( isAtomicWidgetSelected() ) {\n\t\t\t\topen();\n\t\t\t}\n\t\t} );\n\t}, [] ); // eslint-disable-line react-hooks/exhaustive-deps\n};\n","import { getSelectedElements, getWidgetsCache } from '@elementor/editor-elements';\n\nexport const isAtomicWidgetSelected = () => {\n\tconst selectedElements = getSelectedElements();\n\tconst widgetCache = getWidgetsCache();\n\n\tif ( selectedElements.length !== 1 ) {\n\t\treturn false;\n\t}\n\n\t// Check if the selected element has atomic controls, meaning it's a V2 element.\n\treturn !! widgetCache?.[ selectedElements[ 0 ].type ]?.atomic_controls;\n};\n","import { useOpenEditorPanel } from '../hooks/use-open-editor-panel';\n\nexport const EditingPanelHooks = () => {\n\tuseOpenEditorPanel();\n\n\treturn null;\n};\n","import { settingsTransformersRegistry, styleTransformersRegistry } from '@elementor/editor-canvas';\n\nimport { registerControlReplacement } from '../control-replacement';\nimport { controlActionsMenu } from '../controls-actions';\nimport { DynamicSelectionControl } from './components/dynamic-selection-control';\nimport { dynamicTransformer } from './dynamic-transformer';\nimport { usePropDynamicAction } from './hooks/use-prop-dynamic-action';\nimport { isDynamicPropValue } from './utils';\n\nconst { registerPopoverAction } = controlActionsMenu;\n\nexport const init = () => {\n\tregisterControlReplacement( {\n\t\tcomponent: DynamicSelectionControl,\n\t\tcondition: ( { value } ) => isDynamicPropValue( value ),\n\t} );\n\n\tregisterPopoverAction( {\n\t\tid: 'dynamic-tags',\n\t\tuseProps: usePropDynamicAction,\n\t} );\n\n\tstyleTransformersRegistry.register( 'dynamic', dynamicTransformer );\n\tsettingsTransformersRegistry.register( 'dynamic', dynamicTransformer );\n};\n","import * as React from 'react';\nimport { ControlFormLabel, useBoundProp } from '@elementor/editor-controls';\nimport type { Control, ControlsSection } from '@elementor/editor-elements';\nimport { DatabaseIcon, SettingsIcon, XIcon } from '@elementor/icons';\nimport {\n\tbindPopover,\n\tbindTrigger,\n\tBox,\n\tDivider,\n\tGrid,\n\tIconButton,\n\tPaper,\n\tPopover,\n\tStack,\n\tTab,\n\tTabPanel,\n\tTabs,\n\tTypography,\n\tUnstableTag as Tag,\n\tusePopupState,\n\tuseTabs,\n} from '@elementor/ui';\nimport { __ } from '@wordpress/i18n';\n\nimport { PopoverContent } from '../../components/popover-content';\nimport { Control as BaseControl } from '../../controls-registry/control';\nimport { type ControlType, getControl } from '../../controls-registry/controls-registry';\nimport { usePersistDynamicValue } from '../../hooks/use-persist-dynamic-value';\nimport { DynamicControl } from '../dynamic-control';\nimport { useDynamicTag } from '../hooks/use-dynamic-tag';\nimport { type DynamicTag } from '../types';\nimport { dynamicPropTypeUtil } from '../utils';\nimport { DynamicSelection } from './dynamic-selection';\n\nconst SIZE = 'tiny';\n\nexport const DynamicSelectionControl = () => {\n\tconst { setValue: setAnyValue } = useBoundProp();\n\tconst { bind, value } = useBoundProp( dynamicPropTypeUtil );\n\n\tconst [ propValueFromHistory ] = usePersistDynamicValue( bind );\n\tconst selectionPopoverState = usePopupState( { variant: 'popover' } );\n\n\tconst { name: tagName = '' } = value;\n\n\tconst dynamicTag = useDynamicTag( tagName );\n\n\tconst removeDynamicTag = () => {\n\t\tsetAnyValue( propValueFromHistory ?? null );\n\t};\n\n\tif ( ! dynamicTag ) {\n\t\tthrow new Error( `Dynamic tag ${ tagName } not found` );\n\t}\n\n\treturn (\n\t\t<Box>\n\t\t\t<Tag\n\t\t\t\tfullWidth\n\t\t\t\tshowActionsOnHover\n\t\t\t\tlabel={ dynamicTag.label }\n\t\t\t\tstartIcon={ <DatabaseIcon fontSize={ SIZE } /> }\n\t\t\t\t{ ...bindTrigger( selectionPopoverState ) }\n\t\t\t\tactions={\n\t\t\t\t\t<>\n\t\t\t\t\t\t<DynamicSettingsPopover dynamicTag={ dynamicTag } />\n\t\t\t\t\t\t<IconButton\n\t\t\t\t\t\t\tsize={ SIZE }\n\t\t\t\t\t\t\tonClick={ removeDynamicTag }\n\t\t\t\t\t\t\taria-label={ __( 'Remove dynamic value', 'elementor' ) }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<XIcon fontSize={ SIZE } />\n\t\t\t\t\t\t</IconButton>\n\t\t\t\t\t</>\n\t\t\t\t}\n\t\t\t/>\n\t\t\t<Popover\n\t\t\t\tdisablePortal\n\t\t\t\tdisableScrollLock\n\t\t\t\tanchorOrigin={ { vertical: 'bottom', horizontal: 'left' } }\n\t\t\t\t{ ...bindPopover( selectionPopoverState ) }\n\t\t\t>\n\t\t\t\t<Stack>\n\t\t\t\t\t<Stack direction=\"row\" alignItems=\"center\" pl={ 1.5 } pr={ 0.5 } py={ 1.5 }>\n\t\t\t\t\t\t<DatabaseIcon fontSize={ SIZE } sx={ { mr: 0.5 } } />\n\t\t\t\t\t\t<Typography variant=\"subtitle2\">{ __( 'Dynamic tags', 'elementor' ) }</Typography>\n\t\t\t\t\t\t<IconButton size={ SIZE } sx={ { ml: 'auto' } } onClick={ selectionPopoverState.close }>\n\t\t\t\t\t\t\t<XIcon fontSize={ SIZE } />\n\t\t\t\t\t\t</IconButton>\n\t\t\t\t\t</Stack>\n\t\t\t\t\t<DynamicSelection onSelect={ selectionPopoverState.close } />\n\t\t\t\t</Stack>\n\t\t\t</Popover>\n\t\t</Box>\n\t);\n};\n\nexport const DynamicSettingsPopover = ( { dynamicTag }: { dynamicTag: DynamicTag } ) => {\n\tconst popupState = usePopupState( { variant: 'popover' } );\n\n\tconst hasDynamicSettings = !! dynamicTag.atomic_controls.length;\n\n\tif ( ! hasDynamicSettings ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t<IconButton size={ SIZE } { ...bindTrigger( popupState ) } aria-label={ __( 'Settings', 'elementor' ) }>\n\t\t\t\t<SettingsIcon fontSize={ SIZE } />\n\t\t\t</IconButton>\n\t\t\t<Popover\n\t\t\t\tdisablePortal\n\t\t\t\tdisableScrollLock\n\t\t\t\tanchorOrigin={ { vertical: 'bottom', horizontal: 'center' } }\n\t\t\t\t{ ...bindPopover( popupState ) }\n\t\t\t>\n\t\t\t\t<Paper component={ Stack } sx={ { minHeight: '300px', width: '220px' } }>\n\t\t\t\t\t<Stack direction=\"row\" alignItems=\"center\" px={ 1.5 } pt={ 2 } pb={ 1 }>\n\t\t\t\t\t\t<DatabaseIcon fontSize={ SIZE } sx={ { mr: 0.5 } } />\n\t\t\t\t\t\t<Typography variant=\"subtitle2\">{ dynamicTag.label }</Typography>\n\t\t\t\t\t\t<IconButton sx={ { ml: 'auto' } } size={ SIZE } onClick={ popupState.close }>\n\t\t\t\t\t\t\t<XIcon fontSize={ SIZE } />\n\t\t\t\t\t\t</IconButton>\n\t\t\t\t\t</Stack>\n\t\t\t\t\t<DynamicSettings controls={ dynamicTag.atomic_controls } />\n\t\t\t\t</Paper>\n\t\t\t</Popover>\n\t\t</>\n\t);\n};\n\nconst DynamicSettings = ( { controls }: { controls: DynamicTag[ 'atomic_controls' ] } ) => {\n\tconst tabs = controls.filter( ( { type } ) => type === 'section' ) as ControlsSection[];\n\tconst { getTabsProps, getTabProps, getTabPanelProps } = useTabs< number >( 0 );\n\n\tif ( ! tabs.length ) {\n\t\t// Dynamic must have hierarchical controls.\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t<Tabs size=\"small\" variant=\"fullWidth\" { ...getTabsProps() }>\n\t\t\t\t{ tabs.map( ( { value }, index ) => (\n\t\t\t\t\t<Tab key={ index } label={ value.label } sx={ { px: 1, py: 0.5 } } { ...getTabProps( index ) } />\n\t\t\t\t) ) }\n\t\t\t</Tabs>\n\t\t\t<Divider />\n\n\t\t\t{ tabs.map( ( { value }, index ) => {\n\t\t\t\treturn (\n\t\t\t\t\t<TabPanel key={ index } sx={ { flexGrow: 1, py: 0 } } { ...getTabPanelProps( index ) }>\n\t\t\t\t\t\t<PopoverContent p={ 2 } gap={ 2 }>\n\t\t\t\t\t\t\t{ value.items.map( ( item ) => {\n\t\t\t\t\t\t\t\tif ( item.type === 'control' ) {\n\t\t\t\t\t\t\t\t\treturn <Control key={ item.value.bind } control={ item.value } />;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\treturn null;\n\t\t\t\t\t\t\t} ) }\n\t\t\t\t\t\t</PopoverContent>\n\t\t\t\t\t</TabPanel>\n\t\t\t\t);\n\t\t\t} ) }\n\t\t</>\n\t);\n};\n\nconst Control = ( { control }: { control: Control[ 'value' ] } ) => {\n\tif ( ! getControl( control.type as ControlType ) ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<DynamicControl bind={ control.bind }>\n\t\t\t<Grid container gap={ 0.75 }>\n\t\t\t\t{ control.label ? (\n\t\t\t\t\t<Grid item xs={ 12 }>\n\t\t\t\t\t\t<ControlFormLabel>{ control.label }</ControlFormLabel>\n\t\t\t\t\t</Grid>\n\t\t\t\t) : null }\n\t\t\t\t<Grid item xs={ 12 }>\n\t\t\t\t\t<BaseControl type={ control.type as ControlType } props={ control.props } />\n\t\t\t\t</Grid>\n\t\t\t</Grid>\n\t\t</DynamicControl>\n\t);\n};\n","import { type FC, type PropsWithChildren } from 'react';\nimport * as React from 'react';\nimport { Stack } from '@elementor/ui';\n\ntype PopoverContentProps = PropsWithChildren< {\n\talignItems?: 'center';\n\tgap?: number;\n\tp?: 1.5 | 2 | 2.5;\n} >;\n\nexport const PopoverContent: FC< PopoverContentProps > = ( { alignItems, gap = 1.5, p, children } ) => (\n\t<Stack alignItems={ alignItems } gap={ gap } p={ p }>\n\t\t{ children }\n\t</Stack>\n);\n","import { type PropValue } from '@elementor/editor-props';\nimport { useSessionStorage } from '@elementor/session';\n\nimport { useElement } from '../contexts/element-context';\nimport { type DynamicPropValue } from '../dynamics/types';\n\nexport const usePersistDynamicValue = < T extends DynamicPropValue | PropValue >( propKey: string ) => {\n\tconst { element } = useElement();\n\tconst prefixedKey = `dynamic/non-dynamic-values-history/${ element.id }/${ propKey }`;\n\treturn useSessionStorage< T >( prefixedKey );\n};\n","import * as React from 'react';\nimport { PropKeyProvider, PropProvider, type SetValue, useBoundProp } from '@elementor/editor-controls';\nimport { type PropKey } from '@elementor/editor-props';\n\nimport { createTopLevelOjectType } from '../controls-registry/create-top-level-object-type';\nimport { useDynamicTag } from './hooks/use-dynamic-tag';\nimport { dynamicPropTypeUtil, type DynamicPropValue } from './utils';\n\ntype DynamicControlProps = React.PropsWithChildren< {\n\tbind: PropKey;\n} >;\n\nexport const DynamicControl = ( { bind, children }: DynamicControlProps ) => {\n\tconst { value, setValue } = useBoundProp( dynamicPropTypeUtil );\n\tconst { name = '', settings } = value ?? {};\n\n\tconst dynamicTag = useDynamicTag( name );\n\n\tif ( ! dynamicTag ) {\n\t\tthrow new Error( `Dynamic tag ${ name } not found` );\n\t}\n\n\tconst dynamicPropType = dynamicTag.props_schema[ bind ];\n\n\tconst defaultValue = dynamicPropType?.default;\n\tconst dynamicValue = settings?.[ bind ] ?? defaultValue;\n\n\tconst setDynamicValue: SetValue< Record< string, DynamicPropValue > > = ( newValues ) => {\n\t\tsetValue( {\n\t\t\tname,\n\t\t\tsettings: {\n\t\t\t\t...settings,\n\t\t\t\t...newValues,\n\t\t\t},\n\t\t} );\n\t};\n\n\tconst propType = createTopLevelOjectType( { schema: dynamicTag.props_schema } );\n\n\treturn (\n\t\t<PropProvider propType={ propType } setValue={ setDynamicValue } value={ { [ bind ]: dynamicValue } }>\n\t\t\t<PropKeyProvider bind={ bind }>{ children }</PropKeyProvider>\n\t\t</PropProvider>\n\t);\n};\n","import { useMemo } from 'react';\n\nimport { type DynamicTag } from '../types';\nimport { usePropDynamicTags } from './use-prop-dynamic-tags';\n\nexport const useDynamicTag = ( tagName: string ): DynamicTag | null => {\n\tconst dynamicTags = usePropDynamicTags();\n\n\treturn useMemo( () => dynamicTags.find( ( tag ) => tag.name === tagName ) ?? null, [ dynamicTags, tagName ] );\n};\n","import { useMemo } from 'react';\nimport { useBoundProp } from '@elementor/editor-controls';\n\nimport { getAtomicDynamicTags } from '../sync/get-atomic-dynamic-tags';\nimport { getDynamicPropType } from '../utils';\n\nexport const usePropDynamicTags = () => {\n\tlet categories: string[] = [];\n\n\tconst { propType } = useBoundProp();\n\n\tif ( propType ) {\n\t\tconst propDynamicType = getDynamicPropType( propType );\n\n\t\tcategories = propDynamicType?.settings.categories || [];\n\t}\n\n\t// eslint-disable-next-line react-compiler/react-compiler\n\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\treturn useMemo( () => getDynamicTagsByCategories( categories ), [ categories.join() ] );\n};\n\nconst getDynamicTagsByCategories = ( categories: string[] ) => {\n\tconst dynamicTags = getAtomicDynamicTags();\n\n\tif ( ! categories.length || ! dynamicTags?.tags ) {\n\t\treturn [];\n\t}\n\n\tconst _categories = new Set( categories );\n\n\treturn Object.values( dynamicTags.tags ).filter( ( dynamicTag ) =>\n\t\tdynamicTag.categories.some( ( category ) => _categories.has( category ) )\n\t);\n};\n","import { type ExtendedWindow } from '../types';\n\nexport const getElementorConfig = () => {\n\tconst extendedWindow = window as unknown as ExtendedWindow;\n\n\treturn extendedWindow.elementor?.config ?? {};\n};\n","import { getElementorConfig } from './get-elementor-config';\n\nexport const getAtomicDynamicTags = () => {\n\tconst { atomicDynamicTags } = getElementorConfig();\n\n\tif ( ! atomicDynamicTags ) {\n\t\treturn null;\n\t}\n\n\treturn {\n\t\ttags: atomicDynamicTags.tags,\n\t\tgroups: atomicDynamicTags.groups,\n\t};\n};\n","import {\n\tcreatePropUtils,\n\tisTransformable,\n\ttype PropType,\n\ttype PropValue,\n\ttype TransformablePropType,\n} from '@elementor/editor-props';\nimport { z } from '@elementor/schema';\n\nimport { type DynamicPropType } from './types';\n\nconst DYNAMIC_PROP_TYPE_KEY = 'dynamic';\n\nconst isDynamicPropType = ( prop: TransformablePropType ): prop is DynamicPropType =>\n\tprop.key === DYNAMIC_PROP_TYPE_KEY;\n\nexport const getDynamicPropType = ( propType: PropType ): DynamicPropType | null => {\n\tconst dynamicPropType = propType.kind === 'union' && propType.prop_types[ DYNAMIC_PROP_TYPE_KEY ];\n\n\treturn dynamicPropType && isDynamicPropType( dynamicPropType ) ? dynamicPropType : null;\n};\n\nexport const isDynamicPropValue = ( prop: PropValue ): prop is DynamicPropValue => {\n\treturn isTransformable( prop ) && prop.$$type === DYNAMIC_PROP_TYPE_KEY;\n};\n\nexport const supportsDynamic = ( propType: PropType ): boolean => {\n\treturn !! getDynamicPropType( propType );\n};\n\nexport const dynamicPropTypeUtil = createPropUtils(\n\tDYNAMIC_PROP_TYPE_KEY,\n\tz.strictObject( {\n\t\tname: z.string(),\n\t\tsettings: z.any().optional(),\n\t} )\n);\n\nexport type DynamicPropValue = z.infer< typeof dynamicPropTypeUtil.schema >;\n","import * as React from 'react';\nimport { Fragment, useState } from 'react';\nimport { useBoundProp } from '@elementor/editor-controls';\nimport { DatabaseIcon, SearchIcon } from '@elementor/icons';\nimport {\n\tBox,\n\tDivider,\n\tInputAdornment,\n\tLink,\n\tMenuItem,\n\tMenuList,\n\tMenuSubheader,\n\tStack,\n\tTextField,\n\tTypography,\n} from '@elementor/ui';\nimport { __ } from '@wordpress/i18n';\n\nimport { usePersistDynamicValue } from '../../hooks/use-persist-dynamic-value';\nimport { usePropDynamicTags } from '../hooks/use-prop-dynamic-tags';\nimport { getAtomicDynamicTags } from '../sync/get-atomic-dynamic-tags';\nimport { dynamicPropTypeUtil } from '../utils';\n\ntype Option = {\n\tlabel: string;\n\tvalue: string;\n};\n\ntype OptionEntry = [ string, Option[] ];\n\nconst SIZE = 'tiny';\n\ntype DynamicSelectionProps = {\n\tonSelect?: () => void;\n};\n\ntype NoResultsProps = {\n\tsearchValue: string;\n\tonClear?: () => void;\n};\n\nexport const DynamicSelection = ( { onSelect }: DynamicSelectionProps ) => {\n\tconst [ searchValue, setSearchValue ] = useState( '' );\n\tconst { groups: dynamicGroups } = getAtomicDynamicTags() || {};\n\n\tconst { value: anyValue } = useBoundProp();\n\tconst { bind, value: dynamicValue, setValue } = useBoundProp( dynamicPropTypeUtil );\n\n\tconst [ , updatePropValueHistory ] = usePersistDynamicValue( bind );\n\n\tconst isCurrentValueDynamic = !! dynamicValue;\n\n\tconst options = useFilteredOptions( searchValue );\n\n\tconst hasNoDynamicTags = ! options.length && ! searchValue.trim();\n\n\tconst handleSearch = ( event: React.ChangeEvent< HTMLInputElement > ) => {\n\t\tsetSearchValue( event.target.value );\n\t};\n\n\tconst handleSetDynamicTag = ( value: string, label: string ) => {\n\t\tif ( ! isCurrentValueDynamic ) {\n\t\t\tupdatePropValueHistory( anyValue );\n\t\t}\n\n\t\tsetValue( { name: value, settings: { label } } );\n\n\t\tonSelect?.();\n\t};\n\n\treturn (\n\t\t<Stack>\n\t\t\t{ hasNoDynamicTags ? (\n\t\t\t\t<NoDynamicTags />\n\t\t\t) : (\n\t\t\t\t<Fragment>\n\t\t\t\t\t<Box px={ 1.5 } pb={ 1 }>\n\t\t\t\t\t\t<TextField\n\t\t\t\t\t\t\tfullWidth\n\t\t\t\t\t\t\tsize={ SIZE }\n\t\t\t\t\t\t\tvalue={ searchValue }\n\t\t\t\t\t\t\tonChange={ handleSearch }\n\t\t\t\t\t\t\tplaceholder={ __( 'Search dynamic tags…', 'elementor' ) }\n\t\t\t\t\t\t\tInputProps={ {\n\t\t\t\t\t\t\t\tstartAdornment: (\n\t\t\t\t\t\t\t\t\t<InputAdornment position=\"start\">\n\t\t\t\t\t\t\t\t\t\t<SearchIcon fontSize={ SIZE } />\n\t\t\t\t\t\t\t\t\t</InputAdornment>\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</Box>\n\t\t\t\t\t<Divider />\n\t\t\t\t\t<Box sx={ { overflowY: 'auto', height: 260, width: 220 } }>\n\t\t\t\t\t\t{ options.length > 0 ? (\n\t\t\t\t\t\t\t<MenuList role=\"listbox\" tabIndex={ 0 }>\n\t\t\t\t\t\t\t\t{ options.map( ( [ category, items ], index ) => (\n\t\t\t\t\t\t\t\t\t<Fragment key={ index }>\n\t\t\t\t\t\t\t\t\t\t<MenuSubheader\n\t\t\t\t\t\t\t\t\t\t\tsx={ { px: 1.5, typography: 'caption', color: 'text.tertiary' } }\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{ dynamicGroups?.[ category ]?.title || category }\n\t\t\t\t\t\t\t\t\t\t</MenuSubheader>\n\t\t\t\t\t\t\t\t\t\t{ items.map( ( { value, label: tagLabel } ) => {\n\t\t\t\t\t\t\t\t\t\t\tconst isSelected = isCurrentValueDynamic && value === dynamicValue?.name;\n\n\t\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\t\t\t\tkey={ value }\n\t\t\t\t\t\t\t\t\t\t\t\t\tselected={ isSelected }\n\t\t\t\t\t\t\t\t\t\t\t\t\t// eslint-disable-next-line jsx-a11y/no-autofocus\n\t\t\t\t\t\t\t\t\t\t\t\t\tautoFocus={ isSelected }\n\t\t\t\t\t\t\t\t\t\t\t\t\tsx={ { px: 3.5, typography: 'caption' } }\n\t\t\t\t\t\t\t\t\t\t\t\t\tonClick={ () => handleSetDynamicTag( value, tagLabel ) }\n\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t{ tagLabel }\n\t\t\t\t\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t} ) }\n\t\t\t\t\t\t\t\t\t</Fragment>\n\t\t\t\t\t\t\t\t) ) }\n\t\t\t\t\t\t\t</MenuList>\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t<NoResults searchValue={ searchValue } onClear={ () => setSearchValue( '' ) } />\n\t\t\t\t\t\t) }\n\t\t\t\t\t</Box>\n\t\t\t\t</Fragment>\n\t\t\t) }\n\t\t</Stack>\n\t);\n};\n\nconst NoResults = ( { searchValue, onClear }: NoResultsProps ) => (\n\t<Stack\n\t\tgap={ 1 }\n\t\talignItems=\"center\"\n\t\tjustifyContent=\"center\"\n\t\theight=\"100%\"\n\t\tp={ 2.5 }\n\t\tcolor=\"text.secondary\"\n\t\tsx={ { pb: 3.5 } }\n\t>\n\t\t<DatabaseIcon fontSize=\"large\" />\n\t\t<Typography align=\"center\" variant=\"subtitle2\">\n\t\t\t{ __( 'Sorry, nothing matched', 'elementor' ) }\n\t\t\t<br />\n\t\t\t“{ searchValue }”.\n\t\t</Typography>\n\t\t<Typography align=\"center\" variant=\"caption\">\n\t\t\t{ __( 'Try something else.', 'elementor' ) }\n\t\t\t \n\t\t\t<Link color=\"text.secondary\" variant=\"caption\" component=\"button\" onClick={ onClear }>\n\t\t\t\t{ __( 'Clear & try again', 'elementor' ) }\n\t\t\t</Link>\n\t\t</Typography>\n\t</Stack>\n);\n\nconst NoDynamicTags = () => (\n\t<Box sx={ { overflowY: 'hidden', height: 297, width: 220 } }>\n\t\t<Divider />\n\t\t<Stack\n\t\t\tgap={ 1 }\n\t\t\talignItems=\"center\"\n\t\t\tjustifyContent=\"center\"\n\t\t\theight=\"100%\"\n\t\t\tp={ 2.5 }\n\t\t\tcolor=\"text.secondary\"\n\t\t\tsx={ { pb: 3.5 } }\n\t\t>\n\t\t\t<DatabaseIcon fontSize=\"large\" />\n\t\t\t<Typography align=\"center\" variant=\"subtitle2\">\n\t\t\t\t{ __( 'Streamline your workflow with dynamic tags', 'elementor' ) }\n\t\t\t</Typography>\n\t\t\t<Typography align=\"center\" variant=\"caption\">\n\t\t\t\t{ __( 'You’ll need Elementor Pro to use this feature.', 'elementor' ) }\n\t\t\t</Typography>\n\t\t</Stack>\n\t</Box>\n);\n\nconst useFilteredOptions = ( searchValue: string ): OptionEntry[] => {\n\tconst dynamicTags = usePropDynamicTags();\n\n\tconst options = dynamicTags.reduce< Map< string, Option[] > >( ( categories, { name, label, group } ) => {\n\t\tconst isVisible = label.toLowerCase().includes( searchValue.trim().toLowerCase() );\n\n\t\tif ( ! isVisible ) {\n\t\t\treturn categories;\n\t\t}\n\n\t\tif ( ! categories.has( group ) ) {\n\t\t\tcategories.set( group, [] );\n\t\t}\n\n\t\tcategories.get( group )?.push( { label, value: name } );\n\n\t\treturn categories;\n\t}, new Map() );\n\n\treturn [ ...options ];\n};\n","import { createTransformer } from '@elementor/editor-canvas';\nimport { isTransformable, type Props } from '@elementor/editor-props';\n\nimport { DynamicTagsManagerNotFoundError } from './errors';\nimport { type ExtendedWindow } from './types';\n\ntype Dynamic = {\n\tname?: string;\n\tsettings?: Props;\n};\n\nexport const dynamicTransformer = createTransformer( ( value: Dynamic ) => {\n\tif ( ! value.name ) {\n\t\treturn null;\n\t}\n\n\treturn getDynamicValue( value.name, simpleTransform( value.settings ?? {} ) );\n} );\n\n// Temporary naive transformation until we'll have a `backendTransformer` that\n// will replace the `dynamicTransformer` client implementation.\nfunction simpleTransform( props: Props ) {\n\tconst transformed = Object.entries( props ).map( ( [ settingKey, settingValue ] ) => {\n\t\tconst value = isTransformable( settingValue ) ? settingValue.value : settingValue;\n\n\t\treturn [ settingKey, value ] as const;\n\t} );\n\n\treturn Object.fromEntries( transformed );\n}\n\nfunction getDynamicValue( name: string, settings: Record< string, unknown > ) {\n\tconst extendedWindow = window as unknown as ExtendedWindow;\n\tconst { dynamicTags } = extendedWindow.elementor ?? {};\n\n\tif ( ! dynamicTags ) {\n\t\tthrow new DynamicTagsManagerNotFoundError();\n\t}\n\n\tconst getTagValue = () => {\n\t\tconst tag = dynamicTags.createTag( 'v4-dynamic-tag', name, settings );\n\n\t\tif ( ! tag ) {\n\t\t\treturn null;\n\t\t}\n\n\t\treturn dynamicTags.loadTagDataFromCache( tag ) ?? null;\n\t};\n\n\tconst tagValue = getTagValue();\n\n\tif ( tagValue !== null ) {\n\t\treturn tagValue;\n\t}\n\n\treturn new Promise( ( resolve ) => {\n\t\tdynamicTags.refreshCacheFromServer( () => {\n\t\t\tresolve( getTagValue() );\n\t\t} );\n\t} );\n}\n","import { createError } from '@elementor/utils';\n\nexport const DynamicTagsManagerNotFoundError = createError( {\n\tcode: 'dynamic_tags_manager_not_found',\n\tmessage: 'Dynamic tags manager not found',\n} );\n","import * as React from 'react';\nimport { useBoundProp } from '@elementor/editor-controls';\nimport { DatabaseIcon } from '@elementor/icons';\nimport { __ } from '@wordpress/i18n';\n\nimport { type PopoverActionProps } from '../../popover-action';\nimport { DynamicSelection } from '../components/dynamic-selection';\nimport { supportsDynamic } from '../utils';\n\nexport const usePropDynamicAction = (): PopoverActionProps => {\n\tconst { propType } = useBoundProp();\n\n\tconst visible = !! propType && supportsDynamic( propType );\n\n\treturn {\n\t\tvisible,\n\t\ticon: DatabaseIcon,\n\t\ttitle: __( 'Dynamic tags', 'elementor' ),\n\t\tpopoverContent: ( { closePopover } ) => <DynamicSelection onSelect={ closePopover } />,\n\t};\n};\n","import { useBoundProp } from '@elementor/editor-controls';\nimport { BrushBigIcon } from '@elementor/icons';\nimport { __ } from '@wordpress/i18n';\n\nimport { useIsStyle } from './contexts/style-context';\nimport { controlActionsMenu } from './controls-actions';\n\nconst { registerAction } = controlActionsMenu;\n\nexport function initResetStyleProps() {\n\tregisterAction( {\n\t\tid: 'reset-style-value',\n\t\tuseProps: useResetStyleValueProps,\n\t} );\n}\n\n// Temporary fix for the issue with ControlToggleButtonGroup.\nconst EXCLUDED_BINDS = [ 'order', 'flex-grow', 'flex-shrink', 'flex-basis' ];\n\nexport function useResetStyleValueProps() {\n\tconst isStyle = useIsStyle();\n\tconst { value, setValue, path, bind } = useBoundProp();\n\n\treturn {\n\t\tvisible:\n\t\t\tisStyle && value !== null && value !== undefined && path.length <= 2 && ! EXCLUDED_BINDS.includes( bind ),\n\t\ttitle: __( 'Clear', 'elementor' ),\n\t\ticon: BrushBigIcon,\n\t\tonClick: () => setValue( null ),\n\t};\n}\n","import { createTransformer, styleTransformersRegistry } from '@elementor/editor-canvas';\n\nimport { excludePropTypeTransformers } from './consts';\nimport { stylesInheritanceTransformersRegistry } from './styles-inheritance-transformers-registry';\nimport { backgroundColorOverlayTransformer } from './transformers/background-color-overlay-transformer';\nimport { backgroundGradientOverlayTransformer } from './transformers/background-gradient-overlay-transformer';\nimport { backgroundImageOverlayTransformer } from './transformers/background-image-overlay-transformer';\nimport { backgroundOverlayTransformer } from './transformers/background-overlay-transformer';\n\nexport function initStylesInheritanceTransformers() {\n\tconst originalStyleTransformers = styleTransformersRegistry.all();\n\n\tObject.entries( originalStyleTransformers ).forEach( ( [ propType, transformer ] ) => {\n\t\tif ( excludePropTypeTransformers.has( propType ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tstylesInheritanceTransformersRegistry.register( propType, transformer );\n\t} );\n\n\tstylesInheritanceTransformersRegistry.registerFallback(\n\t\tcreateTransformer( ( value: unknown ) => {\n\t\t\treturn value;\n\t\t} )\n\t);\n\n\tregisterCustomTransformers();\n}\n\nfunction registerCustomTransformers() {\n\tstylesInheritanceTransformersRegistry.register( 'background-color-overlay', backgroundColorOverlayTransformer );\n\tstylesInheritanceTransformersRegistry.register(\n\t\t'background-gradient-overlay',\n\t\tbackgroundGradientOverlayTransformer\n\t);\n\tstylesInheritanceTransformersRegistry.register( 'background-image-overlay', backgroundImageOverlayTransformer );\n\tstylesInheritanceTransformersRegistry.register( 'background-overlay', backgroundOverlayTransformer );\n}\n","import * as React from 'react';\nimport { createTransformer } from '@elementor/editor-canvas';\nimport { Stack, styled, UnstableColorIndicator } from '@elementor/ui';\n\nexport type Color = {\n\tcolor: string;\n};\n\nexport const backgroundColorOverlayTransformer = createTransformer( ( value: Color ) => (\n\t<Stack direction=\"row\" gap={ 10 }>\n\t\t<ItemIconColor value={ value } />\n\t\t<ItemLabelColor value={ value } />\n\t</Stack>\n) );\n\nconst ItemIconColor = ( { value }: { value: Color } ) => {\n\tconst { color } = value;\n\treturn <StyledUnstableColorIndicator size=\"inherit\" component=\"span\" value={ color } />;\n};\n\nconst ItemLabelColor = ( { value: { color } }: { value: Color } ) => {\n\treturn <span>{ color }</span>;\n};\n\nexport const StyledUnstableColorIndicator = styled( UnstableColorIndicator )( ( { theme } ) => ( {\n\tborderRadius: `${ theme.shape.borderRadius / 2 }px`,\n} ) );\n","import * as React from 'react';\nimport { createTransformer } from '@elementor/editor-canvas';\nimport { Stack } from '@elementor/ui';\nimport { __ } from '@wordpress/i18n';\n\nimport { type Color, StyledUnstableColorIndicator } from './background-color-overlay-transformer';\n\ntype ColorStop = Color & {\n\toffset: number;\n};\n\ntype Gradient = {\n\ttype: string;\n\tangle?: number;\n\tpositions?: string;\n\tstops: ColorStop[];\n};\n\nexport const backgroundGradientOverlayTransformer = createTransformer( ( value: Gradient ) => (\n\t<Stack direction=\"row\" gap={ 10 }>\n\t\t<ItemIconGradient value={ value } />\n\t\t<ItemLabelGradient value={ value } />\n\t</Stack>\n) );\n\nconst ItemIconGradient = ( { value }: { value: Gradient } ) => {\n\tconst gradient = getGradientValue( value );\n\n\treturn <StyledUnstableColorIndicator size=\"inherit\" component=\"span\" value={ gradient } />;\n};\n\nconst ItemLabelGradient = ( { value }: { value: Gradient } ) => {\n\tif ( value.type === 'linear' ) {\n\t\treturn <span>{ __( 'Linear Gradient', 'elementor' ) }</span>;\n\t}\n\n\treturn <span>{ __( 'Radial Gradient', 'elementor' ) }</span>;\n};\n\nconst getGradientValue = ( gradient: Gradient ) => {\n\tconst stops = gradient.stops\n\t\t?.map( ( { color, offset }: ColorStop ) => `${ color } ${ offset ?? 0 }%` )\n\t\t?.join( ',' );\n\n\tif ( gradient.type === 'linear' ) {\n\t\treturn `linear-gradient(${ gradient.angle }deg, ${ stops })`;\n\t}\n\n\treturn `radial-gradient(circle at ${ gradient.positions }, ${ stops })`;\n};\n","import * as React from 'react';\nimport { createTransformer } from '@elementor/editor-canvas';\nimport { EllipsisWithTooltip } from '@elementor/editor-ui';\nimport { CardMedia, Stack, type Theme } from '@elementor/ui';\nimport { useWpMediaAttachment } from '@elementor/wp-media';\n\ntype ImageSrcAttachment = { id: number; url: null };\n\ntype ImageSrcUrl = { url: string; id: null };\n\ntype Image = {\n\timage: {\n\t\tsrc: ImageSrcAttachment | ImageSrcUrl;\n\t\tsize: 'thumbnail' | 'medium' | 'large' | 'full';\n\t};\n};\n\nexport const backgroundImageOverlayTransformer = createTransformer( ( value: Image ) => (\n\t<Stack direction=\"row\" gap={ 10 }>\n\t\t<ItemIconImage value={ value } />\n\t\t<ItemLabelImage value={ value } />\n\t</Stack>\n) );\n\nconst ItemIconImage = ( { value }: { value: Image } ) => {\n\tconst { imageUrl } = useImage( value );\n\n\treturn (\n\t\t<CardMedia\n\t\t\timage={ imageUrl }\n\t\t\tsx={ ( theme: Theme ) => ( {\n\t\t\t\theight: '1em',\n\t\t\t\twidth: '1em',\n\t\t\t\tborderRadius: `${ theme.shape.borderRadius / 2 }px`,\n\t\t\t\toutline: `1px solid ${ theme.palette.action.disabled }`,\n\t\t\t} ) }\n\t\t/>\n\t);\n};\n\nconst ItemLabelImage = ( { value }: { value: Image } ) => {\n\tconst { imageTitle } = useImage( value );\n\n\treturn (\n\t\t<EllipsisWithTooltip title={ imageTitle }>\n\t\t\t<span>{ imageTitle }</span>\n\t\t</EllipsisWithTooltip>\n\t);\n};\n\nconst useImage = ( image: Image ) => {\n\tlet imageTitle,\n\t\timageUrl: string | null = null;\n\n\tconst imageSrc = image?.image.src;\n\tconst { data: attachment } = useWpMediaAttachment( imageSrc.id || null );\n\n\tif ( imageSrc.id ) {\n\t\tconst imageFileTypeExtension = getFileExtensionFromFilename( attachment?.filename );\n\t\timageTitle = `${ attachment?.title }${ imageFileTypeExtension }` || null;\n\t\timageUrl = attachment?.url || null;\n\t} else if ( imageSrc.url ) {\n\t\timageUrl = imageSrc.url;\n\t\timageTitle = imageUrl?.substring( imageUrl.lastIndexOf( '/' ) + 1 ) || null;\n\t}\n\n\treturn { imageTitle, imageUrl };\n};\n\nconst getFileExtensionFromFilename = ( filename?: string ) => {\n\tif ( ! filename ) {\n\t\treturn '';\n\t}\n\n\t// get the substring after the last . in the filename\n\tconst extension = filename.substring( filename.lastIndexOf( '.' ) + 1 );\n\n\treturn `.${ extension }`;\n};\n","import * as React from 'react';\nimport { type ReactNode } from 'react';\nimport { createTransformer } from '@elementor/editor-canvas';\nimport { Stack } from '@elementor/ui';\n\ntype BackgroundOverlay = ReactNode[];\n\nexport const backgroundOverlayTransformer = createTransformer( ( values: BackgroundOverlay[] ) => {\n\tif ( ! values || values.length === 0 ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<Stack direction=\"column\">\n\t\t\t{ values.map( ( item, index ) => (\n\t\t\t\t<Stack key={ index }>{ item }</Stack>\n\t\t\t) ) }\n\t\t</Stack>\n\t);\n} );\n","import { isUsingIndicatorPopover } from './consts';\nimport { initStylesInheritanceTransformers } from './init-styles-inheritance-transformers';\n\nexport const init = () => {\n\tif ( isUsingIndicatorPopover() ) {\n\t\tinitStylesInheritanceTransformers();\n\t}\n};\n"],"mappings":"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","names":["useBoundProp","React","useState","getElementSetting","updateElementSettings","classesPropTypeUtil","isElementsStylesProvider","stylesRepository","validateStyleLabel","Box","Chip","Stack","Typography","__","React","createContext","useContext","Context","React","createContext","useContext","Context","createContext","useContext","React","options","options","useState","options","options","React","useState","stylesRepository","Chip","Stack","Typography","__","React","createContext","useContext","React","stylesRepository","useUserStylesCapability","__","styled","useMemo","useMemo","__","stylesRepository","useUserStylesCapability","useState","stylesRepository","Chip","Stack","Typography","__","__","options","useState","Stack","Chip","Box","Typography","stylesRepository","isElementsStylesProvider","validateStyleLabel","updateElementSettings","classesPropTypeUtil","getElementSetting","React","ThemeProvider","SessionStorageProvider","__","React","React","useId","IconButton","Stack","Tooltip","Typography","usePopupState","SIZE","PopoverContent","React","Box","React","Fragment","isExperimentActive","Divider","Stack","__","React","createContext","useContext","useRef","useState","styled","createContext","useContext","createContext","useContext","useState","isExperimentActive","isExperimentActive","useState","React","isExperimentActive","Divider","React","React","Box","styled","React","updateElementSettings","useElementSetting","useElementSetting","updateElementSettings","React","useId","Divider","Stack","styled","useId","Stack","Divider","React","isExperimentActive","Control","Divider","React","useState","isExperimentActive","SessionStorageProvider","Divider","Stack","__","React","createContext","useContext","useElementSetting","classesPropTypeUtil","stylesRepository","useEffect","useEffect","Context","createContext","useContext","useElementSetting","classesPropTypeUtil","stylesRepository","useElementSetting","useAppliedClassesIds","useElementSetting","React","React","PropKeyProvider","PropProvider","getStylesSchema","useMemo","getElementLabel","undoable","__","useMemo","undoable","getElementLabel","__","React","isEmpty","ELEMENTS_BASE_STYLES_PROVIDER_KEY","isElementsStylesProvider","isExperimentActive","Tooltip","__","isExperimentActive","React","useMemo","useState","Box","IconButton","Stack","Tooltip","Typography","__","createContext","useContext","useRef","React","Stack","React","Tooltip","SIZE","DEFAULT_BREAKPOINT","React","Chip","Tooltip","__","SIZE","React","Typography","React","Box","useEffect","useState","ELEMENTS_BASE_STYLES_PROVIDER_KEY","__","items","DEFAULT_BREAKPOINT","SIZE","useState","useMemo","items","Stack","Typography","__","Box","IconButton","Tooltip","isExperimentActive","isEmpty","ELEMENTS_BASE_STYLES_PROVIDER_KEY","Tooltip","__","isElementsStylesProvider","getStylesSchema","PropProvider","PropKeyProvider","React","React","Divider","React","__","React","Collapse","IconButton","Stack","React","ControlFormLabel","Stack","SIZE","Stack","IconButton","Collapse","React","__","__","React","SelectControl","Grid","__","__","Grid","SelectControl","React","__","__","__","React","EqualUnequalSizesControl","withDirection","__","withDirection","__","EqualUnequalSizesControl","React","React","ControlFormLabel","__","React","Stack","withDirection","__","React","useRef","useTheme","useRef","useTheme","withDirection","__","Stack","React","ToggleControl","CenterIcon","DirectionProvider","Grid","ThemeProvider","withDirection","__","StartIcon","withDirection","EndIcon","iconProps","options","__","CenterIcon","DirectionProvider","ThemeProvider","Grid","ToggleControl","React","ToggleControl","CenterIcon","LayoutAlignLeftIcon","LayoutAlignRightIcon","JustifyIcon","DirectionProvider","Grid","ThemeProvider","withDirection","__","StartIcon","withDirection","LayoutAlignLeftIcon","EndIcon","LayoutAlignRightIcon","iconProps","__","CenterIcon","JustifyIcon","DirectionProvider","ThemeProvider","Grid","ToggleControl","React","ToggleControl","isExperimentActive","Stack","__","__","isExperimentActive","items","Stack","ToggleControl","React","ToggleControl","DirectionProvider","Grid","ThemeProvider","withDirection","__","options","__","StartIcon","withDirection","EndIcon","DirectionProvider","ThemeProvider","Grid","ToggleControl","React","useState","ArrowDownSmallIcon","ArrowUpSmallIcon","DirectionProvider","Grid","ThemeProvider","__","__","ArrowUpSmallIcon","ArrowDownSmallIcon","useState","DirectionProvider","ThemeProvider","Grid","React","useMemo","useState","ControlToggleButtonGroup","NumberControl","SizeControl","PencilIcon","DirectionProvider","Grid","ThemeProvider","__","items","__","PencilIcon","useMemo","useState","DirectionProvider","ThemeProvider","Grid","ControlToggleButtonGroup","NumberControl","SizeControl","React","Stack","__","Stack","__","React","ToggleControl","JustifyBottomIcon","CenterIcon","EvenlyIcon","AroundIcon","BetweenIcon","JustifyTopIcon","DirectionProvider","Stack","ThemeProvider","withDirection","__","StartIcon","withDirection","JustifyTopIcon","EndIcon","JustifyBottomIcon","iconProps","options","__","CenterIcon","BetweenIcon","AroundIcon","EvenlyIcon","DirectionProvider","ThemeProvider","Stack","ToggleControl","React","ToggleControl","ArrowRightIcon","DirectionProvider","Grid","ThemeProvider","__","options","__","ArrowRightIcon","DirectionProvider","ThemeProvider","Grid","ToggleControl","ControlFormLabel","__","React","isExperimentActive","React","SizeControl","SideBottomIcon","SideLeftIcon","SideRightIcon","SideTopIcon","Grid","Stack","withDirection","__","InlineStartIcon","withDirection","SideLeftIcon","InlineEndIcon","SideRightIcon","SideTopIcon","SideBottomIcon","__","Stack","Grid","SizeControl","React","SizeControl","Grid","__","Grid","__","SizeControl","React","SelectControl","Grid","__","__","Grid","SelectControl","React","NumberControl","Grid","__","Grid","__","NumberControl","isExperimentActive","React","SizeControl","isExperimentActive","Grid","Stack","__","React","useState","Collapse","Stack","__","useState","Stack","__","Collapse","React","SelectControl","Grid","__","positionOptions","__","Grid","SelectControl","React","SelectControl","Grid","__","positionOptions","__","Grid","SelectControl","React","ToggleControl","Grid","__","options","__","Grid","ToggleControl","isExperimentActive","Grid","__","Stack","SizeControl","React","__","__","React","isExperimentActive","React","NumberControl","Grid","__","Grid","__","NumberControl","React","SizeControl","Grid","__","Grid","__","SizeControl","React","Grid","__","useMemo","__","__","options","useMemo","Grid","__","React","SizeControl","Grid","__","Grid","__","SizeControl","React","ControlFormLabel","ToggleControl","MinusIcon","Grid","__","options","__","MinusIcon","Grid","ControlFormLabel","ToggleControl","React","SelectControl","Grid","__","__","Grid","SelectControl","React","SizeControl","Grid","__","Grid","__","SizeControl","React","SizeControl","Grid","__","Grid","__","SizeControl","React","ToggleControl","Grid","withDirection","__","withDirection","options","__","Grid","ToggleControl","React","ColorControl","Grid","__","Grid","__","ColorControl","React","ToggleControl","MinusIcon","Grid","__","options","__","MinusIcon","Grid","ToggleControl","React","ToggleControl","Grid","__","options","__","Grid","ToggleControl","React","__","__","React","ToggleControl","MinusIcon","Grid","__","options","__","MinusIcon","Grid","ToggleControl","React","SizeControl","Grid","__","Grid","__","SizeControl","isExperimentActive","isExperimentActive","useState","SessionStorageProvider","Divider","__","Stack","Fragment","isExperimentActive","Stack","__","Divider","__","SessionStorageProvider","ThemeProvider","isExperimentActive","useEffect","getWidgetsCache","useEffect","React","ControlFormLabel","useBoundProp","DatabaseIcon","XIcon","bindPopover","bindTrigger","Box","Divider","Grid","IconButton","Popover","Stack","Tab","TabPanel","Tabs","Typography","usePopupState","useTabs","__","React","Stack","useSessionStorage","useSessionStorage","React","PropKeyProvider","PropProvider","useBoundProp","useMemo","useMemo","useBoundProp","getElementorConfig","getElementorConfig","isTransformable","useBoundProp","useMemo","useMemo","useBoundProp","PropProvider","PropKeyProvider","React","Fragment","useState","useBoundProp","Box","Divider","Link","MenuSubheader","Stack","TextField","Typography","__","SIZE","useState","useBoundProp","options","Stack","Fragment","Box","TextField","__","Divider","items","MenuSubheader","Typography","Link","SIZE","useBoundProp","usePopupState","Box","DatabaseIcon","bindTrigger","IconButton","__","XIcon","Popover","bindPopover","Stack","Typography","useTabs","Tabs","Tab","Divider","TabPanel","Control","Grid","ControlFormLabel","isTransformable","createError","isTransformable","React","useBoundProp","DatabaseIcon","__","useBoundProp","DatabaseIcon","__","useBoundProp","__","useBoundProp","__","createTransformer","styleTransformersRegistry","React","createTransformer","Stack","styled","React","createTransformer","Stack","__","createTransformer","Stack","__","React","createTransformer","EllipsisWithTooltip","Stack","React","createTransformer","Stack","styleTransformersRegistry","createTransformer","init","init","isExperimentActive"]}
|
|
1
|
+
{"version":3,"sources":["../src/index.ts","../src/control-replacement.tsx","../src/components/css-classes/css-class-selector.tsx","../src/contexts/classes-prop-context.tsx","../src/contexts/element-context.tsx","../src/contexts/style-context.tsx","../src/errors.ts","../src/components/creatable-autocomplete/creatable-autocomplete.tsx","../src/components/creatable-autocomplete/autocomplete-option-internal-properties.ts","../src/components/creatable-autocomplete/use-autocomplete-change.ts","../src/components/creatable-autocomplete/use-autocomplete-states.ts","../src/components/creatable-autocomplete/use-create-option.ts","../src/components/creatable-autocomplete/use-filter-options.ts","../src/components/css-classes/css-class-item.tsx","../src/components/css-classes/css-class-context.tsx","../src/components/css-classes/css-class-menu.tsx","../src/components/style-indicator.tsx","../src/components/css-classes/use-apply-and-unapply-class.ts","../src/sync/experiments-flags.ts","../src/panel.ts","../src/components/editing-panel.tsx","../src/controls-actions.ts","../src/action.tsx","../src/popover-action.tsx","../src/components/editing-panel-error-fallback.tsx","../src/components/editing-panel-tabs.tsx","../src/contexts/scroll-context.tsx","../src/hooks/use-default-panel-settings.ts","../src/hooks/use-state-by-element.ts","../src/components/settings-tab.tsx","../src/controls-registry/control.tsx","../src/controls-registry/controls-registry.tsx","../src/controls-registry/control-type-container.tsx","../src/controls-registry/settings-field.tsx","../src/controls-registry/create-top-level-object-type.ts","../src/components/section.tsx","../src/components/collapse-icon.tsx","../src/components/sections-list.tsx","../src/components/style-tab.tsx","../src/contexts/styles-inheritance-context.tsx","../src/hooks/use-styles-rerender.ts","../src/styles-inheritance/create-styles-inheritance.ts","../src/styles-inheritance/create-snapshots-manager.ts","../src/styles-inheritance/utils.ts","../src/hooks/use-active-style-def-id.ts","../src/components/style-sections/background-section/background-section.tsx","../src/controls-registry/styles-field.tsx","../src/hooks/use-styles-fields.ts","../src/hooks/use-styles-field.ts","../src/styles-inheritance/styles-inheritance-indicator.tsx","../src/styles-inheritance/consts.ts","../src/styles-inheritance/styles-inheritance-infotip.tsx","../src/components/section-content.tsx","../src/hooks/use-direction.ts","../src/sync/get-elementor-globals.ts","../src/styles-inheritance/components/breakpoint-icon.tsx","../src/styles-inheritance/components/label-chip.tsx","../src/styles-inheritance/components/value-component.tsx","../src/styles-inheritance/components/action-icons.tsx","../src/styles-inheritance/hooks/use-normalized-inheritance-chain-items.tsx","../src/styles-inheritance/styles-inheritance-transformers-registry.tsx","../src/components/style-sections/border-section/border-section.tsx","../src/components/panel-divider.tsx","../src/components/style-sections/border-section/border-field.tsx","../src/components/add-or-remove-content.tsx","../src/components/control-label.tsx","../src/components/style-sections/border-section/border-color-field.tsx","../src/components/style-sections/border-section/border-style-field.tsx","../src/components/style-sections/border-section/border-width-field.tsx","../src/components/style-sections/border-section/border-radius-field.tsx","../src/components/style-sections/effects-section/effects-section.tsx","../src/components/style-sections/layout-section/layout-section.tsx","../src/hooks/use-computed-style.ts","../src/components/style-sections/layout-section/align-content-field.tsx","../src/components/style-sections/layout-section/utils/rotated-icon.tsx","../src/components/style-sections/layout-section/align-items-field.tsx","../src/components/style-sections/layout-section/align-self-child-field.tsx","../src/components/style-sections/layout-section/display-field.tsx","../src/components/style-sections/layout-section/flex-direction-field.tsx","../src/components/style-sections/layout-section/flex-order-field.tsx","../src/components/style-sections/layout-section/flex-size-field.tsx","../src/components/style-sections/layout-section/gap-control-field.tsx","../src/components/style-sections/layout-section/justify-content-field.tsx","../src/components/style-sections/layout-section/wrap-field.tsx","../src/components/style-sections/position-section/position-section.tsx","../src/components/style-sections/position-section/dimensions-field.tsx","../src/components/style-sections/position-section/offset-field.tsx","../src/components/style-sections/position-section/position-field.tsx","../src/components/style-sections/position-section/z-index-field.tsx","../src/components/style-sections/size-section/size-section.tsx","../src/components/collapsible-content.tsx","../src/components/style-sections/size-section/object-fit-field.tsx","../src/components/style-sections/size-section/object-position-field.tsx","../src/components/style-sections/size-section/overflow-field.tsx","../src/components/style-sections/spacing-section/spacing-section.tsx","../src/components/style-sections/typography-section/typography-section.tsx","../src/components/style-sections/typography-section/column-count-field.tsx","../src/components/style-sections/typography-section/column-gap-field.tsx","../src/components/style-sections/typography-section/font-family-field.tsx","../src/components/style-sections/typography-section/hooks/use-font-families.ts","../src/components/style-sections/typography-section/font-size-field.tsx","../src/components/style-sections/typography-section/font-style-field.tsx","../src/components/style-sections/typography-section/font-weight-field.tsx","../src/components/style-sections/typography-section/letter-spacing-field.tsx","../src/components/style-sections/typography-section/line-height-field.tsx","../src/components/style-sections/typography-section/text-alignment-field.tsx","../src/components/style-sections/typography-section/text-color-field.tsx","../src/components/style-sections/typography-section/text-decoration-field.tsx","../src/components/style-sections/typography-section/text-direction-field.tsx","../src/components/style-sections/typography-section/text-stroke-field.tsx","../src/components/style-sections/typography-section/transform-field.tsx","../src/components/style-sections/typography-section/word-spacing-field.tsx","../src/init.ts","../src/hooks/use-open-editor-panel.ts","../src/sync/is-atomic-widget-selected.ts","../src/components/editing-panel-hooks.tsx","../src/dynamics/init.ts","../src/dynamics/components/dynamic-selection-control.tsx","../src/components/popover-content.tsx","../src/hooks/use-persist-dynamic-value.ts","../src/dynamics/dynamic-control.tsx","../src/dynamics/hooks/use-dynamic-tag.ts","../src/dynamics/hooks/use-prop-dynamic-tags.ts","../src/dynamics/sync/get-elementor-config.ts","../src/dynamics/sync/get-atomic-dynamic-tags.ts","../src/dynamics/utils.ts","../src/dynamics/components/dynamic-selection.tsx","../src/dynamics/dynamic-transformer.ts","../src/dynamics/errors.ts","../src/dynamics/hooks/use-prop-dynamic-action.tsx","../src/reset-style-props.tsx","../src/styles-inheritance/init-styles-inheritance-transformers.ts","../src/styles-inheritance/transformers/background-color-overlay-transformer.tsx","../src/styles-inheritance/transformers/background-gradient-overlay-transformer.tsx","../src/styles-inheritance/transformers/background-image-overlay-transformer.tsx","../src/styles-inheritance/transformers/background-overlay-transformer.tsx","../src/styles-inheritance/init.ts"],"sourcesContent":["export { useBoundProp } from '@elementor/editor-controls';\nexport type { PopoverActionProps } from './popover-action';\nexport { registerControlReplacement } from './control-replacement';\nexport { injectIntoClassSelectorActions } from './components/css-classes/css-class-selector';\nexport { usePanelActions, usePanelStatus } from './panel';\nexport { type ValidationResult, type ValidationEvent } from './components/creatable-autocomplete';\nexport { controlActionsMenu } from './controls-actions';\n\nexport { init } from './init';\n","import { createControlReplacementsRegistry } from '@elementor/editor-controls';\n\nexport const { registerControlReplacement, getControlReplacements } = createControlReplacementsRegistry();\n","import * as React from 'react';\nimport { type ReactElement, useRef, useState } from 'react';\nimport { useElementSetting } from '@elementor/editor-elements';\nimport { type ClassesPropValue } from '@elementor/editor-props';\nimport {\n\tisElementsStylesProvider,\n\ttype StylesProvider,\n\tstylesRepository,\n\ttype UpdateActionPayload,\n\tuseProviders,\n\tuseUserStylesCapability,\n\tvalidateStyleLabel,\n} from '@elementor/editor-styles-repository';\nimport { InfoAlert, WarningInfotip } from '@elementor/editor-ui';\nimport { ColorSwatchIcon, MapPinIcon } from '@elementor/icons';\nimport { createLocation } from '@elementor/locations';\nimport { type AutocompleteChangeReason, Box, Chip, FormLabel, Link, Stack, Typography } from '@elementor/ui';\nimport { __ } from '@wordpress/i18n';\n\nimport { useClassesProp } from '../../contexts/classes-prop-context';\nimport { useElement } from '../../contexts/element-context';\nimport { useStyle } from '../../contexts/style-context';\nimport {\n\tCreatableAutocomplete,\n\ttype CreatableAutocompleteProps,\n\ttype Option,\n\ttype ValidationEvent,\n\ttype ValidationResult,\n} from '../creatable-autocomplete';\nimport { CssClassItem } from './css-class-item';\nimport { useApplyClass, useCreateAndApplyClass, useUnapplyClass } from './use-apply-and-unapply-class';\n\nconst ID = 'elementor-css-class-selector';\nconst TAGS_LIMIT = 50;\n\ntype StyleDefOption = Option & {\n\tcolor: 'accent' | 'global';\n\ticon: ReactElement | null;\n\tprovider: string | null;\n};\n\nconst EMPTY_OPTION = {\n\tlabel: __( 'local', 'elementor' ),\n\tvalue: null,\n\tfixed: true,\n\tcolor: 'accent',\n\ticon: <MapPinIcon />,\n\tprovider: null,\n} satisfies StyleDefOption;\n\nexport const { Slot: ClassSelectorActionsSlot, inject: injectIntoClassSelectorActions } = createLocation();\n\n/**\n * Applied - Classes applied to an element.\n * Active - Class that is currently on edit mode.\n */\n\nexport function CssClassSelector() {\n\tconst options = useOptions();\n\n\tconst { id: activeId, setId: setActiveId } = useStyle();\n\n\tconst autocompleteRef = useRef< HTMLElement | null >( null );\n\tconst [ renameError, setRenameError ] = useState< string | null >( null );\n\n\tconst handleSelect = useHandleSelect();\n\tconst { create, validate, entityName } = useCreateAction();\n\n\tconst appliedOptions = useAppliedOptions( options );\n\tconst active = appliedOptions.find( ( option ) => option.value === activeId ) ?? EMPTY_OPTION;\n\n\tconst showPlaceholder = appliedOptions.every( ( { fixed } ) => fixed );\n\n\tconst { userCan } = useUserStylesCapability();\n\n\tconst canEdit = active.provider ? userCan( active.provider ).updateProps : true;\n\n\treturn (\n\t\t<Stack p={ 2 }>\n\t\t\t<Stack direction=\"row\" gap={ 1 } alignItems=\"center\" justifyContent=\"space-between\">\n\t\t\t\t<FormLabel htmlFor={ ID } size=\"small\">\n\t\t\t\t\t{ __( 'Classes', 'elementor' ) }\n\t\t\t\t</FormLabel>\n\t\t\t\t<Stack direction=\"row\" gap={ 1 }>\n\t\t\t\t\t<ClassSelectorActionsSlot />\n\t\t\t\t</Stack>\n\t\t\t</Stack>\n\t\t\t<WarningInfotip\n\t\t\t\topen={ Boolean( renameError ) }\n\t\t\t\ttext={ renameError ?? '' }\n\t\t\t\tplacement=\"bottom\"\n\t\t\t\twidth={ autocompleteRef.current?.getBoundingClientRect().width }\n\t\t\t\toffset={ [ 0, -15 ] }\n\t\t\t>\n\t\t\t\t<CreatableAutocomplete< StyleDefOption >\n\t\t\t\t\tid={ ID }\n\t\t\t\t\tref={ autocompleteRef }\n\t\t\t\t\tsize=\"tiny\"\n\t\t\t\t\tplaceholder={ showPlaceholder ? __( 'Type class name', 'elementor' ) : undefined }\n\t\t\t\t\toptions={ options }\n\t\t\t\t\tselected={ appliedOptions }\n\t\t\t\t\tentityName={ entityName }\n\t\t\t\t\tonSelect={ handleSelect }\n\t\t\t\t\tonCreate={ create ?? undefined }\n\t\t\t\t\tvalidate={ validate ?? undefined }\n\t\t\t\t\tlimitTags={ TAGS_LIMIT }\n\t\t\t\t\trenderEmptyState={ EmptyState }\n\t\t\t\t\tgetLimitTagsText={ ( more ) => (\n\t\t\t\t\t\t<Chip size=\"tiny\" variant=\"standard\" label={ `+${ more }` } clickable />\n\t\t\t\t\t) }\n\t\t\t\t\trenderTags={ ( values, getTagProps ) =>\n\t\t\t\t\t\tvalues.map( ( value, index ) => {\n\t\t\t\t\t\t\tconst chipProps = getTagProps( { index } );\n\t\t\t\t\t\t\tconst isActive = value.value === active?.value;\n\n\t\t\t\t\t\t\tconst renameLabel = ( newLabel: string ) => {\n\t\t\t\t\t\t\t\tif ( ! value.value ) {\n\t\t\t\t\t\t\t\t\tthrow new Error( `Cannot rename a class without style id` );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\treturn updateClassByProvider( value.provider, { label: newLabel, id: value.value } );\n\t\t\t\t\t\t\t};\n\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t<CssClassItem\n\t\t\t\t\t\t\t\t\tkey={ chipProps.key }\n\t\t\t\t\t\t\t\t\tfixed={ value.fixed }\n\t\t\t\t\t\t\t\t\tlabel={ value.label }\n\t\t\t\t\t\t\t\t\tprovider={ value.provider }\n\t\t\t\t\t\t\t\t\tid={ value.value }\n\t\t\t\t\t\t\t\t\tisActive={ isActive }\n\t\t\t\t\t\t\t\t\tcolor={ isActive && value.color ? value.color : 'default' }\n\t\t\t\t\t\t\t\t\ticon={ value.icon }\n\t\t\t\t\t\t\t\t\tchipProps={ chipProps }\n\t\t\t\t\t\t\t\t\tonClickActive={ () => setActiveId( value.value ) }\n\t\t\t\t\t\t\t\t\trenameLabel={ renameLabel }\n\t\t\t\t\t\t\t\t\tsetError={ setRenameError }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} )\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t</WarningInfotip>\n\t\t\t{ ! canEdit && (\n\t\t\t\t<InfoAlert\n\t\t\t\t\tcontent={ __(\n\t\t\t\t\t\t'With your current role, you can use existing classes but can’t modify them.',\n\t\t\t\t\t\t'elementor'\n\t\t\t\t\t) }\n\t\t\t\t\tsx={ { mt: 1 } }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</Stack>\n\t);\n}\n\nconst EmptyState = ( { searchValue, onClear }: { searchValue: string; onClear: () => void } ) => (\n\t<Box sx={ { py: 4 } }>\n\t\t<Stack\n\t\t\tgap={ 1 }\n\t\t\talignItems=\"center\"\n\t\t\tcolor=\"text.secondary\"\n\t\t\tjustifyContent=\"center\"\n\t\t\tsx={ { px: 2, m: 'auto', maxWidth: '236px' } }\n\t\t>\n\t\t\t<ColorSwatchIcon sx={ { transform: 'rotate(90deg)' } } fontSize=\"large\" />\n\t\t\t<Typography align=\"center\" variant=\"subtitle2\">\n\t\t\t\t{ __( 'Sorry, nothing matched', 'elementor' ) }\n\t\t\t\t<br />\n\t\t\t\t“{ searchValue }”.\n\t\t\t</Typography>\n\t\t\t<Typography align=\"center\" variant=\"caption\" sx={ { mb: 2 } }>\n\t\t\t\t{ __( 'With your current role,', 'elementor' ) }\n\t\t\t\t<br />\n\t\t\t\t{ __( 'you can only use existing classes.', 'elementor' ) }\n\t\t\t</Typography>\n\t\t\t<Link color=\"text.secondary\" variant=\"caption\" component=\"button\" onClick={ onClear }>\n\t\t\t\t{ __( 'Clear & try again', 'elementor' ) }\n\t\t\t</Link>\n\t\t</Stack>\n\t</Box>\n);\n\nconst updateClassByProvider = ( provider: string | null, data: UpdateActionPayload ) => {\n\tif ( ! provider ) {\n\t\treturn;\n\t}\n\n\tconst providerInstance = stylesRepository.getProviderByKey( provider );\n\n\tif ( ! providerInstance ) {\n\t\treturn;\n\t}\n\n\treturn providerInstance.actions.update?.( data );\n};\n\nfunction useOptions() {\n\tconst { element } = useElement();\n\n\tconst isProviderEditable = ( provider: StylesProvider ) => !! provider.actions.updateProps;\n\n\treturn useProviders()\n\t\t.filter( isProviderEditable )\n\t\t.flatMap< StyleDefOption >( ( provider ) => {\n\t\t\tconst isElements = isElementsStylesProvider( provider.getKey() );\n\t\t\tconst styleDefs = provider.actions.all( { elementId: element.id } );\n\n\t\t\t// Add empty local option for elements, as fallback.\n\t\t\tif ( isElements && styleDefs.length === 0 ) {\n\t\t\t\treturn [ EMPTY_OPTION ];\n\t\t\t}\n\n\t\t\treturn styleDefs.map( ( styleDef ) => {\n\t\t\t\treturn {\n\t\t\t\t\tlabel: styleDef.label,\n\t\t\t\t\tvalue: styleDef.id,\n\t\t\t\t\tfixed: isElements,\n\t\t\t\t\tcolor: isElements ? 'accent' : 'global',\n\t\t\t\t\ticon: isElements ? <MapPinIcon /> : null,\n\t\t\t\t\tprovider: provider.getKey(),\n\t\t\t\t};\n\t\t\t} );\n\t\t} );\n}\n\nfunction useCreateAction() {\n\tconst [ provider, createAction ] = useCreateAndApplyClass();\n\tif ( ! provider || ! createAction ) {\n\t\treturn {};\n\t}\n\n\tconst create = ( classLabel: string ) => {\n\t\tcreateAction( { classLabel } );\n\t};\n\n\tconst validate = ( newClassLabel: string, event: ValidationEvent ): ValidationResult => {\n\t\tif ( hasReachedLimit( provider ) ) {\n\t\t\treturn {\n\t\t\t\tisValid: false,\n\t\t\t\terrorMessage: __(\n\t\t\t\t\t'You’ve reached the limit of 50 classes. Please remove an existing one to create a new class.',\n\t\t\t\t\t'elementor'\n\t\t\t\t),\n\t\t\t};\n\t\t}\n\t\treturn validateStyleLabel( newClassLabel, event );\n\t};\n\n\tconst entityName =\n\t\tprovider.labels.singular && provider.labels.plural\n\t\t\t? ( provider.labels as CreatableAutocompleteProps< StyleDefOption >[ 'entityName' ] )\n\t\t\t: undefined;\n\n\treturn { create, validate, entityName };\n}\n\nfunction hasReachedLimit( provider: StylesProvider ) {\n\treturn provider.actions.all().length >= provider.limit;\n}\n\nfunction useAppliedOptions( options: StyleDefOption[] ) {\n\tconst { element } = useElement();\n\tconst currentClassesProp = useClassesProp();\n\n\tconst appliedIds = useElementSetting< ClassesPropValue >( element.id, currentClassesProp )?.value || [];\n\tconst appliedOptions = options.filter( ( option ) => option.value && appliedIds.includes( option.value ) );\n\n\tconst hasElementsProviderStyleApplied = appliedOptions.some(\n\t\t( option ) => option.provider && isElementsStylesProvider( option.provider )\n\t);\n\n\tif ( ! hasElementsProviderStyleApplied ) {\n\t\tappliedOptions.unshift( EMPTY_OPTION );\n\t}\n\n\treturn appliedOptions;\n}\n\nfunction useHandleSelect() {\n\tconst apply = useApplyClass();\n\tconst unapply = useUnapplyClass();\n\n\treturn ( _selectedOptions: StyleDefOption[], reason: AutocompleteChangeReason, option: StyleDefOption ) => {\n\t\tif ( ! option.value ) {\n\t\t\treturn;\n\t\t}\n\n\t\tswitch ( reason ) {\n\t\t\tcase 'selectOption':\n\t\t\t\tapply( { classId: option.value, classLabel: option.label } );\n\t\t\t\tbreak;\n\n\t\t\tcase 'removeOption':\n\t\t\t\tunapply( { classId: option.value, classLabel: option.label } );\n\t\t\t\tbreak;\n\t\t}\n\t};\n}\n","import * as React from 'react';\nimport { createContext, type PropsWithChildren, useContext } from 'react';\n\ntype ContextValue = {\n\tprop: string;\n};\n\nconst Context = createContext< ContextValue | null >( null );\n\ntype Props = PropsWithChildren< ContextValue >;\n\nexport function ClassesPropProvider( { children, prop }: Props ) {\n\treturn <Context.Provider value={ { prop } }>{ children }</Context.Provider>;\n}\n\nexport function useClassesProp() {\n\tconst context = useContext( Context );\n\n\tif ( ! context ) {\n\t\tthrow new Error( 'useClassesProp must be used within a ClassesPropProvider' );\n\t}\n\n\treturn context.prop;\n}\n","import * as React from 'react';\nimport { createContext, type PropsWithChildren, useContext } from 'react';\nimport { type Element, type ElementType } from '@elementor/editor-elements';\n\ntype ContextValue = {\n\telement: Element;\n\telementType: ElementType;\n};\n\nconst Context = createContext< ContextValue | null >( null );\n\ntype Props = PropsWithChildren< ContextValue >;\n\nexport function ElementProvider( { children, element, elementType }: Props ) {\n\treturn <Context.Provider value={ { element, elementType } }>{ children }</Context.Provider>;\n}\n\nexport function useElement() {\n\tconst context = useContext( Context );\n\n\tif ( ! context ) {\n\t\tthrow new Error( 'useElement must be used within a ElementProvider' );\n\t}\n\n\treturn context;\n}\n","import * as React from 'react';\nimport { createContext, type Dispatch, type PropsWithChildren, useContext } from 'react';\nimport {\n\ttype StyleDefinition,\n\ttype StyleDefinitionID,\n\ttype StyleDefinitionState,\n\ttype StyleDefinitionVariant,\n} from '@elementor/editor-styles';\nimport { type StylesProvider, stylesRepository, useUserStylesCapability } from '@elementor/editor-styles-repository';\n\nimport { StylesProviderNotFoundError } from '../errors';\n\ntype ContextValue = {\n\tsetId: Dispatch< StyleDefinition[ 'id' ] | null >;\n\tmeta: StyleDefinitionVariant[ 'meta' ];\n\tsetMetaState: Dispatch< StyleDefinitionState >;\n\tcanEdit?: boolean;\n} & ( ContextValueWithProvider | ContextValueWithoutProvider );\n\ntype ContextValueWithProvider = {\n\tid: StyleDefinitionID;\n\tprovider: StylesProvider;\n};\n\ntype ContextValueWithoutProvider = {\n\tid: null;\n\tprovider: null;\n};\n\nconst Context = createContext< ContextValue | null >( null );\n\ntype Props = PropsWithChildren< Omit< ContextValue, 'provider' > >;\n\nexport function StyleProvider( { children, ...props }: Props ) {\n\tconst provider = props.id === null ? null : getProviderByStyleId( props.id );\n\n\tconst { userCan } = useUserStylesCapability();\n\n\tif ( props.id && ! provider ) {\n\t\tthrow new StylesProviderNotFoundError( { context: { styleId: props.id } } );\n\t}\n\n\tconst canEdit = userCan( provider?.getKey() ?? '' ).updateProps;\n\n\treturn <Context.Provider value={ { ...props, provider, canEdit } as ContextValue }>{ children }</Context.Provider>;\n}\n\nexport function useStyle() {\n\tconst context = useContext( Context );\n\n\tif ( ! context ) {\n\t\tthrow new Error( 'useStyle must be used within a StyleProvider' );\n\t}\n\n\treturn context;\n}\n\nexport function getProviderByStyleId( styleId: StyleDefinitionID ) {\n\tconst styleProvider = stylesRepository.getProviders().find( ( provider ) => {\n\t\treturn provider.actions.all().find( ( style ) => style.id === styleId );\n\t} );\n\n\treturn styleProvider ?? null;\n}\n\nexport function useIsStyle(): boolean {\n\treturn !! useContext( Context );\n}\n","import { type StyleDefinitionID } from '@elementor/editor-styles';\nimport { createError } from '@elementor/utils';\n\nexport const ControlTypeNotFoundError = createError< { controlType: string } >( {\n\tcode: 'control_type_not_found',\n\tmessage: 'Control type not found.',\n} );\n\nexport const StylesProviderNotFoundError = createError< { styleId: StyleDefinitionID } >( {\n\tcode: 'provider_not_found',\n\tmessage: 'Styles provider not found.',\n} );\n\nexport const StylesProviderCannotUpdatePropsError = createError< { providerKey: string } >( {\n\tcode: 'provider_cannot_update_props',\n\tmessage: \"Styles provider doesn't support updating props.\",\n} );\n\nexport const StyleNotFoundUnderProviderError = createError< { styleId: StyleDefinitionID; providerKey: string } >( {\n\tcode: 'style_not_found_under_provider',\n\tmessage: 'Style not found under the provider.',\n} );\n","import * as React from 'react';\nimport { type HTMLAttributes, useId, useMemo } from 'react';\nimport {\n\tAutocomplete,\n\ttype AutocompleteProps,\n\ttype AutocompleteRenderGroupParams,\n\tBox,\n\tChip,\n\tstyled,\n\tTextField,\n\ttype Theme,\n\tTypography,\n} from '@elementor/ui';\n\nimport { addGroupToOptions } from './autocomplete-option-internal-properties';\nimport { type CreatableAutocompleteProps, type InternalOption, type SafeOptionConstraint } from './types';\nimport { useAutocompleteChange } from './use-autocomplete-change';\nimport { useInputState, useOpenState } from './use-autocomplete-states';\nimport { useCreateOption } from './use-create-option';\nimport { useFilterOptions } from './use-filter-options';\n\nconst MIN_INPUT_LENGTH = 2;\n\nexport const CreatableAutocomplete = React.forwardRef( CreatableAutocompleteInner ) as <\n\tTOption extends SafeOptionConstraint,\n>(\n\tprops: CreatableAutocompleteProps< TOption > & {\n\t\tref?: React.ForwardedRef< HTMLElement >;\n\t}\n) => ReturnType< typeof CreatableAutocompleteInner >;\n\nfunction CreatableAutocompleteInner< TOption extends SafeOptionConstraint >(\n\t{\n\t\tselected,\n\t\toptions,\n\t\tentityName,\n\t\tonSelect,\n\t\tplaceholder,\n\t\tonCreate,\n\t\tvalidate,\n\t\trenderEmptyState,\n\t\t...props\n\t}: CreatableAutocompleteProps< TOption >,\n\tref: React.ForwardedRef< HTMLElement >\n) {\n\tconst { inputValue, setInputValue, error, setError, inputHandlers } = useInputState( validate );\n\tconst { open, openDropdown, closeDropdown } = useOpenState( props.open );\n\tconst { createOption, loading } = useCreateOption( { onCreate, validate, setInputValue, setError, closeDropdown } );\n\n\tconst [ internalOptions, internalSelected ] = useMemo(\n\t\t() => [ options, selected ].map( ( optionsArr ) => addGroupToOptions( optionsArr, entityName?.plural ) ),\n\t\t[ options, selected, entityName?.plural ]\n\t);\n\n\tconst handleChange = useAutocompleteChange( {\n\t\toptions: internalOptions,\n\t\tonSelect,\n\t\tcreateOption,\n\t\tsetInputValue,\n\t\tcloseDropdown,\n\t} );\n\n\tconst filterOptions = useFilterOptions( { options, selected, onCreate, entityName } );\n\n\tconst isCreatable = Boolean( onCreate );\n\n\tconst freeSolo = isCreatable || inputValue.length < MIN_INPUT_LENGTH || undefined;\n\n\treturn (\n\t\t<Autocomplete< InternalOption< TOption >, true, true, true >\n\t\t\trenderTags={ ( tagValue, getTagProps ) => {\n\t\t\t\treturn tagValue.map( ( option, index ) => (\n\t\t\t\t\t<Chip\n\t\t\t\t\t\tsize=\"tiny\"\n\t\t\t\t\t\t{ ...getTagProps( { index } ) }\n\t\t\t\t\t\tkey={ option.key ?? option.value ?? option.label }\n\t\t\t\t\t\tlabel={ option.label }\n\t\t\t\t\t/>\n\t\t\t\t) );\n\t\t\t} }\n\t\t\t{ ...( props as AutocompleteProps< InternalOption< TOption >, true, true, true > ) }\n\t\t\tref={ ref }\n\t\t\tfreeSolo={ freeSolo }\n\t\t\tforcePopupIcon={ false }\n\t\t\tmultiple\n\t\t\tclearOnBlur\n\t\t\tselectOnFocus\n\t\t\tdisableClearable\n\t\t\thandleHomeEndKeys\n\t\t\tdisabled={ loading }\n\t\t\topen={ open }\n\t\t\tonOpen={ openDropdown }\n\t\t\tonClose={ closeDropdown }\n\t\t\tdisableCloseOnSelect\n\t\t\tvalue={ internalSelected }\n\t\t\toptions={ internalOptions }\n\t\t\tListboxComponent={\n\t\t\t\terror\n\t\t\t\t\t? React.forwardRef< HTMLElement, ErrorTextProps >( ( _, errorTextRef ) => (\n\t\t\t\t\t\t\t<ErrorText ref={ errorTextRef } error={ error } />\n\t\t\t\t\t ) )\n\t\t\t\t\t: undefined\n\t\t\t}\n\t\t\trenderGroup={ ( params ) => <Group { ...params } /> }\n\t\t\tinputValue={ inputValue }\n\t\t\trenderInput={ ( params ) => {\n\t\t\t\treturn (\n\t\t\t\t\t<TextField\n\t\t\t\t\t\t{ ...params }\n\t\t\t\t\t\terror={ Boolean( error ) }\n\t\t\t\t\t\tplaceholder={ placeholder }\n\t\t\t\t\t\t{ ...inputHandlers }\n\t\t\t\t\t\tsx={ ( theme: Theme ) => ( {\n\t\t\t\t\t\t\t'.MuiAutocomplete-inputRoot.MuiInputBase-adornedStart': {\n\t\t\t\t\t\t\t\tpaddingLeft: theme.spacing( 0.25 ),\n\t\t\t\t\t\t\t\tpaddingRight: theme.spacing( 0.25 ),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t} ) }\n\t\t\t\t\t/>\n\t\t\t\t);\n\t\t\t} }\n\t\t\tonChange={ handleChange }\n\t\t\tgetOptionLabel={ ( option ) => ( typeof option === 'string' ? option : option.label ) }\n\t\t\tgetOptionKey={ ( option ) => {\n\t\t\t\tif ( typeof option === 'string' ) {\n\t\t\t\t\treturn option;\n\t\t\t\t}\n\n\t\t\t\treturn option.key ?? option.value ?? option.label;\n\t\t\t} }\n\t\t\tfilterOptions={ filterOptions }\n\t\t\tgroupBy={ ( option ) => option._group ?? '' }\n\t\t\trenderOption={ ( optionProps, option ) => {\n\t\t\t\tconst { _group, label } = option;\n\n\t\t\t\treturn (\n\t\t\t\t\t<li\n\t\t\t\t\t\t{ ...optionProps }\n\t\t\t\t\t\tstyle={ { display: 'block', textOverflow: 'ellipsis' } }\n\t\t\t\t\t\tdata-group={ _group }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ label }\n\t\t\t\t\t</li>\n\t\t\t\t);\n\t\t\t} }\n\t\t\tnoOptionsText={ renderEmptyState?.( {\n\t\t\t\tsearchValue: inputValue,\n\t\t\t\tonClear: () => {\n\t\t\t\t\tsetInputValue( '' );\n\t\t\t\t\tcloseDropdown();\n\t\t\t\t},\n\t\t\t} ) }\n\t\t\tisOptionEqualToValue={ ( option, value ) => {\n\t\t\t\tif ( typeof option === 'string' ) {\n\t\t\t\t\treturn option === value;\n\t\t\t\t}\n\n\t\t\t\treturn option.value === value.value;\n\t\t\t} }\n\t\t/>\n\t);\n}\n\nconst Group = ( params: Omit< AutocompleteRenderGroupParams, 'key' > ) => {\n\tconst id = `combobox-group-${ useId().replace( /:/g, '_' ) }`;\n\n\treturn (\n\t\t<StyledGroup role=\"group\" aria-labelledby={ id }>\n\t\t\t<StyledGroupHeader id={ id }> { params.group }</StyledGroupHeader>\n\t\t\t<StyledGroupItems role=\"listbox\">{ params.children }</StyledGroupItems>\n\t\t</StyledGroup>\n\t);\n};\n\ntype ErrorTextProps = {\n\terror?: string;\n} & HTMLAttributes< HTMLElement >;\n\nconst ErrorText = React.forwardRef< HTMLElement, ErrorTextProps >( ( { error = 'error' }, ref ) => {\n\treturn (\n\t\t<Box\n\t\t\tref={ ref }\n\t\t\tsx={ ( theme: Theme ) => ( {\n\t\t\t\tpadding: theme.spacing( 2 ),\n\t\t\t} ) }\n\t\t>\n\t\t\t<Typography variant=\"caption\" sx={ { color: 'error.main', display: 'inline-block' } }>\n\t\t\t\t{ error }\n\t\t\t</Typography>\n\t\t</Box>\n\t);\n} );\n\nconst StyledGroup = styled( 'li' )`\n\t&:not( :last-of-type ) {\n\t\tborder-bottom: 1px solid ${ ( { theme } ) => theme.palette.divider };\n\t}\n`;\n\nconst StyledGroupHeader = styled( Box )( ( { theme } ) => ( {\n\tposition: 'sticky',\n\ttop: '-8px',\n\tpadding: theme.spacing( 1, 2 ),\n\tcolor: theme.palette.text.tertiary,\n\tbackgroundColor: theme.palette.primary.contrastText,\n} ) );\n\nconst StyledGroupItems = styled( 'ul' )`\n\tpadding: 0;\n`;\n","import { type InternalOption, type Option } from './types';\n\nexport function addGroupToOptions< TOption extends Option >(\n\toptions: TOption[],\n\tpluralEntityName?: string\n): InternalOption< TOption >[] {\n\treturn options.map( ( option ) => {\n\t\treturn {\n\t\t\t...option,\n\t\t\t_group: `Existing ${ pluralEntityName ?? 'options' }`,\n\t\t};\n\t} );\n}\n\nexport function removeInternalKeys< TOption extends Option >( option: InternalOption< TOption > ): TOption {\n\tconst { _group, _action, ...rest } = option;\n\treturn rest as unknown as TOption;\n}\n","import { type AutocompleteChangeDetails, type AutocompleteChangeReason } from '@elementor/ui';\n\nimport { removeInternalKeys } from './autocomplete-option-internal-properties';\nimport { type InternalOption, type OnSelect, type Option } from './types';\n\nexport function useAutocompleteChange< TOption extends Option >( params: {\n\toptions: InternalOption< TOption >[];\n\tonSelect?: OnSelect< TOption >;\n\tcreateOption: ( ( value: string ) => Promise< unknown > ) | null;\n\tsetInputValue: ( value: string ) => void;\n\tcloseDropdown: () => void;\n} ) {\n\tconst { options, onSelect, createOption, setInputValue, closeDropdown } = params;\n\n\tif ( ! onSelect && ! createOption ) {\n\t\treturn;\n\t}\n\n\tconst handleChange = async (\n\t\t_: React.SyntheticEvent,\n\t\tselectedOrInputValue: Array< InternalOption< TOption > | string >,\n\t\treason: AutocompleteChangeReason,\n\t\tdetails?: AutocompleteChangeDetails< InternalOption< TOption > | string >\n\t) => {\n\t\tconst changedOption = details?.option;\n\t\tif ( ! changedOption || ( typeof changedOption === 'object' && changedOption.fixed ) ) {\n\t\t\t// If `changedOption` is nullish it means no option was selected, created or removed.\n\t\t\t// The reason is either \"blur\" which we don't support (can't be \"clear\" since we disabled it).\n\t\t\t// If the option is fixed, it can't be selected, created or removed.\n\t\t\treturn;\n\t\t}\n\n\t\tconst selectedOptions = selectedOrInputValue.filter( ( option ) => typeof option !== 'string' );\n\n\t\tswitch ( reason ) {\n\t\t\tcase 'removeOption':\n\t\t\t\tconst removedOption = changedOption as InternalOption< TOption >;\n\t\t\t\tupdateSelectedOptions( selectedOptions, 'removeOption', removedOption );\n\t\t\t\tbreak;\n\n\t\t\t// User clicked an option. It's either an existing option, or \"Create <new option>\".\n\t\t\tcase 'selectOption': {\n\t\t\t\tconst selectedOption = changedOption as InternalOption< TOption >;\n\n\t\t\t\tif ( selectedOption._action === 'create' ) {\n\t\t\t\t\tconst newOption = selectedOption.value as string;\n\t\t\t\t\treturn createOption?.( newOption );\n\t\t\t\t}\n\n\t\t\t\tupdateSelectedOptions( selectedOptions, 'selectOption', selectedOption );\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\t// User pressed \"Enter\" after typing input. The input is either matching existing option or a new option to create.\n\t\t\tcase 'createOption': {\n\t\t\t\tconst inputValue = changedOption as string;\n\n\t\t\t\tconst matchingOption = options.find(\n\t\t\t\t\t( option ) => option.label.toLocaleLowerCase() === inputValue.toLocaleLowerCase()\n\t\t\t\t);\n\t\t\t\tif ( matchingOption ) {\n\t\t\t\t\tselectedOptions.push( matchingOption );\n\t\t\t\t\tupdateSelectedOptions( selectedOptions, 'selectOption', matchingOption );\n\t\t\t\t} else {\n\t\t\t\t\treturn createOption?.( inputValue );\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\tsetInputValue( '' );\n\t\tcloseDropdown();\n\t};\n\n\treturn handleChange;\n\n\tfunction updateSelectedOptions(\n\t\tselectedOptions: InternalOption< TOption >[],\n\t\treason: AutocompleteChangeReason,\n\t\tchangedOption: InternalOption< TOption >\n\t) {\n\t\tonSelect?.(\n\t\t\tselectedOptions.map( ( option ) => removeInternalKeys( option ) ),\n\t\t\treason,\n\t\t\tremoveInternalKeys( changedOption )\n\t\t);\n\t}\n}\n","import { useState } from 'react';\n\nimport { type ValidationEvent, type ValidationResult } from './types';\n\nexport function useInputState( validate?: ( value: string, event: ValidationEvent ) => ValidationResult ) {\n\tconst [ inputValue, setInputValue ] = useState( '' );\n\tconst [ error, setError ] = useState< string | null >( null );\n\n\tconst handleInputChange = ( event: React.ChangeEvent< HTMLInputElement > ) => {\n\t\tconst { value } = event.target;\n\n\t\tsetInputValue( value );\n\n\t\tif ( ! validate ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( ! value ) {\n\t\t\tsetError( null );\n\t\t\treturn;\n\t\t}\n\n\t\tconst { isValid, errorMessage } = validate( value, 'inputChange' );\n\n\t\tif ( isValid ) {\n\t\t\tsetError( null );\n\t\t} else {\n\t\t\tsetError( errorMessage );\n\t\t}\n\t};\n\n\tconst handleInputBlur = () => {\n\t\tsetInputValue( '' );\n\t\tsetError( null );\n\t};\n\n\treturn {\n\t\tinputValue,\n\t\tsetInputValue,\n\t\terror,\n\t\tsetError,\n\t\tinputHandlers: {\n\t\t\tonChange: handleInputChange,\n\t\t\tonBlur: handleInputBlur,\n\t\t},\n\t};\n}\n\nexport function useOpenState( initialOpen: boolean = false ) {\n\tconst [ open, setOpen ] = useState( initialOpen );\n\n\tconst openDropdown = () => setOpen( true );\n\tconst closeDropdown = () => setOpen( false );\n\n\treturn { open, openDropdown, closeDropdown };\n}\n","import { useState } from 'react';\n\nimport { type ValidationEvent, type ValidationResult } from './types';\n\nexport function useCreateOption( params: {\n\tonCreate?: ( value: string ) => Promise< unknown > | unknown;\n\tvalidate?: ( value: string, event: ValidationEvent ) => ValidationResult;\n\tsetInputValue: ( value: string ) => void;\n\tsetError: ( error: string | null ) => void;\n\tcloseDropdown: () => void;\n} ) {\n\tconst { onCreate, validate, setInputValue, setError, closeDropdown } = params;\n\n\tconst [ loading, setLoading ] = useState( false );\n\n\tif ( ! onCreate ) {\n\t\treturn { createOption: null, loading: false };\n\t}\n\n\tconst createOption = async ( value: string ) => {\n\t\tsetLoading( true );\n\n\t\tif ( validate ) {\n\t\t\tconst { isValid, errorMessage } = validate( value, 'create' );\n\n\t\t\tif ( ! isValid ) {\n\t\t\t\tsetError( errorMessage );\n\t\t\t\tsetLoading( false );\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\n\t\ttry {\n\t\t\tsetInputValue( '' );\n\t\t\tcloseDropdown();\n\t\t\tawait onCreate( value );\n\t\t} catch {\n\t\t\t// TODO: Do something with the error.\n\t\t} finally {\n\t\t\tsetLoading( false );\n\t\t}\n\t};\n\n\treturn { createOption, loading };\n}\n","import { createFilterOptions } from '@elementor/ui';\n\nimport { type InternalOption, type Option } from './types';\n\nexport function useFilterOptions< TOption extends Option >( parameters: {\n\toptions: TOption[];\n\tselected: TOption[];\n\tonCreate?: ( value: string ) => Promise< unknown > | unknown;\n\tentityName?: { singular: string; plural: string };\n} ) {\n\tconst { options, selected, onCreate, entityName } = parameters;\n\n\tconst filter = createFilterOptions< InternalOption< TOption > >();\n\n\tconst filterOptions = (\n\t\toptionList: InternalOption< TOption >[],\n\t\tparams: {\n\t\t\tinputValue: string;\n\t\t\tgetOptionLabel: ( option: InternalOption< TOption > ) => string;\n\t\t}\n\t) => {\n\t\tconst selectedValues = selected.map( ( option ) => option.value );\n\n\t\tconst filteredOptions = filter(\n\t\t\toptionList.filter( ( option ) => ! selectedValues.includes( option.value ) ),\n\t\t\tparams\n\t\t);\n\n\t\tconst isExisting = options.some( ( option ) => params.inputValue === option.label );\n\t\tconst allowCreate =\n\t\t\tBoolean( onCreate ) &&\n\t\t\tparams.inputValue !== '' &&\n\t\t\t! selectedValues.includes( params.inputValue ) &&\n\t\t\t! isExisting;\n\n\t\tif ( allowCreate ) {\n\t\t\tfilteredOptions.unshift( {\n\t\t\t\tlabel: `Create \"${ params.inputValue }\"`,\n\t\t\t\tvalue: params.inputValue,\n\t\t\t\t_group: `Create a new ${ entityName?.singular ?? 'option' }`,\n\t\t\t\tkey: `create-${ params.inputValue }`,\n\t\t\t\t_action: 'create',\n\t\t\t} as InternalOption< TOption > );\n\t\t}\n\n\t\treturn filteredOptions;\n\t};\n\n\treturn filterOptions;\n}\n","import * as React from 'react';\nimport { type ReactElement, useState } from 'react';\nimport { stylesRepository, useUserStylesCapability, validateStyleLabel } from '@elementor/editor-styles-repository';\nimport { EditableField, EllipsisWithTooltip, useEditable } from '@elementor/editor-ui';\nimport { DotsVerticalIcon } from '@elementor/icons';\nimport {\n\ttype AutocompleteRenderGetTagProps,\n\tbindTrigger,\n\tChip,\n\ttype ChipOwnProps,\n\tStack,\n\ttype Theme,\n\tTypography,\n\tUnstableChipGroup,\n\tusePopupState,\n} from '@elementor/ui';\nimport { __ } from '@wordpress/i18n';\n\nimport { useStyle } from '../../contexts/style-context';\nimport { CssClassProvider } from './css-class-context';\nimport { CssClassMenu } from './css-class-menu';\n\ntype CssClassItemProps = {\n\tid: string | null;\n\tprovider: string | null;\n\tlabel: string;\n\tfixed?: boolean;\n\tisActive: boolean;\n\tcolor: ChipOwnProps[ 'color' ];\n\ticon: ReactElement | null;\n\tchipProps: ReturnType< AutocompleteRenderGetTagProps >;\n\tonClickActive: ( id: string | null ) => void;\n\trenameLabel: ( newLabel: string ) => void;\n\tvalidateLabel?: ( newLabel: string ) => string | undefined | null;\n\tsetError?: ( error: string | null ) => void;\n};\n\nconst CHIP_SIZE = 'tiny';\n\nexport function CssClassItem( props: CssClassItemProps ) {\n\tconst { chipProps, icon, color: colorProp, fixed, ...classProps } = props;\n\tconst { id, provider, label, isActive, onClickActive, renameLabel, setError } = classProps;\n\n\tconst { meta, setMetaState } = useStyle();\n\tconst popupState = usePopupState( { variant: 'popover' } );\n\tconst [ chipRef, setChipRef ] = useState< HTMLElement | null >( null );\n\tconst { onDelete, ...chipGroupProps } = chipProps;\n\n\tconst { userCan } = useUserStylesCapability();\n\n\tconst {\n\t\tref,\n\t\tisEditing,\n\t\topenEditMode,\n\t\terror,\n\t\tgetProps: getEditableProps,\n\t} = useEditable( {\n\t\tvalue: label,\n\t\tonSubmit: renameLabel,\n\t\tvalidation: validateLabel,\n\t\tonError: setError,\n\t} );\n\n\tconst color = error ? 'error' : colorProp;\n\n\tconst providerActions = provider ? stylesRepository.getProviderByKey( provider )?.actions : null;\n\tconst allowRename = Boolean( providerActions?.update ) && userCan( provider ?? '' )?.update;\n\n\tconst isShowingState = isActive && meta.state;\n\n\treturn (\n\t\t<>\n\t\t\t<UnstableChipGroup\n\t\t\t\tref={ setChipRef }\n\t\t\t\t{ ...chipGroupProps }\n\t\t\t\taria-label={ `Edit ${ label }` }\n\t\t\t\trole=\"group\"\n\t\t\t\tsx={ ( theme: Theme ) => ( {\n\t\t\t\t\t'&.MuiChipGroup-root.MuiAutocomplete-tag': { margin: theme.spacing( 0.125 ) },\n\t\t\t\t} ) }\n\t\t\t>\n\t\t\t\t<Chip\n\t\t\t\t\tsize={ CHIP_SIZE }\n\t\t\t\t\tlabel={\n\t\t\t\t\t\tisEditing ? (\n\t\t\t\t\t\t\t<EditableField ref={ ref } { ...getEditableProps() } />\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t<EllipsisWithTooltip maxWidth=\"10ch\" title={ label } as=\"div\" />\n\t\t\t\t\t\t)\n\t\t\t\t\t}\n\t\t\t\t\tvariant={ isActive && ! meta.state && ! isEditing ? 'filled' : 'standard' }\n\t\t\t\t\tshape=\"rounded\"\n\t\t\t\t\ticon={ icon }\n\t\t\t\t\tcolor={ color }\n\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\tif ( isShowingState ) {\n\t\t\t\t\t\t\tsetMetaState( null );\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif ( allowRename && isActive ) {\n\t\t\t\t\t\t\topenEditMode();\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tonClickActive( id );\n\t\t\t\t\t} }\n\t\t\t\t\taria-pressed={ isActive }\n\t\t\t\t\tsx={ ( theme: Theme ) => ( {\n\t\t\t\t\t\tlineHeight: 1,\n\t\t\t\t\t\tcursor: isActive && allowRename && ! isShowingState ? 'text' : 'pointer',\n\t\t\t\t\t\tborderRadius: `${ theme.shape.borderRadius * 0.75 }px`,\n\t\t\t\t\t\t'&.Mui-focusVisible': {\n\t\t\t\t\t\t\tboxShadow: 'none !important',\n\t\t\t\t\t\t},\n\t\t\t\t\t} ) }\n\t\t\t\t/>\n\t\t\t\t{ ! isEditing && (\n\t\t\t\t\t<Chip\n\t\t\t\t\t\ticon={ isShowingState ? undefined : <DotsVerticalIcon fontSize=\"tiny\" /> }\n\t\t\t\t\t\tsize={ CHIP_SIZE }\n\t\t\t\t\t\tlabel={\n\t\t\t\t\t\t\tisShowingState ? (\n\t\t\t\t\t\t\t\t<Stack direction=\"row\" gap={ 0.5 } alignItems=\"center\">\n\t\t\t\t\t\t\t\t\t<Typography variant=\"inherit\">{ meta.state }</Typography>\n\t\t\t\t\t\t\t\t\t<DotsVerticalIcon fontSize=\"tiny\" />\n\t\t\t\t\t\t\t\t</Stack>\n\t\t\t\t\t\t\t) : undefined\n\t\t\t\t\t\t}\n\t\t\t\t\t\tvariant=\"filled\"\n\t\t\t\t\t\tshape=\"rounded\"\n\t\t\t\t\t\tcolor={ color }\n\t\t\t\t\t\t{ ...bindTrigger( popupState ) }\n\t\t\t\t\t\taria-label={ __( 'Open CSS Class Menu', 'elementor' ) }\n\t\t\t\t\t\tsx={ ( theme: Theme ) => ( {\n\t\t\t\t\t\t\tborderRadius: `${ theme.shape.borderRadius * 0.75 }px`,\n\t\t\t\t\t\t\tpaddingRight: 0,\n\t\t\t\t\t\t\t...( ! isShowingState ? { paddingLeft: 0 } : {} ),\n\t\t\t\t\t\t\t'.MuiChip-label': isShowingState ? { paddingRight: 0 } : { padding: 0 },\n\t\t\t\t\t\t} ) }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</UnstableChipGroup>\n\t\t\t<CssClassProvider { ...classProps } handleRename={ openEditMode }>\n\t\t\t\t<CssClassMenu popupState={ popupState } anchorEl={ chipRef } fixed={ fixed } />\n\t\t\t</CssClassProvider>\n\t\t</>\n\t);\n}\n\nconst validateLabel = ( newLabel: string ) => {\n\tconst result = validateStyleLabel( newLabel, 'rename' );\n\n\tif ( result.isValid ) {\n\t\treturn null;\n\t}\n\n\treturn result.errorMessage;\n};\n","import * as React from 'react';\nimport { createContext, useContext } from 'react';\n\ntype CssClassContextType = {\n\tid: string | null;\n\tprovider: string | null;\n\tlabel: string;\n\tisActive: boolean;\n\tonClickActive: ( id: string | null ) => void;\n\thandleRename: () => void;\n\tsetError?: ( error: string | null ) => void;\n};\n\nconst CssClassContext = createContext< CssClassContextType | null >( null );\n\nexport const useCssClass = () => {\n\tconst context = useContext( CssClassContext );\n\tif ( ! context ) {\n\t\tthrow new Error( 'useCssClass must be used within a CssClassProvider' );\n\t}\n\treturn context;\n};\n\ntype CssClassProviderProps = CssClassContextType & {\n\tchildren: React.ReactNode;\n};\n\nexport function CssClassProvider( { children, ...contextValue }: CssClassProviderProps ) {\n\treturn <CssClassContext.Provider value={ contextValue }>{ children }</CssClassContext.Provider>;\n}\n","import * as React from 'react';\nimport { type StyleDefinitionState } from '@elementor/editor-styles';\nimport {\n\tisElementsStylesProvider,\n\tstylesRepository,\n\tuseUserStylesCapability,\n} from '@elementor/editor-styles-repository';\nimport { MenuItemInfotip, MenuListItem } from '@elementor/editor-ui';\nimport { bindMenu, Divider, Menu, MenuSubheader, type PopupState, Stack } from '@elementor/ui';\nimport { __ } from '@wordpress/i18n';\n\nimport { useStyle } from '../../contexts/style-context';\nimport { type StyleDefinitionStateWithNormal } from '../../styles-inheritance/types';\nimport { StyleIndicator } from '../style-indicator';\nimport { useCssClass } from './css-class-context';\nimport { useUnapplyClass } from './use-apply-and-unapply-class';\n\ntype State = {\n\tkey: StyleDefinitionStateWithNormal;\n\tvalue: StyleDefinitionState | null;\n};\n\nconst STATES: State[] = [\n\t{ key: 'normal', value: null },\n\t{ key: 'hover', value: 'hover' },\n\t{ key: 'focus', value: 'focus' },\n\t{ key: 'active', value: 'active' },\n];\n\ntype CssClassMenuProps = {\n\tpopupState: PopupState;\n\tanchorEl: HTMLElement | null;\n\tfixed?: boolean;\n};\n\nexport function CssClassMenu( { popupState, anchorEl, fixed }: CssClassMenuProps ) {\n\tconst { provider } = useCssClass();\n\n\tconst handleKeyDown = ( e: React.KeyboardEvent< HTMLElement > ) => {\n\t\te.stopPropagation();\n\t};\n\n\treturn (\n\t\t<Menu\n\t\t\tMenuListProps={ { dense: true, sx: { minWidth: '160px' } } }\n\t\t\t{ ...bindMenu( popupState ) }\n\t\t\tanchorEl={ anchorEl }\n\t\t\tanchorOrigin={ {\n\t\t\t\tvertical: 'bottom',\n\t\t\t\thorizontal: 'left',\n\t\t\t} }\n\t\t\ttransformOrigin={ {\n\t\t\t\thorizontal: 'left',\n\t\t\t\tvertical: -4,\n\t\t\t} }\n\t\t\tonKeyDown={ handleKeyDown }\n\t\t\t// Workaround for focus-visible issue.\n\t\t\tdisableAutoFocusItem\n\t\t>\n\t\t\t{ /* It has to be an array since MUI menu doesn't accept a Fragment as a child, and wrapping the items with an HTML element disrupts keyboard navigation */ }\n\t\t\t{ getMenuItemsByProvider( { provider, closeMenu: popupState.close, fixed } ) }\n\t\t\t<MenuSubheader sx={ { typography: 'caption', color: 'text.secondary', pb: 0.5, pt: 1 } }>\n\t\t\t\t{ __( 'States', 'elementor' ) }\n\t\t\t</MenuSubheader>\n\t\t\t{ STATES.map( ( state ) => {\n\t\t\t\treturn <StateMenuItem key={ state.key } state={ state.value } closeMenu={ popupState.close } />;\n\t\t\t} ) }\n\t\t</Menu>\n\t);\n}\n\nfunction useModifiedStates( styleId: string | null ): Partial< Record< StyleDefinitionStateWithNormal, true > > {\n\tconst { meta } = useStyle();\n\n\tconst styleDef = stylesRepository.all().find( ( style ) => style.id === styleId );\n\n\treturn Object.fromEntries(\n\t\tstyleDef?.variants\n\t\t\t.filter( ( variant ) => meta.breakpoint === variant.meta.breakpoint )\n\t\t\t.map( ( variant ) => [ variant.meta.state ?? 'normal', true ] ) ?? []\n\t);\n}\n\nfunction getMenuItemsByProvider( {\n\tprovider,\n\tcloseMenu,\n\tfixed,\n}: {\n\tprovider: string | null;\n\tcloseMenu: () => void;\n\tfixed?: boolean;\n} ) {\n\tif ( ! provider ) {\n\t\treturn [];\n\t}\n\n\tconst providerInstance = stylesRepository.getProviderByKey( provider );\n\tconst providerActions = providerInstance?.actions;\n\n\tconst canUpdate = providerActions?.update;\n\tconst canUnapply = ! fixed;\n\n\tconst actions = [\n\t\tcanUpdate && <RenameClassMenuItem key=\"rename-class\" closeMenu={ closeMenu } />,\n\t\tcanUnapply && <UnapplyClassMenuItem key=\"unapply-class\" closeMenu={ closeMenu } />,\n\t].filter( Boolean );\n\n\tif ( actions.length ) {\n\t\tactions.unshift(\n\t\t\t<MenuSubheader\n\t\t\t\tkey=\"provider-label\"\n\t\t\t\tsx={ { typography: 'caption', color: 'text.secondary', pb: 0.5, pt: 1, textTransform: 'capitalize' } }\n\t\t\t>\n\t\t\t\t{ providerInstance?.labels?.singular }\n\t\t\t</MenuSubheader>\n\t\t);\n\t\tactions.push( <Divider key=\"provider-actions-divider\" /> );\n\t}\n\n\treturn actions;\n}\n\ntype StateMenuItemProps = {\n\tstate: StyleDefinitionState;\n\tcloseMenu: () => void;\n};\n\nfunction StateMenuItem( { state, closeMenu, ...props }: StateMenuItemProps ) {\n\tconst { id: styleId, provider } = useCssClass();\n\tconst { id: activeId, setId: setActiveId, setMetaState: setActiveMetaState, meta } = useStyle();\n\tconst { state: activeState } = meta;\n\tconst { userCan } = useUserStylesCapability();\n\n\tconst modifiedStates = useModifiedStates( styleId );\n\n\tconst isUpdateAllowed = ! state || userCan( provider ?? '' ).updateProps;\n\n\tconst indicatorVariant = ! provider || isElementsStylesProvider( provider ) ? 'local' : 'global';\n\n\tconst isStyled = modifiedStates[ state ?? 'normal' ] ?? false;\n\tconst disabled = ! isUpdateAllowed && ! isStyled;\n\tconst isActive = styleId === activeId;\n\tconst isSelected = state === activeState && isActive;\n\n\treturn (\n\t\t<MenuListItem\n\t\t\t{ ...props }\n\t\t\tselected={ isSelected }\n\t\t\tdisabled={ disabled }\n\t\t\tsx={ { textTransform: 'capitalize' } }\n\t\t\tonClick={ () => {\n\t\t\t\tif ( ! isActive ) {\n\t\t\t\t\tsetActiveId( styleId );\n\t\t\t\t}\n\n\t\t\t\tsetActiveMetaState( state );\n\n\t\t\t\tcloseMenu();\n\t\t\t} }\n\t\t>\n\t\t\t<MenuItemInfotip\n\t\t\t\tshowInfoTip={ disabled }\n\t\t\t\tcontent={ __( 'With your current role, you can only use existing states.', 'elementor' ) }\n\t\t\t>\n\t\t\t\t<Stack gap={ 0.75 } direction=\"row\" alignItems=\"center\">\n\t\t\t\t\t{ isStyled && (\n\t\t\t\t\t\t<StyleIndicator aria-label={ __( 'Has style', 'elementor' ) } variant={ indicatorVariant } />\n\t\t\t\t\t) }\n\t\t\t\t\t{ state ?? 'normal' }\n\t\t\t\t</Stack>\n\t\t\t</MenuItemInfotip>\n\t\t</MenuListItem>\n\t);\n}\n\nfunction UnapplyClassMenuItem( { closeMenu, ...props }: { closeMenu: () => void } ) {\n\tconst { id: classId, label: classLabel } = useCssClass();\n\tconst unapplyClass = useUnapplyClass();\n\n\treturn classId ? (\n\t\t<MenuListItem\n\t\t\t{ ...props }\n\t\t\tonClick={ () => {\n\t\t\t\tunapplyClass( { classId, classLabel } );\n\t\t\t\tcloseMenu();\n\t\t\t} }\n\t\t>\n\t\t\t{ __( 'Remove', 'elementor' ) }\n\t\t</MenuListItem>\n\t) : null;\n}\n\nfunction RenameClassMenuItem( { closeMenu }: { closeMenu: () => void } ) {\n\tconst { handleRename, provider } = useCssClass();\n\tconst { userCan } = useUserStylesCapability();\n\n\tif ( ! provider ) {\n\t\treturn null;\n\t}\n\n\tconst isAllowed = userCan( provider ).update;\n\n\treturn (\n\t\t<MenuListItem\n\t\t\tdisabled={ ! isAllowed }\n\t\t\tonClick={ () => {\n\t\t\t\tcloseMenu();\n\t\t\t\thandleRename();\n\t\t\t} }\n\t\t>\n\t\t\t<MenuItemInfotip\n\t\t\t\tshowInfoTip={ ! isAllowed }\n\t\t\t\tcontent={ __(\n\t\t\t\t\t'With your current role, you can use existing classes but can’t modify them.',\n\t\t\t\t\t'elementor'\n\t\t\t\t) }\n\t\t\t>\n\t\t\t\t{ __( 'Rename', 'elementor' ) }\n\t\t\t</MenuItemInfotip>\n\t\t</MenuListItem>\n\t);\n}\n","import { styled } from '@elementor/ui';\n\ntype StyleIndicatorVariant = 'overridden' | 'local' | 'global';\n\nexport const StyleIndicator = styled( 'div', {\n\tshouldForwardProp: ( prop ) => prop !== 'variant',\n} )< { variant?: StyleIndicatorVariant } >`\n\twidth: 5px;\n\theight: 5px;\n\tborder-radius: 50%;\n\tbackground-color: ${ ( { theme, variant } ) => {\n\t\tswitch ( variant ) {\n\t\t\tcase 'overridden':\n\t\t\t\treturn theme.palette.warning.light;\n\t\t\tcase 'global':\n\t\t\t\treturn theme.palette.global.dark;\n\t\t\tcase 'local':\n\t\t\t\treturn theme.palette.accent.main;\n\t\t\tdefault:\n\t\t\t\treturn theme.palette.text.disabled;\n\t\t}\n\t} };\n`;\n","import { useCallback, useMemo } from 'react';\nimport { setDocumentModifiedStatus } from '@elementor/editor-documents';\nimport { getElementLabel, getElementSetting, updateElementSettings } from '@elementor/editor-elements';\nimport { classesPropTypeUtil, type ClassesPropValue } from '@elementor/editor-props';\nimport { type StyleDefinitionID } from '@elementor/editor-styles';\nimport { useGetStylesRepositoryCreateAction } from '@elementor/editor-styles-repository';\nimport { isExperimentActive, undoable } from '@elementor/editor-v1-adapters';\nimport { __ } from '@wordpress/i18n';\n\nimport { useClassesProp } from '../../contexts/classes-prop-context';\nimport { useElement } from '../../contexts/element-context';\nimport { useStyle } from '../../contexts/style-context';\nimport { EXPERIMENTAL_FEATURES } from '../../sync/experiments-flags';\n\ntype UndoableClassActionPayload = {\n\tclassId: StyleDefinitionID;\n\tclassLabel: string;\n};\n\ntype CreateAndApplyClassPayload = {\n\tclassLabel: string;\n};\n\ntype CreateAndApplyClassUndoData = {\n\tprevActiveId: string | null;\n\tcreatedId: StyleDefinitionID;\n};\n\nexport function useApplyClass() {\n\tconst { id: activeId, setId: setActiveId } = useStyle();\n\tconst { element } = useElement();\n\n\tconst isVersion330Active = isExperimentActive( EXPERIMENTAL_FEATURES.V_3_30 );\n\n\tconst applyClass = useApply();\n\tconst unapplyClass = useUnapply();\n\n\tconst undoableApply = useMemo( () => {\n\t\treturn undoable(\n\t\t\t{\n\t\t\t\tdo: ( { classId }: UndoableClassActionPayload ) => {\n\t\t\t\t\tconst prevActiveId = activeId;\n\n\t\t\t\t\tapplyClass( classId );\n\n\t\t\t\t\treturn prevActiveId;\n\t\t\t\t},\n\t\t\t\tundo: ( { classId }: UndoableClassActionPayload, prevActiveId: string | null ) => {\n\t\t\t\t\tunapplyClass( classId );\n\t\t\t\t\tsetActiveId( prevActiveId );\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\ttitle: getElementLabel( element.id ),\n\t\t\t\tsubtitle: ( { classLabel } ) => {\n\t\t\t\t\t/* translators: %s is the class name. */\n\t\t\t\t\treturn __( `class %s applied`, 'elementor' ).replace( '%s', classLabel );\n\t\t\t\t},\n\t\t\t}\n\t\t);\n\t}, [ activeId, applyClass, element.id, unapplyClass, setActiveId ] );\n\n\tconst applyWithoutHistory = useCallback(\n\t\t( { classId }: UndoableClassActionPayload ) => {\n\t\t\tapplyClass( classId );\n\t\t},\n\t\t[ applyClass ]\n\t);\n\n\treturn isVersion330Active ? undoableApply : applyWithoutHistory;\n}\n\nexport function useUnapplyClass() {\n\tconst { id: activeId, setId: setActiveId } = useStyle();\n\tconst { element } = useElement();\n\n\tconst isVersion330Active = isExperimentActive( EXPERIMENTAL_FEATURES.V_3_30 );\n\n\tconst applyClass = useApply();\n\tconst unapplyClass = useUnapply();\n\n\tconst undoableUnapply = useMemo( () => {\n\t\treturn undoable(\n\t\t\t{\n\t\t\t\tdo: ( { classId }: UndoableClassActionPayload ) => {\n\t\t\t\t\tconst prevActiveId = activeId;\n\n\t\t\t\t\tunapplyClass( classId );\n\n\t\t\t\t\treturn prevActiveId;\n\t\t\t\t},\n\t\t\t\tundo: ( { classId }: UndoableClassActionPayload, prevActiveId: string | null ) => {\n\t\t\t\t\tapplyClass( classId );\n\t\t\t\t\tsetActiveId( prevActiveId );\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\ttitle: getElementLabel( element.id ),\n\t\t\t\tsubtitle: ( { classLabel } ) => {\n\t\t\t\t\t/* translators: %s is the class name. */\n\t\t\t\t\treturn __( `class %s removed`, 'elementor' ).replace( '%s', classLabel );\n\t\t\t\t},\n\t\t\t}\n\t\t);\n\t}, [ activeId, applyClass, element.id, unapplyClass, setActiveId ] );\n\n\tconst unapplyWithoutHistory = useCallback(\n\t\t( { classId }: UndoableClassActionPayload ) => {\n\t\t\tunapplyClass( classId );\n\t\t},\n\t\t[ unapplyClass ]\n\t);\n\n\treturn isVersion330Active ? undoableUnapply : unapplyWithoutHistory;\n}\n\nexport function useCreateAndApplyClass() {\n\tconst { id: activeId, setId: setActiveId } = useStyle();\n\n\tconst isVersion330Active = isExperimentActive( EXPERIMENTAL_FEATURES.V_3_30 );\n\n\tconst [ provider, createAction ] = useGetStylesRepositoryCreateAction() ?? [ null, null ];\n\tconst deleteAction = provider?.actions.delete;\n\n\tconst applyClass = useApply();\n\tconst unapplyClass = useUnapply();\n\n\tconst undoableCreateAndApply = useMemo( () => {\n\t\tif ( ! provider || ! createAction ) {\n\t\t\treturn;\n\t\t}\n\n\t\treturn undoable(\n\t\t\t{\n\t\t\t\tdo: ( { classLabel }: CreateAndApplyClassPayload ): CreateAndApplyClassUndoData => {\n\t\t\t\t\tconst prevActiveId = activeId;\n\n\t\t\t\t\tconst createdId = createAction( classLabel );\n\t\t\t\t\tapplyClass( createdId );\n\n\t\t\t\t\treturn { prevActiveId, createdId };\n\t\t\t\t},\n\t\t\t\tundo: ( _: CreateAndApplyClassPayload, { prevActiveId, createdId }: CreateAndApplyClassUndoData ) => {\n\t\t\t\t\tunapplyClass( createdId );\n\t\t\t\t\tdeleteAction?.( createdId );\n\n\t\t\t\t\tsetActiveId( prevActiveId );\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\ttitle: __( 'Class', 'elementor' ),\n\t\t\t\tsubtitle: ( { classLabel } ) => {\n\t\t\t\t\t/* translators: %s is the class name. */\n\t\t\t\t\treturn __( `%s created`, 'elementor' ).replace( '%s', classLabel );\n\t\t\t\t},\n\t\t\t}\n\t\t);\n\t}, [ activeId, applyClass, createAction, deleteAction, provider, setActiveId, unapplyClass ] );\n\n\tconst createAndApplyWithoutHistory = useCallback(\n\t\t( { classLabel }: CreateAndApplyClassPayload ) => {\n\t\t\tif ( ! createAction ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst createdId = createAction( classLabel );\n\t\t\tapplyClass( createdId );\n\t\t},\n\t\t[ applyClass, createAction ]\n\t);\n\n\tif ( ! provider || ! undoableCreateAndApply ) {\n\t\treturn [ null, null ];\n\t}\n\n\treturn isVersion330Active\n\t\t? ( [ provider, undoableCreateAndApply ] as const )\n\t\t: ( [ provider, createAndApplyWithoutHistory ] as const );\n}\n\nfunction useApply() {\n\tconst { element } = useElement();\n\tconst { setId: setActiveId } = useStyle();\n\tconst { setClasses, getAppliedClasses } = useClasses();\n\n\treturn useCallback(\n\t\t( classIDToApply: StyleDefinitionID ) => {\n\t\t\tconst appliedClasses = getAppliedClasses();\n\n\t\t\tif ( appliedClasses.includes( classIDToApply ) ) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t`Class ${ classIDToApply } is already applied to element ${ element.id }, cannot re-apply.`\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tconst updatedClassesIds = [ ...appliedClasses, classIDToApply ];\n\t\t\tsetClasses( updatedClassesIds );\n\t\t\tsetActiveId( classIDToApply );\n\t\t},\n\t\t[ element.id, getAppliedClasses, setActiveId, setClasses ]\n\t);\n}\n\nfunction useUnapply() {\n\tconst { element } = useElement();\n\tconst { id: activeId, setId: setActiveId } = useStyle();\n\tconst { setClasses, getAppliedClasses } = useClasses();\n\n\treturn useCallback(\n\t\t( classIDToUnapply: StyleDefinitionID ) => {\n\t\t\tconst appliedClasses = getAppliedClasses();\n\n\t\t\tif ( ! appliedClasses.includes( classIDToUnapply ) ) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t`Class ${ classIDToUnapply } is not applied to element ${ element.id }, cannot unapply it.`\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tconst updatedClassesIds = appliedClasses.filter( ( id ) => id !== classIDToUnapply );\n\t\t\tsetClasses( updatedClassesIds );\n\n\t\t\tif ( activeId === classIDToUnapply ) {\n\t\t\t\tsetActiveId( updatedClassesIds[ 0 ] ?? null );\n\t\t\t}\n\t\t},\n\t\t[ activeId, element.id, getAppliedClasses, setActiveId, setClasses ]\n\t);\n}\n\nfunction useClasses() {\n\tconst { element } = useElement();\n\tconst currentClassesProp = useClassesProp();\n\n\tconst isVersion330Active = isExperimentActive( EXPERIMENTAL_FEATURES.V_3_30 );\n\n\treturn useMemo( () => {\n\t\tconst setClasses = ( ids: StyleDefinitionID[] ) => {\n\t\t\tupdateElementSettings( {\n\t\t\t\tid: element.id,\n\t\t\t\tprops: { [ currentClassesProp ]: classesPropTypeUtil.create( ids ) },\n\t\t\t\twithHistory: isVersion330Active ? false : true,\n\t\t\t} );\n\n\t\t\tif ( isVersion330Active ) {\n\t\t\t\tsetDocumentModifiedStatus( true );\n\t\t\t}\n\t\t};\n\n\t\tconst getAppliedClasses = () =>\n\t\t\tgetElementSetting< ClassesPropValue >( element.id, currentClassesProp )?.value || [];\n\n\t\treturn { setClasses, getAppliedClasses };\n\t}, [ currentClassesProp, element.id, isVersion330Active ] );\n}\n","// Experimental features flags\nexport const EXPERIMENTAL_FEATURES = {\n\tV_3_30: 'e_v_3_30',\n};\n","import { __createPanel as createPanel } from '@elementor/editor-panels';\n\nimport { EditingPanel } from './components/editing-panel';\n\nexport const { panel, usePanelActions, usePanelStatus } = createPanel( {\n\tid: 'editing-panel',\n\tcomponent: EditingPanel,\n} );\n","import * as React from 'react';\nimport { ControlActionsProvider, ControlReplacementsProvider } from '@elementor/editor-controls';\nimport { useSelectedElement } from '@elementor/editor-elements';\nimport { Panel, PanelBody, PanelHeader, PanelHeaderTitle } from '@elementor/editor-panels';\nimport { ThemeProvider } from '@elementor/editor-ui';\nimport { AtomIcon } from '@elementor/icons';\nimport { SessionStorageProvider } from '@elementor/session';\nimport { ErrorBoundary } from '@elementor/ui';\nimport { __ } from '@wordpress/i18n';\n\nimport { ElementProvider } from '../contexts/element-context';\nimport { getControlReplacements } from '../control-replacement';\nimport { controlActionsMenu } from '../controls-actions';\nimport { EditorPanelErrorFallback } from './editing-panel-error-fallback';\nimport { EditingPanelTabs } from './editing-panel-tabs';\n\nconst { useMenuItems } = controlActionsMenu;\n\nexport const EditingPanel = () => {\n\tconst { element, elementType } = useSelectedElement();\n\tconst controlReplacements = getControlReplacements();\n\tconst menuItems = useMenuItems().default;\n\n\tif ( ! element || ! elementType ) {\n\t\treturn null;\n\t}\n\n\t/* translators: %s: Element type title. */\n\tconst panelTitle = __( 'Edit %s', 'elementor' ).replace( '%s', elementType.title );\n\n\treturn (\n\t\t<ErrorBoundary fallback={ <EditorPanelErrorFallback /> }>\n\t\t\t<SessionStorageProvider prefix={ 'elementor' }>\n\t\t\t\t<ThemeProvider>\n\t\t\t\t\t<Panel>\n\t\t\t\t\t\t<PanelHeader>\n\t\t\t\t\t\t\t<PanelHeaderTitle>{ panelTitle }</PanelHeaderTitle>\n\t\t\t\t\t\t\t<AtomIcon fontSize=\"small\" sx={ { color: 'text.tertiary' } } />\n\t\t\t\t\t\t</PanelHeader>\n\t\t\t\t\t\t<PanelBody>\n\t\t\t\t\t\t\t<ControlActionsProvider items={ menuItems }>\n\t\t\t\t\t\t\t\t<ControlReplacementsProvider replacements={ controlReplacements }>\n\t\t\t\t\t\t\t\t\t<ElementProvider element={ element } elementType={ elementType }>\n\t\t\t\t\t\t\t\t\t\t<EditingPanelTabs />\n\t\t\t\t\t\t\t\t\t</ElementProvider>\n\t\t\t\t\t\t\t\t</ControlReplacementsProvider>\n\t\t\t\t\t\t\t</ControlActionsProvider>\n\t\t\t\t\t\t</PanelBody>\n\t\t\t\t\t</Panel>\n\t\t\t\t</ThemeProvider>\n\t\t\t</SessionStorageProvider>\n\t\t</ErrorBoundary>\n\t);\n};\n","import { createMenu } from '@elementor/menus';\n\nimport Action from './action';\nimport PopoverAction from './popover-action';\n\nexport const controlActionsMenu = createMenu( {\n\tcomponents: {\n\t\tAction,\n\t\tPopoverAction,\n\t},\n} );\n","import * as React from 'react';\nimport { type ElementType as ReactElementType } from 'react';\nimport { IconButton, Tooltip } from '@elementor/ui';\n\nconst SIZE = 'tiny';\n\ntype ActionProps = {\n\ttitle: string;\n\tvisible?: boolean;\n\ticon: ReactElementType;\n\tonClick: () => void;\n};\n\nexport default function Action( { title, visible = true, icon: Icon, onClick }: ActionProps ) {\n\tif ( ! visible ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<Tooltip placement=\"bottom\" title={ title } arrow={ true }>\n\t\t\t<IconButton aria-label={ title } size={ SIZE } onClick={ onClick }>\n\t\t\t\t<Icon fontSize={ SIZE } />\n\t\t\t</IconButton>\n\t\t</Tooltip>\n\t);\n}\n","import * as React from 'react';\nimport { type ComponentType, type ElementType as ReactElementType, useId } from 'react';\nimport { XIcon } from '@elementor/icons';\nimport { bindPopover, bindToggle, IconButton, Popover, Stack, Tooltip, Typography, usePopupState } from '@elementor/ui';\n\nconst SIZE = 'tiny';\n\nexport type PopoverActionProps = {\n\ttitle: string;\n\tvisible?: boolean;\n\ticon: ReactElementType;\n\tpopoverContent: ComponentType< { closePopover: () => void } >;\n};\n\nexport default function PopoverAction( {\n\ttitle,\n\tvisible = true,\n\ticon: Icon,\n\tpopoverContent: PopoverContent,\n}: PopoverActionProps ) {\n\tconst id = useId();\n\tconst popupState = usePopupState( {\n\t\tvariant: 'popover',\n\t\tpopupId: `elementor-popover-action-${ id }`,\n\t} );\n\n\tif ( ! visible ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t<Tooltip placement=\"top\" title={ title }>\n\t\t\t\t<IconButton aria-label={ title } key={ id } size={ SIZE } { ...bindToggle( popupState ) }>\n\t\t\t\t\t<Icon fontSize={ SIZE } />\n\t\t\t\t</IconButton>\n\t\t\t</Tooltip>\n\t\t\t<Popover\n\t\t\t\tdisablePortal\n\t\t\t\tdisableScrollLock\n\t\t\t\tanchorOrigin={ {\n\t\t\t\t\tvertical: 'bottom',\n\t\t\t\t\thorizontal: 'center',\n\t\t\t\t} }\n\t\t\t\t{ ...bindPopover( popupState ) }\n\t\t\t>\n\t\t\t\t<Stack direction=\"row\" alignItems=\"center\" pl={ 1.5 } pr={ 0.5 } py={ 1.5 }>\n\t\t\t\t\t<Icon fontSize={ SIZE } sx={ { mr: 0.5 } } />\n\t\t\t\t\t<Typography variant=\"subtitle2\">{ title }</Typography>\n\t\t\t\t\t<IconButton sx={ { ml: 'auto' } } size={ SIZE } onClick={ popupState.close }>\n\t\t\t\t\t\t<XIcon fontSize={ SIZE } />\n\t\t\t\t\t</IconButton>\n\t\t\t\t</Stack>\n\t\t\t\t<PopoverContent closePopover={ popupState.close } />\n\t\t\t</Popover>\n\t\t</>\n\t);\n}\n","import * as React from 'react';\nimport { Alert, Box } from '@elementor/ui';\n\nexport function EditorPanelErrorFallback() {\n\treturn (\n\t\t<Box role=\"alert\" sx={ { minHeight: '100%', p: 2 } }>\n\t\t\t<Alert severity=\"error\" sx={ { mb: 2, maxWidth: 400, textAlign: 'center' } }>\n\t\t\t\t<strong>Something went wrong</strong>\n\t\t\t</Alert>\n\t\t</Box>\n\t);\n}\n","import * as React from 'react';\nimport { Fragment } from 'react';\nimport { isExperimentActive } from '@elementor/editor-v1-adapters';\nimport { Divider, Stack, Tab, TabPanel, Tabs, useTabs } from '@elementor/ui';\nimport { __ } from '@wordpress/i18n';\n\nimport { useElement } from '../contexts/element-context';\nimport { ScrollProvider } from '../contexts/scroll-context';\nimport { useDefaultPanelSettings } from '../hooks/use-default-panel-settings';\nimport { useStateByElement } from '../hooks/use-state-by-element';\nimport { EXPERIMENTAL_FEATURES } from '../sync/experiments-flags';\nimport { SettingsTab } from './settings-tab';\nimport { stickyHeaderStyles, StyleTab } from './style-tab';\n\ntype TabValue = 'settings' | 'style';\n\nexport const EditingPanelTabs = () => {\n\tconst { element } = useElement();\n\treturn (\n\t\t// When switching between elements, the local states should be reset. We are using key to rerender the tabs.\n\t\t// Reference: https://react.dev/learn/preserving-and-resetting-state#resetting-a-form-with-a-key\n\t\t<Fragment key={ element.id }>\n\t\t\t<PanelTabContent />\n\t\t</Fragment>\n\t);\n};\n\nconst PanelTabContent = () => {\n\tconst editorDefaults = useDefaultPanelSettings();\n\tconst defaultComponentTab = isExperimentActive( EXPERIMENTAL_FEATURES.V_3_30 )\n\t\t? ( editorDefaults.defaultTab as TabValue )\n\t\t: 'settings';\n\n\tconst [ currentTab, setCurrentTab ] = useStateByElement< TabValue >( 'tab', defaultComponentTab );\n\tconst { getTabProps, getTabPanelProps, getTabsProps } = useTabs< TabValue >( currentTab );\n\treturn (\n\t\t<ScrollProvider>\n\t\t\t<Stack direction=\"column\" sx={ { width: '100%' } }>\n\t\t\t\t<Stack sx={ { ...stickyHeaderStyles, top: 0 } }>\n\t\t\t\t\t<Tabs\n\t\t\t\t\t\tvariant=\"fullWidth\"\n\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\tsx={ { mt: 0.5 } }\n\t\t\t\t\t\t{ ...getTabsProps() }\n\t\t\t\t\t\tonChange={ ( _: unknown, newValue: TabValue ) => {\n\t\t\t\t\t\t\tgetTabsProps().onChange( _, newValue );\n\t\t\t\t\t\t\tsetCurrentTab( newValue );\n\t\t\t\t\t\t} }\n\t\t\t\t\t>\n\t\t\t\t\t\t<Tab label={ __( 'General', 'elementor' ) } { ...getTabProps( 'settings' ) } />\n\t\t\t\t\t\t<Tab label={ __( 'Style', 'elementor' ) } { ...getTabProps( 'style' ) } />\n\t\t\t\t\t</Tabs>\n\t\t\t\t\t<Divider />\n\t\t\t\t</Stack>\n\t\t\t\t<TabPanel { ...getTabPanelProps( 'settings' ) } disablePadding>\n\t\t\t\t\t<SettingsTab />\n\t\t\t\t</TabPanel>\n\t\t\t\t<TabPanel { ...getTabPanelProps( 'style' ) } disablePadding>\n\t\t\t\t\t<StyleTab />\n\t\t\t\t</TabPanel>\n\t\t\t</Stack>\n\t\t</ScrollProvider>\n\t);\n};\n","import * as React from 'react';\nimport { createContext, type ReactNode, useContext, useEffect, useRef, useState } from 'react';\nimport { styled } from '@elementor/ui';\n\ntype ScrollDirection = 'up' | 'down';\n\ntype ScrollContextValue = {\n\tdirection: ScrollDirection;\n};\n\nconst ScrollContext = createContext< ScrollContextValue | undefined >( undefined );\n\nconst ScrollPanel = styled( 'div' )`\n\theight: 100%;\n\toverflow-y: auto;\n`;\n\nconst DEFAULT_SCROLL_DIRECTION: ScrollDirection = 'up';\n\nexport function ScrollProvider( { children }: { children: ReactNode } ) {\n\tconst [ direction, setDirection ] = useState< ScrollDirection >( DEFAULT_SCROLL_DIRECTION );\n\tconst ref = useRef< HTMLDivElement >( null );\n\tconst scrollPos = useRef< number >( 0 );\n\n\tuseEffect( () => {\n\t\tconst scrollElement = ref.current;\n\n\t\tif ( ! scrollElement ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst handleScroll = () => {\n\t\t\tconst { scrollTop } = scrollElement;\n\n\t\t\tif ( scrollTop > scrollPos.current ) {\n\t\t\t\tsetDirection( 'down' );\n\t\t\t} else if ( scrollTop < scrollPos.current ) {\n\t\t\t\tsetDirection( 'up' );\n\t\t\t}\n\n\t\t\tscrollPos.current = scrollTop;\n\t\t};\n\n\t\tscrollElement.addEventListener( 'scroll', handleScroll );\n\n\t\treturn () => {\n\t\t\tscrollElement.removeEventListener( 'scroll', handleScroll );\n\t\t};\n\t} );\n\n\treturn (\n\t\t<ScrollContext.Provider value={ { direction } }>\n\t\t\t<ScrollPanel ref={ ref }>{ children }</ScrollPanel>\n\t\t</ScrollContext.Provider>\n\t);\n}\n\nexport function useScrollDirection() {\n\treturn useContext( ScrollContext )?.direction ?? DEFAULT_SCROLL_DIRECTION;\n}\n","import { createContext, useContext } from 'react';\n\nimport { useElement } from '../contexts/element-context';\n\ntype Defaults = {\n\tdefaultSectionsExpanded: Record< string, string[] >;\n\tdefaultTab: string;\n};\n\nconst fallbackEditorSettings: Defaults = {\n\tdefaultSectionsExpanded: {\n\t\tsettings: [ 'Content', 'Settings' ],\n\t\tstyle: [],\n\t},\n\tdefaultTab: 'settings',\n};\n\nconst defaultPanelSettingsContext = createContext< Record< string, Defaults | undefined > >( {\n\t'e-div-block': {\n\t\tdefaultSectionsExpanded: fallbackEditorSettings.defaultSectionsExpanded,\n\t\tdefaultTab: 'style',\n\t},\n\t'e-flexbox': {\n\t\tdefaultSectionsExpanded: fallbackEditorSettings.defaultSectionsExpanded,\n\t\tdefaultTab: 'style',\n\t},\n} );\n\nexport const useDefaultPanelSettings = () => {\n\tconst { element } = useElement();\n\tconst defaults = useContext( defaultPanelSettingsContext )[ element.type ];\n\treturn defaults || fallbackEditorSettings;\n};\n","import { useState } from 'react';\nimport { isExperimentActive } from '@elementor/editor-v1-adapters';\nimport { getSessionStorageItem, setSessionStorageItem } from '@elementor/session';\n\nimport { useElement } from '../contexts/element-context';\nimport { EXPERIMENTAL_FEATURES } from '../sync/experiments-flags';\n\nexport const useStateByElement = < T >( key: string, initialValue: T ) => {\n\tconst { element } = useElement();\n\tconst isFeatureActive = isExperimentActive( EXPERIMENTAL_FEATURES.V_3_30 );\n\tconst lookup = `elementor/editor-state/${ element.id }/${ key }`;\n\tconst storedValue = isFeatureActive ? getSessionStorageItem< T >( lookup ) : initialValue;\n\tconst [ value, setValue ] = useState( storedValue ?? initialValue );\n\n\tconst doUpdate = ( newValue: T ) => {\n\t\tsetSessionStorageItem( lookup, newValue );\n\t\tsetValue( newValue );\n\t};\n\n\treturn [ value, doUpdate ] as const;\n};\n","import * as React from 'react';\nimport { ControlFormLabel } from '@elementor/editor-controls';\nimport { type Control } from '@elementor/editor-elements';\nimport { isExperimentActive } from '@elementor/editor-v1-adapters';\nimport { SessionStorageProvider } from '@elementor/session';\nimport { Divider } from '@elementor/ui';\n\nimport { useElement } from '../contexts/element-context';\nimport { Control as BaseControl } from '../controls-registry/control';\nimport { ControlTypeContainer } from '../controls-registry/control-type-container';\nimport { type ControlType, getControl, getDefaultLayout } from '../controls-registry/controls-registry';\nimport { SettingsField } from '../controls-registry/settings-field';\nimport { useDefaultPanelSettings } from '../hooks/use-default-panel-settings';\nimport { EXPERIMENTAL_FEATURES } from '../sync/experiments-flags';\nimport { Section } from './section';\nimport { SectionsList } from './sections-list';\n\nexport const SettingsTab = () => {\n\tconst { elementType, element } = useElement();\n\tconst settingsDefault = useDefaultPanelSettings();\n\n\tconst isDefaultExpanded = ( sectionId: string ) =>\n\t\tisExperimentActive( EXPERIMENTAL_FEATURES.V_3_30 )\n\t\t\t? settingsDefault.defaultSectionsExpanded.settings?.includes( sectionId )\n\t\t\t: true;\n\n\treturn (\n\t\t<SessionStorageProvider prefix={ element.id }>\n\t\t\t<SectionsList>\n\t\t\t\t{ elementType.controls.map( ( { type, value }, index ) => {\n\t\t\t\t\tif ( type === 'control' ) {\n\t\t\t\t\t\treturn <Control key={ value.bind } control={ value } />;\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( type === 'section' ) {\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<Section\n\t\t\t\t\t\t\t\ttitle={ value.label }\n\t\t\t\t\t\t\t\tkey={ type + '.' + index }\n\t\t\t\t\t\t\t\tdefaultExpanded={ isDefaultExpanded( value.label ) }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ value.items?.map( ( item ) => {\n\t\t\t\t\t\t\t\t\tif ( item.type === 'control' ) {\n\t\t\t\t\t\t\t\t\t\treturn <Control key={ item.value.bind } control={ item.value } />;\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t// TODO: Handle 2nd level sections\n\t\t\t\t\t\t\t\t\treturn null;\n\t\t\t\t\t\t\t\t} ) }\n\t\t\t\t\t\t\t</Section>\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\n\t\t\t\t\treturn null;\n\t\t\t\t} ) }\n\t\t\t</SectionsList>\n\t\t</SessionStorageProvider>\n\t);\n};\n\nconst Control = ( { control }: { control: Control[ 'value' ] } ) => {\n\tif ( ! getControl( control.type as ControlType ) ) {\n\t\treturn null;\n\t}\n\n\tconst layout = control.meta?.layout || getDefaultLayout( control.type as ControlType );\n\n\treturn (\n\t\t<SettingsField bind={ control.bind }>\n\t\t\t{ control.meta?.topDivider && <Divider /> }\n\t\t\t<ControlTypeContainer layout={ layout }>\n\t\t\t\t{ control.label ? <ControlFormLabel>{ control.label }</ControlFormLabel> : null }\n\t\t\t\t<BaseControl type={ control.type as ControlType } props={ control.props } />\n\t\t\t</ControlTypeContainer>\n\t\t</SettingsField>\n\t);\n};\n","import * as React from 'react';\nimport type { ComponentProps } from 'react';\n\nimport { useElement } from '../contexts/element-context';\nimport { ControlTypeNotFoundError } from '../errors';\nimport { type ControlType, type ControlTypes, getControl } from './controls-registry';\n\ntype IsRequired< T, K extends keyof T > = object extends Pick< T, K > ? false : true;\n\ntype AnyPropertyRequired< T > = {\n\t[ K in keyof T ]: IsRequired< T, K >;\n}[ keyof T ] extends true\n\t? true\n\t: false;\n\ntype ControlProps< T extends ControlType > = AnyPropertyRequired< ComponentProps< ControlTypes[ T ] > > extends true\n\t? {\n\t\t\tprops: ComponentProps< ControlTypes[ T ] >;\n\t\t\ttype: T;\n\t }\n\t: {\n\t\t\tprops?: ComponentProps< ControlTypes[ T ] >;\n\t\t\ttype: T;\n\t };\n\nexport const Control = < T extends ControlType >( { props, type }: ControlProps< T > ) => {\n\tconst ControlByType = getControl( type );\n\tconst { element } = useElement();\n\n\tif ( ! ControlByType ) {\n\t\tthrow new ControlTypeNotFoundError( {\n\t\t\tcontext: { controlType: type },\n\t\t} );\n\t}\n\n\t// @ts-expect-error ControlComponent props are inferred from the type (T).\n\treturn <ControlByType { ...props } context={ { elementId: element.id } } />;\n};\n","import {\n\ttype ControlComponent,\n\tImageControl,\n\tLinkControl,\n\tSelectControl,\n\tSizeControl,\n\tSvgMediaControl,\n\tSwitchControl,\n\tTextAreaControl,\n\tTextControl,\n\tUrlControl,\n} from '@elementor/editor-controls';\nimport { type ControlLayout } from '@elementor/editor-elements';\n\ntype ControlRegistry = Record< string, { component: ControlComponent; layout: ControlLayout } >;\n\nconst controlTypes = {\n\timage: { component: ImageControl, layout: 'full' },\n\t'svg-media': { component: SvgMediaControl, layout: 'full' },\n\ttext: { component: TextControl, layout: 'full' },\n\ttextarea: { component: TextAreaControl, layout: 'full' },\n\tsize: { component: SizeControl, layout: 'two-columns' },\n\tselect: { component: SelectControl, layout: 'two-columns' },\n\tlink: { component: LinkControl, layout: 'full' },\n\turl: { component: UrlControl, layout: 'full' },\n\tswitch: { component: SwitchControl, layout: 'two-columns' },\n} as const satisfies ControlRegistry;\n\nexport type ControlType = keyof typeof controlTypes;\n\nexport type ControlTypes = {\n\t[ key in ControlType ]: ( typeof controlTypes )[ key ][ 'component' ];\n};\n\nexport const getControl = ( type: ControlType ) => controlTypes[ type ]?.component;\n\nexport const getDefaultLayout = ( type: ControlType ) => controlTypes[ type ].layout;\n","import * as React from 'react';\nimport { type ControlLayout } from '@elementor/editor-elements';\nimport { Box, type BoxProps, styled } from '@elementor/ui';\n\nexport const ControlTypeContainer = ( { children, layout }: React.PropsWithChildren< { layout?: ControlLayout } > ) => {\n\treturn <StyledContainer layout={ layout }>{ children }</StyledContainer>;\n};\n\nconst StyledContainer = styled( Box, {\n\tshouldForwardProp: ( prop: string ) => ! [ 'layout' ].includes( prop ),\n} )< BoxProps & { layout: ControlLayout } >( ( { layout, theme } ) => ( {\n\tdisplay: 'grid',\n\tgridGap: theme.spacing( 1 ),\n\t...getGridLayout( layout ),\n} ) );\n\nconst getGridLayout = ( layout: ControlLayout ) => ( {\n\tjustifyContent: 'space-between',\n\tgridTemplateColumns: {\n\t\tfull: 'minmax(0, 1fr)',\n\t\t'two-columns': 'repeat(2, minmax(0, 1fr))',\n\t}[ layout ],\n} );\n","import * as React from 'react';\nimport { PropKeyProvider, PropProvider } from '@elementor/editor-controls';\nimport { updateElementSettings, useElementSetting } from '@elementor/editor-elements';\nimport { type PropKey, type PropValue } from '@elementor/editor-props';\n\nimport { useElement } from '../contexts/element-context';\nimport { createTopLevelOjectType } from './create-top-level-object-type';\n\ntype Props = {\n\tbind: PropKey;\n\tchildren: React.ReactNode;\n};\n\nexport const SettingsField = ( { bind, children }: Props ) => {\n\tconst { element, elementType } = useElement();\n\n\tconst settingsValue = useElementSetting< PropValue >( element.id, bind );\n\n\tconst value = { [ bind ]: settingsValue };\n\n\tconst propType = createTopLevelOjectType( { schema: elementType.propsSchema } );\n\n\tconst setValue = ( newValue: Record< string, PropValue > ) => {\n\t\tupdateElementSettings( {\n\t\t\tid: element.id,\n\t\t\tprops: { ...newValue },\n\t\t} );\n\t};\n\n\treturn (\n\t\t<PropProvider propType={ propType } value={ value } setValue={ setValue }>\n\t\t\t<PropKeyProvider bind={ bind }>{ children }</PropKeyProvider>\n\t\t</PropProvider>\n\t);\n};\n","import { type ObjectPropType, type PropsSchema } from '@elementor/editor-props';\n\nexport const createTopLevelOjectType = ( { schema }: { schema: PropsSchema } ) => {\n\tconst schemaPropType: ObjectPropType = {\n\t\tkey: '',\n\t\tkind: 'object',\n\t\tmeta: {},\n\t\tsettings: {},\n\t\tdefault: null,\n\t\tshape: schema,\n\t};\n\n\treturn schemaPropType;\n};\n","import * as React from 'react';\nimport { type PropsWithChildren, useId } from 'react';\nimport { Collapse, Divider, ListItemButton, ListItemText, Stack } from '@elementor/ui';\n\nimport { useStateByElement } from '../hooks/use-state-by-element';\nimport { CollapseIcon } from './collapse-icon';\n\ntype Props = PropsWithChildren< {\n\ttitle: string;\n\tdefaultExpanded?: boolean;\n} >;\n\nexport function Section( { title, children, defaultExpanded = false }: Props ) {\n\tconst [ isOpen, setIsOpen ] = useStateByElement( title, !! defaultExpanded );\n\n\tconst id = useId();\n\tconst labelId = `label-${ id }`;\n\tconst contentId = `content-${ id }`;\n\n\treturn (\n\t\t<>\n\t\t\t<ListItemButton\n\t\t\t\tid={ labelId }\n\t\t\t\taria-controls={ contentId }\n\t\t\t\tonClick={ () => setIsOpen( ! isOpen ) }\n\t\t\t\tsx={ { '&:hover': { backgroundColor: 'transparent' } } }\n\t\t\t>\n\t\t\t\t<ListItemText\n\t\t\t\t\tsecondary={ title }\n\t\t\t\t\tsecondaryTypographyProps={ { color: 'text.primary', variant: 'caption', fontWeight: 'bold' } }\n\t\t\t\t/>\n\t\t\t\t<CollapseIcon open={ isOpen } color=\"secondary\" fontSize=\"tiny\" />\n\t\t\t</ListItemButton>\n\t\t\t<Collapse id={ contentId } aria-labelledby={ labelId } in={ isOpen } timeout=\"auto\" unmountOnExit>\n\t\t\t\t<Stack gap={ 2.5 } p={ 2 }>\n\t\t\t\t\t{ children }\n\t\t\t\t</Stack>\n\t\t\t</Collapse>\n\t\t\t<Divider />\n\t\t</>\n\t);\n}\n","import { ChevronDownIcon } from '@elementor/icons';\nimport { styled } from '@elementor/ui';\n\n// TODO: Replace this with future Rotate component that will be implemented in elementor-ui\nexport const CollapseIcon = styled( ChevronDownIcon, {\n\tshouldForwardProp: ( prop ) => prop !== 'open',\n} )< { open: boolean } >( ( { theme, open } ) => ( {\n\ttransform: open ? 'rotate(180deg)' : 'rotate(0deg)',\n\ttransition: theme.transitions.create( 'transform', {\n\t\tduration: theme.transitions.duration.standard,\n\t} ),\n} ) );\n","import * as React from 'react';\nimport { List, type ListProps } from '@elementor/ui';\n\nexport function SectionsList( props: ListProps ) {\n\treturn <List disablePadding component=\"div\" { ...props } />;\n}\n","import * as React from 'react';\nimport { useState } from 'react';\nimport { CLASSES_PROP_KEY } from '@elementor/editor-props';\nimport { useActiveBreakpoint } from '@elementor/editor-responsive';\nimport { type StyleDefinitionID, type StyleDefinitionState } from '@elementor/editor-styles';\nimport { isExperimentActive } from '@elementor/editor-v1-adapters';\nimport { SessionStorageProvider } from '@elementor/session';\nimport { Divider, Stack } from '@elementor/ui';\nimport { __ } from '@wordpress/i18n';\n\nimport { ClassesPropProvider } from '../contexts/classes-prop-context';\nimport { useElement } from '../contexts/element-context';\nimport { useScrollDirection } from '../contexts/scroll-context';\nimport { StyleProvider } from '../contexts/style-context';\nimport { StyleInheritanceProvider } from '../contexts/styles-inheritance-context';\nimport { useActiveStyleDefId } from '../hooks/use-active-style-def-id';\nimport { useDefaultPanelSettings } from '../hooks/use-default-panel-settings';\nimport { EXPERIMENTAL_FEATURES } from '../sync/experiments-flags';\nimport { CssClassSelector } from './css-classes/css-class-selector';\nimport { Section } from './section';\nimport { SectionsList } from './sections-list';\nimport { BackgroundSection } from './style-sections/background-section/background-section';\nimport { BorderSection } from './style-sections/border-section/border-section';\nimport { EffectsSection } from './style-sections/effects-section/effects-section';\nimport { LayoutSection } from './style-sections/layout-section/layout-section';\nimport { PositionSection } from './style-sections/position-section/position-section';\nimport { SizeSection } from './style-sections/size-section/size-section';\nimport { SpacingSection } from './style-sections/spacing-section/spacing-section';\nimport { TypographySection } from './style-sections/typography-section/typography-section';\n\nconst TABS_HEADER_HEIGHT = '37px';\n\nexport const stickyHeaderStyles = {\n\tposition: 'sticky',\n\tzIndex: 1,\n\topacity: 1,\n\tbackgroundColor: 'background.default',\n\ttransition: 'top 300ms ease',\n};\n\ntype Section = {\n\tcomponent: () => React.JSX.Element;\n\tname: string;\n\ttitle: string;\n};\n\nconst PanelSection = ( { section }: { section: Section } ) => {\n\tconst { component, name, title } = section;\n\tconst tabDefaults = useDefaultPanelSettings();\n\tconst SectionComponent = component;\n\tconst isExpanded = isExperimentActive( EXPERIMENTAL_FEATURES.V_3_30 )\n\t\t? tabDefaults.defaultSectionsExpanded.style?.includes( name )\n\t\t: false;\n\n\treturn (\n\t\t<Section title={ title } defaultExpanded={ isExpanded }>\n\t\t\t<SectionComponent />\n\t\t</Section>\n\t);\n};\n\nexport const StyleTab = () => {\n\tconst currentClassesProp = useCurrentClassesProp();\n\tconst [ activeStyleDefId, setActiveStyleDefId ] = useActiveStyleDefId( currentClassesProp );\n\tconst [ activeStyleState, setActiveStyleState ] = useState< StyleDefinitionState | null >( null );\n\tconst breakpoint = useActiveBreakpoint();\n\n\treturn (\n\t\t<ClassesPropProvider prop={ currentClassesProp }>\n\t\t\t<StyleProvider\n\t\t\t\tmeta={ { breakpoint, state: activeStyleState } }\n\t\t\t\tid={ activeStyleDefId }\n\t\t\t\tsetId={ ( id: StyleDefinitionID | null ) => {\n\t\t\t\t\tsetActiveStyleDefId( id );\n\t\t\t\t\tsetActiveStyleState( null );\n\t\t\t\t} }\n\t\t\t\tsetMetaState={ setActiveStyleState }\n\t\t\t>\n\t\t\t\t<SessionStorageProvider prefix={ activeStyleDefId ?? '' }>\n\t\t\t\t\t<StyleInheritanceProvider>\n\t\t\t\t\t\t<ClassesHeader>\n\t\t\t\t\t\t\t<CssClassSelector />\n\t\t\t\t\t\t\t<Divider />\n\t\t\t\t\t\t</ClassesHeader>\n\t\t\t\t\t\t<SectionsList>\n\t\t\t\t\t\t\t<PanelSection\n\t\t\t\t\t\t\t\tsection={ {\n\t\t\t\t\t\t\t\t\tcomponent: LayoutSection,\n\t\t\t\t\t\t\t\t\tname: 'Layout',\n\t\t\t\t\t\t\t\t\ttitle: __( 'Layout', 'elementor' ),\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<PanelSection\n\t\t\t\t\t\t\t\tsection={ {\n\t\t\t\t\t\t\t\t\tcomponent: SpacingSection,\n\t\t\t\t\t\t\t\t\tname: 'Spacing',\n\t\t\t\t\t\t\t\t\ttitle: __( 'Spacing', 'elementor' ),\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<PanelSection\n\t\t\t\t\t\t\t\tsection={ {\n\t\t\t\t\t\t\t\t\tcomponent: SizeSection,\n\t\t\t\t\t\t\t\t\tname: 'Size',\n\t\t\t\t\t\t\t\t\ttitle: __( 'Size', 'elementor' ),\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<PanelSection\n\t\t\t\t\t\t\t\tsection={ {\n\t\t\t\t\t\t\t\t\tcomponent: PositionSection,\n\t\t\t\t\t\t\t\t\tname: 'Position',\n\t\t\t\t\t\t\t\t\ttitle: __( 'Position', 'elementor' ),\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<PanelSection\n\t\t\t\t\t\t\t\tsection={ {\n\t\t\t\t\t\t\t\t\tcomponent: TypographySection,\n\t\t\t\t\t\t\t\t\tname: 'Typography',\n\t\t\t\t\t\t\t\t\ttitle: __( 'Typography', 'elementor' ),\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<PanelSection\n\t\t\t\t\t\t\t\tsection={ {\n\t\t\t\t\t\t\t\t\tcomponent: BackgroundSection,\n\t\t\t\t\t\t\t\t\tname: 'Background',\n\t\t\t\t\t\t\t\t\ttitle: __( 'Background', 'elementor' ),\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<PanelSection\n\t\t\t\t\t\t\t\tsection={ {\n\t\t\t\t\t\t\t\t\tcomponent: BorderSection,\n\t\t\t\t\t\t\t\t\tname: 'Border',\n\t\t\t\t\t\t\t\t\ttitle: __( 'Border', 'elementor' ),\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<PanelSection\n\t\t\t\t\t\t\t\tsection={ {\n\t\t\t\t\t\t\t\t\tcomponent: EffectsSection,\n\t\t\t\t\t\t\t\t\tname: 'Effects',\n\t\t\t\t\t\t\t\t\ttitle: __( 'Effects', 'elementor' ),\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</SectionsList>\n\t\t\t\t\t</StyleInheritanceProvider>\n\t\t\t\t</SessionStorageProvider>\n\t\t\t</StyleProvider>\n\t\t</ClassesPropProvider>\n\t);\n};\n\nfunction ClassesHeader( { children }: { children: React.ReactNode } ) {\n\tconst scrollDirection = useScrollDirection();\n\n\treturn (\n\t\t<Stack sx={ { ...stickyHeaderStyles, top: scrollDirection === 'up' ? TABS_HEADER_HEIGHT : 0 } }>\n\t\t\t{ children }\n\t\t</Stack>\n\t);\n}\n\nfunction useCurrentClassesProp(): string {\n\tconst { elementType } = useElement();\n\n\tconst prop = Object.entries( elementType.propsSchema ).find(\n\t\t( [ , propType ] ) => propType.kind === 'plain' && propType.key === CLASSES_PROP_KEY\n\t);\n\n\tif ( ! prop ) {\n\t\tthrow new Error( 'Element does not have a classes prop' );\n\t}\n\n\treturn prop[ 0 ];\n}\n\nexport { PanelSection as StyleTabSection };\n","import * as React from 'react';\nimport { createContext, type PropsWithChildren, useContext } from 'react';\nimport { getWidgetsCache, useElementSetting } from '@elementor/editor-elements';\nimport { classesPropTypeUtil, type ClassesPropValue } from '@elementor/editor-props';\nimport { getBreakpointsTree } from '@elementor/editor-responsive';\nimport { getStylesSchema } from '@elementor/editor-styles';\nimport { stylesRepository } from '@elementor/editor-styles-repository';\n\nimport { useStylesRerender } from '../hooks/use-styles-rerender';\nimport { createStylesInheritance } from '../styles-inheritance/create-styles-inheritance';\nimport {\n\ttype SnapshotPropValue,\n\ttype StylesInheritanceAPI,\n\ttype StylesInheritanceSnapshot,\n} from '../styles-inheritance/types';\nimport { useClassesProp } from './classes-prop-context';\nimport { useElement } from './element-context';\nimport { useStyle } from './style-context';\n\nconst Context = createContext< StylesInheritanceAPI | null >( null );\n\nexport function StyleInheritanceProvider( { children }: PropsWithChildren ) {\n\tconst styleDefs = useAppliedStyles();\n\n\tconst breakpointsTree = getBreakpointsTree();\n\n\tconst { getSnapshot, getInheritanceChain } = createStylesInheritance( styleDefs, breakpointsTree );\n\n\treturn <Context.Provider value={ { getSnapshot, getInheritanceChain } }>{ children }</Context.Provider>;\n}\n\nexport function useStylesInheritanceSnapshot(): StylesInheritanceSnapshot | null {\n\tconst context = useContext( Context );\n\tconst { meta } = useStyle();\n\n\tif ( ! context ) {\n\t\tthrow new Error( 'useStylesInheritanceSnapshot must be used within a StyleInheritanceProvider' );\n\t}\n\n\tif ( ! meta ) {\n\t\treturn null;\n\t}\n\n\treturn context.getSnapshot( meta ) ?? null;\n}\n\nexport function useStylesInheritanceChain( path: string[] ): SnapshotPropValue[] {\n\tconst context = useContext( Context );\n\n\tif ( ! context ) {\n\t\tthrow new Error( 'useStylesInheritanceChain must be used within a StyleInheritanceProvider' );\n\t}\n\n\tconst schema = getStylesSchema();\n\n\tconst topLevelPropType = schema?.[ path[ 0 ] ];\n\n\tconst snapshot = useStylesInheritanceSnapshot();\n\n\tif ( ! snapshot ) {\n\t\treturn [];\n\t}\n\n\treturn context.getInheritanceChain( snapshot, path, topLevelPropType );\n}\n\nconst useAppliedStyles = () => {\n\tconst { element } = useElement();\n\tconst currentClassesProp = useClassesProp();\n\tconst baseStyles = useBaseStyles();\n\n\tuseStylesRerender();\n\n\tconst classesProp = useElementSetting< ClassesPropValue >( element.id, currentClassesProp );\n\n\tconst appliedStyles = classesPropTypeUtil.extract( classesProp ) ?? [];\n\n\treturn stylesRepository.all().filter( ( style ) => [ ...baseStyles, ...appliedStyles ].includes( style.id ) );\n};\n\nconst useBaseStyles = () => {\n\tconst { elementType } = useElement();\n\tconst widgetsCache = getWidgetsCache();\n\tconst widgetCache = widgetsCache?.[ elementType.key ];\n\n\treturn Object.keys( widgetCache?.base_styles ?? {} );\n};\n","import { useEffect, useReducer } from 'react';\n\nimport { useStyle } from '../contexts/style-context';\n\nexport const useStylesRerender = () => {\n\tconst { provider } = useStyle();\n\tconst [ , reRender ] = useReducer( ( p ) => ! p, false );\n\n\tuseEffect( () => provider?.subscribe( reRender ), [ provider ] );\n};\n","import {\n\tisEmpty,\n\tisTransformable,\n\ttype PropKey,\n\ttype PropType,\n\ttype PropValue,\n\ttype UnionPropType,\n} from '@elementor/editor-props';\nimport { type BreakpointNode } from '@elementor/editor-responsive';\nimport { type StyleDefinition } from '@elementor/editor-styles';\n\nimport { getProviderByStyleId } from '../contexts/style-context';\nimport { createSnapshotsManager } from './create-snapshots-manager';\nimport { type BreakpointsStatesStyles, type StyleInheritanceMetaProps, type StylesInheritanceAPI } from './types';\nimport { getBreakpointKey, getStateKey } from './utils';\n\ntype ValidPropType = Exclude< PropType, UnionPropType >;\n\nexport function createStylesInheritance(\n\tstyleDefs: StyleDefinition[],\n\tbreakpointsRoot: BreakpointNode\n): StylesInheritanceAPI {\n\tconst styleVariantsByMeta = buildStyleVariantsByMetaMapping( styleDefs );\n\n\tconst getStyles = ( { breakpoint, state }: StyleInheritanceMetaProps ) =>\n\t\tstyleVariantsByMeta?.[ getBreakpointKey( breakpoint ) ]?.[ getStateKey( state ) ] ?? [];\n\n\treturn {\n\t\tgetSnapshot: createSnapshotsManager( getStyles, breakpointsRoot ),\n\t\tgetInheritanceChain: ( snapshot, path, topLevelPropType ) => {\n\t\t\tconst [ field, ...nextFields ] = path;\n\n\t\t\tlet inheritanceChain = snapshot[ field ] ?? [];\n\n\t\t\tif ( nextFields.length > 0 ) {\n\t\t\t\tconst filterPropType = getFilterPropType( topLevelPropType, nextFields );\n\n\t\t\t\tinheritanceChain = inheritanceChain\n\t\t\t\t\t.map( ( { value: styleValue, ...rest } ) => ( {\n\t\t\t\t\t\t...rest,\n\t\t\t\t\t\tvalue: getValueByPath( styleValue, nextFields, filterPropType ),\n\t\t\t\t\t} ) )\n\t\t\t\t\t.filter( ( { value: styleValue } ) => ! isEmpty( styleValue ) );\n\t\t\t}\n\n\t\t\treturn inheritanceChain;\n\t\t},\n\t};\n}\n\nfunction buildStyleVariantsByMetaMapping( styleDefs: StyleDefinition[] ): BreakpointsStatesStyles {\n\tconst breakpointStateSlots: BreakpointsStatesStyles = {};\n\n\tstyleDefs.forEach( ( styleDef ) => {\n\t\tconst provider = getProviderByStyleId( styleDef.id )?.getKey() ?? null;\n\n\t\t// iterate over each style definition's variants and place them in the corresponding breakpoint's base or state styles\n\t\tstyleDef.variants.forEach( ( variant ) => {\n\t\t\tconst { meta } = variant;\n\t\t\tconst { state, breakpoint } = meta;\n\n\t\t\tconst breakpointKey = getBreakpointKey( breakpoint );\n\t\t\tconst stateKey = getStateKey( state );\n\n\t\t\tif ( ! breakpointStateSlots[ breakpointKey ] ) {\n\t\t\t\tbreakpointStateSlots[ breakpointKey ] = {};\n\t\t\t}\n\n\t\t\tconst breakpointNode = breakpointStateSlots[ breakpointKey ];\n\n\t\t\tif ( ! breakpointNode[ stateKey ] ) {\n\t\t\t\tbreakpointNode[ stateKey ] = [];\n\t\t\t}\n\n\t\t\tbreakpointNode[ stateKey ].push( {\n\t\t\t\tstyle: styleDef,\n\t\t\t\tvariant,\n\t\t\t\tprovider,\n\t\t\t} );\n\t\t} );\n\t} );\n\n\treturn breakpointStateSlots;\n}\n\nfunction getValueByPath( value: PropValue, path: PropKey[], filterPropType: ValidPropType | null ): PropValue {\n\tif ( ! value || typeof value !== 'object' ) {\n\t\treturn null;\n\t}\n\n\tif ( shouldUseOriginalValue( filterPropType, value ) ) {\n\t\treturn value;\n\t}\n\n\treturn path.reduce( ( currentScope: PropValue, key: PropKey ): PropValue | null => {\n\t\tif ( ! currentScope ) {\n\t\t\treturn null;\n\t\t}\n\n\t\tif ( isTransformable( currentScope ) ) {\n\t\t\treturn currentScope.value?.[ key ] ?? null;\n\t\t}\n\n\t\tif ( typeof currentScope === 'object' ) {\n\t\t\treturn currentScope[ key as keyof typeof currentScope ] ?? null;\n\t\t}\n\n\t\treturn null;\n\t}, value );\n}\n\nfunction shouldUseOriginalValue( filterPropType: ValidPropType | null, value: PropValue ): boolean {\n\treturn !! filterPropType && isTransformable( value ) && filterPropType.key !== value.$$type;\n}\n\nconst getFilterPropType = ( propType: PropType, path: string[] ): ValidPropType | null => {\n\tif ( ! propType || propType.kind !== 'union' ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\tObject.values( propType.prop_types ).find( ( type: PropType ) => {\n\t\t\treturn !! path.reduce( ( currentScope: PropType | null, key: string ) => {\n\t\t\t\tif ( currentScope?.kind !== 'object' ) {\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\n\t\t\t\tconst { shape } = currentScope;\n\n\t\t\t\tif ( shape[ key ] ) {\n\t\t\t\t\treturn shape[ key ];\n\t\t\t\t}\n\n\t\t\t\treturn null;\n\t\t\t}, type );\n\t\t} ) ?? null\n\t);\n};\n","import { filterEmptyValues } from '@elementor/editor-props';\nimport { type BreakpointId, type BreakpointNode } from '@elementor/editor-responsive';\nimport { type StyleDefinitionState } from '@elementor/editor-styles';\n\nimport {\n\ttype BreakpointsInheritancePath,\n\ttype BreakpointsStatesSnapshotsMapping,\n\ttype BreakpointStatesSlotsMapping,\n\ttype SnapshotPropValue,\n\ttype StyleInheritanceMetaProps,\n\ttype StylesInheritanceSnapshot,\n\ttype StylesInheritanceSnapshotGetter,\n\ttype StylesInheritanceSnapshotsSlot,\n\ttype StyleVariantDetails,\n} from './types';\nimport { DEFAULT_STATE, getBreakpointKey, getStateKey } from './utils';\n\nexport function createSnapshotsManager(\n\tgetStylesByMeta: ( meta: StyleInheritanceMetaProps ) => StyleVariantDetails[],\n\tbreakpointsRoot: BreakpointNode\n): StylesInheritanceSnapshotGetter {\n\tconst breakpointsInheritancePaths = makeBreakpointsInheritancePaths( breakpointsRoot );\n\tconst allBreakpointStatesSnapshots: BreakpointsStatesSnapshotsMapping = {};\n\n\tconst buildMissingSnapshotsForBreakpoint = (\n\t\tcurrentBreakpointId: BreakpointId | null,\n\t\tparentBreakpoint: BreakpointStatesSlotsMapping | undefined,\n\t\tstate: StyleDefinitionState\n\t) => {\n\t\tconst currentBreakpointKey = getBreakpointKey( currentBreakpointId );\n\t\tconst stateKey = getStateKey( state );\n\n\t\tif ( ! allBreakpointStatesSnapshots[ currentBreakpointKey ] ) {\n\t\t\tallBreakpointStatesSnapshots[ currentBreakpointKey ] = {\n\t\t\t\t[ DEFAULT_STATE ]: buildStateSnapshotSlot(\n\t\t\t\t\tgetStylesByMeta( { breakpoint: currentBreakpointId, state: null } ),\n\t\t\t\t\tparentBreakpoint,\n\t\t\t\t\t{},\n\t\t\t\t\tnull\n\t\t\t\t),\n\t\t\t};\n\t\t}\n\n\t\tif ( state && ! allBreakpointStatesSnapshots[ currentBreakpointKey ][ stateKey ] ) {\n\t\t\tallBreakpointStatesSnapshots[ currentBreakpointKey ][ stateKey ] = buildStateSnapshotSlot(\n\t\t\t\tgetStylesByMeta( { breakpoint: currentBreakpointId, state } ),\n\t\t\t\tparentBreakpoint,\n\t\t\t\tallBreakpointStatesSnapshots[ currentBreakpointKey ],\n\t\t\t\tstate\n\t\t\t);\n\t\t}\n\t};\n\n\treturn ( meta: StyleInheritanceMetaProps ) => {\n\t\tconst { breakpoint, state } = meta;\n\n\t\tconst stateKey = getStateKey( state );\n\t\tconst breakpointKey = getBreakpointKey( breakpoint );\n\n\t\tif ( allBreakpointStatesSnapshots[ breakpointKey ]?.[ stateKey ] ) {\n\t\t\t// snapshot was already made for this breakpoint+state\n\t\t\treturn allBreakpointStatesSnapshots[ breakpointKey ][ stateKey ].snapshot;\n\t\t}\n\n\t\tconst breakpointsChain = [ ...breakpointsInheritancePaths[ breakpointKey ], breakpoint ];\n\n\t\tbreakpointsChain.forEach( ( breakpointId, index ) => {\n\t\t\tconst parentBreakpointId = index > 0 ? breakpointsChain[ index - 1 ] : null;\n\n\t\t\tbuildMissingSnapshotsForBreakpoint(\n\t\t\t\tbreakpointId,\n\t\t\t\tparentBreakpointId ? allBreakpointStatesSnapshots[ parentBreakpointId ] : undefined,\n\t\t\t\tstate\n\t\t\t);\n\t\t} );\n\n\t\treturn allBreakpointStatesSnapshots[ breakpointKey ]?.[ stateKey ]?.snapshot;\n\t};\n}\n\n/**\n * builds a mapping of each breakpoint to its inheritance chain, e.g. -\n * \tdesktop: [],\n * \ttablet: [ 'desktop' ],\n * \tmobile: [ 'desktop', 'tablet' ]\n * @param root\n */\nfunction makeBreakpointsInheritancePaths( root: BreakpointNode ): BreakpointsInheritancePath {\n\tconst breakpoints: Partial< BreakpointsInheritancePath > = {};\n\n\tconst traverse = ( node: BreakpointNode, parent?: BreakpointId[] ) => {\n\t\tconst { id, children } = node;\n\n\t\tbreakpoints[ id ] = parent ? [ ...parent ] : [];\n\n\t\tchildren?.forEach( ( child ) => {\n\t\t\ttraverse( child, [ ...( breakpoints[ id ] ?? [] ), id ] );\n\t\t} );\n\t};\n\n\ttraverse( root );\n\n\treturn breakpoints as BreakpointsInheritancePath;\n}\n\n// creates a snapshot slot for a specific breakpoint and state\nfunction buildStateSnapshotSlot(\n\tstyles: StyleVariantDetails[],\n\tparentBreakpoint: BreakpointStatesSlotsMapping | undefined,\n\tcurrentBreakpoint: BreakpointStatesSlotsMapping,\n\tstate: StyleDefinitionState\n): StylesInheritanceSnapshotsSlot {\n\tconst initialSlot = buildInitialSnapshotFromStyles( styles );\n\n\tif ( ! state ) {\n\t\treturn {\n\t\t\tsnapshot: mergeSnapshots( [ initialSlot.snapshot, parentBreakpoint?.[ DEFAULT_STATE ]?.snapshot ] ),\n\t\t\tstateSpecificSnapshot: undefined,\n\t\t};\n\t}\n\n\treturn {\n\t\tsnapshot: mergeSnapshots( [\n\t\t\tinitialSlot.snapshot,\n\t\t\tparentBreakpoint?.[ state ]?.stateSpecificSnapshot,\n\t\t\tcurrentBreakpoint[ DEFAULT_STATE ]?.snapshot,\n\t\t] ),\n\t\tstateSpecificSnapshot: mergeSnapshots( [\n\t\t\tinitialSlot.stateSpecificSnapshot,\n\t\t\tparentBreakpoint?.[ state ]?.stateSpecificSnapshot,\n\t\t] ),\n\t};\n}\n\n// creates an initial snapshot based on the passed style variants only\nfunction buildInitialSnapshotFromStyles( styles: StyleVariantDetails[] ): StylesInheritanceSnapshotsSlot {\n\tconst snapshot: StylesInheritanceSnapshot = {};\n\n\tstyles.forEach( ( styleData ) => {\n\t\tconst {\n\t\t\tvariant: { props },\n\t\t} = styleData;\n\n\t\tObject.entries( props ).forEach( ( [ key, value ] ) => {\n\t\t\tconst filteredValue = filterEmptyValues( value );\n\n\t\t\tif ( filteredValue === null ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( ! snapshot[ key ] ) {\n\t\t\t\tsnapshot[ key ] = [];\n\t\t\t}\n\n\t\t\tconst snapshotPropValue: SnapshotPropValue = {\n\t\t\t\t...styleData,\n\t\t\t\tvalue: filteredValue,\n\t\t\t};\n\n\t\t\tsnapshot[ key ].push( snapshotPropValue );\n\t\t} );\n\t} );\n\n\treturn {\n\t\tsnapshot,\n\t\tstateSpecificSnapshot: snapshot,\n\t};\n}\n\n// merge previous snapshot into the current one - first value of each prop is the strongest\nfunction mergeSnapshots( snapshots: ( StylesInheritanceSnapshot | undefined )[] ) {\n\tconst snapshot: StylesInheritanceSnapshot = {};\n\n\tsnapshots.filter( Boolean ).forEach( ( currentSnapshot ) =>\n\t\tObject.entries( currentSnapshot as StylesInheritanceSnapshot ).forEach( ( [ key, values ] ) => {\n\t\t\tif ( ! snapshot[ key ] ) {\n\t\t\t\tsnapshot[ key ] = [];\n\t\t\t}\n\n\t\t\t// concatenate the previous snapshot's prop values to the current ones\n\t\t\tsnapshot[ key ] = snapshot[ key ].concat( values );\n\t\t} )\n\t);\n\n\treturn snapshot;\n}\n","import { type BreakpointId } from '@elementor/editor-responsive';\nimport { type StyleDefinitionState } from '@elementor/editor-styles';\n\nexport const DEFAULT_STATE = 'normal';\n\nconst DEFAULT_BREAKPOINT = 'desktop';\n\nexport const getStateKey = ( state: StyleDefinitionState ) => state ?? DEFAULT_STATE;\n\nexport const getBreakpointKey = ( breakpoint: BreakpointId | null ): BreakpointId => breakpoint ?? DEFAULT_BREAKPOINT;\n","import { getElementStyles, useElementSetting } from '@elementor/editor-elements';\nimport { type ClassesPropValue, type PropKey } from '@elementor/editor-props';\nimport { type StyleDefinitionID } from '@elementor/editor-styles';\n\nimport { useElement } from '../contexts/element-context';\nimport { useStateByElement } from './use-state-by-element';\n\nexport function useActiveStyleDefId( classProp: PropKey ) {\n\tconst [ activeStyledDefId, setActiveStyledDefId ] = useStateByElement< StyleDefinitionID | null >(\n\t\t'active-style-id',\n\t\tnull\n\t);\n\n\tconst appliedClassesIds = useAppliedClassesIds( classProp )?.value || [];\n\n\tconst fallback = useFirstAppliedClass( appliedClassesIds );\n\n\tconst activeAndAppliedClassId = useActiveAndAppliedClassId( activeStyledDefId, appliedClassesIds );\n\treturn [ activeAndAppliedClassId || fallback?.id || null, setActiveStyledDefId ] as const;\n}\n\nfunction useFirstAppliedClass( appliedClassesIds: string[] ) {\n\tconst { element } = useElement();\n\tconst stylesDefs = getElementStyles( element.id ) ?? {};\n\n\treturn Object.values( stylesDefs ).find( ( styleDef ) => appliedClassesIds.includes( styleDef.id ) );\n}\n\nfunction useAppliedClassesIds( classProp: PropKey ) {\n\tconst { element } = useElement();\n\n\treturn useElementSetting< ClassesPropValue >( element.id, classProp );\n}\n\nfunction useActiveAndAppliedClassId( id: StyleDefinitionID | null, appliedClassesIds: string[] ) {\n\tconst isClassApplied = !! id && appliedClassesIds.includes( id );\n\n\treturn isClassApplied ? id : null;\n}\n","import * as React from 'react';\nimport { BackgroundControl } from '@elementor/editor-controls';\n\nimport { StylesField } from '../../../controls-registry/styles-field';\nimport { SectionContent } from '../../section-content';\n\nexport const BackgroundSection = () => {\n\treturn (\n\t\t<SectionContent>\n\t\t\t<StylesField bind=\"background\">\n\t\t\t\t<BackgroundControl />\n\t\t\t</StylesField>\n\t\t</SectionContent>\n\t);\n};\n","import * as React from 'react';\nimport { ControlAdornmentsProvider, PropKeyProvider, PropProvider } from '@elementor/editor-controls';\nimport { type PropKey, type PropValue } from '@elementor/editor-props';\nimport { getStylesSchema } from '@elementor/editor-styles';\n\nimport { useStyle } from '../contexts/style-context';\nimport { useStylesField } from '../hooks/use-styles-field';\nimport { StylesInheritanceIndicator } from '../styles-inheritance/styles-inheritance-indicator';\nimport { createTopLevelOjectType } from './create-top-level-object-type';\n\nexport type StylesFieldProps = {\n\tbind: PropKey;\n\tplaceholder?: PropValue;\n\tchildren: React.ReactNode;\n};\n\nexport const StylesField = ( { bind, placeholder, children }: StylesFieldProps ) => {\n\tconst [ value, setValue ] = useStylesField( bind );\n\tconst { canEdit } = useStyle();\n\n\tconst stylesSchema = getStylesSchema();\n\n\tconst propType = createTopLevelOjectType( { schema: stylesSchema } );\n\n\tconst values = { [ bind ]: value };\n\tconst placeholderValues = { [ bind ]: placeholder };\n\n\tconst setValues = ( newValue: Record< string, PropValue > ) => {\n\t\tsetValue( newValue[ bind ] );\n\t};\n\n\treturn (\n\t\t<ControlAdornmentsProvider\n\t\t\titems={ [\n\t\t\t\t{\n\t\t\t\t\tid: 'styles-inheritance',\n\t\t\t\t\tAdornment: StylesInheritanceIndicator,\n\t\t\t\t},\n\t\t\t] }\n\t\t>\n\t\t\t<PropProvider\n\t\t\t\tpropType={ propType }\n\t\t\t\tvalue={ values }\n\t\t\t\tsetValue={ setValues }\n\t\t\t\tplaceholder={ placeholderValues }\n\t\t\t\tdisabled={ ! canEdit }\n\t\t\t>\n\t\t\t\t<PropKeyProvider bind={ bind }>{ children }</PropKeyProvider>\n\t\t\t</PropProvider>\n\t\t</ControlAdornmentsProvider>\n\t);\n};\n","import { useMemo } from 'react';\nimport {\n\tcreateElementStyle,\n\ttype CreateElementStyleArgs,\n\tdeleteElementStyle,\n\ttype ElementID,\n\tgetElementLabel,\n} from '@elementor/editor-elements';\nimport type { Props } from '@elementor/editor-props';\nimport { getVariantByMeta, type StyleDefinition, type StyleDefinitionVariant } from '@elementor/editor-styles';\nimport { type StylesProvider } from '@elementor/editor-styles-repository';\nimport { ELEMENTS_STYLES_RESERVED_LABEL } from '@elementor/editor-styles-repository';\nimport { undoable } from '@elementor/editor-v1-adapters';\nimport { __ } from '@wordpress/i18n';\n\nimport { useClassesProp } from '../contexts/classes-prop-context';\nimport { useElement } from '../contexts/element-context';\nimport { useStyle } from '../contexts/style-context';\nimport { StyleNotFoundUnderProviderError, StylesProviderCannotUpdatePropsError } from '../errors';\nimport { useStylesRerender } from './use-styles-rerender';\n\nexport function useStylesFields< T extends Props >( propNames: ( keyof T & string )[] ) {\n\tconst { element } = useElement();\n\tconst { id, meta, provider } = useStyle();\n\tconst classesProp = useClassesProp();\n\n\tconst undoableUpdateStyle = useUndoableUpdateStyle();\n\tconst undoableCreateElementStyle = useUndoableCreateElementStyle();\n\n\tuseStylesRerender();\n\n\tconst value = getProps< T >( {\n\t\telementId: element.id,\n\t\tstyleId: id,\n\t\tprovider,\n\t\tmeta,\n\t\tpropNames,\n\t} );\n\n\tconst setValue = ( props: T ) => {\n\t\tif ( id === null ) {\n\t\t\tundoableCreateElementStyle( {\n\t\t\t\telementId: element.id,\n\t\t\t\tclassesProp,\n\t\t\t\tmeta,\n\t\t\t\tprops,\n\t\t\t} );\n\n\t\t\treturn;\n\t\t}\n\n\t\tundoableUpdateStyle( {\n\t\t\telementId: element.id,\n\t\t\tstyleId: id,\n\t\t\tprovider,\n\t\t\tmeta,\n\t\t\tprops,\n\t\t} );\n\t};\n\n\treturn [ value, setValue ] as const;\n}\n\ntype GetPropsArgs = {\n\tprovider: StylesProvider | null;\n\tstyleId: StyleDefinition[ 'id' ] | null;\n\telementId: ElementID;\n\tmeta: StyleDefinitionVariant[ 'meta' ];\n\tpropNames: string[];\n};\n\ntype NullableValues< T extends Props > = {\n\t[ K in keyof T ]: T[ K ] | null;\n};\n\nfunction getProps< T extends Props >( { styleId, elementId, provider, meta, propNames }: GetPropsArgs ) {\n\tif ( ! provider || ! styleId ) {\n\t\treturn null;\n\t}\n\n\tconst style = provider.actions.get( styleId, { elementId } );\n\n\tif ( ! style ) {\n\t\tthrow new StyleNotFoundUnderProviderError( { context: { styleId, providerKey: provider.getKey() } } );\n\t}\n\n\tconst variant = getVariantByMeta( style, meta );\n\n\treturn Object.fromEntries(\n\t\tpropNames.map( ( key ) => [ key, variant?.props[ key ] ?? null ] )\n\t) as NullableValues< T >;\n}\n\ntype UndoableCreateElementStyleArgs = Omit< CreateElementStyleArgs, 'label' >;\n\nfunction useUndoableCreateElementStyle() {\n\treturn useMemo( () => {\n\t\treturn undoable(\n\t\t\t{\n\t\t\t\tdo: ( payload: UndoableCreateElementStyleArgs ) => {\n\t\t\t\t\treturn createElementStyle( {\n\t\t\t\t\t\t...payload,\n\t\t\t\t\t\tlabel: ELEMENTS_STYLES_RESERVED_LABEL,\n\t\t\t\t\t} );\n\t\t\t\t},\n\n\t\t\t\tundo: ( { elementId }, styleId ) => {\n\t\t\t\t\tdeleteElementStyle( elementId, styleId );\n\t\t\t\t},\n\n\t\t\t\tredo: ( payload, styleId ) => {\n\t\t\t\t\treturn createElementStyle( {\n\t\t\t\t\t\t...payload,\n\t\t\t\t\t\tstyleId,\n\t\t\t\t\t\tlabel: ELEMENTS_STYLES_RESERVED_LABEL,\n\t\t\t\t\t} );\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\ttitle: ( { elementId } ) => getElementLabel( elementId ),\n\t\t\t\tsubtitle: __( 'Style edited', 'elementor' ),\n\t\t\t}\n\t\t);\n\t}, [] );\n}\n\ntype UndoableUpdateStyleArgs = {\n\telementId: ElementID;\n\tstyleId: StyleDefinition[ 'id' ];\n\tprovider: StylesProvider;\n\tmeta: StyleDefinitionVariant[ 'meta' ];\n\tprops: Props;\n};\n\nfunction useUndoableUpdateStyle() {\n\treturn useMemo( () => {\n\t\treturn undoable(\n\t\t\t{\n\t\t\t\tdo: ( { elementId, styleId, provider, meta, props }: UndoableUpdateStyleArgs ) => {\n\t\t\t\t\tif ( ! provider.actions.updateProps ) {\n\t\t\t\t\t\tthrow new StylesProviderCannotUpdatePropsError( {\n\t\t\t\t\t\t\tcontext: { providerKey: provider.getKey() },\n\t\t\t\t\t\t} );\n\t\t\t\t\t}\n\n\t\t\t\t\tconst style = provider.actions.get( styleId, { elementId } );\n\n\t\t\t\t\tconst prevProps = getCurrentProps( style, meta );\n\n\t\t\t\t\tprovider.actions.updateProps(\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tid: styleId,\n\t\t\t\t\t\t\tmeta,\n\t\t\t\t\t\t\tprops,\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{ elementId }\n\t\t\t\t\t);\n\n\t\t\t\t\treturn prevProps;\n\t\t\t\t},\n\n\t\t\t\tundo: ( { elementId, styleId, meta, provider }, prevProps ) => {\n\t\t\t\t\tprovider.actions.updateProps?.( { id: styleId, meta, props: prevProps }, { elementId } );\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\ttitle: ( { elementId } ) => getElementLabel( elementId ),\n\t\t\t\tsubtitle: __( 'Style edited', 'elementor' ),\n\t\t\t}\n\t\t);\n\t}, [] );\n}\n\nfunction getCurrentProps( style: StyleDefinition | null, meta: StyleDefinitionVariant[ 'meta' ] ) {\n\tif ( ! style ) {\n\t\treturn {};\n\t}\n\n\tconst variant = getVariantByMeta( style, meta );\n\n\tconst props = variant?.props ?? {};\n\n\treturn structuredClone( props );\n}\n","import type { PropKey, PropValue } from '@elementor/editor-props';\n\nimport { useStylesFields } from './use-styles-fields';\n\nexport function useStylesField< T extends PropValue >( propName: PropKey ): [ T | null, ( newValue: T ) => void ] {\n\tconst [ values, setValues ] = useStylesFields< { [ k: typeof propName ]: T } >( [ propName ] );\n\n\tconst value = values?.[ propName ] ?? null;\n\n\tconst setValue = ( newValue: T ) => {\n\t\tsetValues( {\n\t\t\t[ propName ]: newValue,\n\t\t} );\n\t};\n\n\treturn [ value, setValue ];\n}\n","import * as React from 'react';\nimport { useBoundProp } from '@elementor/editor-controls';\nimport { isEmpty } from '@elementor/editor-props';\nimport { ELEMENTS_BASE_STYLES_PROVIDER_KEY, isElementsStylesProvider } from '@elementor/editor-styles-repository';\nimport { isExperimentActive } from '@elementor/editor-v1-adapters';\nimport { Tooltip } from '@elementor/ui';\nimport { __ } from '@wordpress/i18n';\n\nimport { StyleIndicator } from '../components/style-indicator';\nimport { useStyle } from '../contexts/style-context';\nimport { useStylesInheritanceChain } from '../contexts/styles-inheritance-context';\nimport { EXPERIMENTAL_FEATURES } from '../sync/experiments-flags';\nimport { isUsingIndicatorPopover } from './consts';\nimport { StyleIndicatorInfotip } from './styles-inheritance-infotip';\n\nexport const StylesInheritanceIndicator = () => {\n\tconst { path, propType } = useBoundProp();\n\tconst { id: currentStyleId, provider: currentStyleProvider, meta: currentStyleMeta } = useStyle();\n\n\tconst isUsingNestedProps = isExperimentActive( EXPERIMENTAL_FEATURES.V_3_30 );\n\n\tconst finalPath = isUsingNestedProps ? path : path.slice( 0, 1 );\n\n\tconst inheritanceChain = useStylesInheritanceChain( finalPath );\n\n\tif ( ! inheritanceChain.length ) {\n\t\treturn null;\n\t}\n\n\tconst currentItem = inheritanceChain.find(\n\t\t( {\n\t\t\tstyle,\n\t\t\tvariant: {\n\t\t\t\tmeta: { breakpoint, state },\n\t\t\t},\n\t\t} ) =>\n\t\t\tstyle.id === currentStyleId &&\n\t\t\tbreakpoint === currentStyleMeta.breakpoint &&\n\t\t\tstate === currentStyleMeta.state\n\t);\n\n\tconst hasValue = ! isEmpty( currentItem?.value );\n\n\tconst [ actualStyle ] = inheritanceChain;\n\n\tif ( actualStyle.provider === ELEMENTS_BASE_STYLES_PROVIDER_KEY ) {\n\t\treturn null;\n\t}\n\n\tconst isFinalValue = currentItem === actualStyle;\n\n\tconst label = getLabel( { isFinalValue, hasValue } );\n\tconst variantType = getVariant( { isFinalValue, hasValue, currentStyleProvider } );\n\n\tif ( ! isUsingIndicatorPopover() ) {\n\t\treturn (\n\t\t\t<Tooltip title={ __( 'Style origin', 'elementor' ) } placement=\"top\">\n\t\t\t\t<StyleIndicator variant={ variantType } aria-label={ label } />\n\t\t\t</Tooltip>\n\t\t);\n\t}\n\n\treturn (\n\t\t<StyleIndicatorInfotip\n\t\t\tinheritanceChain={ inheritanceChain }\n\t\t\tpath={ finalPath }\n\t\t\tpropType={ propType }\n\t\t\tlabel={ label }\n\t\t>\n\t\t\t<StyleIndicator variant={ variantType } />\n\t\t</StyleIndicatorInfotip>\n\t);\n};\n\nconst getLabel = ( { isFinalValue, hasValue }: { isFinalValue: boolean; hasValue: boolean } ) => {\n\tif ( isFinalValue ) {\n\t\treturn __( 'This is the final value', 'elementor' );\n\t}\n\n\tif ( hasValue ) {\n\t\treturn __( 'This value is overridden by another style', 'elementor' );\n\t}\n\n\treturn __( 'This has value from another style', 'elementor' );\n};\n\nconst getVariant = ( {\n\tisFinalValue,\n\thasValue,\n\tcurrentStyleProvider,\n}: {\n\tisFinalValue: boolean;\n\thasValue: boolean;\n\tcurrentStyleProvider: object | null;\n} ): 'local' | 'global' | 'overridden' | undefined => {\n\tif ( isFinalValue ) {\n\t\treturn isElementsStylesProvider( ( currentStyleProvider as { getKey: () => string } )?.getKey?.() )\n\t\t\t? 'local'\n\t\t\t: 'global';\n\t}\n\n\tif ( hasValue ) {\n\t\treturn 'overridden';\n\t}\n\n\treturn undefined;\n};\n","import { isExperimentActive } from '@elementor/editor-v1-adapters';\n\n// the following prop types' style transformers would be ignored to provide alternative transformers for the styles inheritance popover\nexport const excludePropTypeTransformers = new Set( [\n\t'background-color-overlay',\n\t'background-image-overlay',\n\t'background-gradient-overlay',\n\t'gradient-color-stop',\n\t'color-stop',\n\t'background-image-position-offset',\n\t'background-image-size-scale',\n\t'image-src',\n\t'image',\n\t'background-overlay',\n] );\n\nexport const isUsingIndicatorPopover = () => isExperimentActive( 'e_v_3_30' );\n","import * as React from 'react';\nimport { useMemo, useState } from 'react';\nimport { createPropsResolver, type PropsResolver } from '@elementor/editor-canvas';\nimport { type PropKey, type PropType } from '@elementor/editor-props';\nimport {\n\tBackdrop,\n\tBox,\n\tCard,\n\tCardContent,\n\tClickAwayListener,\n\tCloseButton,\n\tIconButton,\n\tInfotip,\n\tStack,\n\ttype Theme,\n\tTooltip,\n\tTypography,\n} from '@elementor/ui';\nimport { __ } from '@wordpress/i18n';\n\nimport { useSectionContentRef } from '../components/section-content';\nimport { useDirection } from '../hooks/use-direction';\nimport { ActionIcons, BreakpointIcon, LabelChip, ValueComponent } from './components';\nimport { useNormalizedInheritanceChainItems } from './hooks/use-normalized-inheritance-chain-items';\nimport { stylesInheritanceTransformersRegistry } from './styles-inheritance-transformers-registry';\nimport { type SnapshotPropValue } from './types';\n\ntype Props = {\n\tinheritanceChain: SnapshotPropValue[];\n\tpropType: PropType;\n\tpath: PropKey[];\n\tlabel: string;\n\tchildren: React.ReactNode;\n};\n\nconst SIZE = 'tiny';\n\nexport const StyleIndicatorInfotip = ( { inheritanceChain, propType, path, label, children }: Props ) => {\n\tconst [ showInfotip, setShowInfotip ] = useState< boolean >( false );\n\tconst toggleInfotip = () => setShowInfotip( ( prev ) => ! prev );\n\tconst closeInfotip = () => setShowInfotip( false );\n\n\tconst key = path.join( '.' );\n\n\tconst sectionContentRef = useSectionContentRef();\n\tconst sectionContentWidth = sectionContentRef?.current?.offsetWidth ?? 320;\n\n\tconst resolve = useMemo< PropsResolver >( () => {\n\t\treturn createPropsResolver( {\n\t\t\ttransformers: stylesInheritanceTransformersRegistry,\n\t\t\tschema: { [ key ]: propType },\n\t\t} );\n\t}, [ key, propType ] );\n\n\tconst items = useNormalizedInheritanceChainItems( inheritanceChain, key, resolve );\n\n\tconst infotipContent = (\n\t\t<ClickAwayListener onClickAway={ closeInfotip }>\n\t\t\t<Card\n\t\t\t\televation={ 0 }\n\t\t\t\tsx={ {\n\t\t\t\t\twidth: `${ sectionContentWidth }px`,\n\t\t\t\t\tmaxWidth: 500,\n\t\t\t\t\toverflowX: 'hidden',\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t<CardContent\n\t\t\t\t\tsx={ {\n\t\t\t\t\t\tdisplay: 'flex',\n\t\t\t\t\t\tgap: 0.5,\n\t\t\t\t\t\tflexDirection: 'column',\n\t\t\t\t\t\tp: 0,\n\t\t\t\t\t\t'&:last-child': {\n\t\t\t\t\t\t\tpb: 0,\n\t\t\t\t\t\t},\n\t\t\t\t\t} }\n\t\t\t\t>\n\t\t\t\t\t<Stack direction=\"row\" alignItems=\"center\" sx={ { pl: 1.5, pr: 0.5, minHeight: 36, py: 0.5 } }>\n\t\t\t\t\t\t<Typography variant=\"subtitle2\" color=\"secondary\" sx={ { fontSize: 12, fontWeight: '500' } }>\n\t\t\t\t\t\t\t{ __( 'Style origin', 'elementor' ) }\n\t\t\t\t\t\t</Typography>\n\t\t\t\t\t\t<CloseButton\n\t\t\t\t\t\t\tslotProps={ { icon: { fontSize: SIZE } } }\n\t\t\t\t\t\t\tsx={ { ml: 'auto' } }\n\t\t\t\t\t\t\tonClick={ closeInfotip }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</Stack>\n\t\t\t\t\t<Stack\n\t\t\t\t\t\tgap={ 1.5 }\n\t\t\t\t\t\tsx={ { pl: 2, pr: 1, pb: 2, overflowX: 'hidden', overflowY: 'auto' } }\n\t\t\t\t\t\trole=\"list\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{ items.map( ( item, index ) => {\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t<Box\n\t\t\t\t\t\t\t\t\tkey={ item.id }\n\t\t\t\t\t\t\t\t\tdisplay=\"flex\"\n\t\t\t\t\t\t\t\t\tgap={ 0.5 }\n\t\t\t\t\t\t\t\t\trole=\"listitem\"\n\t\t\t\t\t\t\t\t\t/* translators: %s: Label of the inheritance item */\n\t\t\t\t\t\t\t\t\taria-label={ __( 'Inheritance item: %s', 'elementor' ).replace(\n\t\t\t\t\t\t\t\t\t\t'%s',\n\t\t\t\t\t\t\t\t\t\titem.displayLabel\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<Box display=\"flex\" gap={ 0.5 } sx={ { flexWrap: 'wrap', width: '100%' } }>\n\t\t\t\t\t\t\t\t\t\t<BreakpointIcon breakpoint={ item.breakpoint } />\n\t\t\t\t\t\t\t\t\t\t<LabelChip\n\t\t\t\t\t\t\t\t\t\t\tdisplayLabel={ item.displayLabel }\n\t\t\t\t\t\t\t\t\t\t\tprovider={ item.provider }\n\t\t\t\t\t\t\t\t\t\t\tchipColor={ item.chipColor }\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t<ValueComponent index={ index } value={ item.value } />\n\t\t\t\t\t\t\t\t\t</Box>\n\t\t\t\t\t\t\t\t\t<ActionIcons />\n\t\t\t\t\t\t\t\t</Box>\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} ) }\n\t\t\t\t\t</Stack>\n\t\t\t\t</CardContent>\n\t\t\t</Card>\n\t\t</ClickAwayListener>\n\t);\n\n\treturn (\n\t\t<TooltipOrInfotip showInfotip={ showInfotip } onClose={ closeInfotip } infotipContent={ infotipContent }>\n\t\t\t<IconButton onClick={ toggleInfotip } aria-label={ label } sx={ { my: '-1px' } }>\n\t\t\t\t{ children }\n\t\t\t</IconButton>\n\t\t</TooltipOrInfotip>\n\t);\n};\n\nfunction TooltipOrInfotip( {\n\tchildren,\n\tshowInfotip,\n\tonClose,\n\tinfotipContent,\n}: {\n\tchildren: React.ReactNode;\n\tshowInfotip: boolean;\n\tonClose: () => void;\n\tinfotipContent: React.ReactNode;\n} ) {\n\tconst { isSiteRtl } = useDirection();\n\tconst forceInfotipAlignLeft = isSiteRtl ? 9999999 : -9999999;\n\n\tif ( showInfotip ) {\n\t\treturn (\n\t\t\t<>\n\t\t\t\t<Backdrop\n\t\t\t\t\topen={ showInfotip }\n\t\t\t\t\tonClick={ onClose }\n\t\t\t\t\tsx={ {\n\t\t\t\t\t\tbackgroundColor: 'transparent',\n\t\t\t\t\t\tzIndex: ( theme: Theme ) => theme.zIndex.modal - 1,\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t\t<Infotip\n\t\t\t\t\tplacement=\"top\"\n\t\t\t\t\tcontent={ infotipContent }\n\t\t\t\t\topen={ showInfotip }\n\t\t\t\t\tonClose={ onClose }\n\t\t\t\t\tdisableHoverListener\n\t\t\t\t\tcomponentsProps={ {\n\t\t\t\t\t\ttooltip: {\n\t\t\t\t\t\t\tsx: { mx: 2 },\n\t\t\t\t\t\t},\n\t\t\t\t\t} }\n\t\t\t\t\tslotProps={ {\n\t\t\t\t\t\tpopper: {\n\t\t\t\t\t\t\tmodifiers: [\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tname: 'offset',\n\t\t\t\t\t\t\t\t\toptions: { offset: [ forceInfotipAlignLeft, 0 ] },\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t],\n\t\t\t\t\t\t},\n\t\t\t\t\t} }\n\t\t\t\t>\n\t\t\t\t\t{ children }\n\t\t\t\t</Infotip>\n\t\t\t</>\n\t\t);\n\t}\n\n\treturn (\n\t\t<Tooltip title={ __( 'Style origin', 'elementor' ) } placement=\"top\">\n\t\t\t{ children }\n\t\t</Tooltip>\n\t);\n}\n","import { createContext, type FC, type PropsWithChildren, useContext, useRef } from 'react';\nimport * as React from 'react';\nimport { Stack } from '@elementor/ui';\n\nconst SectionContentRefContext = createContext< React.RefObject< HTMLElement > | null >( null );\n\nexport const useSectionContentRef = () => useContext( SectionContentRefContext );\n\ntype SectionContentProps = PropsWithChildren< {\n\tgap?: number;\n\tsx?: {\n\t\tpt?: number;\n\t};\n} >;\n\nexport const SectionContent: FC< SectionContentProps > = ( { gap = 2, sx, children } ) => {\n\tconst ref = useRef< HTMLElement >( null );\n\n\treturn (\n\t\t<SectionContentRefContext.Provider value={ ref }>\n\t\t\t<Stack gap={ gap } sx={ { ...sx } } ref={ ref }>\n\t\t\t\t{ children }\n\t\t\t</Stack>\n\t\t</SectionContentRefContext.Provider>\n\t);\n};\n","import { useTheme } from '@elementor/ui';\n\nimport { getElementorFrontendConfig } from '../sync/get-elementor-globals';\n\nexport function useDirection() {\n\tconst theme = useTheme();\n\n\tconst isUiRtl = 'rtl' === theme.direction,\n\t\tisSiteRtl = !! getElementorFrontendConfig()?.is_rtl;\n\n\treturn { isSiteRtl, isUiRtl };\n}\n","import { type ExtendedWindow } from './types';\n\nexport const getElementorConfig = () => {\n\tconst extendedWindow = window as unknown as ExtendedWindow;\n\n\treturn extendedWindow.elementor?.config ?? {};\n};\n\nexport const getElementorFrontendConfig = () => {\n\tconst extendedWindow = window as unknown as ExtendedWindow;\n\n\treturn extendedWindow.elementorFrontend?.config ?? {};\n};\n","import * as React from 'react';\nimport { type BreakpointId, useBreakpoints } from '@elementor/editor-responsive';\nimport {\n\tDesktopIcon,\n\tLaptopIcon,\n\tMobileLandscapeIcon,\n\tMobilePortraitIcon,\n\tTabletLandscapeIcon,\n\tTabletPortraitIcon,\n\tWidescreenIcon,\n} from '@elementor/icons';\nimport { Tooltip } from '@elementor/ui';\n\ntype Props = {\n\tbreakpoint?: BreakpointId | null;\n};\n\nconst SIZE = 'tiny';\nconst DEFAULT_BREAKPOINT = 'desktop';\n\nconst breakpointIconMap: Record< string, React.ElementType > = {\n\twidescreen: WidescreenIcon,\n\tdesktop: DesktopIcon,\n\tlaptop: LaptopIcon,\n\ttablet_extra: TabletLandscapeIcon,\n\ttablet: TabletPortraitIcon,\n\tmobile_extra: MobileLandscapeIcon,\n\tmobile: MobilePortraitIcon,\n};\n\nexport const BreakpointIcon = ( { breakpoint }: Props ) => {\n\tconst breakpoints = useBreakpoints();\n\tconst currentBreakpoint = breakpoint || DEFAULT_BREAKPOINT;\n\tconst IconComponent = breakpointIconMap[ currentBreakpoint ];\n\n\tif ( ! IconComponent ) {\n\t\treturn null;\n\t}\n\n\tconst breakpointLabel = breakpoints.find( ( breakpointItem ) => breakpointItem.id === currentBreakpoint )?.label;\n\n\treturn (\n\t\t<Tooltip title={ breakpointLabel } placement=\"top\">\n\t\t\t<IconComponent fontSize={ SIZE } sx={ { mt: '2px' } } />\n\t\t</Tooltip>\n\t);\n};\n","import * as React from 'react';\nimport { ELEMENTS_BASE_STYLES_PROVIDER_KEY } from '@elementor/editor-styles-repository';\nimport { InfoCircleIcon } from '@elementor/icons';\nimport { Chip, type Theme, Tooltip } from '@elementor/ui';\nimport { __ } from '@wordpress/i18n';\n\nimport { type ChipColors } from '../types';\n\ntype Props = {\n\tdisplayLabel: string;\n\tprovider?: string;\n\tchipColor: ChipColors;\n};\n\nconst SIZE = 'tiny';\n\nexport const LabelChip = ( { displayLabel, provider, chipColor }: Props ) => {\n\tconst isBaseStyle = provider === ELEMENTS_BASE_STYLES_PROVIDER_KEY;\n\n\tconst chipIcon = isBaseStyle ? (\n\t\t<Tooltip title={ __( 'Inherited from base styles', 'elementor' ) } placement=\"top\">\n\t\t\t<InfoCircleIcon fontSize={ SIZE } />\n\t\t</Tooltip>\n\t) : undefined;\n\n\treturn (\n\t\t<Chip\n\t\t\tlabel={ displayLabel }\n\t\t\tsize={ SIZE }\n\t\t\tcolor={ chipColor }\n\t\t\tvariant=\"standard\"\n\t\t\tstate=\"enabled\"\n\t\t\ticon={ chipIcon }\n\t\t\tsx={ ( theme: Theme ) => ( {\n\t\t\t\tlineHeight: 1,\n\t\t\t\tflexWrap: 'nowrap',\n\t\t\t\talignItems: 'center',\n\t\t\t\tborderRadius: `${ theme.shape.borderRadius * 0.75 }px`,\n\t\t\t\tflexDirection: 'row-reverse',\n\t\t\t\t'.MuiChip-label': {\n\t\t\t\t\toverflow: 'hidden',\n\t\t\t\t\ttextOverflow: 'ellipsis',\n\t\t\t\t\twhiteSpace: 'nowrap',\n\t\t\t\t},\n\t\t\t} ) }\n\t\t/>\n\t);\n};\n","import * as React from 'react';\nimport { Typography } from '@elementor/ui';\n\ntype Props = {\n\tindex: number;\n\tvalue: React.ReactNode;\n};\n\nexport const ValueComponent = ( { index, value }: Props ) => {\n\treturn (\n\t\t<Typography\n\t\t\tvariant=\"caption\"\n\t\t\tcolor=\"text.tertiary\"\n\t\t\tsx={ {\n\t\t\t\tmt: '1px',\n\t\t\t\ttextDecoration: index === 0 ? 'none' : 'line-through',\n\t\t\t\toverflow: 'hidden',\n\t\t\t\ttextOverflow: 'ellipsis',\n\t\t\t\twhiteSpace: 'nowrap',\n\t\t\t} }\n\t\t>\n\t\t\t{ value }\n\t\t</Typography>\n\t);\n};\n","import * as React from 'react';\nimport { Box } from '@elementor/ui';\n\nexport const ActionIcons = () => (\n\t<Box display=\"flex\" gap={ 0.5 } alignItems=\"center\">\n\t\t{ /* Action Slot */ }\n\t</Box>\n);\n","import { isValidElement, type ReactNode, useEffect, useState } from 'react';\nimport { type PropsResolver } from '@elementor/editor-canvas';\nimport { type PropKey } from '@elementor/editor-props';\nimport { type StyleDefinitionVariant } from '@elementor/editor-styles';\nimport { ELEMENTS_BASE_STYLES_PROVIDER_KEY } from '@elementor/editor-styles-repository';\nimport { __ } from '@wordpress/i18n';\n\nimport { type ChipColors, type SnapshotPropValue } from '../types';\n\nconst MAXIMUM_ITEMS = 2;\n\ntype NormalizedItem = {\n\tid: string | number;\n\tprovider: string;\n\tbreakpoint?: StyleDefinitionVariant[ 'meta' ][ 'breakpoint' ];\n\tdisplayLabel: string;\n\tvalue: ReactNode | string;\n\tchipColor: ChipColors;\n};\n\nexport const useNormalizedInheritanceChainItems = (\n\tinheritanceChain: SnapshotPropValue[],\n\tbind: PropKey,\n\tresolve: PropsResolver\n) => {\n\tconst [ items, setItems ] = useState< NormalizedItem[] >( [] );\n\n\tuseEffect( () => {\n\t\t( async () => {\n\t\t\tconst normalizedItems = await Promise.all(\n\t\t\t\tinheritanceChain\n\t\t\t\t\t.filter( ( { style } ) => style )\n\t\t\t\t\t.map( ( item, index ) => normalizeInheritanceItem( item, index, bind, resolve ) )\n\t\t\t);\n\n\t\t\tconst validItems = normalizedItems\n\t\t\t\t.map( ( item ) => ( {\n\t\t\t\t\t...item,\n\t\t\t\t\tdisplayLabel:\n\t\t\t\t\t\tELEMENTS_BASE_STYLES_PROVIDER_KEY !== item.provider\n\t\t\t\t\t\t\t? item.displayLabel\n\t\t\t\t\t\t\t: __( 'Base', 'elementor' ),\n\t\t\t\t} ) )\n\t\t\t\t.filter( ( item ) => ! item.value || item.displayLabel !== '' )\n\t\t\t\t.slice( 0, MAXIMUM_ITEMS );\n\n\t\t\tsetItems( validItems );\n\t\t} )();\n\t}, [ inheritanceChain, bind, resolve ] );\n\n\treturn items;\n};\n\nconst DEFAULT_BREAKPOINT = 'desktop';\n\nexport const normalizeInheritanceItem = async (\n\titem: SnapshotPropValue,\n\tindex: number,\n\tbind: PropKey,\n\tresolve: PropsResolver\n): Promise< NormalizedItem > => {\n\tconst {\n\t\tvariant: {\n\t\t\tmeta: { state, breakpoint },\n\t\t},\n\t\tstyle: { label, id },\n\t} = item;\n\n\tconst displayLabel = `${ label }${ state ? ':' + state : '' }`;\n\n\treturn {\n\t\tid: id ? id + ( state ?? '' ) : index,\n\t\tprovider: item.provider || '',\n\t\tbreakpoint: breakpoint ?? DEFAULT_BREAKPOINT,\n\t\tdisplayLabel,\n\t\tvalue: await getTransformedValue( item, bind, resolve ),\n\t\tchipColor: getChipColor( item ),\n\t};\n};\n\nconst getTransformedValue = async (\n\titem: SnapshotPropValue,\n\tbind: PropKey,\n\tresolve: PropsResolver\n): Promise< ReactNode | string > => {\n\ttry {\n\t\tconst result = await resolve( {\n\t\t\tprops: {\n\t\t\t\t[ bind ]: item.value,\n\t\t\t},\n\t\t} );\n\n\t\tconst value = result?.[ bind ] ?? result;\n\n\t\tif ( isValidElement( value ) ) {\n\t\t\treturn value;\n\t\t}\n\n\t\tif ( typeof value === 'object' ) {\n\t\t\treturn JSON.stringify( value );\n\t\t}\n\n\t\treturn String( value );\n\t} catch {\n\t\treturn '';\n\t}\n};\n\nconst getChipColor = ( item: SnapshotPropValue ) => {\n\tconst { provider = '', style } = item;\n\n\tif ( provider === ELEMENTS_BASE_STYLES_PROVIDER_KEY ) {\n\t\treturn 'default';\n\t}\n\n\tif ( style?.label === 'local' ) {\n\t\treturn 'accent';\n\t}\n\n\treturn 'global';\n};\n","import { createTransformersRegistry } from '@elementor/editor-canvas';\n\nexport const stylesInheritanceTransformersRegistry = createTransformersRegistry();\n","import * as React from 'react';\n\nimport { PanelDivider } from '../../panel-divider';\nimport { SectionContent } from '../../section-content';\nimport { BorderField } from './border-field';\nimport { BorderRadiusField } from './border-radius-field';\n\nexport const BorderSection = () => (\n\t<SectionContent>\n\t\t<BorderRadiusField />\n\t\t<PanelDivider />\n\t\t<BorderField />\n\t</SectionContent>\n);\n","import * as React from 'react';\nimport { Divider } from '@elementor/ui';\n\nexport const PanelDivider = () => <Divider sx={ { my: 0.5 } } />;\n","import * as React from 'react';\nimport { __ } from '@wordpress/i18n';\n\nimport { useStyle } from '../../../contexts/style-context';\nimport { useStylesFields } from '../../../hooks/use-styles-fields';\nimport { AddOrRemoveContent } from '../../add-or-remove-content';\nimport { BorderColorField } from './border-color-field';\nimport { BorderStyleField } from './border-style-field';\nimport { BorderWidthField } from './border-width-field';\n\nconst initialBorder = {\n\t'border-width': { $$type: 'size', value: { size: 1, unit: 'px' } },\n\t'border-color': { $$type: 'color', value: '#000000' },\n\t'border-style': { $$type: 'string', value: 'solid' },\n};\n\nexport const BorderField = () => {\n\tconst { canEdit } = useStyle();\n\tconst [ border, setBorder ] = useStylesFields( Object.keys( initialBorder ) );\n\n\tconst addBorder = () => {\n\t\tsetBorder( initialBorder );\n\t};\n\n\tconst removeBorder = () => {\n\t\tsetBorder( {\n\t\t\t'border-width': null,\n\t\t\t'border-color': null,\n\t\t\t'border-style': null,\n\t\t} );\n\t};\n\n\tconst hasBorder = Object.values( border ?? {} ).some( Boolean );\n\n\treturn (\n\t\t<AddOrRemoveContent\n\t\t\tlabel={ __( 'Border', 'elementor' ) }\n\t\t\tisAdded={ hasBorder }\n\t\t\tonAdd={ addBorder }\n\t\t\tonRemove={ removeBorder }\n\t\t\tdisabled={ ! canEdit }\n\t\t>\n\t\t\t<BorderWidthField />\n\t\t\t<BorderColorField />\n\t\t\t<BorderStyleField />\n\t\t</AddOrRemoveContent>\n\t);\n};\n","import * as React from 'react';\nimport { type PropsWithChildren } from 'react';\nimport { MinusIcon, PlusIcon } from '@elementor/icons';\nimport { Collapse, IconButton, Stack } from '@elementor/ui';\n\nimport { ControlLabel } from './control-label';\nimport { SectionContent } from './section-content';\n\nconst SIZE = 'tiny';\n\ntype Props = {\n\tlabel: string;\n\tisAdded: boolean;\n\tonAdd: () => void;\n\tonRemove: () => void;\n\tdisabled?: boolean;\n};\n\nexport const AddOrRemoveContent = ( {\n\tisAdded,\n\tlabel,\n\tonAdd,\n\tonRemove,\n\tchildren,\n\tdisabled,\n}: PropsWithChildren< Props > ) => {\n\treturn (\n\t\t<SectionContent>\n\t\t\t<Stack\n\t\t\t\tdirection=\"row\"\n\t\t\t\tsx={ {\n\t\t\t\t\tjustifyContent: 'space-between',\n\t\t\t\t\talignItems: 'center',\n\t\t\t\t\tmarginInlineEnd: -0.75,\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t<ControlLabel>{ label }</ControlLabel>\n\t\t\t\t{ isAdded ? (\n\t\t\t\t\t<IconButton size={ SIZE } onClick={ onRemove } aria-label=\"Remove\" disabled={ disabled }>\n\t\t\t\t\t\t<MinusIcon fontSize={ SIZE } />\n\t\t\t\t\t</IconButton>\n\t\t\t\t) : (\n\t\t\t\t\t<IconButton size={ SIZE } onClick={ onAdd } aria-label=\"Add\" disabled={ disabled }>\n\t\t\t\t\t\t<PlusIcon fontSize={ SIZE } />\n\t\t\t\t\t</IconButton>\n\t\t\t\t) }\n\t\t\t</Stack>\n\t\t\t<Collapse in={ isAdded } unmountOnExit>\n\t\t\t\t<SectionContent>{ children }</SectionContent>\n\t\t\t</Collapse>\n\t\t</SectionContent>\n\t);\n};\n","import * as React from 'react';\nimport { type PropsWithChildren } from 'react';\nimport { ControlAdornments, ControlFormLabel } from '@elementor/editor-controls';\nimport { Stack } from '@elementor/ui';\n\nexport const ControlLabel = ( { children }: PropsWithChildren< object > ) => {\n\treturn (\n\t\t<Stack direction=\"row\" alignItems=\"center\" justifyItems=\"start\" gap={ 1 }>\n\t\t\t<ControlFormLabel>{ children }</ControlFormLabel>\n\t\t\t<ControlAdornments />\n\t\t</Stack>\n\t);\n};\n","import * as React from 'react';\nimport { ColorControl } from '@elementor/editor-controls';\nimport { Grid } from '@elementor/ui';\nimport { __ } from '@wordpress/i18n';\n\nimport { StylesField } from '../../../controls-registry/styles-field';\nimport { ControlLabel } from '../../control-label';\n\nexport const BorderColorField = () => {\n\treturn (\n\t\t<StylesField bind={ 'border-color' }>\n\t\t\t<Grid container gap={ 2 } alignItems=\"center\" flexWrap=\"nowrap\">\n\t\t\t\t<Grid item xs={ 6 }>\n\t\t\t\t\t<ControlLabel>{ __( 'Border color', 'elementor' ) }</ControlLabel>\n\t\t\t\t</Grid>\n\t\t\t\t<Grid item xs={ 6 }>\n\t\t\t\t\t<ColorControl />\n\t\t\t\t</Grid>\n\t\t\t</Grid>\n\t\t</StylesField>\n\t);\n};\n","import * as React from 'react';\nimport { SelectControl } from '@elementor/editor-controls';\nimport { Grid } from '@elementor/ui';\nimport { __ } from '@wordpress/i18n';\n\nimport { StylesField } from '../../../controls-registry/styles-field';\nimport { ControlLabel } from '../../control-label';\n\nconst borderStyles = [\n\t{ value: 'none', label: __( 'None', 'elementor' ) },\n\t{ value: 'solid', label: __( 'Solid', 'elementor' ) },\n\t{ value: 'dashed', label: __( 'Dashed', 'elementor' ) },\n\t{ value: 'dotted', label: __( 'Dotted', 'elementor' ) },\n\t{ value: 'double', label: __( 'Double', 'elementor' ) },\n\t{ value: 'groove', label: __( 'Groove', 'elementor' ) },\n\t{ value: 'ridge', label: __( 'Ridge', 'elementor' ) },\n\t{ value: 'inset', label: __( 'Inset', 'elementor' ) },\n\t{ value: 'outset', label: __( 'Outset', 'elementor' ) },\n];\nexport const BorderStyleField = () => {\n\treturn (\n\t\t<StylesField bind={ 'border-style' }>\n\t\t\t<Grid container gap={ 2 } alignItems=\"center\" flexWrap=\"nowrap\">\n\t\t\t\t<Grid item xs={ 6 }>\n\t\t\t\t\t<ControlLabel>{ __( 'Border type', 'elementor' ) }</ControlLabel>\n\t\t\t\t</Grid>\n\t\t\t\t<Grid item xs={ 6 } sx={ { overflow: 'hidden' } }>\n\t\t\t\t\t<SelectControl options={ borderStyles } />\n\t\t\t\t</Grid>\n\t\t\t</Grid>\n\t\t</StylesField>\n\t);\n};\n","import * as React from 'react';\nimport { type EqualUnequalItems, EqualUnequalSizesControl } from '@elementor/editor-controls';\nimport { borderWidthPropTypeUtil } from '@elementor/editor-props';\nimport { SideAllIcon, SideBottomIcon, SideLeftIcon, SideRightIcon, SideTopIcon } from '@elementor/icons';\nimport { withDirection } from '@elementor/ui';\nimport { __ } from '@wordpress/i18n';\n\nimport { StylesField } from '../../../controls-registry/styles-field';\nimport { useDirection } from '../../../hooks/use-direction';\n\nconst InlineStartIcon = withDirection( SideRightIcon );\nconst InlineEndIcon = withDirection( SideLeftIcon );\n\nconst getEdges = ( isSiteRtl: boolean ): EqualUnequalItems => [\n\t{\n\t\tlabel: __( 'Top', 'elementor' ),\n\t\ticon: <SideTopIcon fontSize={ 'tiny' } />,\n\t\tbind: 'block-start',\n\t},\n\t{\n\t\tlabel: isSiteRtl ? __( 'Left', 'elementor' ) : __( 'Right', 'elementor' ),\n\t\ticon: <InlineStartIcon fontSize={ 'tiny' } />,\n\t\tbind: 'inline-end',\n\t},\n\t{\n\t\tlabel: __( 'Bottom', 'elementor' ),\n\t\ticon: <SideBottomIcon fontSize={ 'tiny' } />,\n\t\tbind: 'block-end',\n\t},\n\t{\n\t\tlabel: isSiteRtl ? __( 'Right', 'elementor' ) : __( 'Left', 'elementor' ),\n\t\ticon: <InlineEndIcon fontSize={ 'tiny' } />,\n\t\tbind: 'inline-start',\n\t},\n];\n\nexport const BorderWidthField = () => {\n\tconst { isSiteRtl } = useDirection();\n\n\treturn (\n\t\t<StylesField bind={ 'border-width' }>\n\t\t\t<EqualUnequalSizesControl\n\t\t\t\titems={ getEdges( isSiteRtl ) }\n\t\t\t\tlabel={ __( 'Border width', 'elementor' ) }\n\t\t\t\ticon={ <SideAllIcon fontSize={ 'tiny' } /> }\n\t\t\t\ttooltipLabel={ __( 'Adjust borders', 'elementor' ) }\n\t\t\t\tmultiSizePropTypeUtil={ borderWidthPropTypeUtil }\n\t\t\t/>\n\t\t</StylesField>\n\t);\n};\n","import * as React from 'react';\nimport { type EqualUnequalItems, EqualUnequalSizesControl } from '@elementor/editor-controls';\nimport { borderRadiusPropTypeUtil } from '@elementor/editor-props';\nimport {\n\tBorderCornersIcon,\n\tRadiusBottomLeftIcon,\n\tRadiusBottomRightIcon,\n\tRadiusTopLeftIcon,\n\tRadiusTopRightIcon,\n} from '@elementor/icons';\nimport { withDirection } from '@elementor/ui';\nimport { __ } from '@wordpress/i18n';\n\nimport { StylesField } from '../../../controls-registry/styles-field';\nimport { useDirection } from '../../../hooks/use-direction';\n\nconst StartStartIcon = withDirection( RadiusTopLeftIcon );\nconst StartEndIcon = withDirection( RadiusTopRightIcon );\nconst EndStartIcon = withDirection( RadiusBottomLeftIcon );\nconst EndEndIcon = withDirection( RadiusBottomRightIcon );\n\nconst getStartStartLabel = ( isSiteRtl: boolean ) =>\n\tisSiteRtl ? __( 'Top right', 'elementor' ) : __( 'Top left', 'elementor' );\nconst getStartEndLabel = ( isSiteRtl: boolean ) =>\n\tisSiteRtl ? __( 'Top left', 'elementor' ) : __( 'Top right', 'elementor' );\nconst getEndStartLabel = ( isSiteRtl: boolean ) =>\n\tisSiteRtl ? __( 'Bottom right', 'elementor' ) : __( 'Bottom left', 'elementor' );\nconst getEndEndLabel = ( isSiteRtl: boolean ) =>\n\tisSiteRtl ? __( 'Bottom left', 'elementor' ) : __( 'Bottom right', 'elementor' );\n\nconst getCorners = ( isSiteRtl: boolean ): EqualUnequalItems => [\n\t{\n\t\tlabel: getStartStartLabel( isSiteRtl ),\n\t\ticon: <StartStartIcon fontSize={ 'tiny' } />,\n\t\tbind: 'start-start',\n\t},\n\t{\n\t\tlabel: getStartEndLabel( isSiteRtl ),\n\t\ticon: <StartEndIcon fontSize={ 'tiny' } />,\n\t\tbind: 'start-end',\n\t},\n\t{\n\t\tlabel: getEndStartLabel( isSiteRtl ),\n\t\ticon: <EndStartIcon fontSize={ 'tiny' } />,\n\t\tbind: 'end-start',\n\t},\n\t{\n\t\tlabel: getEndEndLabel( isSiteRtl ),\n\t\ticon: <EndEndIcon fontSize={ 'tiny' } />,\n\t\tbind: 'end-end',\n\t},\n];\n\nexport const BorderRadiusField = () => {\n\tconst { isSiteRtl } = useDirection();\n\n\treturn (\n\t\t<StylesField bind={ 'border-radius' }>\n\t\t\t<EqualUnequalSizesControl\n\t\t\t\titems={ getCorners( isSiteRtl ) }\n\t\t\t\tlabel={ __( 'Border radius', 'elementor' ) }\n\t\t\t\ticon={ <BorderCornersIcon fontSize={ 'tiny' } /> }\n\t\t\t\ttooltipLabel={ __( 'Adjust corners', 'elementor' ) }\n\t\t\t\tmultiSizePropTypeUtil={ borderRadiusPropTypeUtil }\n\t\t\t/>\n\t\t</StylesField>\n\t);\n};\n","import * as React from 'react';\nimport { BoxShadowRepeaterControl } from '@elementor/editor-controls';\n\nimport { StylesField } from '../../../controls-registry/styles-field';\nimport { SectionContent } from '../../section-content';\n\nexport const EffectsSection = () => {\n\treturn (\n\t\t<SectionContent>\n\t\t\t<StylesField bind=\"box-shadow\">\n\t\t\t\t<BoxShadowRepeaterControl />\n\t\t\t</StylesField>\n\t\t</SectionContent>\n\t);\n};\n","import * as React from 'react';\nimport { ControlFormLabel } from '@elementor/editor-controls';\nimport { useParentElement } from '@elementor/editor-elements';\nimport { type StringPropValue } from '@elementor/editor-props';\nimport { __ } from '@wordpress/i18n';\n\nimport { useElement } from '../../../contexts/element-context';\nimport { useComputedStyle } from '../../../hooks/use-computed-style';\nimport { useStylesField } from '../../../hooks/use-styles-field';\nimport { PanelDivider } from '../../panel-divider';\nimport { SectionContent } from '../../section-content';\nimport { AlignContentField } from './align-content-field';\nimport { AlignItemsField } from './align-items-field';\nimport { AlignSelfChild } from './align-self-child-field';\nimport { DisplayField, useDisplayPlaceholderValue } from './display-field';\nimport { type FlexDirection, FlexDirectionField } from './flex-direction-field';\nimport { FlexOrderField } from './flex-order-field';\nimport { FlexSizeField } from './flex-size-field';\nimport { GapControlField } from './gap-control-field';\nimport { JustifyContentField } from './justify-content-field';\nimport { WrapField } from './wrap-field';\n\nexport const LayoutSection = () => {\n\tconst [ display ] = useStylesField< StringPropValue >( 'display' );\n\tconst displayPlaceholder = useDisplayPlaceholderValue();\n\tconst isDisplayFlex = shouldDisplayFlexFields( display, displayPlaceholder as StringPropValue );\n\tconst { element } = useElement();\n\tconst parent = useParentElement( element.id );\n\tconst parentStyle = useComputedStyle( parent?.id || null );\n\tconst parentStyleDirection = parentStyle?.flexDirection ?? 'row';\n\n\treturn (\n\t\t<SectionContent>\n\t\t\t<DisplayField />\n\t\t\t{ isDisplayFlex && <FlexFields /> }\n\t\t\t{ 'flex' === parentStyle?.display && <FlexChildFields parentStyleDirection={ parentStyleDirection } /> }\n\t\t</SectionContent>\n\t);\n};\n\nconst FlexFields = () => {\n\tconst [ flexWrap ] = useStylesField< StringPropValue >( 'flex-wrap' );\n\n\treturn (\n\t\t<>\n\t\t\t<FlexDirectionField />\n\t\t\t<JustifyContentField />\n\t\t\t<AlignItemsField />\n\t\t\t<PanelDivider />\n\t\t\t<GapControlField />\n\t\t\t<WrapField />\n\t\t\t{ [ 'wrap', 'wrap-reverse' ].includes( flexWrap?.value as string ) && <AlignContentField /> }\n\t\t</>\n\t);\n};\n\nconst FlexChildFields = ( { parentStyleDirection }: { parentStyleDirection: string } ) => (\n\t<>\n\t\t<PanelDivider />\n\t\t<ControlFormLabel>{ __( 'Flex child', 'elementor' ) }</ControlFormLabel>\n\t\t<AlignSelfChild parentStyleDirection={ parentStyleDirection as FlexDirection } />\n\t\t<FlexOrderField />\n\t\t<FlexSizeField />\n\t</>\n);\n\nconst shouldDisplayFlexFields = ( display: StringPropValue | null, local: StringPropValue ) => {\n\tconst value = display?.value ?? local?.value;\n\n\tif ( ! value ) {\n\t\treturn false;\n\t}\n\n\treturn 'flex' === value || 'inline-flex' === value;\n};\n","import { __privateUseListenTo as useListenTo, commandEndEvent, windowEvent } from '@elementor/editor-v1-adapters';\n\nimport { type ExtendedWindow } from '../sync/types';\n\nexport function useComputedStyle( elementId: string | null ) {\n\treturn useListenTo(\n\t\t[\n\t\t\twindowEvent( 'elementor/device-mode/change' ),\n\t\t\tcommandEndEvent( 'document/elements/reset-style' ),\n\t\t\tcommandEndEvent( 'document/elements/settings' ),\n\t\t\tcommandEndEvent( 'document/elements/paste-style' ),\n\t\t],\n\t\t() => {\n\t\t\tif ( ! elementId ) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\tconst extendedWindow: ExtendedWindow = window;\n\t\t\tconst element = extendedWindow.elementor?.getContainer?.( elementId );\n\n\t\t\tif ( ! element?.view?.el ) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\tconst resp = window.getComputedStyle( element.view.el );\n\t\t\treturn resp;\n\t\t}\n\t);\n}\n","import * as React from 'react';\nimport { type ToggleButtonGroupItem, ToggleControl } from '@elementor/editor-controls';\nimport {\n\tJustifyBottomIcon,\n\tJustifyCenterIcon as CenterIcon,\n\tJustifyDistributeVerticalIcon as EvenlyIcon,\n\tJustifySpaceAroundVerticalIcon as AroundIcon,\n\tJustifySpaceBetweenVerticalIcon as BetweenIcon,\n\tJustifyTopIcon,\n} from '@elementor/icons';\nimport { DirectionProvider, Stack, ThemeProvider, withDirection } from '@elementor/ui';\nimport { __ } from '@wordpress/i18n';\n\nimport { StylesField } from '../../../controls-registry/styles-field';\nimport { useDirection } from '../../../hooks/use-direction';\nimport { ControlLabel } from '../../control-label';\nimport { RotatedIcon } from './utils/rotated-icon';\n\ntype AlignContent = 'start' | 'center' | 'end' | 'space-between' | 'space-around' | 'space-evenly';\n\nconst StartIcon = withDirection( JustifyTopIcon );\nconst EndIcon = withDirection( JustifyBottomIcon );\n\nconst iconProps = {\n\tisClockwise: false,\n\toffset: 0,\n\tdisableRotationForReversed: true,\n};\n\nconst options: ToggleButtonGroupItem< AlignContent >[] = [\n\t{\n\t\tvalue: 'start',\n\t\tlabel: __( 'Start', 'elementor' ),\n\t\trenderContent: ( { size } ) => <RotatedIcon icon={ StartIcon } size={ size } { ...iconProps } />,\n\t\tshowTooltip: true,\n\t},\n\t{\n\t\tvalue: 'center',\n\t\tlabel: __( 'Center', 'elementor' ),\n\t\trenderContent: ( { size } ) => <RotatedIcon icon={ CenterIcon } size={ size } { ...iconProps } />,\n\t\tshowTooltip: true,\n\t},\n\t{\n\t\tvalue: 'end',\n\t\tlabel: __( 'End', 'elementor' ),\n\t\trenderContent: ( { size } ) => <RotatedIcon icon={ EndIcon } size={ size } { ...iconProps } />,\n\t\tshowTooltip: true,\n\t},\n\t{\n\t\tvalue: 'space-between',\n\t\tlabel: __( 'Space between', 'elementor' ),\n\t\trenderContent: ( { size } ) => <RotatedIcon icon={ BetweenIcon } size={ size } { ...iconProps } />,\n\t\tshowTooltip: true,\n\t},\n\t{\n\t\tvalue: 'space-around',\n\t\tlabel: __( 'Space around', 'elementor' ),\n\t\trenderContent: ( { size } ) => <RotatedIcon icon={ AroundIcon } size={ size } { ...iconProps } />,\n\t\tshowTooltip: true,\n\t},\n\t{\n\t\tvalue: 'space-evenly',\n\t\tlabel: __( 'Space evenly', 'elementor' ),\n\t\trenderContent: ( { size } ) => <RotatedIcon icon={ EvenlyIcon } size={ size } { ...iconProps } />,\n\t\tshowTooltip: true,\n\t},\n];\n\nexport const AlignContentField = () => {\n\tconst { isSiteRtl } = useDirection();\n\n\treturn (\n\t\t<DirectionProvider rtl={ isSiteRtl }>\n\t\t\t<ThemeProvider>\n\t\t\t\t<StylesField bind=\"align-content\">\n\t\t\t\t\t<Stack gap={ 1 }>\n\t\t\t\t\t\t<ControlLabel>{ __( 'Align content', 'elementor' ) }</ControlLabel>\n\t\t\t\t\t\t<ToggleControl options={ options } fullWidth={ true } />\n\t\t\t\t\t</Stack>\n\t\t\t\t</StylesField>\n\t\t\t</ThemeProvider>\n\t\t</DirectionProvider>\n\t);\n};\n","import * as React from 'react';\nimport { useRef } from 'react';\nimport { type StringPropValue } from '@elementor/editor-props';\nimport { type ToggleButtonProps, useTheme } from '@elementor/ui';\n\nimport { useStylesField } from '../../../../hooks/use-styles-field';\nimport type { FlexDirection } from '../flex-direction-field';\n\ntype Props = {\n\ticon: React.JSX.ElementType;\n\tsize: ToggleButtonProps[ 'size' ];\n\tisClockwise?: boolean;\n\toffset?: number;\n\tdisableRotationForReversed?: boolean;\n};\n\nconst CLOCKWISE_ANGLES: Record< FlexDirection, number > = {\n\trow: 0,\n\tcolumn: 90,\n\t'row-reverse': 180,\n\t'column-reverse': 270,\n};\n\nconst COUNTER_CLOCKWISE_ANGLES: Record< FlexDirection, number > = {\n\trow: 0,\n\tcolumn: -90,\n\t'row-reverse': -180,\n\t'column-reverse': -270,\n};\n\nexport const RotatedIcon = ( {\n\ticon: Icon,\n\tsize,\n\tisClockwise = true,\n\toffset = 0,\n\tdisableRotationForReversed = false,\n}: Props ) => {\n\tconst rotate = useRef( useGetTargetAngle( isClockwise, offset, disableRotationForReversed ) );\n\n\trotate.current = useGetTargetAngle( isClockwise, offset, disableRotationForReversed, rotate );\n\n\treturn <Icon fontSize={ size } sx={ { transition: '.3s', rotate: `${ rotate.current }deg` } } />;\n};\n\nconst useGetTargetAngle = (\n\tisClockwise: boolean,\n\toffset: number,\n\tdisableRotationForReversed: boolean,\n\texistingRef?: React.MutableRefObject< number >\n) => {\n\tconst [ direction ] = useStylesField< StringPropValue >( 'flex-direction' );\n\tconst isRtl = 'rtl' === useTheme().direction;\n\tconst rotationMultiplier = isRtl ? -1 : 1;\n\tconst angleMap = isClockwise ? CLOCKWISE_ANGLES : COUNTER_CLOCKWISE_ANGLES;\n\n\tconst currentDirection = ( direction?.value as FlexDirection ) || 'row';\n\tconst currentAngle = existingRef ? existingRef.current * rotationMultiplier : angleMap[ currentDirection ] + offset;\n\tconst targetAngle = angleMap[ currentDirection ] + offset;\n\n\tconst diffToTargetAngle = ( targetAngle - currentAngle + 360 ) % 360;\n\tconst formattedDiff = ( ( diffToTargetAngle + 180 ) % 360 ) - 180;\n\n\tif ( disableRotationForReversed && [ 'row-reverse', 'column-reverse' ].includes( currentDirection ) ) {\n\t\treturn 0;\n\t}\n\n\treturn ( currentAngle + formattedDiff ) * rotationMultiplier;\n};\n","import * as React from 'react';\nimport { type ToggleButtonGroupItem, ToggleControl } from '@elementor/editor-controls';\nimport {\n\tLayoutAlignCenterIcon as CenterIcon,\n\tLayoutAlignLeftIcon,\n\tLayoutAlignRightIcon,\n\tLayoutDistributeVerticalIcon as JustifyIcon,\n} from '@elementor/icons';\nimport { DirectionProvider, Grid, ThemeProvider, withDirection } from '@elementor/ui';\nimport { __ } from '@wordpress/i18n';\n\nimport { StylesField } from '../../../controls-registry/styles-field';\nimport { useDirection } from '../../../hooks/use-direction';\nimport { ControlLabel } from '../../control-label';\nimport { RotatedIcon } from './utils/rotated-icon';\n\ntype AlignItems = 'start' | 'center' | 'end' | 'stretch';\n\nconst StartIcon = withDirection( LayoutAlignLeftIcon );\nconst EndIcon = withDirection( LayoutAlignRightIcon );\n\nconst iconProps = {\n\tisClockwise: false,\n\toffset: 90,\n};\n\nconst options: ToggleButtonGroupItem< AlignItems >[] = [\n\t{\n\t\tvalue: 'start',\n\t\tlabel: __( 'Start', 'elementor' ),\n\t\trenderContent: ( { size } ) => <RotatedIcon icon={ StartIcon } size={ size } { ...iconProps } />,\n\t\tshowTooltip: true,\n\t},\n\t{\n\t\tvalue: 'center',\n\t\tlabel: __( 'Center', 'elementor' ),\n\t\trenderContent: ( { size } ) => <RotatedIcon icon={ CenterIcon } size={ size } { ...iconProps } />,\n\t\tshowTooltip: true,\n\t},\n\t{\n\t\tvalue: 'end',\n\t\tlabel: __( 'End', 'elementor' ),\n\t\trenderContent: ( { size } ) => <RotatedIcon icon={ EndIcon } size={ size } { ...iconProps } />,\n\t\tshowTooltip: true,\n\t},\n\t{\n\t\tvalue: 'stretch',\n\t\tlabel: __( 'Stretch', 'elementor' ),\n\t\trenderContent: ( { size } ) => <RotatedIcon icon={ JustifyIcon } size={ size } { ...iconProps } />,\n\t\tshowTooltip: true,\n\t},\n];\n\nexport const AlignItemsField = () => {\n\tconst { isSiteRtl } = useDirection();\n\n\treturn (\n\t\t<DirectionProvider rtl={ isSiteRtl }>\n\t\t\t<ThemeProvider>\n\t\t\t\t<StylesField bind=\"align-items\">\n\t\t\t\t\t<Grid container gap={ 2 } alignItems=\"center\" flexWrap=\"nowrap\">\n\t\t\t\t\t\t<Grid item xs={ 6 }>\n\t\t\t\t\t\t\t<ControlLabel>{ __( 'Align items', 'elementor' ) }</ControlLabel>\n\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t<Grid item xs={ 6 } sx={ { display: 'flex', justifyContent: 'end' } }>\n\t\t\t\t\t\t\t<ToggleControl options={ options } />\n\t\t\t\t\t\t</Grid>\n\t\t\t\t\t</Grid>\n\t\t\t\t</StylesField>\n\t\t\t</ThemeProvider>\n\t\t</DirectionProvider>\n\t);\n};\n","import * as React from 'react';\nimport { ToggleControl } from '@elementor/editor-controls';\nimport {\n\tLayoutAlignCenterIcon as CenterIcon,\n\tLayoutAlignLeftIcon,\n\tLayoutAlignRightIcon,\n\tLayoutDistributeVerticalIcon as JustifyIcon,\n} from '@elementor/icons';\nimport { DirectionProvider, Grid, ThemeProvider, type ToggleButtonProps, withDirection } from '@elementor/ui';\nimport { __ } from '@wordpress/i18n';\n\nimport { StylesField } from '../../../controls-registry/styles-field';\nimport { useDirection } from '../../../hooks/use-direction';\nimport { ControlLabel } from '../../control-label';\nimport { type FlexDirection } from './flex-direction-field';\nimport { RotatedIcon } from './utils/rotated-icon';\n\nconst ALIGN_SELF_CHILD_OFFSET_MAP: Record< FlexDirection, number > = {\n\trow: 90,\n\t'row-reverse': 90,\n\tcolumn: 0,\n\t'column-reverse': 0,\n};\n\nconst StartIcon = withDirection( LayoutAlignLeftIcon );\nconst EndIcon = withDirection( LayoutAlignRightIcon );\n\nconst iconProps = {\n\tisClockwise: false,\n};\n\nconst getOptions = ( parentStyleDirection: FlexDirection ) => [\n\t{\n\t\tvalue: 'start',\n\t\tlabel: __( 'Start', 'elementor' ),\n\t\trenderContent: ( { size }: { size: ToggleButtonProps[ 'size' ] } ) => (\n\t\t\t<RotatedIcon\n\t\t\t\ticon={ StartIcon }\n\t\t\t\tsize={ size }\n\t\t\t\toffset={ ALIGN_SELF_CHILD_OFFSET_MAP[ parentStyleDirection ] }\n\t\t\t\t{ ...iconProps }\n\t\t\t/>\n\t\t),\n\t\tshowTooltip: true,\n\t},\n\t{\n\t\tvalue: 'center',\n\t\tlabel: __( 'Center', 'elementor' ),\n\t\trenderContent: ( { size }: { size: ToggleButtonProps[ 'size' ] } ) => (\n\t\t\t<RotatedIcon\n\t\t\t\ticon={ CenterIcon }\n\t\t\t\tsize={ size }\n\t\t\t\toffset={ ALIGN_SELF_CHILD_OFFSET_MAP[ parentStyleDirection ] }\n\t\t\t\t{ ...iconProps }\n\t\t\t/>\n\t\t),\n\t\tshowTooltip: true,\n\t},\n\t{\n\t\tvalue: 'end',\n\t\tlabel: __( 'End', 'elementor' ),\n\t\trenderContent: ( { size }: { size: ToggleButtonProps[ 'size' ] } ) => (\n\t\t\t<RotatedIcon\n\t\t\t\ticon={ EndIcon }\n\t\t\t\tsize={ size }\n\t\t\t\toffset={ ALIGN_SELF_CHILD_OFFSET_MAP[ parentStyleDirection ] }\n\t\t\t\t{ ...iconProps }\n\t\t\t/>\n\t\t),\n\t\tshowTooltip: true,\n\t},\n\t{\n\t\tvalue: 'stretch',\n\t\tlabel: __( 'Stretch', 'elementor' ),\n\t\trenderContent: ( { size }: { size: ToggleButtonProps[ 'size' ] } ) => (\n\t\t\t<RotatedIcon\n\t\t\t\ticon={ JustifyIcon }\n\t\t\t\tsize={ size }\n\t\t\t\toffset={ ALIGN_SELF_CHILD_OFFSET_MAP[ parentStyleDirection ] }\n\t\t\t\t{ ...iconProps }\n\t\t\t/>\n\t\t),\n\t\tshowTooltip: true,\n\t},\n];\n\nexport const AlignSelfChild = ( { parentStyleDirection }: { parentStyleDirection: FlexDirection } ) => {\n\tconst { isSiteRtl } = useDirection();\n\n\treturn (\n\t\t<DirectionProvider rtl={ isSiteRtl }>\n\t\t\t<ThemeProvider>\n\t\t\t\t<StylesField bind={ 'align-self' }>\n\t\t\t\t\t<Grid container gap={ 2 } alignItems=\"center\" flexWrap=\"nowrap\">\n\t\t\t\t\t\t<Grid item xs={ 6 }>\n\t\t\t\t\t\t\t<ControlLabel>{ __( 'Align self', 'elementor' ) }</ControlLabel>\n\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t<Grid item xs={ 6 } sx={ { display: 'flex', justifyContent: 'flex-end' } }>\n\t\t\t\t\t\t\t<ToggleControl options={ getOptions( parentStyleDirection as FlexDirection ) } />\n\t\t\t\t\t\t</Grid>\n\t\t\t\t\t</Grid>\n\t\t\t\t</StylesField>\n\t\t\t</ThemeProvider>\n\t\t</DirectionProvider>\n\t);\n};\n","import * as React from 'react';\nimport { type ToggleButtonGroupItem, ToggleControl } from '@elementor/editor-controls';\nimport { isExperimentActive } from '@elementor/editor-v1-adapters';\nimport { Stack } from '@elementor/ui';\nimport { __ } from '@wordpress/i18n';\n\nimport { useStylesInheritanceChain } from '../../../contexts/styles-inheritance-context';\nimport { StylesField } from '../../../controls-registry/styles-field';\nimport { EXPERIMENTAL_FEATURES } from '../../../sync/experiments-flags';\nimport { ControlLabel } from '../../control-label';\n\ntype Displays = 'block' | 'flex' | 'inline-block' | 'inline-flex' | 'none';\n\nconst displayFieldItems: ToggleButtonGroupItem< Displays >[] = [\n\t{\n\t\tvalue: 'block',\n\t\trenderContent: () => __( 'Block', 'elementor' ),\n\t\tlabel: __( 'Block', 'elementor' ),\n\t\tshowTooltip: true,\n\t},\n\t{\n\t\tvalue: 'flex',\n\t\trenderContent: () => __( 'Flex', 'elementor' ),\n\t\tlabel: __( 'Flex', 'elementor' ),\n\t\tshowTooltip: true,\n\t},\n\t{\n\t\tvalue: 'inline-block',\n\t\trenderContent: () => __( 'In-blk', 'elementor' ),\n\t\tlabel: __( 'Inline-block', 'elementor' ),\n\t\tshowTooltip: true,\n\t},\n];\n\nexport const DisplayField = () => {\n\tconst isDisplayNoneFeatureActive = isExperimentActive( EXPERIMENTAL_FEATURES.V_3_30 );\n\tconst items = [ ...displayFieldItems ];\n\n\tif ( isDisplayNoneFeatureActive ) {\n\t\titems.push( {\n\t\t\tvalue: 'none',\n\t\t\trenderContent: () => __( 'None', 'elementor' ),\n\t\t\tlabel: __( 'None', 'elementor' ),\n\t\t\tshowTooltip: true,\n\t\t} );\n\t}\n\n\titems.push( {\n\t\tvalue: 'inline-flex',\n\t\trenderContent: () => __( 'In-flx', 'elementor' ),\n\t\tlabel: __( 'Inline-flex', 'elementor' ),\n\t\tshowTooltip: true,\n\t} );\n\n\tconst placeholder = useDisplayPlaceholderValue();\n\n\treturn (\n\t\t<StylesField bind=\"display\" placeholder={ placeholder }>\n\t\t\t<Stack gap={ 0.75 }>\n\t\t\t\t<ControlLabel>{ __( 'Display', 'elementor' ) }</ControlLabel>\n\t\t\t\t<ToggleControl options={ items } maxItems={ 4 } fullWidth={ true } />\n\t\t\t</Stack>\n\t\t</StylesField>\n\t);\n};\n\n// TODO - placing this logic deliberately here, and will be removed once applied automatically to all style fields as part of ED-18491\nexport const useDisplayPlaceholderValue = () => useStylesInheritanceChain( [ 'display' ] )[ 0 ]?.value ?? undefined;\n","import * as React from 'react';\nimport { type ToggleButtonGroupItem, ToggleControl } from '@elementor/editor-controls';\nimport { ArrowDownSmallIcon, ArrowLeftIcon, ArrowRightIcon, ArrowUpSmallIcon } from '@elementor/icons';\nimport { DirectionProvider, Grid, ThemeProvider, withDirection } from '@elementor/ui';\nimport { __ } from '@wordpress/i18n';\n\nimport { StylesField } from '../../../controls-registry/styles-field';\nimport { useDirection } from '../../../hooks/use-direction';\nimport { ControlLabel } from '../../control-label';\n\nexport type FlexDirection = 'row' | 'row-reverse' | 'column' | 'column-reverse';\n\nconst options: ToggleButtonGroupItem< FlexDirection >[] = [\n\t{\n\t\tvalue: 'row',\n\t\tlabel: __( 'Row', 'elementor' ),\n\t\trenderContent: ( { size } ) => {\n\t\t\tconst StartIcon = withDirection( ArrowRightIcon );\n\t\t\treturn <StartIcon fontSize={ size } />;\n\t\t},\n\t\tshowTooltip: true,\n\t},\n\t{\n\t\tvalue: 'column',\n\t\tlabel: __( 'Column', 'elementor' ),\n\t\trenderContent: ( { size } ) => <ArrowDownSmallIcon fontSize={ size } />,\n\t\tshowTooltip: true,\n\t},\n\t{\n\t\tvalue: 'row-reverse',\n\t\tlabel: __( 'Reversed row', 'elementor' ),\n\t\trenderContent: ( { size } ) => {\n\t\t\tconst EndIcon = withDirection( ArrowLeftIcon );\n\t\t\treturn <EndIcon fontSize={ size } />;\n\t\t},\n\t\tshowTooltip: true,\n\t},\n\t{\n\t\tvalue: 'column-reverse',\n\t\tlabel: __( 'Reversed column', 'elementor' ),\n\t\trenderContent: ( { size } ) => <ArrowUpSmallIcon fontSize={ size } />,\n\t\tshowTooltip: true,\n\t},\n];\n\nexport const FlexDirectionField = () => {\n\tconst { isSiteRtl } = useDirection();\n\n\treturn (\n\t\t<DirectionProvider rtl={ isSiteRtl }>\n\t\t\t<ThemeProvider>\n\t\t\t\t<StylesField bind=\"flex-direction\">\n\t\t\t\t\t<Grid container gap={ 2 } alignItems=\"center\" flexWrap=\"nowrap\">\n\t\t\t\t\t\t<Grid item xs={ 6 }>\n\t\t\t\t\t\t\t<ControlLabel>{ __( 'Direction', 'elementor' ) }</ControlLabel>\n\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t<Grid item xs={ 6 } sx={ { display: 'flex', justifyContent: 'end' } }>\n\t\t\t\t\t\t\t<ToggleControl options={ options } />\n\t\t\t\t\t\t</Grid>\n\t\t\t\t\t</Grid>\n\t\t\t\t</StylesField>\n\t\t\t</ThemeProvider>\n\t\t</DirectionProvider>\n\t);\n};\n","import * as React from 'react';\nimport { useState } from 'react';\nimport { ControlToggleButtonGroup, NumberControl, type ToggleButtonGroupItem } from '@elementor/editor-controls';\nimport { type NumberPropValue } from '@elementor/editor-props';\nimport { ArrowDownSmallIcon, ArrowUpSmallIcon, PencilIcon } from '@elementor/icons';\nimport { DirectionProvider, Grid, ThemeProvider } from '@elementor/ui';\nimport { __ } from '@wordpress/i18n';\n\nimport { useStyle } from '../../../contexts/style-context';\nimport { StylesField } from '../../../controls-registry/styles-field';\nimport { useDirection } from '../../../hooks/use-direction';\nimport { useStylesField } from '../../../hooks/use-styles-field';\nimport { ControlLabel } from '../../control-label';\nimport { SectionContent } from '../../section-content';\n\ntype GroupControlItemOption = 'first' | 'last' | 'custom';\n\nexport const FIRST_DEFAULT_VALUE = -99999;\nexport const LAST_DEFAULT_VALUE = 99999;\nconst FIRST = 'first';\nconst LAST = 'last';\nconst CUSTOM = 'custom';\n\nconst orderValueMap = {\n\t[ FIRST ]: FIRST_DEFAULT_VALUE,\n\t[ LAST ]: LAST_DEFAULT_VALUE,\n};\n\nconst items: ToggleButtonGroupItem< GroupControlItemOption >[] = [\n\t{\n\t\tvalue: FIRST,\n\t\tlabel: __( 'First', 'elementor' ),\n\t\trenderContent: ( { size } ) => <ArrowUpSmallIcon fontSize={ size } />,\n\t\tshowTooltip: true,\n\t},\n\t{\n\t\tvalue: LAST,\n\t\tlabel: __( 'Last', 'elementor' ),\n\t\trenderContent: ( { size } ) => <ArrowDownSmallIcon fontSize={ size } />,\n\t\tshowTooltip: true,\n\t},\n\t{\n\t\tvalue: CUSTOM,\n\t\tlabel: __( 'Custom', 'elementor' ),\n\t\trenderContent: ( { size } ) => <PencilIcon fontSize={ size } />,\n\t\tshowTooltip: true,\n\t},\n];\n\nexport const FlexOrderField = () => {\n\tconst { isSiteRtl } = useDirection();\n\tconst [ order, setOrder ] = useStylesField< NumberPropValue | null >( 'order' );\n\tconst { canEdit } = useStyle();\n\n\tconst [ groupControlValue, setGroupControlValue ] = useState( getGroupControlValue( order?.value || null ) );\n\n\tconst handleToggleButtonChange = ( group: GroupControlItemOption | null ) => {\n\t\tsetGroupControlValue( group );\n\n\t\tif ( ! group || group === CUSTOM ) {\n\t\t\tsetOrder( null );\n\n\t\t\treturn;\n\t\t}\n\n\t\tsetOrder( { $$type: 'number', value: orderValueMap[ group ] } );\n\t};\n\n\treturn (\n\t\t<DirectionProvider rtl={ isSiteRtl }>\n\t\t\t<ThemeProvider>\n\t\t\t\t<StylesField bind={ 'order' }>\n\t\t\t\t\t<SectionContent>\n\t\t\t\t\t\t<Grid container gap={ 2 } alignItems=\"center\" flexWrap=\"nowrap\">\n\t\t\t\t\t\t\t<Grid item xs={ 6 }>\n\t\t\t\t\t\t\t\t<ControlLabel>{ __( 'Order', 'elementor' ) }</ControlLabel>\n\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t\t<Grid item xs={ 6 } sx={ { display: 'flex', justifyContent: 'end' } }>\n\t\t\t\t\t\t\t\t<ControlToggleButtonGroup\n\t\t\t\t\t\t\t\t\titems={ items }\n\t\t\t\t\t\t\t\t\tvalue={ groupControlValue }\n\t\t\t\t\t\t\t\t\tonChange={ handleToggleButtonChange }\n\t\t\t\t\t\t\t\t\texclusive={ true }\n\t\t\t\t\t\t\t\t\tdisabled={ ! canEdit }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t</Grid>\n\n\t\t\t\t\t\t{ CUSTOM === groupControlValue && (\n\t\t\t\t\t\t\t<Grid container gap={ 2 } alignItems=\"center\" flexWrap=\"nowrap\">\n\t\t\t\t\t\t\t\t<Grid item xs={ 6 }>\n\t\t\t\t\t\t\t\t\t<ControlLabel>{ __( 'Custom order', 'elementor' ) }</ControlLabel>\n\t\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t\t\t<Grid item xs={ 6 } sx={ { display: 'flex', justifyContent: 'end' } }>\n\t\t\t\t\t\t\t\t\t<NumberControl\n\t\t\t\t\t\t\t\t\t\tmin={ FIRST_DEFAULT_VALUE + 1 }\n\t\t\t\t\t\t\t\t\t\tmax={ LAST_DEFAULT_VALUE - 1 }\n\t\t\t\t\t\t\t\t\t\tshouldForceInt={ true }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</SectionContent>\n\t\t\t\t</StylesField>\n\t\t\t</ThemeProvider>\n\t\t</DirectionProvider>\n\t);\n};\n\nconst getGroupControlValue = ( order: number | null ): GroupControlItemOption | null => {\n\tif ( LAST_DEFAULT_VALUE === order ) {\n\t\treturn LAST;\n\t}\n\n\tif ( FIRST_DEFAULT_VALUE === order ) {\n\t\treturn FIRST;\n\t}\n\n\treturn 0 === order || order ? CUSTOM : null;\n};\n","import * as React from 'react';\nimport { useMemo, useState } from 'react';\nimport {\n\tControlToggleButtonGroup,\n\tNumberControl,\n\tSizeControl,\n\ttype ToggleButtonGroupItem,\n} from '@elementor/editor-controls';\nimport { numberPropTypeUtil, type NumberPropValue, type SizePropValue } from '@elementor/editor-props';\nimport { ExpandIcon, PencilIcon, ShrinkIcon } from '@elementor/icons';\nimport { DirectionProvider, Grid, ThemeProvider } from '@elementor/ui';\nimport { __ } from '@wordpress/i18n';\n\nimport { useStyle } from '../../../contexts/style-context';\nimport { StylesField } from '../../../controls-registry/styles-field';\nimport { useDirection } from '../../../hooks/use-direction';\nimport { useStylesFields } from '../../../hooks/use-styles-fields';\nimport { ControlLabel } from '../../control-label';\nimport { SectionContent } from '../../section-content';\n\ntype GroupItem = 'flex-grow' | 'flex-shrink' | 'custom';\n\nconst DEFAULT = 1;\n\nconst items: ToggleButtonGroupItem< GroupItem >[] = [\n\t{\n\t\tvalue: 'flex-grow',\n\t\tlabel: __( 'Grow', 'elementor' ),\n\t\trenderContent: ( { size } ) => <ExpandIcon fontSize={ size } />,\n\t\tshowTooltip: true,\n\t},\n\t{\n\t\tvalue: 'flex-shrink',\n\t\tlabel: __( 'Shrink', 'elementor' ),\n\t\trenderContent: ( { size } ) => <ShrinkIcon fontSize={ size } />,\n\t\tshowTooltip: true,\n\t},\n\t{\n\t\tvalue: 'custom',\n\t\tlabel: __( 'Custom', 'elementor' ),\n\t\trenderContent: ( { size } ) => <PencilIcon fontSize={ size } />,\n\t\tshowTooltip: true,\n\t},\n];\n\nexport const FlexSizeField = () => {\n\tconst { isSiteRtl } = useDirection();\n\tconst { canEdit } = useStyle();\n\n\tconst [ fields, setFields ] = useStylesFields< {\n\t\t'flex-grow': NumberPropValue | null;\n\t\t'flex-shrink': NumberPropValue | null;\n\t\t'flex-basis': SizePropValue | null;\n\t} >( [ 'flex-grow', 'flex-shrink', 'flex-basis' ] );\n\n\tconst grow = fields?.[ 'flex-grow' ]?.value || null;\n\tconst shrink = fields?.[ 'flex-shrink' ]?.value || null;\n\tconst basis = fields?.[ 'flex-basis' ]?.value || null;\n\n\tconst currentGroup = useMemo( () => getActiveGroup( { grow, shrink, basis } ), [ grow, shrink, basis ] ),\n\t\t[ activeGroup, setActiveGroup ] = useState( currentGroup );\n\n\tconst onChangeGroup = ( group: GroupItem | null = null ) => {\n\t\tsetActiveGroup( group );\n\n\t\tif ( ! group || group === 'custom' ) {\n\t\t\tsetFields( {\n\t\t\t\t'flex-basis': null,\n\t\t\t\t'flex-grow': null,\n\t\t\t\t'flex-shrink': null,\n\t\t\t} );\n\n\t\t\treturn;\n\t\t}\n\n\t\tif ( group === 'flex-grow' ) {\n\t\t\tsetFields( {\n\t\t\t\t'flex-basis': null,\n\t\t\t\t'flex-grow': numberPropTypeUtil.create( DEFAULT ),\n\t\t\t\t'flex-shrink': null,\n\t\t\t} );\n\n\t\t\treturn;\n\t\t}\n\n\t\tsetFields( {\n\t\t\t'flex-basis': null,\n\t\t\t'flex-grow': null,\n\t\t\t'flex-shrink': numberPropTypeUtil.create( DEFAULT ),\n\t\t} );\n\t};\n\n\treturn (\n\t\t<DirectionProvider rtl={ isSiteRtl }>\n\t\t\t<ThemeProvider>\n\t\t\t\t<SectionContent>\n\t\t\t\t\t<Grid container gap={ 2 } alignItems=\"center\" flexWrap=\"nowrap\">\n\t\t\t\t\t\t<StylesField bind={ activeGroup ?? '' }>\n\t\t\t\t\t\t\t<Grid item xs={ 6 }>\n\t\t\t\t\t\t\t\t<ControlLabel>{ __( 'Size', 'elementor' ) }</ControlLabel>\n\t\t\t\t\t\t\t</Grid>\n\n\t\t\t\t\t\t\t<Grid item xs={ 6 } sx={ { display: 'flex', justifyContent: 'end' } }>\n\t\t\t\t\t\t\t\t<ControlToggleButtonGroup\n\t\t\t\t\t\t\t\t\tvalue={ activeGroup }\n\t\t\t\t\t\t\t\t\tonChange={ onChangeGroup }\n\t\t\t\t\t\t\t\t\tdisabled={ ! canEdit }\n\t\t\t\t\t\t\t\t\titems={ items }\n\t\t\t\t\t\t\t\t\texclusive={ true }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t</StylesField>\n\t\t\t\t\t</Grid>\n\t\t\t\t\t{ 'custom' === activeGroup && <FlexCustomField /> }\n\t\t\t\t</SectionContent>\n\t\t\t</ThemeProvider>\n\t\t</DirectionProvider>\n\t);\n};\n\nconst FlexCustomField = () => (\n\t<>\n\t\t<StylesField bind={ 'flex-grow' }>\n\t\t\t<Grid container gap={ 2 } alignItems=\"center\" flexWrap=\"nowrap\">\n\t\t\t\t<Grid item xs={ 6 }>\n\t\t\t\t\t<ControlLabel>{ __( 'Grow', 'elementor' ) }</ControlLabel>\n\t\t\t\t</Grid>\n\t\t\t\t<Grid item xs={ 6 } sx={ { display: 'flex', justifyContent: 'end' } }>\n\t\t\t\t\t<NumberControl min={ 0 } shouldForceInt={ true } />\n\t\t\t\t</Grid>\n\t\t\t</Grid>\n\t\t</StylesField>\n\t\t<StylesField bind={ 'flex-shrink' }>\n\t\t\t<Grid container gap={ 2 } alignItems=\"center\" flexWrap=\"nowrap\">\n\t\t\t\t<Grid item xs={ 6 }>\n\t\t\t\t\t<ControlLabel>{ __( 'Shrink', 'elementor' ) }</ControlLabel>\n\t\t\t\t</Grid>\n\t\t\t\t<Grid item xs={ 6 } sx={ { display: 'flex', justifyContent: 'end' } }>\n\t\t\t\t\t<NumberControl min={ 0 } shouldForceInt={ true } />\n\t\t\t\t</Grid>\n\t\t\t</Grid>\n\t\t</StylesField>\n\t\t<StylesField bind={ 'flex-basis' }>\n\t\t\t<Grid container gap={ 2 } alignItems=\"center\" flexWrap=\"nowrap\">\n\t\t\t\t<Grid item xs={ 6 }>\n\t\t\t\t\t<ControlLabel>{ __( 'Basis', 'elementor' ) }</ControlLabel>\n\t\t\t\t</Grid>\n\t\t\t\t<Grid item xs={ 6 } sx={ { display: 'flex', justifyContent: 'end' } }>\n\t\t\t\t\t<SizeControl extendedValues={ [ 'auto' ] } />\n\t\t\t\t</Grid>\n\t\t\t</Grid>\n\t\t</StylesField>\n\t</>\n);\n\nconst getActiveGroup = ( {\n\tgrow,\n\tshrink,\n\tbasis,\n}: {\n\tgrow: NumberPropValue[ 'value' ] | null;\n\tshrink: NumberPropValue[ 'value' ] | null;\n\tbasis: SizePropValue[ 'value' ] | null;\n} ): GroupItem | null => {\n\tif ( null === grow && null === shrink && ! basis ) {\n\t\treturn null;\n\t}\n\n\tif ( ( shrink && grow ) || basis ) {\n\t\treturn 'custom';\n\t}\n\n\tif ( grow === DEFAULT ) {\n\t\treturn 'flex-grow';\n\t}\n\n\tif ( shrink === DEFAULT ) {\n\t\treturn 'flex-shrink';\n\t}\n\n\treturn 'custom';\n};\n","import * as React from 'react';\nimport { GapControl } from '@elementor/editor-controls';\nimport { Stack } from '@elementor/ui';\nimport { __ } from '@wordpress/i18n';\n\nimport { StylesField } from '../../../controls-registry/styles-field';\n\nexport const GapControlField = () => {\n\treturn (\n\t\t<Stack gap={ 1 }>\n\t\t\t<StylesField bind={ 'gap' }>\n\t\t\t\t<GapControl label={ __( 'Gaps', 'elementor' ) } />\n\t\t\t</StylesField>\n\t\t</Stack>\n\t);\n};\n","import * as React from 'react';\nimport { type ToggleButtonGroupItem, ToggleControl } from '@elementor/editor-controls';\nimport {\n\tJustifyBottomIcon,\n\tJustifyCenterIcon as CenterIcon,\n\tJustifyDistributeVerticalIcon as EvenlyIcon,\n\tJustifySpaceAroundVerticalIcon as AroundIcon,\n\tJustifySpaceBetweenVerticalIcon as BetweenIcon,\n\tJustifyTopIcon,\n} from '@elementor/icons';\nimport { DirectionProvider, Stack, ThemeProvider, withDirection } from '@elementor/ui';\nimport { __ } from '@wordpress/i18n';\n\nimport { StylesField } from '../../../controls-registry/styles-field';\nimport { useDirection } from '../../../hooks/use-direction';\nimport { ControlLabel } from '../../control-label';\nimport { RotatedIcon } from './utils/rotated-icon';\n\ntype JustifyContent = 'flex-start' | 'center' | 'flex-end' | 'space-between' | 'space-around' | 'space-evenly';\n\nconst StartIcon = withDirection( JustifyTopIcon );\nconst EndIcon = withDirection( JustifyBottomIcon );\n\nconst iconProps = {\n\tisClockwise: true,\n\toffset: -90,\n};\n\nconst options: ToggleButtonGroupItem< JustifyContent >[] = [\n\t{\n\t\tvalue: 'flex-start',\n\t\tlabel: __( 'Start', 'elementor' ),\n\t\trenderContent: ( { size } ) => <RotatedIcon icon={ StartIcon } size={ size } { ...iconProps } />,\n\t\tshowTooltip: true,\n\t},\n\t{\n\t\tvalue: 'center',\n\t\tlabel: __( 'Center', 'elementor' ),\n\t\trenderContent: ( { size } ) => <RotatedIcon icon={ CenterIcon } size={ size } { ...iconProps } />,\n\t\tshowTooltip: true,\n\t},\n\t{\n\t\tvalue: 'flex-end',\n\t\tlabel: __( 'End', 'elementor' ),\n\t\trenderContent: ( { size } ) => <RotatedIcon icon={ EndIcon } size={ size } { ...iconProps } />,\n\t\tshowTooltip: true,\n\t},\n\t{\n\t\tvalue: 'space-between',\n\t\tlabel: __( 'Space between', 'elementor' ),\n\t\trenderContent: ( { size } ) => <RotatedIcon icon={ BetweenIcon } size={ size } { ...iconProps } />,\n\t\tshowTooltip: true,\n\t},\n\t{\n\t\tvalue: 'space-around',\n\t\tlabel: __( 'Space around', 'elementor' ),\n\t\trenderContent: ( { size } ) => <RotatedIcon icon={ AroundIcon } size={ size } { ...iconProps } />,\n\t\tshowTooltip: true,\n\t},\n\t{\n\t\tvalue: 'space-evenly',\n\t\tlabel: __( 'Space evenly', 'elementor' ),\n\t\trenderContent: ( { size } ) => <RotatedIcon icon={ EvenlyIcon } size={ size } { ...iconProps } />,\n\t\tshowTooltip: true,\n\t},\n];\n\nexport const JustifyContentField = () => {\n\tconst { isSiteRtl } = useDirection();\n\n\treturn (\n\t\t<DirectionProvider rtl={ isSiteRtl }>\n\t\t\t<ThemeProvider>\n\t\t\t\t<StylesField bind=\"justify-content\">\n\t\t\t\t\t<Stack gap={ 0.75 }>\n\t\t\t\t\t\t<ControlLabel>{ __( 'Justify content', 'elementor' ) }</ControlLabel>\n\t\t\t\t\t\t<ToggleControl options={ options } fullWidth={ true } />\n\t\t\t\t\t</Stack>\n\t\t\t\t</StylesField>\n\t\t\t</ThemeProvider>\n\t\t</DirectionProvider>\n\t);\n};\n","import * as React from 'react';\nimport { type ToggleButtonGroupItem, ToggleControl } from '@elementor/editor-controls';\nimport { ArrowBackIcon, ArrowForwardIcon, ArrowRightIcon } from '@elementor/icons';\nimport { DirectionProvider, Grid, ThemeProvider } from '@elementor/ui';\nimport { __ } from '@wordpress/i18n';\n\nimport { StylesField } from '../../../controls-registry/styles-field';\nimport { useDirection } from '../../../hooks/use-direction';\nimport { ControlLabel } from '../../control-label';\n\ntype FlexWrap = 'nowrap' | 'wrap' | 'wrap-reverse';\n\nconst options: ToggleButtonGroupItem< FlexWrap >[] = [\n\t{\n\t\tvalue: 'nowrap',\n\t\tlabel: __( 'No wrap', 'elementor' ),\n\t\trenderContent: ( { size } ) => <ArrowRightIcon fontSize={ size } />,\n\t\tshowTooltip: true,\n\t},\n\t{\n\t\tvalue: 'wrap',\n\t\tlabel: __( 'Wrap', 'elementor' ),\n\t\trenderContent: ( { size } ) => <ArrowBackIcon fontSize={ size } />,\n\t\tshowTooltip: true,\n\t},\n\t{\n\t\tvalue: 'wrap-reverse',\n\t\tlabel: __( 'Reversed wrap', 'elementor' ),\n\t\trenderContent: ( { size } ) => <ArrowForwardIcon fontSize={ size } />,\n\t\tshowTooltip: true,\n\t},\n];\n\nexport const WrapField = () => {\n\tconst { isSiteRtl } = useDirection();\n\n\treturn (\n\t\t<DirectionProvider rtl={ isSiteRtl }>\n\t\t\t<ThemeProvider>\n\t\t\t\t<StylesField bind={ 'flex-wrap' }>\n\t\t\t\t\t<Grid container gap={ 2 } alignItems=\"center\" flexWrap=\"nowrap\">\n\t\t\t\t\t\t<Grid item xs={ 6 }>\n\t\t\t\t\t\t\t<ControlLabel>{ __( 'Wrap', 'elementor' ) }</ControlLabel>\n\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t<Grid item xs={ 6 } sx={ { display: 'flex', justifyContent: 'flex-end' } }>\n\t\t\t\t\t\t\t<ToggleControl options={ options } />\n\t\t\t\t\t\t</Grid>\n\t\t\t\t\t</Grid>\n\t\t\t\t</StylesField>\n\t\t\t</ThemeProvider>\n\t\t</DirectionProvider>\n\t);\n};\n","import * as React from 'react';\nimport { type StringPropValue } from '@elementor/editor-props';\nimport { isExperimentActive } from '@elementor/editor-v1-adapters';\nimport { useSessionStorage } from '@elementor/session';\n\nimport { useStyle } from '../../../contexts/style-context';\nimport { useStylesField } from '../../../hooks/use-styles-field';\nimport { useStylesFields } from '../../../hooks/use-styles-fields';\nimport { PanelDivider } from '../../panel-divider';\nimport { SectionContent } from '../../section-content';\nimport { DimensionsField } from './dimensions-field';\nimport { OffsetField } from './offset-field';\nimport { PositionField } from './position-field';\nimport { ZIndexField } from './z-index-field';\n\ntype DimensionValue =\n\t| {\n\t\t\t$$type: 'size';\n\t\t\tvalue: number;\n\t }\n\t| undefined\n\t| null;\n\ntype DimensionsValues = {\n\t'inset-block-start': DimensionValue;\n\t'inset-block-end': DimensionValue;\n\t'inset-inline-start': DimensionValue;\n\t'inset-inline-end': DimensionValue;\n};\n\nexport const PositionSection = () => {\n\tconst [ positionValue ] = useStylesField< StringPropValue >( 'position' );\n\tconst [ dimensionsValues, setDimensionsValues ] = useStylesFields< DimensionsValues >( [\n\t\t'inset-block-start',\n\t\t'inset-block-end',\n\t\t'inset-inline-start',\n\t\t'inset-inline-end',\n\t] );\n\n\tconst [ dimensionsValuesFromHistory, updateDimensionsHistory, clearDimensionsHistory ] = usePersistDimensions();\n\tconst isCssIdFeatureActive = isExperimentActive( 'e_v_3_30' );\n\n\tconst onPositionChange = ( newPosition: string | null, previousPosition: string | null | undefined ) => {\n\t\tif ( newPosition === 'static' ) {\n\t\t\tif ( dimensionsValues ) {\n\t\t\t\tupdateDimensionsHistory( dimensionsValues );\n\t\t\t\tsetDimensionsValues( {\n\t\t\t\t\t'inset-block-start': undefined,\n\t\t\t\t\t'inset-block-end': undefined,\n\t\t\t\t\t'inset-inline-start': undefined,\n\t\t\t\t\t'inset-inline-end': undefined,\n\t\t\t\t} );\n\t\t\t}\n\t\t} else if ( previousPosition === 'static' ) {\n\t\t\tif ( dimensionsValuesFromHistory ) {\n\t\t\t\tsetDimensionsValues( dimensionsValuesFromHistory );\n\t\t\t\tclearDimensionsHistory();\n\t\t\t}\n\t\t}\n\t};\n\n\tconst isNotStatic = positionValue && positionValue?.value !== 'static';\n\n\treturn (\n\t\t<SectionContent>\n\t\t\t<PositionField onChange={ onPositionChange } />\n\t\t\t{ isNotStatic ? (\n\t\t\t\t<>\n\t\t\t\t\t<DimensionsField />\n\t\t\t\t\t<ZIndexField />\n\t\t\t\t</>\n\t\t\t) : null }\n\n\t\t\t{ isCssIdFeatureActive && (\n\t\t\t\t<>\n\t\t\t\t\t<PanelDivider />\n\t\t\t\t\t<OffsetField />\n\t\t\t\t</>\n\t\t\t) }\n\t\t</SectionContent>\n\t);\n};\n\nconst usePersistDimensions = () => {\n\tconst { id: styleDefID, meta } = useStyle();\n\tconst styleVariantPath = `styles/${ styleDefID }/${ meta.breakpoint || 'desktop' }/${ meta.state || 'null' }`;\n\tconst dimensionsPath = `${ styleVariantPath }/dimensions`;\n\n\treturn useSessionStorage< DimensionsValues >( dimensionsPath );\n};\n","import * as React from 'react';\nimport { SizeControl } from '@elementor/editor-controls';\nimport { SideBottomIcon, SideLeftIcon, SideRightIcon, SideTopIcon } from '@elementor/icons';\nimport { Grid, Stack, withDirection } from '@elementor/ui';\nimport { __ } from '@wordpress/i18n';\n\nimport { StylesField } from '../../../controls-registry/styles-field';\nimport { useDirection } from '../../../hooks/use-direction';\nimport { ControlLabel } from '../../control-label';\nimport { RotatedIcon } from '../layout-section/utils/rotated-icon';\n\ntype Side = 'inset-inline-start' | 'inset-inline-end' | 'inset-block-start' | 'inset-block-end';\n\nconst InlineStartIcon = withDirection( SideLeftIcon );\nconst InlineEndIcon = withDirection( SideRightIcon );\n\nconst sideIcons = {\n\t'inset-block-start': <SideTopIcon fontSize={ 'tiny' } />,\n\t'inset-block-end': <SideBottomIcon fontSize={ 'tiny' } />,\n\t'inset-inline-start': <RotatedIcon icon={ InlineStartIcon } size=\"tiny\" />,\n\t'inset-inline-end': <RotatedIcon icon={ InlineEndIcon } size=\"tiny\" />,\n};\n\nconst getInlineStartLabel = ( isSiteRtl: boolean ) =>\n\tisSiteRtl ? __( 'Right', 'elementor' ) : __( 'Left', 'elementor' );\n\nconst getInlineEndLabel = ( isSiteRtl: boolean ) =>\n\tisSiteRtl ? __( 'Left', 'elementor' ) : __( 'Right', 'elementor' );\n\nexport const DimensionsField = () => {\n\tconst { isSiteRtl } = useDirection();\n\n\treturn (\n\t\t<>\n\t\t\t<Stack direction=\"row\" gap={ 2 } flexWrap=\"nowrap\">\n\t\t\t\t<DimensionField side=\"inset-block-start\" label={ __( 'Top', 'elementor' ) } />\n\t\t\t\t<DimensionField side=\"inset-inline-end\" label={ getInlineEndLabel( isSiteRtl ) } />\n\t\t\t</Stack>\n\t\t\t<Stack direction=\"row\" gap={ 2 } flexWrap=\"nowrap\">\n\t\t\t\t<DimensionField side=\"inset-block-end\" label={ __( 'Bottom', 'elementor' ) } />\n\t\t\t\t<DimensionField side=\"inset-inline-start\" label={ getInlineStartLabel( isSiteRtl ) } />\n\t\t\t</Stack>\n\t\t</>\n\t);\n};\nconst DimensionField = ( { side, label }: { side: Side; label: string } ) => {\n\treturn (\n\t\t<Grid container gap={ 0.75 } alignItems=\"center\">\n\t\t\t<Grid item xs={ 12 }>\n\t\t\t\t<ControlLabel>{ label }</ControlLabel>\n\t\t\t</Grid>\n\t\t\t<Grid item xs={ 12 }>\n\t\t\t\t<StylesField bind={ side }>\n\t\t\t\t\t<SizeControl startIcon={ sideIcons[ side ] } extendedValues={ [ 'auto' ] } />\n\t\t\t\t</StylesField>\n\t\t\t</Grid>\n\t\t</Grid>\n\t);\n};\n","import * as React from 'react';\nimport { SizeControl } from '@elementor/editor-controls';\nimport { Grid } from '@elementor/ui';\nimport { __ } from '@wordpress/i18n';\n\nimport { StylesField } from '../../../controls-registry/styles-field';\nimport { ControlLabel } from '../../control-label';\n\nexport const OffsetField = () => {\n\treturn (\n\t\t<StylesField bind=\"scroll-margin-top\">\n\t\t\t<Grid container gap={ 2 } alignItems=\"center\" flexWrap=\"nowrap\">\n\t\t\t\t<Grid item xs={ 6 }>\n\t\t\t\t\t<ControlLabel>{ __( 'Anchor offset', 'elementor' ) }</ControlLabel>\n\t\t\t\t</Grid>\n\t\t\t\t<Grid item xs={ 6 }>\n\t\t\t\t\t<SizeControl units={ [ 'px', 'em', 'rem', 'vw', 'vh' ] } />\n\t\t\t\t</Grid>\n\t\t\t</Grid>\n\t\t</StylesField>\n\t);\n};\n","import * as React from 'react';\nimport { SelectControl } from '@elementor/editor-controls';\nimport { Grid } from '@elementor/ui';\nimport { __ } from '@wordpress/i18n';\n\nimport { StylesField } from '../../../controls-registry/styles-field';\nimport { ControlLabel } from '../../control-label';\n\nconst positionOptions = [\n\t{ label: __( 'Static', 'elementor' ), value: 'static' },\n\t{ label: __( 'Relative', 'elementor' ), value: 'relative' },\n\t{ label: __( 'Absolute', 'elementor' ), value: 'absolute' },\n\t{ label: __( 'Fixed', 'elementor' ), value: 'fixed' },\n\t{ label: __( 'Sticky', 'elementor' ), value: 'sticky' },\n];\n\ntype Props = {\n\tonChange?: ( newValue: string | null, previousValue: string | null | undefined ) => void;\n};\n\nexport const PositionField = ( { onChange }: Props ) => {\n\treturn (\n\t\t<StylesField bind=\"position\">\n\t\t\t<Grid container gap={ 2 } alignItems=\"center\" flexWrap=\"nowrap\">\n\t\t\t\t<Grid item xs={ 6 }>\n\t\t\t\t\t<ControlLabel>{ __( 'Position', 'elementor' ) }</ControlLabel>\n\t\t\t\t</Grid>\n\t\t\t\t<Grid item xs={ 6 } sx={ { overflow: 'hidden' } }>\n\t\t\t\t\t<SelectControl options={ positionOptions } onChange={ onChange } />\n\t\t\t\t</Grid>\n\t\t\t</Grid>\n\t\t</StylesField>\n\t);\n};\n","import * as React from 'react';\nimport { NumberControl } from '@elementor/editor-controls';\nimport { Grid } from '@elementor/ui';\nimport { __ } from '@wordpress/i18n';\n\nimport { StylesField } from '../../../controls-registry/styles-field';\nimport { ControlLabel } from '../../control-label';\n\nexport const ZIndexField = () => {\n\treturn (\n\t\t<StylesField bind=\"z-index\">\n\t\t\t<Grid container gap={ 2 } alignItems=\"center\" flexWrap=\"nowrap\">\n\t\t\t\t<Grid item xs={ 6 }>\n\t\t\t\t\t<ControlLabel>{ __( 'Z-index', 'elementor' ) }</ControlLabel>\n\t\t\t\t</Grid>\n\t\t\t\t<Grid item xs={ 6 }>\n\t\t\t\t\t<NumberControl />\n\t\t\t\t</Grid>\n\t\t\t</Grid>\n\t\t</StylesField>\n\t);\n};\n","import * as React from 'react';\nimport { AspectRatioControl, type ExtendedValue, SizeControl } from '@elementor/editor-controls';\nimport type { StringPropValue } from '@elementor/editor-props';\nimport { isExperimentActive } from '@elementor/editor-v1-adapters';\nimport { Grid, Stack } from '@elementor/ui';\nimport { __ } from '@wordpress/i18n';\n\nimport { StylesField, type StylesFieldProps } from '../../../controls-registry/styles-field';\nimport { useStylesField } from '../../../hooks/use-styles-field';\nimport { CollapsibleContent } from '../../collapsible-content';\nimport { ControlLabel } from '../../control-label';\nimport { PanelDivider } from '../../panel-divider';\nimport { SectionContent } from '../../section-content';\nimport { ObjectFitField } from './object-fit-field';\nimport { ObjectPositionField } from './object-position-field';\nimport { OverflowField } from './overflow-field';\n\nexport const SizeSection = () => {\n\tconst [ fitValue ] = useStylesField< StringPropValue >( 'object-fit' );\n\n\tconst isNotFill = fitValue && fitValue?.value !== 'fill';\n\n\tconst isVersion330Active = isExperimentActive( 'e_v_3_30' );\n\n\treturn (\n\t\t<SectionContent>\n\t\t\t<Grid container gap={ 2 } flexWrap=\"nowrap\">\n\t\t\t\t<Grid item xs={ 6 }>\n\t\t\t\t\t<SizeField bind=\"width\" label={ __( 'Width', 'elementor' ) } extendedValues={ [ 'auto' ] } />\n\t\t\t\t</Grid>\n\t\t\t\t<Grid item xs={ 6 }>\n\t\t\t\t\t<SizeField bind=\"height\" label={ __( 'Height', 'elementor' ) } extendedValues={ [ 'auto' ] } />\n\t\t\t\t</Grid>\n\t\t\t</Grid>\n\t\t\t<Grid container gap={ 2 } flexWrap=\"nowrap\">\n\t\t\t\t<Grid item xs={ 6 }>\n\t\t\t\t\t<SizeField\n\t\t\t\t\t\tbind=\"min-width\"\n\t\t\t\t\t\tlabel={ __( 'Min width', 'elementor' ) }\n\t\t\t\t\t\textendedValues={ [ 'auto' ] }\n\t\t\t\t\t/>\n\t\t\t\t</Grid>\n\t\t\t\t<Grid item xs={ 6 }>\n\t\t\t\t\t<SizeField\n\t\t\t\t\t\tbind=\"min-height\"\n\t\t\t\t\t\tlabel={ __( 'Min height', 'elementor' ) }\n\t\t\t\t\t\textendedValues={ [ 'auto' ] }\n\t\t\t\t\t/>\n\t\t\t\t</Grid>\n\t\t\t</Grid>\n\t\t\t<Grid container gap={ 2 } flexWrap=\"nowrap\">\n\t\t\t\t<Grid item xs={ 6 }>\n\t\t\t\t\t<SizeField bind=\"max-width\" label={ __( 'Max width', 'elementor' ) } />\n\t\t\t\t</Grid>\n\t\t\t\t<Grid item xs={ 6 }>\n\t\t\t\t\t<SizeField bind=\"max-height\" label={ __( 'Max height', 'elementor' ) } />\n\t\t\t\t</Grid>\n\t\t\t</Grid>\n\t\t\t<PanelDivider />\n\t\t\t<Stack>\n\t\t\t\t<OverflowField />\n\t\t\t</Stack>\n\t\t\t{ isVersion330Active && (\n\t\t\t\t<CollapsibleContent>\n\t\t\t\t\t<Stack gap={ 2 }>\n\t\t\t\t\t\t<StylesField bind={ 'aspect-ratio' }>\n\t\t\t\t\t\t\t<AspectRatioControl label={ __( 'Aspect Ratio', 'elementor' ) } />\n\t\t\t\t\t\t</StylesField>\n\t\t\t\t\t\t<PanelDivider />\n\t\t\t\t\t\t<ObjectFitField />\n\t\t\t\t\t\t{ isNotFill && (\n\t\t\t\t\t\t\t<Grid item xs={ 6 }>\n\t\t\t\t\t\t\t\t<ObjectPositionField />\n\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</Stack>\n\t\t\t\t</CollapsibleContent>\n\t\t\t) }\n\t\t</SectionContent>\n\t);\n};\n\ntype ControlProps = {\n\tbind: StylesFieldProps[ 'bind' ];\n\tlabel: string;\n\textendedValues?: ExtendedValue[];\n};\n\nconst SizeField = ( { label, bind, extendedValues }: ControlProps ) => {\n\treturn (\n\t\t<StylesField bind={ bind }>\n\t\t\t<Grid container gap={ 0.75 } alignItems=\"center\">\n\t\t\t\t<Grid item xs={ 12 }>\n\t\t\t\t\t<ControlLabel>{ label }</ControlLabel>\n\t\t\t\t</Grid>\n\t\t\t\t<Grid item xs={ 12 }>\n\t\t\t\t\t<SizeControl extendedValues={ extendedValues } />\n\t\t\t\t</Grid>\n\t\t\t</Grid>\n\t\t</StylesField>\n\t);\n};\n","import * as React from 'react';\nimport { useState } from 'react';\nimport { Button, Collapse, Stack } from '@elementor/ui';\nimport { __ } from '@wordpress/i18n';\n\nimport { CollapseIcon } from './collapse-icon';\n\ntype CollapsibleContentProps = React.PropsWithChildren< {\n\tdefaultOpen?: boolean;\n} >;\n\nexport const CollapsibleContent = ( { children, defaultOpen = false }: CollapsibleContentProps ) => {\n\tconst [ open, setOpen ] = useState( defaultOpen );\n\n\tconst handleToggle = () => {\n\t\tsetOpen( ( prevOpen ) => ! prevOpen );\n\t};\n\n\treturn (\n\t\t<Stack>\n\t\t\t<Button\n\t\t\t\tfullWidth\n\t\t\t\tsize=\"small\"\n\t\t\t\tcolor=\"secondary\"\n\t\t\t\tvariant=\"outlined\"\n\t\t\t\tonClick={ handleToggle }\n\t\t\t\tendIcon={ <CollapseIcon open={ open } /> }\n\t\t\t\tsx={ { my: 0.5 } }\n\t\t\t>\n\t\t\t\t{ open ? __( 'Show less', 'elementor' ) : __( 'Show more', 'elementor' ) }\n\t\t\t</Button>\n\t\t\t<Collapse in={ open } timeout=\"auto\" unmountOnExit>\n\t\t\t\t{ children }\n\t\t\t</Collapse>\n\t\t</Stack>\n\t);\n};\n","import * as React from 'react';\nimport { SelectControl } from '@elementor/editor-controls';\nimport { Grid } from '@elementor/ui';\nimport { __ } from '@wordpress/i18n';\n\nimport { StylesField } from '../../../controls-registry/styles-field';\nimport { ControlLabel } from '../../control-label';\n\nconst positionOptions = [\n\t{ label: __( 'Fill', 'elementor' ), value: 'fill' },\n\t{ label: __( 'Cover', 'elementor' ), value: 'cover' },\n\t{ label: __( 'Contain', 'elementor' ), value: 'contain' },\n\t{ label: __( 'None', 'elementor' ), value: 'none' },\n\t{ label: __( 'Scale down', 'elementor' ), value: 'scale-down' },\n];\n\nexport const ObjectFitField = () => {\n\treturn (\n\t\t<StylesField bind=\"object-fit\">\n\t\t\t<Grid container gap={ 2 } alignItems=\"center\" flexWrap=\"nowrap\">\n\t\t\t\t<Grid item xs={ 6 }>\n\t\t\t\t\t<ControlLabel>{ __( 'Object fit', 'elementor' ) }</ControlLabel>\n\t\t\t\t</Grid>\n\t\t\t\t<Grid item xs={ 6 } sx={ { overflow: 'hidden' } }>\n\t\t\t\t\t<SelectControl options={ positionOptions } />\n\t\t\t\t</Grid>\n\t\t\t</Grid>\n\t\t</StylesField>\n\t);\n};\n","import * as React from 'react';\nimport { SelectControl } from '@elementor/editor-controls';\nimport { Grid } from '@elementor/ui';\nimport { __ } from '@wordpress/i18n';\n\nimport { StylesField } from '../../../controls-registry/styles-field';\nimport { ControlLabel } from '../../control-label';\n\nconst positionOptions = [\n\t{ label: __( 'Center center', 'elementor' ), value: 'center center' },\n\t{ label: __( 'Center left', 'elementor' ), value: 'center left' },\n\t{ label: __( 'Center right', 'elementor' ), value: 'center right' },\n\t{ label: __( 'Top center', 'elementor' ), value: 'top center' },\n\t{ label: __( 'Top left', 'elementor' ), value: 'top left' },\n\t{ label: __( 'Top right', 'elementor' ), value: 'top right' },\n\t{ label: __( 'Bottom center', 'elementor' ), value: 'bottom center' },\n\t{ label: __( 'Bottom left', 'elementor' ), value: 'bottom left' },\n\t{ label: __( 'Bottom right', 'elementor' ), value: 'bottom right' },\n];\n\nexport const ObjectPositionField = () => {\n\treturn (\n\t\t<StylesField bind=\"object-position\">\n\t\t\t<Grid container gap={ 2 } alignItems=\"center\" flexWrap=\"nowrap\">\n\t\t\t\t<Grid item xs={ 6 }>\n\t\t\t\t\t<ControlLabel>{ __( 'Object position', 'elementor' ) }</ControlLabel>\n\t\t\t\t</Grid>\n\t\t\t\t<Grid item xs={ 6 } sx={ { overflow: 'hidden' } }>\n\t\t\t\t\t<SelectControl options={ positionOptions } />\n\t\t\t\t</Grid>\n\t\t\t</Grid>\n\t\t</StylesField>\n\t);\n};\n","import * as React from 'react';\nimport { type ToggleButtonGroupItem, ToggleControl } from '@elementor/editor-controls';\nimport { EyeIcon, EyeOffIcon, LetterAIcon } from '@elementor/icons';\nimport { Grid } from '@elementor/ui';\nimport { __ } from '@wordpress/i18n';\n\nimport { StylesField } from '../../../controls-registry/styles-field';\nimport { ControlLabel } from '../../control-label';\n\ntype Overflows = 'visible' | 'hidden' | 'auto';\n\nconst options: ToggleButtonGroupItem< Overflows >[] = [\n\t{\n\t\tvalue: 'visible',\n\t\tlabel: __( 'Visible', 'elementor' ),\n\t\trenderContent: ( { size } ) => <EyeIcon fontSize={ size } />,\n\t\tshowTooltip: true,\n\t},\n\t{\n\t\tvalue: 'hidden',\n\t\tlabel: __( 'Hidden', 'elementor' ),\n\t\trenderContent: ( { size } ) => <EyeOffIcon fontSize={ size } />,\n\t\tshowTooltip: true,\n\t},\n\t{\n\t\tvalue: 'auto',\n\t\tlabel: __( 'Auto', 'elementor' ),\n\t\trenderContent: ( { size } ) => <LetterAIcon fontSize={ size } />,\n\t\tshowTooltip: true,\n\t},\n];\n\nexport const OverflowField = () => {\n\treturn (\n\t\t<StylesField bind={ 'overflow' }>\n\t\t\t<Grid container gap={ 2 } alignItems=\"center\" flexWrap=\"nowrap\">\n\t\t\t\t<Grid item xs={ 6 }>\n\t\t\t\t\t<ControlLabel>{ __( 'Overflow', 'elementor' ) }</ControlLabel>\n\t\t\t\t</Grid>\n\t\t\t\t<Grid item xs={ 6 } sx={ { display: 'flex', justifyContent: 'flex-end' } }>\n\t\t\t\t\t<ToggleControl options={ options } />\n\t\t\t\t</Grid>\n\t\t\t</Grid>\n\t\t</StylesField>\n\t);\n};\n","import * as React from 'react';\nimport { LinkedDimensionsControl } from '@elementor/editor-controls';\nimport { __ } from '@wordpress/i18n';\n\nimport { StylesField } from '../../../controls-registry/styles-field';\nimport { useDirection } from '../../../hooks/use-direction';\nimport { PanelDivider } from '../../panel-divider';\nimport { SectionContent } from '../../section-content';\n\nexport const SpacingSection = () => {\n\tconst { isSiteRtl } = useDirection();\n\n\treturn (\n\t\t<SectionContent>\n\t\t\t<StylesField bind={ 'margin' }>\n\t\t\t\t<LinkedDimensionsControl\n\t\t\t\t\tlabel={ __( 'Margin', 'elementor' ) }\n\t\t\t\t\tisSiteRtl={ isSiteRtl }\n\t\t\t\t\textendedValues={ [ 'auto' ] }\n\t\t\t\t/>\n\t\t\t</StylesField>\n\t\t\t<PanelDivider />\n\t\t\t<StylesField bind={ 'padding' }>\n\t\t\t\t<LinkedDimensionsControl label={ __( 'Padding', 'elementor' ) } isSiteRtl={ isSiteRtl } />\n\t\t\t</StylesField>\n\t\t</SectionContent>\n\t);\n};\n","import * as React from 'react';\nimport type { NumberPropValue } from '@elementor/editor-props';\nimport { isExperimentActive } from '@elementor/editor-v1-adapters';\n\nimport { useStylesField } from '../../../hooks/use-styles-field';\nimport { CollapsibleContent } from '../../collapsible-content';\nimport { PanelDivider } from '../../panel-divider';\nimport { SectionContent } from '../../section-content';\nimport { ColumnCountField } from './column-count-field';\nimport { ColumnGapField } from './column-gap-field';\nimport { FontFamilyField } from './font-family-field';\nimport { FontSizeField } from './font-size-field';\nimport { FontStyleField } from './font-style-field';\nimport { FontWeightField } from './font-weight-field';\nimport { LetterSpacingField } from './letter-spacing-field';\nimport { LineHeightField } from './line-height-field';\nimport { TextAlignmentField } from './text-alignment-field';\nimport { TextColorField } from './text-color-field';\nimport { TextDecorationField } from './text-decoration-field';\nimport { TextDirectionField } from './text-direction-field';\nimport { TextStrokeField } from './text-stroke-field';\nimport { TransformField } from './transform-field';\nimport { WordSpacingField } from './word-spacing-field';\n\nexport const TypographySection = () => {\n\tconst [ columnCount ] = useStylesField< NumberPropValue >( 'column-count' );\n\tconst isVersion330Active = isExperimentActive( 'e_v_3_30' );\n\tconst hasMultiColumns = !! ( columnCount?.value && columnCount?.value > 1 );\n\treturn (\n\t\t<SectionContent>\n\t\t\t<FontFamilyField />\n\t\t\t<FontWeightField />\n\t\t\t<FontSizeField />\n\t\t\t<PanelDivider />\n\t\t\t<TextAlignmentField />\n\t\t\t<TextColorField />\n\t\t\t<CollapsibleContent>\n\t\t\t\t<SectionContent sx={ { pt: 2 } }>\n\t\t\t\t\t<LineHeightField />\n\t\t\t\t\t<LetterSpacingField />\n\t\t\t\t\t<WordSpacingField />\n\t\t\t\t\t{ isVersion330Active && (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<ColumnCountField />\n\t\t\t\t\t\t\t{ hasMultiColumns && <ColumnGapField /> }\n\t\t\t\t\t\t</>\n\t\t\t\t\t) }\n\t\t\t\t\t<PanelDivider />\n\t\t\t\t\t<TextDecorationField />\n\t\t\t\t\t<TransformField />\n\t\t\t\t\t<TextDirectionField />\n\t\t\t\t\t<FontStyleField />\n\t\t\t\t\t<TextStrokeField />\n\t\t\t\t</SectionContent>\n\t\t\t</CollapsibleContent>\n\t\t</SectionContent>\n\t);\n};\n","import * as React from 'react';\nimport { NumberControl } from '@elementor/editor-controls';\nimport { Grid } from '@elementor/ui';\nimport { __ } from '@wordpress/i18n';\n\nimport { StylesField } from '../../../controls-registry/styles-field';\nimport { ControlLabel } from '../../control-label';\n\nexport const ColumnCountField = () => {\n\treturn (\n\t\t<StylesField bind=\"column-count\">\n\t\t\t<Grid container gap={ 2 } alignItems=\"center\" flexWrap=\"nowrap\">\n\t\t\t\t<Grid item xs={ 6 }>\n\t\t\t\t\t<ControlLabel>{ __( 'Columns', 'elementor' ) }</ControlLabel>\n\t\t\t\t</Grid>\n\t\t\t\t<Grid item xs={ 6 }>\n\t\t\t\t\t<NumberControl shouldForceInt min={ 0 } step={ 1 } />\n\t\t\t\t</Grid>\n\t\t\t</Grid>\n\t\t</StylesField>\n\t);\n};\n","import * as React from 'react';\nimport { SizeControl } from '@elementor/editor-controls';\nimport { Grid } from '@elementor/ui';\nimport { __ } from '@wordpress/i18n';\n\nimport { StylesField } from '../../../controls-registry/styles-field';\nimport { ControlLabel } from '../../control-label';\n\nexport const ColumnGapField = () => {\n\treturn (\n\t\t<StylesField bind=\"column-gap\">\n\t\t\t<Grid container gap={ 2 } alignItems=\"center\" flexWrap=\"nowrap\">\n\t\t\t\t<Grid item xs={ 6 }>\n\t\t\t\t\t<ControlLabel>{ __( 'Column gap', 'elementor' ) }</ControlLabel>\n\t\t\t\t</Grid>\n\t\t\t\t<Grid item xs={ 6 }>\n\t\t\t\t\t<SizeControl />\n\t\t\t\t</Grid>\n\t\t\t</Grid>\n\t\t</StylesField>\n\t);\n};\n","import * as React from 'react';\nimport { FontFamilyControl } from '@elementor/editor-controls';\nimport { Grid } from '@elementor/ui';\nimport { __ } from '@wordpress/i18n';\n\nimport { StylesField } from '../../../controls-registry/styles-field';\nimport { ControlLabel } from '../../control-label';\nimport { useFontFamilies } from './hooks/use-font-families';\n\nexport const FontFamilyField = () => {\n\tconst fontFamilies = useFontFamilies();\n\n\tif ( fontFamilies.length === 0 ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<StylesField bind=\"font-family\">\n\t\t\t<Grid container gap={ 2 } alignItems=\"center\" flexWrap=\"nowrap\">\n\t\t\t\t<Grid item xs={ 6 }>\n\t\t\t\t\t<ControlLabel>{ __( 'Font family', 'elementor' ) }</ControlLabel>\n\t\t\t\t</Grid>\n\t\t\t\t<Grid item xs={ 6 } sx={ { minWidth: 0 } }>\n\t\t\t\t\t<FontFamilyControl fontFamilies={ fontFamilies } />\n\t\t\t\t</Grid>\n\t\t\t</Grid>\n\t\t</StylesField>\n\t);\n};\n","import { useMemo } from 'react';\nimport { type FontCategory } from '@elementor/editor-controls';\nimport { __ } from '@wordpress/i18n';\n\nimport { getElementorConfig } from '../../../../sync/get-elementor-globals';\n\nconst supportedCategories: Record< string, string > = {\n\tsystem: __( 'System', 'elementor' ),\n\tcustom: __( 'Custom Fonts', 'elementor' ),\n\tgooglefonts: __( 'Google Fonts', 'elementor' ),\n};\n\nconst getFontFamilies = () => {\n\tconst { controls } = getElementorConfig();\n\n\tconst options = controls?.font?.options;\n\n\tif ( ! options ) {\n\t\treturn null;\n\t}\n\n\treturn options;\n};\n\nexport const useFontFamilies = () => {\n\tconst fontFamilies = getFontFamilies();\n\n\treturn useMemo( () => {\n\t\tconst categoriesOrder = [ 'system', 'custom', 'googlefonts' ];\n\n\t\treturn Object.entries( fontFamilies || {} )\n\t\t\t.reduce< FontCategory[] >( ( acc, [ font, category ] ) => {\n\t\t\t\tif ( ! supportedCategories[ category ] ) {\n\t\t\t\t\treturn acc;\n\t\t\t\t}\n\n\t\t\t\tconst categoryIndex = categoriesOrder.indexOf( category );\n\n\t\t\t\tif ( ! acc[ categoryIndex ] ) {\n\t\t\t\t\tacc[ categoryIndex ] = {\n\t\t\t\t\t\tlabel: supportedCategories[ category ],\n\t\t\t\t\t\tfonts: [],\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\tacc[ categoryIndex ].fonts.push( font );\n\n\t\t\t\treturn acc;\n\t\t\t}, [] )\n\t\t\t.filter( Boolean );\n\t}, [ fontFamilies ] );\n};\n","import * as React from 'react';\nimport { SizeControl } from '@elementor/editor-controls';\nimport { Grid } from '@elementor/ui';\nimport { __ } from '@wordpress/i18n';\n\nimport { StylesField } from '../../../controls-registry/styles-field';\nimport { ControlLabel } from '../../control-label';\n\nexport const FontSizeField = () => {\n\treturn (\n\t\t<StylesField bind=\"font-size\">\n\t\t\t<Grid container gap={ 2 } alignItems=\"center\" flexWrap=\"nowrap\">\n\t\t\t\t<Grid item xs={ 6 }>\n\t\t\t\t\t<ControlLabel>{ __( 'Font size', 'elementor' ) }</ControlLabel>\n\t\t\t\t</Grid>\n\t\t\t\t<Grid item xs={ 6 }>\n\t\t\t\t\t<SizeControl />\n\t\t\t\t</Grid>\n\t\t\t</Grid>\n\t\t</StylesField>\n\t);\n};\n","import * as React from 'react';\nimport { ControlFormLabel, type ToggleButtonGroupItem, ToggleControl } from '@elementor/editor-controls';\nimport { ItalicIcon, MinusIcon } from '@elementor/icons';\nimport { Grid } from '@elementor/ui';\nimport { __ } from '@wordpress/i18n';\n\nimport { StylesField } from '../../../controls-registry/styles-field';\n\ntype FontStyle = 'normal' | 'italic';\nconst options: ToggleButtonGroupItem< FontStyle >[] = [\n\t{\n\t\tvalue: 'normal',\n\t\tlabel: __( 'Normal', 'elementor' ),\n\t\trenderContent: ( { size } ) => <MinusIcon fontSize={ size } />,\n\t\tshowTooltip: true,\n\t},\n\t{\n\t\tvalue: 'italic',\n\t\tlabel: __( 'Italic', 'elementor' ),\n\t\trenderContent: ( { size } ) => <ItalicIcon fontSize={ size } />,\n\t\tshowTooltip: true,\n\t},\n];\n\nexport const FontStyleField = () => (\n\t<StylesField bind=\"font-style\">\n\t\t<Grid container gap={ 2 } alignItems=\"center\" flexWrap=\"nowrap\">\n\t\t\t<Grid item xs={ 6 }>\n\t\t\t\t<ControlFormLabel>{ __( 'Font style', 'elementor' ) }</ControlFormLabel>\n\t\t\t</Grid>\n\t\t\t<Grid item xs={ 6 } display=\"flex\" justifyContent=\"end\">\n\t\t\t\t<ToggleControl options={ options } />\n\t\t\t</Grid>\n\t\t</Grid>\n\t</StylesField>\n);\n","import * as React from 'react';\nimport { SelectControl } from '@elementor/editor-controls';\nimport { Grid } from '@elementor/ui';\nimport { __ } from '@wordpress/i18n';\n\nimport { StylesField } from '../../../controls-registry/styles-field';\nimport { ControlLabel } from '../../control-label';\n\nconst fontWeightOptions = [\n\t{ value: '100', label: __( '100 - Thin', 'elementor' ) },\n\t{ value: '200', label: __( '200 - Extra light', 'elementor' ) },\n\t{ value: '300', label: __( '300 - Light', 'elementor' ) },\n\t{ value: '400', label: __( '400 - Normal', 'elementor' ) },\n\t{ value: '500', label: __( '500 - Medium', 'elementor' ) },\n\t{ value: '600', label: __( '600 - Semi bold', 'elementor' ) },\n\t{ value: '700', label: __( '700 - Bold', 'elementor' ) },\n\t{ value: '800', label: __( '800 - Extra bold', 'elementor' ) },\n\t{ value: '900', label: __( '900 - Black', 'elementor' ) },\n];\n\nexport const FontWeightField = () => {\n\treturn (\n\t\t<StylesField bind=\"font-weight\">\n\t\t\t<Grid container gap={ 2 } alignItems=\"center\" flexWrap=\"nowrap\">\n\t\t\t\t<Grid item xs={ 6 }>\n\t\t\t\t\t<ControlLabel>{ __( 'Font weight', 'elementor' ) }</ControlLabel>\n\t\t\t\t</Grid>\n\t\t\t\t<Grid item xs={ 6 } sx={ { overflow: 'hidden' } }>\n\t\t\t\t\t<SelectControl options={ fontWeightOptions } />\n\t\t\t\t</Grid>\n\t\t\t</Grid>\n\t\t</StylesField>\n\t);\n};\n","import * as React from 'react';\nimport { SizeControl } from '@elementor/editor-controls';\nimport { Grid } from '@elementor/ui';\nimport { __ } from '@wordpress/i18n';\n\nimport { StylesField } from '../../../controls-registry/styles-field';\nimport { ControlLabel } from '../../control-label';\n\nexport const LetterSpacingField = () => {\n\treturn (\n\t\t<StylesField bind=\"letter-spacing\">\n\t\t\t<Grid container gap={ 2 } alignItems=\"center\" flexWrap=\"nowrap\">\n\t\t\t\t<Grid item xs={ 6 }>\n\t\t\t\t\t<ControlLabel>{ __( 'Letter spacing', 'elementor' ) }</ControlLabel>\n\t\t\t\t</Grid>\n\t\t\t\t<Grid item xs={ 6 }>\n\t\t\t\t\t<SizeControl />\n\t\t\t\t</Grid>\n\t\t\t</Grid>\n\t\t</StylesField>\n\t);\n};\n","import * as React from 'react';\nimport { SizeControl } from '@elementor/editor-controls';\nimport { Grid } from '@elementor/ui';\nimport { __ } from '@wordpress/i18n';\n\nimport { StylesField } from '../../../controls-registry/styles-field';\nimport { ControlLabel } from '../../control-label';\n\nexport const LineHeightField = () => {\n\treturn (\n\t\t<StylesField bind=\"line-height\">\n\t\t\t<Grid container gap={ 2 } alignItems=\"center\" flexWrap=\"nowrap\">\n\t\t\t\t<Grid item xs={ 6 }>\n\t\t\t\t\t<ControlLabel>{ __( 'Line height', 'elementor' ) }</ControlLabel>\n\t\t\t\t</Grid>\n\t\t\t\t<Grid item xs={ 6 }>\n\t\t\t\t\t<SizeControl />\n\t\t\t\t</Grid>\n\t\t\t</Grid>\n\t\t</StylesField>\n\t);\n};\n","import * as React from 'react';\nimport { type ToggleButtonGroupItem, ToggleControl } from '@elementor/editor-controls';\nimport { AlignCenterIcon, AlignJustifiedIcon, AlignLeftIcon, AlignRightIcon } from '@elementor/icons';\nimport { Grid, withDirection } from '@elementor/ui';\nimport { __ } from '@wordpress/i18n';\n\nimport { StylesField } from '../../../controls-registry/styles-field';\nimport { ControlLabel } from '../../control-label';\n\ntype Alignments = 'start' | 'center' | 'end' | 'justify';\n\nconst AlignStartIcon = withDirection( AlignLeftIcon );\nconst AlignEndIcon = withDirection( AlignRightIcon );\n\nconst options: ToggleButtonGroupItem< Alignments >[] = [\n\t{\n\t\tvalue: 'start',\n\t\tlabel: __( 'Start', 'elementor' ),\n\t\trenderContent: ( { size } ) => <AlignStartIcon fontSize={ size } />,\n\t\tshowTooltip: true,\n\t},\n\t{\n\t\tvalue: 'center',\n\t\tlabel: __( 'Center', 'elementor' ),\n\t\trenderContent: ( { size } ) => <AlignCenterIcon fontSize={ size } />,\n\t\tshowTooltip: true,\n\t},\n\t{\n\t\tvalue: 'end',\n\t\tlabel: __( 'End', 'elementor' ),\n\t\trenderContent: ( { size } ) => <AlignEndIcon fontSize={ size } />,\n\t\tshowTooltip: true,\n\t},\n\t{\n\t\tvalue: 'justify',\n\t\tlabel: __( 'Justify', 'elementor' ),\n\t\trenderContent: ( { size } ) => <AlignJustifiedIcon fontSize={ size } />,\n\t\tshowTooltip: true,\n\t},\n];\n\nexport const TextAlignmentField = () => {\n\treturn (\n\t\t<StylesField bind={ 'text-align' }>\n\t\t\t<Grid container gap={ 2 } alignItems=\"center\" flexWrap=\"nowrap\">\n\t\t\t\t<Grid item xs={ 6 }>\n\t\t\t\t\t<ControlLabel>{ __( 'Text align', 'elementor' ) }</ControlLabel>\n\t\t\t\t</Grid>\n\t\t\t\t<Grid item xs={ 6 } display=\"flex\" justifyContent=\"end\">\n\t\t\t\t\t<ToggleControl options={ options } />\n\t\t\t\t</Grid>\n\t\t\t</Grid>\n\t\t</StylesField>\n\t);\n};\n","import * as React from 'react';\nimport { ColorControl } from '@elementor/editor-controls';\nimport { Grid } from '@elementor/ui';\nimport { __ } from '@wordpress/i18n';\n\nimport { StylesField } from '../../../controls-registry/styles-field';\nimport { ControlLabel } from '../../control-label';\n\nexport const TextColorField = () => {\n\treturn (\n\t\t<StylesField bind=\"color\">\n\t\t\t<Grid container gap={ 2 } alignItems=\"center\" flexWrap=\"nowrap\">\n\t\t\t\t<Grid item xs={ 6 }>\n\t\t\t\t\t<ControlLabel>{ __( 'Text color', 'elementor' ) }</ControlLabel>\n\t\t\t\t</Grid>\n\t\t\t\t<Grid item xs={ 6 }>\n\t\t\t\t\t<ColorControl />\n\t\t\t\t</Grid>\n\t\t\t</Grid>\n\t\t</StylesField>\n\t);\n};\n","import * as React from 'react';\nimport { ToggleControl, type ToggleControlProps } from '@elementor/editor-controls';\nimport { MinusIcon, OverlineIcon, StrikethroughIcon, UnderlineIcon } from '@elementor/icons';\nimport { Grid } from '@elementor/ui';\nimport { __ } from '@wordpress/i18n';\n\nimport { StylesField } from '../../../controls-registry/styles-field';\nimport { ControlLabel } from '../../control-label';\n\ntype Decoration = 'none' | 'underline' | 'line-through' | 'overline';\n\nconst options: ToggleControlProps< Decoration >[ 'options' ] = [\n\t{\n\t\tvalue: 'none',\n\t\tlabel: __( 'None', 'elementor' ),\n\t\trenderContent: ( { size } ) => <MinusIcon fontSize={ size } />,\n\t\tshowTooltip: true,\n\t\texclusive: true,\n\t},\n\t{\n\t\tvalue: 'underline',\n\t\tlabel: __( 'Underline', 'elementor' ),\n\t\trenderContent: ( { size } ) => <UnderlineIcon fontSize={ size } />,\n\t\tshowTooltip: true,\n\t},\n\t{\n\t\tvalue: 'line-through',\n\t\tlabel: __( 'Line-through', 'elementor' ),\n\t\trenderContent: ( { size } ) => <StrikethroughIcon fontSize={ size } />,\n\t\tshowTooltip: true,\n\t},\n\t{\n\t\tvalue: 'overline',\n\t\tlabel: __( 'Overline', 'elementor' ),\n\t\trenderContent: ( { size } ) => <OverlineIcon fontSize={ size } />,\n\t\tshowTooltip: true,\n\t},\n];\nexport const TextDecorationField = () => (\n\t<StylesField bind={ 'text-decoration' }>\n\t\t<Grid container gap={ 2 } alignItems=\"center\" flexWrap=\"nowrap\">\n\t\t\t<Grid item xs={ 6 }>\n\t\t\t\t<ControlLabel>{ __( 'Line decoration', 'elementor' ) }</ControlLabel>\n\t\t\t</Grid>\n\t\t\t<Grid item xs={ 6 } display=\"flex\" justifyContent=\"end\">\n\t\t\t\t<ToggleControl options={ options } exclusive={ false } />\n\t\t\t</Grid>\n\t\t</Grid>\n\t</StylesField>\n);\n","import * as React from 'react';\nimport { type ToggleButtonGroupItem, ToggleControl } from '@elementor/editor-controls';\nimport { TextDirectionLtrIcon, TextDirectionRtlIcon } from '@elementor/icons';\nimport { Grid } from '@elementor/ui';\nimport { __ } from '@wordpress/i18n';\n\nimport { StylesField } from '../../../controls-registry/styles-field';\nimport { ControlLabel } from '../../control-label';\n\ntype Direction = 'ltr' | 'rtl';\n\nconst options: ToggleButtonGroupItem< Direction >[] = [\n\t{\n\t\tvalue: 'ltr',\n\t\tlabel: __( 'Left to right', 'elementor' ),\n\t\trenderContent: ( { size } ) => <TextDirectionLtrIcon fontSize={ size } />,\n\t\tshowTooltip: true,\n\t},\n\t{\n\t\tvalue: 'rtl',\n\t\tlabel: __( 'Right to left', 'elementor' ),\n\t\trenderContent: ( { size } ) => <TextDirectionRtlIcon fontSize={ size } />,\n\t\tshowTooltip: true,\n\t},\n];\n\nexport const TextDirectionField = () => {\n\treturn (\n\t\t<StylesField bind={ 'direction' }>\n\t\t\t<Grid container gap={ 2 } alignItems=\"center\" flexWrap=\"nowrap\">\n\t\t\t\t<Grid item xs={ 6 }>\n\t\t\t\t\t<ControlLabel>{ __( 'Direction', 'elementor' ) }</ControlLabel>\n\t\t\t\t</Grid>\n\t\t\t\t<Grid item xs={ 6 } display=\"flex\" justifyContent=\"end\">\n\t\t\t\t\t<ToggleControl options={ options } />\n\t\t\t\t</Grid>\n\t\t\t</Grid>\n\t\t</StylesField>\n\t);\n};\n","import * as React from 'react';\nimport { StrokeControl } from '@elementor/editor-controls';\nimport { __ } from '@wordpress/i18n';\n\nimport { useStyle } from '../../../contexts/style-context';\nimport { StylesField } from '../../../controls-registry/styles-field';\nimport { useStylesField } from '../../../hooks/use-styles-field';\nimport { AddOrRemoveContent } from '../../add-or-remove-content';\n\nconst initTextStroke = {\n\t$$type: 'stroke',\n\tvalue: {\n\t\tcolor: {\n\t\t\t$$type: 'color',\n\t\t\tvalue: '#000000',\n\t\t},\n\t\twidth: {\n\t\t\t$$type: 'size',\n\t\t\tvalue: {\n\t\t\t\tunit: 'px',\n\t\t\t\tsize: 1,\n\t\t\t},\n\t\t},\n\t},\n};\n\nexport const TextStrokeField = () => {\n\tconst { canEdit } = useStyle();\n\tconst [ textStroke, setTextStroke ] = useStylesField( 'stroke' );\n\n\tconst addTextStroke = () => {\n\t\tsetTextStroke( initTextStroke );\n\t};\n\n\tconst removeTextStroke = () => {\n\t\tsetTextStroke( null );\n\t};\n\n\tconst hasTextStroke = Boolean( textStroke );\n\n\treturn (\n\t\t<StylesField bind={ 'stroke' }>\n\t\t\t<AddOrRemoveContent\n\t\t\t\tlabel={ __( 'Text stroke', 'elementor' ) }\n\t\t\t\tisAdded={ hasTextStroke }\n\t\t\t\tonAdd={ addTextStroke }\n\t\t\t\tonRemove={ removeTextStroke }\n\t\t\t\tdisabled={ ! canEdit }\n\t\t\t>\n\t\t\t\t<StrokeControl />\n\t\t\t</AddOrRemoveContent>\n\t\t</StylesField>\n\t);\n};\n","import * as React from 'react';\nimport { type ToggleButtonGroupItem, ToggleControl } from '@elementor/editor-controls';\nimport { LetterCaseIcon, LetterCaseLowerIcon, LetterCaseUpperIcon, MinusIcon } from '@elementor/icons';\nimport { Grid } from '@elementor/ui';\nimport { __ } from '@wordpress/i18n';\n\nimport { StylesField } from '../../../controls-registry/styles-field';\nimport { ControlLabel } from '../../control-label';\n\ntype Transforms = 'none' | 'capitalize' | 'uppercase' | 'lowercase';\n\nconst options: ToggleButtonGroupItem< Transforms >[] = [\n\t{\n\t\tvalue: 'none',\n\t\tlabel: __( 'None', 'elementor' ),\n\t\trenderContent: ( { size } ) => <MinusIcon fontSize={ size } />,\n\t\tshowTooltip: true,\n\t},\n\t{\n\t\tvalue: 'capitalize',\n\t\tlabel: __( 'Capitalize', 'elementor' ),\n\t\trenderContent: ( { size } ) => <LetterCaseIcon fontSize={ size } />,\n\t\tshowTooltip: true,\n\t},\n\t{\n\t\tvalue: 'uppercase',\n\t\tlabel: __( 'Uppercase', 'elementor' ),\n\t\trenderContent: ( { size } ) => <LetterCaseUpperIcon fontSize={ size } />,\n\t\tshowTooltip: true,\n\t},\n\t{\n\t\tvalue: 'lowercase',\n\t\tlabel: __( 'Lowercase', 'elementor' ),\n\t\trenderContent: ( { size } ) => <LetterCaseLowerIcon fontSize={ size } />,\n\t\tshowTooltip: true,\n\t},\n];\n\nexport const TransformField = () => (\n\t<StylesField bind={ 'text-transform' }>\n\t\t<Grid container gap={ 2 } alignItems=\"center\" flexWrap=\"nowrap\">\n\t\t\t<Grid item xs={ 6 }>\n\t\t\t\t<ControlLabel>{ __( 'Text transform', 'elementor' ) }</ControlLabel>\n\t\t\t</Grid>\n\t\t\t<Grid item xs={ 6 } display=\"flex\" justifyContent=\"end\">\n\t\t\t\t<ToggleControl options={ options } />\n\t\t\t</Grid>\n\t\t</Grid>\n\t</StylesField>\n);\n","import * as React from 'react';\nimport { SizeControl } from '@elementor/editor-controls';\nimport { Grid } from '@elementor/ui';\nimport { __ } from '@wordpress/i18n';\n\nimport { StylesField } from '../../../controls-registry/styles-field';\nimport { ControlLabel } from '../../control-label';\n\nexport const WordSpacingField = () => {\n\treturn (\n\t\t<StylesField bind=\"word-spacing\">\n\t\t\t<Grid container gap={ 2 } alignItems=\"center\" flexWrap=\"nowrap\">\n\t\t\t\t<Grid item xs={ 6 }>\n\t\t\t\t\t<ControlLabel>{ __( 'Word spacing', 'elementor' ) }</ControlLabel>\n\t\t\t\t</Grid>\n\t\t\t\t<Grid item xs={ 6 }>\n\t\t\t\t\t<SizeControl />\n\t\t\t\t</Grid>\n\t\t\t</Grid>\n\t\t</StylesField>\n\t);\n};\n","import { injectIntoLogic } from '@elementor/editor';\nimport { PrefetchUserData } from '@elementor/editor-current-user';\nimport { __registerPanel as registerPanel } from '@elementor/editor-panels';\nimport { blockCommand, isExperimentActive } from '@elementor/editor-v1-adapters';\n\nimport { EditingPanelHooks } from './components/editing-panel-hooks';\nimport { init as initDynamics } from './dynamics/init';\nimport { panel } from './panel';\nimport { initResetStyleProps } from './reset-style-props';\nimport { init as initStylesInheritance } from './styles-inheritance/init';\nimport { EXPERIMENTAL_FEATURES } from './sync/experiments-flags';\nimport { isAtomicWidgetSelected } from './sync/is-atomic-widget-selected';\n\nexport function init() {\n\tregisterPanel( panel );\n\tblockV1Panel();\n\n\tinjectIntoLogic( {\n\t\tid: 'editing-panel-hooks',\n\t\tcomponent: EditingPanelHooks,\n\t} );\n\n\tinjectIntoLogic( {\n\t\tid: 'current-user-data',\n\t\tcomponent: PrefetchUserData,\n\t} );\n\n\t// TODO: Move it from here once we have dynamic package.\n\tinitDynamics();\n\n\t// TODO: Move it from here once we have styles-inheritance package.\n\tinitStylesInheritance();\n\n\tif ( isExperimentActive( EXPERIMENTAL_FEATURES.V_3_30 ) ) {\n\t\tinitResetStyleProps();\n\t}\n}\n\nconst blockV1Panel = () => {\n\tblockCommand( {\n\t\tcommand: 'panel/editor/open',\n\t\tcondition: isAtomicWidgetSelected,\n\t} );\n};\n","import { useEffect } from 'react';\nimport { __privateListenTo as listenTo, commandStartEvent } from '@elementor/editor-v1-adapters';\n\nimport { usePanelActions } from '../panel';\nimport { isAtomicWidgetSelected } from '../sync/is-atomic-widget-selected';\n\nexport const useOpenEditorPanel = () => {\n\tconst { open } = usePanelActions();\n\n\tuseEffect( () => {\n\t\treturn listenTo( commandStartEvent( 'panel/editor/open' ), () => {\n\t\t\tif ( isAtomicWidgetSelected() ) {\n\t\t\t\topen();\n\t\t\t}\n\t\t} );\n\t}, [] ); // eslint-disable-line react-hooks/exhaustive-deps\n};\n","import { getSelectedElements, getWidgetsCache } from '@elementor/editor-elements';\n\nexport const isAtomicWidgetSelected = () => {\n\tconst selectedElements = getSelectedElements();\n\tconst widgetCache = getWidgetsCache();\n\n\tif ( selectedElements.length !== 1 ) {\n\t\treturn false;\n\t}\n\n\t// Check if the selected element has atomic controls, meaning it's a V2 element.\n\treturn !! widgetCache?.[ selectedElements[ 0 ].type ]?.atomic_controls;\n};\n","import { useOpenEditorPanel } from '../hooks/use-open-editor-panel';\n\nexport const EditingPanelHooks = () => {\n\tuseOpenEditorPanel();\n\n\treturn null;\n};\n","import { settingsTransformersRegistry, styleTransformersRegistry } from '@elementor/editor-canvas';\n\nimport { registerControlReplacement } from '../control-replacement';\nimport { controlActionsMenu } from '../controls-actions';\nimport { DynamicSelectionControl } from './components/dynamic-selection-control';\nimport { dynamicTransformer } from './dynamic-transformer';\nimport { usePropDynamicAction } from './hooks/use-prop-dynamic-action';\nimport { isDynamicPropValue } from './utils';\n\nconst { registerPopoverAction } = controlActionsMenu;\n\nexport const init = () => {\n\tregisterControlReplacement( {\n\t\tcomponent: DynamicSelectionControl,\n\t\tcondition: ( { value } ) => isDynamicPropValue( value ),\n\t} );\n\n\tregisterPopoverAction( {\n\t\tid: 'dynamic-tags',\n\t\tuseProps: usePropDynamicAction,\n\t} );\n\n\tstyleTransformersRegistry.register( 'dynamic', dynamicTransformer );\n\tsettingsTransformersRegistry.register( 'dynamic', dynamicTransformer );\n};\n","import * as React from 'react';\nimport { ControlFormLabel, useBoundProp } from '@elementor/editor-controls';\nimport type { Control, ControlsSection } from '@elementor/editor-elements';\nimport { DatabaseIcon, SettingsIcon, XIcon } from '@elementor/icons';\nimport {\n\tbindPopover,\n\tbindTrigger,\n\tBox,\n\tDivider,\n\tGrid,\n\tIconButton,\n\tPaper,\n\tPopover,\n\tStack,\n\tTab,\n\tTabPanel,\n\tTabs,\n\tTypography,\n\tUnstableTag as Tag,\n\tusePopupState,\n\tuseTabs,\n} from '@elementor/ui';\nimport { __ } from '@wordpress/i18n';\n\nimport { PopoverContent } from '../../components/popover-content';\nimport { Control as BaseControl } from '../../controls-registry/control';\nimport { type ControlType, getControl } from '../../controls-registry/controls-registry';\nimport { usePersistDynamicValue } from '../../hooks/use-persist-dynamic-value';\nimport { DynamicControl } from '../dynamic-control';\nimport { useDynamicTag } from '../hooks/use-dynamic-tag';\nimport { type DynamicTag } from '../types';\nimport { dynamicPropTypeUtil } from '../utils';\nimport { DynamicSelection } from './dynamic-selection';\n\nconst SIZE = 'tiny';\n\nexport const DynamicSelectionControl = () => {\n\tconst { setValue: setAnyValue } = useBoundProp();\n\tconst { bind, value } = useBoundProp( dynamicPropTypeUtil );\n\n\tconst [ propValueFromHistory ] = usePersistDynamicValue( bind );\n\tconst selectionPopoverState = usePopupState( { variant: 'popover' } );\n\n\tconst { name: tagName = '' } = value;\n\n\tconst dynamicTag = useDynamicTag( tagName );\n\n\tconst removeDynamicTag = () => {\n\t\tsetAnyValue( propValueFromHistory ?? null );\n\t};\n\n\tif ( ! dynamicTag ) {\n\t\tthrow new Error( `Dynamic tag ${ tagName } not found` );\n\t}\n\n\treturn (\n\t\t<Box>\n\t\t\t<Tag\n\t\t\t\tfullWidth\n\t\t\t\tshowActionsOnHover\n\t\t\t\tlabel={ dynamicTag.label }\n\t\t\t\tstartIcon={ <DatabaseIcon fontSize={ SIZE } /> }\n\t\t\t\t{ ...bindTrigger( selectionPopoverState ) }\n\t\t\t\tactions={\n\t\t\t\t\t<>\n\t\t\t\t\t\t<DynamicSettingsPopover dynamicTag={ dynamicTag } />\n\t\t\t\t\t\t<IconButton\n\t\t\t\t\t\t\tsize={ SIZE }\n\t\t\t\t\t\t\tonClick={ removeDynamicTag }\n\t\t\t\t\t\t\taria-label={ __( 'Remove dynamic value', 'elementor' ) }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<XIcon fontSize={ SIZE } />\n\t\t\t\t\t\t</IconButton>\n\t\t\t\t\t</>\n\t\t\t\t}\n\t\t\t/>\n\t\t\t<Popover\n\t\t\t\tdisablePortal\n\t\t\t\tdisableScrollLock\n\t\t\t\tanchorOrigin={ { vertical: 'bottom', horizontal: 'left' } }\n\t\t\t\t{ ...bindPopover( selectionPopoverState ) }\n\t\t\t>\n\t\t\t\t<Stack>\n\t\t\t\t\t<Stack direction=\"row\" alignItems=\"center\" pl={ 1.5 } pr={ 0.5 } py={ 1.5 }>\n\t\t\t\t\t\t<DatabaseIcon fontSize={ SIZE } sx={ { mr: 0.5 } } />\n\t\t\t\t\t\t<Typography variant=\"subtitle2\">{ __( 'Dynamic tags', 'elementor' ) }</Typography>\n\t\t\t\t\t\t<IconButton size={ SIZE } sx={ { ml: 'auto' } } onClick={ selectionPopoverState.close }>\n\t\t\t\t\t\t\t<XIcon fontSize={ SIZE } />\n\t\t\t\t\t\t</IconButton>\n\t\t\t\t\t</Stack>\n\t\t\t\t\t<DynamicSelection onSelect={ selectionPopoverState.close } />\n\t\t\t\t</Stack>\n\t\t\t</Popover>\n\t\t</Box>\n\t);\n};\n\nexport const DynamicSettingsPopover = ( { dynamicTag }: { dynamicTag: DynamicTag } ) => {\n\tconst popupState = usePopupState( { variant: 'popover' } );\n\n\tconst hasDynamicSettings = !! dynamicTag.atomic_controls.length;\n\n\tif ( ! hasDynamicSettings ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t<IconButton size={ SIZE } { ...bindTrigger( popupState ) } aria-label={ __( 'Settings', 'elementor' ) }>\n\t\t\t\t<SettingsIcon fontSize={ SIZE } />\n\t\t\t</IconButton>\n\t\t\t<Popover\n\t\t\t\tdisablePortal\n\t\t\t\tdisableScrollLock\n\t\t\t\tanchorOrigin={ { vertical: 'bottom', horizontal: 'center' } }\n\t\t\t\t{ ...bindPopover( popupState ) }\n\t\t\t>\n\t\t\t\t<Paper component={ Stack } sx={ { minHeight: '300px', width: '220px' } }>\n\t\t\t\t\t<Stack direction=\"row\" alignItems=\"center\" px={ 1.5 } pt={ 2 } pb={ 1 }>\n\t\t\t\t\t\t<DatabaseIcon fontSize={ SIZE } sx={ { mr: 0.5 } } />\n\t\t\t\t\t\t<Typography variant=\"subtitle2\">{ dynamicTag.label }</Typography>\n\t\t\t\t\t\t<IconButton sx={ { ml: 'auto' } } size={ SIZE } onClick={ popupState.close }>\n\t\t\t\t\t\t\t<XIcon fontSize={ SIZE } />\n\t\t\t\t\t\t</IconButton>\n\t\t\t\t\t</Stack>\n\t\t\t\t\t<DynamicSettings controls={ dynamicTag.atomic_controls } />\n\t\t\t\t</Paper>\n\t\t\t</Popover>\n\t\t</>\n\t);\n};\n\nconst DynamicSettings = ( { controls }: { controls: DynamicTag[ 'atomic_controls' ] } ) => {\n\tconst tabs = controls.filter( ( { type } ) => type === 'section' ) as ControlsSection[];\n\tconst { getTabsProps, getTabProps, getTabPanelProps } = useTabs< number >( 0 );\n\n\tif ( ! tabs.length ) {\n\t\t// Dynamic must have hierarchical controls.\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t<Tabs size=\"small\" variant=\"fullWidth\" { ...getTabsProps() }>\n\t\t\t\t{ tabs.map( ( { value }, index ) => (\n\t\t\t\t\t<Tab key={ index } label={ value.label } sx={ { px: 1, py: 0.5 } } { ...getTabProps( index ) } />\n\t\t\t\t) ) }\n\t\t\t</Tabs>\n\t\t\t<Divider />\n\n\t\t\t{ tabs.map( ( { value }, index ) => {\n\t\t\t\treturn (\n\t\t\t\t\t<TabPanel key={ index } sx={ { flexGrow: 1, py: 0 } } { ...getTabPanelProps( index ) }>\n\t\t\t\t\t\t<PopoverContent p={ 2 } gap={ 2 }>\n\t\t\t\t\t\t\t{ value.items.map( ( item ) => {\n\t\t\t\t\t\t\t\tif ( item.type === 'control' ) {\n\t\t\t\t\t\t\t\t\treturn <Control key={ item.value.bind } control={ item.value } />;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\treturn null;\n\t\t\t\t\t\t\t} ) }\n\t\t\t\t\t\t</PopoverContent>\n\t\t\t\t\t</TabPanel>\n\t\t\t\t);\n\t\t\t} ) }\n\t\t</>\n\t);\n};\n\nconst Control = ( { control }: { control: Control[ 'value' ] } ) => {\n\tif ( ! getControl( control.type as ControlType ) ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<DynamicControl bind={ control.bind }>\n\t\t\t<Grid container gap={ 0.75 }>\n\t\t\t\t{ control.label ? (\n\t\t\t\t\t<Grid item xs={ 12 }>\n\t\t\t\t\t\t<ControlFormLabel>{ control.label }</ControlFormLabel>\n\t\t\t\t\t</Grid>\n\t\t\t\t) : null }\n\t\t\t\t<Grid item xs={ 12 }>\n\t\t\t\t\t<BaseControl type={ control.type as ControlType } props={ control.props } />\n\t\t\t\t</Grid>\n\t\t\t</Grid>\n\t\t</DynamicControl>\n\t);\n};\n","import { type FC, type PropsWithChildren } from 'react';\nimport * as React from 'react';\nimport { Stack } from '@elementor/ui';\n\ntype PopoverContentProps = PropsWithChildren< {\n\talignItems?: 'center';\n\tgap?: number;\n\tp?: 1.5 | 2 | 2.5;\n} >;\n\nexport const PopoverContent: FC< PopoverContentProps > = ( { alignItems, gap = 1.5, p, children } ) => (\n\t<Stack alignItems={ alignItems } gap={ gap } p={ p }>\n\t\t{ children }\n\t</Stack>\n);\n","import { type PropValue } from '@elementor/editor-props';\nimport { useSessionStorage } from '@elementor/session';\n\nimport { useElement } from '../contexts/element-context';\nimport { type DynamicPropValue } from '../dynamics/types';\n\nexport const usePersistDynamicValue = < T extends DynamicPropValue | PropValue >( propKey: string ) => {\n\tconst { element } = useElement();\n\tconst prefixedKey = `dynamic/non-dynamic-values-history/${ element.id }/${ propKey }`;\n\treturn useSessionStorage< T >( prefixedKey );\n};\n","import * as React from 'react';\nimport { PropKeyProvider, PropProvider, type SetValue, useBoundProp } from '@elementor/editor-controls';\nimport { type PropKey } from '@elementor/editor-props';\n\nimport { createTopLevelOjectType } from '../controls-registry/create-top-level-object-type';\nimport { useDynamicTag } from './hooks/use-dynamic-tag';\nimport { dynamicPropTypeUtil, type DynamicPropValue } from './utils';\n\ntype DynamicControlProps = React.PropsWithChildren< {\n\tbind: PropKey;\n} >;\n\nexport const DynamicControl = ( { bind, children }: DynamicControlProps ) => {\n\tconst { value, setValue } = useBoundProp( dynamicPropTypeUtil );\n\tconst { name = '', settings } = value ?? {};\n\n\tconst dynamicTag = useDynamicTag( name );\n\n\tif ( ! dynamicTag ) {\n\t\tthrow new Error( `Dynamic tag ${ name } not found` );\n\t}\n\n\tconst dynamicPropType = dynamicTag.props_schema[ bind ];\n\n\tconst defaultValue = dynamicPropType?.default;\n\tconst dynamicValue = settings?.[ bind ] ?? defaultValue;\n\n\tconst setDynamicValue: SetValue< Record< string, DynamicPropValue > > = ( newValues ) => {\n\t\tsetValue( {\n\t\t\tname,\n\t\t\tsettings: {\n\t\t\t\t...settings,\n\t\t\t\t...newValues,\n\t\t\t},\n\t\t} );\n\t};\n\n\tconst propType = createTopLevelOjectType( { schema: dynamicTag.props_schema } );\n\n\treturn (\n\t\t<PropProvider propType={ propType } setValue={ setDynamicValue } value={ { [ bind ]: dynamicValue } }>\n\t\t\t<PropKeyProvider bind={ bind }>{ children }</PropKeyProvider>\n\t\t</PropProvider>\n\t);\n};\n","import { useMemo } from 'react';\n\nimport { type DynamicTag } from '../types';\nimport { usePropDynamicTags } from './use-prop-dynamic-tags';\n\nexport const useDynamicTag = ( tagName: string ): DynamicTag | null => {\n\tconst dynamicTags = usePropDynamicTags();\n\n\treturn useMemo( () => dynamicTags.find( ( tag ) => tag.name === tagName ) ?? null, [ dynamicTags, tagName ] );\n};\n","import { useMemo } from 'react';\nimport { useBoundProp } from '@elementor/editor-controls';\n\nimport { getAtomicDynamicTags } from '../sync/get-atomic-dynamic-tags';\nimport { getDynamicPropType } from '../utils';\n\nexport const usePropDynamicTags = () => {\n\tlet categories: string[] = [];\n\n\tconst { propType } = useBoundProp();\n\n\tif ( propType ) {\n\t\tconst propDynamicType = getDynamicPropType( propType );\n\n\t\tcategories = propDynamicType?.settings.categories || [];\n\t}\n\n\t// eslint-disable-next-line react-compiler/react-compiler\n\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\treturn useMemo( () => getDynamicTagsByCategories( categories ), [ categories.join() ] );\n};\n\nconst getDynamicTagsByCategories = ( categories: string[] ) => {\n\tconst dynamicTags = getAtomicDynamicTags();\n\n\tif ( ! categories.length || ! dynamicTags?.tags ) {\n\t\treturn [];\n\t}\n\n\tconst _categories = new Set( categories );\n\n\treturn Object.values( dynamicTags.tags ).filter( ( dynamicTag ) =>\n\t\tdynamicTag.categories.some( ( category ) => _categories.has( category ) )\n\t);\n};\n","import { type ExtendedWindow } from '../types';\n\nexport const getElementorConfig = () => {\n\tconst extendedWindow = window as unknown as ExtendedWindow;\n\n\treturn extendedWindow.elementor?.config ?? {};\n};\n","import { getElementorConfig } from './get-elementor-config';\n\nexport const getAtomicDynamicTags = () => {\n\tconst { atomicDynamicTags } = getElementorConfig();\n\n\tif ( ! atomicDynamicTags ) {\n\t\treturn null;\n\t}\n\n\treturn {\n\t\ttags: atomicDynamicTags.tags,\n\t\tgroups: atomicDynamicTags.groups,\n\t};\n};\n","import {\n\tcreatePropUtils,\n\tisTransformable,\n\ttype PropType,\n\ttype PropValue,\n\ttype TransformablePropType,\n} from '@elementor/editor-props';\nimport { z } from '@elementor/schema';\n\nimport { type DynamicPropType } from './types';\n\nconst DYNAMIC_PROP_TYPE_KEY = 'dynamic';\n\nconst isDynamicPropType = ( prop: TransformablePropType ): prop is DynamicPropType =>\n\tprop.key === DYNAMIC_PROP_TYPE_KEY;\n\nexport const getDynamicPropType = ( propType: PropType ): DynamicPropType | null => {\n\tconst dynamicPropType = propType.kind === 'union' && propType.prop_types[ DYNAMIC_PROP_TYPE_KEY ];\n\n\treturn dynamicPropType && isDynamicPropType( dynamicPropType ) ? dynamicPropType : null;\n};\n\nexport const isDynamicPropValue = ( prop: PropValue ): prop is DynamicPropValue => {\n\treturn isTransformable( prop ) && prop.$$type === DYNAMIC_PROP_TYPE_KEY;\n};\n\nexport const supportsDynamic = ( propType: PropType ): boolean => {\n\treturn !! getDynamicPropType( propType );\n};\n\nexport const dynamicPropTypeUtil = createPropUtils(\n\tDYNAMIC_PROP_TYPE_KEY,\n\tz.strictObject( {\n\t\tname: z.string(),\n\t\tsettings: z.any().optional(),\n\t} )\n);\n\nexport type DynamicPropValue = z.infer< typeof dynamicPropTypeUtil.schema >;\n","import * as React from 'react';\nimport { Fragment, useState } from 'react';\nimport { useBoundProp } from '@elementor/editor-controls';\nimport { DatabaseIcon, SearchIcon } from '@elementor/icons';\nimport {\n\tBox,\n\tDivider,\n\tInputAdornment,\n\tLink,\n\tMenuItem,\n\tMenuList,\n\tMenuSubheader,\n\tStack,\n\tTextField,\n\tTypography,\n} from '@elementor/ui';\nimport { __ } from '@wordpress/i18n';\n\nimport { usePersistDynamicValue } from '../../hooks/use-persist-dynamic-value';\nimport { usePropDynamicTags } from '../hooks/use-prop-dynamic-tags';\nimport { getAtomicDynamicTags } from '../sync/get-atomic-dynamic-tags';\nimport { dynamicPropTypeUtil } from '../utils';\n\ntype Option = {\n\tlabel: string;\n\tvalue: string;\n};\n\ntype OptionEntry = [ string, Option[] ];\n\nconst SIZE = 'tiny';\n\ntype DynamicSelectionProps = {\n\tonSelect?: () => void;\n};\n\ntype NoResultsProps = {\n\tsearchValue: string;\n\tonClear?: () => void;\n};\n\nexport const DynamicSelection = ( { onSelect }: DynamicSelectionProps ) => {\n\tconst [ searchValue, setSearchValue ] = useState( '' );\n\tconst { groups: dynamicGroups } = getAtomicDynamicTags() || {};\n\n\tconst { value: anyValue } = useBoundProp();\n\tconst { bind, value: dynamicValue, setValue } = useBoundProp( dynamicPropTypeUtil );\n\n\tconst [ , updatePropValueHistory ] = usePersistDynamicValue( bind );\n\n\tconst isCurrentValueDynamic = !! dynamicValue;\n\n\tconst options = useFilteredOptions( searchValue );\n\n\tconst hasNoDynamicTags = ! options.length && ! searchValue.trim();\n\n\tconst handleSearch = ( event: React.ChangeEvent< HTMLInputElement > ) => {\n\t\tsetSearchValue( event.target.value );\n\t};\n\n\tconst handleSetDynamicTag = ( value: string, label: string ) => {\n\t\tif ( ! isCurrentValueDynamic ) {\n\t\t\tupdatePropValueHistory( anyValue );\n\t\t}\n\n\t\tsetValue( { name: value, settings: { label } } );\n\n\t\tonSelect?.();\n\t};\n\n\treturn (\n\t\t<Stack>\n\t\t\t{ hasNoDynamicTags ? (\n\t\t\t\t<NoDynamicTags />\n\t\t\t) : (\n\t\t\t\t<Fragment>\n\t\t\t\t\t<Box px={ 1.5 } pb={ 1 }>\n\t\t\t\t\t\t<TextField\n\t\t\t\t\t\t\tfullWidth\n\t\t\t\t\t\t\tsize={ SIZE }\n\t\t\t\t\t\t\tvalue={ searchValue }\n\t\t\t\t\t\t\tonChange={ handleSearch }\n\t\t\t\t\t\t\tplaceholder={ __( 'Search dynamic tags…', 'elementor' ) }\n\t\t\t\t\t\t\tInputProps={ {\n\t\t\t\t\t\t\t\tstartAdornment: (\n\t\t\t\t\t\t\t\t\t<InputAdornment position=\"start\">\n\t\t\t\t\t\t\t\t\t\t<SearchIcon fontSize={ SIZE } />\n\t\t\t\t\t\t\t\t\t</InputAdornment>\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</Box>\n\t\t\t\t\t<Divider />\n\t\t\t\t\t<Box sx={ { overflowY: 'auto', height: 260, width: 220 } }>\n\t\t\t\t\t\t{ options.length > 0 ? (\n\t\t\t\t\t\t\t<MenuList role=\"listbox\" tabIndex={ 0 }>\n\t\t\t\t\t\t\t\t{ options.map( ( [ category, items ], index ) => (\n\t\t\t\t\t\t\t\t\t<Fragment key={ index }>\n\t\t\t\t\t\t\t\t\t\t<MenuSubheader\n\t\t\t\t\t\t\t\t\t\t\tsx={ { px: 1.5, typography: 'caption', color: 'text.tertiary' } }\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{ dynamicGroups?.[ category ]?.title || category }\n\t\t\t\t\t\t\t\t\t\t</MenuSubheader>\n\t\t\t\t\t\t\t\t\t\t{ items.map( ( { value, label: tagLabel } ) => {\n\t\t\t\t\t\t\t\t\t\t\tconst isSelected = isCurrentValueDynamic && value === dynamicValue?.name;\n\n\t\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\t\t\t\tkey={ value }\n\t\t\t\t\t\t\t\t\t\t\t\t\tselected={ isSelected }\n\t\t\t\t\t\t\t\t\t\t\t\t\t// eslint-disable-next-line jsx-a11y/no-autofocus\n\t\t\t\t\t\t\t\t\t\t\t\t\tautoFocus={ isSelected }\n\t\t\t\t\t\t\t\t\t\t\t\t\tsx={ { px: 3.5, typography: 'caption' } }\n\t\t\t\t\t\t\t\t\t\t\t\t\tonClick={ () => handleSetDynamicTag( value, tagLabel ) }\n\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t{ tagLabel }\n\t\t\t\t\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t} ) }\n\t\t\t\t\t\t\t\t\t</Fragment>\n\t\t\t\t\t\t\t\t) ) }\n\t\t\t\t\t\t\t</MenuList>\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t<NoResults searchValue={ searchValue } onClear={ () => setSearchValue( '' ) } />\n\t\t\t\t\t\t) }\n\t\t\t\t\t</Box>\n\t\t\t\t</Fragment>\n\t\t\t) }\n\t\t</Stack>\n\t);\n};\n\nconst NoResults = ( { searchValue, onClear }: NoResultsProps ) => (\n\t<Stack\n\t\tgap={ 1 }\n\t\talignItems=\"center\"\n\t\tjustifyContent=\"center\"\n\t\theight=\"100%\"\n\t\tp={ 2.5 }\n\t\tcolor=\"text.secondary\"\n\t\tsx={ { pb: 3.5 } }\n\t>\n\t\t<DatabaseIcon fontSize=\"large\" />\n\t\t<Typography align=\"center\" variant=\"subtitle2\">\n\t\t\t{ __( 'Sorry, nothing matched', 'elementor' ) }\n\t\t\t<br />\n\t\t\t“{ searchValue }”.\n\t\t</Typography>\n\t\t<Typography align=\"center\" variant=\"caption\">\n\t\t\t{ __( 'Try something else.', 'elementor' ) }\n\t\t\t \n\t\t\t<Link color=\"text.secondary\" variant=\"caption\" component=\"button\" onClick={ onClear }>\n\t\t\t\t{ __( 'Clear & try again', 'elementor' ) }\n\t\t\t</Link>\n\t\t</Typography>\n\t</Stack>\n);\n\nconst NoDynamicTags = () => (\n\t<Box sx={ { overflowY: 'hidden', height: 297, width: 220 } }>\n\t\t<Divider />\n\t\t<Stack\n\t\t\tgap={ 1 }\n\t\t\talignItems=\"center\"\n\t\t\tjustifyContent=\"center\"\n\t\t\theight=\"100%\"\n\t\t\tp={ 2.5 }\n\t\t\tcolor=\"text.secondary\"\n\t\t\tsx={ { pb: 3.5 } }\n\t\t>\n\t\t\t<DatabaseIcon fontSize=\"large\" />\n\t\t\t<Typography align=\"center\" variant=\"subtitle2\">\n\t\t\t\t{ __( 'Streamline your workflow with dynamic tags', 'elementor' ) }\n\t\t\t</Typography>\n\t\t\t<Typography align=\"center\" variant=\"caption\">\n\t\t\t\t{ __( 'You’ll need Elementor Pro to use this feature.', 'elementor' ) }\n\t\t\t</Typography>\n\t\t</Stack>\n\t</Box>\n);\n\nconst useFilteredOptions = ( searchValue: string ): OptionEntry[] => {\n\tconst dynamicTags = usePropDynamicTags();\n\n\tconst options = dynamicTags.reduce< Map< string, Option[] > >( ( categories, { name, label, group } ) => {\n\t\tconst isVisible = label.toLowerCase().includes( searchValue.trim().toLowerCase() );\n\n\t\tif ( ! isVisible ) {\n\t\t\treturn categories;\n\t\t}\n\n\t\tif ( ! categories.has( group ) ) {\n\t\t\tcategories.set( group, [] );\n\t\t}\n\n\t\tcategories.get( group )?.push( { label, value: name } );\n\n\t\treturn categories;\n\t}, new Map() );\n\n\treturn [ ...options ];\n};\n","import { createTransformer } from '@elementor/editor-canvas';\nimport { isTransformable, type Props } from '@elementor/editor-props';\n\nimport { DynamicTagsManagerNotFoundError } from './errors';\nimport { type ExtendedWindow } from './types';\n\ntype Dynamic = {\n\tname?: string;\n\tsettings?: Props;\n};\n\nexport const dynamicTransformer = createTransformer( ( value: Dynamic ) => {\n\tif ( ! value.name ) {\n\t\treturn null;\n\t}\n\n\treturn getDynamicValue( value.name, simpleTransform( value.settings ?? {} ) );\n} );\n\n// Temporary naive transformation until we'll have a `backendTransformer` that\n// will replace the `dynamicTransformer` client implementation.\nfunction simpleTransform( props: Props ) {\n\tconst transformed = Object.entries( props ).map( ( [ settingKey, settingValue ] ) => {\n\t\tconst value = isTransformable( settingValue ) ? settingValue.value : settingValue;\n\n\t\treturn [ settingKey, value ] as const;\n\t} );\n\n\treturn Object.fromEntries( transformed );\n}\n\nfunction getDynamicValue( name: string, settings: Record< string, unknown > ) {\n\tconst extendedWindow = window as unknown as ExtendedWindow;\n\tconst { dynamicTags } = extendedWindow.elementor ?? {};\n\n\tif ( ! dynamicTags ) {\n\t\tthrow new DynamicTagsManagerNotFoundError();\n\t}\n\n\tconst getTagValue = () => {\n\t\tconst tag = dynamicTags.createTag( 'v4-dynamic-tag', name, settings );\n\n\t\tif ( ! tag ) {\n\t\t\treturn null;\n\t\t}\n\n\t\treturn dynamicTags.loadTagDataFromCache( tag ) ?? null;\n\t};\n\n\tconst tagValue = getTagValue();\n\n\tif ( tagValue !== null ) {\n\t\treturn tagValue;\n\t}\n\n\treturn new Promise( ( resolve ) => {\n\t\tdynamicTags.refreshCacheFromServer( () => {\n\t\t\tresolve( getTagValue() );\n\t\t} );\n\t} );\n}\n","import { createError } from '@elementor/utils';\n\nexport const DynamicTagsManagerNotFoundError = createError( {\n\tcode: 'dynamic_tags_manager_not_found',\n\tmessage: 'Dynamic tags manager not found',\n} );\n","import * as React from 'react';\nimport { useBoundProp } from '@elementor/editor-controls';\nimport { DatabaseIcon } from '@elementor/icons';\nimport { __ } from '@wordpress/i18n';\n\nimport { type PopoverActionProps } from '../../popover-action';\nimport { DynamicSelection } from '../components/dynamic-selection';\nimport { supportsDynamic } from '../utils';\n\nexport const usePropDynamicAction = (): PopoverActionProps => {\n\tconst { propType } = useBoundProp();\n\n\tconst visible = !! propType && supportsDynamic( propType );\n\n\treturn {\n\t\tvisible,\n\t\ticon: DatabaseIcon,\n\t\ttitle: __( 'Dynamic tags', 'elementor' ),\n\t\tpopoverContent: ( { closePopover } ) => <DynamicSelection onSelect={ closePopover } />,\n\t};\n};\n","import { useBoundProp } from '@elementor/editor-controls';\nimport { BrushBigIcon } from '@elementor/icons';\nimport { __ } from '@wordpress/i18n';\n\nimport { useIsStyle } from './contexts/style-context';\nimport { controlActionsMenu } from './controls-actions';\n\nconst { registerAction } = controlActionsMenu;\n\nexport function initResetStyleProps() {\n\tregisterAction( {\n\t\tid: 'reset-style-value',\n\t\tuseProps: useResetStyleValueProps,\n\t} );\n}\n\n// Temporary fix for the issue with ControlToggleButtonGroup.\nconst EXCLUDED_BINDS = [ 'order', 'flex-grow', 'flex-shrink', 'flex-basis' ];\n\nexport function useResetStyleValueProps() {\n\tconst isStyle = useIsStyle();\n\tconst { value, setValue, path, bind } = useBoundProp();\n\n\treturn {\n\t\tvisible:\n\t\t\tisStyle && value !== null && value !== undefined && path.length <= 2 && ! EXCLUDED_BINDS.includes( bind ),\n\t\ttitle: __( 'Clear', 'elementor' ),\n\t\ticon: BrushBigIcon,\n\t\tonClick: () => setValue( null ),\n\t};\n}\n","import { createTransformer, styleTransformersRegistry } from '@elementor/editor-canvas';\n\nimport { excludePropTypeTransformers } from './consts';\nimport { stylesInheritanceTransformersRegistry } from './styles-inheritance-transformers-registry';\nimport { backgroundColorOverlayTransformer } from './transformers/background-color-overlay-transformer';\nimport { backgroundGradientOverlayTransformer } from './transformers/background-gradient-overlay-transformer';\nimport { backgroundImageOverlayTransformer } from './transformers/background-image-overlay-transformer';\nimport { backgroundOverlayTransformer } from './transformers/background-overlay-transformer';\n\nexport function initStylesInheritanceTransformers() {\n\tconst originalStyleTransformers = styleTransformersRegistry.all();\n\n\tObject.entries( originalStyleTransformers ).forEach( ( [ propType, transformer ] ) => {\n\t\tif ( excludePropTypeTransformers.has( propType ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tstylesInheritanceTransformersRegistry.register( propType, transformer );\n\t} );\n\n\tstylesInheritanceTransformersRegistry.registerFallback(\n\t\tcreateTransformer( ( value: unknown ) => {\n\t\t\treturn value;\n\t\t} )\n\t);\n\n\tregisterCustomTransformers();\n}\n\nfunction registerCustomTransformers() {\n\tstylesInheritanceTransformersRegistry.register( 'background-color-overlay', backgroundColorOverlayTransformer );\n\tstylesInheritanceTransformersRegistry.register(\n\t\t'background-gradient-overlay',\n\t\tbackgroundGradientOverlayTransformer\n\t);\n\tstylesInheritanceTransformersRegistry.register( 'background-image-overlay', backgroundImageOverlayTransformer );\n\tstylesInheritanceTransformersRegistry.register( 'background-overlay', backgroundOverlayTransformer );\n}\n","import * as React from 'react';\nimport { createTransformer } from '@elementor/editor-canvas';\nimport { Stack, styled, UnstableColorIndicator } from '@elementor/ui';\n\nexport type Color = {\n\tcolor: string;\n};\n\nexport const backgroundColorOverlayTransformer = createTransformer( ( value: Color ) => (\n\t<Stack direction=\"row\" gap={ 10 }>\n\t\t<ItemIconColor value={ value } />\n\t\t<ItemLabelColor value={ value } />\n\t</Stack>\n) );\n\nconst ItemIconColor = ( { value }: { value: Color } ) => {\n\tconst { color } = value;\n\treturn <StyledUnstableColorIndicator size=\"inherit\" component=\"span\" value={ color } />;\n};\n\nconst ItemLabelColor = ( { value: { color } }: { value: Color } ) => {\n\treturn <span>{ color }</span>;\n};\n\nexport const StyledUnstableColorIndicator = styled( UnstableColorIndicator )( ( { theme } ) => ( {\n\tborderRadius: `${ theme.shape.borderRadius / 2 }px`,\n} ) );\n","import * as React from 'react';\nimport { createTransformer } from '@elementor/editor-canvas';\nimport { Stack } from '@elementor/ui';\nimport { __ } from '@wordpress/i18n';\n\nimport { type Color, StyledUnstableColorIndicator } from './background-color-overlay-transformer';\n\ntype ColorStop = Color & {\n\toffset: number;\n};\n\ntype Gradient = {\n\ttype: string;\n\tangle?: number;\n\tpositions?: string;\n\tstops: ColorStop[];\n};\n\nexport const backgroundGradientOverlayTransformer = createTransformer( ( value: Gradient ) => (\n\t<Stack direction=\"row\" gap={ 10 }>\n\t\t<ItemIconGradient value={ value } />\n\t\t<ItemLabelGradient value={ value } />\n\t</Stack>\n) );\n\nconst ItemIconGradient = ( { value }: { value: Gradient } ) => {\n\tconst gradient = getGradientValue( value );\n\n\treturn <StyledUnstableColorIndicator size=\"inherit\" component=\"span\" value={ gradient } />;\n};\n\nconst ItemLabelGradient = ( { value }: { value: Gradient } ) => {\n\tif ( value.type === 'linear' ) {\n\t\treturn <span>{ __( 'Linear Gradient', 'elementor' ) }</span>;\n\t}\n\n\treturn <span>{ __( 'Radial Gradient', 'elementor' ) }</span>;\n};\n\nconst getGradientValue = ( gradient: Gradient ) => {\n\tconst stops = gradient.stops\n\t\t?.map( ( { color, offset }: ColorStop ) => `${ color } ${ offset ?? 0 }%` )\n\t\t?.join( ',' );\n\n\tif ( gradient.type === 'linear' ) {\n\t\treturn `linear-gradient(${ gradient.angle }deg, ${ stops })`;\n\t}\n\n\treturn `radial-gradient(circle at ${ gradient.positions }, ${ stops })`;\n};\n","import * as React from 'react';\nimport { createTransformer } from '@elementor/editor-canvas';\nimport { EllipsisWithTooltip } from '@elementor/editor-ui';\nimport { CardMedia, Stack, type Theme } from '@elementor/ui';\nimport { useWpMediaAttachment } from '@elementor/wp-media';\n\ntype ImageSrcAttachment = { id: number; url: null };\n\ntype ImageSrcUrl = { url: string; id: null };\n\ntype Image = {\n\timage: {\n\t\tsrc: ImageSrcAttachment | ImageSrcUrl;\n\t\tsize: 'thumbnail' | 'medium' | 'large' | 'full';\n\t};\n};\n\nexport const backgroundImageOverlayTransformer = createTransformer( ( value: Image ) => (\n\t<Stack direction=\"row\" gap={ 10 }>\n\t\t<ItemIconImage value={ value } />\n\t\t<ItemLabelImage value={ value } />\n\t</Stack>\n) );\n\nconst ItemIconImage = ( { value }: { value: Image } ) => {\n\tconst { imageUrl } = useImage( value );\n\n\treturn (\n\t\t<CardMedia\n\t\t\timage={ imageUrl }\n\t\t\tsx={ ( theme: Theme ) => ( {\n\t\t\t\theight: '1em',\n\t\t\t\twidth: '1em',\n\t\t\t\tborderRadius: `${ theme.shape.borderRadius / 2 }px`,\n\t\t\t\toutline: `1px solid ${ theme.palette.action.disabled }`,\n\t\t\t} ) }\n\t\t/>\n\t);\n};\n\nconst ItemLabelImage = ( { value }: { value: Image } ) => {\n\tconst { imageTitle } = useImage( value );\n\n\treturn (\n\t\t<EllipsisWithTooltip title={ imageTitle }>\n\t\t\t<span>{ imageTitle }</span>\n\t\t</EllipsisWithTooltip>\n\t);\n};\n\nconst useImage = ( image: Image ) => {\n\tlet imageTitle,\n\t\timageUrl: string | null = null;\n\n\tconst imageSrc = image?.image.src;\n\tconst { data: attachment } = useWpMediaAttachment( imageSrc.id || null );\n\n\tif ( imageSrc.id ) {\n\t\tconst imageFileTypeExtension = getFileExtensionFromFilename( attachment?.filename );\n\t\timageTitle = `${ attachment?.title }${ imageFileTypeExtension }` || null;\n\t\timageUrl = attachment?.url || null;\n\t} else if ( imageSrc.url ) {\n\t\timageUrl = imageSrc.url;\n\t\timageTitle = imageUrl?.substring( imageUrl.lastIndexOf( '/' ) + 1 ) || null;\n\t}\n\n\treturn { imageTitle, imageUrl };\n};\n\nconst getFileExtensionFromFilename = ( filename?: string ) => {\n\tif ( ! filename ) {\n\t\treturn '';\n\t}\n\n\t// get the substring after the last . in the filename\n\tconst extension = filename.substring( filename.lastIndexOf( '.' ) + 1 );\n\n\treturn `.${ extension }`;\n};\n","import * as React from 'react';\nimport { type ReactNode } from 'react';\nimport { createTransformer } from '@elementor/editor-canvas';\nimport { Stack } from '@elementor/ui';\n\ntype BackgroundOverlay = ReactNode[];\n\nexport const backgroundOverlayTransformer = createTransformer( ( values: BackgroundOverlay[] ) => {\n\tif ( ! values || values.length === 0 ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<Stack direction=\"column\">\n\t\t\t{ values.map( ( item, index ) => (\n\t\t\t\t<Stack key={ index }>{ item }</Stack>\n\t\t\t) ) }\n\t\t</Stack>\n\t);\n} );\n","import { isUsingIndicatorPopover } from './consts';\nimport { initStylesInheritanceTransformers } from './init-styles-inheritance-transformers';\n\nexport const init = () => {\n\tif ( isUsingIndicatorPopover() ) {\n\t\tinitStylesInheritanceTransformers();\n\t}\n};\n"],"mappings":"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","names":["useBoundProp","React","useState","isElementsStylesProvider","stylesRepository","useUserStylesCapability","validateStyleLabel","Box","Chip","Stack","Typography","__","React","createContext","useContext","Context","React","createContext","useContext","Context","createContext","useContext","React","options","options","useState","options","options","React","useState","stylesRepository","useUserStylesCapability","Chip","Stack","Typography","__","React","createContext","useContext","React","stylesRepository","useUserStylesCapability","__","styled","useMemo","useMemo","__","stylesRepository","useUserStylesCapability","useState","useUserStylesCapability","stylesRepository","Chip","Stack","Typography","__","__","options","useState","useUserStylesCapability","Stack","Chip","Box","Typography","stylesRepository","isElementsStylesProvider","validateStyleLabel","React","ThemeProvider","SessionStorageProvider","__","React","React","useId","IconButton","Stack","Tooltip","Typography","usePopupState","SIZE","PopoverContent","React","Box","React","Fragment","isExperimentActive","Divider","Stack","__","React","createContext","useContext","useRef","useState","styled","createContext","useContext","createContext","useContext","useState","isExperimentActive","isExperimentActive","useState","React","isExperimentActive","Divider","React","React","Box","styled","React","updateElementSettings","useElementSetting","useElementSetting","updateElementSettings","React","useId","Divider","Stack","styled","useId","Stack","Divider","React","isExperimentActive","Control","Divider","React","useState","isExperimentActive","SessionStorageProvider","Divider","Stack","__","React","createContext","useContext","useElementSetting","classesPropTypeUtil","stylesRepository","useEffect","useEffect","Context","createContext","useContext","useElementSetting","classesPropTypeUtil","stylesRepository","useElementSetting","useElementSetting","React","React","PropKeyProvider","PropProvider","getStylesSchema","useMemo","getElementLabel","undoable","__","useMemo","undoable","getElementLabel","__","React","isEmpty","ELEMENTS_BASE_STYLES_PROVIDER_KEY","isElementsStylesProvider","isExperimentActive","Tooltip","__","isExperimentActive","React","useMemo","useState","Box","IconButton","Stack","Tooltip","Typography","__","createContext","useContext","useRef","React","Stack","React","Tooltip","SIZE","DEFAULT_BREAKPOINT","React","Chip","Tooltip","__","SIZE","React","Typography","React","Box","useEffect","useState","ELEMENTS_BASE_STYLES_PROVIDER_KEY","__","items","DEFAULT_BREAKPOINT","SIZE","useState","useMemo","items","Stack","Typography","__","Box","IconButton","Tooltip","isExperimentActive","isEmpty","ELEMENTS_BASE_STYLES_PROVIDER_KEY","Tooltip","__","isElementsStylesProvider","getStylesSchema","PropProvider","PropKeyProvider","React","React","Divider","React","__","React","Collapse","IconButton","Stack","React","ControlFormLabel","Stack","SIZE","Stack","IconButton","Collapse","React","__","__","React","SelectControl","Grid","__","__","Grid","SelectControl","React","__","__","__","React","EqualUnequalSizesControl","withDirection","__","withDirection","__","EqualUnequalSizesControl","React","React","ControlFormLabel","__","React","Stack","withDirection","__","React","useRef","useTheme","useRef","useTheme","withDirection","__","Stack","React","ToggleControl","CenterIcon","DirectionProvider","Grid","ThemeProvider","withDirection","__","StartIcon","withDirection","EndIcon","iconProps","options","__","CenterIcon","DirectionProvider","ThemeProvider","Grid","ToggleControl","React","ToggleControl","CenterIcon","LayoutAlignLeftIcon","LayoutAlignRightIcon","JustifyIcon","DirectionProvider","Grid","ThemeProvider","withDirection","__","StartIcon","withDirection","LayoutAlignLeftIcon","EndIcon","LayoutAlignRightIcon","iconProps","__","CenterIcon","JustifyIcon","DirectionProvider","ThemeProvider","Grid","ToggleControl","React","ToggleControl","isExperimentActive","Stack","__","__","isExperimentActive","items","Stack","ToggleControl","React","ToggleControl","DirectionProvider","Grid","ThemeProvider","withDirection","__","options","__","StartIcon","withDirection","EndIcon","DirectionProvider","ThemeProvider","Grid","ToggleControl","React","useState","ArrowDownSmallIcon","ArrowUpSmallIcon","DirectionProvider","Grid","ThemeProvider","__","__","ArrowUpSmallIcon","ArrowDownSmallIcon","useState","DirectionProvider","ThemeProvider","Grid","React","useMemo","useState","ControlToggleButtonGroup","NumberControl","SizeControl","PencilIcon","DirectionProvider","Grid","ThemeProvider","__","items","__","PencilIcon","useMemo","useState","DirectionProvider","ThemeProvider","Grid","ControlToggleButtonGroup","NumberControl","SizeControl","React","Stack","__","Stack","__","React","ToggleControl","JustifyBottomIcon","CenterIcon","EvenlyIcon","AroundIcon","BetweenIcon","JustifyTopIcon","DirectionProvider","Stack","ThemeProvider","withDirection","__","StartIcon","withDirection","JustifyTopIcon","EndIcon","JustifyBottomIcon","iconProps","options","__","CenterIcon","BetweenIcon","AroundIcon","EvenlyIcon","DirectionProvider","ThemeProvider","Stack","ToggleControl","React","ToggleControl","ArrowRightIcon","DirectionProvider","Grid","ThemeProvider","__","options","__","ArrowRightIcon","DirectionProvider","ThemeProvider","Grid","ToggleControl","ControlFormLabel","__","React","isExperimentActive","React","SizeControl","SideBottomIcon","SideLeftIcon","SideRightIcon","SideTopIcon","Grid","Stack","withDirection","__","InlineStartIcon","withDirection","SideLeftIcon","InlineEndIcon","SideRightIcon","SideTopIcon","SideBottomIcon","__","Stack","Grid","SizeControl","React","SizeControl","Grid","__","Grid","__","SizeControl","React","SelectControl","Grid","__","__","Grid","SelectControl","React","NumberControl","Grid","__","Grid","__","NumberControl","isExperimentActive","React","SizeControl","isExperimentActive","Grid","Stack","__","React","useState","Collapse","Stack","__","useState","Stack","__","Collapse","React","SelectControl","Grid","__","positionOptions","__","Grid","SelectControl","React","SelectControl","Grid","__","positionOptions","__","Grid","SelectControl","React","ToggleControl","Grid","__","options","__","Grid","ToggleControl","isExperimentActive","Grid","__","Stack","SizeControl","React","__","__","React","isExperimentActive","React","NumberControl","Grid","__","Grid","__","NumberControl","React","SizeControl","Grid","__","Grid","__","SizeControl","React","Grid","__","useMemo","__","__","options","useMemo","Grid","__","React","SizeControl","Grid","__","Grid","__","SizeControl","React","ControlFormLabel","ToggleControl","MinusIcon","Grid","__","options","__","MinusIcon","Grid","ControlFormLabel","ToggleControl","React","SelectControl","Grid","__","__","Grid","SelectControl","React","SizeControl","Grid","__","Grid","__","SizeControl","React","SizeControl","Grid","__","Grid","__","SizeControl","React","ToggleControl","Grid","withDirection","__","withDirection","options","__","Grid","ToggleControl","React","ColorControl","Grid","__","Grid","__","ColorControl","React","ToggleControl","MinusIcon","Grid","__","options","__","MinusIcon","Grid","ToggleControl","React","ToggleControl","Grid","__","options","__","Grid","ToggleControl","React","__","__","React","ToggleControl","MinusIcon","Grid","__","options","__","MinusIcon","Grid","ToggleControl","React","SizeControl","Grid","__","Grid","__","SizeControl","isExperimentActive","isExperimentActive","useState","SessionStorageProvider","Divider","__","Stack","Fragment","isExperimentActive","Stack","__","Divider","__","SessionStorageProvider","ThemeProvider","isExperimentActive","useEffect","getWidgetsCache","useEffect","React","ControlFormLabel","useBoundProp","DatabaseIcon","XIcon","bindPopover","bindTrigger","Box","Divider","Grid","IconButton","Popover","Stack","Tab","TabPanel","Tabs","Typography","usePopupState","useTabs","__","React","Stack","useSessionStorage","useSessionStorage","React","PropKeyProvider","PropProvider","useBoundProp","useMemo","useMemo","useBoundProp","getElementorConfig","getElementorConfig","isTransformable","useBoundProp","useMemo","useMemo","useBoundProp","PropProvider","PropKeyProvider","React","Fragment","useState","useBoundProp","Box","Divider","Link","MenuSubheader","Stack","TextField","Typography","__","SIZE","useState","useBoundProp","options","Stack","Fragment","Box","TextField","__","Divider","items","MenuSubheader","Typography","Link","SIZE","useBoundProp","usePopupState","Box","DatabaseIcon","bindTrigger","IconButton","__","XIcon","Popover","bindPopover","Stack","Typography","useTabs","Tabs","Tab","Divider","TabPanel","Control","Grid","ControlFormLabel","isTransformable","createError","isTransformable","React","useBoundProp","DatabaseIcon","__","useBoundProp","DatabaseIcon","__","useBoundProp","__","useBoundProp","__","createTransformer","styleTransformersRegistry","React","createTransformer","Stack","styled","React","createTransformer","Stack","__","createTransformer","Stack","__","React","createTransformer","EllipsisWithTooltip","Stack","React","createTransformer","Stack","styleTransformersRegistry","createTransformer","init","init","isExperimentActive"]}
|