Gutenberg: Audit experimental APIs (WP 5.6)

Created on 2 Oct 2020  路  6Comments  路  Source: WordPress/gutenberg

This issue lists the experimental APIs in the editor, to help decide whether any of them can be made stable before 5.6.

I used @jorgefilipecosta's snippet to collect everything exposed via the wp global, and then searched the codebase for props and added in all I found.

There's also a bunch of __experimental stuff in the annotations package that I left out because it's been there a while and wasn't mentioned in API audits for the previous releases. Would love to know more about this if anyone has the history!

Cc @WordPress/gutenberg-core

Block Editor

__experimentalAlignmentHookSettingsProvider
__experimentalBlock
__experimentalBlockAlignmentMatrixToolbar
__experimentalBlockNavigationBlockFill
__experimentalBlockNavigationEditor
__experimentalBlockNavigationTree
__experimentalBlockSettingsMenuFirstItem
__experimentalBlockVariationPicker
__experimentalColorGradientControl
__experimentalGetGradientClass
__experimentalGetGradientObjectByGradientValue
__experimentalGradientPicker
__experimentalGradientPickerControl
__experimentalGradientPickerPanel
__experimentalImageSizeControl
__experimentalImageURLInputUI
__experimentalInserterMenuExtension
__experimentalLibrary
__experimentalLineHeightControl
__experimentalLinkControl
__experimentalPanelColorGradientSettings
__experimentalPreviewOptions
__experimentalResponsiveBlockControl
__experimentalSearchForm
__experimentalUnitControl
__experimentalUseBlockWrapperProps
__experimentalUseColors
__experimentalUseEditorFeature
__experimentalUseGradient
__experimentalUseResizeCanvas
__experimentalUseSimulatedMediaQuery

Selectors

__experimentalGetAllowedBlocks
__experimentalGetBlockListSettingsForBlocks
__experimentalGetLastBlockAttributeChanges
__experimentalGetParsedReusableBlock

Settings

__experimentalBlockDirectory
__experimentalBlockPatternCategories
__experimentalBlockPatterns
__experimentalCanUserUseUnfilteredHTML
__experimentalEnableFullSiteEditing
__experimentalEnableFullSiteEditingDemo

Props

BlockActions

__experimentalUpdateSelection

BlockControlsSlot

__experimentalIsExpanded

Draggable

__experimentalDragComponent

UncontrolledInnerBlocks

__experimentalCaptureToolbars

BlockList

__experimentalTagName
__experimentalAppenderTagName
__experimentalPassedProps

Inserter

__experimentalSelectBlockOnInsert
__experimentalIsQuick

BlockNavigationContext

__experimentalFeatures

BlockSettingsDropdown

__experimentalSelectBlock

BockToolbar

__experimentalExpandedControl

BlockPreview

__experimentalPadding
__experimentalLive
__experimentalOnClick

URLInput

__experimentalShowInitialSuggestions
__experimentalFetchLinkSuggestions
__experimentalHandleURLSuggestions
__experimentalRenderSuggestions

PlainText

__experimentalVersion

Block Library

__experimentalRegisterExperimentalCoreBlocks

Blocks

__experimentalGetAccessibleBlockLabel
__experimentalGetBlockLabel

Components

__experimentalAlignmentMatrixControl
__experimentalBoxControl
__experimentalCustomGradientPicker
__experimentalDimensionControl
__experimentalGradientPicker
__experimentalInputControl
__experimentalNavigation
__experimentalNavigationBackButton
__experimentalNavigationGroup
__experimentalNavigationItem
__experimentalNavigationMenu
__experimentalNumberControl
__experimentalRadio
__experimentalRadioGroup
__experimentalText
__experimentalToolbarContext
__experimentalTreeGrid
__experimentalTreeGridCell
__experimentalTreeGridItem
__experimentalTreeGridRow
__experimentalUnitControl
__experimentalUseSlot

Compose

__experimentalWidthProvider
__experimentalUseDragging

Core Data

__experimentalGetEntityRecordNoResolver
__experimentalGetDirtyEntityRecords

Data

__experimentalResolveSelect

Date

__experimentalGetSettings

Edit Post

__experimentalFullscreenModeClose
__experimentalUpdateLocalAutosaveInterval
__experimentalLocalAutosaveInterval
__experimentalGetPreviewDeviceType

