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
__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
__experimentalGetAllowedBlocks
__experimentalGetBlockListSettingsForBlocks
__experimentalGetLastBlockAttributeChanges
__experimentalGetParsedReusableBlock
__experimentalBlockDirectory
__experimentalBlockPatternCategories
__experimentalBlockPatterns
__experimentalCanUserUseUnfilteredHTML
__experimentalEnableFullSiteEditing
__experimentalEnableFullSiteEditingDemo
__experimentalUpdateSelection
__experimentalIsExpanded
__experimentalDragComponent
__experimentalCaptureToolbars
__experimentalTagName
__experimentalAppenderTagName
__experimentalPassedProps
__experimentalSelectBlockOnInsert
__experimentalIsQuick
__experimentalFeatures
__experimentalSelectBlock
__experimentalExpandedControl
__experimentalPadding
__experimentalLive
__experimentalOnClick
__experimentalShowInitialSuggestions
__experimentalFetchLinkSuggestions
__experimentalHandleURLSuggestions
__experimentalRenderSuggestions
__experimentalVersion
__experimentalRegisterExperimentalCoreBlocks
__experimentalGetAccessibleBlockLabel
__experimentalGetBlockLabel
__experimentalAlignmentMatrixControl
__experimentalBoxControl
__experimentalCustomGradientPicker
__experimentalDimensionControl
__experimentalGradientPicker
__experimentalInputControl
__experimentalNavigation
__experimentalNavigationBackButton
__experimentalNavigationGroup
__experimentalNavigationItem
__experimentalNavigationMenu
__experimentalNumberControl
__experimentalRadio
__experimentalRadioGroup
__experimentalText
__experimentalToolbarContext
__experimentalTreeGrid
__experimentalTreeGridCell
__experimentalTreeGridItem
__experimentalTreeGridRow
__experimentalUnitControl
__experimentalUseSlot
__experimentalWidthProvider
__experimentalUseDragging
__experimentalGetEntityRecordNoResolver
__experimentalGetDirtyEntityRecords
__experimentalResolveSelect
__experimentalGetSettings
__experimentalFullscreenModeClose
__experimentalUpdateLocalAutosaveInterval
__experimentalLocalAutosaveInterval
__experimentalGetPreviewDeviceType
__experimentalConvertBlockToReusable
__experimentalConvertBlockToStatic
__experimentalDeleteReusableBlock
__experimentalFetchReusableBlocks
__experimentalLocalAutosave
__experimentalOptimisticUpdatePost
__experimentalReceiveReusableBlocks
__experimentalRequestPostUpdateFinish
__experimentalRequestPostUpdateStart
__experimentalSaveReusableBlock
__experimentalTearDownEditor
__experimentalUpdateReusableBlock
__experimentalGetReusableBlock
__experimentalIsFetchingReusableBlock
__experimentalIsSavingReusableBlock
__experimentalBlockDirectory
__experimentalBlockPatterns
__experimentalBlockPatternCategories
__experimentalEnableFullSiteEditing
__experimentalEnableFullSiteEditingDemo
__experimentalFeatures
__experimentalGlobalStylesUserEntityId
__experimentalGlobalStylesBaseStyles
__experimentalGlobalStylesContexts
__experimentalPreferredStyleVariations
__experimentalSetIsInserterOpened
__experimentalReusableBlocks
__experimentalUndo
__experimentalShouldInsertAtTheTop
__experimentalMainDashboardButton
__experimentalRichText
__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:
__experimentalBoxControl
__experimentalInputControl
__experimentalNumberControl
__experimentalUnitControl
__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.
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__experimentalUnitControlBlock Preview
__experimentalPadding