Editor

Actions

__experimentalConvertBlockToReusable
__experimentalConvertBlockToStatic
__experimentalDeleteReusableBlock
__experimentalFetchReusableBlocks
__experimentalLocalAutosave
__experimentalOptimisticUpdatePost
__experimentalReceiveReusableBlocks
__experimentalRequestPostUpdateFinish
__experimentalRequestPostUpdateStart
__experimentalSaveReusableBlock
__experimentalTearDownEditor
__experimentalUpdateReusableBlock

Selectors

__experimentalGetReusableBlock
__experimentalIsFetchingReusableBlock
__experimentalIsSavingReusableBlock

Settings

__experimentalBlockDirectory
__experimentalBlockPatterns
__experimentalBlockPatternCategories
__experimentalEnableFullSiteEditing
__experimentalEnableFullSiteEditingDemo
__experimentalFeatures
__experimentalGlobalStylesUserEntityId
__experimentalGlobalStylesBaseStyles
__experimentalGlobalStylesContexts
__experimentalPreferredStyleVariations
__experimentalSetIsInserterOpened
__experimentalReusableBlocks
__experimentalUndo
__experimentalShouldInsertAtTheTop

Interface

__experimentalMainDashboardButton

Rich Text

__experimentalRichText

[Type] Tracking Issue

Most helpful comment

馃憢 Haii! Recently the InputControl (component) was improvement by @stokesman. (A great fix by the way!) However, we're unsure if it may have any side-effects. In theory it really shouldn't, but I'd feel better if we waited a bit to see if anything surfaces.

Because of that, I'd vote to skip the following:

Components

__experimentalBoxControl
__experimentalInputControl
__experimentalNumberControl
__experimentalUnitControl

Block Preview

__experimentalPadding

All 6 comments

__experimentalRichText should be skipped for now :)

馃憢 Haii! Recently the InputControl (component) was improvement by @stokesman. (A great fix by the way!) However, we're unsure if it may have any side-effects. In theory it really shouldn't, but I'd feel better if we waited a bit to see if anything surfaces.

Because of that, I'd vote to skip the following:

Components

__experimentalBoxControl
__experimentalInputControl
__experimentalNumberControl
__experimentalUnitControl

Block Preview

__experimentalPadding

based on my experience (https://wordpress.slack.com/archives/C02QB2JS7/p1601634548288000, requires registration) with __experimentalLinkControl that one still needs some polish.

Just looking at the ones I've know from reviewing or adding myself:

Block Navigation
The following are all used in Block Navigation (now called List View):

  • __experimentalBlockNavigationBlockFill, __experimentalBlockNavigationEditor - This feature didn't really go anywhere. I'm proposing to remove it in https://github.com/WordPress/gutenberg/pull/25069, I may split that PR up into smaller easier to review parts (cc @adamziel)
  • __experimentalBlockNavigationTree - this probably won't be mature enough for 5.6, still quite a few ongoing discussions, and a proposal to rename all the BlockNavigation components to ListView anyway.
  • __experimentalTreeGrid, __experimentalTreeGridCell, __experimentalTreeGridItem, __experimentalTreeGridRow - this is also used in block navigation, so not mature enough and potentially some parts will be replaced by reakit components.
  • __experimentalFeatures - This is more of a feature flag, and won't become stable. (cc @adamziel)

Block API

  • __experimentalGetAccessibleBlockLabel, __experimentalGetBlockLabel - I'm not sure what the plan is for these, the discussion stalled. Definitely not mature enough to stabilize.

Selectors

  • __experimentalGetAllowedBlocks - this was added to support the inserter automatically inserting the block when only one block is allowed. I think it could be renamed to be more consistent and stabilized. (cc @draganescu)

This issue lists the experimental APIs in the editor, to help decide whether any of them can be made stable before 5.6.

馃憢 @tellthemachines, should we also add the __unstableIsEditorReady to the list?

@WunderBart I purposefully left out everything marked __unstable as my understanding is that those APIs are not intended to be made public at any point.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

ellatrix picture ellatrix  路  3Comments

BE-Webdesign picture BE-Webdesign  路  3Comments

jasmussen picture jasmussen  路  3Comments

jasmussen picture jasmussen  路  3Comments

maddisondesigns picture maddisondesigns  路  3Comments